Add support for album covers to Ubuntu One.
This commit is contained in:
parent
4bbbf4dd9d
commit
afcc8f86f3
|
@ -21,6 +21,8 @@
|
|||
#include "internet/ubuntuoneauthenticator.h"
|
||||
#include "internet/ubuntuoneurlhandler.h"
|
||||
#include "library/librarybackend.h"
|
||||
#include "playlist/playlist.h"
|
||||
#include "ui/iconloader.h"
|
||||
|
||||
const char* UbuntuOneService::kServiceName = "Ubuntu One";
|
||||
const char* UbuntuOneService::kSettingsGroup = "Ubuntu One";
|
||||
|
@ -37,7 +39,8 @@ UbuntuOneService::UbuntuOneService(Application* app, InternetModel* parent)
|
|||
: InternetService(kServiceName, app, parent, parent),
|
||||
root_(nullptr),
|
||||
network_(new NetworkAccessManager(this)),
|
||||
library_sort_model_(new QSortFilterProxyModel(this)) {
|
||||
library_sort_model_(new QSortFilterProxyModel(this)),
|
||||
playlist_manager_(app->playlist_manager()) {
|
||||
library_backend_ = new LibraryBackend;
|
||||
library_backend_->moveToThread(app_->database()->thread());
|
||||
library_backend_->Init(
|
||||
|
@ -207,3 +210,34 @@ QUrl UbuntuOneService::GetStreamingUrlFromSongId(const QString& song_id) {
|
|||
void UbuntuOneService::ShowSettingsDialog() {
|
||||
app_->OpenSettingsDialogAtPage(SettingsDialog::Page_UbuntuOne);
|
||||
}
|
||||
|
||||
void UbuntuOneService::ShowContextMenu(const QPoint& global_pos) {
|
||||
if (!context_menu_) {
|
||||
context_menu_.reset(new QMenu);
|
||||
context_menu_->addActions(GetPlaylistActions());
|
||||
context_menu_->addAction(
|
||||
IconLoader::Load("download"),
|
||||
tr("Cover Manager"),
|
||||
this,
|
||||
SLOT(ShowCoverManager()));
|
||||
context_menu_->addAction(IconLoader::Load("configure"),
|
||||
tr("Configure..."),
|
||||
this, SLOT(ShowSettingsDialog()));
|
||||
}
|
||||
context_menu_->popup(global_pos);
|
||||
}
|
||||
|
||||
void UbuntuOneService::ShowCoverManager() {
|
||||
if (!cover_manager_) {
|
||||
cover_manager_.reset(new AlbumCoverManager(app_, library_backend_));
|
||||
cover_manager_->Init();
|
||||
connect(cover_manager_.get(), SIGNAL(AddToPlaylist(QMimeData*)),
|
||||
SLOT(AddToPlaylist(QMimeData*)));
|
||||
}
|
||||
cover_manager_->show();
|
||||
}
|
||||
|
||||
void UbuntuOneService::AddToPlaylist(QMimeData* mime) {
|
||||
playlist_manager_->current()->dropMimeData(
|
||||
mime, Qt::CopyAction, -1, 0, QModelIndex());
|
||||
}
|
||||
|
|
|
@ -3,11 +3,15 @@
|
|||
|
||||
#include "internet/internetservice.h"
|
||||
|
||||
#include <QMenu>
|
||||
|
||||
#include "core/tagreaderclient.h"
|
||||
#include "ui/albumcovermanager.h"
|
||||
|
||||
class LibraryBackend;
|
||||
class LibraryModel;
|
||||
class NetworkAccessManager;
|
||||
class PlaylistManager;
|
||||
class QNetworkReply;
|
||||
class QSortFilterProxyModel;
|
||||
class UbuntuOneAuthenticator;
|
||||
|
@ -23,6 +27,7 @@ class UbuntuOneService : public InternetService {
|
|||
// InternetService
|
||||
virtual QStandardItem* CreateRootItem();
|
||||
virtual void LazyPopulate(QStandardItem* parent);
|
||||
virtual void ShowContextMenu(const QPoint& global_pos);
|
||||
|
||||
QUrl GetStreamingUrlFromSongId(const QString& song_id);
|
||||
|
||||
|
@ -31,12 +36,14 @@ class UbuntuOneService : public InternetService {
|
|||
void FileListRequestFinished(QNetworkReply* reply);
|
||||
void ReadTagsFinished(
|
||||
TagReaderClient::ReplyType* reply, const QVariantMap& file, const QUrl& url);
|
||||
void ShowSettingsDialog();
|
||||
void ShowCoverManager();
|
||||
void AddToPlaylist(QMimeData* mime);
|
||||
|
||||
private:
|
||||
void Connect();
|
||||
void RequestFileList(const QString& path);
|
||||
void MaybeAddFileToDatabase(const QVariantMap& file);
|
||||
void ShowSettingsDialog();
|
||||
|
||||
private:
|
||||
QByteArray GenerateAuthorisationHeader();
|
||||
|
@ -52,6 +59,10 @@ class UbuntuOneService : public InternetService {
|
|||
LibraryBackend* library_backend_;
|
||||
LibraryModel* library_model_;
|
||||
QSortFilterProxyModel* library_sort_model_;
|
||||
|
||||
boost::scoped_ptr<QMenu> context_menu_;
|
||||
boost::scoped_ptr<AlbumCoverManager> cover_manager_;
|
||||
PlaylistManager* playlist_manager_;
|
||||
};
|
||||
|
||||
#endif // UBUNTUONESERVICE_H
|
||||
|
|
Loading…
Reference in New Issue