From 753b144752f3d3d1ce19076145dd7852631b4b46 Mon Sep 17 00:00:00 2001 From: David Sansome Date: Thu, 18 Nov 2010 21:13:43 +0000 Subject: [PATCH] Refactor the smart playlist wizard to move all query-specific parts into a separate class --- src/CMakeLists.txt | 7 +- src/smartplaylists/querysearchpage.ui | 57 +++++ src/smartplaylists/querysortpage.ui | 117 +++++++++ src/smartplaylists/querywizardplugin.cpp | 223 +++++++++++++++++ src/smartplaylists/querywizardplugin.h | 85 +++++++ src/smartplaylists/wizard.cpp | 188 +++------------ src/smartplaylists/wizard.h | 45 ++-- src/smartplaylists/wizard.ui | 290 ----------------------- src/smartplaylists/wizardplugin.cpp | 32 +++ src/smartplaylists/wizardplugin.h | 55 +++++ src/translations/ar.po | 8 - src/translations/bg.po | 8 - src/translations/ca.po | 8 - src/translations/cs.po | 8 - src/translations/cy.po | 8 - src/translations/da.po | 8 - src/translations/de.po | 8 - src/translations/el.po | 20 +- src/translations/en_CA.po | 8 - src/translations/en_GB.po | 8 - src/translations/eo.po | 8 - src/translations/es.po | 8 - src/translations/et.po | 8 - src/translations/fi.po | 8 - src/translations/fr.po | 8 - src/translations/gl.po | 8 - src/translations/hu.po | 20 +- src/translations/it.po | 20 +- src/translations/ja.po | 16 +- src/translations/kk.po | 8 - src/translations/lt.po | 8 - src/translations/nb.po | 8 - src/translations/nl.po | 8 - src/translations/oc.po | 8 - src/translations/pl.po | 8 - src/translations/pt.po | 20 +- src/translations/pt_BR.po | 8 - src/translations/ro.po | 8 - src/translations/ru.po | 11 +- src/translations/sk.po | 20 +- src/translations/sl.po | 20 +- src/translations/sr.po | 8 - src/translations/sv.po | 17 +- src/translations/tr.po | 11 +- src/translations/translations.pot | 8 - src/translations/uk.po | 20 +- src/translations/zh_CN.po | 8 - src/translations/zh_TW.po | 8 - 48 files changed, 718 insertions(+), 792 deletions(-) create mode 100644 src/smartplaylists/querysearchpage.ui create mode 100644 src/smartplaylists/querysortpage.ui create mode 100644 src/smartplaylists/querywizardplugin.cpp create mode 100644 src/smartplaylists/querywizardplugin.h delete mode 100644 src/smartplaylists/wizard.ui create mode 100644 src/smartplaylists/wizardplugin.cpp create mode 100644 src/smartplaylists/wizardplugin.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2c1ebe297..6300e15d6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -132,11 +132,13 @@ set(SOURCES smartplaylists/generator.cpp smartplaylists/generatorinserter.cpp smartplaylists/querygenerator.cpp + smartplaylists/querywizardplugin.cpp smartplaylists/search.cpp smartplaylists/searchpreview.cpp smartplaylists/searchterm.cpp smartplaylists/searchtermwidget.cpp smartplaylists/wizard.cpp + smartplaylists/wizardplugin.cpp songinfo/artistinfoview.cpp songinfo/collapsibleinfoheader.cpp @@ -290,9 +292,11 @@ set(HEADERS smartplaylists/generator.h smartplaylists/generatorinserter.h smartplaylists/generatormimedata.h + smartplaylists/querywizardplugin.h smartplaylists/searchpreview.h smartplaylists/searchtermwidget.h smartplaylists/wizard.h + smartplaylists/wizardplugin.h songinfo/artistinfoview.h songinfo/collapsibleinfoheader.h @@ -374,9 +378,10 @@ set(UI radio/magnatunedownloaddialog.ui radio/radioviewcontainer.ui + smartplaylists/querysearchpage.ui + smartplaylists/querysortpage.ui smartplaylists/searchpreview.ui smartplaylists/searchtermwidget.ui - smartplaylists/wizard.ui songinfo/lyricsettings.ui diff --git a/src/smartplaylists/querysearchpage.ui b/src/smartplaylists/querysearchpage.ui new file mode 100644 index 000000000..743c2e218 --- /dev/null +++ b/src/smartplaylists/querysearchpage.ui @@ -0,0 +1,57 @@ + + + SmartPlaylistQuerySearchPage + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + + Search mode + + + + + + + Match every search term (AND) + + + + + Match one or more search terms (OR) + + + + + Don't use search terms (include all songs) + + + + + + + + + + + Search terms + + + + + + + + + diff --git a/src/smartplaylists/querysortpage.ui b/src/smartplaylists/querysortpage.ui new file mode 100644 index 000000000..ebfc016ef --- /dev/null +++ b/src/smartplaylists/querysortpage.ui @@ -0,0 +1,117 @@ + + + SmartPlaylistQuerySortPage + + + + 0 + 0 + 723 + 335 + + + + Form + + + + 0 + + + + + Sorting + + + + + + Put songs in a random order + + + true + + + + + + + Sort songs by + + + + + + + + + + + + + + + + + + + + Limits + + + + + + Show all the songs + + + true + + + + + + + Only show the first + + + + + + + songs + + + 1000 + + + 15 + + + + + + + + + + Qt::Horizontal + + + + + + + + + + + smart_playlists::SearchPreview + QWidget +
smartplaylists/searchpreview.h
+ 1 +
+
+ + +
diff --git a/src/smartplaylists/querywizardplugin.cpp b/src/smartplaylists/querywizardplugin.cpp new file mode 100644 index 000000000..d8fe62fee --- /dev/null +++ b/src/smartplaylists/querywizardplugin.cpp @@ -0,0 +1,223 @@ +/* This file is part of Clementine. + + Clementine is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Clementine is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Clementine. If not, see . +*/ + +#include "querywizardplugin.h" +#include "searchtermwidget.h" +#include "ui_querysearchpage.h" +#include "ui_querysortpage.h" + +#include + +namespace smart_playlists { + +QueryWizardPlugin::QueryWizardPlugin(LibraryBackend* library, QObject* parent) + : WizardPlugin(library, parent), + search_page_(NULL) +{ +} + +QueryWizardPlugin::~QueryWizardPlugin() { +} + +QString QueryWizardPlugin::name() const { + return tr("Library search"); +} + +QString QueryWizardPlugin::description() const { + return tr("Find songs in your library that match the criteria you specify."); +} + +int QueryWizardPlugin::CreatePages(QWizard* wizard) { + // Create the UI + search_page_ = new SearchPage(wizard); + + QWizardPage* sort_page = new QWizardPage(wizard); + sort_ui_.reset(new Ui_SmartPlaylistQuerySortPage); + sort_ui_->setupUi(sort_page); + + sort_ui_->limit_value->setValue(Generator::kDefaultLimit); + + connect(search_page_->ui_->type, SIGNAL(currentIndexChanged(int)), SLOT(SearchTypeChanged())); + + // Create the new search term widget + search_page_->new_term_ = new SearchTermWidget(library_, search_page_); + search_page_->new_term_->SetActive(false); + connect(search_page_->new_term_, SIGNAL(Clicked()), SLOT(AddSearchTerm())); + + // Add an empty initial term + search_page_->layout_ = static_cast(search_page_->ui_->terms_group->layout()); + search_page_->layout_->addWidget(search_page_->new_term_); + AddSearchTerm(); + + // Add the preview widget at the bottom of the search terms page + QVBoxLayout* terms_page_layout = static_cast(search_page_->layout()); + terms_page_layout->addStretch(); + search_page_->preview_ = new SearchPreview(search_page_); + search_page_->preview_->set_library(library_); + terms_page_layout->addWidget(search_page_->preview_); + + // Add sort field texts + for (int i=0 ; ifield_value->addItem(field_name); + } + connect(sort_ui_->field_value, SIGNAL(currentIndexChanged(int)), SLOT(UpdateSortOrder())); + UpdateSortOrder(); + + // Set the sort and limit radio buttons back to their defaults - they would + // have been changed by setupUi + sort_ui_->random->setChecked(true); + sort_ui_->limit_none->setChecked(true); + + // Set up the preview widget that's already at the bottom of the sort page + sort_ui_->preview->set_library(library_); + + // Configure the page text + search_page_->setTitle(tr("Search terms")); + search_page_->setSubTitle(tr("A song will be included in the playlist if it matches these conditions.")); + sort_page->setTitle(tr("Search options")); + sort_page->setSubTitle(tr("Choose how the playlist is sorted and how many songs it will contain.")); + sort_page->setFinalPage(true); + + // Add the pages + const int first_page = wizard->addPage(search_page_); + wizard->addPage(sort_page); + return first_page; +} + +GeneratorPtr QueryWizardPlugin::CreateGenerator() const { + // TODO + return GeneratorPtr(); +} + +void QueryWizardPlugin::UpdateSortOrder() { + const SearchTerm::Field field = + SearchTerm::Field(sort_ui_->field_value->currentIndex()); + const SearchTerm::Type type = SearchTerm::TypeOf(field); + const QString asc = SearchTerm::FieldSortOrderText(type, true); + const QString desc = SearchTerm::FieldSortOrderText(type, false); + + sort_ui_->order->clear(); + sort_ui_->order->addItem(asc); + sort_ui_->order->addItem(desc); +} + +void QueryWizardPlugin::AddSearchTerm() { + SearchTermWidget* widget = + new SearchTermWidget(library_, search_page_); + connect(widget, SIGNAL(RemoveClicked()), SLOT(RemoveSearchTerm())); + connect(widget, SIGNAL(Changed()), SLOT(UpdateTermPreview())); + + search_page_->layout_->insertWidget(search_page_->terms_.count(), widget); + search_page_->terms_ << widget; + + UpdateTermPreview(); +} + +void QueryWizardPlugin::RemoveSearchTerm() { + SearchTermWidget* widget = + qobject_cast(sender()); + if (!widget) + return; + + const int index = search_page_->terms_.indexOf(widget); + if (index == -1) + return; + + delete search_page_->terms_.takeAt(index); + UpdateTermPreview(); +} + +void QueryWizardPlugin::UpdateTermPreview() { + Search search = MakeSearch(); + emit search_page_->completeChanged(); + if (!search.is_valid()) + return; + + // Don't apply limits in the term page + search.limit_ = -1; + + search_page_->preview_->Update(search); +} + +void QueryWizardPlugin::UpdateSortPreview() { + Search search = MakeSearch(); + if (!search.is_valid()) + return; + + sort_ui_->preview->Update(search); +} + +Search QueryWizardPlugin::MakeSearch() const { + Search ret; + + // Search type + ret.search_type_ = Search::SearchType(search_page_->ui_->type->currentIndex()); + + // Search terms + foreach (SearchTermWidget* widget, search_page_->terms_) { + SearchTerm term = widget->Term(); + if (term.is_valid()) + ret.terms_ << term; + } + + // Sort order + if (sort_ui_->random->isChecked()) { + ret.sort_type_ = Search::Sort_Random; + } else { + const bool ascending = sort_ui_->order->currentIndex() == 0; + ret.sort_type_ = ascending ? Search::Sort_FieldAsc : + Search::Sort_FieldDesc; + ret.sort_field_ = SearchTerm::Field(sort_ui_->field_value->currentIndex()); + } + + // Limit + if (sort_ui_->limit_none->isChecked()) + ret.limit_ = -1; + else + ret.limit_ = sort_ui_->limit_value->value(); + + return ret; +} + +void QueryWizardPlugin::SearchTypeChanged() { + const bool all = search_page_->ui_->type->currentIndex() == 2; + search_page_->ui_->terms_group->setEnabled(!all); + + UpdateTermPreview(); +} + + +QueryWizardPlugin::SearchPage::SearchPage(QWidget* parent) + : QWizardPage(parent), + ui_(new Ui_SmartPlaylistQuerySearchPage) +{ + ui_->setupUi(this); +} + +bool QueryWizardPlugin::SearchPage::isComplete() const { + if (ui_->type->currentIndex() == 2) // All songs + return true; + + foreach (SearchTermWidget* widget, terms_) { + if (!widget->Term().is_valid()) + return false; + } + return true; +} + +} // namespace smart_playlists diff --git a/src/smartplaylists/querywizardplugin.h b/src/smartplaylists/querywizardplugin.h new file mode 100644 index 000000000..be563c2ea --- /dev/null +++ b/src/smartplaylists/querywizardplugin.h @@ -0,0 +1,85 @@ +/* This file is part of Clementine. + + Clementine is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Clementine is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Clementine. If not, see . +*/ + +#ifndef QUERYWIZARDPLUGIN_H +#define QUERYWIZARDPLUGIN_H + +#include "search.h" +#include "wizardplugin.h" + +#include + +#include + +class Ui_SmartPlaylistQuerySearchPage; +class Ui_SmartPlaylistQuerySortPage; + +class QVBoxLayout; + +namespace smart_playlists { + +class SearchPreview; +class SearchTermWidget; + +class QueryWizardPlugin : public WizardPlugin { + Q_OBJECT + +public: + QueryWizardPlugin(LibraryBackend* library, QObject* parent); + ~QueryWizardPlugin(); + + QString name() const; + QString description() const; + + int CreatePages(QWizard* wizard); + GeneratorPtr CreateGenerator() const; + +private slots: + void AddSearchTerm(); + void RemoveSearchTerm(); + + void SearchTypeChanged(); + + void UpdateTermPreview(); + void UpdateSortPreview(); + void UpdateSortOrder(); + +private: + class SearchPage : public QWizardPage { + friend class QueryWizardPlugin; + + public: + SearchPage(QWidget* parent = 0); + bool isComplete() const; + + QVBoxLayout* layout_; + QList terms_; + SearchTermWidget* new_term_; + + SearchPreview* preview_; + + boost::scoped_ptr ui_; + }; + + Search MakeSearch() const; + + SearchPage* search_page_; + boost::scoped_ptr sort_ui_; +}; + +} // namespace smart_playlists + +#endif // QUERYWIZARDPLUGIN_H diff --git a/src/smartplaylists/wizard.cpp b/src/smartplaylists/wizard.cpp index 3d812caf5..6dfe68ad6 100644 --- a/src/smartplaylists/wizard.cpp +++ b/src/smartplaylists/wizard.cpp @@ -14,179 +14,63 @@ along with Clementine. If not, see . */ -#include "generator.h" -#include "searchpreview.h" -#include "searchtermwidget.h" +#include "querywizardplugin.h" #include "wizard.h" -#include "ui_wizard.h" +#include "wizardplugin.h" + +#include +#include +#include +#include namespace smart_playlists { -Wizard::SearchPage::SearchPage(QWidget* parent) - : QWizardPage(parent) -{ -} - -bool Wizard::SearchPage::isComplete() const { - if (type_->currentIndex() == 2) // All songs - return true; - - foreach (SearchTermWidget* widget, terms_) { - if (!widget->Term().is_valid()) - return false; - } - return true; -} - Wizard::Wizard(LibraryBackend* library, QWidget* parent) : QWizard(parent), - ui_(new Ui_SmartPlaylistWizard), - library_(library) + library_(library), + type_page_(new TypePage(this)), + type_mapper_(new QSignalMapper(this)) { - ui_->setupUi(this); - ui_->limit_value->setValue(Generator::kDefaultLimit); + setWindowIcon(QIcon(":/icon.png")); + setWindowTitle(tr("Smart playlist")); + resize(687, 628); - connect(ui_->search_type, SIGNAL(currentIndexChanged(int)), SLOT(SearchTypeChanged())); + type_page_->setTitle(tr("Playlist type")); + type_page_->setSubTitle(tr("A smart playlist is a dynamic list of songs that come from your library. There are different types of smart playlist that offer different ways of selecting songs.")); + addPage(type_page_); - // Get the type combo box - ui_->page_query_search->type_ = ui_->search_type; + connect(type_mapper_, SIGNAL(mapped(int)), SLOT(TypeChanged(int))); - // Create the new search term widget - ui_->page_query_search->new_term_ = new SearchTermWidget(library_, this); - ui_->page_query_search->new_term_->SetActive(false); - connect(ui_->page_query_search->new_term_, SIGNAL(Clicked()), SLOT(AddSearchTerm())); - - // Add an empty initial term - ui_->page_query_search->layout_ = static_cast(ui_->terms_group->layout()); - ui_->page_query_search->layout_->addWidget(ui_->page_query_search->new_term_); - AddSearchTerm(); - - // Add the preview widget at the bottom of the search terms page - QVBoxLayout* terms_page_layout = static_cast(ui_->page_query_search->layout()); - terms_page_layout->addStretch(); - ui_->page_query_search->preview_ = new SearchPreview(this); - ui_->page_query_search->preview_->set_library(library_); - terms_page_layout->addWidget(ui_->page_query_search->preview_); - - // Add sort field texts - for (int i=0 ; isort_field_value->addItem(field_name); - } - connect(ui_->sort_field_value, SIGNAL(currentIndexChanged(int)), SLOT(UpdateSortOrder())); - UpdateSortOrder(); - - // Set the sort and limit radio buttons back to their defaults - they would - // have been changed by setupUi - ui_->sort_random->setChecked(true); - ui_->limit_none->setChecked(true); - - // Set up the preview widget that's already at the bottom of the sort page - ui_->sort_preview->set_library(library_); + new QVBoxLayout(type_page_); + AddPlugin(new QueryWizardPlugin(library_, this)); } Wizard::~Wizard() { - delete ui_; + qDeleteAll(plugins_); } -void Wizard::UpdateSortOrder() { - const SearchTerm::Field field = - SearchTerm::Field(ui_->sort_field_value->currentIndex()); - const SearchTerm::Type type = SearchTerm::TypeOf(field); - const QString asc = SearchTerm::FieldSortOrderText(type, true); - const QString desc = SearchTerm::FieldSortOrderText(type, false); +void Wizard::AddPlugin(WizardPlugin* plugin) { + const int index = plugins_.count(); + plugins_ << plugin; + plugin->Init(this); - ui_->sort_order->clear(); - ui_->sort_order->addItem(asc); - ui_->sort_order->addItem(desc); -} + // Create the radio button + QRadioButton* name = new QRadioButton(plugin->name(), type_page_); + QLabel* description = new QLabel(plugin->description(), type_page_); + type_page_->layout()->addWidget(name); + type_page_->layout()->addWidget(description); -void Wizard::AddSearchTerm() { - SearchTermWidget* widget = - new SearchTermWidget(library_, this); - connect(widget, SIGNAL(RemoveClicked()), SLOT(RemoveSearchTerm())); - connect(widget, SIGNAL(Changed()), SLOT(UpdateTermPreview())); + type_mapper_->setMapping(name, index); + connect(name, SIGNAL(clicked()), type_mapper_, SLOT(map())); - ui_->page_query_search->layout_->insertWidget( - ui_->page_query_search->terms_.count(), widget); - ui_->page_query_search->terms_ << widget; - - UpdateTermPreview(); -} - -void Wizard::RemoveSearchTerm() { - SearchTermWidget* widget = - qobject_cast(sender()); - if (!widget) - return; - - const int index = ui_->page_query_search->terms_.indexOf(widget); - if (index == -1) - return; - - delete ui_->page_query_search->terms_.takeAt(index); - UpdateTermPreview(); -} - -void Wizard::UpdateTermPreview() { - Search search = MakeSearch(); - emit ui_->page_query_search->completeChanged(); - if (!search.is_valid()) - return; - - // Don't apply limits in the term page - search.limit_ = -1; - - ui_->page_query_search->preview_->Update(search); -} - -void Wizard::UpdateSortPreview() { - Search search = MakeSearch(); - if (!search.is_valid()) - return; - - ui_->sort_preview->Update(search); -} - -Search Wizard::MakeSearch() const { - Search ret; - - // Search type - ret.search_type_ = Search::SearchType(ui_->search_type->currentIndex()); - - // Search terms - foreach (SearchTermWidget* widget, ui_->page_query_search->terms_) { - SearchTerm term = widget->Term(); - if (term.is_valid()) - ret.terms_ << term; + if (index == 0) { + name->setChecked(true); + TypeChanged(0); } - - // Sort order - if (ui_->sort_random->isChecked()) { - ret.sort_type_ = Search::Sort_Random; - } else { - const bool ascending = ui_->sort_order->currentIndex() == 0; - ret.sort_type_ = ascending ? Search::Sort_FieldAsc : - Search::Sort_FieldDesc; - ret.sort_field_ = SearchTerm::Field( - ui_->sort_field_value->currentIndex()); - } - - // Limit - if (ui_->limit_none->isChecked()) - ret.limit_ = -1; - else - ret.limit_ = ui_->limit_value->value(); - - return ret; } -void Wizard::SearchTypeChanged() { - const bool all = ui_->search_type->currentIndex() == 2; - ui_->terms_group->setEnabled(!all); - - UpdateTermPreview(); +void Wizard::TypeChanged(int index) { + type_page_->next_id_ = plugins_[index]->start_page(); } } // namespace diff --git a/src/smartplaylists/wizard.h b/src/smartplaylists/wizard.h index fcae11e6d..f906ca636 100644 --- a/src/smartplaylists/wizard.h +++ b/src/smartplaylists/wizard.h @@ -17,20 +17,15 @@ #ifndef SMARTPLAYLISTWIZARD_H #define SMARTPLAYLISTWIZARD_H -#include "search.h" - #include class LibraryBackend; -class Ui_SmartPlaylistWizard; -class QComboBox; -class QVBoxLayout; +class QSignalMapper; namespace smart_playlists { -class SearchPreview; -class SearchTermWidget; +class WizardPlugin; class Wizard : public QWizard { Q_OBJECT @@ -39,36 +34,24 @@ public: Wizard(LibraryBackend* library, QWidget* parent); ~Wizard(); - class SearchPage : public QWizardPage { - friend class Wizard; - public: - SearchPage(QWidget* parent = 0); - bool isComplete() const; - - QVBoxLayout* layout_; - QComboBox* type_; - QList terms_; - SearchTermWidget* new_term_; - - SearchPreview* preview_; +private: + struct TypePage : public QWizardPage { + TypePage(QWidget* parent) : QWizardPage(parent), next_id_(0) {} + int nextId() const { return next_id_; } + int next_id_; }; + void AddPlugin(WizardPlugin* plugin); + private slots: - void AddSearchTerm(); - void RemoveSearchTerm(); - - void SearchTypeChanged(); - - void UpdateTermPreview(); - void UpdateSortPreview(); - void UpdateSortOrder(); + void TypeChanged(int index); private: - Search MakeSearch() const; - -private: - Ui_SmartPlaylistWizard* ui_; LibraryBackend* library_; + TypePage* type_page_; + QSignalMapper* type_mapper_; + + QList plugins_; }; } // namespace diff --git a/src/smartplaylists/wizard.ui b/src/smartplaylists/wizard.ui deleted file mode 100644 index 1b8820197..000000000 --- a/src/smartplaylists/wizard.ui +++ /dev/null @@ -1,290 +0,0 @@ - - - SmartPlaylistWizard - - - - 0 - 0 - 687 - 628 - - - - Smart playlist - - - - QRadioButton { - font-weight: bold; -} - -QLabel { - margin-bottom: 1em; -} - - - Playlist type - - - A smart playlist is a dynamic list of songs that come from your library. There are different types of smart playlist that offer different ways of selecting songs. - - - - - - Library search - - - true - - - - - - - Find songs in your library that match the criteria you specify. - - - true - - - 24 - - - - - - - false - - - Last.fm similar artists - - - - - - - false - - - Let Last.fm suggest songs from your library that are similar to one you specify. - - - true - - - 24 - - - - - - - - #termframe { - border: 1px solid grey; - border-radius: 10px; -} - -#termframe #remove { -background:qlineargradient(x1:0, y1:0, x2:0, y2:1, - stop:0 rgba(255,0,0,32), stop: 1 rgba(255,0,0,64)); -border: 0px; -border-left: 1px dashed grey; -padding: 6px; -margin-left: 9px; -} - - - Search terms - - - A song will be included in the playlist if it matches these conditions. - - - - - - Search mode - - - - - - - Match every search term (AND) - - - - - Match one or more search terms (OR) - - - - - Don't use search terms (include all songs) - - - - - - - - - - - Search terms - - - - - - - - - Search options - - - Choose how the playlist is sorted and how many songs it will contain. - - - - - - Sorting - - - - - - Put songs in a random order - - - true - - - - - - - Sort songs by - - - - - - - - - - - - - - - - - - - - Limits - - - - - - Show all the songs - - - true - - - - - - - Only show the first - - - - - - - songs - - - 1000 - - - 15 - - - - - - - - - - Qt::Horizontal - - - - - - - - - - - - smart_playlists::SearchPreview - QWidget -
smartplaylists/searchpreview.h
- 1 -
- - smart_playlists::Wizard::SearchPage - QWizardPage -
smartplaylists/wizard.h
- 1 -
-
- - - - sort_field_value - currentIndexChanged(int) - sort_field - click() - - - 190 - 152 - - - 142 - 148 - - - - - limit_value - valueChanged(int) - limit_limit - click() - - - 221 - 252 - - - 163 - 248 - - - - -
diff --git a/src/smartplaylists/wizardplugin.cpp b/src/smartplaylists/wizardplugin.cpp new file mode 100644 index 000000000..848e5107b --- /dev/null +++ b/src/smartplaylists/wizardplugin.cpp @@ -0,0 +1,32 @@ +/* This file is part of Clementine. + + Clementine is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Clementine is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Clementine. If not, see . +*/ + +#include "wizardplugin.h" + +namespace smart_playlists { + +WizardPlugin::WizardPlugin(LibraryBackend* library, QObject* parent) + : QObject(parent), + library_(library), + start_page_(-1) +{ +} + +void WizardPlugin::Init(QWizard* wizard) { + start_page_ = CreatePages(wizard); +} + +} // namespace smart_playlists diff --git a/src/smartplaylists/wizardplugin.h b/src/smartplaylists/wizardplugin.h new file mode 100644 index 000000000..9641dcd11 --- /dev/null +++ b/src/smartplaylists/wizardplugin.h @@ -0,0 +1,55 @@ +/* This file is part of Clementine. + + Clementine is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Clementine is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Clementine. If not, see . +*/ + +#ifndef WIZARDPLUGIN_H +#define WIZARDPLUGIN_H + +#include + +#include "generator_fwd.h" + +class LibraryBackend; + +class QWizard; + +namespace smart_playlists { + +class WizardPlugin : public QObject { + Q_OBJECT + +public: + WizardPlugin(LibraryBackend* library, QObject* parent); + + virtual QString name() const = 0; + virtual QString description() const = 0; + int start_page() const { return start_page_; } + + virtual GeneratorPtr CreateGenerator() const = 0; + + void Init(QWizard* wizard); + +protected: + virtual int CreatePages(QWizard* wizard) = 0; + + LibraryBackend* library_; + +private: + int start_page_; +}; + +} // namespace smart_playlists + +#endif // WIZARDPLUGIN_H diff --git a/src/translations/ar.po b/src/translations/ar.po index 6e781d9d4..bd35722e9 100644 --- a/src/translations/ar.po +++ b/src/translations/ar.po @@ -1131,9 +1131,6 @@ msgstr "" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1149,11 +1146,6 @@ msgstr "" msgid "Length" msgstr "المدة" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "" diff --git a/src/translations/bg.po b/src/translations/bg.po index de32f0843..964b376be 100644 --- a/src/translations/bg.po +++ b/src/translations/bg.po @@ -1136,9 +1136,6 @@ msgstr "Last.fm парола" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1154,11 +1151,6 @@ msgstr "" msgid "Length" msgstr "Дължина" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "" diff --git a/src/translations/ca.po b/src/translations/ca.po index e093669e2..ea81242a1 100644 --- a/src/translations/ca.po +++ b/src/translations/ca.po @@ -1157,9 +1157,6 @@ msgstr "Contrasenya de Last.fm" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1177,11 +1174,6 @@ msgstr "" msgid "Length" msgstr "Durada" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "Biblioteca" diff --git a/src/translations/cs.po b/src/translations/cs.po index 6af671c93..7b875038f 100644 --- a/src/translations/cs.po +++ b/src/translations/cs.po @@ -1136,9 +1136,6 @@ msgstr "Heslo k Last.fm" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1154,11 +1151,6 @@ msgstr "" msgid "Length" msgstr "Délka" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "Knihovna" diff --git a/src/translations/cy.po b/src/translations/cy.po index 7e862cf4f..76fe5a966 100644 --- a/src/translations/cy.po +++ b/src/translations/cy.po @@ -1131,9 +1131,6 @@ msgstr "" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1149,11 +1146,6 @@ msgstr "" msgid "Length" msgstr "" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "" diff --git a/src/translations/da.po b/src/translations/da.po index 3324c20b5..c8bddbfa7 100644 --- a/src/translations/da.po +++ b/src/translations/da.po @@ -1137,9 +1137,6 @@ msgstr "Last.fm-adgangskode" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1155,11 +1152,6 @@ msgstr "Lad stå blank for standard. Eksempler: \"/dev/dsp\", \"front\", osv." msgid "Length" msgstr "Længde" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "Bibliotek" diff --git a/src/translations/de.po b/src/translations/de.po index e63d85771..51c17da0c 100644 --- a/src/translations/de.po +++ b/src/translations/de.po @@ -1160,9 +1160,6 @@ msgstr "Last.fm Passwort" msgid "Last.fm play counts" msgstr "Last.fm Abspielzähler" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "Last.fm tags" @@ -1180,11 +1177,6 @@ msgstr "" msgid "Length" msgstr "Länge" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "Sammlung" diff --git a/src/translations/el.po b/src/translations/el.po index e4c4678f9..6838404d8 100644 --- a/src/translations/el.po +++ b/src/translations/el.po @@ -1171,9 +1171,6 @@ msgstr "Last.fm συνθηματικό" msgid "Last.fm play counts" msgstr "Αριθμός αναπαραγωγής Last.fm" -msgid "Last.fm similar artists" -msgstr "Παρόμοιοι καλλιτέχνες Last.fm" - msgid "Last.fm tags" msgstr "Ετικέτες του Last.fm" @@ -1189,13 +1186,6 @@ msgstr "Κενό για τα προεπιλεγμένα. Π.χ. \"/dev/dsp\", \ msgid "Length" msgstr "Διάρκεια" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" -"Επιτρέψτε στο Last.fm να προτείνει τραγούδια από την βιβλιοθήκη σας παρόμοια " -"με αυτό που ορίζετε." - msgid "Library" msgstr "Βιβλιοθήκη" @@ -2411,6 +2401,16 @@ msgstr "διακοπή" msgid "track %1" msgstr "κομμάτι %1" +#~ msgid "Last.fm similar artists" +#~ msgstr "Παρόμοιοι καλλιτέχνες Last.fm" + +#~ msgid "" +#~ "Let Last.fm suggest songs from your library that are similar to one you " +#~ "specify." +#~ msgstr "" +#~ "Επιτρέψτε στο Last.fm να προτείνει τραγούδια από την βιβλιοθήκη σας " +#~ "παρόμοια με αυτό που ορίζετε." + #~ msgid "Playlists" #~ msgstr "Λίστες αναπαραγωγής" diff --git a/src/translations/en_CA.po b/src/translations/en_CA.po index 929ed49e1..fc1f47d41 100644 --- a/src/translations/en_CA.po +++ b/src/translations/en_CA.po @@ -1135,9 +1135,6 @@ msgstr "Last.fm password" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1153,11 +1150,6 @@ msgstr "Leave blank for the default. Examples: \"/dev/dsp\", \"front\", etc." msgid "Length" msgstr "Length" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "Library" diff --git a/src/translations/en_GB.po b/src/translations/en_GB.po index 85cce1b34..ce87dd1c7 100644 --- a/src/translations/en_GB.po +++ b/src/translations/en_GB.po @@ -1133,9 +1133,6 @@ msgstr "Last.fm password" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1151,11 +1148,6 @@ msgstr "Leave blank for the default. Examples: \"/dev/dsp\", \"front\", etc." msgid "Length" msgstr "Length" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "Library" diff --git a/src/translations/eo.po b/src/translations/eo.po index b473b3d03..abfc6ed71 100644 --- a/src/translations/eo.po +++ b/src/translations/eo.po @@ -1131,9 +1131,6 @@ msgstr "" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1149,11 +1146,6 @@ msgstr "" msgid "Length" msgstr "" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "" diff --git a/src/translations/es.po b/src/translations/es.po index b898d8445..16c0c1178 100644 --- a/src/translations/es.po +++ b/src/translations/es.po @@ -1169,9 +1169,6 @@ msgstr "Contraseña" msgid "Last.fm play counts" msgstr "Recuento de reproducciones de Last.fm" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "Etiquetas de Last.fm" @@ -1189,11 +1186,6 @@ msgstr "" msgid "Length" msgstr "Duración" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "Colección" diff --git a/src/translations/et.po b/src/translations/et.po index 5f23a341d..5ac9960d8 100644 --- a/src/translations/et.po +++ b/src/translations/et.po @@ -1133,9 +1133,6 @@ msgstr "" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "Last.fm sildipilv" @@ -1151,11 +1148,6 @@ msgstr "" msgid "Length" msgstr "Kestvus" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "Helikogu" diff --git a/src/translations/fi.po b/src/translations/fi.po index 9aae81ed6..321e19ef8 100644 --- a/src/translations/fi.po +++ b/src/translations/fi.po @@ -1133,9 +1133,6 @@ msgstr "Last.fm-salasana" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1151,11 +1148,6 @@ msgstr "" msgid "Length" msgstr "Kesto" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "Kirjasto" diff --git a/src/translations/fr.po b/src/translations/fr.po index 029e1664d..78f1b214e 100644 --- a/src/translations/fr.po +++ b/src/translations/fr.po @@ -1168,9 +1168,6 @@ msgstr "Mot de passe" msgid "Last.fm play counts" msgstr "Nombre d'écoutes Last.fm" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "Tags Last.fm" @@ -1188,11 +1185,6 @@ msgstr "" msgid "Length" msgstr "Durée" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "Bibliothèque" diff --git a/src/translations/gl.po b/src/translations/gl.po index 1688eb7da..d29f877b5 100644 --- a/src/translations/gl.po +++ b/src/translations/gl.po @@ -1138,9 +1138,6 @@ msgstr "" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1156,11 +1153,6 @@ msgstr "" msgid "Length" msgstr "Durazón" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "" diff --git a/src/translations/hu.po b/src/translations/hu.po index 02c716759..acebd352c 100644 --- a/src/translations/hu.po +++ b/src/translations/hu.po @@ -1163,9 +1163,6 @@ msgstr "Last.fm jelszó" msgid "Last.fm play counts" msgstr "Last.fm lejátszás számláló" -msgid "Last.fm similar artists" -msgstr "Last.fm hasonló előadók" - msgid "Last.fm tags" msgstr "Last.fm címkék" @@ -1182,13 +1179,6 @@ msgstr "" msgid "Length" msgstr "Időtartam" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" -"Last.fm ajánlások használata számok kiválasztásához a zenetáradból a " -"feltételeidnek megfelelően." - msgid "Library" msgstr "Zenetár" @@ -2396,6 +2386,16 @@ msgstr "leállítás" msgid "track %1" msgstr "%1. szám" +#~ msgid "Last.fm similar artists" +#~ msgstr "Last.fm hasonló előadók" + +#~ msgid "" +#~ "Let Last.fm suggest songs from your library that are similar to one you " +#~ "specify." +#~ msgstr "" +#~ "Last.fm ajánlások használata számok kiválasztásához a zenetáradból a " +#~ "feltételeidnek megfelelően." + #~ msgid "Playlists" #~ msgstr "Lejátszási listák" diff --git a/src/translations/it.po b/src/translations/it.po index d83ca1e0e..1ce2e9c52 100644 --- a/src/translations/it.po +++ b/src/translations/it.po @@ -1170,9 +1170,6 @@ msgstr "Password Last.fm" msgid "Last.fm play counts" msgstr "Contatore riproduzioni di Last.fm" -msgid "Last.fm similar artists" -msgstr "Artisti simili di Last.fm" - msgid "Last.fm tags" msgstr "Etichette di Last.fm" @@ -1190,13 +1187,6 @@ msgstr "" msgid "Length" msgstr "Durata" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" -"Lascia che Last.fm suggerisca brani della raccolta che sono simili a quello " -"specificato." - msgid "Library" msgstr "Raccolta" @@ -2411,6 +2401,16 @@ msgstr "ferma" msgid "track %1" msgstr "traccia %1" +#~ msgid "Last.fm similar artists" +#~ msgstr "Artisti simili di Last.fm" + +#~ msgid "" +#~ "Let Last.fm suggest songs from your library that are similar to one you " +#~ "specify." +#~ msgstr "" +#~ "Lascia che Last.fm suggerisca brani della raccolta che sono simili a " +#~ "quello specificato." + #~ msgid "Playlists" #~ msgstr "Scalette" diff --git a/src/translations/ja.po b/src/translations/ja.po index ba3c564e5..453f37ad2 100644 --- a/src/translations/ja.po +++ b/src/translations/ja.po @@ -1156,9 +1156,6 @@ msgstr "Last.fm のパスワード" msgid "Last.fm play counts" msgstr "Last.fm の再生回数" -msgid "Last.fm similar artists" -msgstr "Last.fm のテイストの似たアーティスト" - msgid "Last.fm tags" msgstr "Last.fm タグ" @@ -1174,11 +1171,6 @@ msgstr "既定にするには空のままにします。例: \"/dev/dsp\"、\"fr msgid "Length" msgstr "長さ" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "ライブラリの指定する曲にテイストの似た曲を Last.fm から検索します。" - msgid "Library" msgstr "ライブラリ" @@ -2380,6 +2372,14 @@ msgstr "停止" msgid "track %1" msgstr "トラック %1" +#~ msgid "Last.fm similar artists" +#~ msgstr "Last.fm のテイストの似たアーティスト" + +#~ msgid "" +#~ "Let Last.fm suggest songs from your library that are similar to one you " +#~ "specify." +#~ msgstr "ライブラリの指定する曲にテイストの似た曲を Last.fm から検索します。" + #~ msgid "Playlists" #~ msgstr "プレイリスト" diff --git a/src/translations/kk.po b/src/translations/kk.po index 9514848f7..531d89596 100644 --- a/src/translations/kk.po +++ b/src/translations/kk.po @@ -1133,9 +1133,6 @@ msgstr "" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1151,11 +1148,6 @@ msgstr "" msgid "Length" msgstr "Ұзындығы" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "" diff --git a/src/translations/lt.po b/src/translations/lt.po index 7d2495959..8be0b7581 100644 --- a/src/translations/lt.po +++ b/src/translations/lt.po @@ -1132,9 +1132,6 @@ msgstr "" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1150,11 +1147,6 @@ msgstr "" msgid "Length" msgstr "" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "" diff --git a/src/translations/nb.po b/src/translations/nb.po index b7513d4f0..87b6dbf18 100644 --- a/src/translations/nb.po +++ b/src/translations/nb.po @@ -1146,9 +1146,6 @@ msgstr "Last.fm passord" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1164,11 +1161,6 @@ msgstr "" msgid "Length" msgstr "Lengde" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "Bibliotek" diff --git a/src/translations/nl.po b/src/translations/nl.po index a0012a25b..9294586a0 100644 --- a/src/translations/nl.po +++ b/src/translations/nl.po @@ -1160,9 +1160,6 @@ msgstr "Last.fm wachtwoord" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1179,11 +1176,6 @@ msgstr "" msgid "Length" msgstr "Duur" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "Bibliotheek" diff --git a/src/translations/oc.po b/src/translations/oc.po index 19f7d9e88..837037199 100644 --- a/src/translations/oc.po +++ b/src/translations/oc.po @@ -1131,9 +1131,6 @@ msgstr "" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1149,11 +1146,6 @@ msgstr "" msgid "Length" msgstr "Longor" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "Bibliotèca" diff --git a/src/translations/pl.po b/src/translations/pl.po index 40869631b..82c647892 100644 --- a/src/translations/pl.po +++ b/src/translations/pl.po @@ -1157,9 +1157,6 @@ msgstr "Hasło Last.fm" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1177,11 +1174,6 @@ msgstr "" msgid "Length" msgstr "Długość" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "Biblioteka" diff --git a/src/translations/pt.po b/src/translations/pt.po index 055adc3dd..9b8b9f67d 100644 --- a/src/translations/pt.po +++ b/src/translations/pt.po @@ -1166,9 +1166,6 @@ msgstr "Senha Last.fm" msgid "Last.fm play counts" msgstr "Reprodções Last.fm" -msgid "Last.fm similar artists" -msgstr "Artistas semelhantes na Last.fm" - msgid "Last.fm tags" msgstr "\\\"Tags\\\" Last.fm" @@ -1186,13 +1183,6 @@ msgstr "" msgid "Length" msgstr "Duração" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" -"Deixar que a Last.fm sugira as músicas da sua biblioteca que sejam " -"semelhantes às que especificou." - msgid "Library" msgstr "Biblioteca" @@ -2402,6 +2392,16 @@ msgstr "parar" msgid "track %1" msgstr "faixa %1" +#~ msgid "Last.fm similar artists" +#~ msgstr "Artistas semelhantes na Last.fm" + +#~ msgid "" +#~ "Let Last.fm suggest songs from your library that are similar to one you " +#~ "specify." +#~ msgstr "" +#~ "Deixar que a Last.fm sugira as músicas da sua biblioteca que sejam " +#~ "semelhantes às que especificou." + #~ msgid "Playlists" #~ msgstr "Listas de reprodução" diff --git a/src/translations/pt_BR.po b/src/translations/pt_BR.po index 4ef5fb65d..057079102 100644 --- a/src/translations/pt_BR.po +++ b/src/translations/pt_BR.po @@ -1148,9 +1148,6 @@ msgstr "Senha do Last.fm" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1166,11 +1163,6 @@ msgstr "Deixe em brando por padrão. Exemplos: \"/dev/dsp\", \"front\", etc." msgid "Length" msgstr "Duração" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "Biblioteca" diff --git a/src/translations/ro.po b/src/translations/ro.po index 079d4c433..19db65d8f 100644 --- a/src/translations/ro.po +++ b/src/translations/ro.po @@ -1132,9 +1132,6 @@ msgstr "" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1150,11 +1147,6 @@ msgstr "" msgid "Length" msgstr "Durată" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "Bibliotecă" diff --git a/src/translations/ru.po b/src/translations/ru.po index 46a9431ef..d111a99ac 100644 --- a/src/translations/ru.po +++ b/src/translations/ru.po @@ -1153,9 +1153,6 @@ msgstr "Пароль Last.fm" msgid "Last.fm play counts" msgstr "Количество прослушиваний на Last.fm" -msgid "Last.fm similar artists" -msgstr "Похожие исполнители на Last.fm" - msgid "Last.fm tags" msgstr "Last.fm теги" @@ -1172,11 +1169,6 @@ msgstr "" msgid "Length" msgstr "Длительность" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "Коллекция" @@ -2383,6 +2375,9 @@ msgstr "Остановить" msgid "track %1" msgstr "композиция %1" +#~ msgid "Last.fm similar artists" +#~ msgstr "Похожие исполнители на Last.fm" + #~ msgid "Playlists" #~ msgstr "Плейлисты" diff --git a/src/translations/sk.po b/src/translations/sk.po index 9b9fee7b9..782f5e641 100644 --- a/src/translations/sk.po +++ b/src/translations/sk.po @@ -1157,9 +1157,6 @@ msgstr "Last.fm heslo" msgid "Last.fm play counts" msgstr "Last.fm počet prehraní" -msgid "Last.fm similar artists" -msgstr "Last.fm podobný interpréti" - msgid "Last.fm tags" msgstr "Last.fm tagy" @@ -1175,13 +1172,6 @@ msgstr "Nechať pôvodne - prázdne. Príklady: \"/dev/dsp\", \"front\", atď." msgid "Length" msgstr "Dĺžka" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" -"Nechať Last.fm napovedať piesne z vašej zbierky ktoré sú podobné ako tá, čo " -"ste vybrali." - msgid "Library" msgstr "Zbierka" @@ -2387,6 +2377,16 @@ msgstr "zastaviť" msgid "track %1" msgstr "skladba %1" +#~ msgid "Last.fm similar artists" +#~ msgstr "Last.fm podobný interpréti" + +#~ msgid "" +#~ "Let Last.fm suggest songs from your library that are similar to one you " +#~ "specify." +#~ msgstr "" +#~ "Nechať Last.fm napovedať piesne z vašej zbierky ktoré sú podobné ako tá, " +#~ "čo ste vybrali." + #~ msgid "Playlists" #~ msgstr "Playlisty" diff --git a/src/translations/sl.po b/src/translations/sl.po index 0f26297e8..f808cc141 100644 --- a/src/translations/sl.po +++ b/src/translations/sl.po @@ -1159,9 +1159,6 @@ msgstr "Geslo Last.fm" msgid "Last.fm play counts" msgstr "Število predvajanj last.fm" -msgid "Last.fm similar artists" -msgstr "Last.fm podobni izvajalci" - msgid "Last.fm tags" msgstr "Last.fm oznake" @@ -1177,13 +1174,6 @@ msgstr "Pustite prazno za privzeto. Primeri: \"/dev/dsp\", \"front\", itd." msgid "Length" msgstr "Dolžina" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" -"Dovoli, da Last.fm predlaga skladbe iz vaše knjižnice, ki so podobne tisti, " -"ki ste jo določili." - msgid "Library" msgstr "Knjižnica" @@ -2389,6 +2379,16 @@ msgstr "zaustavi" msgid "track %1" msgstr "skladba %1" +#~ msgid "Last.fm similar artists" +#~ msgstr "Last.fm podobni izvajalci" + +#~ msgid "" +#~ "Let Last.fm suggest songs from your library that are similar to one you " +#~ "specify." +#~ msgstr "" +#~ "Dovoli, da Last.fm predlaga skladbe iz vaše knjižnice, ki so podobne " +#~ "tisti, ki ste jo določili." + #~ msgid "Playlists" #~ msgstr "Seznami predvajanja" diff --git a/src/translations/sr.po b/src/translations/sr.po index f0a54e288..62b0d9965 100644 --- a/src/translations/sr.po +++ b/src/translations/sr.po @@ -1137,9 +1137,6 @@ msgstr "ЛастФМ лозинка" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1155,11 +1152,6 @@ msgstr "" msgid "Length" msgstr "Трајање" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "Библиотека" diff --git a/src/translations/sv.po b/src/translations/sv.po index d7a4c8589..2b514e18e 100644 --- a/src/translations/sv.po +++ b/src/translations/sv.po @@ -1158,9 +1158,6 @@ msgstr "Last.fm-lösenord" msgid "Last.fm play counts" msgstr "Last.fm-låtstatistik" -msgid "Last.fm similar artists" -msgstr "Liknande Last.fm-artister" - msgid "Last.fm tags" msgstr "Last.fm-taggar" @@ -1176,11 +1173,6 @@ msgstr "Lämna tomt för standardvärdet. Exempel: \"/dev/dsp\", \"front\", etc. msgid "Length" msgstr "Speltid" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "Låt Last.fm föreslå låtar från ditt bibliotek som liknar den du anger." - msgid "Library" msgstr "Bibliotek" @@ -2384,6 +2376,15 @@ msgstr "stoppa" msgid "track %1" msgstr "spår %1" +#~ msgid "Last.fm similar artists" +#~ msgstr "Liknande Last.fm-artister" + +#~ msgid "" +#~ "Let Last.fm suggest songs from your library that are similar to one you " +#~ "specify." +#~ msgstr "" +#~ "Låt Last.fm föreslå låtar från ditt bibliotek som liknar den du anger." + #~ msgid "Playlists" #~ msgstr "Spellistor" diff --git a/src/translations/tr.po b/src/translations/tr.po index 2e5faa484..e203f5dc1 100644 --- a/src/translations/tr.po +++ b/src/translations/tr.po @@ -1154,9 +1154,6 @@ msgstr "Last.fm parolası" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "Last.fm benzer sanatçılar" - msgid "Last.fm tags" msgstr "Last.fm etiketleri" @@ -1174,11 +1171,6 @@ msgstr "" msgid "Length" msgstr "Süre" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "Kütüphane" @@ -2376,6 +2368,9 @@ msgstr "durdur" msgid "track %1" msgstr "parça %1" +#~ msgid "Last.fm similar artists" +#~ msgstr "Last.fm benzer sanatçılar" + #~ msgid "Playlists" #~ msgstr "Çalma Listeleri" diff --git a/src/translations/translations.pot b/src/translations/translations.pot index 7325ba957..50a285a9b 100644 --- a/src/translations/translations.pot +++ b/src/translations/translations.pot @@ -1122,9 +1122,6 @@ msgstr "" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1140,11 +1137,6 @@ msgstr "" msgid "Length" msgstr "" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "" diff --git a/src/translations/uk.po b/src/translations/uk.po index 86027a0d1..3a7be6665 100644 --- a/src/translations/uk.po +++ b/src/translations/uk.po @@ -1158,9 +1158,6 @@ msgstr "Пароль Last.fm" msgid "Last.fm play counts" msgstr "Кількість відтворень на Last.fm" -msgid "Last.fm similar artists" -msgstr "Подібні виконавці на Last.fm" - msgid "Last.fm tags" msgstr "Позначки Last.fm" @@ -1176,13 +1173,6 @@ msgstr "Типово, залишити порожнім. Наприклад: \" msgid "Length" msgstr "Тривалість" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" -"Дозволити Last.fm пропонувати композиції з вашої фонотеки подібні до " -"вказаних вами." - msgid "Library" msgstr "Фонотека" @@ -2383,6 +2373,16 @@ msgstr "зупинити" msgid "track %1" msgstr "доріжка %1" +#~ msgid "Last.fm similar artists" +#~ msgstr "Подібні виконавці на Last.fm" + +#~ msgid "" +#~ "Let Last.fm suggest songs from your library that are similar to one you " +#~ "specify." +#~ msgstr "" +#~ "Дозволити Last.fm пропонувати композиції з вашої фонотеки подібні до " +#~ "вказаних вами." + #~ msgid "Playlists" #~ msgstr "Списки відтворення" diff --git a/src/translations/zh_CN.po b/src/translations/zh_CN.po index ab480b739..45fe21687 100644 --- a/src/translations/zh_CN.po +++ b/src/translations/zh_CN.po @@ -1133,9 +1133,6 @@ msgstr "Last.fm 密码" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1151,11 +1148,6 @@ msgstr "" msgid "Length" msgstr "长度" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "" diff --git a/src/translations/zh_TW.po b/src/translations/zh_TW.po index 5743b8952..e57f84bcb 100644 --- a/src/translations/zh_TW.po +++ b/src/translations/zh_TW.po @@ -1137,9 +1137,6 @@ msgstr "" msgid "Last.fm play counts" msgstr "" -msgid "Last.fm similar artists" -msgstr "" - msgid "Last.fm tags" msgstr "" @@ -1155,11 +1152,6 @@ msgstr "" msgid "Length" msgstr "長度" -msgid "" -"Let Last.fm suggest songs from your library that are similar to one you " -"specify." -msgstr "" - msgid "Library" msgstr "音樂庫"