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