From 8aedda1795f5d3e1f918c68f8e72eff84443f15e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Bara?= Date: Wed, 2 Feb 2011 16:22:04 +0000 Subject: [PATCH] moving the 'Save cover to file' action into AlbumCoverChoiceController; implementing the action in all related places (now playing widget, album cover manager, edit tag dialog) now playing widget: disable all cover related context menu options (except for the 'save cover' one) when in 'Kittens' mode --- src/library/libraryfilterwidget.cpp | 12 +---- src/library/libraryfilterwidget.h | 5 ++- src/translations/ar.po | 5 +-- src/translations/be.po | 5 +-- src/translations/bg.po | 14 +++--- src/translations/br.po | 5 +-- src/translations/ca.po | 13 ++++-- src/translations/cs.po | 13 ++++-- src/translations/cy.po | 5 +-- src/translations/da.po | 14 +++--- src/translations/de.po | 13 ++++-- src/translations/el.po | 13 ++++-- src/translations/en.po | 5 +-- src/translations/en_CA.po | 13 ++++-- src/translations/en_GB.po | 13 ++++-- src/translations/eo.po | 5 +-- src/translations/es.po | 14 +++--- src/translations/et.po | 13 ++++-- src/translations/eu.po | 5 +-- src/translations/fi.po | 13 ++++-- src/translations/fr.po | 13 ++++-- src/translations/gl.po | 13 ++++-- src/translations/he.po | 13 ++++-- src/translations/hi.po | 5 +-- src/translations/hr.po | 13 ++++-- src/translations/hu.po | 13 ++++-- src/translations/it.po | 14 +++--- src/translations/ja.po | 14 +++--- src/translations/kk.po | 14 +++--- src/translations/lt.po | 14 +++--- src/translations/lv.po | 5 +-- src/translations/nb.po | 14 +++--- src/translations/nl.po | 14 +++--- src/translations/oc.po | 5 +-- src/translations/pl.po | 13 ++++-- src/translations/pt.po | 13 ++++-- src/translations/pt_BR.po | 13 ++++-- src/translations/ro.po | 13 ++++-- src/translations/ru.po | 14 +++--- src/translations/sk.po | 13 ++++-- src/translations/sl.po | 13 ++++-- src/translations/sr.po | 13 ++++-- src/translations/sv.po | 13 ++++-- src/translations/tr.po | 14 +++--- src/translations/translations.pot | 5 +-- src/translations/uk.po | 14 +++--- src/translations/zh_CN.po | 13 ++++-- src/translations/zh_TW.po | 12 +++-- src/ui/albumcoverchoicecontroller.cpp | 63 ++++++++++++++++++++------ src/ui/albumcoverchoicecontroller.h | 16 ++++--- src/ui/albumcovermanager.cpp | 25 +++++++++++ src/ui/albumcovermanager.h | 1 + src/ui/edittagdialog.cpp | 19 ++++++-- src/ui/edittagdialog.h | 6 ++- src/ui/mainwindow.cpp | 5 ++- src/widgets/nowplayingwidget.cpp | 65 +++++++++++---------------- src/widgets/nowplayingwidget.h | 5 +-- 57 files changed, 480 insertions(+), 263 deletions(-) diff --git a/src/library/libraryfilterwidget.cpp b/src/library/libraryfilterwidget.cpp index b9cde5017..9f7c38814 100644 --- a/src/library/libraryfilterwidget.cpp +++ b/src/library/libraryfilterwidget.cpp @@ -194,7 +194,8 @@ void LibraryFilterWidget::SetFilterHint(const QString& hint) { void LibraryFilterWidget::SetDuplicatesOnly(bool duplicates_only) { // no filtering in duplicates_only mode - static_cast(ui_->filter)->clear(); + filter_->clear(); + // TODO: won't work on Mac ui_->filter->setEnabled(!duplicates_only); model_->SetFilterDuplicatesOnly(duplicates_only); @@ -212,15 +213,6 @@ void LibraryFilterWidget::AddMenuAction(QAction* action) { library_menu_->addAction(action); } -void LibraryFilterWidget::AddSeparator() { - library_menu_->addSeparator(); -} - -void LibraryFilterWidget::AppendAndFocus(const QString& text) { - ui_->filter->setText(ui_->filter->text() + text); - ui_->filter->setFocus(); -} - void LibraryFilterWidget::keyReleaseEvent(QKeyEvent* e) { switch (e->key()) { case Qt::Key_Up: diff --git a/src/library/libraryfilterwidget.h b/src/library/libraryfilterwidget.h index 53cc699c7..465e718db 100644 --- a/src/library/libraryfilterwidget.h +++ b/src/library/libraryfilterwidget.h @@ -47,13 +47,11 @@ class LibraryFilterWidget : public QWidget { void SetGroupByEnabled(bool enabled); void AddMenuAction(QAction* action); - void AddSeparator(); void SetSettingsGroup(const QString& group) { settings_group_ = group; } void SetLibraryModel(LibraryModel* model); public slots: - void AppendAndFocus(const QString& text); void SetDuplicatesOnly(bool duplicates_only); signals: @@ -88,6 +86,9 @@ class LibraryFilterWidget : public QWidget { QString settings_group_; + // Since on Mac ui_->filter is nonexistent and on other platforms + // filter_ == ui_->filter, make sure to always use this field and + // not the one in the ui_ object! LineEditInterface* filter_; }; diff --git a/src/translations/ar.po b/src/translations/ar.po index 415940efa..566e07876 100644 --- a/src/translations/ar.po +++ b/src/translations/ar.po @@ -1157,11 +1157,10 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" msgid "" diff --git a/src/translations/be.po b/src/translations/be.po index cac66b87f..b60d83242 100644 --- a/src/translations/be.po +++ b/src/translations/be.po @@ -1171,11 +1171,10 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" msgid "" diff --git a/src/translations/bg.po b/src/translations/bg.po index 40c0b2b82..0f345a147 100644 --- a/src/translations/bg.po +++ b/src/translations/bg.po @@ -1184,14 +1184,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "Игнориране на \"The\" в имена на изпълнители" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Изображения (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." -"tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2772,6 +2769,13 @@ msgstr "Стоп" msgid "track %1" msgstr "песен %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Изображения (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm " +#~ "*.tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Двойно щракване върху песен първо изчиства плейлистата" diff --git a/src/translations/br.po b/src/translations/br.po index efa62d613..0898ba6fa 100644 --- a/src/translations/br.po +++ b/src/translations/br.po @@ -1158,11 +1158,10 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" msgid "" diff --git a/src/translations/ca.po b/src/translations/ca.po index c988ee29f..90fdfaf7f 100644 --- a/src/translations/ca.po +++ b/src/translations/ca.po @@ -1190,13 +1190,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "Ignora \"The\" als noms d'artistes" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Imatges (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2757,6 +2755,13 @@ msgstr "atura" msgid "track %1" msgstr "peça %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Imatges (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Fer doble click sobre una canço netejara la llista de reproducció" diff --git a/src/translations/cs.po b/src/translations/cs.po index 9ab5006a4..aaf5c8983 100644 --- a/src/translations/cs.po +++ b/src/translations/cs.po @@ -1189,13 +1189,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "Nevšímat si 'The' ve jménech umělců" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Obrázky (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2771,6 +2769,13 @@ msgstr "Zastavit" msgid "track %1" msgstr "Skladba %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Obrázky (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Dvojité klepnutí na písničku nejprve vymaže seznam se skladbami" diff --git a/src/translations/cy.po b/src/translations/cy.po index edacc1c14..9448249b8 100644 --- a/src/translations/cy.po +++ b/src/translations/cy.po @@ -1157,11 +1157,10 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" msgid "" diff --git a/src/translations/da.po b/src/translations/da.po index 7f314ed66..edf54d799 100644 --- a/src/translations/da.po +++ b/src/translations/da.po @@ -1160,14 +1160,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Billeder (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." -"tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2710,6 +2707,13 @@ msgstr "" msgid "track %1" msgstr "spor %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Billeder (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Last.fm Recommended Radio - %1" #~ msgstr "Last.fm anbefaletradio - %1" diff --git a/src/translations/de.po b/src/translations/de.po index b3f2b9084..b75c82530 100644 --- a/src/translations/de.po +++ b/src/translations/de.po @@ -1191,13 +1191,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "Ignoriere \"The\" in Künstlernamen" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Bilder (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2778,6 +2776,13 @@ msgstr "Anhalten" msgid "track %1" msgstr "Stück %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Bilder (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Stück doppelklicken um Wiedergabeliste zu ersetzen" diff --git a/src/translations/el.po b/src/translations/el.po index 826d824a2..7c5d9038d 100644 --- a/src/translations/el.po +++ b/src/translations/el.po @@ -1197,13 +1197,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "Αγνόηση του \"The\" στο όνομα των καλλιτεχνών" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Εικόνες (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2789,6 +2787,13 @@ msgstr "διακοπή" msgid "track %1" msgstr "κομμάτι %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Εικόνες (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "" #~ "Διπλό κλικ σε ένα τραγούδι θα καθαρίσει πρώτα την λίστα αναπαραγωγής" diff --git a/src/translations/en.po b/src/translations/en.po index f5afcd248..aad8c7e46 100644 --- a/src/translations/en.po +++ b/src/translations/en.po @@ -1157,11 +1157,10 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" msgid "" diff --git a/src/translations/en_CA.po b/src/translations/en_CA.po index d86f53e7d..25158f7bc 100644 --- a/src/translations/en_CA.po +++ b/src/translations/en_CA.po @@ -1160,13 +1160,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2708,6 +2706,13 @@ msgstr "" msgid "track %1" msgstr "track %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Double-clicking a song clears the playlist first" diff --git a/src/translations/en_GB.po b/src/translations/en_GB.po index 442d79258..975e038fc 100644 --- a/src/translations/en_GB.po +++ b/src/translations/en_GB.po @@ -1158,13 +1158,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2705,6 +2703,13 @@ msgstr "" msgid "track %1" msgstr "track %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Hide..." #~ msgstr "Hide..." diff --git a/src/translations/eo.po b/src/translations/eo.po index 185628d97..01f6615cf 100644 --- a/src/translations/eo.po +++ b/src/translations/eo.po @@ -1157,11 +1157,10 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" msgid "" diff --git a/src/translations/es.po b/src/translations/es.po index dacc3a323..091ce1a4c 100644 --- a/src/translations/es.po +++ b/src/translations/es.po @@ -1197,14 +1197,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "Ignorar el \"The\" en los nombres de los artistas" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Imágenes (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." -"tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2784,6 +2781,13 @@ msgstr "detener" msgid "track %1" msgstr "Pista %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Imágenes (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "" #~ "Hacer doble clic sobre una canción primero limpia la lista de reproducción" diff --git a/src/translations/et.po b/src/translations/et.po index 8eb6067be..8a1f0b59e 100644 --- a/src/translations/et.po +++ b/src/translations/et.po @@ -1158,13 +1158,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Pildid (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2705,6 +2703,13 @@ msgstr "peata" msgid "track %1" msgstr "" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Pildid (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Hide %1" #~ msgstr "Peida %1" diff --git a/src/translations/eu.po b/src/translations/eu.po index 032d09082..914fd03c2 100644 --- a/src/translations/eu.po +++ b/src/translations/eu.po @@ -1157,11 +1157,10 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" msgid "" diff --git a/src/translations/fi.po b/src/translations/fi.po index 4406ad799..de5d01903 100644 --- a/src/translations/fi.po +++ b/src/translations/fi.po @@ -1157,13 +1157,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Kuvat (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2705,6 +2703,13 @@ msgstr "" msgid "track %1" msgstr "" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Kuvat (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Hide %1" #~ msgstr "Piilota %1" diff --git a/src/translations/fr.po b/src/translations/fr.po index 25a881af6..e5261c7ba 100644 --- a/src/translations/fr.po +++ b/src/translations/fr.po @@ -1201,13 +1201,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "Ignorer « The » dans les noms d'artiste" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2795,6 +2793,13 @@ msgstr "stop" msgid "track %1" msgstr "piste %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Un double clic sur un morceau efface d'abord la liste de lecture" diff --git a/src/translations/gl.po b/src/translations/gl.po index 3858a94a6..fbafe0b19 100644 --- a/src/translations/gl.po +++ b/src/translations/gl.po @@ -1165,13 +1165,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Imaxes (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2713,6 +2711,13 @@ msgstr "" msgid "track %1" msgstr "faixa %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Imaxes (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Hide %1" #~ msgstr "Esconder %1" diff --git a/src/translations/he.po b/src/translations/he.po index a97968547..588032e8f 100644 --- a/src/translations/he.po +++ b/src/translations/he.po @@ -1174,13 +1174,11 @@ msgstr "אם תמשיך, ההתקן יעבוד לאט וייתכן ששירים msgid "Ignore \"The\" in artist names" msgstr "התעלם מה-\"The\" בשם האמן" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"תמונות (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2741,6 +2739,13 @@ msgstr "הפסקה" msgid "track %1" msgstr "רצועה %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "תמונות (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "לחיצה כפולה על שיר מנקה קודם כל את רשימת ההשמעה" diff --git a/src/translations/hi.po b/src/translations/hi.po index 5b880272b..1cc292052 100644 --- a/src/translations/hi.po +++ b/src/translations/hi.po @@ -1157,11 +1157,10 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" msgid "" diff --git a/src/translations/hr.po b/src/translations/hr.po index 6e54d44ad..4bc1f9395 100644 --- a/src/translations/hr.po +++ b/src/translations/hr.po @@ -1184,13 +1184,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "Ignoriraj \"The\" u nazivu izvođača" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Slike (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2762,6 +2760,13 @@ msgstr "" msgid "track %1" msgstr "pjesma %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Slike (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Ako prvo dvaput kliknete na pjesmu popis izvođenja će se isprazniti" diff --git a/src/translations/hu.po b/src/translations/hu.po index 0a2b5bc09..4a78e8885 100644 --- a/src/translations/hu.po +++ b/src/translations/hu.po @@ -1187,13 +1187,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "A \"The\" mellőzése előadó nevekben" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Képek (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2769,6 +2767,13 @@ msgstr "leállítás" msgid "track %1" msgstr "%1. szám" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Képek (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Dupla kattintás egy számon előbb törli a lejátszási listát" diff --git a/src/translations/it.po b/src/translations/it.po index cc4e37eef..9015ec838 100644 --- a/src/translations/it.po +++ b/src/translations/it.po @@ -1193,14 +1193,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "Ignora \"The\" nei nomi degli artisti" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Immagini (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." -"tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2784,6 +2781,13 @@ msgstr "ferma" msgid "track %1" msgstr "traccia %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Immagini (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Il doppio clic su un brano svuota la scaletta" diff --git a/src/translations/ja.po b/src/translations/ja.po index 29e4ba12f..b744615ce 100644 --- a/src/translations/ja.po +++ b/src/translations/ja.po @@ -1180,14 +1180,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "アーティスト名の \"The\" を無視する" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"イメージ (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." -"tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2756,6 +2753,13 @@ msgstr "停止" msgid "track %1" msgstr "トラック %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "イメージ (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "曲のダブルクリックで最初にプレイリストをクリアする" diff --git a/src/translations/kk.po b/src/translations/kk.po index 195861389..9cf775776 100644 --- a/src/translations/kk.po +++ b/src/translations/kk.po @@ -1157,14 +1157,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Суреттер (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." -"tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2705,6 +2702,13 @@ msgstr "" msgid "track %1" msgstr "" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Суреттер (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Hide %1" #~ msgstr "%1 жасыру" diff --git a/src/translations/lt.po b/src/translations/lt.po index a6d31b04e..f442397cb 100644 --- a/src/translations/lt.po +++ b/src/translations/lt.po @@ -1183,14 +1183,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "Nepaisyti \"The\" atlikėjų varduose" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Paveikslai (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." -"tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2759,6 +2756,13 @@ msgstr "stabdyti" msgid "track %1" msgstr "takelis %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Paveikslai (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm " +#~ "*.tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Išvalyti grojaraštį du kartus spragtelėjus ant dainos" diff --git a/src/translations/lv.po b/src/translations/lv.po index ea07638b2..377266ae6 100644 --- a/src/translations/lv.po +++ b/src/translations/lv.po @@ -1157,11 +1157,10 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" msgid "" diff --git a/src/translations/nb.po b/src/translations/nb.po index f2fd39841..2209a5618 100644 --- a/src/translations/nb.po +++ b/src/translations/nb.po @@ -1169,14 +1169,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Bildefiler (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." -"tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2718,6 +2715,13 @@ msgstr "stopp" msgid "track %1" msgstr "spor %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Bildefiler (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm " +#~ "*.tiff)" + #~ msgid "Hide %1" #~ msgstr "Skjul %1" diff --git a/src/translations/nl.po b/src/translations/nl.po index db97fe8aa..6f079f375 100644 --- a/src/translations/nl.po +++ b/src/translations/nl.po @@ -1188,14 +1188,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "\"The\" in artiestennamen negeren" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Afbeeldingen (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." -"tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2771,6 +2768,13 @@ msgstr "stoppen" msgid "track %1" msgstr "track %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Afbeeldingen (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *." +#~ "xbm *.tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Dubbelklikken op een nummer maakt eerst de afspeellijst leeg" diff --git a/src/translations/oc.po b/src/translations/oc.po index 2a8344eb5..655e869ea 100644 --- a/src/translations/oc.po +++ b/src/translations/oc.po @@ -1157,11 +1157,10 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" msgid "" diff --git a/src/translations/pl.po b/src/translations/pl.po index 98a64cb16..398c42d93 100644 --- a/src/translations/pl.po +++ b/src/translations/pl.po @@ -1186,13 +1186,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "Ignoruj \"The\" w nazwach artystów" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Obrazy (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2768,6 +2766,13 @@ msgstr "zatrzymaj" msgid "track %1" msgstr "utwór %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Obrazy (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Podwójne kliknięcie na utworze najpierw czyści listę odtwarzania" diff --git a/src/translations/pt.po b/src/translations/pt.po index 83c7ff348..f0df4e276 100644 --- a/src/translations/pt.po +++ b/src/translations/pt.po @@ -1189,13 +1189,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "Ignorar \"The\" no nome dos artistas" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Imagens (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2777,6 +2775,13 @@ msgstr "parar" msgid "track %1" msgstr "música %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Imagens (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Duplo clique na música limpa a lista de reprodução" diff --git a/src/translations/pt_BR.po b/src/translations/pt_BR.po index f9d99ec2d..c9191a7bb 100644 --- a/src/translations/pt_BR.po +++ b/src/translations/pt_BR.po @@ -1186,13 +1186,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "Ignorar o \"The\" em nomes de artistas" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Imagens (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2766,6 +2764,13 @@ msgstr "parar" msgid "track %1" msgstr "faixa %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Imagens (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Duplo clique em música limpa a lista de reprodução primeiro" diff --git a/src/translations/ro.po b/src/translations/ro.po index 9e5a68c1d..6b7cbd64d 100644 --- a/src/translations/ro.po +++ b/src/translations/ro.po @@ -1157,13 +1157,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Imagini (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2704,6 +2702,13 @@ msgstr "" msgid "track %1" msgstr "pistă %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Imagini (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Hide %1" #~ msgstr "Ascunde %1" diff --git a/src/translations/ru.po b/src/translations/ru.po index 1c3ed1981..2a46b5c6c 100644 --- a/src/translations/ru.po +++ b/src/translations/ru.po @@ -1182,14 +1182,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "Игнорировать \"The\" в имени исполнителя" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Изображения (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." -"tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2764,6 +2761,13 @@ msgstr "Остановить" msgid "track %1" msgstr "композиция %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Изображения (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *." +#~ "xbm *.tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Двойной щелчок мышью на композиции стирает список воспроизведения" diff --git a/src/translations/sk.po b/src/translations/sk.po index 5e918bfd4..9550567dd 100644 --- a/src/translations/sk.po +++ b/src/translations/sk.po @@ -1181,13 +1181,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "Ignorovať \"The\" v mene interpréta" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Obrázky (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2760,6 +2758,13 @@ msgstr "zastaviť" msgid "track %1" msgstr "skladba %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Obrázky (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Dvojklik na pieseň najprv vymaže playlist" diff --git a/src/translations/sl.po b/src/translations/sl.po index e3269dd52..328b73c7a 100644 --- a/src/translations/sl.po +++ b/src/translations/sl.po @@ -1183,13 +1183,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "Prezri \"The\" v imenih izvajalcev" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Slike (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2762,6 +2760,13 @@ msgstr "zaustavi" msgid "track %1" msgstr "skladba %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Slike (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Dvoklik na skladbo počisti predvajalni seznam" diff --git a/src/translations/sr.po b/src/translations/sr.po index fa8a9cad4..ba4a6e7b7 100644 --- a/src/translations/sr.po +++ b/src/translations/sr.po @@ -1160,13 +1160,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"IСлике (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2710,6 +2708,13 @@ msgstr "Заустави" msgid "track %1" msgstr "нумера %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "IСлике (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Двоструки клик на песму претходно ће очистити листу нумера" diff --git a/src/translations/sv.po b/src/translations/sv.po index d1873f75b..a56f30dea 100644 --- a/src/translations/sv.po +++ b/src/translations/sv.po @@ -1187,13 +1187,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "Ignorera \"The\" i artistnamn" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Bilder (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2760,6 +2758,13 @@ msgstr "stoppa" msgid "track %1" msgstr "spår %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Bilder (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Vid dubbelklick på en låt rensas först spellistan" diff --git a/src/translations/tr.po b/src/translations/tr.po index 67d830a86..611104984 100644 --- a/src/translations/tr.po +++ b/src/translations/tr.po @@ -1180,14 +1180,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "Sanatçı isimlerinde \"The\" kelimesini önemseme" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Görüntüler (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." -"tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2754,6 +2751,13 @@ msgstr "durdur" msgid "track %1" msgstr "parça %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Görüntüler (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm " +#~ "*.tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Bir şarkıya çift tıklamak önce çalma listesini temizler" diff --git a/src/translations/translations.pot b/src/translations/translations.pot index 48ff51cd5..368d266f5 100644 --- a/src/translations/translations.pot +++ b/src/translations/translations.pot @@ -1147,11 +1147,10 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" msgid "" diff --git a/src/translations/uk.po b/src/translations/uk.po index 683c2d3b9..f9fb1d54e 100644 --- a/src/translations/uk.po +++ b/src/translations/uk.po @@ -1181,14 +1181,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "Ігнорувати «The» в іменах виконавців" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"Зображення (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." -"tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2756,6 +2753,13 @@ msgstr "зупинити" msgid "track %1" msgstr "доріжка %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "Зображення (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm " +#~ "*.tiff)" + #~ msgid "Double-clicking a song clears the playlist first" #~ msgstr "Подвійнне клацання на композиції спочатку очищає список відтворення" diff --git a/src/translations/zh_CN.po b/src/translations/zh_CN.po index f8a382c07..1182de167 100644 --- a/src/translations/zh_CN.po +++ b/src/translations/zh_CN.po @@ -1159,13 +1159,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "忽略艺人名称中的“The”" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"图像文件(*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2706,6 +2704,13 @@ msgstr "停止" msgid "track %1" msgstr "" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "图像文件(*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" + #~ msgid "Complete automatically" #~ msgstr "自动完成" diff --git a/src/translations/zh_TW.po b/src/translations/zh_TW.po index 110bd4ad4..ac49cf3fe 100644 --- a/src/translations/zh_TW.po +++ b/src/translations/zh_TW.po @@ -1161,13 +1161,11 @@ msgstr "" msgid "Ignore \"The\" in artist names" msgstr "忽視在演唱者名字中的“The”" -msgid "Images (*.jpg)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)" msgstr "" -msgid "" -"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" +msgid "Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)" msgstr "" -"圖片 (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" msgid "" "In dynamic mode new tracks will be chosen and added to the playlist every " @@ -2710,6 +2708,12 @@ msgstr "" msgid "track %1" msgstr "歌曲 %1" +#~ msgid "" +#~ "Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +#~ "tiff)" +#~ msgstr "" +#~ "圖片 (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)" + #~ msgid "My Loved Tracks" #~ msgstr "我喜愛的歌曲" diff --git a/src/ui/albumcoverchoicecontroller.cpp b/src/ui/albumcoverchoicecontroller.cpp index 5b7f59aa1..7e76ed8cb 100644 --- a/src/ui/albumcoverchoicecontroller.cpp +++ b/src/ui/albumcoverchoicecontroller.cpp @@ -32,12 +32,15 @@ #include #include #include +#include #include #include #include -const char* AlbumCoverChoiceController::kImageFileFilter = - QT_TR_NOOP("Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)"); +const char* AlbumCoverChoiceController::kLoadImageFileFilter = + QT_TR_NOOP("Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm)"); +const char* AlbumCoverChoiceController::kSaveImageFileFilter = + QT_TR_NOOP("Images (*.png *.jpg *.jpeg *.bmp *.xpm *.pbm *.ppm *.xbm)"); const char* AlbumCoverChoiceController::kAllFilesFilter = QT_TR_NOOP("All files (*)"); @@ -47,20 +50,23 @@ AlbumCoverChoiceController::AlbumCoverChoiceController(QWidget* parent) cover_searcher_(new AlbumCoverSearcher(QIcon(":/nocover.png"), this)), cover_fetcher_(new AlbumCoverFetcher(this)), #endif + save_file_dialog_(NULL), cover_from_url_dialog_(NULL), - library_(NULL), - menu_(new QMenu(this)) + library_(NULL) { #ifdef HAVE_LIBLASTFM cover_searcher_->Init(cover_fetcher_); #endif - cover_from_file_ = menu_->addAction(IconLoader::Load("document-open"), tr("Load cover from disk...")); - cover_from_url_ = menu_->addAction(IconLoader::Load("download"), tr("Load cover from URL...")); - search_for_cover_ = menu_->addAction(IconLoader::Load("find"), tr("Search for album covers...")); - save_cover_ = menu_->addAction(IconLoader::Load("document-save"), tr("Save cover to disk...")); - unset_cover_ = menu_->addAction(IconLoader::Load("list-remove"), tr("Unset cover")); - show_cover_ = menu_->addAction(IconLoader::Load("zoom-in"), tr("Show fullsize...")); + cover_from_file_ = new QAction(IconLoader::Load("document-open"), tr("Load cover from disk..."), this); + cover_to_file_ = new QAction(IconLoader::Load("document-save"), tr("Save cover to disk..."), this); + cover_from_url_ = new QAction(IconLoader::Load("download"), tr("Load cover from URL..."), this); + search_for_cover_ = new QAction(IconLoader::Load("find"), tr("Search for album covers..."), this); + unset_cover_ = new QAction(IconLoader::Load("list-remove"), tr("Unset cover"), this); + show_cover_ = new QAction(IconLoader::Load("zoom-in"), tr("Show fullsize..."), this); + + separator_ = new QAction(this); + separator_->setSeparator(true); } AlbumCoverChoiceController::~AlbumCoverChoiceController() @@ -68,8 +74,9 @@ AlbumCoverChoiceController::~AlbumCoverChoiceController() } QList AlbumCoverChoiceController::GetAllActions() { - return QList() << cover_from_file_ << cover_from_url_ - << search_for_cover_ << save_cover_ + return QList() << cover_from_file_ << cover_to_file_ + << separator_ + << cover_from_url_ << search_for_cover_ << unset_cover_ << show_cover_; } @@ -92,7 +99,7 @@ QString AlbumCoverChoiceController::LoadCoverFromFile(Song* song) { QString cover = QFileDialog::getOpenFileName( this, tr("Choose manual cover"), dir, - tr(kImageFileFilter) + ";;" + tr(kAllFilesFilter)); + tr(kLoadImageFileFilter) + ";;" + tr(kAllFilesFilter)); if (cover.isNull()) return QString(); @@ -108,6 +115,36 @@ QString AlbumCoverChoiceController::LoadCoverFromFile(Song* song) { } } +void AlbumCoverChoiceController::SaveCoverToFile(const Song& song, const QImage& image) { + if (!save_file_dialog_) { + save_file_dialog_ = new QFileDialog( + this, + tr("Save Album Cover"), + QDir::home().absolutePath(), + tr(kSaveImageFileFilter) + ";;" + tr(kAllFilesFilter)); + save_file_dialog_->setAcceptMode(QFileDialog::AcceptSave); + } + + QString initial_file_name = (song.album().isEmpty() + ? tr("Unknown") + : song.album()) + ".jpg"; + save_file_dialog_->selectFile(initial_file_name); + + if (!save_file_dialog_->exec()) { + return; + } + + QString save_filename = save_file_dialog_->selectedFiles()[0]; + + QString extension = save_filename.right(4); + if (!extension.startsWith('.') || + !QImageWriter::supportedImageFormats().contains(extension.right(3).toUtf8())) { + save_filename.append(".jpg"); + } + + image.save(save_filename); +} + QString AlbumCoverChoiceController::LoadCoverFromURL(Song* song) { if(!cover_from_url_dialog_) { cover_from_url_dialog_ = new CoverFromURLDialog(this); diff --git a/src/ui/albumcoverchoicecontroller.h b/src/ui/albumcoverchoicecontroller.h index 533e52ca0..93b498e1e 100644 --- a/src/ui/albumcoverchoicecontroller.h +++ b/src/ui/albumcoverchoicecontroller.h @@ -30,6 +30,7 @@ class CoverFromURLDialog; class LibraryBackend; +class QFileDialog; class Song; // Controller for the common album cover related menu options. @@ -43,9 +44,9 @@ class AlbumCoverChoiceController : public QWidget { // Getters for all QActions implemented by this controller. QAction* cover_from_file_action() const { return cover_from_file_; } + QAction* cover_to_file_action() const { return cover_to_file_; } QAction* cover_from_url_action() const { return cover_from_url_; } QAction* search_for_cover_action() const { return search_for_cover_; } - QAction* save_cover_action() const { return save_cover_; } QAction* unset_cover_action() const { return unset_cover_; } QAction* show_cover_action() const { return show_cover_; } @@ -72,6 +73,10 @@ class AlbumCoverChoiceController : public QWidget { // path to the chosen cover will be returned. QString LoadCoverFromFile(Song* song); + // Shows a dialog that allows user to save the given image on disk. The image + // is supposed to be the cover of the given song's album. + void SaveCoverToFile(const Song& song, const QImage& image); + // Downloads the cover from an URL given by user. This returns the downloaded image // or null image if something went wrong for example when user cancelled the // dialog. @@ -95,7 +100,8 @@ class AlbumCoverChoiceController : public QWidget { QString SaveCoverInCache(const QString& artist, const QString& album, const QImage& image); private: - static const char* kImageFileFilter; + static const char* kLoadImageFileFilter; + static const char* kSaveImageFileFilter; static const char* kAllFilesFilter; #ifdef HAVE_LIBLASTFM @@ -103,16 +109,16 @@ private: AlbumCoverFetcher* cover_fetcher_; #endif + QFileDialog* save_file_dialog_; CoverFromURLDialog* cover_from_url_dialog_; LibraryBackend* library_; - QMenu* menu_; - QAction* cover_from_file_; + QAction* cover_to_file_; + QAction* separator_; QAction* cover_from_url_; QAction* search_for_cover_; - QAction* save_cover_; QAction* unset_cover_; QAction* show_cover_; }; diff --git a/src/ui/albumcovermanager.cpp b/src/ui/albumcovermanager.cpp index 70e8a4f76..3fa29cba4 100644 --- a/src/ui/albumcovermanager.cpp +++ b/src/ui/albumcovermanager.cpp @@ -128,6 +128,8 @@ void AlbumCoverManager::Init() { connect(album_cover_choice_controller_->cover_from_file_action(), SIGNAL(triggered()), this, SLOT(LoadCoverFromFile())); + connect(album_cover_choice_controller_->cover_to_file_action(), + SIGNAL(triggered()), this, SLOT(SaveCoverToFile())); connect(album_cover_choice_controller_->cover_from_url_action(), SIGNAL(triggered()), this, SLOT(LoadCoverFromURL())); connect(album_cover_choice_controller_->search_for_cover_action(), @@ -527,6 +529,29 @@ void AlbumCoverManager::LoadCoverFromFile() { } } +void AlbumCoverManager::SaveCoverToFile() { + Song song = GetSingleSelectionAsSong(); + if(!song.is_valid()) + return; + + QImage image; + + // load the image from disk + if(song.art_manual() == AlbumCoverLoader::kManuallyUnsetCover) { + image = QImage(":/nocover.png"); + } else { + if(!song.art_manual().isEmpty() && QFile::exists(song.art_manual())) { + image = QImage(song.art_manual()); + } else if(!song.art_automatic().isEmpty() && QFile::exists(song.art_automatic())) { + image = QImage(song.art_automatic()); + } else { + image = QImage(":/nocover.png"); + } + } + + album_cover_choice_controller_->SaveCoverToFile(song, image); +} + void AlbumCoverManager::LoadCoverFromURL() { Song song = GetSingleSelectionAsSong(); if(!song.is_valid()) diff --git a/src/ui/albumcovermanager.h b/src/ui/albumcovermanager.h index fd5d0d46e..cdbb820c7 100644 --- a/src/ui/albumcovermanager.h +++ b/src/ui/albumcovermanager.h @@ -83,6 +83,7 @@ class AlbumCoverManager : public QMainWindow { void FetchSingleCover(); void LoadCoverFromFile(); + void SaveCoverToFile(); void LoadCoverFromURL(); void SearchForCover(); void UnsetCover(); diff --git a/src/ui/edittagdialog.cpp b/src/ui/edittagdialog.cpp index 2f4f25e98..0dec5c0a2 100644 --- a/src/ui/edittagdialog.cpp +++ b/src/ui/edittagdialog.cpp @@ -60,8 +60,8 @@ EditTagDialog::EditTagDialog(QWidget* parent) { cover_loader_->Start(true); cover_loader_->Worker()->SetDefaultOutputImage(QImage(":nocover.png")); - connect(cover_loader_->Worker().get(), SIGNAL(ImageLoaded(quint64,QImage)), - SLOT(ArtLoaded(quint64,QImage))); + connect(cover_loader_->Worker().get(), SIGNAL(ImageLoaded(quint64,QImage,QImage)), + SLOT(ArtLoaded(quint64,QImage,QImage))); #ifdef HAVE_LIBTUNEPIMP connect(tag_fetcher_, SIGNAL(FetchFinished(QString, SongList)), this, SLOT(FetchTagFinished(QString, SongList)), Qt::QueuedConnection); @@ -138,6 +138,8 @@ EditTagDialog::EditTagDialog(QWidget* parent) connect(album_cover_choice_controller_->cover_from_file_action(), SIGNAL(triggered()), this, SLOT(LoadCoverFromFile())); + connect(album_cover_choice_controller_->cover_to_file_action(), + SIGNAL(triggered()), this, SLOT(SaveCoverToFile())); connect(album_cover_choice_controller_->cover_from_url_action(), SIGNAL(triggered()), this, SLOT(LoadCoverFromURL())); connect(album_cover_choice_controller_->search_for_cover_action(), @@ -452,9 +454,10 @@ void EditTagDialog::UpdateStatisticsTab(const Song& song) { QLocale::system().dateTimeFormat(QLocale::LongFormat))); } -void EditTagDialog::ArtLoaded(quint64 id, const QImage& image) { +void EditTagDialog::ArtLoaded(quint64 id, const QImage& scaled, const QImage& original) { if (id == cover_art_id_) { - ui_->art->setPixmap(QPixmap::fromImage(image)); + ui_->art->setPixmap(QPixmap::fromImage(scaled)); + original_ = original; } } @@ -515,6 +518,14 @@ void EditTagDialog::LoadCoverFromFile() { UpdateCoverOf(*song, sel, cover); } +void EditTagDialog::SaveCoverToFile() { + Song* song = GetFirstSelected(); + if(!song) + return; + + album_cover_choice_controller_->SaveCoverToFile(*song, original_); +} + void EditTagDialog::LoadCoverFromURL() { Song* song = GetFirstSelected(); if(!song) diff --git a/src/ui/edittagdialog.h b/src/ui/edittagdialog.h index 8feae379c..23cb58dcb 100644 --- a/src/ui/edittagdialog.h +++ b/src/ui/edittagdialog.h @@ -80,9 +80,10 @@ private slots: void FetchTagFinished(const QString& filename, const SongList& songs_guessed); void FetchTagSongChoosen(const QString& filename, const Song& song); - void ArtLoaded(quint64 id, const QImage& image); + void ArtLoaded(quint64 id, const QImage& scaled, const QImage& original); void LoadCoverFromFile(); + void SaveCoverToFile(); void LoadCoverFromURL(); void SearchForCover(); void UnsetCover(); @@ -158,6 +159,9 @@ private: quint64 cover_art_id_; bool cover_art_is_set_; + // A copy of the original, unscaled album cover. + QImage original_; + QMenu* cover_menu_; QPushButton* previous_button_; diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index bf00d33e4..417a19db9 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -429,8 +429,11 @@ MainWindow::MainWindow( library_view_->filter()->SetSettingsGroup(kSettingsGroup); library_view_->filter()->SetLibraryModel(library_->model()); + QAction* separator = new QAction(this); + separator->setSeparator(true); + library_view_->filter()->AddMenuAction(duplicates_only_action); - library_view_->filter()->AddSeparator(); + library_view_->filter()->AddMenuAction(separator); library_view_->filter()->AddMenuAction(library_config_action); // Playlist menu diff --git a/src/widgets/nowplayingwidget.cpp b/src/widgets/nowplayingwidget.cpp index 9c62da1cc..39267ad75 100644 --- a/src/widgets/nowplayingwidget.cpp +++ b/src/widgets/nowplayingwidget.cpp @@ -22,8 +22,6 @@ #include "ui/albumcoverchoicecontroller.h" #include "ui/iconloader.h" -#include -#include #include #include #include @@ -62,7 +60,6 @@ NowPlayingWidget::NowPlayingWidget(QWidget *parent) kitten_loader_(NULL), mode_(SmallSongDetails), menu_(new QMenu(this)), - save_dialog_(NULL), above_statusbar_action_(NULL), visible_(false), small_ideal_height_(0), @@ -94,6 +91,8 @@ NowPlayingWidget::NowPlayingWidget(QWidget *parent) connect(album_cover_choice_controller_->cover_from_file_action(), SIGNAL(triggered()), this, SLOT(LoadCoverFromFile())); + connect(album_cover_choice_controller_->cover_to_file_action(), + SIGNAL(triggered()), this, SLOT(SaveCoverToFile())); connect(album_cover_choice_controller_->cover_from_url_action(), SIGNAL(triggered()), this, SLOT(LoadCoverFromURL())); connect(album_cover_choice_controller_->search_for_cover_action(), @@ -102,8 +101,6 @@ NowPlayingWidget::NowPlayingWidget(QWidget *parent) SIGNAL(triggered()), this, SLOT(UnsetCover())); connect(album_cover_choice_controller_->show_cover_action(), SIGNAL(triggered()), this, SLOT(ShowCover())); - connect(album_cover_choice_controller_->save_cover_action(), - SIGNAL(triggered()), this, SLOT(SaveCover())); menu_->addActions(actions); menu_->addSeparator(); @@ -363,18 +360,32 @@ void NowPlayingWidget::resizeEvent(QResizeEvent* e) { } void NowPlayingWidget::contextMenuEvent(QContextMenuEvent* e) { -#ifndef HAVE_LIBLASTFM - album_cover_choice_controller_->cover_from_file_action()->setEnabled(false); - album_cover_choice_controller_->search_for_cover_action()->setEnabled(false); -#endif + // initial 'enabled' values depending on the kitty mode + album_cover_choice_controller_->cover_from_file_action()->setEnabled(!aww_); + album_cover_choice_controller_->cover_to_file_action()->setEnabled(!aww_); + album_cover_choice_controller_->cover_from_url_action()->setEnabled(!aww_); + album_cover_choice_controller_->search_for_cover_action()->setEnabled(!aww_); + album_cover_choice_controller_->unset_cover_action()->setEnabled(!aww_); + album_cover_choice_controller_->show_cover_action()->setEnabled(!aww_); - const bool art_is_not_set = - metadata_.art_manual() == AlbumCoverLoader::kManuallyUnsetCover - || (metadata_.art_automatic().isEmpty() && metadata_.art_manual().isEmpty()); + // some special cases + if(aww_) { + album_cover_choice_controller_->cover_to_file_action()->setEnabled(true); + } else { + #ifndef HAVE_LIBLASTFM + album_cover_choice_controller_->cover_from_file_action()->setEnabled(false); + album_cover_choice_controller_->search_for_cover_action()->setEnabled(false); + #endif - album_cover_choice_controller_->unset_cover_action()->setEnabled(!art_is_not_set); - album_cover_choice_controller_->show_cover_action()->setEnabled(!art_is_not_set); + const bool art_is_not_set = + metadata_.art_manual() == AlbumCoverLoader::kManuallyUnsetCover + || (metadata_.art_automatic().isEmpty() && metadata_.art_manual().isEmpty()); + album_cover_choice_controller_->unset_cover_action()->setEnabled(!art_is_not_set); + album_cover_choice_controller_->show_cover_action()->setEnabled(!art_is_not_set); + } + + // show the menu menu_->popup(mapToGlobal(e->pos())); } @@ -436,30 +447,8 @@ void NowPlayingWidget::SearchForCover() { NowPlaying(metadata_); } -void NowPlayingWidget::SaveCover() { - if (!save_dialog_) { - save_dialog_ = new QFileDialog( - this, - tr("Save Album Cover"), - QDir::home().absolutePath(), - tr("Images (*.jpg)")); - save_dialog_->setAcceptMode(QFileDialog::AcceptSave); - } - save_dialog_->selectFile(metadata_.album() + ".jpg"); - - if (!save_dialog_->exec()) { - return; - } - - QStringList filenames = save_dialog_->selectedFiles(); - QString save_filename = filenames[0]; - - QString extension = save_filename.right(4); - if (!extension.startsWith('.') || - !QImageWriter::supportedImageFormats().contains(extension.right(3).toUtf8())) { - save_filename.append(".jpg"); - } - original_.save(save_filename); +void NowPlayingWidget::SaveCoverToFile() { + album_cover_choice_controller_->SaveCoverToFile(metadata_, original_); } void NowPlayingWidget::UnsetCover() { diff --git a/src/widgets/nowplayingwidget.h b/src/widgets/nowplayingwidget.h index 4a6064462..10012cdb4 100644 --- a/src/widgets/nowplayingwidget.h +++ b/src/widgets/nowplayingwidget.h @@ -29,7 +29,6 @@ class LibraryBackend; class QAction; class QActionGroup; -class QFileDialog; class QMenu; class QMovie; class QSignalMapper; @@ -90,9 +89,9 @@ private slots: void FadePreviousTrack(qreal value); void LoadCoverFromFile(); + void SaveCoverToFile(); void LoadCoverFromURL(); void SearchForCover(); - void SaveCover(); void UnsetCover(); void ShowCover(); @@ -113,8 +112,6 @@ private: QMenu* menu_; - QFileDialog* save_dialog_; - QAction* above_statusbar_action_; bool visible_;