From f808591ec7fd0c01fccc7f0546e234e8d6f8043e Mon Sep 17 00:00:00 2001 From: David Sansome Date: Wed, 23 Jun 2010 13:21:30 +0000 Subject: [PATCH] Refactor the loading indicator widget into a seperate TaskManager class that can handle tasks with progress --- src/CMakeLists.txt | 2 + src/core/taskmanager.cpp | 81 +++++++++++++++++++++++++++ src/core/taskmanager.h | 55 ++++++++++++++++++ src/library/library.cpp | 7 ++- src/library/library.h | 9 ++- src/library/librarywatcher.cpp | 7 ++- src/library/librarywatcher.h | 8 ++- src/playlist/playlist.cpp | 8 +-- src/playlist/playlist.h | 7 ++- src/playlist/playlistmanager.cpp | 7 +-- src/playlist/playlistmanager.h | 7 ++- src/playlist/songloaderinserter.cpp | 18 ++++-- src/playlist/songloaderinserter.h | 9 ++- src/radio/lastfmservice.cpp | 11 +++- src/radio/lastfmservice.h | 1 + src/radio/magnatuneservice.cpp | 10 +++- src/radio/magnatuneservice.h | 1 + src/radio/radiomodel.cpp | 6 +- src/radio/radiomodel.h | 14 +++-- src/radio/radioservice.h | 3 - src/radio/somafmservice.cpp | 15 +++-- src/radio/somafmservice.h | 3 + src/translations/ar.po | 39 ++++++------- src/translations/cs.po | 42 +++++++------- src/translations/da.po | 42 +++++++------- src/translations/de.po | 42 +++++++------- src/translations/el.po | 42 +++++++------- src/translations/en_CA.po | 42 +++++++------- src/translations/en_GB.po | 42 +++++++------- src/translations/es.po | 42 +++++++------- src/translations/fi.po | 39 ++++++------- src/translations/fr.po | 42 +++++++------- src/translations/gl.po | 42 +++++++------- src/translations/it.po | 42 +++++++------- src/translations/kk.po | 39 ++++++------- src/translations/nb.po | 42 +++++++------- src/translations/oc.po | 39 ++++++------- src/translations/pl.po | 42 +++++++------- src/translations/pt.po | 42 +++++++------- src/translations/pt_BR.po | 42 +++++++------- src/translations/ro.po | 42 +++++++------- src/translations/ru.po | 42 +++++++------- src/translations/sk.po | 42 +++++++------- src/translations/sv.po | 42 +++++++------- src/translations/tr.po | 39 ++++++------- src/translations/uk.po | 42 +++++++------- src/translations/zh_CN.po | 39 ++++++------- src/translations/zh_TW.po | 39 ++++++------- src/ui/mainwindow.cpp | 36 +++--------- src/ui/mainwindow.h | 7 +-- src/widgets/multiloadingindicator.cpp | 44 ++++----------- src/widgets/multiloadingindicator.h | 21 ++----- 52 files changed, 782 insertions(+), 686 deletions(-) create mode 100644 src/core/taskmanager.cpp create mode 100644 src/core/taskmanager.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c74cd2a83..13eaf68ab 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -47,6 +47,7 @@ set(SOURCES core/song.cpp core/songloader.cpp core/stylesheetloader.cpp + core/taskmanager.cpp core/utilities.cpp engines/enginebase.cpp @@ -160,6 +161,7 @@ set(HEADERS core/networkaccessmanager.h core/player.h core/songloader.h + core/taskmanager.h engines/enginebase.h diff --git a/src/core/taskmanager.cpp b/src/core/taskmanager.cpp new file mode 100644 index 000000000..234632ac4 --- /dev/null +++ b/src/core/taskmanager.cpp @@ -0,0 +1,81 @@ +/* This file is part of Clementine. + + Clementine is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Clementine is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Clementine. If not, see . +*/ + +#include "taskmanager.h" + +#include + +TaskManager::TaskManager(QObject *parent) + : QObject(parent), + next_task_id_(1) +{ +} + +int TaskManager::StartTask(const QString& name) { + Task t; + t.name = name; + t.progress = 0; + t.progress_max = 0; + + { + QMutexLocker l(&mutex_); + t.id = next_task_id_ ++; + tasks_[t.id] = t; + } + + qDebug() << name << "started"; + emit TasksChanged(); + return t.id; +} + +QList TaskManager::GetTasks() { + QList ret; + + { + QMutexLocker l(&mutex_); + ret = tasks_.values(); + } + + return ret; +} + +void TaskManager::SetTaskProgress(int id, int progress, int max) { + { + QMutexLocker l(&mutex_); + if (!tasks_.contains(id)) + return; + + Task& t = tasks_[id]; + t.progress = progress; + if (max != -1) + t.progress_max = max; + + qDebug() << t.name << "progress" << t.progress << "/" << t.progress_max; + } + + emit TasksChanged(); +} + +void TaskManager::SetTaskFinished(int id) { + { + QMutexLocker l(&mutex_); + if (!tasks_.contains(id)) + return; + qDebug() << tasks_[id].name << "finished"; + tasks_.remove(id); + } + emit TasksChanged(); +} diff --git a/src/core/taskmanager.h b/src/core/taskmanager.h new file mode 100644 index 000000000..0d01c64ac --- /dev/null +++ b/src/core/taskmanager.h @@ -0,0 +1,55 @@ +/* This file is part of Clementine. + + Clementine is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Clementine is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Clementine. If not, see . +*/ + +#ifndef TASKMANAGER_H +#define TASKMANAGER_H + +#include +#include +#include + +class TaskManager : public QObject { + Q_OBJECT + +public: + TaskManager(QObject* parent = 0); + + struct Task { + int id; + QString name; + int progress; + int progress_max; + }; + + // Thread-safe + int StartTask(const QString& name); + QList GetTasks(); + +public slots: + // Thread-safe + void SetTaskProgress(int id, int progress, int max = -1); + void SetTaskFinished(int id); + +signals: + void TasksChanged(); + +private: + QMutex mutex_; + QMap tasks_; + int next_task_id_; +}; + +#endif // TASKMANAGER_H diff --git a/src/library/library.cpp b/src/library/library.cpp index a63226918..0735a4b52 100644 --- a/src/library/library.cpp +++ b/src/library/library.cpp @@ -24,8 +24,10 @@ const char* Library::kDirsTable = "directories"; const char* Library::kSubdirsTable = "subdirectories"; const char* Library::kFtsTable = "songs_fts"; -Library::Library(BackgroundThread* db_thread, QObject *parent) +Library::Library(BackgroundThread* db_thread, TaskManager* task_manager, + QObject *parent) : QObject(parent), + task_manager_(task_manager), backend_(NULL), model_(NULL), watcher_factory_(new BackgroundThreadFactoryImplementation), @@ -58,10 +60,9 @@ void Library::StartThreads() { void Library::WatcherInitialised() { LibraryWatcher* watcher = watcher_->Worker().get(); - connect(watcher, SIGNAL(ScanStarted()), SIGNAL(ScanStarted())); - connect(watcher, SIGNAL(ScanFinished()), SIGNAL(ScanFinished())); watcher->SetBackend(backend_); + watcher->SetTaskManager(task_manager_); connect(backend_, SIGNAL(DirectoryDiscovered(Directory,SubdirectoryList)), watcher, SLOT(AddDirectory(Directory,SubdirectoryList))); diff --git a/src/library/library.h b/src/library/library.h index a6aca8a5e..5ac16f16a 100644 --- a/src/library/library.h +++ b/src/library/library.h @@ -27,12 +27,14 @@ class Database; class LibraryBackend; class LibraryModel; class LibraryWatcher; +class TaskManager; class Library : public QObject { Q_OBJECT public: - Library(BackgroundThread* db_thread, QObject* parent); + Library(BackgroundThread* db_thread, TaskManager* task_manager_, + QObject* parent); static const char* kSongsTable; static const char* kDirsTable; @@ -53,15 +55,12 @@ class Library : public QObject { void WatcherInitialised(); private: + TaskManager* task_manager_; LibraryBackend* backend_; LibraryModel* model_; boost::scoped_ptr > watcher_factory_; BackgroundThread* watcher_; - - signals: - void ScanStarted(); - void ScanFinished(); }; #endif diff --git a/src/library/librarywatcher.cpp b/src/library/librarywatcher.cpp index f12dfd32e..4a1bf56df 100644 --- a/src/library/librarywatcher.cpp +++ b/src/library/librarywatcher.cpp @@ -16,6 +16,7 @@ #include "librarywatcher.h" #include "librarybackend.h" +#include "core/taskmanager.h" #include #include @@ -35,6 +36,8 @@ const char* LibraryWatcher::kSettingsGroup = "LibraryWatcher"; LibraryWatcher::LibraryWatcher(QObject* parent) : QObject(parent), + backend_(NULL), + task_manager_(NULL), stop_requested_(false), scan_on_startup_(true), rescan_timer_(new QTimer(this)), @@ -61,7 +64,7 @@ LibraryWatcher::ScanTransaction::ScanTransaction(LibraryWatcher* watcher, cached_songs_dirty_(true), known_subdirs_dirty_(true) { - emit watcher_->ScanStarted(); + task_id_ = watcher_->task_manager_->StartTask(tr("Updating library")); } LibraryWatcher::ScanTransaction::~ScanTransaction() { @@ -83,7 +86,7 @@ LibraryWatcher::ScanTransaction::~ScanTransaction() { if (!touched_subdirs.isEmpty()) emit watcher_->SubdirsMTimeUpdated(touched_subdirs); - emit watcher_->ScanFinished(); + watcher_->task_manager_->SetTaskFinished(task_id_); // Watch the new subdirectories foreach (const Subdirectory& subdir, new_subdirs) { diff --git a/src/library/librarywatcher.h b/src/library/librarywatcher.h index c8fe5b810..7f7e4b5b1 100644 --- a/src/library/librarywatcher.h +++ b/src/library/librarywatcher.h @@ -28,6 +28,7 @@ class QFileSystemWatcher; class QTimer; class LibraryBackend; +class TaskManager; class LibraryWatcher : public QObject { Q_OBJECT @@ -38,6 +39,7 @@ class LibraryWatcher : public QObject { static const char* kSettingsGroup; void SetBackend(LibraryBackend* backend) { backend_ = backend; } + void SetTaskManager(TaskManager* task_manager) { task_manager_ = task_manager; } void IncrementalScanAsync(); void Stop() { stop_requested_ = true; } @@ -50,9 +52,6 @@ class LibraryWatcher : public QObject { void SubdirsMTimeUpdated(const SubdirectoryList& subdirs); void CompilationsNeedUpdating(); - void ScanStarted(); - void ScanFinished(); - public slots: void ReloadSettings(); void AddDirectory(const Directory& dir, const SubdirectoryList& subdirs); @@ -92,6 +91,8 @@ class LibraryWatcher : public QObject { ScanTransaction(const ScanTransaction&) {} ScanTransaction& operator =(const ScanTransaction&) { return *this; } + int task_id_; + int dir_; bool incremental_; LibraryWatcher* watcher_; @@ -126,6 +127,7 @@ class LibraryWatcher : public QObject { }; LibraryBackend* backend_; + TaskManager* task_manager_; bool stop_requested_; bool scan_on_startup_; diff --git a/src/playlist/playlist.cpp b/src/playlist/playlist.cpp index 5a1f1339b..753ca2409 100644 --- a/src/playlist/playlist.cpp +++ b/src/playlist/playlist.cpp @@ -49,10 +49,12 @@ using boost::shared_ptr; const char* Playlist::kRowsMimetype = "application/x-clementine-playlist-rows"; const char* Playlist::kPlayNowMimetype = "application/x-clementine-play-now"; -Playlist::Playlist(PlaylistBackend* backend, int id, QObject *parent) +Playlist::Playlist(PlaylistBackend* backend, TaskManager* task_manager, + int id, QObject *parent) : QAbstractListModel(parent), proxy_(new PlaylistFilter(this)), backend_(backend), + task_manager_(task_manager), id_(id), current_is_paused_(false), current_virtual_index_(-1), @@ -484,9 +486,7 @@ bool Playlist::dropMimeData(const QMimeData* data, Qt::DropAction action, int ro } void Playlist::InsertUrls(const QList &urls, bool play_now, int pos) { - SongLoaderInserter* inserter = new SongLoaderInserter(this); - connect(inserter, SIGNAL(AsyncLoadStarted()), SIGNAL(LoadTracksStarted())); - connect(inserter, SIGNAL(AsyncLoadFinished()), SIGNAL(LoadTracksFinished())); + SongLoaderInserter* inserter = new SongLoaderInserter(task_manager_, this); connect(inserter, SIGNAL(Error(QString)), SIGNAL(LoadTracksError(QString))); connect(inserter, SIGNAL(PlayRequested(QModelIndex)), SIGNAL(PlayRequested(QModelIndex))); diff --git a/src/playlist/playlist.h b/src/playlist/playlist.h index ecda3d796..40601058f 100644 --- a/src/playlist/playlist.h +++ b/src/playlist/playlist.h @@ -30,6 +30,7 @@ class RadioService; class PlaylistBackend; class PlaylistFilter; +class TaskManager; class QSortFilterProxyModel; class QUndoStack; @@ -48,7 +49,8 @@ class Playlist : public QAbstractListModel { friend class PlaylistUndoCommands::MoveItems; public: - Playlist(PlaylistBackend* backend, int id, QObject* parent = 0); + Playlist(PlaylistBackend* backend, TaskManager* task_manager, int id, + QObject* parent = 0); ~Playlist(); enum Column { @@ -175,8 +177,6 @@ class Playlist : public QAbstractListModel { void PlaylistChanged(); - void LoadTracksStarted(); - void LoadTracksFinished(); void LoadTracksError(const QString& message); private: @@ -198,6 +198,7 @@ class Playlist : public QAbstractListModel { PlaylistFilter* proxy_; PlaylistBackend* backend_; + TaskManager* task_manager_; int id_; PlaylistItemList items_; diff --git a/src/playlist/playlistmanager.cpp b/src/playlist/playlistmanager.cpp index 5a3807a7d..090c0bb5a 100644 --- a/src/playlist/playlistmanager.cpp +++ b/src/playlist/playlistmanager.cpp @@ -25,8 +25,9 @@ #include #include -PlaylistManager::PlaylistManager(QObject *parent) +PlaylistManager::PlaylistManager(TaskManager* task_manager, QObject *parent) : QObject(parent), + task_manager_(task_manager), playlist_backend_(NULL), library_backend_(NULL), sequence_(NULL), @@ -61,15 +62,13 @@ void PlaylistManager::Init(LibraryBackend* library_backend, } Playlist* PlaylistManager::AddPlaylist(int id, const QString& name) { - Playlist* ret = new Playlist(playlist_backend_, id); + Playlist* ret = new Playlist(playlist_backend_, task_manager_, id); ret->set_sequence(sequence_); connect(ret, SIGNAL(CurrentSongChanged(Song)), SIGNAL(CurrentSongChanged(Song))); connect(ret, SIGNAL(PlaylistChanged()), SIGNAL(PlaylistChanged())); connect(ret, SIGNAL(PlaylistChanged()), SLOT(UpdateSummaryText())); connect(ret, SIGNAL(EditingFinished(QModelIndex)), SIGNAL(EditingFinished(QModelIndex))); - connect(ret, SIGNAL(LoadTracksStarted()), SIGNAL(LoadTracksStarted())); - connect(ret, SIGNAL(LoadTracksFinished()), SIGNAL(LoadTracksFinished())); connect(ret, SIGNAL(LoadTracksError(QString)), SIGNAL(Error(QString))); connect(ret, SIGNAL(PlayRequested(QModelIndex)), SIGNAL(PlayRequested(QModelIndex))); diff --git a/src/playlist/playlistmanager.h b/src/playlist/playlistmanager.h index a179d02c6..7f287f76e 100644 --- a/src/playlist/playlistmanager.h +++ b/src/playlist/playlistmanager.h @@ -28,6 +28,7 @@ class Playlist; class PlaylistBackend; class PlaylistParser; class PlaylistSequence; +class TaskManager; class QModelIndex; class QUrl; @@ -36,7 +37,7 @@ class PlaylistManager : public QObject { Q_OBJECT public: - PlaylistManager(QObject *parent = 0); + PlaylistManager(TaskManager* task_manager, QObject *parent = 0); ~PlaylistManager(); int current_id() const { return current_; } @@ -51,6 +52,7 @@ public: void Init(LibraryBackend* library_backend, PlaylistBackend* playlist_backend, PlaylistSequence* sequence); + TaskManager* task_manager() const { return task_manager_; } LibraryBackend* library_backend() const { return library_backend_; } PlaylistBackend* playlist_backend() const { return playlist_backend_; } PlaylistSequence* sequence() const { return sequence_; } @@ -93,8 +95,6 @@ signals: void PlaylistChanged(); void EditingFinished(const QModelIndex& index); void PlayRequested(const QModelIndex& index); - void LoadTracksStarted(); - void LoadTracksFinished(); private slots: void UpdateSummaryText(); @@ -110,6 +110,7 @@ private: QString name; }; + TaskManager* task_manager_; PlaylistBackend* playlist_backend_; LibraryBackend* library_backend_; PlaylistSequence* sequence_; diff --git a/src/playlist/songloaderinserter.cpp b/src/playlist/songloaderinserter.cpp index 01ed3d7c2..74ed4a8db 100644 --- a/src/playlist/songloaderinserter.cpp +++ b/src/playlist/songloaderinserter.cpp @@ -17,12 +17,16 @@ #include "playlist.h" #include "songloaderinserter.h" #include "core/songloader.h" +#include "core/taskmanager.h" -SongLoaderInserter::SongLoaderInserter(QObject *parent) +SongLoaderInserter::SongLoaderInserter(TaskManager* task_manager, QObject *parent) : QObject(parent), + task_manager_(task_manager), destination_(NULL), row_(-1), - play_now_(true) + play_now_(true), + async_load_id_(0), + async_progress_(0) { } @@ -55,8 +59,11 @@ void SongLoaderInserter::Load(Playlist *destination, int row, bool play_now, if (pending_.isEmpty()) Finished(); - else - emit AsyncLoadStarted(); + else { + async_progress_ = 0; + async_load_id_ = task_manager_->StartTask(tr("Loading tracks")); + task_manager_->SetTaskProgress(async_load_id_, async_progress_, pending_.count()); + } } void SongLoaderInserter::PendingLoadFinished(bool success) { @@ -72,8 +79,9 @@ void SongLoaderInserter::PendingLoadFinished(bool success) { loader->deleteLater(); + task_manager_->SetTaskProgress(async_load_id_, ++async_progress_); if (pending_.isEmpty()) { - emit AsyncLoadFinished(); + task_manager_->SetTaskFinished(async_load_id_); Finished(); } } diff --git a/src/playlist/songloaderinserter.h b/src/playlist/songloaderinserter.h index d229356d4..c6c87bdb8 100644 --- a/src/playlist/songloaderinserter.h +++ b/src/playlist/songloaderinserter.h @@ -25,21 +25,20 @@ class Playlist; class SongLoader; +class TaskManager; class QModelIndex; class SongLoaderInserter : public QObject { Q_OBJECT public: - SongLoaderInserter(QObject* parent = 0); + SongLoaderInserter(TaskManager* task_manager, QObject* parent = 0); ~SongLoaderInserter(); void Load(Playlist* destination, int row, bool play_now, const QList& urls); signals: void Error(const QString& message); - void AsyncLoadStarted(); - void AsyncLoadFinished(); void PlayRequested(const QModelIndex& index); private slots: @@ -49,6 +48,8 @@ private: void Finished(); private: + TaskManager* task_manager_; + Playlist* destination_; int row_; bool play_now_; @@ -56,6 +57,8 @@ private: SongList songs_; QSet pending_; + int async_load_id_; + int async_progress_; }; #endif // SONGLOADERINSERTER_H diff --git a/src/radio/lastfmservice.cpp b/src/radio/lastfmservice.cpp index d155bcc14..f559fcfb5 100644 --- a/src/radio/lastfmservice.cpp +++ b/src/radio/lastfmservice.cpp @@ -20,6 +20,7 @@ #include "radiomodel.h" #include "core/networkaccessmanager.h" #include "core/song.h" +#include "core/taskmanager.h" #include "ui/iconloader.h" #include "ui/settingsdialog.h" @@ -55,6 +56,7 @@ LastFMService::LastFMService(RadioModel* parent) station_dialog_(new LastFMStationDialog), context_menu_(new QMenu), initial_tune_(false), + tune_task_id_(0), scrobbling_enabled_(false), artist_list_(NULL), tag_list_(NULL), @@ -287,7 +289,8 @@ PlaylistItem::SpecialLoadResult LastFMService::StartLoading(const QUrl& url) { if (!IsAuthenticated()) return PlaylistItem::SpecialLoadResult(); - emit TaskStarted(MultiLoadingIndicator::LoadingLastFM); + if (!tune_task_id_) + tune_task_id_ = model()->task_manager()->StartTask(tr("Loading Last.fm radio")); last_url_ = url; initial_tune_ = true; @@ -332,7 +335,8 @@ void LastFMService::TunerError(lastfm::ws::Error error) { if (!initial_tune_) return; - emit TaskFinished(MultiLoadingIndicator::LoadingLastFM); + model()->task_manager()->SetTaskFinished(tune_task_id_); + tune_task_id_ = 0; if (error == lastfm::ws::NotEnoughContent) { emit AsyncLoadFinished(PlaylistItem::SpecialLoadResult( @@ -616,7 +620,8 @@ void LastFMService::FetchMoreTracksFinished() { return; } reply->deleteLater(); - emit TaskFinished(MultiLoadingIndicator::LoadingLastFM); + model()->task_manager()->SetTaskFinished(tune_task_id_); + tune_task_id_ = 0; try { const XmlQuery& query = lastfm::ws::parse(reply); diff --git a/src/radio/lastfmservice.h b/src/radio/lastfmservice.h index 9d8ff6fc7..f224ac538 100644 --- a/src/radio/lastfmservice.h +++ b/src/radio/lastfmservice.h @@ -167,6 +167,7 @@ class LastFMService : public RadioService { QUrl last_url_; bool initial_tune_; + int tune_task_id_; bool scrobbling_enabled_; bool buttons_visible_; diff --git a/src/radio/magnatuneservice.cpp b/src/radio/magnatuneservice.cpp index 9f9a58128..c56ebd20c 100644 --- a/src/radio/magnatuneservice.cpp +++ b/src/radio/magnatuneservice.cpp @@ -21,6 +21,7 @@ #include "core/mergedproxymodel.h" #include "core/networkaccessmanager.h" #include "core/song.h" +#include "core/taskmanager.h" #include "library/librarymodel.h" #include "library/librarybackend.h" #include "library/libraryfilterwidget.h" @@ -63,6 +64,7 @@ MagnatuneService::MagnatuneService(RadioModel* parent) library_model_(NULL), library_filter_(NULL), library_sort_model_(new QSortFilterProxyModel(this)), + load_database_task_id_(0), membership_(Membership_None), format_(Format_Ogg), total_song_count_(0), @@ -151,13 +153,17 @@ void MagnatuneService::ReloadDatabase() { QNetworkReply* reply = network_->get(request); connect(reply, SIGNAL(finished()), SLOT(ReloadDatabaseFinished())); - emit TaskStarted(MultiLoadingIndicator::LoadingMagnatune); + if (!load_database_task_id_) + load_database_task_id_ = model()->task_manager()->StartTask( + tr("Downloading Magnatune catalogue")); } void MagnatuneService::ReloadDatabaseFinished() { QNetworkReply* reply = qobject_cast(sender()); - emit TaskFinished(MultiLoadingIndicator::LoadingMagnatune); + model()->task_manager()->SetTaskFinished(load_database_task_id_); + load_database_task_id_ = 0; + root_->lazy_loaded = true; if (reply->error() != QNetworkReply::NoError) { diff --git a/src/radio/magnatuneservice.h b/src/radio/magnatuneservice.h index 13b68aada..2dacfab51 100644 --- a/src/radio/magnatuneservice.h +++ b/src/radio/magnatuneservice.h @@ -112,6 +112,7 @@ class MagnatuneService : public RadioService { LibraryModel* library_model_; LibraryFilterWidget* library_filter_; QSortFilterProxyModel* library_sort_model_; + int load_database_task_id_; MembershipType membership_; QString username_; diff --git a/src/radio/radiomodel.cpp b/src/radio/radiomodel.cpp index e06545a04..7fd02569a 100644 --- a/src/radio/radiomodel.cpp +++ b/src/radio/radiomodel.cpp @@ -29,11 +29,13 @@ QMap RadioModel::sServices; RadioModel::RadioModel(BackgroundThread* db_thread, - NetworkAccessManager* network, QObject* parent) + NetworkAccessManager* network, TaskManager* task_manager, + QObject* parent) : SimpleTreeModel(new RadioItem(this), parent), db_thread_(db_thread), merged_model_(new MergedProxyModel(this)), network_(network), + task_manager_(task_manager), settings_dialog_(NULL) { Q_ASSERT(sServices.isEmpty()); @@ -51,8 +53,6 @@ void RadioModel::AddService(RadioService *service) { sServices[service->name()] = service; service->CreateRootItem(root_); - connect(service, SIGNAL(TaskStarted(MultiLoadingIndicator::TaskType)), SIGNAL(TaskStarted(MultiLoadingIndicator::TaskType))); - connect(service, SIGNAL(TaskFinished(MultiLoadingIndicator::TaskType)), SIGNAL(TaskFinished(MultiLoadingIndicator::TaskType))); connect(service, SIGNAL(AsyncLoadFinished(PlaylistItem::SpecialLoadResult)), SIGNAL(AsyncLoadFinished(PlaylistItem::SpecialLoadResult))); connect(service, SIGNAL(StreamError(QString)), SIGNAL(StreamError(QString))); connect(service, SIGNAL(StreamMetadataFound(QUrl,Song)), SIGNAL(StreamMetadataFound(QUrl,Song))); diff --git a/src/radio/radiomodel.h b/src/radio/radiomodel.h index 52848bf62..26909ce57 100644 --- a/src/radio/radiomodel.h +++ b/src/radio/radiomodel.h @@ -24,19 +24,21 @@ #include "playlist/playlistitem.h" #include "widgets/multiloadingindicator.h" -class NetworkAccessManager; -class RadioService; +class Database; class LastFMService; class MergedProxyModel; -class Database; +class NetworkAccessManager; +class RadioService; class SettingsDialog; +class TaskManager; class RadioModel : public SimpleTreeModel { Q_OBJECT public: RadioModel(BackgroundThread* db_thread, - NetworkAccessManager* network, QObject* parent = 0); + NetworkAccessManager* network, TaskManager* task_manager, + QObject* parent = 0); enum { Role_Type = Qt::UserRole + 1, @@ -74,11 +76,10 @@ class RadioModel : public SimpleTreeModel { BackgroundThread* db_thread() const { return db_thread_; } MergedProxyModel* merged_model() const { return merged_model_; } NetworkAccessManager* network() const { return network_; } + TaskManager* task_manager() const { return task_manager_; } SettingsDialog* settings_dialog() const { return settings_dialog_; } signals: - void TaskStarted(MultiLoadingIndicator::TaskType); - void TaskFinished(MultiLoadingIndicator::TaskType); void AsyncLoadFinished(const PlaylistItem::SpecialLoadResult& result); void StreamError(const QString& message); void StreamMetadataFound(const QUrl& original_url, const Song& song); @@ -98,6 +99,7 @@ class RadioModel : public SimpleTreeModel { BackgroundThread* db_thread_; MergedProxyModel* merged_model_; NetworkAccessManager* network_; + TaskManager* task_manager_; SettingsDialog* settings_dialog_; }; diff --git a/src/radio/radioservice.h b/src/radio/radioservice.h index 8b2c6516e..2481a78b9 100644 --- a/src/radio/radioservice.h +++ b/src/radio/radioservice.h @@ -62,9 +62,6 @@ class RadioService : public QObject { virtual QString Icon() { return QString(); } signals: - void TaskStarted(MultiLoadingIndicator::TaskType); - void TaskFinished(MultiLoadingIndicator::TaskType); - void AsyncLoadFinished(const PlaylistItem::SpecialLoadResult& result); void StreamError(const QString& message); void StreamMetadataFound(const QUrl& original_url, const Song& song); diff --git a/src/radio/somafmservice.cpp b/src/radio/somafmservice.cpp index 482e216fc..8fa39f27a 100644 --- a/src/radio/somafmservice.cpp +++ b/src/radio/somafmservice.cpp @@ -17,6 +17,7 @@ #include "somafmservice.h" #include "radiomodel.h" #include "core/networkaccessmanager.h" +#include "core/taskmanager.h" #include "ui/iconloader.h" #include @@ -38,6 +39,8 @@ SomaFMService::SomaFMService(RadioModel* parent) : RadioService(kServiceName, parent), root_(NULL), context_menu_(new QMenu), + get_channels_task_id_(0), + get_stream_task_id_(0), network_(parent->network()->network()) { context_menu_->addAction(IconLoader::Load("media-playback-start"), tr("Add to playlist"), this, SLOT(AddToPlaylist())); @@ -84,7 +87,8 @@ PlaylistItem::SpecialLoadResult SomaFMService::StartLoading(const QUrl& url) { QNetworkReply* reply = network_->get(request); connect(reply, SIGNAL(finished()), SLOT(LoadPlaylistFinished())); - emit TaskStarted(MultiLoadingIndicator::LoadingStream); + if (!get_stream_task_id_) + get_stream_task_id_ = model()->task_manager()->StartTask(tr("Loading stream")); return PlaylistItem::SpecialLoadResult( PlaylistItem::SpecialLoadResult::WillLoadAsynchronously, url); @@ -92,7 +96,8 @@ PlaylistItem::SpecialLoadResult SomaFMService::StartLoading(const QUrl& url) { void SomaFMService::LoadPlaylistFinished() { QNetworkReply* reply = qobject_cast(sender()); - emit TaskFinished(MultiLoadingIndicator::LoadingStream); + model()->task_manager()->SetTaskFinished(get_stream_task_id_); + get_stream_task_id_ = 0; QUrl original_url(reply->url()); @@ -126,12 +131,14 @@ void SomaFMService::RefreshChannels() { QNetworkReply* reply = network_->get(request); connect(reply, SIGNAL(finished()), SLOT(RefreshChannelsFinished())); - emit TaskStarted(MultiLoadingIndicator::GettingChannels); + if (!get_channels_task_id_) + get_channels_task_id_ = model()->task_manager()->StartTask(tr("Getting channels")); } void SomaFMService::RefreshChannelsFinished() { QNetworkReply* reply = qobject_cast(sender()); - emit TaskFinished(MultiLoadingIndicator::GettingChannels); + model()->task_manager()->SetTaskFinished(get_channels_task_id_); + get_channels_task_id_ = 0; if (reply->error() != QNetworkReply::NoError) { // TODO: Error handling diff --git a/src/radio/somafmservice.h b/src/radio/somafmservice.h index 649a16df9..611defbd3 100644 --- a/src/radio/somafmservice.h +++ b/src/radio/somafmservice.h @@ -66,6 +66,9 @@ class SomaFMService : public RadioService { QMenu* context_menu_; RadioItem* context_item_; + int get_channels_task_id_; + int get_stream_task_id_; + QNetworkAccessManager* network_; }; diff --git a/src/translations/ar.po b/src/translations/ar.po index 039b37a67..8246c39c1 100644 --- a/src/translations/ar.po +++ b/src/translations/ar.po @@ -181,6 +181,9 @@ msgstr "مكتبتك فارغة!" msgid "Click here to add some music" msgstr "اضغط هنا لإضافة بعض الموسيقى" +msgid "Updating library" +msgstr "" + msgid "Title" msgstr "العنوان" @@ -351,6 +354,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "" @@ -429,6 +435,9 @@ msgstr "" msgid "Last.fm Tag Radio: %1" msgstr "" +msgid "Loading Last.fm radio" +msgstr "" + msgid "Invalid service" msgstr "خدمة غير متاحة" @@ -539,6 +548,9 @@ msgstr "" msgid "Search Magnatune" msgstr "" +msgid "Downloading Magnatune catalogue" +msgstr "" + msgid "Radio service couldn't be loaded :-(" msgstr "" @@ -557,6 +569,12 @@ msgstr "" msgid "Refresh channels" msgstr "" +msgid "Loading stream" +msgstr "" + +msgid "Getting channels" +msgstr "" + msgid "Start transcoding" msgstr "" @@ -770,27 +788,6 @@ msgstr "" msgid "Drag to reposition" msgstr "" -msgid "Loading audio engine" -msgstr "" - -msgid "Updating library" -msgstr "" - -msgid "Getting channels" -msgstr "" - -msgid "Loading stream" -msgstr "" - -msgid "Loading Last.fm radio" -msgstr "" - -msgid "Downloading Magnatune catalogue" -msgstr "" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" diff --git a/src/translations/cs.po b/src/translations/cs.po index 4a8113b40..bc05c7b4b 100644 --- a/src/translations/cs.po +++ b/src/translations/cs.po @@ -182,6 +182,9 @@ msgstr "Vaše knihovna je prázdná!" msgid "Click here to add some music" msgstr "Zde klikněte pro řidání hudby" +msgid "Updating library" +msgstr "Aktualizuji knihovnu" + msgid "Title" msgstr "Titulek" @@ -352,6 +355,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "" @@ -430,6 +436,9 @@ msgstr "" msgid "Last.fm Tag Radio: %1" msgstr "" +msgid "Loading Last.fm radio" +msgstr "Načítám rádio Last.fm" + msgid "Invalid service" msgstr "Neplatná služba" @@ -540,6 +549,9 @@ msgstr "" msgid "Search Magnatune" msgstr "" +msgid "Downloading Magnatune catalogue" +msgstr "" + msgid "Radio service couldn't be loaded :-(" msgstr "Služba rádia nemohla být načtena :-(" @@ -558,6 +570,12 @@ msgstr "Otevřít soma.fm v prohlížeči" msgid "Refresh channels" msgstr "Obnovit kanály" +msgid "Loading stream" +msgstr "Načítám kanál" + +msgid "Getting channels" +msgstr "Získávám kanály" + msgid "Start transcoding" msgstr "" @@ -772,27 +790,6 @@ msgstr "OSD náhled" msgid "Drag to reposition" msgstr "Přemístit přetažením" -msgid "Loading audio engine" -msgstr "Načítá se podpora audia" - -msgid "Updating library" -msgstr "Aktualizuji knihovnu" - -msgid "Getting channels" -msgstr "Získávám kanály" - -msgid "Loading stream" -msgstr "Načítám kanál" - -msgid "Loading Last.fm radio" -msgstr "Načítám rádio Last.fm" - -msgid "Downloading Magnatune catalogue" -msgstr "" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" @@ -1533,6 +1530,9 @@ msgstr "" msgid "Delay between visualizations" msgstr "" +#~ msgid "Loading audio engine" +#~ msgstr "Načítá se podpora audia" + #~ msgid "Show section" #~ msgstr "Zobrazit skeci" diff --git a/src/translations/da.po b/src/translations/da.po index 4107c3269..a985b5938 100644 --- a/src/translations/da.po +++ b/src/translations/da.po @@ -184,6 +184,9 @@ msgstr "Dit bibliotek er tomt!" msgid "Click here to add some music" msgstr "Klik her for at tilføje musik" +msgid "Updating library" +msgstr "Opdaterer bibliotek" + msgid "Title" msgstr "Titel" @@ -354,6 +357,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "" @@ -432,6 +438,9 @@ msgstr "Last.fm kunstnere der minder om %1" msgid "Last.fm Tag Radio: %1" msgstr "Last.fm mærkeradio: %1" +msgid "Loading Last.fm radio" +msgstr "Indlæser Last.fm-radio" + msgid "Invalid service" msgstr "Ugyldig tjeneste" @@ -542,6 +551,9 @@ msgstr "" msgid "Search Magnatune" msgstr "" +msgid "Downloading Magnatune catalogue" +msgstr "" + msgid "Radio service couldn't be loaded :-(" msgstr "Radiotjeneste kunne ikke indlæses :-(" @@ -560,6 +572,12 @@ msgstr "Åbn somafm.com i webbrowser" msgid "Refresh channels" msgstr "Genopfrisk kanaler" +msgid "Loading stream" +msgstr "Indlæser stream" + +msgid "Getting channels" +msgstr "Henter kanaler" + msgid "Start transcoding" msgstr "" @@ -775,27 +793,6 @@ msgstr "Forhåndsvisning af OSD" msgid "Drag to reposition" msgstr "Træk for at skifte position" -msgid "Loading audio engine" -msgstr "Indlæser lydmotor" - -msgid "Updating library" -msgstr "Opdaterer bibliotek" - -msgid "Getting channels" -msgstr "Henter kanaler" - -msgid "Loading stream" -msgstr "Indlæser stream" - -msgid "Loading Last.fm radio" -msgstr "Indlæser Last.fm-radio" - -msgid "Downloading Magnatune catalogue" -msgstr "" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" @@ -1536,6 +1533,9 @@ msgstr "" msgid "Delay between visualizations" msgstr "" +#~ msgid "Loading audio engine" +#~ msgstr "Indlæser lydmotor" + #~ msgid "Copy to library..." #~ msgstr "Kopiér til bibliotek..." diff --git a/src/translations/de.po b/src/translations/de.po index d323cc4d5..9a9bdece5 100644 --- a/src/translations/de.po +++ b/src/translations/de.po @@ -181,6 +181,9 @@ msgstr "Ihre Musiksammlung ist leer!" msgid "Click here to add some music" msgstr "Klicken Sie hier um das zu ändern" +msgid "Updating library" +msgstr "Aktualisiere Musiksammlung" + msgid "Title" msgstr "Titel" @@ -352,6 +355,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "%1 Wiedergabelisten (%2)" @@ -430,6 +436,9 @@ msgstr "Last.fm Ähnliche Künstler wie %1" msgid "Last.fm Tag Radio: %1" msgstr "Last.fm Tag Radio: %1" +msgid "Loading Last.fm radio" +msgstr "Last.fm Radio wird geladen" + msgid "Invalid service" msgstr "Ungültiger Service" @@ -540,6 +549,9 @@ msgstr "" msgid "Search Magnatune" msgstr "Magnatune durchsuchen" +msgid "Downloading Magnatune catalogue" +msgstr "Magnatune Katalog wird geladen" + msgid "Radio service couldn't be loaded :-(" msgstr "Radioservice konnte nicht geladen werden" @@ -558,6 +570,12 @@ msgstr "somafm.com im Browser öffnen" msgid "Refresh channels" msgstr "Channels neu laden" +msgid "Loading stream" +msgstr "Lade Stream" + +msgid "Getting channels" +msgstr "Lade Channels" + msgid "Start transcoding" msgstr "Konvertieren" @@ -774,27 +792,6 @@ msgstr "OSD Vorschau" msgid "Drag to reposition" msgstr "Klicken und ziehen um die Position zu ändern" -msgid "Loading audio engine" -msgstr "Audio Engine wird geladen" - -msgid "Updating library" -msgstr "Aktualisiere Musiksammlung" - -msgid "Getting channels" -msgstr "Lade Channels" - -msgid "Loading stream" -msgstr "Lade Stream" - -msgid "Loading Last.fm radio" -msgstr "Last.fm Radio wird geladen" - -msgid "Downloading Magnatune catalogue" -msgstr "Magnatune Katalog wird geladen" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" @@ -1537,6 +1534,9 @@ msgstr "Von der Liste wählen" msgid "Delay between visualizations" msgstr "" +#~ msgid "Loading audio engine" +#~ msgstr "Audio Engine wird geladen" + #~ msgid "Show section" #~ msgstr "Spalten" diff --git a/src/translations/el.po b/src/translations/el.po index ff48597ef..17bc884aa 100644 --- a/src/translations/el.po +++ b/src/translations/el.po @@ -183,6 +183,9 @@ msgstr "Η βιβλιοθήκη σας είναι άδεια!" msgid "Click here to add some music" msgstr "Κλικ εδώ για να προσθέσετε μουσική" +msgid "Updating library" +msgstr "Ενημέρωση λίστας" + msgid "Title" msgstr "Τίτλος" @@ -355,6 +358,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "%1 λίστες αναπαραγωγής (%2)" @@ -433,6 +439,9 @@ msgstr "Καλλιτέχνες του Last.fm όμοιοι με %1" msgid "Last.fm Tag Radio: %1" msgstr "Εττικέτες ραδιοφώνου του Last.fm: %1" +msgid "Loading Last.fm radio" +msgstr "Φόρτωμα Last.fm" + msgid "Invalid service" msgstr "Εσφαλμένη υπηρεσία" @@ -543,6 +552,9 @@ msgstr "" msgid "Search Magnatune" msgstr "Εύρεση στο Magnatune" +msgid "Downloading Magnatune catalogue" +msgstr "Μεταφόρτωση καταλόγου του Magnatune" + msgid "Radio service couldn't be loaded :-(" msgstr "Η υπηρεσίες ραδιοφώνου απέτυχαν να φορτωθούν :-(" @@ -561,6 +573,12 @@ msgstr "Άνοιγμα του somafm.com στον περιηγητή" msgid "Refresh channels" msgstr "Ανανέωση καναλιών" +msgid "Loading stream" +msgstr "Φόρτωμα ροής (stream)" + +msgid "Getting channels" +msgstr "Λήψη καναλιών" + msgid "Start transcoding" msgstr "Εκκίνηση επανακωδικοποίησης" @@ -777,27 +795,6 @@ msgstr "Προ-επισκόπηση OSD" msgid "Drag to reposition" msgstr "Σύρετε για μετακίνηση" -msgid "Loading audio engine" -msgstr "Φόρτωμα της μηχανής ήχου" - -msgid "Updating library" -msgstr "Ενημέρωση λίστας" - -msgid "Getting channels" -msgstr "Λήψη καναλιών" - -msgid "Loading stream" -msgstr "Φόρτωμα ροής (stream)" - -msgid "Loading Last.fm radio" -msgstr "Φόρτωμα Last.fm" - -msgid "Downloading Magnatune catalogue" -msgstr "Μεταφόρτωση καταλόγου του Magnatune" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" @@ -1539,6 +1536,9 @@ msgstr "Επιλογή από τη λίστα" msgid "Delay between visualizations" msgstr "" +#~ msgid "Loading audio engine" +#~ msgstr "Φόρτωμα της μηχανής ήχου" + #~ msgid "Show section" #~ msgstr "Εμφάνιση τμήματος" diff --git a/src/translations/en_CA.po b/src/translations/en_CA.po index 542a5d5ce..05dca8233 100644 --- a/src/translations/en_CA.po +++ b/src/translations/en_CA.po @@ -181,6 +181,9 @@ msgstr "Your library is empty!" msgid "Click here to add some music" msgstr "Click here to add some music" +msgid "Updating library" +msgstr "Updating library" + msgid "Title" msgstr "Title" @@ -352,6 +355,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "%1 playlists (%2)" @@ -430,6 +436,9 @@ msgstr "Last.fm Similar Artists to %1" msgid "Last.fm Tag Radio: %1" msgstr "Last.fm Tag Radio: %1" +msgid "Loading Last.fm radio" +msgstr "Loading Last.fm radio" + msgid "Invalid service" msgstr "Invalid service" @@ -540,6 +549,9 @@ msgstr "" msgid "Search Magnatune" msgstr "Search Magnatune" +msgid "Downloading Magnatune catalogue" +msgstr "Downloading Magnatune catalogue" + msgid "Radio service couldn't be loaded :-(" msgstr "Radio service couldn't be loaded :-(" @@ -558,6 +570,12 @@ msgstr "Open somafm.com in browser" msgid "Refresh channels" msgstr "Refresh channels" +msgid "Loading stream" +msgstr "Loading stream" + +msgid "Getting channels" +msgstr "Getting channels" + msgid "Start transcoding" msgstr "Start transcoding" @@ -774,27 +792,6 @@ msgstr "OSD Preview" msgid "Drag to reposition" msgstr "Drag to reposition" -msgid "Loading audio engine" -msgstr "Loading audio engine" - -msgid "Updating library" -msgstr "Updating library" - -msgid "Getting channels" -msgstr "Getting channels" - -msgid "Loading stream" -msgstr "Loading stream" - -msgid "Loading Last.fm radio" -msgstr "Loading Last.fm radio" - -msgid "Downloading Magnatune catalogue" -msgstr "Downloading Magnatune catalogue" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" @@ -1534,6 +1531,9 @@ msgstr "" msgid "Delay between visualizations" msgstr "Delay between visualisations" +#~ msgid "Loading audio engine" +#~ msgstr "Loading audio engine" + #~ msgid "Show section" #~ msgstr "Show section" diff --git a/src/translations/en_GB.po b/src/translations/en_GB.po index 699477673..b88504e8f 100644 --- a/src/translations/en_GB.po +++ b/src/translations/en_GB.po @@ -181,6 +181,9 @@ msgstr "Your library is empty!" msgid "Click here to add some music" msgstr "Click here to add some music" +msgid "Updating library" +msgstr "Updating library" + msgid "Title" msgstr "Title" @@ -351,6 +354,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "" @@ -429,6 +435,9 @@ msgstr "Last.fm Similar Artists to %1" msgid "Last.fm Tag Radio: %1" msgstr "Last.fm Tag Radio: %1" +msgid "Loading Last.fm radio" +msgstr "Loading Last.fm radio" + msgid "Invalid service" msgstr "Invalid service" @@ -539,6 +548,9 @@ msgstr "" msgid "Search Magnatune" msgstr "" +msgid "Downloading Magnatune catalogue" +msgstr "" + msgid "Radio service couldn't be loaded :-(" msgstr "Radio service couldn't be loaded :-(" @@ -557,6 +569,12 @@ msgstr "Open somafm.com in browser" msgid "Refresh channels" msgstr "Refresh channels" +msgid "Loading stream" +msgstr "Loading stream" + +msgid "Getting channels" +msgstr "Getting channels" + msgid "Start transcoding" msgstr "" @@ -771,27 +789,6 @@ msgstr "OSD Preview" msgid "Drag to reposition" msgstr "Drag to reposition" -msgid "Loading audio engine" -msgstr "Loading audio engine" - -msgid "Updating library" -msgstr "Updating library" - -msgid "Getting channels" -msgstr "Getting channels" - -msgid "Loading stream" -msgstr "Loading stream" - -msgid "Loading Last.fm radio" -msgstr "Loading Last.fm radio" - -msgid "Downloading Magnatune catalogue" -msgstr "" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" @@ -1531,6 +1528,9 @@ msgstr "" msgid "Delay between visualizations" msgstr "Delay between visualisations" +#~ msgid "Loading audio engine" +#~ msgstr "Loading audio engine" + #~ msgid "Show section" #~ msgstr "Show section" diff --git a/src/translations/es.po b/src/translations/es.po index d9d258b85..d7b3d1a72 100644 --- a/src/translations/es.po +++ b/src/translations/es.po @@ -182,6 +182,9 @@ msgstr "¡Tu colleción está vacia!" msgid "Click here to add some music" msgstr "Haz clic aquí para añadir música" +msgid "Updating library" +msgstr "Actualizando colección" + msgid "Title" msgstr "Título" @@ -354,6 +357,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "%1 listas de reproducción (%2)" @@ -432,6 +438,9 @@ msgstr "Artistas Similares en Last.fm a %1" msgid "Last.fm Tag Radio: %1" msgstr "Radio en Last.fm de la Etiqueta %1" +msgid "Loading Last.fm radio" +msgstr "Cargando radio de Last.fm" + msgid "Invalid service" msgstr "Servicio inválido" @@ -542,6 +551,9 @@ msgstr "" msgid "Search Magnatune" msgstr "Buscar en Magnatune" +msgid "Downloading Magnatune catalogue" +msgstr "Descargando el catálogo de Magnatune" + msgid "Radio service couldn't be loaded :-(" msgstr "Servicio de radio no pudo ser cargado :-(" @@ -560,6 +572,12 @@ msgstr "Abrir somafm.com en el navegador" msgid "Refresh channels" msgstr "Actualizar canales" +msgid "Loading stream" +msgstr "Cargando flujo" + +msgid "Getting channels" +msgstr "Obteniendo canales" + msgid "Start transcoding" msgstr "Comenzar conversión" @@ -777,27 +795,6 @@ msgstr "Previsualización del OSD" msgid "Drag to reposition" msgstr "Arrastrar para reposicionar" -msgid "Loading audio engine" -msgstr "Cargando motor de sonido" - -msgid "Updating library" -msgstr "Actualizando colección" - -msgid "Getting channels" -msgstr "Obteniendo canales" - -msgid "Loading stream" -msgstr "Cargando flujo" - -msgid "Loading Last.fm radio" -msgstr "Cargando radio de Last.fm" - -msgid "Downloading Magnatune catalogue" -msgstr "Descargando el catálogo de Magnatune" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" @@ -1545,6 +1542,9 @@ msgstr "Elegir de la lista" msgid "Delay between visualizations" msgstr "" +#~ msgid "Loading audio engine" +#~ msgstr "Cargando motor de sonido" + #~ msgid "Show section" #~ msgstr "Mostrar columna" diff --git a/src/translations/fi.po b/src/translations/fi.po index fa6104b82..cda83a1f8 100644 --- a/src/translations/fi.po +++ b/src/translations/fi.po @@ -181,6 +181,9 @@ msgstr "Kirjasto on tyhjä!" msgid "Click here to add some music" msgstr "Paina tästä lisätäksesi musiikkia" +msgid "Updating library" +msgstr "" + msgid "Title" msgstr "Kappale" @@ -351,6 +354,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "" @@ -429,6 +435,9 @@ msgstr "" msgid "Last.fm Tag Radio: %1" msgstr "" +msgid "Loading Last.fm radio" +msgstr "" + msgid "Invalid service" msgstr "" @@ -539,6 +548,9 @@ msgstr "" msgid "Search Magnatune" msgstr "" +msgid "Downloading Magnatune catalogue" +msgstr "" + msgid "Radio service couldn't be loaded :-(" msgstr "" @@ -557,6 +569,12 @@ msgstr "" msgid "Refresh channels" msgstr "" +msgid "Loading stream" +msgstr "" + +msgid "Getting channels" +msgstr "" + msgid "Start transcoding" msgstr "" @@ -770,27 +788,6 @@ msgstr "" msgid "Drag to reposition" msgstr "" -msgid "Loading audio engine" -msgstr "" - -msgid "Updating library" -msgstr "" - -msgid "Getting channels" -msgstr "" - -msgid "Loading stream" -msgstr "" - -msgid "Loading Last.fm radio" -msgstr "" - -msgid "Downloading Magnatune catalogue" -msgstr "" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" diff --git a/src/translations/fr.po b/src/translations/fr.po index 528892d47..214bf72b5 100644 --- a/src/translations/fr.po +++ b/src/translations/fr.po @@ -182,6 +182,9 @@ msgstr "Votre bibliothèque est vide !" msgid "Click here to add some music" msgstr "Cliquez ici pour créer votre bibliothèque musicale" +msgid "Updating library" +msgstr "Mise à jour de la bibliothèque" + msgid "Title" msgstr "Titre" @@ -352,6 +355,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "" @@ -430,6 +436,9 @@ msgstr "Artistes Last.fm similaires à %1" msgid "Last.fm Tag Radio: %1" msgstr "" +msgid "Loading Last.fm radio" +msgstr "Chargement de la radio Last.fm" + msgid "Invalid service" msgstr "Service invalide" @@ -542,6 +551,9 @@ msgstr "" msgid "Search Magnatune" msgstr "" +msgid "Downloading Magnatune catalogue" +msgstr "" + msgid "Radio service couldn't be loaded :-(" msgstr "Le service radio n'a pas pu être chargé :-(" @@ -560,6 +572,12 @@ msgstr "Ouvrir somafm.com dans le navigateur" msgid "Refresh channels" msgstr "Mettre à jour les canaux" +msgid "Loading stream" +msgstr "Chargement du flux" + +msgid "Getting channels" +msgstr "Récupération des canaux" + msgid "Start transcoding" msgstr "" @@ -774,27 +792,6 @@ msgstr "Prévisualisation de l'affichage à l'écran (OSD)" msgid "Drag to reposition" msgstr "Déplacer pour repositionner" -msgid "Loading audio engine" -msgstr "Chargement du moteur audio" - -msgid "Updating library" -msgstr "Mise à jour de la bibliothèque" - -msgid "Getting channels" -msgstr "Récupération des canaux" - -msgid "Loading stream" -msgstr "Chargement du flux" - -msgid "Loading Last.fm radio" -msgstr "Chargement de la radio Last.fm" - -msgid "Downloading Magnatune catalogue" -msgstr "" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" @@ -1541,6 +1538,9 @@ msgstr "" msgid "Delay between visualizations" msgstr "" +#~ msgid "Loading audio engine" +#~ msgstr "Chargement du moteur audio" + #~ msgid "Options" #~ msgstr "Options" diff --git a/src/translations/gl.po b/src/translations/gl.po index 005b8f75b..2ba87a6d5 100644 --- a/src/translations/gl.po +++ b/src/translations/gl.po @@ -181,6 +181,9 @@ msgstr "A biblioteca encontra-se vacia!" msgid "Click here to add some music" msgstr "Clique aqui para adicionar música" +msgid "Updating library" +msgstr "A actualizar a biblioteca" + msgid "Title" msgstr "Título" @@ -351,6 +354,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "" @@ -429,6 +435,9 @@ msgstr "Artistas da Last.fm similares com %1" msgid "Last.fm Tag Radio: %1" msgstr "Tag do rádio da Last.fm: %1" +msgid "Loading Last.fm radio" +msgstr "Carregando a rádio da Last.fm" + msgid "Invalid service" msgstr "Servizo Inválido" @@ -540,6 +549,9 @@ msgstr "" msgid "Search Magnatune" msgstr "" +msgid "Downloading Magnatune catalogue" +msgstr "" + msgid "Radio service couldn't be loaded :-(" msgstr "Servizo de rádio non pudo ser carregado :-(" @@ -558,6 +570,12 @@ msgstr "Abrir soma.fm no navegador da internet" msgid "Refresh channels" msgstr "Actualizar os canais" +msgid "Loading stream" +msgstr "A carregar a stream" + +msgid "Getting channels" +msgstr "Obter canais" + msgid "Start transcoding" msgstr "" @@ -772,27 +790,6 @@ msgstr "Pré-visualizar no OSD" msgid "Drag to reposition" msgstr "Arraste para posicionar" -msgid "Loading audio engine" -msgstr "Carregando o sistema de áudio" - -msgid "Updating library" -msgstr "A actualizar a biblioteca" - -msgid "Getting channels" -msgstr "Obter canais" - -msgid "Loading stream" -msgstr "A carregar a stream" - -msgid "Loading Last.fm radio" -msgstr "Carregando a rádio da Last.fm" - -msgid "Downloading Magnatune catalogue" -msgstr "" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" @@ -1531,6 +1528,9 @@ msgstr "" msgid "Delay between visualizations" msgstr "" +#~ msgid "Loading audio engine" +#~ msgstr "Carregando o sistema de áudio" + #~ msgid "Copy to library..." #~ msgstr "Copiar para a biblioteca" diff --git a/src/translations/it.po b/src/translations/it.po index bff772294..4c856f143 100644 --- a/src/translations/it.po +++ b/src/translations/it.po @@ -182,6 +182,9 @@ msgstr "La raccolta è vuota!" msgid "Click here to add some music" msgstr "Fai clic qui per aggiungere della musica" +msgid "Updating library" +msgstr "Aggiornamento raccolta" + msgid "Title" msgstr "Titolo" @@ -354,6 +357,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "%1 scalette (%2)" @@ -432,6 +438,9 @@ msgstr "Artisti simili a %1 di Last.fm" msgid "Last.fm Tag Radio: %1" msgstr "Radio del tag di Last.fm: %1" +msgid "Loading Last.fm radio" +msgstr "Caricamento radio Last.fm" + msgid "Invalid service" msgstr "Servizio non valido" @@ -542,6 +551,9 @@ msgstr "" msgid "Search Magnatune" msgstr "Cerca in Magnatune" +msgid "Downloading Magnatune catalogue" +msgstr "Scaricamento catalogo Magnatune" + msgid "Radio service couldn't be loaded :-(" msgstr "Il servizio radio non può essere caricato :-(" @@ -560,6 +572,12 @@ msgstr "Apri somafm.com nel browser" msgid "Refresh channels" msgstr "Aggiorna i canali" +msgid "Loading stream" +msgstr "Caricamento flusso" + +msgid "Getting channels" +msgstr "Recupero dei canali" + msgid "Start transcoding" msgstr "Avvia transcodifica" @@ -777,27 +795,6 @@ msgstr "Anteprima OSD" msgid "Drag to reposition" msgstr "Trascina per riposizionare" -msgid "Loading audio engine" -msgstr "Caricamento motore audio" - -msgid "Updating library" -msgstr "Aggiornamento raccolta" - -msgid "Getting channels" -msgstr "Recupero dei canali" - -msgid "Loading stream" -msgstr "Caricamento flusso" - -msgid "Loading Last.fm radio" -msgstr "Caricamento radio Last.fm" - -msgid "Downloading Magnatune catalogue" -msgstr "Scaricamento catalogo Magnatune" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" @@ -1542,6 +1539,9 @@ msgstr "Scegli dall'elenco" msgid "Delay between visualizations" msgstr "" +#~ msgid "Loading audio engine" +#~ msgstr "Caricamento motore audio" + #~ msgid "Show section" #~ msgstr "Mostra sezione" diff --git a/src/translations/kk.po b/src/translations/kk.po index bbdadd827..3870f02e0 100644 --- a/src/translations/kk.po +++ b/src/translations/kk.po @@ -181,6 +181,9 @@ msgstr "" msgid "Click here to add some music" msgstr "" +msgid "Updating library" +msgstr "" + msgid "Title" msgstr "Аталуы" @@ -351,6 +354,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "" @@ -429,6 +435,9 @@ msgstr "" msgid "Last.fm Tag Radio: %1" msgstr "" +msgid "Loading Last.fm radio" +msgstr "" + msgid "Invalid service" msgstr "" @@ -539,6 +548,9 @@ msgstr "" msgid "Search Magnatune" msgstr "" +msgid "Downloading Magnatune catalogue" +msgstr "" + msgid "Radio service couldn't be loaded :-(" msgstr "" @@ -557,6 +569,12 @@ msgstr "" msgid "Refresh channels" msgstr "" +msgid "Loading stream" +msgstr "" + +msgid "Getting channels" +msgstr "" + msgid "Start transcoding" msgstr "" @@ -772,27 +790,6 @@ msgstr "" msgid "Drag to reposition" msgstr "" -msgid "Loading audio engine" -msgstr "" - -msgid "Updating library" -msgstr "" - -msgid "Getting channels" -msgstr "" - -msgid "Loading stream" -msgstr "" - -msgid "Loading Last.fm radio" -msgstr "" - -msgid "Downloading Magnatune catalogue" -msgstr "" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" diff --git a/src/translations/nb.po b/src/translations/nb.po index 81b96d12b..b8cd28e4c 100644 --- a/src/translations/nb.po +++ b/src/translations/nb.po @@ -181,6 +181,9 @@ msgstr "Ditt bibliotek er tomt!" msgid "Click here to add some music" msgstr "Klikk her for å legge til litt musikk" +msgid "Updating library" +msgstr "Oppdaterer bibliotek" + msgid "Title" msgstr "Tittel" @@ -351,6 +354,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "" @@ -429,6 +435,9 @@ msgstr "" msgid "Last.fm Tag Radio: %1" msgstr "" +msgid "Loading Last.fm radio" +msgstr "Laster inn Last.fm radio" + msgid "Invalid service" msgstr "Ukjent tjeneste" @@ -539,6 +548,9 @@ msgstr "" msgid "Search Magnatune" msgstr "" +msgid "Downloading Magnatune catalogue" +msgstr "" + msgid "Radio service couldn't be loaded :-(" msgstr "Kunne ikke laste inn radiotjeneste :-(" @@ -557,6 +569,12 @@ msgstr "Hent somafm.com i en nettleser" msgid "Refresh channels" msgstr "Hent kanaler på ny" +msgid "Loading stream" +msgstr "Lader lydstrøm" + +msgid "Getting channels" +msgstr "Henter kanaler" + msgid "Start transcoding" msgstr "" @@ -772,27 +790,6 @@ msgstr "Forhåndsvisning av notifikasjon" msgid "Drag to reposition" msgstr "Dra for å endre posisjon" -msgid "Loading audio engine" -msgstr "Laster lydmotor" - -msgid "Updating library" -msgstr "Oppdaterer bibliotek" - -msgid "Getting channels" -msgstr "Henter kanaler" - -msgid "Loading stream" -msgstr "Lader lydstrøm" - -msgid "Loading Last.fm radio" -msgstr "Laster inn Last.fm radio" - -msgid "Downloading Magnatune catalogue" -msgstr "" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" @@ -1533,6 +1530,9 @@ msgstr "" msgid "Delay between visualizations" msgstr "" +#~ msgid "Loading audio engine" +#~ msgstr "Laster lydmotor" + #~ msgid "Copy to library..." #~ msgstr "Kopier til bibliotek..." diff --git a/src/translations/oc.po b/src/translations/oc.po index 24316292b..8508f016d 100644 --- a/src/translations/oc.po +++ b/src/translations/oc.po @@ -181,6 +181,9 @@ msgstr "" msgid "Click here to add some music" msgstr "" +msgid "Updating library" +msgstr "" + msgid "Title" msgstr "Títol" @@ -351,6 +354,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "" @@ -429,6 +435,9 @@ msgstr "" msgid "Last.fm Tag Radio: %1" msgstr "" +msgid "Loading Last.fm radio" +msgstr "Cargament de la ràdio Last.fm" + msgid "Invalid service" msgstr "" @@ -539,6 +548,9 @@ msgstr "" msgid "Search Magnatune" msgstr "" +msgid "Downloading Magnatune catalogue" +msgstr "" + msgid "Radio service couldn't be loaded :-(" msgstr "" @@ -557,6 +569,12 @@ msgstr "" msgid "Refresh channels" msgstr "" +msgid "Loading stream" +msgstr "Cargament del flux" + +msgid "Getting channels" +msgstr "" + msgid "Start transcoding" msgstr "" @@ -770,27 +788,6 @@ msgstr "" msgid "Drag to reposition" msgstr "" -msgid "Loading audio engine" -msgstr "" - -msgid "Updating library" -msgstr "" - -msgid "Getting channels" -msgstr "" - -msgid "Loading stream" -msgstr "Cargament del flux" - -msgid "Loading Last.fm radio" -msgstr "Cargament de la ràdio Last.fm" - -msgid "Downloading Magnatune catalogue" -msgstr "" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" diff --git a/src/translations/pl.po b/src/translations/pl.po index 9b6cf388d..7966cf920 100644 --- a/src/translations/pl.po +++ b/src/translations/pl.po @@ -182,6 +182,9 @@ msgstr "Biblioteka jest pusta!" msgid "Click here to add some music" msgstr "Kliknij aby dodać jakąś muzykę" +msgid "Updating library" +msgstr "Aktualizowanie biblioteki" + msgid "Title" msgstr "Nazwa" @@ -352,6 +355,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "" @@ -430,6 +436,9 @@ msgstr "" msgid "Last.fm Tag Radio: %1" msgstr "" +msgid "Loading Last.fm radio" +msgstr "Ładowanie radia Last.fm" + msgid "Invalid service" msgstr "Błędna usługa" @@ -540,6 +549,9 @@ msgstr "" msgid "Search Magnatune" msgstr "" +msgid "Downloading Magnatune catalogue" +msgstr "" + msgid "Radio service couldn't be loaded :-(" msgstr "Usługa radio nie może być załadowana :-(" @@ -558,6 +570,12 @@ msgstr "Otwórz somafm.com w przeglądarce" msgid "Refresh channels" msgstr "Odśwież kanały" +msgid "Loading stream" +msgstr "Ładowanie strumienia" + +msgid "Getting channels" +msgstr "Pobieranie kanałów" + msgid "Start transcoding" msgstr "" @@ -772,27 +790,6 @@ msgstr "Podgląd OSD" msgid "Drag to reposition" msgstr "Przeciągnij aby zmienić pozycję" -msgid "Loading audio engine" -msgstr "Ładowanie silnika dźwięku" - -msgid "Updating library" -msgstr "Aktualizowanie biblioteki" - -msgid "Getting channels" -msgstr "Pobieranie kanałów" - -msgid "Loading stream" -msgstr "Ładowanie strumienia" - -msgid "Loading Last.fm radio" -msgstr "Ładowanie radia Last.fm" - -msgid "Downloading Magnatune catalogue" -msgstr "" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" @@ -1531,6 +1528,9 @@ msgstr "" msgid "Delay between visualizations" msgstr "" +#~ msgid "Loading audio engine" +#~ msgstr "Ładowanie silnika dźwięku" + #~ msgid "Copy to library..." #~ msgstr "Skopiuj do biblioteki..." diff --git a/src/translations/pt.po b/src/translations/pt.po index d43b247f1..42b0b6205 100644 --- a/src/translations/pt.po +++ b/src/translations/pt.po @@ -181,6 +181,9 @@ msgstr "A biblioteca está vazia!" msgid "Click here to add some music" msgstr "Clique aqui para adicionar música" +msgid "Updating library" +msgstr "A actualizar a biblioteca" + msgid "Title" msgstr "Título" @@ -353,6 +356,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "%1 listas de reprodução (%2)" @@ -431,6 +437,9 @@ msgstr "Artistas Similares a %1 na Last.fm" msgid "Last.fm Tag Radio: %1" msgstr "Tag da Rádio Last.fm: %1" +msgid "Loading Last.fm radio" +msgstr "Carregando a rádio Last.fm" + msgid "Invalid service" msgstr "Serviço inválido" @@ -541,6 +550,9 @@ msgstr "" msgid "Search Magnatune" msgstr "Procurar na Magnatune" +msgid "Downloading Magnatune catalogue" +msgstr "Transferindo Catálogo Magnatune" + msgid "Radio service couldn't be loaded :-(" msgstr "Serviço de rádio não pode ser carregado :-(" @@ -559,6 +571,12 @@ msgstr "Abrir soma.fm no navegador" msgid "Refresh channels" msgstr "Actualizar os canais" +msgid "Loading stream" +msgstr "A carregar emissão" + +msgid "Getting channels" +msgstr "A obter canais" + msgid "Start transcoding" msgstr "Iniciar conversão" @@ -775,27 +793,6 @@ msgstr "Antevisão OSD" msgid "Drag to reposition" msgstr "Arraste para posicionar" -msgid "Loading audio engine" -msgstr "Carregando o sistema de áudio" - -msgid "Updating library" -msgstr "A actualizar a biblioteca" - -msgid "Getting channels" -msgstr "A obter canais" - -msgid "Loading stream" -msgstr "A carregar emissão" - -msgid "Loading Last.fm radio" -msgstr "Carregando a rádio Last.fm" - -msgid "Downloading Magnatune catalogue" -msgstr "Transferindo Catálogo Magnatune" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" @@ -1536,6 +1533,9 @@ msgstr "Escolher da lista" msgid "Delay between visualizations" msgstr "" +#~ msgid "Loading audio engine" +#~ msgstr "Carregando o sistema de áudio" + #~ msgid "Show section" #~ msgstr "Mostrar secção" diff --git a/src/translations/pt_BR.po b/src/translations/pt_BR.po index f1a1cec3c..828a499af 100644 --- a/src/translations/pt_BR.po +++ b/src/translations/pt_BR.po @@ -181,6 +181,9 @@ msgstr "A biblioteca está vazia!" msgid "Click here to add some music" msgstr "Clique aqui para adicionar algumas músicas" +msgid "Updating library" +msgstr "Atualizando biblioteca" + msgid "Title" msgstr "Tí­tulo" @@ -353,6 +356,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "%1 listas de reprodução (%2)" @@ -431,6 +437,9 @@ msgstr "Artistas Last.fm Similares a %1" msgid "Last.fm Tag Radio: %1" msgstr "Rádio de Marcação Last.fm: %1" +msgid "Loading Last.fm radio" +msgstr "Carregando rádio Last.fm" + msgid "Invalid service" msgstr "Serviço inválido" @@ -543,6 +552,9 @@ msgstr "" msgid "Search Magnatune" msgstr "Procurar Magnatune" +msgid "Downloading Magnatune catalogue" +msgstr "Baixando catálogo da Magnatune" + msgid "Radio service couldn't be loaded :-(" msgstr "O serviço de rádio não pôde ser carregado :-(" @@ -561,6 +573,12 @@ msgstr "Abrir somafm.com no navegador" msgid "Refresh channels" msgstr "Atualizar canais" +msgid "Loading stream" +msgstr "Carregando transmissão" + +msgid "Getting channels" +msgstr "Adquirindo canais" + msgid "Start transcoding" msgstr "Começar transcodificação" @@ -777,27 +795,6 @@ msgstr "Pré-visualização de informações na tela" msgid "Drag to reposition" msgstr "Arraste para reposicionar" -msgid "Loading audio engine" -msgstr "Carregando mecanismo de áudio" - -msgid "Updating library" -msgstr "Atualizando biblioteca" - -msgid "Getting channels" -msgstr "Adquirindo canais" - -msgid "Loading stream" -msgstr "Carregando transmissão" - -msgid "Loading Last.fm radio" -msgstr "Carregando rádio Last.fm" - -msgid "Downloading Magnatune catalogue" -msgstr "Baixando catálogo da Magnatune" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" @@ -1539,6 +1536,9 @@ msgstr "Escolher da lista" msgid "Delay between visualizations" msgstr "" +#~ msgid "Loading audio engine" +#~ msgstr "Carregando mecanismo de áudio" + #~ msgid "Show section" #~ msgstr "Mostrar sessão" diff --git a/src/translations/ro.po b/src/translations/ro.po index cbb415698..669fb60ac 100644 --- a/src/translations/ro.po +++ b/src/translations/ro.po @@ -181,6 +181,9 @@ msgstr "Biblioteca este goală!" msgid "Click here to add some music" msgstr "Clic aici pentru a adăuga muzică" +msgid "Updating library" +msgstr "Se actualizează biblioteca" + msgid "Title" msgstr "Titlu" @@ -351,6 +354,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "" @@ -429,6 +435,9 @@ msgstr "Artiști Last.fm similari cu %1" msgid "Last.fm Tag Radio: %1" msgstr "" +msgid "Loading Last.fm radio" +msgstr "Se încarcă radio Last.fm" + msgid "Invalid service" msgstr "Serviciu invalid" @@ -539,6 +548,9 @@ msgstr "" msgid "Search Magnatune" msgstr "" +msgid "Downloading Magnatune catalogue" +msgstr "" + msgid "Radio service couldn't be loaded :-(" msgstr "Serviciul de radio nu a putut fi încărcat :-(" @@ -557,6 +569,12 @@ msgstr "Deschide somafm.com în browser" msgid "Refresh channels" msgstr "Reîncarcă canalele" +msgid "Loading stream" +msgstr "Se încarcă fluxul" + +msgid "Getting channels" +msgstr "Se preiau canalele" + msgid "Start transcoding" msgstr "" @@ -771,27 +789,6 @@ msgstr "Previzualizare OSD" msgid "Drag to reposition" msgstr "Trage pentru a repoziționa" -msgid "Loading audio engine" -msgstr "Se încarcă motorul audio" - -msgid "Updating library" -msgstr "Se actualizează biblioteca" - -msgid "Getting channels" -msgstr "Se preiau canalele" - -msgid "Loading stream" -msgstr "Se încarcă fluxul" - -msgid "Loading Last.fm radio" -msgstr "Se încarcă radio Last.fm" - -msgid "Downloading Magnatune catalogue" -msgstr "" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" @@ -1530,6 +1527,9 @@ msgstr "" msgid "Delay between visualizations" msgstr "" +#~ msgid "Loading audio engine" +#~ msgstr "Se încarcă motorul audio" + #~ msgid "Copy to library..." #~ msgstr "Copiază în bibliotecă..." diff --git a/src/translations/ru.po b/src/translations/ru.po index a5f7f3b5e..d72327f96 100644 --- a/src/translations/ru.po +++ b/src/translations/ru.po @@ -180,6 +180,9 @@ msgstr "Ваша коллекция пуста!" msgid "Click here to add some music" msgstr "Щелкните здесь, чтобы добавить музыку" +msgid "Updating library" +msgstr "Обновление библиотеки" + msgid "Title" msgstr "Название" @@ -352,6 +355,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "%1 списков воспроизведения (%2)" @@ -430,6 +436,9 @@ msgstr "Похожие исполнители Last.fm на %1" msgid "Last.fm Tag Radio: %1" msgstr "Радио тегов Last.fm: %1" +msgid "Loading Last.fm radio" +msgstr "Загрузка радио Last.fm" + msgid "Invalid service" msgstr "Неправильная служба" @@ -540,6 +549,9 @@ msgstr "" msgid "Search Magnatune" msgstr "Искать на Magnatune" +msgid "Downloading Magnatune catalogue" +msgstr "Скачать каталог Magnatune" + msgid "Radio service couldn't be loaded :-(" msgstr "Сервис радио не запустился =(" @@ -558,6 +570,12 @@ msgstr "Открыть somafm.com в браузере" msgid "Refresh channels" msgstr "Обновить каналы" +msgid "Loading stream" +msgstr "Загрузка потока" + +msgid "Getting channels" +msgstr "Получение каналов" + msgid "Start transcoding" msgstr "Начать перекодирование" @@ -775,27 +793,6 @@ msgstr "Предпросмотр OSD" msgid "Drag to reposition" msgstr "Тащите для перемещения" -msgid "Loading audio engine" -msgstr "Загрузка движка аудио" - -msgid "Updating library" -msgstr "Обновление библиотеки" - -msgid "Getting channels" -msgstr "Получение каналов" - -msgid "Loading stream" -msgstr "Загрузка потока" - -msgid "Loading Last.fm radio" -msgstr "Загрузка радио Last.fm" - -msgid "Downloading Magnatune catalogue" -msgstr "Скачать каталог Magnatune" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" @@ -1536,6 +1533,9 @@ msgstr "Выбор из списка" msgid "Delay between visualizations" msgstr "" +#~ msgid "Loading audio engine" +#~ msgstr "Загрузка движка аудио" + #~ msgid "Show section" #~ msgstr "Показать секцию" diff --git a/src/translations/sk.po b/src/translations/sk.po index fd78049db..a52480046 100644 --- a/src/translations/sk.po +++ b/src/translations/sk.po @@ -182,6 +182,9 @@ msgstr "Vaša zbierka je prázdna!" msgid "Click here to add some music" msgstr "Kliknite sem aby ste pridali nejakú hudbu" +msgid "Updating library" +msgstr "Aktualizovanie zbierky" + msgid "Title" msgstr "Názov" @@ -353,6 +356,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "%1 playlisty (%2)" @@ -431,6 +437,9 @@ msgstr "Podobný interprét ako %1" msgid "Last.fm Tag Radio: %1" msgstr "Rádio tagu: %1" +msgid "Loading Last.fm radio" +msgstr "Načítava sa Last.fm rádio" + msgid "Invalid service" msgstr "Nefunkčná služba" @@ -541,6 +550,9 @@ msgstr "" msgid "Search Magnatune" msgstr "Hľadať v Magnatune" +msgid "Downloading Magnatune catalogue" +msgstr "Sťahovanie Magnatune katalógu" + msgid "Radio service couldn't be loaded :-(" msgstr "Služba rádia sa nedá načítať :-(" @@ -559,6 +571,12 @@ msgstr "Otvoriť somafm.com v prehliadači" msgid "Refresh channels" msgstr "Obnoviť kanály" +msgid "Loading stream" +msgstr "Načítava sa stream" + +msgid "Getting channels" +msgstr "Preberanie kanálov" + msgid "Start transcoding" msgstr "Začať transkódovanie" @@ -775,27 +793,6 @@ msgstr "OSD náhľad" msgid "Drag to reposition" msgstr "Pretiahnite na iné miesto" -msgid "Loading audio engine" -msgstr "Načítava sa zvukový engine" - -msgid "Updating library" -msgstr "Aktualizovanie zbierky" - -msgid "Getting channels" -msgstr "Preberanie kanálov" - -msgid "Loading stream" -msgstr "Načítava sa stream" - -msgid "Loading Last.fm radio" -msgstr "Načítava sa Last.fm rádio" - -msgid "Downloading Magnatune catalogue" -msgstr "Sťahovanie Magnatune katalógu" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" @@ -1536,6 +1533,9 @@ msgstr "Vybrať zo zoznamu" msgid "Delay between visualizations" msgstr "" +#~ msgid "Loading audio engine" +#~ msgstr "Načítava sa zvukový engine" + #~ msgid "Show section" #~ msgstr "Zobraziť stĺpec" diff --git a/src/translations/sv.po b/src/translations/sv.po index e2128d519..d09586a06 100644 --- a/src/translations/sv.po +++ b/src/translations/sv.po @@ -181,6 +181,9 @@ msgstr "Ditt bibliotek är tomt!" msgid "Click here to add some music" msgstr "Klicka här för att lägga till musik" +msgid "Updating library" +msgstr "Uppdaterar bibliotek" + msgid "Title" msgstr "Titel" @@ -351,6 +354,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "%1 spellistor (%2)" @@ -429,6 +435,9 @@ msgstr "Last.fm Artister som liknar %1" msgid "Last.fm Tag Radio: %1" msgstr "Last.fm Taggradio: %1" +msgid "Loading Last.fm radio" +msgstr "Laddar Last.fm radio" + msgid "Invalid service" msgstr "Ogiltig tjänst" @@ -539,6 +548,9 @@ msgstr "" msgid "Search Magnatune" msgstr "Sök Magnatune" +msgid "Downloading Magnatune catalogue" +msgstr "Hämtar katalog från Magnatune" + msgid "Radio service couldn't be loaded :-(" msgstr "Radiotjänsten kunde inte laddas :-(" @@ -557,6 +569,12 @@ msgstr "Öppna somafm.com i en webbläsare" msgid "Refresh channels" msgstr "Uppdatera kanaler" +msgid "Loading stream" +msgstr "Laddar ström" + +msgid "Getting channels" +msgstr "Hämtar kanaler" + msgid "Start transcoding" msgstr "Starta omkondning" @@ -773,27 +791,6 @@ msgstr "OSD förhandsgranskning" msgid "Drag to reposition" msgstr "Dra för att ändra position" -msgid "Loading audio engine" -msgstr "Laddar audiomotor" - -msgid "Updating library" -msgstr "Uppdaterar bibliotek" - -msgid "Getting channels" -msgstr "Hämtar kanaler" - -msgid "Loading stream" -msgstr "Laddar ström" - -msgid "Loading Last.fm radio" -msgstr "Laddar Last.fm radio" - -msgid "Downloading Magnatune catalogue" -msgstr "Hämtar katalog från Magnatune" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" @@ -1537,6 +1534,9 @@ msgstr "Välj från listan" msgid "Delay between visualizations" msgstr "" +#~ msgid "Loading audio engine" +#~ msgstr "Laddar audiomotor" + #~ msgid "Show section" #~ msgstr "Visa kolumn" diff --git a/src/translations/tr.po b/src/translations/tr.po index 1a9884124..510123555 100644 --- a/src/translations/tr.po +++ b/src/translations/tr.po @@ -181,6 +181,9 @@ msgstr "Kütüphane boş!" msgid "Click here to add some music" msgstr "Parça eklemek için buraya tıkla" +msgid "Updating library" +msgstr "" + msgid "Title" msgstr "Başlık" @@ -353,6 +356,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "" @@ -431,6 +437,9 @@ msgstr "" msgid "Last.fm Tag Radio: %1" msgstr "" +msgid "Loading Last.fm radio" +msgstr "" + msgid "Invalid service" msgstr "Geçersiz servis" @@ -541,6 +550,9 @@ msgstr "" msgid "Search Magnatune" msgstr "" +msgid "Downloading Magnatune catalogue" +msgstr "" + msgid "Radio service couldn't be loaded :-(" msgstr "" @@ -559,6 +571,12 @@ msgstr "" msgid "Refresh channels" msgstr "" +msgid "Loading stream" +msgstr "" + +msgid "Getting channels" +msgstr "" + msgid "Start transcoding" msgstr "" @@ -772,27 +790,6 @@ msgstr "" msgid "Drag to reposition" msgstr "" -msgid "Loading audio engine" -msgstr "" - -msgid "Updating library" -msgstr "" - -msgid "Getting channels" -msgstr "" - -msgid "Loading stream" -msgstr "" - -msgid "Loading Last.fm radio" -msgstr "" - -msgid "Downloading Magnatune catalogue" -msgstr "" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" diff --git a/src/translations/uk.po b/src/translations/uk.po index 48ab0e530..f9b920cfc 100644 --- a/src/translations/uk.po +++ b/src/translations/uk.po @@ -181,6 +181,9 @@ msgstr "Ваша фонотека порожня!" msgid "Click here to add some music" msgstr "Клацніть тут, щоб додати музику" +msgid "Updating library" +msgstr "Оновлення фонотеки" + msgid "Title" msgstr "Назва" @@ -353,6 +356,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "%1 списків відтворення (%2)" @@ -431,6 +437,9 @@ msgstr "Подібні виконавці Last.fm на %1" msgid "Last.fm Tag Radio: %1" msgstr "Радіо позначок Last.fm: %1" +msgid "Loading Last.fm radio" +msgstr "Завантаження радіо Last.fm" + msgid "Invalid service" msgstr "Нечинна служба" @@ -541,6 +550,9 @@ msgstr "" msgid "Search Magnatune" msgstr "Пошук на Magnatune" +msgid "Downloading Magnatune catalogue" +msgstr "Завантаження каталогу Magnatune" + msgid "Radio service couldn't be loaded :-(" msgstr "Не вдалось завантажити радіо службу :-(" @@ -559,6 +571,12 @@ msgstr "Відкрити somafm.com в браузері" msgid "Refresh channels" msgstr "Оновити канали" +msgid "Loading stream" +msgstr "Завнтаження потоку" + +msgid "Getting channels" +msgstr "Отримання каналів" + msgid "Start transcoding" msgstr "Почати перекодування" @@ -776,27 +794,6 @@ msgstr "Повідомлення OSD" msgid "Drag to reposition" msgstr "Перетягніть, щоб змінити розташування" -msgid "Loading audio engine" -msgstr "Завантаження аудіо-рушія" - -msgid "Updating library" -msgstr "Оновлення фонотеки" - -msgid "Getting channels" -msgstr "Отримання каналів" - -msgid "Loading stream" -msgstr "Завнтаження потоку" - -msgid "Loading Last.fm radio" -msgstr "Завантаження радіо Last.fm" - -msgid "Downloading Magnatune catalogue" -msgstr "Завантаження каталогу Magnatune" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" @@ -1536,6 +1533,9 @@ msgstr "Вибрати зі списку" msgid "Delay between visualizations" msgstr "" +#~ msgid "Loading audio engine" +#~ msgstr "Завантаження аудіо-рушія" + #~ msgid "Show section" #~ msgstr "Показати секцію" diff --git a/src/translations/zh_CN.po b/src/translations/zh_CN.po index e6ff08450..46e6e7245 100644 --- a/src/translations/zh_CN.po +++ b/src/translations/zh_CN.po @@ -181,6 +181,9 @@ msgstr "" msgid "Click here to add some music" msgstr "" +msgid "Updating library" +msgstr "" + msgid "Title" msgstr "标题" @@ -351,6 +354,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "" @@ -429,6 +435,9 @@ msgstr "" msgid "Last.fm Tag Radio: %1" msgstr "" +msgid "Loading Last.fm radio" +msgstr "" + msgid "Invalid service" msgstr "" @@ -539,6 +548,9 @@ msgstr "" msgid "Search Magnatune" msgstr "" +msgid "Downloading Magnatune catalogue" +msgstr "" + msgid "Radio service couldn't be loaded :-(" msgstr "" @@ -557,6 +569,12 @@ msgstr "" msgid "Refresh channels" msgstr "" +msgid "Loading stream" +msgstr "" + +msgid "Getting channels" +msgstr "" + msgid "Start transcoding" msgstr "" @@ -770,27 +788,6 @@ msgstr "" msgid "Drag to reposition" msgstr "" -msgid "Loading audio engine" -msgstr "" - -msgid "Updating library" -msgstr "" - -msgid "Getting channels" -msgstr "" - -msgid "Loading stream" -msgstr "" - -msgid "Loading Last.fm radio" -msgstr "" - -msgid "Downloading Magnatune catalogue" -msgstr "" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" diff --git a/src/translations/zh_TW.po b/src/translations/zh_TW.po index 211cb45b7..d2ddbadda 100644 --- a/src/translations/zh_TW.po +++ b/src/translations/zh_TW.po @@ -181,6 +181,9 @@ msgstr "" msgid "Click here to add some music" msgstr "" +msgid "Updating library" +msgstr "" + msgid "Title" msgstr "" @@ -351,6 +354,9 @@ msgstr "" msgid "Error loading %1" msgstr "" +msgid "Loading tracks" +msgstr "" + #, qt-format msgid "%1 playlists (%2)" msgstr "" @@ -429,6 +435,9 @@ msgstr "" msgid "Last.fm Tag Radio: %1" msgstr "" +msgid "Loading Last.fm radio" +msgstr "" + msgid "Invalid service" msgstr "" @@ -539,6 +548,9 @@ msgstr "" msgid "Search Magnatune" msgstr "" +msgid "Downloading Magnatune catalogue" +msgstr "" + msgid "Radio service couldn't be loaded :-(" msgstr "" @@ -557,6 +569,12 @@ msgstr "" msgid "Refresh channels" msgstr "" +msgid "Loading stream" +msgstr "" + +msgid "Getting channels" +msgstr "" + msgid "Start transcoding" msgstr "" @@ -770,27 +788,6 @@ msgstr "" msgid "Drag to reposition" msgstr "" -msgid "Loading audio engine" -msgstr "" - -msgid "Updating library" -msgstr "" - -msgid "Getting channels" -msgstr "" - -msgid "Loading stream" -msgstr "" - -msgid "Loading Last.fm radio" -msgstr "" - -msgid "Downloading Magnatune catalogue" -msgstr "" - -msgid "Loading tracks" -msgstr "" - msgid "Small album cover" msgstr "" diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index 24415637b..63541a0ea 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -24,6 +24,7 @@ #include "core/player.h" #include "core/songloader.h" #include "core/stylesheetloader.h" +#include "core/taskmanager.h" #include "engines/enginebase.h" #include "library/groupbydialog.h" #include "library/libraryconfig.h" @@ -105,11 +106,12 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg tray_icon_(SystemTrayIcon::CreateSystemTrayIcon(this)), osd_(new OSD(tray_icon_, network, this)), edit_tag_dialog_(new EditTagDialog), + task_manager_(new TaskManager(this)), about_dialog_(new About), database_(new BackgroundThreadImplementation(this)), radio_model_(NULL), playlist_backend_(NULL), - playlists_(new PlaylistManager(this)), + playlists_(new PlaylistManager(task_manager_, this)), playlist_parser_(new PlaylistParser(this)), player_(NULL), library_(NULL), @@ -137,16 +139,16 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg playlist_backend_->SetDatabase(database_->Worker()); // Create stuff that needs the database - radio_model_ = new RadioModel(database_, network, this); + radio_model_ = new RadioModel(database_, network, task_manager_, this); player_ = new Player(playlists_, radio_model_->GetLastFMService(), engine, this); - library_ = new Library(database_, this); + library_ = new Library(database_, task_manager_, this); cover_manager_.reset(new AlbumCoverManager(network, library_->backend())); settings_dialog_.reset(new SettingsDialog); // Needs RadioModel radio_model_->SetSettingsDialog(settings_dialog_.get()); // Initialise the UI ui_->setupUi(this); - + ui_->multi_loading_indicator->SetTaskManager(task_manager_); ui_->volume->setValue(player_->GetVolume()); track_position_timer_->setInterval(1000); @@ -318,8 +320,6 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg connect(playlists_, SIGNAL(EditingFinished(QModelIndex)), SLOT(PlaylistEditFinished(QModelIndex))); connect(playlists_, SIGNAL(Error(QString)), error_dialog_.get(), SLOT(ShowMessage(QString))); connect(playlists_, SIGNAL(SummaryTextChanged(QString)), ui_->playlist_summary, SLOT(setText(QString))); - connect(playlists_, SIGNAL(LoadTracksStarted()), SLOT(LoadTracksStarted())); - connect(playlists_, SIGNAL(LoadTracksFinished()), SLOT(LoadTracksFinished())); connect(playlists_, SIGNAL(PlayRequested(QModelIndex)), SLOT(PlayIndex(QModelIndex))); connect(ui_->playlist->view(), SIGNAL(doubleClicked(QModelIndex)), SLOT(PlayIndex(QModelIndex))); @@ -337,8 +337,6 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg connect(ui_->library_view, SIGNAL(AddToPlaylist(QModelIndexList)), SLOT(AddLibraryItemToPlaylist(QModelIndexList))); connect(ui_->library_view, SIGNAL(ShowConfigDialog()), SLOT(ShowLibraryConfig())); connect(library_->model(), SIGNAL(TotalSongCountUpdated(int)), ui_->library_view, SLOT(TotalSongCountUpdated(int))); - connect(library_, SIGNAL(ScanStarted()), SLOT(LibraryScanStarted())); - connect(library_, SIGNAL(ScanFinished()), SLOT(LibraryScanFinished())); // Library filter widget QAction* library_config_action = new QAction( @@ -367,8 +365,6 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg SLOT(PlaylistUndoRedoChanged(QAction*,QAction*))); // Radio connections - connect(radio_model_, SIGNAL(TaskStarted(MultiLoadingIndicator::TaskType)), ui_->multi_loading_indicator, SLOT(TaskStarted(MultiLoadingIndicator::TaskType))); - connect(radio_model_, SIGNAL(TaskFinished(MultiLoadingIndicator::TaskType)), ui_->multi_loading_indicator, SLOT(TaskFinished(MultiLoadingIndicator::TaskType))); connect(radio_model_, SIGNAL(StreamError(QString)), error_dialog_.get(), SLOT(ShowMessage(QString))); connect(radio_model_, SIGNAL(AsyncLoadFinished(PlaylistItem::SpecialLoadResult)), player_, SLOT(HandleSpecialLoad(PlaylistItem::SpecialLoadResult))); connect(radio_model_, SIGNAL(StreamMetadataFound(QUrl,Song)), playlists_, SLOT(SetActiveStreamMetadata(QUrl,Song))); @@ -564,23 +560,13 @@ void MainWindow::AddFilesToPlaylist(bool clear_first, const QList& urls) { } void MainWindow::AddUrls(bool play_now, const QList &urls) { - SongLoaderInserter* inserter = new SongLoaderInserter(this); - connect(inserter, SIGNAL(AsyncLoadStarted()), SLOT(LoadTracksStarted())); - connect(inserter, SIGNAL(AsyncLoadFinished()), SLOT(LoadTracksFinished())); + SongLoaderInserter* inserter = new SongLoaderInserter(task_manager_, this); connect(inserter, SIGNAL(Error(QString)), error_dialog_.get(), SLOT(ShowMessage(QString))); connect(inserter, SIGNAL(PlayRequested(QModelIndex)), SLOT(PlayIndex(QModelIndex))); inserter->Load(playlists_->current(), -1, play_now, urls); } -void MainWindow::LoadTracksStarted() { - ui_->multi_loading_indicator->TaskStarted(MultiLoadingIndicator::LoadingTracks); -} - -void MainWindow::LoadTracksFinished() { - ui_->multi_loading_indicator->TaskFinished(MultiLoadingIndicator::LoadingTracks); -} - void MainWindow::AddLibrarySongsToPlaylist(const SongList &songs) { AddLibrarySongsToPlaylist(false, songs); } @@ -1036,14 +1022,6 @@ void MainWindow::EditValue() { ui_->playlist->view()->edit(playlist_menu_index_); } -void MainWindow::LibraryScanStarted() { - ui_->multi_loading_indicator->TaskStarted(MultiLoadingIndicator::UpdatingLibrary); -} - -void MainWindow::LibraryScanFinished() { - ui_->multi_loading_indicator->TaskFinished(MultiLoadingIndicator::UpdatingLibrary); -} - void MainWindow::AddFile() { // Last used directory QString directory = settings_.value("add_media_path", QDir::currentPath()).toString(); diff --git a/src/ui/mainwindow.h b/src/ui/mainwindow.h index 8cbfc8e92..9c4be1b52 100644 --- a/src/ui/mainwindow.h +++ b/src/ui/mainwindow.h @@ -53,6 +53,7 @@ class RadioModel; class SettingsDialog; class Song; class SystemTrayIcon; +class TaskManager; class TranscodeDialog; class VisualisationContainer; class Ui_MainWindow; @@ -134,10 +135,6 @@ class MainWindow : public QMainWindow, public PlatformInterface { void LastFMButtonVisibilityChanged(bool value); void Love(); - void LibraryScanStarted(); - void LibraryScanFinished(); - void LoadTracksStarted(); - void LoadTracksFinished(); void TaskCountChanged(int count); void ShowLibraryConfig(); @@ -167,7 +164,7 @@ class MainWindow : public QMainWindow, public PlatformInterface { SystemTrayIcon* tray_icon_; OSD* osd_; boost::scoped_ptr edit_tag_dialog_; - MultiLoadingIndicator* multi_loading_indicator_; + TaskManager* task_manager_; boost::scoped_ptr about_dialog_; BackgroundThread* database_; diff --git a/src/widgets/multiloadingindicator.cpp b/src/widgets/multiloadingindicator.cpp index 3da774fbe..c77fa531b 100644 --- a/src/widgets/multiloadingindicator.cpp +++ b/src/widgets/multiloadingindicator.cpp @@ -16,6 +16,7 @@ #include "multiloadingindicator.h" #include "ui_multiloadingindicator.h" +#include "core/taskmanager.h" MultiLoadingIndicator::MultiLoadingIndicator(QWidget *parent) : QWidget(parent), @@ -28,29 +29,19 @@ MultiLoadingIndicator::~MultiLoadingIndicator() { delete ui_; } -void MultiLoadingIndicator::TaskStarted(TaskType type) { - if (tasks_.contains(type)) - return; - - tasks_ << type; - - UpdateText(); - emit TaskCountChange(tasks_.count()); -} - -void MultiLoadingIndicator::TaskFinished(TaskType type) { - tasks_.removeAll(type); - - UpdateText(); - emit TaskCountChange(tasks_.count()); +void MultiLoadingIndicator::SetTaskManager(TaskManager* task_manager) { + task_manager_ = task_manager; + connect(task_manager_, SIGNAL(TasksChanged()), SLOT(UpdateText())); } void MultiLoadingIndicator::UpdateText() { + QList tasks = task_manager_->GetTasks(); + QStringList strings; - foreach (TaskType type, tasks_) { - QString task(TaskTypeToString(type)); - task[0] = task[0].toLower(); - strings << task; + foreach (const TaskManager::Task& task, tasks) { + QString name(task.name); + name[0] = name[0].toLower(); + strings << name; } QString text(strings.join(", ")); @@ -59,18 +50,5 @@ void MultiLoadingIndicator::UpdateText() { } ui_->text->setText(text + "..."); -} - -QString MultiLoadingIndicator::TaskTypeToString(TaskType type) { - switch (type) { - case LoadingAudioEngine: return tr("Loading audio engine"); - case UpdatingLibrary: return tr("Updating library"); - case GettingChannels: return tr("Getting channels"); - case LoadingStream: return tr("Loading stream"); - case LoadingLastFM: return tr("Loading Last.fm radio"); - case LoadingMagnatune: return tr("Downloading Magnatune catalogue"); - case LoadingTracks: return tr("Loading tracks"); - - default: return QString::null; - } + emit TaskCountChange(tasks.count()); } diff --git a/src/widgets/multiloadingindicator.h b/src/widgets/multiloadingindicator.h index 3c0c6520d..fb4f17243 100644 --- a/src/widgets/multiloadingindicator.h +++ b/src/widgets/multiloadingindicator.h @@ -19,6 +19,7 @@ #include +class TaskManager; class Ui_MultiLoadingIndicator; class MultiLoadingIndicator : public QWidget { @@ -28,31 +29,17 @@ class MultiLoadingIndicator : public QWidget { MultiLoadingIndicator(QWidget* parent = 0); ~MultiLoadingIndicator(); - enum TaskType { - LoadingAudioEngine, - UpdatingLibrary, - GettingChannels, - LoadingStream, - LoadingLastFM, - LoadingMagnatune, - LoadingTracks, - }; + void SetTaskManager(TaskManager* task_manager); signals: void TaskCountChange(int tasks); - public slots: - void TaskStarted(MultiLoadingIndicator::TaskType type); - void TaskFinished(MultiLoadingIndicator::TaskType type); - - private: + private slots: void UpdateText(); - static QString TaskTypeToString(TaskType type); private: Ui_MultiLoadingIndicator* ui_; - - QList tasks_; + TaskManager* task_manager_; }; #endif // MULTILOADINGINDICATOR_H