Start of some work for smart/dynamic playlists. Only simple generators based on sql queries are supported, and the UI still needs polish.

This commit is contained in:
David Sansome 2010-10-24 15:38:12 +00:00
parent 87ce2f6ee2
commit 30afc130a4
57 changed files with 2387 additions and 0 deletions

View File

@ -129,6 +129,13 @@ set(SOURCES
radio/savedradio.cpp
radio/somafmservice.cpp
smartplaylists/playlistgenerator.cpp
smartplaylists/playlistgeneratorinserter.cpp
smartplaylists/smartplaylistcontainer.cpp
smartplaylists/smartplaylistmodel.cpp
smartplaylists/smartplaylistview.cpp
smartplaylists/queryplaylistgenerator.cpp
songinfo/artistinfoview.cpp
songinfo/collapsibleinfoheader.cpp
songinfo/collapsibleinfopane.cpp
@ -277,6 +284,12 @@ set(HEADERS
radio/savedradio.h
radio/somafmservice.h
smartplaylists/playlistgenerator.h
smartplaylists/playlistgeneratorinserter.h
smartplaylists/smartplaylistcontainer.h
smartplaylists/smartplaylistmodel.h
smartplaylists/smartplaylistview.h
songinfo/artistinfoview.h
songinfo/collapsibleinfoheader.h
songinfo/collapsibleinfopane.h
@ -356,6 +369,8 @@ set(UI
radio/magnatunedownloaddialog.ui
radio/radioviewcontainer.ui
smartplaylists/smartplaylistcontainer.ui
songinfo/lyricsettings.ui
ui/about.ui

View File

@ -808,6 +808,33 @@ bool LibraryBackend::ExecQuery(LibraryQuery *q) {
return !db_->CheckErrors(q->Exec(db_->Connect(), songs_table_, fts_table_));
}
SongList LibraryBackend::FindSongs(const QString& where_sql,
const QString& order_sql, int limit) {
QMutexLocker l(db_->Mutex());
QSqlDatabase db(db_->Connect());
// Build the query
QString sql = "SELECT ROWID, " + Song::kColumnSpec + " FROM " + songs_table_;
if (!where_sql.isEmpty()) sql += " WHERE " + where_sql;
if (!order_sql.isEmpty()) sql += " ORDER BY " + order_sql;
if (limit) sql += " LIMIT " + QString::number(limit);
// Run the query
SongList ret;
QSqlQuery query(sql, db);
query.exec();
if (db_->CheckErrors(query.lastError()))
return ret;
// Read the results
while (query.next()) {
Song song;
song.InitFromQuery(query);
ret << song;
}
return ret;
}
void LibraryBackend::IncrementPlayCount(int id) {
if (id == -1)
return;

View File

@ -131,6 +131,7 @@ class LibraryBackend : public LibraryBackendInterface {
void RemoveDirectory(const Directory& dir);
bool ExecQuery(LibraryQuery* q);
SongList FindSongs(const QString& where_sql, const QString& order_sql, int limit);
void IncrementPlayCountAsync(int id);
void IncrementSkipCountAsync(int id);

View File

@ -32,6 +32,7 @@
#include "radio/radiomodel.h"
#include "radio/radioplaylistitem.h"
#include "radio/savedradio.h"
#include "smartplaylists/playlistgeneratorinserter.h"
#include <QtDebug>
#include <QMimeData>
@ -576,6 +577,14 @@ void Playlist::InsertUrls(const QList<QUrl> &urls, bool play_now, int pos) {
inserter->Load(this, pos, play_now, urls);
}
void Playlist::InsertSmartPlaylist(PlaylistGeneratorPtr generator, int pos, bool play_now) {
PlaylistGeneratorInserter* inserter = new PlaylistGeneratorInserter(task_manager_, library_, this);
connect(inserter, SIGNAL(Error(QString)), SIGNAL(LoadTracksError(QString)));
connect(inserter, SIGNAL(PlayRequested(QModelIndex)), SIGNAL(PlayRequested(QModelIndex)));
inserter->Load(this, pos, play_now, generator);
}
void Playlist::MoveItemsWithoutUndo(const QList<int> &source_rows, int pos) {
layoutAboutToBeChanged();
PlaylistItemList moved_items;

View File

@ -26,6 +26,7 @@
#include "playlistsequence.h"
#include "core/song.h"
#include "radio/radioitem.h"
#include "smartplaylists/playlistgenerator_fwd.h"
class LibraryBackend;
class PlaylistBackend;
@ -149,6 +150,7 @@ class Playlist : public QAbstractListModel {
QModelIndex InsertMagnatuneItems(const SongList& items, int pos = -1);
QModelIndex InsertSongs(const SongList& items, int pos = -1);
QModelIndex InsertRadioStations(const QList<RadioItem*>& items, int pos = -1, bool play_now = false);
void InsertSmartPlaylist(PlaylistGeneratorPtr generator, int pos = -1, bool play_now = false);
void InsertUrls(const QList<QUrl>& urls, bool play_now, int pos = -1);
void StopAfter(int row);
void ReloadItems(const QList<int>& rows);

View File

@ -22,6 +22,7 @@
#include "library/librarybackend.h"
#include "library/libraryplaylistitem.h"
#include "playlistparsers/playlistparser.h"
#include "smartplaylists/playlistgenerator.h"
#include <QFileInfo>
#include <QtDebug>
@ -273,3 +274,15 @@ void PlaylistManager::SongsDiscovered(const SongList& songs) {
}
}
}
void PlaylistManager::PlaySmartPlaylist(PlaylistGeneratorPtr generator, bool as_new, bool clear) {
if (as_new) {
New(generator->name());
}
if (clear) {
current()->Clear();
}
current()->InsertSmartPlaylist(generator);
}

View File

@ -22,6 +22,7 @@
#include <QObject>
#include "core/song.h"
#include "smartplaylists/playlistgenerator_fwd.h"
class LibraryBackend;
class Playlist;
@ -84,6 +85,8 @@ public slots:
void SetActiveStopped();
void SetActiveStreamMetadata(const QUrl& url, const Song& song);
void PlaySmartPlaylist(PlaylistGeneratorPtr generator, bool as_new, bool clear);
signals:
void PlaylistAdded(int id, const QString& name);
void PlaylistRemoved(int id);

View File

@ -0,0 +1,42 @@
/* 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 "queryplaylistgenerator.h"
#include "playlistgenerator.h"
#include <QSettings>
const int PlaylistGenerator::kDefaultLimit = 15;
PlaylistGenerator::PlaylistGenerator()
: QObject(NULL),
backend_(NULL),
limit_(kDefaultLimit)
{
}
void PlaylistGenerator::Load(const QSettings& s) {
limit_ = s.value("limit", kDefaultLimit).toInt();
}
PlaylistGeneratorPtr PlaylistGenerator::Create(const QString& type) {
if (type == "Query")
return PlaylistGeneratorPtr(new QueryPlaylistGenerator);
qWarning() << "Invalid playlist generator type:" << type;
return PlaylistGeneratorPtr();
}

View File

@ -0,0 +1,59 @@
/* 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 PLAYLISTGENERATOR_H
#define PLAYLISTGENERATOR_H
#include "playlist/playlistitem.h"
#include <boost/enable_shared_from_this.hpp>
#include <boost/shared_ptr.hpp>
class LibraryBackend;
class QSettings;
class PlaylistGenerator : public QObject, public boost::enable_shared_from_this<PlaylistGenerator> {
Q_OBJECT
public:
PlaylistGenerator();
virtual ~PlaylistGenerator() {}
static const int kDefaultLimit;
static boost::shared_ptr<PlaylistGenerator> Create(const QString& type);
void set_library(LibraryBackend* backend) { backend_ = backend; }
int limit() const { return limit_; }
QString name() const { return name_; }
virtual void Load(const QSettings& s);
virtual PlaylistItemList Generate() = 0;
signals:
void Error(const QString& message);
protected:
LibraryBackend* backend_;
int limit_;
QString name_;
};
#include "playlistgenerator_fwd.h"
#endif // PLAYLISTGENERATOR_H

View File

@ -0,0 +1,26 @@
/* 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 PLAYLISTGENERATOR_FWD_H
#define PLAYLISTGENERATOR_FWD_H
#include <boost/shared_ptr.hpp>
class PlaylistGenerator;
typedef boost::shared_ptr<PlaylistGenerator> PlaylistGeneratorPtr;
#endif // PLAYLISTGENERATOR_FWD_H

View File

@ -0,0 +1,71 @@
/* 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 "playlistgenerator.h"
#include "playlistgeneratorinserter.h"
#include "core/taskmanager.h"
#include "playlist/playlist.h"
#include <QFutureWatcher>
#include <QtConcurrentRun>
typedef QFuture<PlaylistItemList> Future;
typedef QFutureWatcher<PlaylistItemList> FutureWatcher;
PlaylistGeneratorInserter::PlaylistGeneratorInserter(
TaskManager* task_manager, LibraryBackend* library, QObject* parent)
: QObject(parent),
task_manager_(task_manager),
library_(library),
task_id_(-1)
{
}
static PlaylistItemList Generate(PlaylistGeneratorPtr generator) {
return generator->Generate();
}
void PlaylistGeneratorInserter::Load(
Playlist* destination, int row, bool play_now, PlaylistGeneratorPtr generator) {
task_id_ = task_manager_->StartTask(tr("Loading smart playlist"));
destination_ = destination;
row_ = row;
play_now_ = play_now;
connect(generator.get(), SIGNAL(Error(QString)), SIGNAL(Error(QString)));
Future future = QtConcurrent::run(Generate, generator);
FutureWatcher* watcher = new FutureWatcher(this);
watcher->setFuture(future);
connect(watcher, SIGNAL(finished()), SLOT(Finished()));
}
void PlaylistGeneratorInserter::Finished() {
FutureWatcher* watcher = static_cast<FutureWatcher*>(sender());
watcher->deleteLater();
PlaylistItemList items = watcher->result();
QModelIndex index = destination_->InsertItems(items, row_);
if (play_now_)
emit PlayRequested(index);
task_manager_->SetTaskFinished(task_id_);
deleteLater();
}

View File

@ -0,0 +1,57 @@
/* 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 PLAYLISTGENERATORINSERTER_H
#define PLAYLISTGENERATORINSERTER_H
#include "playlistgenerator_fwd.h"
#include <QObject>
class LibraryBackend;
class Playlist;
class TaskManager;
class QModelIndex;
class PlaylistGeneratorInserter : public QObject {
Q_OBJECT
public:
PlaylistGeneratorInserter(TaskManager* task_manager,
LibraryBackend* library, QObject* parent);
void Load(Playlist* destination, int row, bool play_now,
PlaylistGeneratorPtr generator);
signals:
void Error(const QString& message);
void PlayRequested(const QModelIndex& index);
private slots:
void Finished();
private:
TaskManager* task_manager_;
LibraryBackend* library_;
int task_id_;
Playlist* destination_;
int row_;
bool play_now_;
};
#endif // PLAYLISTGENERATORINSERTER_H

View File

@ -0,0 +1,43 @@
/* 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 "queryplaylistgenerator.h"
#include "library/librarybackend.h"
#include "library/libraryplaylistitem.h"
#include <QSettings>
#include <QtDebug>
QueryPlaylistGenerator::QueryPlaylistGenerator()
{
}
void QueryPlaylistGenerator::Load(const QSettings& s) {
PlaylistGenerator::Load(s);
name_ = s.value("name").toString();
where_ = s.value("where").toString();
order_ = s.value("order").toString();
}
PlaylistItemList QueryPlaylistGenerator::Generate() {
SongList songs = backend_->FindSongs(where_, order_, limit_);
PlaylistItemList items;
foreach (const Song& song, songs) {
items << PlaylistItemPtr(new LibraryPlaylistItem(song));
}
return items;
}

View File

@ -0,0 +1,34 @@
/* 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 QUERYPLAYLISTGENERATOR_H
#define QUERYPLAYLISTGENERATOR_H
#include "playlistgenerator.h"
class QueryPlaylistGenerator : public PlaylistGenerator {
public:
QueryPlaylistGenerator();
void Load(const QSettings& s);
PlaylistItemList Generate();
private:
QString where_;
QString order_;
};
#endif // QUERYPLAYLISTGENERATOR_H

View File

@ -0,0 +1,58 @@
/* 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 "smartplaylistcontainer.h"
#include "smartplaylistmodel.h"
#include "ui_smartplaylistcontainer.h"
#include "playlist/playlistmanager.h"
#include "ui/iconloader.h"
SmartPlaylistContainer::SmartPlaylistContainer(QWidget *parent)
: QWidget(parent),
ui_(new Ui_SmartPlaylistContainer),
first_show_(true),
library_(NULL),
model_(new SmartPlaylistModel(this)),
playlist_manager_(NULL)
{
ui_->setupUi(this);
connect(ui_->view, SIGNAL(Play(QModelIndex,bool,bool)), SLOT(Play(QModelIndex,bool,bool)));
ui_->view->setModel(model_);
}
SmartPlaylistContainer::~SmartPlaylistContainer() {
delete ui_;
}
void SmartPlaylistContainer::showEvent(QShowEvent*) {
if (!first_show_)
return;
first_show_ = false;
ui_->add->setIcon(IconLoader::Load("list-add"));
ui_->remove->setIcon(IconLoader::Load("list-remove"));
ui_->play->setIcon(IconLoader::Load("media-playback-start"));
}
void SmartPlaylistContainer::Play(const QModelIndex& index, bool as_new, bool clear) {
PlaylistGeneratorPtr generator = model_->CreateGenerator(index, library_);
if (!generator)
return;
playlist_manager_->PlaySmartPlaylist(generator, as_new, clear);
}

View File

@ -0,0 +1,56 @@
/* 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 SMARTPLAYLISTCONTAINER_H
#define SMARTPLAYLISTCONTAINER_H
#include "playlistgenerator_fwd.h"
#include <QWidget>
class LibraryBackend;
class PlaylistManager;
class SmartPlaylistModel;
class Ui_SmartPlaylistContainer;
class QModelIndex;
class SmartPlaylistContainer : public QWidget {
Q_OBJECT
public:
SmartPlaylistContainer(QWidget* parent);
~SmartPlaylistContainer();
void set_library(LibraryBackend* library) { library_ = library; }
void set_playlists(PlaylistManager* playlist_manager) { playlist_manager_ = playlist_manager; }
protected:
void showEvent(QShowEvent*);
private slots:
void Play(const QModelIndex& index, bool as_new, bool clear);
private:
Ui_SmartPlaylistContainer* ui_;
bool first_show_;
LibraryBackend* library_;
SmartPlaylistModel* model_;
PlaylistManager* playlist_manager_;
};
#endif // SMARTPLAYLISTCONTAINER_H

View File

@ -0,0 +1,96 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>SmartPlaylistContainer</class>
<widget class="QWidget" name="SmartPlaylistContainer">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>380</width>
<height>616</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="margin">
<number>0</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="spacing">
<number>0</number>
</property>
<item>
<widget class="QToolButton" name="add">
<property name="text">
<string>New</string>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextBesideIcon</enum>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="remove">
<property name="text">
<string>Remove</string>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextBesideIcon</enum>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QToolButton" name="play">
<property name="text">
<string>Play</string>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextBesideIcon</enum>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="SmartPlaylistView" name="view"/>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>SmartPlaylistView</class>
<extends>QTreeView</extends>
<header>smartplaylists/smartplaylistview.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View File

@ -0,0 +1,125 @@
/* 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 "playlistgenerator.h"
#include "smartplaylistmodel.h"
#include <QSettings>
const char* SmartPlaylistModel::kSettingsGroup = "SmartPlaylists";
SmartPlaylistModel::SmartPlaylistModel(QObject* parent)
: QStandardItemModel(parent),
smart_item_(CreateContainer(tr("Smart playlists"), "smart")),
dynamic_item_(CreateContainer(tr("Dynamic playlists"), "dynamic"))
{
setColumnCount(1);
invisibleRootItem()->appendRow(smart_item_);
invisibleRootItem()->appendRow(dynamic_item_);
QSettings s;
if (!s.childGroups().contains(kSettingsGroup)) {
SaveDefaults();
}
Load("smart", smart_item_);
Load("dynamic", dynamic_item_);
}
QStandardItem* SmartPlaylistModel::CreateContainer(
const QString& name, const QString& group) {
QStandardItem* ret = new QStandardItem(name);
ret->setData(Type_Container, Role_Type);
ret->setData(group, Role_ContainerGroup);
return ret;
}
void SmartPlaylistModel::Load(const char* name, QStandardItem* parent) {
QSettings s;
s.beginGroup(kSettingsGroup);
const int count = s.beginReadArray(name);
for (int i=0 ; i<count ; ++i) {
s.setArrayIndex(i);
QStandardItem* item = new QStandardItem;
item->setText(s.value("name").toString());
item->setData(s.value("type").toString(), Role_GeneratorClass);
item->setData(Type_Generator, Role_Type);
parent->appendRow(item);
}
}
void SmartPlaylistModel::SaveDefaults() {
QSettings s;
s.beginGroup(kSettingsGroup);
int i = 0;
s.beginWriteArray("smart");
SaveDefaultQuery(&s, i++, tr("50 random tracks"), QString(), "random()", 50);
SaveDefaultQuery(&s, i++, tr("Ever played"), "playcount > 0", QString());
SaveDefaultQuery(&s, i++, tr("Last played"), QString(), "lastplayed DESC");
SaveDefaultQuery(&s, i++, tr("Most played"), QString(), "playcount DESC");
SaveDefaultQuery(&s, i++, tr("Never played"), "playcount = 0", QString());
SaveDefaultQuery(&s, i++, tr("Favourite tracks"), QString(), "rating DESC"); // TODO: use score
SaveDefaultQuery(&s, i++, tr("Newest tracks"), QString(), "ctime DESC");
s.endArray();
}
void SmartPlaylistModel::SaveDefaultQuery(QSettings* s, int i,
const QString& name, const QString& where, const QString& order, int limit) {
s->setArrayIndex(i);
s->setValue("name", name);
s->setValue("type", "Query");
if (limit != -1) s->setValue("limit", limit);
if (!where.isEmpty()) s->setValue("where", where);
if (!order.isEmpty()) s->setValue("order", order);
}
PlaylistGeneratorPtr SmartPlaylistModel::CreateGenerator(
const QModelIndex& index, LibraryBackend* library) const {
PlaylistGeneratorPtr ret;
// Get the item
const QStandardItem* item = itemFromIndex(index);
if (!item || item->data(Role_Type).toInt() != Type_Generator)
return ret;
// Get the container that the item is in
const QStandardItem* container = itemFromIndex(index.parent());
if (!container || container->data(Role_Type).toInt() != Type_Container)
return ret;
// Open the settings in the right place
QSettings s;
s.beginGroup(kSettingsGroup);
const int count = s.beginReadArray(container->data(Role_ContainerGroup).toString());
// Check this row really exists
if (index.row() >= count)
return ret;
s.setArrayIndex(index.row());
// Create a generator of the right type
ret = PlaylistGenerator::Create(item->data(Role_GeneratorClass).toString());
if (!ret)
return ret;
// Initialise the generator
ret->set_library(library);
ret->Load(s);
return ret;
}

View File

@ -0,0 +1,68 @@
/* 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 SMARTPLAYLISTMODEL_H
#define SMARTPLAYLISTMODEL_H
#include "playlistgenerator_fwd.h"
#include <QStandardItemModel>
class LibraryBackend;
class QSettings;
class SmartPlaylistModel : public QStandardItemModel {
Q_OBJECT
public:
SmartPlaylistModel(QObject* parent = 0);
enum Role {
Role_Type = Qt::UserRole + 1,
Role_ContainerGroup,
Role_GeneratorClass,
RoleCount
};
enum Type {
Type_Invalid,
Type_Container,
Type_Generator,
};
static const char* kSettingsGroup;
PlaylistGeneratorPtr CreateGenerator(const QModelIndex& index,
LibraryBackend* library) const;
private:
void Load(const char* name, QStandardItem* parent);
void SaveDefaults();
void SaveDefaultQuery(QSettings* settings, int i, const QString& name,
const QString& where, const QString& order,
int limit = -1);
static QStandardItem* CreateContainer(const QString& name, const QString& group);
private:
QStandardItem* smart_item_;
QStandardItem* dynamic_item_;
};
#endif // SMARTPLAYLISTMODEL_H

View File

@ -0,0 +1,88 @@
/* 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 "smartplaylistmodel.h"
#include "smartplaylistview.h"
#include "ui/iconloader.h"
#include <QContextMenuEvent>
#include <QMenu>
SmartPlaylistView::SmartPlaylistView(QWidget* parent)
: AutoExpandingTreeView(parent),
menu_(NULL)
{
setAttribute(Qt::WA_MacShowFocusRect, false);
setHeaderHidden(true);
setAllColumnsShowFocus(true);
setDragEnabled(true);
setDragDropMode(QAbstractItemView::DragOnly);
setSelectionMode(QAbstractItemView::ExtendedSelection);
}
void SmartPlaylistView::contextMenuEvent(QContextMenuEvent* e) {
if (!menu_) {
menu_ = new QMenu(this);
load_action_ = menu_->addAction(IconLoader::Load("media-playback-start"),
tr("Load"), this, SLOT(Load()));
add_action_ = menu_->addAction(IconLoader::Load("media-playback-start"),
tr("Add to playlist"), this, SLOT(AddToPlaylist()));
add_as_new_action_ = menu_->addAction(IconLoader::Load("view-media-playlist"),
tr("Add as new playlist..."), this, SLOT(AddAsNewPlaylist()));
menu_->addSeparator();
new_smart_action_ = menu_->addAction(IconLoader::Load("list-add"),
tr("New smart playlist..."), this, SLOT(NewSmartPlaylist()));
new_folder_action_ = menu_->addAction(IconLoader::Load("folder-new"),
tr("New folder..."), this, SLOT(NewFolder()));
remove_action_ = menu_->addAction(IconLoader::Load("list-remove"),
tr("Remove"), this, SLOT(Remove()));
}
menu_index_ = indexAt(e->pos());
const SmartPlaylistModel::Type type = SmartPlaylistModel::Type(
menu_index_.data(SmartPlaylistModel::Role_Type).toInt());
const bool is_generator = type == SmartPlaylistModel::Type_Generator;
load_action_->setEnabled(is_generator);
add_action_->setEnabled(is_generator);
add_as_new_action_->setEnabled(is_generator);
menu_->popup(e->globalPos());
}
void SmartPlaylistView::Load() {
if (menu_index_.isValid())
emit Play(menu_index_, false, true);
}
void SmartPlaylistView::AddToPlaylist() {
if (menu_index_.isValid())
emit Play(menu_index_, false, false);
}
void SmartPlaylistView::AddAsNewPlaylist() {
if (menu_index_.isValid())
emit Play(menu_index_, true, false);
}
void SmartPlaylistView::NewSmartPlaylist() {
}
void SmartPlaylistView::NewFolder() {
}
void SmartPlaylistView::Remove() {
}

View File

@ -0,0 +1,57 @@
/* 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 SMARTPLAYLISTVIEW_H
#define SMARTPLAYLISTVIEW_H
#include "widgets/autoexpandingtreeview.h"
class QAction;
class QMenu;
class SmartPlaylistView : public AutoExpandingTreeView {
Q_OBJECT
public:
SmartPlaylistView(QWidget* parent = 0);
signals:
void Play(const QModelIndex& index, bool as_new, bool clear);
protected:
void contextMenuEvent(QContextMenuEvent*);
private slots:
void Load();
void AddToPlaylist();
void AddAsNewPlaylist();
void NewSmartPlaylist();
void NewFolder();
void Remove();
private:
QMenu* menu_;
QAction* load_action_;
QAction* add_action_;
QAction* add_as_new_action_;
QAction* new_smart_action_;
QAction* new_folder_action_;
QAction* remove_action_;
QModelIndex menu_index_;
};
#endif // SMARTPLAYLISTVIEW_H

View File

@ -109,6 +109,9 @@ msgstr ""
msgid "128k MP3"
msgstr ""
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -147,6 +150,9 @@ msgstr ""
msgid "Add another stream..."
msgstr ""
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "أضف مجلد..."
@ -697,6 +703,9 @@ msgstr ""
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr ""
@ -768,6 +777,9 @@ msgstr ""
msgid "Error processing %1: %2"
msgstr ""
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr ""
@ -801,6 +813,9 @@ msgstr ""
msgid "Fading duration"
msgstr ""
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr ""
@ -1129,6 +1144,9 @@ msgstr ""
msgid "Loading iPod database"
msgstr ""
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr ""
@ -1199,6 +1217,9 @@ msgstr ""
msgid "Monitor the library for changes"
msgstr ""
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr ""
@ -1250,12 +1271,27 @@ msgstr "الجيران"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr ""
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr ""
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr ""
@ -1416,6 +1452,9 @@ msgstr "خيارات قائمة التشغيل"
msgid "Playlist search"
msgstr ""
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr ""
@ -1741,6 +1780,9 @@ msgstr ""
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr ""

View File

@ -110,6 +110,9 @@ msgstr ""
msgid "128k MP3"
msgstr ""
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -148,6 +151,9 @@ msgstr ""
msgid "Add another stream..."
msgstr ""
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr ""
@ -698,6 +704,9 @@ msgstr ""
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr ""
@ -769,6 +778,9 @@ msgstr ""
msgid "Error processing %1: %2"
msgstr ""
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr ""
@ -802,6 +814,9 @@ msgstr ""
msgid "Fading duration"
msgstr ""
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr ""
@ -1130,6 +1145,9 @@ msgstr ""
msgid "Loading iPod database"
msgstr ""
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr ""
@ -1200,6 +1218,9 @@ msgstr ""
msgid "Monitor the library for changes"
msgstr ""
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr ""
@ -1251,12 +1272,27 @@ msgstr ""
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr ""
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr ""
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr ""
@ -1417,6 +1453,9 @@ msgstr ""
msgid "Playlist search"
msgstr ""
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr ""
@ -1742,6 +1781,9 @@ msgstr ""
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr ""

View File

@ -110,6 +110,9 @@ msgstr "128K MP3"
msgid "128k MP3"
msgstr "128k MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -154,6 +157,9 @@ msgstr "Afegeix acció"
msgid "Add another stream..."
msgstr "Afegir un altre fluxe..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Afegir directori..."
@ -716,6 +722,9 @@ msgstr "Arrossegueu per canviar de posició"
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Editar etiqueta \"%1\"..."
@ -789,6 +798,9 @@ msgstr "Error carregant %1"
msgid "Error processing %1: %2"
msgstr "Error processant %1: %2"
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr "Extres"
@ -822,6 +834,9 @@ msgstr "Esvaïment"
msgid "Fading duration"
msgstr "Durada de l'esvaïment"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Cercar caràtules perdudes"
@ -1157,6 +1172,9 @@ msgstr "Carregant el dispositiu Windows Media"
msgid "Loading iPod database"
msgstr "Carregant la base de dades de l'iPod"
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Carregant fluxe"
@ -1227,6 +1245,9 @@ msgstr "Model"
msgid "Monitor the library for changes"
msgstr ""
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr "Punt de muntatge"
@ -1278,12 +1299,27 @@ msgstr "Veïns"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Llista de reproducció nova"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr "Cançons noves"
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Pista següent"
@ -1446,6 +1482,9 @@ msgstr "Opcions de la llista de reproducció"
msgid "Playlist search"
msgstr "Buscar llista de reproducció"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1771,6 +1810,9 @@ msgstr "Caràtula petita"
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Suau"

View File

@ -111,6 +111,9 @@ msgstr "128K MP3"
msgid "128k MP3"
msgstr "128k MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -149,6 +152,9 @@ msgstr "Přidat činnost"
msgid "Add another stream..."
msgstr "Přidat další proud..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Přidat adresář..."
@ -699,6 +705,9 @@ msgstr "Přemístit přetažením"
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Upravit tag\"%1\"..."
@ -772,6 +781,9 @@ msgstr ""
msgid "Error processing %1: %2"
msgstr ""
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr ""
@ -805,6 +817,9 @@ msgstr "Prolínání"
msgid "Fading duration"
msgstr "Doba mizení"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Stáhnout chybějící obaly"
@ -1134,6 +1149,9 @@ msgstr ""
msgid "Loading iPod database"
msgstr ""
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Načítám kanál"
@ -1204,6 +1222,9 @@ msgstr "Model"
msgid "Monitor the library for changes"
msgstr ""
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr "Bod připojení"
@ -1255,12 +1276,27 @@ msgstr "Sousedé"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Nový seznam skladeb"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr ""
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Další skladba"
@ -1421,6 +1457,9 @@ msgstr "Nastavení playlistu"
msgid "Playlist search"
msgstr ""
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1746,6 +1785,9 @@ msgstr ""
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Měkké"

View File

@ -111,6 +111,9 @@ msgstr ""
msgid "128k MP3"
msgstr "128k MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -149,6 +152,9 @@ msgstr ""
msgid "Add another stream..."
msgstr "Tilføj endnu en stream..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Tilføj mappe..."
@ -699,6 +705,9 @@ msgstr "Træk for at skifte position"
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Redigér mærke \"%1\"..."
@ -772,6 +781,9 @@ msgstr ""
msgid "Error processing %1: %2"
msgstr ""
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr ""
@ -805,6 +817,9 @@ msgstr "Fading"
msgid "Fading duration"
msgstr "Varighed af fade"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Hent manglende omslag"
@ -1135,6 +1150,9 @@ msgstr ""
msgid "Loading iPod database"
msgstr ""
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Indlæser stream"
@ -1205,6 +1223,9 @@ msgstr ""
msgid "Monitor the library for changes"
msgstr ""
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr ""
@ -1256,12 +1277,27 @@ msgstr "Naboer"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr ""
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr ""
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Næste spor"
@ -1422,6 +1458,9 @@ msgstr "Indstillinger for spilleliste"
msgid "Playlist search"
msgstr ""
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1749,6 +1788,9 @@ msgstr ""
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Soft"

View File

@ -111,6 +111,9 @@ msgstr "128K MP3"
msgid "128k MP3"
msgstr "128k MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -153,6 +156,9 @@ msgstr "Aktion hinzufügen"
msgid "Add another stream..."
msgstr "Stream hinzufügen..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Verzeichnis hinzufügen..."
@ -715,6 +721,9 @@ msgstr "Klicken und ziehen um die Position zu ändern"
msgid "Drive letter"
msgstr "Laufwerksbuchstabe"
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "%1 bearbeiten"
@ -788,6 +797,9 @@ msgstr "Fehler beim Laden von %1"
msgid "Error processing %1: %2"
msgstr "Fehler bei %1: %2"
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr "Extras"
@ -821,6 +833,9 @@ msgstr "Überblenden"
msgid "Fading duration"
msgstr "Dauer"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Fehlende Cover holen"
@ -1158,6 +1173,9 @@ msgstr "Lade Windows-Media-Gerät"
msgid "Loading iPod database"
msgstr "Lade iPod-Datenbank"
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Lade Stream"
@ -1228,6 +1246,9 @@ msgstr "Modell"
msgid "Monitor the library for changes"
msgstr "Die Sammlung auf Änderungen hin überwachen"
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr "Einhängepunkt"
@ -1279,12 +1300,27 @@ msgstr "Nachbarn"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Neue Wiedergabeliste"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr "Neue Titel"
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Nächstes Stück"
@ -1447,6 +1483,9 @@ msgstr "Wiedergabeliste einrichten"
msgid "Playlist search"
msgstr "Wiedergabeliste durchsuchen"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1772,6 +1811,9 @@ msgstr "Kleines Albumcover"
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Soft"

View File

@ -112,6 +112,9 @@ msgstr "128K MP3"
msgid "128k MP3"
msgstr "128k MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -155,6 +158,9 @@ msgstr "Προσθήκη ενέργειας"
msgid "Add another stream..."
msgstr "Προσθήκη άλλης ροής..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Προσθήκη καταλόγου..."
@ -719,6 +725,9 @@ msgstr "Σύρετε για μετακίνηση"
msgid "Drive letter"
msgstr "Γράμμα δίσκου"
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Τροποποίηση ετικέτας \"%1\"..."
@ -793,6 +802,9 @@ msgstr "Σφάλμα φόρτωσης του %1"
msgid "Error processing %1: %2"
msgstr "Σφάλμα επεξεργασίας %1: %2"
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr "Επιπλέον"
@ -826,6 +838,9 @@ msgstr "«Σβήσιμο»"
msgid "Fading duration"
msgstr "Διάρκειας «Σβησίματος»"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Κατέβασμα εξώφυλλων που λείπουν"
@ -1161,6 +1176,9 @@ msgstr "Φόρτωση της συσκευής Windows Media"
msgid "Loading iPod database"
msgstr "Φόρτωση της βάσης δεδομένων iPod"
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Φόρτωμα ροής (stream)"
@ -1231,6 +1249,9 @@ msgstr "Μοντέλο"
msgid "Monitor the library for changes"
msgstr "Έλεγχος της βιβλιοθήκης για αλλαγές"
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr "Σημείο φόρτωσης (mount point)"
@ -1282,12 +1303,27 @@ msgstr "Γείτονες"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Νέα λίστα"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr "Νέα τραγούδια"
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Επόμενο κομμάτι"
@ -1450,6 +1486,9 @@ msgstr "Επιλογές λίστας αναπαραγωγής"
msgid "Playlist search"
msgstr "Αναζήτηση στη λίστα αναπαραγωγής"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1775,6 +1814,9 @@ msgstr "Μικρό εξώφυλλο άλμπουμ"
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Απαλή"

View File

@ -109,6 +109,9 @@ msgstr ""
msgid "128k MP3"
msgstr ""
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -147,6 +150,9 @@ msgstr ""
msgid "Add another stream..."
msgstr "Add another stream..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Add directory..."
@ -699,6 +705,9 @@ msgstr "Drag to reposition"
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Edit tag \"%1\"..."
@ -771,6 +780,9 @@ msgstr ""
msgid "Error processing %1: %2"
msgstr "Error processing %1: %2"
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr ""
@ -804,6 +816,9 @@ msgstr "Fading"
msgid "Fading duration"
msgstr "Fading duration"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Fetch Missing Covers"
@ -1133,6 +1148,9 @@ msgstr ""
msgid "Loading iPod database"
msgstr ""
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Loading stream"
@ -1203,6 +1221,9 @@ msgstr ""
msgid "Monitor the library for changes"
msgstr ""
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr ""
@ -1254,12 +1275,27 @@ msgstr "Neighbours"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "New playlist"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr ""
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Next track"
@ -1421,6 +1457,9 @@ msgstr "Playlist options"
msgid "Playlist search"
msgstr "Playlist search"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1746,6 +1785,9 @@ msgstr ""
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Soft"

View File

@ -109,6 +109,9 @@ msgstr ""
msgid "128k MP3"
msgstr ""
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -147,6 +150,9 @@ msgstr ""
msgid "Add another stream..."
msgstr "Add another stream..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Add directory..."
@ -697,6 +703,9 @@ msgstr "Drag to reposition"
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Edit tag \"%1\"..."
@ -769,6 +778,9 @@ msgstr ""
msgid "Error processing %1: %2"
msgstr ""
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr ""
@ -802,6 +814,9 @@ msgstr "Fading"
msgid "Fading duration"
msgstr "Fading duration"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Fetch Missing Covers"
@ -1131,6 +1146,9 @@ msgstr ""
msgid "Loading iPod database"
msgstr ""
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Loading stream"
@ -1201,6 +1219,9 @@ msgstr ""
msgid "Monitor the library for changes"
msgstr ""
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr ""
@ -1252,12 +1273,27 @@ msgstr "Neighbours"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr ""
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr ""
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Next track"
@ -1418,6 +1454,9 @@ msgstr "Playlist options"
msgid "Playlist search"
msgstr ""
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1743,6 +1782,9 @@ msgstr ""
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Soft"

View File

@ -111,6 +111,9 @@ msgstr "128K MP3"
msgid "128k MP3"
msgstr "128k MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -155,6 +158,9 @@ msgstr "Añadir acción"
msgid "Add another stream..."
msgstr "Añadir un flujo de radio..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Añadir directorio..."
@ -718,6 +724,9 @@ msgstr "Arrastrar para reposicionar"
msgid "Drive letter"
msgstr "Letra de unidad"
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Editar etiqueta \"%1\"..."
@ -791,6 +800,9 @@ msgstr "Error cargando %1"
msgid "Error processing %1: %2"
msgstr "Error procesando %1: %2"
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr "Extras"
@ -824,6 +836,9 @@ msgstr "Disolver"
msgid "Fading duration"
msgstr "Duración de disolución"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Obtener Carátulas Faltantes"
@ -1162,6 +1177,9 @@ msgstr "Cargando dispositivo Windows Media"
msgid "Loading iPod database"
msgstr "Cargando base de datos del iPod"
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Cargando flujo"
@ -1232,6 +1250,9 @@ msgstr "Modelo"
msgid "Monitor the library for changes"
msgstr "Monitorizar cambios en la biblioteca"
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr "Punto de montaje"
@ -1283,12 +1304,27 @@ msgstr "Vecinos"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Nueva lista de reproducción"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr "Nuevas canciones"
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Pista siguiente"
@ -1451,6 +1487,9 @@ msgstr "Opciones de la lista de reproducción"
msgid "Playlist search"
msgstr "Búsqueda en la lista"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1776,6 +1815,9 @@ msgstr "Caratula de álbum pequeña"
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Soft"

View File

@ -110,6 +110,9 @@ msgstr "128K MP3"
msgid "128k MP3"
msgstr "128k MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -148,6 +151,9 @@ msgstr ""
msgid "Add another stream..."
msgstr "Lisää toinen virta..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Lisää kansio..."
@ -698,6 +704,9 @@ msgstr ""
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr ""
@ -769,6 +778,9 @@ msgstr ""
msgid "Error processing %1: %2"
msgstr ""
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr ""
@ -802,6 +814,9 @@ msgstr ""
msgid "Fading duration"
msgstr ""
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Nouda puuttuvat kansikuvat"
@ -1131,6 +1146,9 @@ msgstr ""
msgid "Loading iPod database"
msgstr ""
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr ""
@ -1201,6 +1219,9 @@ msgstr ""
msgid "Monitor the library for changes"
msgstr ""
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr ""
@ -1253,12 +1274,27 @@ msgstr ""
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Uusi soittolista"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr ""
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Seuraava kappale"
@ -1419,6 +1455,9 @@ msgstr ""
msgid "Playlist search"
msgstr ""
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1744,6 +1783,9 @@ msgstr ""
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr ""

View File

@ -111,6 +111,9 @@ msgstr "MP3 128K"
msgid "128k MP3"
msgstr "MP3 128k"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -154,6 +157,9 @@ msgstr "Ajouter une action"
msgid "Add another stream..."
msgstr "Ajouter un autre flux..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Ajouter un répertoire..."
@ -720,6 +726,9 @@ msgstr "Déplacer pour repositionner"
msgid "Drive letter"
msgstr "Lettre du lecteur"
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Modifer le tag « %1 »..."
@ -795,6 +804,9 @@ msgstr "Erreur lors du chargement de %1"
msgid "Error processing %1: %2"
msgstr "Erreur lors du traitement de %1: %2"
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr "Extras"
@ -828,6 +840,9 @@ msgstr "Fondu"
msgid "Fading duration"
msgstr "Durée du fondu"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Récupérer les jaquettes manquantes"
@ -1166,6 +1181,9 @@ msgstr "Chargement du périphérique Windows Media"
msgid "Loading iPod database"
msgstr "Chargement de la base de données iPod"
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Chargement du flux"
@ -1236,6 +1254,9 @@ msgstr "Modèle"
msgid "Monitor the library for changes"
msgstr "Surveiller les modifications de la bibliothèque"
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr "Point de montage"
@ -1287,12 +1308,27 @@ msgstr "Voisins"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Nouvelle liste de lecture"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr "Nouvelles musiques"
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Piste suivante"
@ -1455,6 +1491,9 @@ msgstr "Options de la liste de lecture"
msgid "Playlist search"
msgstr "Rechercher dans la liste de lecture"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1780,6 +1819,9 @@ msgstr "Petite jaquette d'album"
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Soft"

View File

@ -110,6 +110,9 @@ msgstr "128K MP3"
msgid "128k MP3"
msgstr "128k MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -148,6 +151,9 @@ msgstr "Engadir acción"
msgid "Add another stream..."
msgstr "Adicionar outra stream..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Adicionar directório..."
@ -702,6 +708,9 @@ msgstr "Arraste para posicionar"
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Editar a tag \"%1\"..."
@ -773,6 +782,9 @@ msgstr ""
msgid "Error processing %1: %2"
msgstr ""
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr ""
@ -806,6 +818,9 @@ msgstr ""
msgid "Fading duration"
msgstr ""
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr ""
@ -1136,6 +1151,9 @@ msgstr ""
msgid "Loading iPod database"
msgstr ""
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "A carregar a stream"
@ -1206,6 +1224,9 @@ msgstr ""
msgid "Monitor the library for changes"
msgstr ""
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr ""
@ -1257,12 +1278,27 @@ msgstr "Viciños"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr ""
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr ""
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr ""
@ -1423,6 +1459,9 @@ msgstr ""
msgid "Playlist search"
msgstr ""
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1748,6 +1787,9 @@ msgstr ""
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Soft"

View File

@ -110,6 +110,9 @@ msgstr "128K MP3"
msgid "128k MP3"
msgstr "128k MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -153,6 +156,9 @@ msgstr "Esemény felvétele"
msgid "Add another stream..."
msgstr "Új adatfolyam hozzáadása"
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Mappa hozzáadása"
@ -714,6 +720,9 @@ msgstr "Fogja meg az áthelyezéshez"
msgid "Drive letter"
msgstr "Meghajtó azonosító"
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "\"%1\" információ módosítása..."
@ -788,6 +797,9 @@ msgstr "Hiba %1 betöltésekor"
msgid "Error processing %1: %2"
msgstr "Hiba %1: %2 feldolgozásakor"
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr "Extrák"
@ -821,6 +833,9 @@ msgstr "Elhalkulás"
msgid "Fading duration"
msgstr "Elhalkulás hossza"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "A hiányzó borítók letöltése"
@ -1155,6 +1170,9 @@ msgstr "Windows Media eszköz betöltése"
msgid "Loading iPod database"
msgstr "iPod adatbázis betöltése"
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Adatfolyam betöltése"
@ -1225,6 +1243,9 @@ msgstr "Modell"
msgid "Monitor the library for changes"
msgstr "Zenetár figyelése változások után"
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr "Csatolási pont"
@ -1276,12 +1297,27 @@ msgstr "Szomszédok"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Új lejátszási lista"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr "Új számok"
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Következő szám"
@ -1444,6 +1480,9 @@ msgstr "Lejátszási lista beállítások"
msgid "Playlist search"
msgstr "Keresés a lejátszási listán"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1770,6 +1809,9 @@ msgstr "Kis albumborító"
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Lágy"

View File

@ -111,6 +111,9 @@ msgstr "MP3 128k"
msgid "128k MP3"
msgstr "MP3 128k"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -155,6 +158,9 @@ msgstr "Aggiungi azione"
msgid "Add another stream..."
msgstr "Aggiungi un altro flusso..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Aggiungi cartella..."
@ -720,6 +726,9 @@ msgstr "Trascina per riposizionare"
msgid "Drive letter"
msgstr "Lettera del dispositivo"
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Modifica tag \"%1\"..."
@ -793,6 +802,9 @@ msgstr "Errore durante il caricamento di %1"
msgid "Error processing %1: %2"
msgstr "Errore durante l'elaborazione di %1: %2"
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr "Extra"
@ -826,6 +838,9 @@ msgstr "Dissolvenza"
msgid "Fading duration"
msgstr "Durata della dissolvenza"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Scarica copertine mancanti"
@ -1165,6 +1180,9 @@ msgstr "Caricamento dispositivo Windows Media"
msgid "Loading iPod database"
msgstr "Caricamento database dell'iPod"
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Caricamento flusso"
@ -1235,6 +1253,9 @@ msgstr "Modello"
msgid "Monitor the library for changes"
msgstr "Controlla i cambiamenti alla raccolta"
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr "Punto di mount"
@ -1286,12 +1307,27 @@ msgstr "Vicini"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Nuova scaletta"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr "Nuovi brani"
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Traccia successiva"
@ -1455,6 +1491,9 @@ msgstr "Opzioni della scaletta"
msgid "Playlist search"
msgstr "Ricerca nella scaletta"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1780,6 +1819,9 @@ msgstr "Copertine piccole"
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Leggere"

View File

@ -109,6 +109,9 @@ msgstr ""
msgid "128k MP3"
msgstr ""
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -147,6 +150,9 @@ msgstr ""
msgid "Add another stream..."
msgstr ""
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr ""
@ -697,6 +703,9 @@ msgstr ""
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr ""
@ -768,6 +777,9 @@ msgstr ""
msgid "Error processing %1: %2"
msgstr ""
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr ""
@ -801,6 +813,9 @@ msgstr ""
msgid "Fading duration"
msgstr ""
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr ""
@ -1131,6 +1146,9 @@ msgstr ""
msgid "Loading iPod database"
msgstr ""
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr ""
@ -1201,6 +1219,9 @@ msgstr ""
msgid "Monitor the library for changes"
msgstr ""
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr ""
@ -1252,12 +1273,27 @@ msgstr ""
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr ""
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr ""
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr ""
@ -1418,6 +1454,9 @@ msgstr ""
msgid "Playlist search"
msgstr ""
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Поп"
@ -1743,6 +1782,9 @@ msgstr ""
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr ""

View File

@ -110,6 +110,9 @@ msgstr ""
msgid "128k MP3"
msgstr ""
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -148,6 +151,9 @@ msgstr ""
msgid "Add another stream..."
msgstr ""
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr ""
@ -698,6 +704,9 @@ msgstr ""
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr ""
@ -769,6 +778,9 @@ msgstr ""
msgid "Error processing %1: %2"
msgstr ""
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr ""
@ -802,6 +814,9 @@ msgstr ""
msgid "Fading duration"
msgstr ""
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr ""
@ -1130,6 +1145,9 @@ msgstr ""
msgid "Loading iPod database"
msgstr ""
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr ""
@ -1200,6 +1218,9 @@ msgstr ""
msgid "Monitor the library for changes"
msgstr ""
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr ""
@ -1251,12 +1272,27 @@ msgstr ""
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr ""
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr ""
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr ""
@ -1417,6 +1453,9 @@ msgstr ""
msgid "Playlist search"
msgstr ""
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr ""
@ -1742,6 +1781,9 @@ msgstr ""
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr ""

View File

@ -110,6 +110,9 @@ msgstr ""
msgid "128k MP3"
msgstr ""
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -148,6 +151,9 @@ msgstr ""
msgid "Add another stream..."
msgstr "Legg til enda en strøm..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Legg til katalog..."
@ -698,6 +704,9 @@ msgstr "Dra for å endre posisjon"
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Endre merkelapp \"%1\"..."
@ -770,6 +779,9 @@ msgstr ""
msgid "Error processing %1: %2"
msgstr ""
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr ""
@ -803,6 +815,9 @@ msgstr ""
msgid "Fading duration"
msgstr ""
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Hent manglende omslag"
@ -1133,6 +1148,9 @@ msgstr ""
msgid "Loading iPod database"
msgstr ""
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Lader lydstrøm"
@ -1203,6 +1221,9 @@ msgstr "Modell"
msgid "Monitor the library for changes"
msgstr ""
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr ""
@ -1254,12 +1275,27 @@ msgstr ""
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Ny spilleliste"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr ""
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Neste spor"
@ -1420,6 +1456,9 @@ msgstr ""
msgid "Playlist search"
msgstr ""
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1745,6 +1784,9 @@ msgstr ""
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Myk"

View File

@ -110,6 +110,9 @@ msgstr "128K MP3"
msgid "128k MP3"
msgstr "128k MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -152,6 +155,9 @@ msgstr "Actie toevoegen"
msgid "Add another stream..."
msgstr "Noge een radiostream toevoegen..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Map toevoegen..."
@ -716,6 +722,9 @@ msgstr "Sleep om te verplaatsen"
msgid "Drive letter"
msgstr "Stationsletter"
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Tag \"%1\" bewerken..."
@ -789,6 +798,9 @@ msgstr "Fout bij laden van %1"
msgid "Error processing %1: %2"
msgstr "Fout bij verwerken van %1: %2"
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr "Extra's"
@ -822,6 +834,9 @@ msgstr "Uitvagen"
msgid "Fading duration"
msgstr "Uitvaagduur"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Ontbrekende hoezen ophalen"
@ -1159,6 +1174,9 @@ msgstr "Windows Media apparaat aan het laden"
msgid "Loading iPod database"
msgstr "iPod database laden"
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Radiostream laden"
@ -1229,6 +1247,9 @@ msgstr "Model"
msgid "Monitor the library for changes"
msgstr "De bibliotheek op wijzigingen blijven controleren"
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr "Koppelpunt"
@ -1280,12 +1301,27 @@ msgstr "Buren"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Nieuwe afspeellijst"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr "Nieuwe liedjes"
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Volgende track"
@ -1450,6 +1486,9 @@ msgstr "Afspeellijst-opties"
msgid "Playlist search"
msgstr "Zoeken in afspeellijst"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1775,6 +1814,9 @@ msgstr "Kleine albumhoes"
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Zacht"

View File

@ -109,6 +109,9 @@ msgstr ""
msgid "128k MP3"
msgstr ""
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -147,6 +150,9 @@ msgstr ""
msgid "Add another stream..."
msgstr ""
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr ""
@ -697,6 +703,9 @@ msgstr ""
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr ""
@ -768,6 +777,9 @@ msgstr ""
msgid "Error processing %1: %2"
msgstr ""
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr ""
@ -801,6 +813,9 @@ msgstr "Fondut"
msgid "Fading duration"
msgstr ""
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr ""
@ -1129,6 +1144,9 @@ msgstr ""
msgid "Loading iPod database"
msgstr ""
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Cargament del flux"
@ -1199,6 +1217,9 @@ msgstr ""
msgid "Monitor the library for changes"
msgstr ""
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr ""
@ -1250,12 +1271,27 @@ msgstr "Vesins"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr ""
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr ""
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Pista seguenta"
@ -1416,6 +1452,9 @@ msgstr ""
msgid "Playlist search"
msgstr ""
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1741,6 +1780,9 @@ msgstr ""
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Soft"

View File

@ -111,6 +111,9 @@ msgstr "128K MP3"
msgid "128k MP3"
msgstr "128k MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -156,6 +159,9 @@ msgstr "Dodaj akcje"
msgid "Add another stream..."
msgstr "Dodaj następny strumień..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Dodaj katalog..."
@ -717,6 +723,9 @@ msgstr "Przeciągnij aby zmienić pozycję"
msgid "Drive letter"
msgstr "Litera dysku"
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Edytuj znacznik \"%1\"..."
@ -788,6 +797,9 @@ msgstr "Błąd wczytywania %1"
msgid "Error processing %1: %2"
msgstr "Błąd przetwarzania %1: %2"
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr "Dodatki"
@ -821,6 +833,9 @@ msgstr "Przejście"
msgid "Fading duration"
msgstr "Czas przejścia"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Pobierz brakujące okładki"
@ -1157,6 +1172,9 @@ msgstr "Ładowanie urządzenia Windows Media"
msgid "Loading iPod database"
msgstr "Wczytywanie bazy danych iPod-a"
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Ładowanie strumienia"
@ -1227,6 +1245,9 @@ msgstr "Model"
msgid "Monitor the library for changes"
msgstr "Monitoruj zmiany biblioteki"
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr "Punkt montowania"
@ -1278,12 +1299,27 @@ msgstr "Sąsiedzi"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Nowa lista odtwarzania"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr "Nowe utwory"
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Następny utwór"
@ -1446,6 +1482,9 @@ msgstr "Opcje listy odtwarzania"
msgid "Playlist search"
msgstr "Przeszukuj listę odtwarzania"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1771,6 +1810,9 @@ msgstr "Mała okładka albumu"
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Miękki"

View File

@ -112,6 +112,9 @@ msgstr "128K MP3"
msgid "128k MP3"
msgstr "128k MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -154,6 +157,9 @@ msgstr "Adicionar ação"
msgid "Add another stream..."
msgstr "Adicionar outra emissão..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Adicionar diretório..."
@ -716,6 +722,9 @@ msgstr "Arraste para posicionar"
msgid "Drive letter"
msgstr "Letra da unidade"
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Editar marca \"%1\"..."
@ -789,6 +798,9 @@ msgstr "Erro ao carregar %1"
msgid "Error processing %1: %2"
msgstr "Erro ao processar %1: %2"
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr "Extras"
@ -822,6 +834,9 @@ msgstr "Desvanecer"
msgid "Fading duration"
msgstr "Duração do desvanecimento"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Obter as capas em falta"
@ -1157,6 +1172,9 @@ msgstr "Carregando dispositivo Windows Media"
msgid "Loading iPod database"
msgstr "Carregando base de dados iPod"
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Carregando emissão"
@ -1227,6 +1245,9 @@ msgstr "Modelo"
msgid "Monitor the library for changes"
msgstr "Vigiar alterações na biblioteca"
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr "Ponto de montagem"
@ -1278,12 +1299,27 @@ msgstr "Vizinhos"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Nova lista de reprodução"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr "Novas músicas"
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Faixa seguinte"
@ -1447,6 +1483,9 @@ msgstr "Opções da lista de reprodução"
msgid "Playlist search"
msgstr "Pesquisa na lista de reprodução"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1772,6 +1811,9 @@ msgstr "Capa de álbum pequena"
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Suave"

View File

@ -110,6 +110,9 @@ msgstr "128K MP3"
msgid "128k MP3"
msgstr "128k MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -151,6 +154,9 @@ msgstr "Adicionar ação"
msgid "Add another stream..."
msgstr "Adicionar outro canal..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Adicionar diretório"
@ -709,6 +715,9 @@ msgstr "Arraste para reposicionar"
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Editar marcador \"%1\"..."
@ -782,6 +791,9 @@ msgstr "Erro carregando %1"
msgid "Error processing %1: %2"
msgstr "Erro processando %1:%2"
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr "Extras"
@ -815,6 +827,9 @@ msgstr "Diminuindo"
msgid "Fading duration"
msgstr "Duração da dimunuição"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Buscar as Capas que Faltam"
@ -1146,6 +1161,9 @@ msgstr ""
msgid "Loading iPod database"
msgstr ""
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Carregando transmissão"
@ -1216,6 +1234,9 @@ msgstr ""
msgid "Monitor the library for changes"
msgstr ""
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr ""
@ -1267,12 +1288,27 @@ msgstr "Vizinhos"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Nova lista de reprodução"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr ""
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Próxima faixa"
@ -1435,6 +1471,9 @@ msgstr "Opções da lista de reprodução"
msgid "Playlist search"
msgstr "Procurar lista de reprodução"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1760,6 +1799,9 @@ msgstr "Capa pequena de álbum"
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Suave"

View File

@ -109,6 +109,9 @@ msgstr ""
msgid "128k MP3"
msgstr ""
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -147,6 +150,9 @@ msgstr ""
msgid "Add another stream..."
msgstr "Adaugă alt flux..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Adaugă director..."
@ -697,6 +703,9 @@ msgstr "Trage pentru a repoziționa"
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr ""
@ -768,6 +777,9 @@ msgstr ""
msgid "Error processing %1: %2"
msgstr ""
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr ""
@ -801,6 +813,9 @@ msgstr ""
msgid "Fading duration"
msgstr ""
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Obține copertele lipsă"
@ -1130,6 +1145,9 @@ msgstr ""
msgid "Loading iPod database"
msgstr ""
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Se încarcă fluxul"
@ -1200,6 +1218,9 @@ msgstr ""
msgid "Monitor the library for changes"
msgstr ""
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr ""
@ -1251,12 +1272,27 @@ msgstr "Vecini"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr ""
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr ""
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Piesa următoare"
@ -1417,6 +1453,9 @@ msgstr ""
msgid "Playlist search"
msgstr ""
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1742,6 +1781,9 @@ msgstr ""
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr ""

View File

@ -109,6 +109,9 @@ msgstr "128K MP3"
msgid "128k MP3"
msgstr "128к MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -151,6 +154,9 @@ msgstr "Добавить действие"
msgid "Add another stream..."
msgstr "Добавить другое потоковое радио..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Добавить папку"
@ -711,6 +717,9 @@ msgstr "Тащите для перемещения"
msgid "Drive letter"
msgstr "Буква диска"
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Редактировать тег \"%1\"..."
@ -782,6 +791,9 @@ msgstr "Ошибка загрузки %1"
msgid "Error processing %1: %2"
msgstr "Ошибка при обработке %1: %2"
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr "Расширения"
@ -815,6 +827,9 @@ msgstr "Затухание"
msgid "Fading duration"
msgstr "Длительность затухания"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Выберите пропущенные обложки"
@ -1150,6 +1165,9 @@ msgstr "Загрузка устройства Windows Media"
msgid "Loading iPod database"
msgstr "Загружается база данных iPod"
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Загрузка потока"
@ -1220,6 +1238,9 @@ msgstr "Модель"
msgid "Monitor the library for changes"
msgstr "Следить за изменениями бибилиотеки"
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr "Точка монтирования"
@ -1271,12 +1292,27 @@ msgstr "Соседи"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Новый список воспроизведения"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr "Новые композиции"
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Следующая композиция"
@ -1439,6 +1475,9 @@ msgstr "Настройки списка воспроизведения"
msgid "Playlist search"
msgstr "Поиск по списку воспроизведения"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1764,6 +1803,9 @@ msgstr "Маленькая обложка альбома"
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Soft"

View File

@ -111,6 +111,9 @@ msgstr "128K MP3"
msgid "128k MP3"
msgstr "128k MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -153,6 +156,9 @@ msgstr "Pridať akciu"
msgid "Add another stream..."
msgstr "Pridať ďalší stream..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Pridať priečinok..."
@ -713,6 +719,9 @@ msgstr "Pretiahnite na iné miesto"
msgid "Drive letter"
msgstr "Písmeno jednotky"
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Upraviť tag \"%1\"..."
@ -786,6 +795,9 @@ msgstr "Chyba pri načítavaní %1"
msgid "Error processing %1: %2"
msgstr "Chyba spracovania %1: %2"
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr "Prídavky"
@ -819,6 +831,9 @@ msgstr "Zoslabovanie"
msgid "Fading duration"
msgstr "Trvanie zoslabovania"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Získať chýbajúce obaly"
@ -1152,6 +1167,9 @@ msgstr "Načítava sa Windows media zariadenie"
msgid "Loading iPod database"
msgstr "Načítava sa iPod databáza"
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Načítava sa stream"
@ -1222,6 +1240,9 @@ msgstr "Model"
msgid "Monitor the library for changes"
msgstr "Sledovať zmeny v zbierke"
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr "Bod pripojenia"
@ -1273,12 +1294,27 @@ msgstr "Susedia"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Nový playlist"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr "Nové piesne"
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Nesledujca skladba"
@ -1440,6 +1476,9 @@ msgstr "Možnosti playlistu"
msgid "Playlist search"
msgstr "Hľadanie v playliste"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1765,6 +1804,9 @@ msgstr "Malý obal albumu"
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Soft"

View File

@ -110,6 +110,9 @@ msgstr "128K MP3"
msgid "128k MP3"
msgstr "128k MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -152,6 +155,9 @@ msgstr "Dodaj dejanje"
msgid "Add another stream..."
msgstr "Dodaj še en pretok ..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Dodaj mapo ..."
@ -712,6 +718,9 @@ msgstr "Povlecite za spremembo položaja"
msgid "Drive letter"
msgstr "Črka pogona"
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Uredi oznako \"%1\" ..."
@ -785,6 +794,9 @@ msgstr "Napaka med nalaganjem %1"
msgid "Error processing %1: %2"
msgstr "Napaka med obdelavo %1: %2"
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr "Dodatki"
@ -818,6 +830,9 @@ msgstr "Pojemanje"
msgid "Fading duration"
msgstr "Trajanje pojemanja"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Pridobi manjkajoče ovitke"
@ -1151,6 +1166,9 @@ msgstr "Nalaganje naprave Windows Media"
msgid "Loading iPod database"
msgstr "Nalaganje zbirke podatkov iPod"
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Nalaganje pretoka"
@ -1221,6 +1239,9 @@ msgstr "Model"
msgid "Monitor the library for changes"
msgstr "Spremljaj knjižnico za spremembami"
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr "Priklopna točka"
@ -1272,12 +1293,27 @@ msgstr "Sosedje"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Nov seznam predvajanja"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr "Nove skladbe"
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Naslednja skladba"
@ -1440,6 +1476,9 @@ msgstr "Možnosti seznama predvajanja"
msgid "Playlist search"
msgstr "Iskanje po seznamu predvajanja"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1765,6 +1804,9 @@ msgstr "Majhen ovitek albuma"
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Soft"

View File

@ -110,6 +110,9 @@ msgstr "128К МП3"
msgid "128k MP3"
msgstr "128к МП3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -148,6 +151,9 @@ msgstr ""
msgid "Add another stream..."
msgstr "Додај још један ток"
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Додај фасциклу"
@ -700,6 +706,9 @@ msgstr "Одвуците га где желите"
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Уреди ознаку \"%1\"..."
@ -772,6 +781,9 @@ msgstr "Грешка при учитавању %1"
msgid "Error processing %1: %2"
msgstr "Грешка при обради %1: %2"
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr "Специјалитети"
@ -805,6 +817,9 @@ msgstr "С утапањем"
msgid "Fading duration"
msgstr "Трајање утапања"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Добави недостајуће омоте"
@ -1135,6 +1150,9 @@ msgstr ""
msgid "Loading iPod database"
msgstr "Учитавам Ајподову базу података"
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Учитавам ток"
@ -1205,6 +1223,9 @@ msgstr "Модел"
msgid "Monitor the library for changes"
msgstr "Надгледај измене у библиотеци"
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr ""
@ -1256,12 +1277,27 @@ msgstr "Комшије"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Нова листа нумера"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr ""
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Следећа нумера"
@ -1422,6 +1458,9 @@ msgstr "Опције листе нуера"
msgid "Playlist search"
msgstr "Претрага листе нумера"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Поп"
@ -1747,6 +1786,9 @@ msgstr ""
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr ""

View File

@ -110,6 +110,9 @@ msgstr "128K MP3"
msgid "128k MP3"
msgstr "128k MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -148,6 +151,9 @@ msgstr ""
msgid "Add another stream..."
msgstr "Lägg till en annan ström..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Lägg till katalog..."
@ -702,6 +708,9 @@ msgstr "Dra för att ändra position"
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Redigera tagg \"%1\"..."
@ -775,6 +784,9 @@ msgstr "Fel vid insläsning av %1"
msgid "Error processing %1: %2"
msgstr "Fel vid bearbetning av %1: %2"
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr "Extrafunktioner"
@ -808,6 +820,9 @@ msgstr "Toning"
msgid "Fading duration"
msgstr "Toningslängd"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Hämta saknade omslag"
@ -1139,6 +1154,9 @@ msgstr ""
msgid "Loading iPod database"
msgstr "Läser in iPod-databas"
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Laddar ström"
@ -1209,6 +1227,9 @@ msgstr "Modell"
msgid "Monitor the library for changes"
msgstr "Övarvaka förändringar i biblioteket"
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr "Monteringspunkt"
@ -1260,12 +1281,27 @@ msgstr "Grannar"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Ny spellista"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr "Nya låtar"
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Nästa spår"
@ -1426,6 +1462,9 @@ msgstr "Flaggor för spellista"
msgid "Playlist search"
msgstr "Sök spellista"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1751,6 +1790,9 @@ msgstr "Liten omslagsbild"
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Soft"

View File

@ -110,6 +110,9 @@ msgstr "128K MP3"
msgid "128k MP3"
msgstr "128k MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -152,6 +155,9 @@ msgstr "Eylem ekle"
msgid "Add another stream..."
msgstr "Başka bir yayın ekle..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Dizin ekle..."
@ -712,6 +718,9 @@ msgstr "Yeniden konumlandırmak için sürükleyin"
msgid "Drive letter"
msgstr "Sürücü harfi"
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "\"%1\" etiketini düzenle..."
@ -785,6 +794,9 @@ msgstr "%1 yüklenirken hata"
msgid "Error processing %1: %2"
msgstr "%1 işlenirken hata: %2"
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr "Ekler"
@ -818,6 +830,9 @@ msgstr "Yumuşak geçiş"
msgid "Fading duration"
msgstr "Yumuşak geçiş süresi"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Eksik Albüm Kapaklarını İndir"
@ -1154,6 +1169,9 @@ msgstr "Windows Media aygıtı yükleniyor"
msgid "Loading iPod database"
msgstr "iPod veritabanı yükleniyor"
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Yayın akışı yükleniyor"
@ -1224,6 +1242,9 @@ msgstr "Model"
msgid "Monitor the library for changes"
msgstr "Kütüphanede olacak değişiklikleri izle"
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr "Bağlama noktası"
@ -1275,12 +1296,27 @@ msgstr "Komşular"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Yeni çalma listesi"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr "Yeni şarkılar"
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Sonraki parça"
@ -1443,6 +1479,9 @@ msgstr "Çalma listesi seçenekleri"
msgid "Playlist search"
msgstr "Çalma listesi araması"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Pop"
@ -1768,6 +1807,9 @@ msgstr "Küçük albüm kapağı"
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Hafif"

View File

@ -100,6 +100,9 @@ msgstr ""
msgid "128k MP3"
msgstr ""
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -138,6 +141,9 @@ msgstr ""
msgid "Add another stream..."
msgstr ""
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr ""
@ -688,6 +694,9 @@ msgstr ""
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr ""
@ -759,6 +768,9 @@ msgstr ""
msgid "Error processing %1: %2"
msgstr ""
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr ""
@ -792,6 +804,9 @@ msgstr ""
msgid "Fading duration"
msgstr ""
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr ""
@ -1120,6 +1135,9 @@ msgstr ""
msgid "Loading iPod database"
msgstr ""
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr ""
@ -1190,6 +1208,9 @@ msgstr ""
msgid "Monitor the library for changes"
msgstr ""
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr ""
@ -1241,12 +1262,27 @@ msgstr ""
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr ""
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr ""
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr ""
@ -1407,6 +1443,9 @@ msgstr ""
msgid "Playlist search"
msgstr ""
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr ""
@ -1732,6 +1771,9 @@ msgstr ""
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr ""

View File

@ -110,6 +110,9 @@ msgstr "128K MP3"
msgid "128k MP3"
msgstr "128k MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -152,6 +155,9 @@ msgstr "Додати дію"
msgid "Add another stream..."
msgstr "Додати інший потік..."
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "Додати каталог..."
@ -712,6 +718,9 @@ msgstr "Перетягніть, щоб змінити розташування"
msgid "Drive letter"
msgstr "Літера диска"
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr "Змінити позначку \"%1\"..."
@ -784,6 +793,9 @@ msgstr "Помилка завантаження %1"
msgid "Error processing %1: %2"
msgstr "Помилка обробляння %1: %2"
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr "Додатково"
@ -817,6 +829,9 @@ msgstr "Згасання"
msgid "Fading duration"
msgstr "Тривалість згасання"
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "Знайти обкладинки, яких бракує"
@ -1151,6 +1166,9 @@ msgstr "Завантаження пристрою Windows Media"
msgid "Loading iPod database"
msgstr "Завантаження бази даних iPod"
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "Завнтаження потоку"
@ -1221,6 +1239,9 @@ msgstr "Модель"
msgid "Monitor the library for changes"
msgstr "Стежити за змінами у фонотеці"
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr "Точка монтування"
@ -1272,12 +1293,27 @@ msgstr "Сусіди"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "Новий список відтворення"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr "Нові композиції"
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "Наступна доріжка"
@ -1440,6 +1476,9 @@ msgstr "Параметри списку відтворення"
msgid "Playlist search"
msgstr "Пошук списку відтворення"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr "Поп"
@ -1765,6 +1804,9 @@ msgstr "Маленька обкладинка альбому"
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr "Легка"

View File

@ -109,6 +109,9 @@ msgstr ""
msgid "128k MP3"
msgstr ""
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -147,6 +150,9 @@ msgstr ""
msgid "Add another stream..."
msgstr ""
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "添加目录"
@ -697,6 +703,9 @@ msgstr ""
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr ""
@ -768,6 +777,9 @@ msgstr ""
msgid "Error processing %1: %2"
msgstr ""
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr ""
@ -801,6 +813,9 @@ msgstr ""
msgid "Fading duration"
msgstr ""
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr ""
@ -1129,6 +1144,9 @@ msgstr ""
msgid "Loading iPod database"
msgstr ""
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr ""
@ -1199,6 +1217,9 @@ msgstr ""
msgid "Monitor the library for changes"
msgstr ""
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr ""
@ -1250,12 +1271,27 @@ msgstr ""
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "新建播放列表"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr ""
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "下一音轨"
@ -1416,6 +1452,9 @@ msgstr "播放列表选项"
msgid "Playlist search"
msgstr ""
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr ""
@ -1741,6 +1780,9 @@ msgstr ""
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr ""

View File

@ -110,6 +110,9 @@ msgstr "128K MP3"
msgid "128k MP3"
msgstr "128k MP3"
msgid "50 random tracks"
msgstr ""
msgid ""
"<p>Tokens start with %, for example: %artist %album %title </p>\n"
"\n"
@ -152,6 +155,9 @@ msgstr ""
msgid "Add another stream..."
msgstr "加入其它的網路串流"
msgid "Add as new playlist..."
msgstr ""
msgid "Add directory..."
msgstr "匯入目錄..."
@ -702,6 +708,9 @@ msgstr "拖曳以重新定位"
msgid "Drive letter"
msgstr ""
msgid "Dynamic playlists"
msgstr ""
#, qt-format
msgid "Edit tag \"%1\"..."
msgstr ""
@ -773,6 +782,9 @@ msgstr ""
msgid "Error processing %1: %2"
msgstr ""
msgid "Ever played"
msgstr ""
msgid "Extras"
msgstr "外掛程式"
@ -806,6 +818,9 @@ msgstr "淡出"
msgid "Fading duration"
msgstr ""
msgid "Favourite tracks"
msgstr ""
msgid "Fetch Missing Covers"
msgstr "取得未有的封面"
@ -1135,6 +1150,9 @@ msgstr ""
msgid "Loading iPod database"
msgstr ""
msgid "Loading smart playlist"
msgstr ""
msgid "Loading stream"
msgstr "載入串流"
@ -1205,6 +1223,9 @@ msgstr ""
msgid "Monitor the library for changes"
msgstr ""
msgid "Most played"
msgstr ""
msgid "Mount point"
msgstr ""
@ -1256,12 +1277,27 @@ msgstr "鄰居"
msgid "Never"
msgstr ""
msgid "Never played"
msgstr ""
msgid "New"
msgstr ""
msgid "New folder..."
msgstr ""
msgid "New playlist"
msgstr "新增播放清單"
msgid "New smart playlist..."
msgstr ""
msgid "New songs"
msgstr ""
msgid "Newest tracks"
msgstr ""
msgid "Next track"
msgstr "下一首歌曲"
@ -1422,6 +1458,9 @@ msgstr "播放清單選擇"
msgid "Playlist search"
msgstr "播放清單搜尋"
msgid "Playlists"
msgstr ""
msgid "Pop"
msgstr ""
@ -1747,6 +1786,9 @@ msgstr "小專輯封面"
msgid "Small sidebar"
msgstr ""
msgid "Smart playlists"
msgstr ""
msgid "Soft"
msgstr ""

View File

@ -53,6 +53,7 @@
#include "radio/radioview.h"
#include "radio/radioviewcontainer.h"
#include "radio/savedradio.h"
#include "smartplaylists/smartplaylistcontainer.h"
#include "songinfo/artistinfoview.h"
#include "songinfo/songinfoview.h"
#include "transcoder/transcodedialog.h"
@ -138,6 +139,7 @@ MainWindow::MainWindow(Engine::Type engine, QWidget *parent)
devices_(NULL),
library_view_(new LibraryViewContainer(this)),
file_view_(new FileView(this)),
smart_playlist_view_(new SmartPlaylistContainer(this)),
radio_view_(new RadioViewContainer(this)),
device_view_(new DeviceView(this)),
song_info_view_(new SongInfoView(this)),
@ -181,6 +183,7 @@ MainWindow::MainWindow(Engine::Type engine, QWidget *parent)
// Add tabs to the fancy tab widget
ui_->tabs->AddTab(library_view_, IconLoader::Load("folder-sound"), tr("Library"));
ui_->tabs->AddTab(file_view_, IconLoader::Load("document-open"), tr("Files"));
ui_->tabs->AddTab(smart_playlist_view_, IconLoader::Load("view-media-playlist"), tr("Playlists"));
ui_->tabs->AddTab(radio_view_, QIcon(":last.fm/icon_radio.png"), tr("Internet"));
ui_->tabs->AddTab(device_view_, IconLoader::Load("multimedia-player-ipod-mini-blue"), tr("Devices"));
ui_->tabs->AddSpacer();
@ -430,6 +433,10 @@ MainWindow::MainWindow(Engine::Type engine, QWidget *parent)
connect(devices_->connected_devices_model(), SIGNAL(IsEmptyChanged(bool)),
playlist_copy_to_device_, SLOT(setDisabled(bool)));
// Smart playlists connections
smart_playlist_view_->set_library(library_->backend());
smart_playlist_view_->set_playlists(playlists_);
// Radio connections
connect(radio_model_, SIGNAL(StreamError(QString)), SLOT(ShowErrorDialog(QString)));
connect(radio_model_, SIGNAL(AsyncLoadFinished(PlaylistItem::SpecialLoadResult)), player_, SLOT(HandleSpecialLoad(PlaylistItem::SpecialLoadResult)));

View File

@ -57,6 +57,7 @@ class QueueManager;
class RadioItem;
class RadioModel;
class RadioViewContainer;
class SmartPlaylistContainer;
class Song;
class SongInfoBase;
class SongInfoView;
@ -224,6 +225,7 @@ class MainWindow : public QMainWindow, public PlatformInterface {
LibraryViewContainer* library_view_;
FileView* file_view_;
SmartPlaylistContainer* smart_playlist_view_;
RadioViewContainer* radio_view_;
DeviceView* device_view_;
SongInfoView* song_info_view_;