Refactor the loading indicator widget into a seperate TaskManager class that can handle tasks with progress

This commit is contained in:
David Sansome 2010-06-23 13:21:30 +00:00
parent ed422c3743
commit f808591ec7
52 changed files with 782 additions and 686 deletions

View File

@ -47,6 +47,7 @@ set(SOURCES
core/song.cpp core/song.cpp
core/songloader.cpp core/songloader.cpp
core/stylesheetloader.cpp core/stylesheetloader.cpp
core/taskmanager.cpp
core/utilities.cpp core/utilities.cpp
engines/enginebase.cpp engines/enginebase.cpp
@ -160,6 +161,7 @@ set(HEADERS
core/networkaccessmanager.h core/networkaccessmanager.h
core/player.h core/player.h
core/songloader.h core/songloader.h
core/taskmanager.h
engines/enginebase.h engines/enginebase.h

81
src/core/taskmanager.cpp Normal file
View File

@ -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 <http://www.gnu.org/licenses/>.
*/
#include "taskmanager.h"
#include <QtDebug>
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::Task> TaskManager::GetTasks() {
QList<TaskManager::Task> 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();
}

55
src/core/taskmanager.h Normal file
View File

@ -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 <http://www.gnu.org/licenses/>.
*/
#ifndef TASKMANAGER_H
#define TASKMANAGER_H
#include <QMap>
#include <QMutex>
#include <QObject>
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<Task> 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<int, Task> tasks_;
int next_task_id_;
};
#endif // TASKMANAGER_H

View File

@ -24,8 +24,10 @@ const char* Library::kDirsTable = "directories";
const char* Library::kSubdirsTable = "subdirectories"; const char* Library::kSubdirsTable = "subdirectories";
const char* Library::kFtsTable = "songs_fts"; const char* Library::kFtsTable = "songs_fts";
Library::Library(BackgroundThread<Database>* db_thread, QObject *parent) Library::Library(BackgroundThread<Database>* db_thread, TaskManager* task_manager,
QObject *parent)
: QObject(parent), : QObject(parent),
task_manager_(task_manager),
backend_(NULL), backend_(NULL),
model_(NULL), model_(NULL),
watcher_factory_(new BackgroundThreadFactoryImplementation<LibraryWatcher, LibraryWatcher>), watcher_factory_(new BackgroundThreadFactoryImplementation<LibraryWatcher, LibraryWatcher>),
@ -58,10 +60,9 @@ void Library::StartThreads() {
void Library::WatcherInitialised() { void Library::WatcherInitialised() {
LibraryWatcher* watcher = watcher_->Worker().get(); LibraryWatcher* watcher = watcher_->Worker().get();
connect(watcher, SIGNAL(ScanStarted()), SIGNAL(ScanStarted()));
connect(watcher, SIGNAL(ScanFinished()), SIGNAL(ScanFinished()));
watcher->SetBackend(backend_); watcher->SetBackend(backend_);
watcher->SetTaskManager(task_manager_);
connect(backend_, SIGNAL(DirectoryDiscovered(Directory,SubdirectoryList)), connect(backend_, SIGNAL(DirectoryDiscovered(Directory,SubdirectoryList)),
watcher, SLOT(AddDirectory(Directory,SubdirectoryList))); watcher, SLOT(AddDirectory(Directory,SubdirectoryList)));

View File

@ -27,12 +27,14 @@ class Database;
class LibraryBackend; class LibraryBackend;
class LibraryModel; class LibraryModel;
class LibraryWatcher; class LibraryWatcher;
class TaskManager;
class Library : public QObject { class Library : public QObject {
Q_OBJECT Q_OBJECT
public: public:
Library(BackgroundThread<Database>* db_thread, QObject* parent); Library(BackgroundThread<Database>* db_thread, TaskManager* task_manager_,
QObject* parent);
static const char* kSongsTable; static const char* kSongsTable;
static const char* kDirsTable; static const char* kDirsTable;
@ -53,15 +55,12 @@ class Library : public QObject {
void WatcherInitialised(); void WatcherInitialised();
private: private:
TaskManager* task_manager_;
LibraryBackend* backend_; LibraryBackend* backend_;
LibraryModel* model_; LibraryModel* model_;
boost::scoped_ptr<BackgroundThreadFactory<LibraryWatcher> > watcher_factory_; boost::scoped_ptr<BackgroundThreadFactory<LibraryWatcher> > watcher_factory_;
BackgroundThread<LibraryWatcher>* watcher_; BackgroundThread<LibraryWatcher>* watcher_;
signals:
void ScanStarted();
void ScanFinished();
}; };
#endif #endif

View File

@ -16,6 +16,7 @@
#include "librarywatcher.h" #include "librarywatcher.h"
#include "librarybackend.h" #include "librarybackend.h"
#include "core/taskmanager.h"
#include <QFileSystemWatcher> #include <QFileSystemWatcher>
#include <QDirIterator> #include <QDirIterator>
@ -35,6 +36,8 @@ const char* LibraryWatcher::kSettingsGroup = "LibraryWatcher";
LibraryWatcher::LibraryWatcher(QObject* parent) LibraryWatcher::LibraryWatcher(QObject* parent)
: QObject(parent), : QObject(parent),
backend_(NULL),
task_manager_(NULL),
stop_requested_(false), stop_requested_(false),
scan_on_startup_(true), scan_on_startup_(true),
rescan_timer_(new QTimer(this)), rescan_timer_(new QTimer(this)),
@ -61,7 +64,7 @@ LibraryWatcher::ScanTransaction::ScanTransaction(LibraryWatcher* watcher,
cached_songs_dirty_(true), cached_songs_dirty_(true),
known_subdirs_dirty_(true) known_subdirs_dirty_(true)
{ {
emit watcher_->ScanStarted(); task_id_ = watcher_->task_manager_->StartTask(tr("Updating library"));
} }
LibraryWatcher::ScanTransaction::~ScanTransaction() { LibraryWatcher::ScanTransaction::~ScanTransaction() {
@ -83,7 +86,7 @@ LibraryWatcher::ScanTransaction::~ScanTransaction() {
if (!touched_subdirs.isEmpty()) if (!touched_subdirs.isEmpty())
emit watcher_->SubdirsMTimeUpdated(touched_subdirs); emit watcher_->SubdirsMTimeUpdated(touched_subdirs);
emit watcher_->ScanFinished(); watcher_->task_manager_->SetTaskFinished(task_id_);
// Watch the new subdirectories // Watch the new subdirectories
foreach (const Subdirectory& subdir, new_subdirs) { foreach (const Subdirectory& subdir, new_subdirs) {

View File

@ -28,6 +28,7 @@ class QFileSystemWatcher;
class QTimer; class QTimer;
class LibraryBackend; class LibraryBackend;
class TaskManager;
class LibraryWatcher : public QObject { class LibraryWatcher : public QObject {
Q_OBJECT Q_OBJECT
@ -38,6 +39,7 @@ class LibraryWatcher : public QObject {
static const char* kSettingsGroup; static const char* kSettingsGroup;
void SetBackend(LibraryBackend* backend) { backend_ = backend; } void SetBackend(LibraryBackend* backend) { backend_ = backend; }
void SetTaskManager(TaskManager* task_manager) { task_manager_ = task_manager; }
void IncrementalScanAsync(); void IncrementalScanAsync();
void Stop() { stop_requested_ = true; } void Stop() { stop_requested_ = true; }
@ -50,9 +52,6 @@ class LibraryWatcher : public QObject {
void SubdirsMTimeUpdated(const SubdirectoryList& subdirs); void SubdirsMTimeUpdated(const SubdirectoryList& subdirs);
void CompilationsNeedUpdating(); void CompilationsNeedUpdating();
void ScanStarted();
void ScanFinished();
public slots: public slots:
void ReloadSettings(); void ReloadSettings();
void AddDirectory(const Directory& dir, const SubdirectoryList& subdirs); void AddDirectory(const Directory& dir, const SubdirectoryList& subdirs);
@ -92,6 +91,8 @@ class LibraryWatcher : public QObject {
ScanTransaction(const ScanTransaction&) {} ScanTransaction(const ScanTransaction&) {}
ScanTransaction& operator =(const ScanTransaction&) { return *this; } ScanTransaction& operator =(const ScanTransaction&) { return *this; }
int task_id_;
int dir_; int dir_;
bool incremental_; bool incremental_;
LibraryWatcher* watcher_; LibraryWatcher* watcher_;
@ -126,6 +127,7 @@ class LibraryWatcher : public QObject {
}; };
LibraryBackend* backend_; LibraryBackend* backend_;
TaskManager* task_manager_;
bool stop_requested_; bool stop_requested_;
bool scan_on_startup_; bool scan_on_startup_;

View File

@ -49,10 +49,12 @@ using boost::shared_ptr;
const char* Playlist::kRowsMimetype = "application/x-clementine-playlist-rows"; const char* Playlist::kRowsMimetype = "application/x-clementine-playlist-rows";
const char* Playlist::kPlayNowMimetype = "application/x-clementine-play-now"; 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), : QAbstractListModel(parent),
proxy_(new PlaylistFilter(this)), proxy_(new PlaylistFilter(this)),
backend_(backend), backend_(backend),
task_manager_(task_manager),
id_(id), id_(id),
current_is_paused_(false), current_is_paused_(false),
current_virtual_index_(-1), current_virtual_index_(-1),
@ -484,9 +486,7 @@ bool Playlist::dropMimeData(const QMimeData* data, Qt::DropAction action, int ro
} }
void Playlist::InsertUrls(const QList<QUrl> &urls, bool play_now, int pos) { void Playlist::InsertUrls(const QList<QUrl> &urls, bool play_now, int pos) {
SongLoaderInserter* inserter = new SongLoaderInserter(this); SongLoaderInserter* inserter = new SongLoaderInserter(task_manager_, this);
connect(inserter, SIGNAL(AsyncLoadStarted()), SIGNAL(LoadTracksStarted()));
connect(inserter, SIGNAL(AsyncLoadFinished()), SIGNAL(LoadTracksFinished()));
connect(inserter, SIGNAL(Error(QString)), SIGNAL(LoadTracksError(QString))); connect(inserter, SIGNAL(Error(QString)), SIGNAL(LoadTracksError(QString)));
connect(inserter, SIGNAL(PlayRequested(QModelIndex)), SIGNAL(PlayRequested(QModelIndex))); connect(inserter, SIGNAL(PlayRequested(QModelIndex)), SIGNAL(PlayRequested(QModelIndex)));

View File

@ -30,6 +30,7 @@
class RadioService; class RadioService;
class PlaylistBackend; class PlaylistBackend;
class PlaylistFilter; class PlaylistFilter;
class TaskManager;
class QSortFilterProxyModel; class QSortFilterProxyModel;
class QUndoStack; class QUndoStack;
@ -48,7 +49,8 @@ class Playlist : public QAbstractListModel {
friend class PlaylistUndoCommands::MoveItems; friend class PlaylistUndoCommands::MoveItems;
public: public:
Playlist(PlaylistBackend* backend, int id, QObject* parent = 0); Playlist(PlaylistBackend* backend, TaskManager* task_manager, int id,
QObject* parent = 0);
~Playlist(); ~Playlist();
enum Column { enum Column {
@ -175,8 +177,6 @@ class Playlist : public QAbstractListModel {
void PlaylistChanged(); void PlaylistChanged();
void LoadTracksStarted();
void LoadTracksFinished();
void LoadTracksError(const QString& message); void LoadTracksError(const QString& message);
private: private:
@ -198,6 +198,7 @@ class Playlist : public QAbstractListModel {
PlaylistFilter* proxy_; PlaylistFilter* proxy_;
PlaylistBackend* backend_; PlaylistBackend* backend_;
TaskManager* task_manager_;
int id_; int id_;
PlaylistItemList items_; PlaylistItemList items_;

View File

@ -25,8 +25,9 @@
#include <QFileInfo> #include <QFileInfo>
#include <QtDebug> #include <QtDebug>
PlaylistManager::PlaylistManager(QObject *parent) PlaylistManager::PlaylistManager(TaskManager* task_manager, QObject *parent)
: QObject(parent), : QObject(parent),
task_manager_(task_manager),
playlist_backend_(NULL), playlist_backend_(NULL),
library_backend_(NULL), library_backend_(NULL),
sequence_(NULL), sequence_(NULL),
@ -61,15 +62,13 @@ void PlaylistManager::Init(LibraryBackend* library_backend,
} }
Playlist* PlaylistManager::AddPlaylist(int id, const QString& name) { 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_); ret->set_sequence(sequence_);
connect(ret, SIGNAL(CurrentSongChanged(Song)), SIGNAL(CurrentSongChanged(Song))); connect(ret, SIGNAL(CurrentSongChanged(Song)), SIGNAL(CurrentSongChanged(Song)));
connect(ret, SIGNAL(PlaylistChanged()), SIGNAL(PlaylistChanged())); connect(ret, SIGNAL(PlaylistChanged()), SIGNAL(PlaylistChanged()));
connect(ret, SIGNAL(PlaylistChanged()), SLOT(UpdateSummaryText())); connect(ret, SIGNAL(PlaylistChanged()), SLOT(UpdateSummaryText()));
connect(ret, SIGNAL(EditingFinished(QModelIndex)), SIGNAL(EditingFinished(QModelIndex))); 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(LoadTracksError(QString)), SIGNAL(Error(QString)));
connect(ret, SIGNAL(PlayRequested(QModelIndex)), SIGNAL(PlayRequested(QModelIndex))); connect(ret, SIGNAL(PlayRequested(QModelIndex)), SIGNAL(PlayRequested(QModelIndex)));

View File

@ -28,6 +28,7 @@ class Playlist;
class PlaylistBackend; class PlaylistBackend;
class PlaylistParser; class PlaylistParser;
class PlaylistSequence; class PlaylistSequence;
class TaskManager;
class QModelIndex; class QModelIndex;
class QUrl; class QUrl;
@ -36,7 +37,7 @@ class PlaylistManager : public QObject {
Q_OBJECT Q_OBJECT
public: public:
PlaylistManager(QObject *parent = 0); PlaylistManager(TaskManager* task_manager, QObject *parent = 0);
~PlaylistManager(); ~PlaylistManager();
int current_id() const { return current_; } int current_id() const { return current_; }
@ -51,6 +52,7 @@ public:
void Init(LibraryBackend* library_backend, PlaylistBackend* playlist_backend, void Init(LibraryBackend* library_backend, PlaylistBackend* playlist_backend,
PlaylistSequence* sequence); PlaylistSequence* sequence);
TaskManager* task_manager() const { return task_manager_; }
LibraryBackend* library_backend() const { return library_backend_; } LibraryBackend* library_backend() const { return library_backend_; }
PlaylistBackend* playlist_backend() const { return playlist_backend_; } PlaylistBackend* playlist_backend() const { return playlist_backend_; }
PlaylistSequence* sequence() const { return sequence_; } PlaylistSequence* sequence() const { return sequence_; }
@ -93,8 +95,6 @@ signals:
void PlaylistChanged(); void PlaylistChanged();
void EditingFinished(const QModelIndex& index); void EditingFinished(const QModelIndex& index);
void PlayRequested(const QModelIndex& index); void PlayRequested(const QModelIndex& index);
void LoadTracksStarted();
void LoadTracksFinished();
private slots: private slots:
void UpdateSummaryText(); void UpdateSummaryText();
@ -110,6 +110,7 @@ private:
QString name; QString name;
}; };
TaskManager* task_manager_;
PlaylistBackend* playlist_backend_; PlaylistBackend* playlist_backend_;
LibraryBackend* library_backend_; LibraryBackend* library_backend_;
PlaylistSequence* sequence_; PlaylistSequence* sequence_;

View File

@ -17,12 +17,16 @@
#include "playlist.h" #include "playlist.h"
#include "songloaderinserter.h" #include "songloaderinserter.h"
#include "core/songloader.h" #include "core/songloader.h"
#include "core/taskmanager.h"
SongLoaderInserter::SongLoaderInserter(QObject *parent) SongLoaderInserter::SongLoaderInserter(TaskManager* task_manager, QObject *parent)
: QObject(parent), : QObject(parent),
task_manager_(task_manager),
destination_(NULL), destination_(NULL),
row_(-1), 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()) if (pending_.isEmpty())
Finished(); Finished();
else else {
emit AsyncLoadStarted(); 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) { void SongLoaderInserter::PendingLoadFinished(bool success) {
@ -72,8 +79,9 @@ void SongLoaderInserter::PendingLoadFinished(bool success) {
loader->deleteLater(); loader->deleteLater();
task_manager_->SetTaskProgress(async_load_id_, ++async_progress_);
if (pending_.isEmpty()) { if (pending_.isEmpty()) {
emit AsyncLoadFinished(); task_manager_->SetTaskFinished(async_load_id_);
Finished(); Finished();
} }
} }

View File

@ -25,21 +25,20 @@
class Playlist; class Playlist;
class SongLoader; class SongLoader;
class TaskManager;
class QModelIndex; class QModelIndex;
class SongLoaderInserter : public QObject { class SongLoaderInserter : public QObject {
Q_OBJECT Q_OBJECT
public: public:
SongLoaderInserter(QObject* parent = 0); SongLoaderInserter(TaskManager* task_manager, QObject* parent = 0);
~SongLoaderInserter(); ~SongLoaderInserter();
void Load(Playlist* destination, int row, bool play_now, const QList<QUrl>& urls); void Load(Playlist* destination, int row, bool play_now, const QList<QUrl>& urls);
signals: signals:
void Error(const QString& message); void Error(const QString& message);
void AsyncLoadStarted();
void AsyncLoadFinished();
void PlayRequested(const QModelIndex& index); void PlayRequested(const QModelIndex& index);
private slots: private slots:
@ -49,6 +48,8 @@ private:
void Finished(); void Finished();
private: private:
TaskManager* task_manager_;
Playlist* destination_; Playlist* destination_;
int row_; int row_;
bool play_now_; bool play_now_;
@ -56,6 +57,8 @@ private:
SongList songs_; SongList songs_;
QSet<SongLoader*> pending_; QSet<SongLoader*> pending_;
int async_load_id_;
int async_progress_;
}; };
#endif // SONGLOADERINSERTER_H #endif // SONGLOADERINSERTER_H

View File

@ -20,6 +20,7 @@
#include "radiomodel.h" #include "radiomodel.h"
#include "core/networkaccessmanager.h" #include "core/networkaccessmanager.h"
#include "core/song.h" #include "core/song.h"
#include "core/taskmanager.h"
#include "ui/iconloader.h" #include "ui/iconloader.h"
#include "ui/settingsdialog.h" #include "ui/settingsdialog.h"
@ -55,6 +56,7 @@ LastFMService::LastFMService(RadioModel* parent)
station_dialog_(new LastFMStationDialog), station_dialog_(new LastFMStationDialog),
context_menu_(new QMenu), context_menu_(new QMenu),
initial_tune_(false), initial_tune_(false),
tune_task_id_(0),
scrobbling_enabled_(false), scrobbling_enabled_(false),
artist_list_(NULL), artist_list_(NULL),
tag_list_(NULL), tag_list_(NULL),
@ -287,7 +289,8 @@ PlaylistItem::SpecialLoadResult LastFMService::StartLoading(const QUrl& url) {
if (!IsAuthenticated()) if (!IsAuthenticated())
return PlaylistItem::SpecialLoadResult(); 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; last_url_ = url;
initial_tune_ = true; initial_tune_ = true;
@ -332,7 +335,8 @@ void LastFMService::TunerError(lastfm::ws::Error error) {
if (!initial_tune_) if (!initial_tune_)
return; return;
emit TaskFinished(MultiLoadingIndicator::LoadingLastFM); model()->task_manager()->SetTaskFinished(tune_task_id_);
tune_task_id_ = 0;
if (error == lastfm::ws::NotEnoughContent) { if (error == lastfm::ws::NotEnoughContent) {
emit AsyncLoadFinished(PlaylistItem::SpecialLoadResult( emit AsyncLoadFinished(PlaylistItem::SpecialLoadResult(
@ -616,7 +620,8 @@ void LastFMService::FetchMoreTracksFinished() {
return; return;
} }
reply->deleteLater(); reply->deleteLater();
emit TaskFinished(MultiLoadingIndicator::LoadingLastFM); model()->task_manager()->SetTaskFinished(tune_task_id_);
tune_task_id_ = 0;
try { try {
const XmlQuery& query = lastfm::ws::parse(reply); const XmlQuery& query = lastfm::ws::parse(reply);

View File

@ -167,6 +167,7 @@ class LastFMService : public RadioService {
QUrl last_url_; QUrl last_url_;
bool initial_tune_; bool initial_tune_;
int tune_task_id_;
bool scrobbling_enabled_; bool scrobbling_enabled_;
bool buttons_visible_; bool buttons_visible_;

View File

@ -21,6 +21,7 @@
#include "core/mergedproxymodel.h" #include "core/mergedproxymodel.h"
#include "core/networkaccessmanager.h" #include "core/networkaccessmanager.h"
#include "core/song.h" #include "core/song.h"
#include "core/taskmanager.h"
#include "library/librarymodel.h" #include "library/librarymodel.h"
#include "library/librarybackend.h" #include "library/librarybackend.h"
#include "library/libraryfilterwidget.h" #include "library/libraryfilterwidget.h"
@ -63,6 +64,7 @@ MagnatuneService::MagnatuneService(RadioModel* parent)
library_model_(NULL), library_model_(NULL),
library_filter_(NULL), library_filter_(NULL),
library_sort_model_(new QSortFilterProxyModel(this)), library_sort_model_(new QSortFilterProxyModel(this)),
load_database_task_id_(0),
membership_(Membership_None), membership_(Membership_None),
format_(Format_Ogg), format_(Format_Ogg),
total_song_count_(0), total_song_count_(0),
@ -151,13 +153,17 @@ void MagnatuneService::ReloadDatabase() {
QNetworkReply* reply = network_->get(request); QNetworkReply* reply = network_->get(request);
connect(reply, SIGNAL(finished()), SLOT(ReloadDatabaseFinished())); 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() { void MagnatuneService::ReloadDatabaseFinished() {
QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender()); QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
emit TaskFinished(MultiLoadingIndicator::LoadingMagnatune); model()->task_manager()->SetTaskFinished(load_database_task_id_);
load_database_task_id_ = 0;
root_->lazy_loaded = true; root_->lazy_loaded = true;
if (reply->error() != QNetworkReply::NoError) { if (reply->error() != QNetworkReply::NoError) {

View File

@ -112,6 +112,7 @@ class MagnatuneService : public RadioService {
LibraryModel* library_model_; LibraryModel* library_model_;
LibraryFilterWidget* library_filter_; LibraryFilterWidget* library_filter_;
QSortFilterProxyModel* library_sort_model_; QSortFilterProxyModel* library_sort_model_;
int load_database_task_id_;
MembershipType membership_; MembershipType membership_;
QString username_; QString username_;

View File

@ -29,11 +29,13 @@
QMap<QString, RadioService*> RadioModel::sServices; QMap<QString, RadioService*> RadioModel::sServices;
RadioModel::RadioModel(BackgroundThread<Database>* db_thread, RadioModel::RadioModel(BackgroundThread<Database>* db_thread,
NetworkAccessManager* network, QObject* parent) NetworkAccessManager* network, TaskManager* task_manager,
QObject* parent)
: SimpleTreeModel<RadioItem>(new RadioItem(this), parent), : SimpleTreeModel<RadioItem>(new RadioItem(this), parent),
db_thread_(db_thread), db_thread_(db_thread),
merged_model_(new MergedProxyModel(this)), merged_model_(new MergedProxyModel(this)),
network_(network), network_(network),
task_manager_(task_manager),
settings_dialog_(NULL) settings_dialog_(NULL)
{ {
Q_ASSERT(sServices.isEmpty()); Q_ASSERT(sServices.isEmpty());
@ -51,8 +53,6 @@ void RadioModel::AddService(RadioService *service) {
sServices[service->name()] = service; sServices[service->name()] = service;
service->CreateRootItem(root_); 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(AsyncLoadFinished(PlaylistItem::SpecialLoadResult)), SIGNAL(AsyncLoadFinished(PlaylistItem::SpecialLoadResult)));
connect(service, SIGNAL(StreamError(QString)), SIGNAL(StreamError(QString))); connect(service, SIGNAL(StreamError(QString)), SIGNAL(StreamError(QString)));
connect(service, SIGNAL(StreamMetadataFound(QUrl,Song)), SIGNAL(StreamMetadataFound(QUrl,Song))); connect(service, SIGNAL(StreamMetadataFound(QUrl,Song)), SIGNAL(StreamMetadataFound(QUrl,Song)));

View File

@ -24,19 +24,21 @@
#include "playlist/playlistitem.h" #include "playlist/playlistitem.h"
#include "widgets/multiloadingindicator.h" #include "widgets/multiloadingindicator.h"
class NetworkAccessManager; class Database;
class RadioService;
class LastFMService; class LastFMService;
class MergedProxyModel; class MergedProxyModel;
class Database; class NetworkAccessManager;
class RadioService;
class SettingsDialog; class SettingsDialog;
class TaskManager;
class RadioModel : public SimpleTreeModel<RadioItem> { class RadioModel : public SimpleTreeModel<RadioItem> {
Q_OBJECT Q_OBJECT
public: public:
RadioModel(BackgroundThread<Database>* db_thread, RadioModel(BackgroundThread<Database>* db_thread,
NetworkAccessManager* network, QObject* parent = 0); NetworkAccessManager* network, TaskManager* task_manager,
QObject* parent = 0);
enum { enum {
Role_Type = Qt::UserRole + 1, Role_Type = Qt::UserRole + 1,
@ -74,11 +76,10 @@ class RadioModel : public SimpleTreeModel<RadioItem> {
BackgroundThread<Database>* db_thread() const { return db_thread_; } BackgroundThread<Database>* db_thread() const { return db_thread_; }
MergedProxyModel* merged_model() const { return merged_model_; } MergedProxyModel* merged_model() const { return merged_model_; }
NetworkAccessManager* network() const { return network_; } NetworkAccessManager* network() const { return network_; }
TaskManager* task_manager() const { return task_manager_; }
SettingsDialog* settings_dialog() const { return settings_dialog_; } SettingsDialog* settings_dialog() const { return settings_dialog_; }
signals: signals:
void TaskStarted(MultiLoadingIndicator::TaskType);
void TaskFinished(MultiLoadingIndicator::TaskType);
void AsyncLoadFinished(const PlaylistItem::SpecialLoadResult& result); void AsyncLoadFinished(const PlaylistItem::SpecialLoadResult& result);
void StreamError(const QString& message); void StreamError(const QString& message);
void StreamMetadataFound(const QUrl& original_url, const Song& song); void StreamMetadataFound(const QUrl& original_url, const Song& song);
@ -98,6 +99,7 @@ class RadioModel : public SimpleTreeModel<RadioItem> {
BackgroundThread<Database>* db_thread_; BackgroundThread<Database>* db_thread_;
MergedProxyModel* merged_model_; MergedProxyModel* merged_model_;
NetworkAccessManager* network_; NetworkAccessManager* network_;
TaskManager* task_manager_;
SettingsDialog* settings_dialog_; SettingsDialog* settings_dialog_;
}; };

View File

@ -62,9 +62,6 @@ class RadioService : public QObject {
virtual QString Icon() { return QString(); } virtual QString Icon() { return QString(); }
signals: signals:
void TaskStarted(MultiLoadingIndicator::TaskType);
void TaskFinished(MultiLoadingIndicator::TaskType);
void AsyncLoadFinished(const PlaylistItem::SpecialLoadResult& result); void AsyncLoadFinished(const PlaylistItem::SpecialLoadResult& result);
void StreamError(const QString& message); void StreamError(const QString& message);
void StreamMetadataFound(const QUrl& original_url, const Song& song); void StreamMetadataFound(const QUrl& original_url, const Song& song);

View File

@ -17,6 +17,7 @@
#include "somafmservice.h" #include "somafmservice.h"
#include "radiomodel.h" #include "radiomodel.h"
#include "core/networkaccessmanager.h" #include "core/networkaccessmanager.h"
#include "core/taskmanager.h"
#include "ui/iconloader.h" #include "ui/iconloader.h"
#include <QNetworkAccessManager> #include <QNetworkAccessManager>
@ -38,6 +39,8 @@ SomaFMService::SomaFMService(RadioModel* parent)
: RadioService(kServiceName, parent), : RadioService(kServiceName, parent),
root_(NULL), root_(NULL),
context_menu_(new QMenu), context_menu_(new QMenu),
get_channels_task_id_(0),
get_stream_task_id_(0),
network_(parent->network()->network()) network_(parent->network()->network())
{ {
context_menu_->addAction(IconLoader::Load("media-playback-start"), tr("Add to playlist"), this, SLOT(AddToPlaylist())); 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); QNetworkReply* reply = network_->get(request);
connect(reply, SIGNAL(finished()), SLOT(LoadPlaylistFinished())); 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( return PlaylistItem::SpecialLoadResult(
PlaylistItem::SpecialLoadResult::WillLoadAsynchronously, url); PlaylistItem::SpecialLoadResult::WillLoadAsynchronously, url);
@ -92,7 +96,8 @@ PlaylistItem::SpecialLoadResult SomaFMService::StartLoading(const QUrl& url) {
void SomaFMService::LoadPlaylistFinished() { void SomaFMService::LoadPlaylistFinished() {
QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender()); QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
emit TaskFinished(MultiLoadingIndicator::LoadingStream); model()->task_manager()->SetTaskFinished(get_stream_task_id_);
get_stream_task_id_ = 0;
QUrl original_url(reply->url()); QUrl original_url(reply->url());
@ -126,12 +131,14 @@ void SomaFMService::RefreshChannels() {
QNetworkReply* reply = network_->get(request); QNetworkReply* reply = network_->get(request);
connect(reply, SIGNAL(finished()), SLOT(RefreshChannelsFinished())); 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() { void SomaFMService::RefreshChannelsFinished() {
QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender()); QNetworkReply* reply = qobject_cast<QNetworkReply*>(sender());
emit TaskFinished(MultiLoadingIndicator::GettingChannels); model()->task_manager()->SetTaskFinished(get_channels_task_id_);
get_channels_task_id_ = 0;
if (reply->error() != QNetworkReply::NoError) { if (reply->error() != QNetworkReply::NoError) {
// TODO: Error handling // TODO: Error handling

View File

@ -66,6 +66,9 @@ class SomaFMService : public RadioService {
QMenu* context_menu_; QMenu* context_menu_;
RadioItem* context_item_; RadioItem* context_item_;
int get_channels_task_id_;
int get_stream_task_id_;
QNetworkAccessManager* network_; QNetworkAccessManager* network_;
}; };

View File

@ -181,6 +181,9 @@ msgstr "مكتبتك فارغة!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "اضغط هنا لإضافة بعض الموسيقى" msgstr "اضغط هنا لإضافة بعض الموسيقى"
msgid "Updating library"
msgstr ""
msgid "Title" msgid "Title"
msgstr "العنوان" msgstr "العنوان"
@ -351,6 +354,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "" msgstr ""
@ -429,6 +435,9 @@ msgstr ""
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "" msgstr ""
msgid "Loading Last.fm radio"
msgstr ""
msgid "Invalid service" msgid "Invalid service"
msgstr "خدمة غير متاحة" msgstr "خدمة غير متاحة"
@ -539,6 +548,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "" msgstr ""
msgid "Downloading Magnatune catalogue"
msgstr ""
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "" msgstr ""
@ -557,6 +569,12 @@ msgstr ""
msgid "Refresh channels" msgid "Refresh channels"
msgstr "" msgstr ""
msgid "Loading stream"
msgstr ""
msgid "Getting channels"
msgstr ""
msgid "Start transcoding" msgid "Start transcoding"
msgstr "" msgstr ""
@ -770,27 +788,6 @@ msgstr ""
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "" 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" msgid "Small album cover"
msgstr "" msgstr ""

View File

@ -182,6 +182,9 @@ msgstr "Vaše knihovna je prázdná!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Zde klikněte pro řidání hudby" msgstr "Zde klikněte pro řidání hudby"
msgid "Updating library"
msgstr "Aktualizuji knihovnu"
msgid "Title" msgid "Title"
msgstr "Titulek" msgstr "Titulek"
@ -352,6 +355,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "" msgstr ""
@ -430,6 +436,9 @@ msgstr ""
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "" msgstr ""
msgid "Loading Last.fm radio"
msgstr "Načítám rádio Last.fm"
msgid "Invalid service" msgid "Invalid service"
msgstr "Neplatná služba" msgstr "Neplatná služba"
@ -540,6 +549,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "" msgstr ""
msgid "Downloading Magnatune catalogue"
msgstr ""
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "Služba rádia nemohla být načtena :-(" 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" msgid "Refresh channels"
msgstr "Obnovit kanály" 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" msgid "Start transcoding"
msgstr "" msgstr ""
@ -772,27 +790,6 @@ msgstr "OSD náhled"
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "Přemístit přetažením" 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" msgid "Small album cover"
msgstr "" msgstr ""
@ -1533,6 +1530,9 @@ msgstr ""
msgid "Delay between visualizations" msgid "Delay between visualizations"
msgstr "" msgstr ""
#~ msgid "Loading audio engine"
#~ msgstr "Načítá se podpora audia"
#~ msgid "Show section" #~ msgid "Show section"
#~ msgstr "Zobrazit skeci" #~ msgstr "Zobrazit skeci"

View File

@ -184,6 +184,9 @@ msgstr "Dit bibliotek er tomt!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Klik her for at tilføje musik" msgstr "Klik her for at tilføje musik"
msgid "Updating library"
msgstr "Opdaterer bibliotek"
msgid "Title" msgid "Title"
msgstr "Titel" msgstr "Titel"
@ -354,6 +357,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "" msgstr ""
@ -432,6 +438,9 @@ msgstr "Last.fm kunstnere der minder om %1"
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "Last.fm mærkeradio: %1" msgstr "Last.fm mærkeradio: %1"
msgid "Loading Last.fm radio"
msgstr "Indlæser Last.fm-radio"
msgid "Invalid service" msgid "Invalid service"
msgstr "Ugyldig tjeneste" msgstr "Ugyldig tjeneste"
@ -542,6 +551,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "" msgstr ""
msgid "Downloading Magnatune catalogue"
msgstr ""
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "Radiotjeneste kunne ikke indlæses :-(" msgstr "Radiotjeneste kunne ikke indlæses :-("
@ -560,6 +572,12 @@ msgstr "Åbn somafm.com i webbrowser"
msgid "Refresh channels" msgid "Refresh channels"
msgstr "Genopfrisk kanaler" msgstr "Genopfrisk kanaler"
msgid "Loading stream"
msgstr "Indlæser stream"
msgid "Getting channels"
msgstr "Henter kanaler"
msgid "Start transcoding" msgid "Start transcoding"
msgstr "" msgstr ""
@ -775,27 +793,6 @@ msgstr "Forhåndsvisning af OSD"
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "Træk for at skifte position" 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" msgid "Small album cover"
msgstr "" msgstr ""
@ -1536,6 +1533,9 @@ msgstr ""
msgid "Delay between visualizations" msgid "Delay between visualizations"
msgstr "" msgstr ""
#~ msgid "Loading audio engine"
#~ msgstr "Indlæser lydmotor"
#~ msgid "Copy to library..." #~ msgid "Copy to library..."
#~ msgstr "Kopiér til bibliotek..." #~ msgstr "Kopiér til bibliotek..."

View File

@ -181,6 +181,9 @@ msgstr "Ihre Musiksammlung ist leer!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Klicken Sie hier um das zu ändern" msgstr "Klicken Sie hier um das zu ändern"
msgid "Updating library"
msgstr "Aktualisiere Musiksammlung"
msgid "Title" msgid "Title"
msgstr "Titel" msgstr "Titel"
@ -352,6 +355,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "%1 Wiedergabelisten (%2)" msgstr "%1 Wiedergabelisten (%2)"
@ -430,6 +436,9 @@ msgstr "Last.fm Ähnliche Künstler wie %1"
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "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" msgid "Invalid service"
msgstr "Ungültiger Service" msgstr "Ungültiger Service"
@ -540,6 +549,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "Magnatune durchsuchen" msgstr "Magnatune durchsuchen"
msgid "Downloading Magnatune catalogue"
msgstr "Magnatune Katalog wird geladen"
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "Radioservice konnte nicht geladen werden" msgstr "Radioservice konnte nicht geladen werden"
@ -558,6 +570,12 @@ msgstr "somafm.com im Browser öffnen"
msgid "Refresh channels" msgid "Refresh channels"
msgstr "Channels neu laden" msgstr "Channels neu laden"
msgid "Loading stream"
msgstr "Lade Stream"
msgid "Getting channels"
msgstr "Lade Channels"
msgid "Start transcoding" msgid "Start transcoding"
msgstr "Konvertieren" msgstr "Konvertieren"
@ -774,27 +792,6 @@ msgstr "OSD Vorschau"
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "Klicken und ziehen um die Position zu ändern" 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" msgid "Small album cover"
msgstr "" msgstr ""
@ -1537,6 +1534,9 @@ msgstr "Von der Liste wählen"
msgid "Delay between visualizations" msgid "Delay between visualizations"
msgstr "" msgstr ""
#~ msgid "Loading audio engine"
#~ msgstr "Audio Engine wird geladen"
#~ msgid "Show section" #~ msgid "Show section"
#~ msgstr "Spalten" #~ msgstr "Spalten"

View File

@ -183,6 +183,9 @@ msgstr "Η βιβλιοθήκη σας είναι άδεια!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Κλικ εδώ για να προσθέσετε μουσική" msgstr "Κλικ εδώ για να προσθέσετε μουσική"
msgid "Updating library"
msgstr "Ενημέρωση λίστας"
msgid "Title" msgid "Title"
msgstr "Τίτλος" msgstr "Τίτλος"
@ -355,6 +358,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "%1 λίστες αναπαραγωγής (%2)" msgstr "%1 λίστες αναπαραγωγής (%2)"
@ -433,6 +439,9 @@ msgstr "Καλλιτέχνες του Last.fm όμοιοι με %1"
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "Εττικέτες ραδιοφώνου του Last.fm: %1" msgstr "Εττικέτες ραδιοφώνου του Last.fm: %1"
msgid "Loading Last.fm radio"
msgstr "Φόρτωμα Last.fm"
msgid "Invalid service" msgid "Invalid service"
msgstr "Εσφαλμένη υπηρεσία" msgstr "Εσφαλμένη υπηρεσία"
@ -543,6 +552,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "Εύρεση στο Magnatune" msgstr "Εύρεση στο Magnatune"
msgid "Downloading Magnatune catalogue"
msgstr "Μεταφόρτωση καταλόγου του Magnatune"
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "Η υπηρεσίες ραδιοφώνου απέτυχαν να φορτωθούν :-(" msgstr "Η υπηρεσίες ραδιοφώνου απέτυχαν να φορτωθούν :-("
@ -561,6 +573,12 @@ msgstr "Άνοιγμα του somafm.com στον περιηγητή"
msgid "Refresh channels" msgid "Refresh channels"
msgstr "Ανανέωση καναλιών" msgstr "Ανανέωση καναλιών"
msgid "Loading stream"
msgstr "Φόρτωμα ροής (stream)"
msgid "Getting channels"
msgstr "Λήψη καναλιών"
msgid "Start transcoding" msgid "Start transcoding"
msgstr "Εκκίνηση επανακωδικοποίησης" msgstr "Εκκίνηση επανακωδικοποίησης"
@ -777,27 +795,6 @@ msgstr "Προ-επισκόπηση OSD"
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "Σύρετε για μετακίνηση" 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" msgid "Small album cover"
msgstr "" msgstr ""
@ -1539,6 +1536,9 @@ msgstr "Επιλογή από τη λίστα"
msgid "Delay between visualizations" msgid "Delay between visualizations"
msgstr "" msgstr ""
#~ msgid "Loading audio engine"
#~ msgstr "Φόρτωμα της μηχανής ήχου"
#~ msgid "Show section" #~ msgid "Show section"
#~ msgstr "Εμφάνιση τμήματος" #~ msgstr "Εμφάνιση τμήματος"

View File

@ -181,6 +181,9 @@ msgstr "Your library is empty!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Click here to add some music" msgstr "Click here to add some music"
msgid "Updating library"
msgstr "Updating library"
msgid "Title" msgid "Title"
msgstr "Title" msgstr "Title"
@ -352,6 +355,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "%1 playlists (%2)" msgstr "%1 playlists (%2)"
@ -430,6 +436,9 @@ msgstr "Last.fm Similar Artists to %1"
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "Last.fm Tag Radio: %1" msgstr "Last.fm Tag Radio: %1"
msgid "Loading Last.fm radio"
msgstr "Loading Last.fm radio"
msgid "Invalid service" msgid "Invalid service"
msgstr "Invalid service" msgstr "Invalid service"
@ -540,6 +549,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "Search Magnatune" msgstr "Search Magnatune"
msgid "Downloading Magnatune catalogue"
msgstr "Downloading Magnatune catalogue"
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "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" msgid "Refresh channels"
msgstr "Refresh channels" msgstr "Refresh channels"
msgid "Loading stream"
msgstr "Loading stream"
msgid "Getting channels"
msgstr "Getting channels"
msgid "Start transcoding" msgid "Start transcoding"
msgstr "Start transcoding" msgstr "Start transcoding"
@ -774,27 +792,6 @@ msgstr "OSD Preview"
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "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" msgid "Small album cover"
msgstr "" msgstr ""
@ -1534,6 +1531,9 @@ msgstr ""
msgid "Delay between visualizations" msgid "Delay between visualizations"
msgstr "Delay between visualisations" msgstr "Delay between visualisations"
#~ msgid "Loading audio engine"
#~ msgstr "Loading audio engine"
#~ msgid "Show section" #~ msgid "Show section"
#~ msgstr "Show section" #~ msgstr "Show section"

View File

@ -181,6 +181,9 @@ msgstr "Your library is empty!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Click here to add some music" msgstr "Click here to add some music"
msgid "Updating library"
msgstr "Updating library"
msgid "Title" msgid "Title"
msgstr "Title" msgstr "Title"
@ -351,6 +354,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "" msgstr ""
@ -429,6 +435,9 @@ msgstr "Last.fm Similar Artists to %1"
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "Last.fm Tag Radio: %1" msgstr "Last.fm Tag Radio: %1"
msgid "Loading Last.fm radio"
msgstr "Loading Last.fm radio"
msgid "Invalid service" msgid "Invalid service"
msgstr "Invalid service" msgstr "Invalid service"
@ -539,6 +548,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "" msgstr ""
msgid "Downloading Magnatune catalogue"
msgstr ""
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "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" msgid "Refresh channels"
msgstr "Refresh channels" msgstr "Refresh channels"
msgid "Loading stream"
msgstr "Loading stream"
msgid "Getting channels"
msgstr "Getting channels"
msgid "Start transcoding" msgid "Start transcoding"
msgstr "" msgstr ""
@ -771,27 +789,6 @@ msgstr "OSD Preview"
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "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" msgid "Small album cover"
msgstr "" msgstr ""
@ -1531,6 +1528,9 @@ msgstr ""
msgid "Delay between visualizations" msgid "Delay between visualizations"
msgstr "Delay between visualisations" msgstr "Delay between visualisations"
#~ msgid "Loading audio engine"
#~ msgstr "Loading audio engine"
#~ msgid "Show section" #~ msgid "Show section"
#~ msgstr "Show section" #~ msgstr "Show section"

View File

@ -182,6 +182,9 @@ msgstr "¡Tu colleción está vacia!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Haz clic aquí para añadir música" msgstr "Haz clic aquí para añadir música"
msgid "Updating library"
msgstr "Actualizando colección"
msgid "Title" msgid "Title"
msgstr "Título" msgstr "Título"
@ -354,6 +357,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "%1 listas de reproducción (%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" msgid "Last.fm Tag Radio: %1"
msgstr "Radio en Last.fm de la Etiqueta %1" msgstr "Radio en Last.fm de la Etiqueta %1"
msgid "Loading Last.fm radio"
msgstr "Cargando radio de Last.fm"
msgid "Invalid service" msgid "Invalid service"
msgstr "Servicio inválido" msgstr "Servicio inválido"
@ -542,6 +551,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "Buscar en Magnatune" msgstr "Buscar en Magnatune"
msgid "Downloading Magnatune catalogue"
msgstr "Descargando el catálogo de Magnatune"
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "Servicio de radio no pudo ser cargado :-(" msgstr "Servicio de radio no pudo ser cargado :-("
@ -560,6 +572,12 @@ msgstr "Abrir somafm.com en el navegador"
msgid "Refresh channels" msgid "Refresh channels"
msgstr "Actualizar canales" msgstr "Actualizar canales"
msgid "Loading stream"
msgstr "Cargando flujo"
msgid "Getting channels"
msgstr "Obteniendo canales"
msgid "Start transcoding" msgid "Start transcoding"
msgstr "Comenzar conversión" msgstr "Comenzar conversión"
@ -777,27 +795,6 @@ msgstr "Previsualización del OSD"
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "Arrastrar para reposicionar" 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" msgid "Small album cover"
msgstr "" msgstr ""
@ -1545,6 +1542,9 @@ msgstr "Elegir de la lista"
msgid "Delay between visualizations" msgid "Delay between visualizations"
msgstr "" msgstr ""
#~ msgid "Loading audio engine"
#~ msgstr "Cargando motor de sonido"
#~ msgid "Show section" #~ msgid "Show section"
#~ msgstr "Mostrar columna" #~ msgstr "Mostrar columna"

View File

@ -181,6 +181,9 @@ msgstr "Kirjasto on tyhjä!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Paina tästä lisätäksesi musiikkia" msgstr "Paina tästä lisätäksesi musiikkia"
msgid "Updating library"
msgstr ""
msgid "Title" msgid "Title"
msgstr "Kappale" msgstr "Kappale"
@ -351,6 +354,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "" msgstr ""
@ -429,6 +435,9 @@ msgstr ""
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "" msgstr ""
msgid "Loading Last.fm radio"
msgstr ""
msgid "Invalid service" msgid "Invalid service"
msgstr "" msgstr ""
@ -539,6 +548,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "" msgstr ""
msgid "Downloading Magnatune catalogue"
msgstr ""
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "" msgstr ""
@ -557,6 +569,12 @@ msgstr ""
msgid "Refresh channels" msgid "Refresh channels"
msgstr "" msgstr ""
msgid "Loading stream"
msgstr ""
msgid "Getting channels"
msgstr ""
msgid "Start transcoding" msgid "Start transcoding"
msgstr "" msgstr ""
@ -770,27 +788,6 @@ msgstr ""
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "" 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" msgid "Small album cover"
msgstr "" msgstr ""

View File

@ -182,6 +182,9 @@ msgstr "Votre bibliothèque est vide !"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Cliquez ici pour créer votre bibliothèque musicale" msgstr "Cliquez ici pour créer votre bibliothèque musicale"
msgid "Updating library"
msgstr "Mise à jour de la bibliothèque"
msgid "Title" msgid "Title"
msgstr "Titre" msgstr "Titre"
@ -352,6 +355,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "" msgstr ""
@ -430,6 +436,9 @@ msgstr "Artistes Last.fm similaires à %1"
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "" msgstr ""
msgid "Loading Last.fm radio"
msgstr "Chargement de la radio Last.fm"
msgid "Invalid service" msgid "Invalid service"
msgstr "Service invalide" msgstr "Service invalide"
@ -542,6 +551,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "" msgstr ""
msgid "Downloading Magnatune catalogue"
msgstr ""
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "Le service radio n'a pas pu être chargé :-(" msgstr "Le service radio n'a pas pu être chargé :-("
@ -560,6 +572,12 @@ msgstr "Ouvrir somafm.com dans le navigateur"
msgid "Refresh channels" msgid "Refresh channels"
msgstr "Mettre à jour les canaux" msgstr "Mettre à jour les canaux"
msgid "Loading stream"
msgstr "Chargement du flux"
msgid "Getting channels"
msgstr "Récupération des canaux"
msgid "Start transcoding" msgid "Start transcoding"
msgstr "" msgstr ""
@ -774,27 +792,6 @@ msgstr "Prévisualisation de l'affichage à l'écran (OSD)"
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "Déplacer pour repositionner" 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" msgid "Small album cover"
msgstr "" msgstr ""
@ -1541,6 +1538,9 @@ msgstr ""
msgid "Delay between visualizations" msgid "Delay between visualizations"
msgstr "" msgstr ""
#~ msgid "Loading audio engine"
#~ msgstr "Chargement du moteur audio"
#~ msgid "Options" #~ msgid "Options"
#~ msgstr "Options" #~ msgstr "Options"

View File

@ -181,6 +181,9 @@ msgstr "A biblioteca encontra-se vacia!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Clique aqui para adicionar música" msgstr "Clique aqui para adicionar música"
msgid "Updating library"
msgstr "A actualizar a biblioteca"
msgid "Title" msgid "Title"
msgstr "Título" msgstr "Título"
@ -351,6 +354,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "" msgstr ""
@ -429,6 +435,9 @@ msgstr "Artistas da Last.fm similares com %1"
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "Tag do rádio da Last.fm: %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" msgid "Invalid service"
msgstr "Servizo Inválido" msgstr "Servizo Inválido"
@ -540,6 +549,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "" msgstr ""
msgid "Downloading Magnatune catalogue"
msgstr ""
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "Servizo de rádio non pudo ser carregado :-(" msgstr "Servizo de rádio non pudo ser carregado :-("
@ -558,6 +570,12 @@ msgstr "Abrir soma.fm no navegador da internet"
msgid "Refresh channels" msgid "Refresh channels"
msgstr "Actualizar os canais" msgstr "Actualizar os canais"
msgid "Loading stream"
msgstr "A carregar a stream"
msgid "Getting channels"
msgstr "Obter canais"
msgid "Start transcoding" msgid "Start transcoding"
msgstr "" msgstr ""
@ -772,27 +790,6 @@ msgstr "Pré-visualizar no OSD"
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "Arraste para posicionar" 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" msgid "Small album cover"
msgstr "" msgstr ""
@ -1531,6 +1528,9 @@ msgstr ""
msgid "Delay between visualizations" msgid "Delay between visualizations"
msgstr "" msgstr ""
#~ msgid "Loading audio engine"
#~ msgstr "Carregando o sistema de áudio"
#~ msgid "Copy to library..." #~ msgid "Copy to library..."
#~ msgstr "Copiar para a biblioteca" #~ msgstr "Copiar para a biblioteca"

View File

@ -182,6 +182,9 @@ msgstr "La raccolta è vuota!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Fai clic qui per aggiungere della musica" msgstr "Fai clic qui per aggiungere della musica"
msgid "Updating library"
msgstr "Aggiornamento raccolta"
msgid "Title" msgid "Title"
msgstr "Titolo" msgstr "Titolo"
@ -354,6 +357,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "%1 scalette (%2)" msgstr "%1 scalette (%2)"
@ -432,6 +438,9 @@ msgstr "Artisti simili a %1 di Last.fm"
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "Radio del tag di Last.fm: %1" msgstr "Radio del tag di Last.fm: %1"
msgid "Loading Last.fm radio"
msgstr "Caricamento radio Last.fm"
msgid "Invalid service" msgid "Invalid service"
msgstr "Servizio non valido" msgstr "Servizio non valido"
@ -542,6 +551,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "Cerca in Magnatune" msgstr "Cerca in Magnatune"
msgid "Downloading Magnatune catalogue"
msgstr "Scaricamento catalogo Magnatune"
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "Il servizio radio non può essere caricato :-(" msgstr "Il servizio radio non può essere caricato :-("
@ -560,6 +572,12 @@ msgstr "Apri somafm.com nel browser"
msgid "Refresh channels" msgid "Refresh channels"
msgstr "Aggiorna i canali" msgstr "Aggiorna i canali"
msgid "Loading stream"
msgstr "Caricamento flusso"
msgid "Getting channels"
msgstr "Recupero dei canali"
msgid "Start transcoding" msgid "Start transcoding"
msgstr "Avvia transcodifica" msgstr "Avvia transcodifica"
@ -777,27 +795,6 @@ msgstr "Anteprima OSD"
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "Trascina per riposizionare" 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" msgid "Small album cover"
msgstr "" msgstr ""
@ -1542,6 +1539,9 @@ msgstr "Scegli dall'elenco"
msgid "Delay between visualizations" msgid "Delay between visualizations"
msgstr "" msgstr ""
#~ msgid "Loading audio engine"
#~ msgstr "Caricamento motore audio"
#~ msgid "Show section" #~ msgid "Show section"
#~ msgstr "Mostra sezione" #~ msgstr "Mostra sezione"

View File

@ -181,6 +181,9 @@ msgstr ""
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "" msgstr ""
msgid "Updating library"
msgstr ""
msgid "Title" msgid "Title"
msgstr "Аталуы" msgstr "Аталуы"
@ -351,6 +354,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "" msgstr ""
@ -429,6 +435,9 @@ msgstr ""
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "" msgstr ""
msgid "Loading Last.fm radio"
msgstr ""
msgid "Invalid service" msgid "Invalid service"
msgstr "" msgstr ""
@ -539,6 +548,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "" msgstr ""
msgid "Downloading Magnatune catalogue"
msgstr ""
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "" msgstr ""
@ -557,6 +569,12 @@ msgstr ""
msgid "Refresh channels" msgid "Refresh channels"
msgstr "" msgstr ""
msgid "Loading stream"
msgstr ""
msgid "Getting channels"
msgstr ""
msgid "Start transcoding" msgid "Start transcoding"
msgstr "" msgstr ""
@ -772,27 +790,6 @@ msgstr ""
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "" 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" msgid "Small album cover"
msgstr "" msgstr ""

View File

@ -181,6 +181,9 @@ msgstr "Ditt bibliotek er tomt!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Klikk her for å legge til litt musikk" msgstr "Klikk her for å legge til litt musikk"
msgid "Updating library"
msgstr "Oppdaterer bibliotek"
msgid "Title" msgid "Title"
msgstr "Tittel" msgstr "Tittel"
@ -351,6 +354,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "" msgstr ""
@ -429,6 +435,9 @@ msgstr ""
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "" msgstr ""
msgid "Loading Last.fm radio"
msgstr "Laster inn Last.fm radio"
msgid "Invalid service" msgid "Invalid service"
msgstr "Ukjent tjeneste" msgstr "Ukjent tjeneste"
@ -539,6 +548,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "" msgstr ""
msgid "Downloading Magnatune catalogue"
msgstr ""
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "Kunne ikke laste inn radiotjeneste :-(" msgstr "Kunne ikke laste inn radiotjeneste :-("
@ -557,6 +569,12 @@ msgstr "Hent somafm.com i en nettleser"
msgid "Refresh channels" msgid "Refresh channels"
msgstr "Hent kanaler på ny" msgstr "Hent kanaler på ny"
msgid "Loading stream"
msgstr "Lader lydstrøm"
msgid "Getting channels"
msgstr "Henter kanaler"
msgid "Start transcoding" msgid "Start transcoding"
msgstr "" msgstr ""
@ -772,27 +790,6 @@ msgstr "Forhåndsvisning av notifikasjon"
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "Dra for å endre posisjon" 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" msgid "Small album cover"
msgstr "" msgstr ""
@ -1533,6 +1530,9 @@ msgstr ""
msgid "Delay between visualizations" msgid "Delay between visualizations"
msgstr "" msgstr ""
#~ msgid "Loading audio engine"
#~ msgstr "Laster lydmotor"
#~ msgid "Copy to library..." #~ msgid "Copy to library..."
#~ msgstr "Kopier til bibliotek..." #~ msgstr "Kopier til bibliotek..."

View File

@ -181,6 +181,9 @@ msgstr ""
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "" msgstr ""
msgid "Updating library"
msgstr ""
msgid "Title" msgid "Title"
msgstr "Títol" msgstr "Títol"
@ -351,6 +354,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "" msgstr ""
@ -429,6 +435,9 @@ msgstr ""
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "" msgstr ""
msgid "Loading Last.fm radio"
msgstr "Cargament de la ràdio Last.fm"
msgid "Invalid service" msgid "Invalid service"
msgstr "" msgstr ""
@ -539,6 +548,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "" msgstr ""
msgid "Downloading Magnatune catalogue"
msgstr ""
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "" msgstr ""
@ -557,6 +569,12 @@ msgstr ""
msgid "Refresh channels" msgid "Refresh channels"
msgstr "" msgstr ""
msgid "Loading stream"
msgstr "Cargament del flux"
msgid "Getting channels"
msgstr ""
msgid "Start transcoding" msgid "Start transcoding"
msgstr "" msgstr ""
@ -770,27 +788,6 @@ msgstr ""
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "" 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" msgid "Small album cover"
msgstr "" msgstr ""

View File

@ -182,6 +182,9 @@ msgstr "Biblioteka jest pusta!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Kliknij aby dodać jakąś muzykę" msgstr "Kliknij aby dodać jakąś muzykę"
msgid "Updating library"
msgstr "Aktualizowanie biblioteki"
msgid "Title" msgid "Title"
msgstr "Nazwa" msgstr "Nazwa"
@ -352,6 +355,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "" msgstr ""
@ -430,6 +436,9 @@ msgstr ""
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "" msgstr ""
msgid "Loading Last.fm radio"
msgstr "Ładowanie radia Last.fm"
msgid "Invalid service" msgid "Invalid service"
msgstr "Błędna usługa" msgstr "Błędna usługa"
@ -540,6 +549,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "" msgstr ""
msgid "Downloading Magnatune catalogue"
msgstr ""
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "Usługa radio nie może być załadowana :-(" 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" msgid "Refresh channels"
msgstr "Odśwież kanały" msgstr "Odśwież kanały"
msgid "Loading stream"
msgstr "Ładowanie strumienia"
msgid "Getting channels"
msgstr "Pobieranie kanałów"
msgid "Start transcoding" msgid "Start transcoding"
msgstr "" msgstr ""
@ -772,27 +790,6 @@ msgstr "Podgląd OSD"
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "Przeciągnij aby zmienić pozycję" 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" msgid "Small album cover"
msgstr "" msgstr ""
@ -1531,6 +1528,9 @@ msgstr ""
msgid "Delay between visualizations" msgid "Delay between visualizations"
msgstr "" msgstr ""
#~ msgid "Loading audio engine"
#~ msgstr "Ładowanie silnika dźwięku"
#~ msgid "Copy to library..." #~ msgid "Copy to library..."
#~ msgstr "Skopiuj do biblioteki..." #~ msgstr "Skopiuj do biblioteki..."

View File

@ -181,6 +181,9 @@ msgstr "A biblioteca está vazia!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Clique aqui para adicionar música" msgstr "Clique aqui para adicionar música"
msgid "Updating library"
msgstr "A actualizar a biblioteca"
msgid "Title" msgid "Title"
msgstr "Título" msgstr "Título"
@ -353,6 +356,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "%1 listas de reprodução (%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" msgid "Last.fm Tag Radio: %1"
msgstr "Tag da Rádio Last.fm: %1" msgstr "Tag da Rádio Last.fm: %1"
msgid "Loading Last.fm radio"
msgstr "Carregando a rádio Last.fm"
msgid "Invalid service" msgid "Invalid service"
msgstr "Serviço inválido" msgstr "Serviço inválido"
@ -541,6 +550,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "Procurar na Magnatune" msgstr "Procurar na Magnatune"
msgid "Downloading Magnatune catalogue"
msgstr "Transferindo Catálogo Magnatune"
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "Serviço de rádio não pode ser carregado :-(" msgstr "Serviço de rádio não pode ser carregado :-("
@ -559,6 +571,12 @@ msgstr "Abrir soma.fm no navegador"
msgid "Refresh channels" msgid "Refresh channels"
msgstr "Actualizar os canais" msgstr "Actualizar os canais"
msgid "Loading stream"
msgstr "A carregar emissão"
msgid "Getting channels"
msgstr "A obter canais"
msgid "Start transcoding" msgid "Start transcoding"
msgstr "Iniciar conversão" msgstr "Iniciar conversão"
@ -775,27 +793,6 @@ msgstr "Antevisão OSD"
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "Arraste para posicionar" 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" msgid "Small album cover"
msgstr "" msgstr ""
@ -1536,6 +1533,9 @@ msgstr "Escolher da lista"
msgid "Delay between visualizations" msgid "Delay between visualizations"
msgstr "" msgstr ""
#~ msgid "Loading audio engine"
#~ msgstr "Carregando o sistema de áudio"
#~ msgid "Show section" #~ msgid "Show section"
#~ msgstr "Mostrar secção" #~ msgstr "Mostrar secção"

View File

@ -181,6 +181,9 @@ msgstr "A biblioteca está vazia!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Clique aqui para adicionar algumas músicas" msgstr "Clique aqui para adicionar algumas músicas"
msgid "Updating library"
msgstr "Atualizando biblioteca"
msgid "Title" msgid "Title"
msgstr "Tí­tulo" msgstr "Tí­tulo"
@ -353,6 +356,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "%1 listas de reprodução (%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" msgid "Last.fm Tag Radio: %1"
msgstr "Rádio de Marcação Last.fm: %1" msgstr "Rádio de Marcação Last.fm: %1"
msgid "Loading Last.fm radio"
msgstr "Carregando rádio Last.fm"
msgid "Invalid service" msgid "Invalid service"
msgstr "Serviço inválido" msgstr "Serviço inválido"
@ -543,6 +552,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "Procurar Magnatune" msgstr "Procurar Magnatune"
msgid "Downloading Magnatune catalogue"
msgstr "Baixando catálogo da Magnatune"
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "O serviço de rádio não pôde ser carregado :-(" 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" msgid "Refresh channels"
msgstr "Atualizar canais" msgstr "Atualizar canais"
msgid "Loading stream"
msgstr "Carregando transmissão"
msgid "Getting channels"
msgstr "Adquirindo canais"
msgid "Start transcoding" msgid "Start transcoding"
msgstr "Começar transcodificação" msgstr "Começar transcodificação"
@ -777,27 +795,6 @@ msgstr "Pré-visualização de informações na tela"
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "Arraste para reposicionar" 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" msgid "Small album cover"
msgstr "" msgstr ""
@ -1539,6 +1536,9 @@ msgstr "Escolher da lista"
msgid "Delay between visualizations" msgid "Delay between visualizations"
msgstr "" msgstr ""
#~ msgid "Loading audio engine"
#~ msgstr "Carregando mecanismo de áudio"
#~ msgid "Show section" #~ msgid "Show section"
#~ msgstr "Mostrar sessão" #~ msgstr "Mostrar sessão"

View File

@ -181,6 +181,9 @@ msgstr "Biblioteca este goală!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Clic aici pentru a adăuga muzică" msgstr "Clic aici pentru a adăuga muzică"
msgid "Updating library"
msgstr "Se actualizează biblioteca"
msgid "Title" msgid "Title"
msgstr "Titlu" msgstr "Titlu"
@ -351,6 +354,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "" msgstr ""
@ -429,6 +435,9 @@ msgstr "Artiști Last.fm similari cu %1"
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "" msgstr ""
msgid "Loading Last.fm radio"
msgstr "Se încarcă radio Last.fm"
msgid "Invalid service" msgid "Invalid service"
msgstr "Serviciu invalid" msgstr "Serviciu invalid"
@ -539,6 +548,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "" msgstr ""
msgid "Downloading Magnatune catalogue"
msgstr ""
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "Serviciul de radio nu a putut fi încărcat :-(" msgstr "Serviciul de radio nu a putut fi încărcat :-("
@ -557,6 +569,12 @@ msgstr "Deschide somafm.com în browser"
msgid "Refresh channels" msgid "Refresh channels"
msgstr "Reîncarcă canalele" msgstr "Reîncarcă canalele"
msgid "Loading stream"
msgstr "Se încarcă fluxul"
msgid "Getting channels"
msgstr "Se preiau canalele"
msgid "Start transcoding" msgid "Start transcoding"
msgstr "" msgstr ""
@ -771,27 +789,6 @@ msgstr "Previzualizare OSD"
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "Trage pentru a repoziționa" 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" msgid "Small album cover"
msgstr "" msgstr ""
@ -1530,6 +1527,9 @@ msgstr ""
msgid "Delay between visualizations" msgid "Delay between visualizations"
msgstr "" msgstr ""
#~ msgid "Loading audio engine"
#~ msgstr "Se încarcă motorul audio"
#~ msgid "Copy to library..." #~ msgid "Copy to library..."
#~ msgstr "Copiază în bibliotecă..." #~ msgstr "Copiază în bibliotecă..."

View File

@ -180,6 +180,9 @@ msgstr "Ваша коллекция пуста!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Щелкните здесь, чтобы добавить музыку" msgstr "Щелкните здесь, чтобы добавить музыку"
msgid "Updating library"
msgstr "Обновление библиотеки"
msgid "Title" msgid "Title"
msgstr "Название" msgstr "Название"
@ -352,6 +355,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "%1 списков воспроизведения (%2)" msgstr "%1 списков воспроизведения (%2)"
@ -430,6 +436,9 @@ msgstr "Похожие исполнители Last.fm на %1"
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "Радио тегов Last.fm: %1" msgstr "Радио тегов Last.fm: %1"
msgid "Loading Last.fm radio"
msgstr "Загрузка радио Last.fm"
msgid "Invalid service" msgid "Invalid service"
msgstr "Неправильная служба" msgstr "Неправильная служба"
@ -540,6 +549,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "Искать на Magnatune" msgstr "Искать на Magnatune"
msgid "Downloading Magnatune catalogue"
msgstr "Скачать каталог Magnatune"
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "Сервис радио не запустился =(" msgstr "Сервис радио не запустился =("
@ -558,6 +570,12 @@ msgstr "Открыть somafm.com в браузере"
msgid "Refresh channels" msgid "Refresh channels"
msgstr "Обновить каналы" msgstr "Обновить каналы"
msgid "Loading stream"
msgstr "Загрузка потока"
msgid "Getting channels"
msgstr "Получение каналов"
msgid "Start transcoding" msgid "Start transcoding"
msgstr "Начать перекодирование" msgstr "Начать перекодирование"
@ -775,27 +793,6 @@ msgstr "Предпросмотр OSD"
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "Тащите для перемещения" 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" msgid "Small album cover"
msgstr "" msgstr ""
@ -1536,6 +1533,9 @@ msgstr "Выбор из списка"
msgid "Delay between visualizations" msgid "Delay between visualizations"
msgstr "" msgstr ""
#~ msgid "Loading audio engine"
#~ msgstr "Загрузка движка аудио"
#~ msgid "Show section" #~ msgid "Show section"
#~ msgstr "Показать секцию" #~ msgstr "Показать секцию"

View File

@ -182,6 +182,9 @@ msgstr "Vaša zbierka je prázdna!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Kliknite sem aby ste pridali nejakú hudbu" msgstr "Kliknite sem aby ste pridali nejakú hudbu"
msgid "Updating library"
msgstr "Aktualizovanie zbierky"
msgid "Title" msgid "Title"
msgstr "Názov" msgstr "Názov"
@ -353,6 +356,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "%1 playlisty (%2)" msgstr "%1 playlisty (%2)"
@ -431,6 +437,9 @@ msgstr "Podobný interprét ako %1"
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "Rádio tagu: %1" msgstr "Rádio tagu: %1"
msgid "Loading Last.fm radio"
msgstr "Načítava sa Last.fm rádio"
msgid "Invalid service" msgid "Invalid service"
msgstr "Nefunkčná služba" msgstr "Nefunkčná služba"
@ -541,6 +550,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "Hľadať v Magnatune" msgstr "Hľadať v Magnatune"
msgid "Downloading Magnatune catalogue"
msgstr "Sťahovanie Magnatune katalógu"
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "Služba rádia sa nedá načítať :-(" msgstr "Služba rádia sa nedá načítať :-("
@ -559,6 +571,12 @@ msgstr "Otvoriť somafm.com v prehliadači"
msgid "Refresh channels" msgid "Refresh channels"
msgstr "Obnoviť kanály" msgstr "Obnoviť kanály"
msgid "Loading stream"
msgstr "Načítava sa stream"
msgid "Getting channels"
msgstr "Preberanie kanálov"
msgid "Start transcoding" msgid "Start transcoding"
msgstr "Začať transkódovanie" msgstr "Začať transkódovanie"
@ -775,27 +793,6 @@ msgstr "OSD náhľad"
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "Pretiahnite na iné miesto" 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" msgid "Small album cover"
msgstr "" msgstr ""
@ -1536,6 +1533,9 @@ msgstr "Vybrať zo zoznamu"
msgid "Delay between visualizations" msgid "Delay between visualizations"
msgstr "" msgstr ""
#~ msgid "Loading audio engine"
#~ msgstr "Načítava sa zvukový engine"
#~ msgid "Show section" #~ msgid "Show section"
#~ msgstr "Zobraziť stĺpec" #~ msgstr "Zobraziť stĺpec"

View File

@ -181,6 +181,9 @@ msgstr "Ditt bibliotek är tomt!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Klicka här för att lägga till musik" msgstr "Klicka här för att lägga till musik"
msgid "Updating library"
msgstr "Uppdaterar bibliotek"
msgid "Title" msgid "Title"
msgstr "Titel" msgstr "Titel"
@ -351,6 +354,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "%1 spellistor (%2)" msgstr "%1 spellistor (%2)"
@ -429,6 +435,9 @@ msgstr "Last.fm Artister som liknar %1"
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "Last.fm Taggradio: %1" msgstr "Last.fm Taggradio: %1"
msgid "Loading Last.fm radio"
msgstr "Laddar Last.fm radio"
msgid "Invalid service" msgid "Invalid service"
msgstr "Ogiltig tjänst" msgstr "Ogiltig tjänst"
@ -539,6 +548,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "Sök Magnatune" msgstr "Sök Magnatune"
msgid "Downloading Magnatune catalogue"
msgstr "Hämtar katalog från Magnatune"
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "Radiotjänsten kunde inte laddas :-(" msgstr "Radiotjänsten kunde inte laddas :-("
@ -557,6 +569,12 @@ msgstr "Öppna somafm.com i en webbläsare"
msgid "Refresh channels" msgid "Refresh channels"
msgstr "Uppdatera kanaler" msgstr "Uppdatera kanaler"
msgid "Loading stream"
msgstr "Laddar ström"
msgid "Getting channels"
msgstr "Hämtar kanaler"
msgid "Start transcoding" msgid "Start transcoding"
msgstr "Starta omkondning" msgstr "Starta omkondning"
@ -773,27 +791,6 @@ msgstr "OSD förhandsgranskning"
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "Dra för att ändra position" 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" msgid "Small album cover"
msgstr "" msgstr ""
@ -1537,6 +1534,9 @@ msgstr "Välj från listan"
msgid "Delay between visualizations" msgid "Delay between visualizations"
msgstr "" msgstr ""
#~ msgid "Loading audio engine"
#~ msgstr "Laddar audiomotor"
#~ msgid "Show section" #~ msgid "Show section"
#~ msgstr "Visa kolumn" #~ msgstr "Visa kolumn"

View File

@ -181,6 +181,9 @@ msgstr "Kütüphane boş!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Parça eklemek için buraya tıkla" msgstr "Parça eklemek için buraya tıkla"
msgid "Updating library"
msgstr ""
msgid "Title" msgid "Title"
msgstr "Başlık" msgstr "Başlık"
@ -353,6 +356,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "" msgstr ""
@ -431,6 +437,9 @@ msgstr ""
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "" msgstr ""
msgid "Loading Last.fm radio"
msgstr ""
msgid "Invalid service" msgid "Invalid service"
msgstr "Geçersiz servis" msgstr "Geçersiz servis"
@ -541,6 +550,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "" msgstr ""
msgid "Downloading Magnatune catalogue"
msgstr ""
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "" msgstr ""
@ -559,6 +571,12 @@ msgstr ""
msgid "Refresh channels" msgid "Refresh channels"
msgstr "" msgstr ""
msgid "Loading stream"
msgstr ""
msgid "Getting channels"
msgstr ""
msgid "Start transcoding" msgid "Start transcoding"
msgstr "" msgstr ""
@ -772,27 +790,6 @@ msgstr ""
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "" 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" msgid "Small album cover"
msgstr "" msgstr ""

View File

@ -181,6 +181,9 @@ msgstr "Ваша фонотека порожня!"
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "Клацніть тут, щоб додати музику" msgstr "Клацніть тут, щоб додати музику"
msgid "Updating library"
msgstr "Оновлення фонотеки"
msgid "Title" msgid "Title"
msgstr "Назва" msgstr "Назва"
@ -353,6 +356,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "%1 списків відтворення (%2)" msgstr "%1 списків відтворення (%2)"
@ -431,6 +437,9 @@ msgstr "Подібні виконавці Last.fm на %1"
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "Радіо позначок Last.fm: %1" msgstr "Радіо позначок Last.fm: %1"
msgid "Loading Last.fm radio"
msgstr "Завантаження радіо Last.fm"
msgid "Invalid service" msgid "Invalid service"
msgstr "Нечинна служба" msgstr "Нечинна служба"
@ -541,6 +550,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "Пошук на Magnatune" msgstr "Пошук на Magnatune"
msgid "Downloading Magnatune catalogue"
msgstr "Завантаження каталогу Magnatune"
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "Не вдалось завантажити радіо службу :-(" msgstr "Не вдалось завантажити радіо службу :-("
@ -559,6 +571,12 @@ msgstr "Відкрити somafm.com в браузері"
msgid "Refresh channels" msgid "Refresh channels"
msgstr "Оновити канали" msgstr "Оновити канали"
msgid "Loading stream"
msgstr "Завнтаження потоку"
msgid "Getting channels"
msgstr "Отримання каналів"
msgid "Start transcoding" msgid "Start transcoding"
msgstr "Почати перекодування" msgstr "Почати перекодування"
@ -776,27 +794,6 @@ msgstr "Повідомлення OSD"
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "Перетягніть, щоб змінити розташування" 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" msgid "Small album cover"
msgstr "" msgstr ""
@ -1536,6 +1533,9 @@ msgstr "Вибрати зі списку"
msgid "Delay between visualizations" msgid "Delay between visualizations"
msgstr "" msgstr ""
#~ msgid "Loading audio engine"
#~ msgstr "Завантаження аудіо-рушія"
#~ msgid "Show section" #~ msgid "Show section"
#~ msgstr "Показати секцію" #~ msgstr "Показати секцію"

View File

@ -181,6 +181,9 @@ msgstr ""
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "" msgstr ""
msgid "Updating library"
msgstr ""
msgid "Title" msgid "Title"
msgstr "标题" msgstr "标题"
@ -351,6 +354,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "" msgstr ""
@ -429,6 +435,9 @@ msgstr ""
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "" msgstr ""
msgid "Loading Last.fm radio"
msgstr ""
msgid "Invalid service" msgid "Invalid service"
msgstr "" msgstr ""
@ -539,6 +548,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "" msgstr ""
msgid "Downloading Magnatune catalogue"
msgstr ""
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "" msgstr ""
@ -557,6 +569,12 @@ msgstr ""
msgid "Refresh channels" msgid "Refresh channels"
msgstr "" msgstr ""
msgid "Loading stream"
msgstr ""
msgid "Getting channels"
msgstr ""
msgid "Start transcoding" msgid "Start transcoding"
msgstr "" msgstr ""
@ -770,27 +788,6 @@ msgstr ""
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "" 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" msgid "Small album cover"
msgstr "" msgstr ""

View File

@ -181,6 +181,9 @@ msgstr ""
msgid "Click here to add some music" msgid "Click here to add some music"
msgstr "" msgstr ""
msgid "Updating library"
msgstr ""
msgid "Title" msgid "Title"
msgstr "" msgstr ""
@ -351,6 +354,9 @@ msgstr ""
msgid "Error loading %1" msgid "Error loading %1"
msgstr "" msgstr ""
msgid "Loading tracks"
msgstr ""
#, qt-format #, qt-format
msgid "%1 playlists (%2)" msgid "%1 playlists (%2)"
msgstr "" msgstr ""
@ -429,6 +435,9 @@ msgstr ""
msgid "Last.fm Tag Radio: %1" msgid "Last.fm Tag Radio: %1"
msgstr "" msgstr ""
msgid "Loading Last.fm radio"
msgstr ""
msgid "Invalid service" msgid "Invalid service"
msgstr "" msgstr ""
@ -539,6 +548,9 @@ msgstr ""
msgid "Search Magnatune" msgid "Search Magnatune"
msgstr "" msgstr ""
msgid "Downloading Magnatune catalogue"
msgstr ""
msgid "Radio service couldn't be loaded :-(" msgid "Radio service couldn't be loaded :-("
msgstr "" msgstr ""
@ -557,6 +569,12 @@ msgstr ""
msgid "Refresh channels" msgid "Refresh channels"
msgstr "" msgstr ""
msgid "Loading stream"
msgstr ""
msgid "Getting channels"
msgstr ""
msgid "Start transcoding" msgid "Start transcoding"
msgstr "" msgstr ""
@ -770,27 +788,6 @@ msgstr ""
msgid "Drag to reposition" msgid "Drag to reposition"
msgstr "" 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" msgid "Small album cover"
msgstr "" msgstr ""

View File

@ -24,6 +24,7 @@
#include "core/player.h" #include "core/player.h"
#include "core/songloader.h" #include "core/songloader.h"
#include "core/stylesheetloader.h" #include "core/stylesheetloader.h"
#include "core/taskmanager.h"
#include "engines/enginebase.h" #include "engines/enginebase.h"
#include "library/groupbydialog.h" #include "library/groupbydialog.h"
#include "library/libraryconfig.h" #include "library/libraryconfig.h"
@ -105,11 +106,12 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg
tray_icon_(SystemTrayIcon::CreateSystemTrayIcon(this)), tray_icon_(SystemTrayIcon::CreateSystemTrayIcon(this)),
osd_(new OSD(tray_icon_, network, this)), osd_(new OSD(tray_icon_, network, this)),
edit_tag_dialog_(new EditTagDialog), edit_tag_dialog_(new EditTagDialog),
task_manager_(new TaskManager(this)),
about_dialog_(new About), about_dialog_(new About),
database_(new BackgroundThreadImplementation<Database, Database>(this)), database_(new BackgroundThreadImplementation<Database, Database>(this)),
radio_model_(NULL), radio_model_(NULL),
playlist_backend_(NULL), playlist_backend_(NULL),
playlists_(new PlaylistManager(this)), playlists_(new PlaylistManager(task_manager_, this)),
playlist_parser_(new PlaylistParser(this)), playlist_parser_(new PlaylistParser(this)),
player_(NULL), player_(NULL),
library_(NULL), library_(NULL),
@ -137,16 +139,16 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg
playlist_backend_->SetDatabase(database_->Worker()); playlist_backend_->SetDatabase(database_->Worker());
// Create stuff that needs the database // 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); 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())); cover_manager_.reset(new AlbumCoverManager(network, library_->backend()));
settings_dialog_.reset(new SettingsDialog); // Needs RadioModel settings_dialog_.reset(new SettingsDialog); // Needs RadioModel
radio_model_->SetSettingsDialog(settings_dialog_.get()); radio_model_->SetSettingsDialog(settings_dialog_.get());
// Initialise the UI // Initialise the UI
ui_->setupUi(this); ui_->setupUi(this);
ui_->multi_loading_indicator->SetTaskManager(task_manager_);
ui_->volume->setValue(player_->GetVolume()); ui_->volume->setValue(player_->GetVolume());
track_position_timer_->setInterval(1000); 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(EditingFinished(QModelIndex)), SLOT(PlaylistEditFinished(QModelIndex)));
connect(playlists_, SIGNAL(Error(QString)), error_dialog_.get(), SLOT(ShowMessage(QString))); 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(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(playlists_, SIGNAL(PlayRequested(QModelIndex)), SLOT(PlayIndex(QModelIndex)));
connect(ui_->playlist->view(), SIGNAL(doubleClicked(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(AddToPlaylist(QModelIndexList)), SLOT(AddLibraryItemToPlaylist(QModelIndexList)));
connect(ui_->library_view, SIGNAL(ShowConfigDialog()), SLOT(ShowLibraryConfig())); connect(ui_->library_view, SIGNAL(ShowConfigDialog()), SLOT(ShowLibraryConfig()));
connect(library_->model(), SIGNAL(TotalSongCountUpdated(int)), ui_->library_view, SLOT(TotalSongCountUpdated(int))); 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 // Library filter widget
QAction* library_config_action = new QAction( QAction* library_config_action = new QAction(
@ -367,8 +365,6 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg
SLOT(PlaylistUndoRedoChanged(QAction*,QAction*))); SLOT(PlaylistUndoRedoChanged(QAction*,QAction*)));
// Radio connections // 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(StreamError(QString)), error_dialog_.get(), SLOT(ShowMessage(QString)));
connect(radio_model_, SIGNAL(AsyncLoadFinished(PlaylistItem::SpecialLoadResult)), player_, SLOT(HandleSpecialLoad(PlaylistItem::SpecialLoadResult))); connect(radio_model_, SIGNAL(AsyncLoadFinished(PlaylistItem::SpecialLoadResult)), player_, SLOT(HandleSpecialLoad(PlaylistItem::SpecialLoadResult)));
connect(radio_model_, SIGNAL(StreamMetadataFound(QUrl,Song)), playlists_, SLOT(SetActiveStreamMetadata(QUrl,Song))); connect(radio_model_, SIGNAL(StreamMetadataFound(QUrl,Song)), playlists_, SLOT(SetActiveStreamMetadata(QUrl,Song)));
@ -564,23 +560,13 @@ void MainWindow::AddFilesToPlaylist(bool clear_first, const QList<QUrl>& urls) {
} }
void MainWindow::AddUrls(bool play_now, const QList<QUrl> &urls) { void MainWindow::AddUrls(bool play_now, const QList<QUrl> &urls) {
SongLoaderInserter* inserter = new SongLoaderInserter(this); SongLoaderInserter* inserter = new SongLoaderInserter(task_manager_, this);
connect(inserter, SIGNAL(AsyncLoadStarted()), SLOT(LoadTracksStarted()));
connect(inserter, SIGNAL(AsyncLoadFinished()), SLOT(LoadTracksFinished()));
connect(inserter, SIGNAL(Error(QString)), error_dialog_.get(), SLOT(ShowMessage(QString))); connect(inserter, SIGNAL(Error(QString)), error_dialog_.get(), SLOT(ShowMessage(QString)));
connect(inserter, SIGNAL(PlayRequested(QModelIndex)), SLOT(PlayIndex(QModelIndex))); connect(inserter, SIGNAL(PlayRequested(QModelIndex)), SLOT(PlayIndex(QModelIndex)));
inserter->Load(playlists_->current(), -1, play_now, urls); 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) { void MainWindow::AddLibrarySongsToPlaylist(const SongList &songs) {
AddLibrarySongsToPlaylist(false, songs); AddLibrarySongsToPlaylist(false, songs);
} }
@ -1036,14 +1022,6 @@ void MainWindow::EditValue() {
ui_->playlist->view()->edit(playlist_menu_index_); 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() { void MainWindow::AddFile() {
// Last used directory // Last used directory
QString directory = settings_.value("add_media_path", QDir::currentPath()).toString(); QString directory = settings_.value("add_media_path", QDir::currentPath()).toString();

View File

@ -53,6 +53,7 @@ class RadioModel;
class SettingsDialog; class SettingsDialog;
class Song; class Song;
class SystemTrayIcon; class SystemTrayIcon;
class TaskManager;
class TranscodeDialog; class TranscodeDialog;
class VisualisationContainer; class VisualisationContainer;
class Ui_MainWindow; class Ui_MainWindow;
@ -134,10 +135,6 @@ class MainWindow : public QMainWindow, public PlatformInterface {
void LastFMButtonVisibilityChanged(bool value); void LastFMButtonVisibilityChanged(bool value);
void Love(); void Love();
void LibraryScanStarted();
void LibraryScanFinished();
void LoadTracksStarted();
void LoadTracksFinished();
void TaskCountChanged(int count); void TaskCountChanged(int count);
void ShowLibraryConfig(); void ShowLibraryConfig();
@ -167,7 +164,7 @@ class MainWindow : public QMainWindow, public PlatformInterface {
SystemTrayIcon* tray_icon_; SystemTrayIcon* tray_icon_;
OSD* osd_; OSD* osd_;
boost::scoped_ptr<EditTagDialog> edit_tag_dialog_; boost::scoped_ptr<EditTagDialog> edit_tag_dialog_;
MultiLoadingIndicator* multi_loading_indicator_; TaskManager* task_manager_;
boost::scoped_ptr<About> about_dialog_; boost::scoped_ptr<About> about_dialog_;
BackgroundThread<Database>* database_; BackgroundThread<Database>* database_;

View File

@ -16,6 +16,7 @@
#include "multiloadingindicator.h" #include "multiloadingindicator.h"
#include "ui_multiloadingindicator.h" #include "ui_multiloadingindicator.h"
#include "core/taskmanager.h"
MultiLoadingIndicator::MultiLoadingIndicator(QWidget *parent) MultiLoadingIndicator::MultiLoadingIndicator(QWidget *parent)
: QWidget(parent), : QWidget(parent),
@ -28,29 +29,19 @@ MultiLoadingIndicator::~MultiLoadingIndicator() {
delete ui_; delete ui_;
} }
void MultiLoadingIndicator::TaskStarted(TaskType type) { void MultiLoadingIndicator::SetTaskManager(TaskManager* task_manager) {
if (tasks_.contains(type)) task_manager_ = task_manager;
return; connect(task_manager_, SIGNAL(TasksChanged()), SLOT(UpdateText()));
tasks_ << type;
UpdateText();
emit TaskCountChange(tasks_.count());
}
void MultiLoadingIndicator::TaskFinished(TaskType type) {
tasks_.removeAll(type);
UpdateText();
emit TaskCountChange(tasks_.count());
} }
void MultiLoadingIndicator::UpdateText() { void MultiLoadingIndicator::UpdateText() {
QList<TaskManager::Task> tasks = task_manager_->GetTasks();
QStringList strings; QStringList strings;
foreach (TaskType type, tasks_) { foreach (const TaskManager::Task& task, tasks) {
QString task(TaskTypeToString(type)); QString name(task.name);
task[0] = task[0].toLower(); name[0] = name[0].toLower();
strings << task; strings << name;
} }
QString text(strings.join(", ")); QString text(strings.join(", "));
@ -59,18 +50,5 @@ void MultiLoadingIndicator::UpdateText() {
} }
ui_->text->setText(text + "..."); ui_->text->setText(text + "...");
} emit TaskCountChange(tasks.count());
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;
}
} }

View File

@ -19,6 +19,7 @@
#include <QWidget> #include <QWidget>
class TaskManager;
class Ui_MultiLoadingIndicator; class Ui_MultiLoadingIndicator;
class MultiLoadingIndicator : public QWidget { class MultiLoadingIndicator : public QWidget {
@ -28,31 +29,17 @@ class MultiLoadingIndicator : public QWidget {
MultiLoadingIndicator(QWidget* parent = 0); MultiLoadingIndicator(QWidget* parent = 0);
~MultiLoadingIndicator(); ~MultiLoadingIndicator();
enum TaskType { void SetTaskManager(TaskManager* task_manager);
LoadingAudioEngine,
UpdatingLibrary,
GettingChannels,
LoadingStream,
LoadingLastFM,
LoadingMagnatune,
LoadingTracks,
};
signals: signals:
void TaskCountChange(int tasks); void TaskCountChange(int tasks);
public slots: private slots:
void TaskStarted(MultiLoadingIndicator::TaskType type);
void TaskFinished(MultiLoadingIndicator::TaskType type);
private:
void UpdateText(); void UpdateText();
static QString TaskTypeToString(TaskType type);
private: private:
Ui_MultiLoadingIndicator* ui_; Ui_MultiLoadingIndicator* ui_;
TaskManager* task_manager_;
QList<TaskType> tasks_;
}; };
#endif // MULTILOADINGINDICATOR_H #endif // MULTILOADINGINDICATOR_H