From c0ea45a9c97f6c0bec40438d7a473f1a6bcd3131 Mon Sep 17 00:00:00 2001 From: David Sansome Date: Sat, 14 Aug 2010 11:51:50 +0000 Subject: [PATCH] Show an error dialog when copying or deleting files failed. --- src/CMakeLists.txt | 3 + src/core/deletefiles.cpp | 2 + src/core/deletefiles.h | 3 + src/core/organise.cpp | 2 + src/core/organise.h | 3 + src/devices/deviceview.cpp | 11 ++++ src/devices/deviceview.h | 2 + src/library/libraryview.cpp | 11 ++++ src/library/libraryview.h | 2 + src/translations/ar.po | 16 ++++++ src/translations/bg.po | 16 ++++++ src/translations/ca.po | 16 ++++++ src/translations/cs.po | 42 +++++++++----- src/translations/da.po | 16 ++++++ src/translations/de.po | 48 ++++++++++------ src/translations/el.po | 55 +++++++++++-------- src/translations/en_CA.po | 16 ++++++ src/translations/en_GB.po | 16 ++++++ src/translations/es.po | 16 ++++++ src/translations/fi.po | 16 ++++++ src/translations/fr.po | 43 ++++++++++----- src/translations/gl.po | 16 ++++++ src/translations/hu.po | 42 +++++++++----- src/translations/it.po | 58 ++++++++++++-------- src/translations/kk.po | 16 ++++++ src/translations/lt.po | 16 ++++++ src/translations/nb.po | 16 ++++++ src/translations/nl.po | 16 ++++++ src/translations/oc.po | 16 ++++++ src/translations/pl.po | 16 ++++++ src/translations/pt.po | 46 ++++++++++------ src/translations/pt_BR.po | 16 ++++++ src/translations/ro.po | 16 ++++++ src/translations/ru.po | 53 ++++++++++-------- src/translations/sk.po | 44 +++++++++------ src/translations/sl.po | 16 ++++++ src/translations/sr.po | 16 ++++++ src/translations/sv.po | 52 +++++++++++------- src/translations/tr.po | 16 ++++++ src/translations/translations.pot | 16 ++++++ src/translations/uk.po | 16 ++++++ src/translations/zh_CN.po | 16 ++++++ src/translations/zh_TW.po | 40 ++++++++++---- src/ui/organisedialog.cpp | 13 ++++- src/ui/organisedialog.h | 2 + src/ui/organiseerrordialog.cpp | 66 ++++++++++++++++++++++ src/ui/organiseerrordialog.h | 45 +++++++++++++++ src/ui/organiseerrordialog.ui | 91 +++++++++++++++++++++++++++++++ src/widgets/fileview.cpp | 11 ++++ src/widgets/fileview.h | 4 ++ 50 files changed, 968 insertions(+), 194 deletions(-) create mode 100644 src/ui/organiseerrordialog.cpp create mode 100644 src/ui/organiseerrordialog.h create mode 100644 src/ui/organiseerrordialog.ui diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f99a00b9e..85ed02326 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -136,6 +136,7 @@ set(SOURCES ui/iconloader.cpp ui/mainwindow.cpp ui/organisedialog.cpp + ui/organiseerrordialog.cpp ui/qtsystemtrayicon.cpp ui/settingsdialog.cpp ui/systemtrayicon.cpp @@ -253,6 +254,7 @@ set(HEADERS ui/globalshortcutsconfig.h ui/mainwindow.h ui/organisedialog.h + ui/organiseerrordialog.h ui/qtsystemtrayicon.h ui/settingsdialog.h ui/systemtrayicon.h @@ -304,6 +306,7 @@ set(UI ui/globalshortcutsconfig.ui ui/mainwindow.ui ui/organisedialog.ui + ui/organiseerrordialog.ui ui/settingsdialog.ui widgets/equalizerslider.ui diff --git a/src/core/deletefiles.cpp b/src/core/deletefiles.cpp index cbd4ac63f..4be489422 100644 --- a/src/core/deletefiles.cpp +++ b/src/core/deletefiles.cpp @@ -80,6 +80,8 @@ void DeleteFiles::ProcessSomeFiles() { task_manager_->SetTaskFinished(task_id_); + emit Finished(songs_with_errors_); + // Move back to the original thread so deleteLater() can get called in // the main thread's event loop moveToThread(original_thread_); diff --git a/src/core/deletefiles.h b/src/core/deletefiles.h index 70a022a9d..4446f60a9 100644 --- a/src/core/deletefiles.h +++ b/src/core/deletefiles.h @@ -38,6 +38,9 @@ public: void Start(const SongList& songs); void Start(const QStringList& filenames); +signals: + void Finished(const SongList& songs_with_errors); + private slots: void ProcessSomeFiles(); diff --git a/src/core/organise.cpp b/src/core/organise.cpp index 4ad5200f7..0098e65b6 100644 --- a/src/core/organise.cpp +++ b/src/core/organise.cpp @@ -74,6 +74,8 @@ void Organise::ProcessSomeFiles() { task_manager_->SetTaskFinished(task_id_); + emit Finished(files_with_errors_); + // Move back to the original thread so deleteLater() can get called in // the main thread's event loop moveToThread(original_thread_); diff --git a/src/core/organise.h b/src/core/organise.h index 58e548323..473095ee4 100644 --- a/src/core/organise.h +++ b/src/core/organise.h @@ -39,6 +39,9 @@ public: void Start(); +signals: + void Finished(const QStringList& files_with_errors); + private slots: void ProcessSomeFiles(); diff --git a/src/devices/deviceview.cpp b/src/devices/deviceview.cpp index 7320b252e..be76174c3 100644 --- a/src/devices/deviceview.cpp +++ b/src/devices/deviceview.cpp @@ -24,6 +24,7 @@ #include "library/librarymodel.h" #include "ui/iconloader.h" #include "ui/organisedialog.h" +#include "ui/organiseerrordialog.h" #include #include @@ -349,6 +350,7 @@ void DeviceView::Delete() { device_index.data(MusicStorage::Role_Storage).value >(); DeleteFiles* delete_files = new DeleteFiles(manager_->task_manager(), storage); + connect(delete_files, SIGNAL(Finished(SongList)), SLOT(DeleteFinished(SongList))); delete_files->Start(GetSelectedSongs()); } @@ -368,3 +370,12 @@ void DeviceView::Unmount() { QModelIndex device_idx = MapToDevice(menu_index_); manager_->Unmount(device_idx.row()); } + +void DeviceView::DeleteFinished(const SongList& songs_with_errors) { + if (songs_with_errors.isEmpty()) + return; + + OrganiseErrorDialog* dialog = new OrganiseErrorDialog(this); + dialog->Show(OrganiseErrorDialog::Type_Delete, songs_with_errors); + // It deletes itself when the user closes it +} diff --git a/src/devices/deviceview.h b/src/devices/deviceview.h index e9de72a9e..5c7817e78 100644 --- a/src/devices/deviceview.h +++ b/src/devices/deviceview.h @@ -75,6 +75,8 @@ private slots: void DeviceConnected(int row); void DeviceDisconnected(int row); + void DeleteFinished(const SongList& songs_with_errors); + private: QModelIndex MapToDevice(const QModelIndex& merged_model_index) const; QModelIndex MapToLibrary(const QModelIndex& merged_model_index) const; diff --git a/src/library/libraryview.cpp b/src/library/libraryview.cpp index 713ea75a7..6af0d0ff3 100644 --- a/src/library/libraryview.cpp +++ b/src/library/libraryview.cpp @@ -25,6 +25,7 @@ #include "devices/devicestatefiltermodel.h" #include "ui/iconloader.h" #include "ui/organisedialog.h" +#include "ui/organiseerrordialog.h" #include #include @@ -305,6 +306,7 @@ void LibraryView::Delete() { .value >(); DeleteFiles* delete_files = new DeleteFiles(task_manager_, storage); + connect(delete_files, SIGNAL(Finished(SongList)), SLOT(DeleteFinished(SongList))); delete_files->Start(songs); } @@ -330,3 +332,12 @@ void LibraryView::keyReleaseEvent(QKeyEvent* e) { QTreeView::keyReleaseEvent(e); } + +void LibraryView::DeleteFinished(const SongList& songs_with_errors) { + if (songs_with_errors.isEmpty()) + return; + + OrganiseErrorDialog* dialog = new OrganiseErrorDialog(this); + dialog->Show(OrganiseErrorDialog::Type_Delete, songs_with_errors); + // It deletes itself when the user closes it +} diff --git a/src/library/libraryview.h b/src/library/libraryview.h index 2e7deea64..ea0ea4625 100644 --- a/src/library/libraryview.h +++ b/src/library/libraryview.h @@ -77,6 +77,8 @@ class LibraryView : public AutoExpandingTreeView { void ShowInVarious(); void NoShowInVarious(); + void DeleteFinished(const SongList& songs_with_errors); + private: void RecheckIsEmpty(); void ShowInVarious(bool on); diff --git a/src/translations/ar.po b/src/translations/ar.po index 5bf594c59..273f11f99 100644 --- a/src/translations/ar.po +++ b/src/translations/ar.po @@ -634,6 +634,12 @@ msgstr "" msgid "Error" msgstr "" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "" @@ -1566,6 +1572,16 @@ msgstr "" msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" diff --git a/src/translations/bg.po b/src/translations/bg.po index 1b3114230..21994c2c7 100644 --- a/src/translations/bg.po +++ b/src/translations/bg.po @@ -635,6 +635,12 @@ msgstr "" msgid "Error" msgstr "" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "" @@ -1567,6 +1573,16 @@ msgstr "" msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" diff --git a/src/translations/ca.po b/src/translations/ca.po index 0a0c51bf3..ee37b69fe 100644 --- a/src/translations/ca.po +++ b/src/translations/ca.po @@ -648,6 +648,12 @@ msgstr "Equalitzador" msgid "Error" msgstr "Error" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "Error carregant %1" @@ -1587,6 +1593,16 @@ msgstr "" msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" diff --git a/src/translations/cs.po b/src/translations/cs.po index b9a981de2..9439d6307 100644 --- a/src/translations/cs.po +++ b/src/translations/cs.po @@ -45,15 +45,15 @@ msgstr "" msgid "%1 tracks" msgstr "" -#, c-format, qt-plural-format +#, c-format msgid "%n failed" msgstr "" -#, c-format, qt-plural-format +#, c-format msgid "%n finished" msgstr "" -#, c-format, qt-plural-format +#, c-format msgid "%n remaining" msgstr "" @@ -604,7 +604,7 @@ msgstr "Upravit informaci o skladbách..." msgid "Edit..." msgstr "Upravit..." -#, c-format, qt-plural-format +#, c-format msgid "Editing %n tracks" msgstr "Úprava %n stop" @@ -620,8 +620,8 @@ msgstr "" msgid "" "Enter an artist or tag to start listening to Last.fm radio." msgstr "" -"Zadejte umělce nebo značku pro spuštění poslouchání rádia " -"Last.fm." +"Zadejte umělce nebo značku pro spuštění poslouchání rádia Last." +"fm." msgid "Enter search terms here" msgstr "Zde zadejte klíčová slova" @@ -638,6 +638,12 @@ msgstr "Ekvalizér" msgid "Error" msgstr "Chyba" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "" @@ -1571,6 +1577,16 @@ msgstr "" msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" @@ -1581,8 +1597,7 @@ msgid "" msgstr "" msgid "These folders will be scanned for music to make up your library" -msgstr "" -"Tyto složky budou prohledány a nalezená hudba bude přidána do knihovny" +msgstr "Tyto složky budou prohledány a nalezená hudba bude přidána do knihovny" msgid "Third level" msgstr "Třetí úroveň" @@ -1750,9 +1765,8 @@ msgid "" msgstr "" msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" msgid "" @@ -1779,7 +1793,7 @@ msgstr "Vynulovat" msgid "[click to edit]" msgstr "[pro úpravy klikněte]" -#, c-format, qt-plural-format +#, c-format msgid "add %n songs" msgstr "Přidej %n skladby" @@ -1799,7 +1813,7 @@ msgstr "Přesuň skladby" msgid "options" msgstr "Možnosti" -#, c-format, qt-plural-format +#, c-format msgid "remove %n songs" msgstr "Odeber %n skladeb" @@ -1816,11 +1830,9 @@ msgstr "stopa %1" #~ msgid "Show section" #~ msgstr "Zobrazit skeci" -#, qt-format #~ msgid "%1's Neighborhood" #~ msgstr "Sousedství uživatele %1" -#, qt-format #~ msgid "%1's Library" #~ msgstr "Knihovna uživatele %1" diff --git a/src/translations/da.po b/src/translations/da.po index fa81790ca..bc5713c3c 100644 --- a/src/translations/da.po +++ b/src/translations/da.po @@ -638,6 +638,12 @@ msgstr "Equalizer" msgid "Error" msgstr "" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "" @@ -1574,6 +1580,16 @@ msgstr "" msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" diff --git a/src/translations/de.po b/src/translations/de.po index 42a68057c..1d7d52874 100644 --- a/src/translations/de.po +++ b/src/translations/de.po @@ -45,15 +45,15 @@ msgstr "%1 ausgewählt von" msgid "%1 tracks" msgstr "%1 Stücke" -#, c-format, qt-plural-format +#, c-format msgid "%n failed" msgstr "%n fehlgeschlagen" -#, c-format, qt-plural-format +#, c-format msgid "%n finished" msgstr "%n konvertiert" -#, c-format, qt-plural-format +#, c-format msgid "%n remaining" msgstr "%n verbleibend" @@ -373,8 +373,7 @@ msgid "Closing this window will cancel the download." msgstr "Der Download wird abgebrochen wenn Sie das Fenster schließen" msgid "Closing this window will stop searching for album covers." -msgstr "" -"Die Suche nach Covern wird abgebrochen wenn Sie das Fenster schließen" +msgstr "Die Suche nach Covern wird abgebrochen wenn Sie das Fenster schließen" msgid "Club" msgstr "Club" @@ -615,7 +614,7 @@ msgstr "Metadaten bearbeiten..." msgid "Edit..." msgstr "Bearbeiten..." -#, c-format, qt-plural-format +#, c-format msgid "Editing %n tracks" msgstr "%n Stücke bearbeiten" @@ -649,6 +648,12 @@ msgstr "Equalizer" msgid "Error" msgstr "Fehler" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "Fehler beim Laden von %1" @@ -1584,12 +1589,21 @@ msgstr "Ordner %1 ist ungültig" #, qt-format msgid "The playlist '%1' was empty or could not be loaded." -msgstr "" -"Die Wiedergabeliste \"%1\" ist leer oder konnte nicht geladen werden." +msgstr "Die Wiedergabeliste \"%1\" ist leer oder konnte nicht geladen werden." msgid "There was a problem fetching the metadata from Magnatune" msgstr "Beim Holen der Metadaten von Magnatune ist ein Fehler aufgetreten" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" @@ -1776,9 +1790,8 @@ msgstr "" "kaufen." msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" "Sie können die Musik kostenlos 'scrobblen' aber nur zahlende Last.fm-Kunden können Last.fm-Radio mit " @@ -1790,8 +1803,8 @@ msgid "" "shortcuts in Clementine." msgstr "" "Öffnen Sie die Systemeinstellungen und aktivieren Sie \"Zugriff für Hilfsgeräte aktivieren\" in " -"\"Bedienhilfen\" um Clementines Tastenkürzel zu benutzen." +"style:italic;\">Zugriff für Hilfsgeräte aktivieren\" in \"Bedienhilfen" +"\" um Clementines Tastenkürzel zu benutzen." msgid "You will need to restart Clementine if you change the language." msgstr "Sie müssen Clementine nach dem Ändern der Sprache neustarten." @@ -1811,7 +1824,7 @@ msgstr "Null" msgid "[click to edit]" msgstr "[zum Bearbeiten klicken]" -#, c-format, qt-plural-format +#, c-format msgid "add %n songs" msgstr "%n Stücke hinzufügen" @@ -1831,7 +1844,7 @@ msgstr "Stücke verschieben" msgid "options" msgstr "Einstellungen" -#, c-format, qt-plural-format +#, c-format msgid "remove %n songs" msgstr "%n Stücke entfernen" @@ -1842,7 +1855,6 @@ msgstr "Anhalten" msgid "track %1" msgstr "Stück %1" -#, qt-format #~ msgid "%1's Library" #~ msgstr "%1s Musiksammlung" @@ -1886,8 +1898,8 @@ msgstr "Stück %1" #~ "Note that you must be a paid " #~ "subscriber to listen to Last.fm radio from within Clementine." #~ msgstr "" -#~ "Sie müssen zahlender Last.fm Kunde sein um Last.fm über Clementine hören zu " -#~ "können" +#~ "Sie müssen zahlender Last.fm Kunde sein um Last.fm über Clementine hören " +#~ "zu können" #~ msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)" #~ msgstr "Musik (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)" diff --git a/src/translations/el.po b/src/translations/el.po index f3b4c2bcd..e67768707 100644 --- a/src/translations/el.po +++ b/src/translations/el.po @@ -46,15 +46,15 @@ msgstr "%1 επιλεγμένα από" msgid "%1 tracks" msgstr "%1 κομμάτια" -#, c-format, qt-plural-format +#, c-format msgid "%n failed" msgstr "%n απέτυχε" -#, c-format, qt-plural-format +#, c-format msgid "%n finished" msgstr "%n ολοκληρώθηκε" -#, c-format, qt-plural-format +#, c-format msgid "%n remaining" msgstr "%n απομένει" @@ -91,8 +91,8 @@ msgid "" "

If you surround sections of text that contain a token with curly-braces, " "that section will be hidden if the token is empty.

" msgstr "" -"

Λέξεις που αρχίζουν με %, για παράδειγμα:%καλλιτέχνης %άλμπουμ " -"%τίτλος

\n" +"

Λέξεις που αρχίζουν με %, για παράδειγμα:%καλλιτέχνης %άλμπουμ %τίτλος\n" "\n" "

Αν κλείσεις ένα κείμενο που περιέχει λέξη με % σε άγκιστρα ({}), το " "τμήμα αυτό δεν θα είναι ορατό η λέξη λείπει

" @@ -221,8 +221,7 @@ msgstr "" "Προέκυψε σφάλμα στην αντιγραφή της βάσης δεδομένων iTunes από την συσκευή" msgid "An error occurred copying the iTunes database onto the device" -msgstr "" -"Προέκυψε σφάλμα στην αντιγραφή της βάσης δεδομένων iTunes στην συσκευή" +msgstr "Προέκυψε σφάλμα στην αντιγραφή της βάσης δεδομένων iTunes στην συσκευή" msgid "An error occurred loading the iTunes database" msgstr "Προέκυψε σφάλμα στην φόρτωση της βάσης δεδομένων iTunes" @@ -617,7 +616,7 @@ msgstr "Τροποποίηση πληροφοριών κομματιού..." msgid "Edit..." msgstr "Επεξεργασία..." -#, c-format, qt-plural-format +#, c-format msgid "Editing %n tracks" msgstr "Τροποποίηση %n κομματιών" @@ -651,6 +650,12 @@ msgstr "Ισοσταθμιστής" msgid "Error" msgstr "Σφάλμα" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "Σφάλμα φόρτωσης του %1" @@ -974,8 +979,7 @@ msgid "Loading tracks" msgstr "Φόρτωση κομματιών" msgid "Loads files/URLs, replacing current playlist" -msgstr "" -"Φορτώνει αρχεία/URLs, αντικαθιστώντας την τρέχουσα λίστα αναπαραγωγής" +msgstr "Φορτώνει αρχεία/URLs, αντικαθιστώντας την τρέχουσα λίστα αναπαραγωγής" msgid "Love" msgstr "Αγάπη" @@ -1047,8 +1051,7 @@ msgid "Music" msgstr "Μουσική" msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" -msgstr "" -"Μουσική (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" +msgstr "Μουσική (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" msgid "Music Library" msgstr "Μουσική βιβλιοθήκη" @@ -1593,6 +1596,16 @@ msgid "There was a problem fetching the metadata from Magnatune" msgstr "" "Υπήρξε κάποιο σφάλμα κατά την μεταφορά των μετα-δεδομένων από το Magnatune" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" @@ -1607,8 +1620,7 @@ msgstr "" "συνεχίσετε;" msgid "These folders will be scanned for music to make up your library" -msgstr "" -"Οι φάκελοι αυτοί θα σαρωθούν για μουσικά αρχεία για την βιβλιοθήκη σας" +msgstr "Οι φάκελοι αυτοί θα σαρωθούν για μουσικά αρχεία για την βιβλιοθήκη σας" msgid "Third level" msgstr "Τρίτο επίπεδο" @@ -1782,9 +1794,8 @@ msgstr "" "αγορά μιας συνδρομής αφαιρεί το μήνυμα από το τέλος κάθε κομματιού." msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" "Μπορείτε να κάνετε \"scroble\" δωρεάν, αλλά μόνο οι συνδρομητές επί πληρωμή μπορούν να έχουν ροή από το " @@ -1818,7 +1829,7 @@ msgstr "Zero" msgid "[click to edit]" msgstr "[κλικ για τροποποίηση]" -#, c-format, qt-plural-format +#, c-format msgid "add %n songs" msgstr "προσθήκη %n τραγουδιών" @@ -1838,7 +1849,7 @@ msgstr "μετακίνηση τραγουδιών" msgid "options" msgstr "επιλογές" -#, c-format, qt-plural-format +#, c-format msgid "remove %n songs" msgstr "αφαίρεση %n τραγουδιών" @@ -1849,11 +1860,9 @@ msgstr "διακοπή" msgid "track %1" msgstr "κομμάτι %1" -#, qt-format #~ msgid "%1's Neighborhood" #~ msgstr "%1's Συνοικιακά" -#, qt-format #~ msgid "%1's Library" #~ msgstr "%1's Βιβλιοθήκη" @@ -1885,8 +1894,8 @@ msgstr "κομμάτι %1" #~ "Note that you must be a paid " #~ "subscriber to listen to Last.fm radio from within Clementine." #~ msgstr "" -#~ "Σημείωσε πως πρέπει να είσαι συνδρομητής για να ακούσεις Last.fm από το Clementine." +#~ "Σημείωσε πως πρέπει να είσαι συνδρομητής για να ακούσεις Last.fm από το Clementine." #~ msgid "Fadeout" #~ msgstr "Ομαλό σβήσιμο" diff --git a/src/translations/en_CA.po b/src/translations/en_CA.po index 111e552b2..29203bc37 100644 --- a/src/translations/en_CA.po +++ b/src/translations/en_CA.po @@ -637,6 +637,12 @@ msgstr "Equalizer" msgid "Error" msgstr "" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "" @@ -1571,6 +1577,16 @@ msgstr "The playlist '%1' was empty or could not be loaded." msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" diff --git a/src/translations/en_GB.po b/src/translations/en_GB.po index 4093686ed..2ea387ea8 100644 --- a/src/translations/en_GB.po +++ b/src/translations/en_GB.po @@ -635,6 +635,12 @@ msgstr "Equalizer" msgid "Error" msgstr "" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "" @@ -1568,6 +1574,16 @@ msgstr "" msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" diff --git a/src/translations/es.po b/src/translations/es.po index d62f60e8c..5b21e69d4 100644 --- a/src/translations/es.po +++ b/src/translations/es.po @@ -650,6 +650,12 @@ msgstr "Ecualizador" msgid "Error" msgstr "Error" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "Error cargando %1" @@ -1592,6 +1598,16 @@ msgstr "La lista de reproducción '%1' estaba vacía o no pudo ser cargada." msgid "There was a problem fetching the metadata from Magnatune" msgstr "Hubo un problema obteniendo los metadatos desde Magnatune" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "Estos ficheros serán borrados del disco, seguro que desea continuar?" diff --git a/src/translations/fi.po b/src/translations/fi.po index 691e9b631..c65163ed5 100644 --- a/src/translations/fi.po +++ b/src/translations/fi.po @@ -635,6 +635,12 @@ msgstr "" msgid "Error" msgstr "Virhe" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "" @@ -1569,6 +1575,16 @@ msgstr "" msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" diff --git a/src/translations/fr.po b/src/translations/fr.po index f55360481..0b373b0ff 100644 --- a/src/translations/fr.po +++ b/src/translations/fr.po @@ -45,15 +45,15 @@ msgstr "%1 sélectionné de" msgid "%1 tracks" msgstr "%1 pistes" -#, c-format, qt-plural-format +#, c-format msgid "%n failed" msgstr "%n échoué" -#, c-format, qt-plural-format +#, c-format msgid "%n finished" msgstr "%n terminé" -#, c-format, qt-plural-format +#, c-format msgid "%n remaining" msgstr "%n manquant" @@ -608,7 +608,7 @@ msgstr "Modifier la description de la piste..." msgid "Edit..." msgstr "Éditer..." -#, c-format, qt-plural-format +#, c-format msgid "Editing %n tracks" msgstr "Éditer %n pistes" @@ -642,6 +642,12 @@ msgstr "Égaliseur" msgid "Error" msgstr "Erreur" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "Erreur lors du chargement de %1" @@ -927,8 +933,8 @@ msgstr "Nom d'utilisateur" msgid "Leave blank for the default. Examples: \"/dev/dsp\", \"front\", etc." msgstr "" -"Laisser vide pour les paramètres par défaut. Exemples : \"/dev/dsp\", " -"\"front\", etc." +"Laisser vide pour les paramètres par défaut. Exemples : \"/dev/dsp\", \"front" +"\", etc." msgid "Length" msgstr "Durée" @@ -1581,6 +1587,16 @@ msgstr "" msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" @@ -1763,9 +1779,8 @@ msgid "" msgstr "" msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" msgid "" @@ -1792,7 +1807,7 @@ msgstr "Zéro" msgid "[click to edit]" msgstr "[cliquer pour modifier]" -#, c-format, qt-plural-format +#, c-format msgid "add %n songs" msgstr "" @@ -1812,7 +1827,7 @@ msgstr "déplacer les chansons" msgid "options" msgstr "options" -#, c-format, qt-plural-format +#, c-format msgid "remove %n songs" msgstr "" @@ -1829,11 +1844,9 @@ msgstr "piste %1" #~ msgid "Show section" #~ msgstr "Montrer la colonne" -#, qt-format #~ msgid "%1's Neighborhood" #~ msgstr "Voisinnage de %1" -#, qt-format #~ msgid "%1's Library" #~ msgstr "Bibliothèque de %1" @@ -1862,8 +1875,8 @@ msgstr "piste %1" #~ "Note that you must be a paid " #~ "subscriber to listen to Last.fm radio from within Clementine." #~ msgstr "" -#~ "N'oubliez pas que vous devez être abonné " -#~ "(payant) pour écouter la radio Last.fm avec Clementine." +#~ "N'oubliez pas que vous devez être abonné (payant) pour écouter la radio Last.fm avec Clementine." #~ msgid "Fadeout" #~ msgstr "Fondu final" diff --git a/src/translations/gl.po b/src/translations/gl.po index ac05ebdae..8e01c7ff6 100644 --- a/src/translations/gl.po +++ b/src/translations/gl.po @@ -634,6 +634,12 @@ msgstr "" msgid "Error" msgstr "" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "" @@ -1568,6 +1574,16 @@ msgstr "" msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" diff --git a/src/translations/hu.po b/src/translations/hu.po index e9345b6e5..5a77c2063 100644 --- a/src/translations/hu.po +++ b/src/translations/hu.po @@ -43,15 +43,15 @@ msgstr "%1 kiválasztva" msgid "%1 tracks" msgstr "%1 szám" -#, c-format, qt-plural-format +#, c-format msgid "%n failed" msgstr "%n meghiúsult" -#, c-format, qt-plural-format +#, c-format msgid "%n finished" msgstr "%n befejezve" -#, c-format, qt-plural-format +#, c-format msgid "%n remaining" msgstr "%n hátralévő" @@ -611,7 +611,7 @@ msgstr "Száminformáció szerkesztése..." msgid "Edit..." msgstr "Szerkesztés..." -#, c-format, qt-plural-format +#, c-format msgid "Editing %n tracks" msgstr "%n szám szerkesztése" @@ -645,6 +645,12 @@ msgstr "Hangszínszabályzó" msgid "Error" msgstr "Hiba" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "Hiba %1 betöltésekor" @@ -800,8 +806,7 @@ msgid "Hardware information" msgstr "Hardverjellemzők" msgid "Hardware information is only available while the device is connected." -msgstr "" -"A hardverjellemzők csak csatlakoztatott eszköz esetén tekinthetők meg." +msgstr "A hardverjellemzők csak csatlakoztatott eszköz esetén tekinthetők meg." msgid "Help" msgstr "Súgó" @@ -1584,6 +1589,16 @@ msgstr "A '%1' lejátszási lista üres vagy érvénytelen." msgid "There was a problem fetching the metadata from Magnatune" msgstr "Hiba lépett fel az adatok Magnatuneról való letöltése közben" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" @@ -1768,9 +1783,8 @@ msgstr "" "vásárlása esetén a számvégi üzenetek eltávolításra kerülnek." msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" "Scrobble funkcióval ingyenesen figyeltetheted a számokat, de csak előfizetők hallgathatnak Last.fm rádiót a " @@ -1781,9 +1795,9 @@ msgid "" "style:italic;\">Enable access for assistive devices\" to use global " "shortcuts in Clementine." msgstr "" -"A Rendszerbeállításokban engedélyeznie kell a \"Hozzáférés engedélyezése kisegítő eszközökhöz\" " -"opciót a globális billentyűparancsok használatához." +"A Rendszerbeállításokban engedélyeznie kell a \"Hozzáférés engedélyezése kisegítő eszközökhöz\" opciót a " +"globális billentyűparancsok használatához." msgid "You will need to restart Clementine if you change the language." msgstr "A nyelv megváltoztatásához újra kell indítania a Clementinet." @@ -1803,7 +1817,7 @@ msgstr "Nulla" msgid "[click to edit]" msgstr "[kattintson a szerkesztéshez]" -#, c-format, qt-plural-format +#, c-format msgid "add %n songs" msgstr "%n szám felvétele" @@ -1823,7 +1837,7 @@ msgstr "számok mozgatása" msgid "options" msgstr "beállítások" -#, c-format, qt-plural-format +#, c-format msgid "remove %n songs" msgstr "%n szám eltávolítása" diff --git a/src/translations/it.po b/src/translations/it.po index 96fb20fcf..1500b4376 100644 --- a/src/translations/it.po +++ b/src/translations/it.po @@ -45,15 +45,15 @@ msgstr "%1 selezionate di" msgid "%1 tracks" msgstr "%1 tracce" -#, c-format, qt-plural-format +#, c-format msgid "%n failed" msgstr "%n non riusciti" -#, c-format, qt-plural-format +#, c-format msgid "%n finished" msgstr "%n completati" -#, c-format, qt-plural-format +#, c-format msgid "%n remaining" msgstr "%n rimanenti" @@ -92,8 +92,8 @@ msgid "" msgstr "" "

Le variabili iniziano con %, ad esempio: %artist %album %title

\n" "\n" -"

Se racchiudi sezioni di testo che contengono una variabile tra parentesi " -"\n" +"

Se racchiudi sezioni di testo che contengono una variabile tra " +"parentesi \n" "graffe, queste sezioni saranno nascoste se la variabile non contiene alcun \n" "valore.

" @@ -619,7 +619,7 @@ msgstr "Modifica informazioni traccia..." msgid "Edit..." msgstr "Modifica..." -#, c-format, qt-plural-format +#, c-format msgid "Editing %n tracks" msgstr "Modifica di %n tracce" @@ -653,6 +653,12 @@ msgstr "Equalizzatore" msgid "Error" msgstr "Errore" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "Errore durante il caricamento di %1" @@ -841,8 +847,8 @@ msgstr "Ignora \"The\" nei nomi degli artisti" 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)" +"Immagini (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +"tiff)" msgid "Include album art in the notification" msgstr "Includi copertina nella notifica" @@ -930,8 +936,7 @@ msgid "Last.fm Tag Radio: %1" msgstr "Radio del tag di Last.fm: %1" msgid "Last.fm is currently busy, please try again in a few minutes" -msgstr "" -"Al momento Last.fm non è disponibile, prova ancora tra qualche minuto" +msgstr "Al momento Last.fm non è disponibile, prova ancora tra qualche minuto" msgid "Last.fm password" msgstr "Password Last.fm" @@ -1053,8 +1058,7 @@ msgid "Music" msgstr "Musica" msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" -msgstr "" -"Musica (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" +msgstr "Musica (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" msgid "Music Library" msgstr "Raccolta musicale" @@ -1600,6 +1604,16 @@ msgstr "" "Si è verificato un problema durante il recupero dei dati aggiuntivi da " "Magnatune" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" @@ -1789,9 +1803,8 @@ msgstr "" "traccia." msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" "Puoi inviare informazioni sulle tracce gratuitamente, ma solo gli abbonati a pagamento possono ascoltare le " @@ -1802,9 +1815,9 @@ msgid "" "style:italic;\">Enable access for assistive devices\" to use global " "shortcuts in Clementine." msgstr "" -"Devi aprire le preferenze di sistema e attivare \"Abilita l'accesso per i dispositivi di assistenza\" " -"per utilizzare le scorciatoie globali in Clementine." +"Devi aprire le preferenze di sistema e attivare \"Abilita l'accesso per i dispositivi di assistenza\" per " +"utilizzare le scorciatoie globali in Clementine." msgid "You will need to restart Clementine if you change the language." msgstr "Dovrai riavviare Clementine se cambi la lingua." @@ -1824,7 +1837,7 @@ msgstr "Zero" msgid "[click to edit]" msgstr "[clic per modificare]" -#, c-format, qt-plural-format +#, c-format msgid "add %n songs" msgstr "aggiungi %n brani" @@ -1844,7 +1857,7 @@ msgstr "sposta brani" msgid "options" msgstr "opzioni" -#, c-format, qt-plural-format +#, c-format msgid "remove %n songs" msgstr "rimuovi %n brani" @@ -1901,8 +1914,9 @@ msgstr "traccia %1" #~ "Note that you must be a paid " #~ "subscriber to listen to Last.fm radio from within Clementine." #~ msgstr "" -#~ "Nota che è necessario essere un abbonato a " -#~ "pagamento per ascoltare una radio Last.fm da Clementine." +#~ "Nota che è necessario essere un abbonato a pagamento per ascoltare una radio Last.fm da " +#~ "Clementine." #~ msgid "Configure global shortcuts..." #~ msgstr "Configura le scorciatoie globali..." diff --git a/src/translations/kk.po b/src/translations/kk.po index 61d6ca38c..bb1753d8b 100644 --- a/src/translations/kk.po +++ b/src/translations/kk.po @@ -634,6 +634,12 @@ msgstr "" msgid "Error" msgstr "" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "" @@ -1568,6 +1574,16 @@ msgstr "" msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" diff --git a/src/translations/lt.po b/src/translations/lt.po index 601904d0b..9394f445f 100644 --- a/src/translations/lt.po +++ b/src/translations/lt.po @@ -635,6 +635,12 @@ msgstr "" msgid "Error" msgstr "" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "" @@ -1567,6 +1573,16 @@ msgstr "" msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" diff --git a/src/translations/nb.po b/src/translations/nb.po index 07107d33b..ee98dc83e 100644 --- a/src/translations/nb.po +++ b/src/translations/nb.po @@ -636,6 +636,12 @@ msgstr "Lydbalanse" msgid "Error" msgstr "Feil" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "" @@ -1570,6 +1576,16 @@ msgstr "" msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" diff --git a/src/translations/nl.po b/src/translations/nl.po index 2cc4a2934..0d262259c 100644 --- a/src/translations/nl.po +++ b/src/translations/nl.po @@ -645,6 +645,12 @@ msgstr "Equalizer" msgid "Error" msgstr "Fout" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "Fout bij laden van %1" @@ -1587,6 +1593,16 @@ msgid "There was a problem fetching the metadata from Magnatune" msgstr "" "Er is een probleem opgetreden bij het ophalen van de metadata van Magnatune" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" diff --git a/src/translations/oc.po b/src/translations/oc.po index c47e1f0a2..fdc03fb93 100644 --- a/src/translations/oc.po +++ b/src/translations/oc.po @@ -634,6 +634,12 @@ msgstr "Egalizador" msgid "Error" msgstr "" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "" @@ -1566,6 +1572,16 @@ msgstr "" msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" diff --git a/src/translations/pl.po b/src/translations/pl.po index fed992201..045610126 100644 --- a/src/translations/pl.po +++ b/src/translations/pl.po @@ -641,6 +641,12 @@ msgstr "Korektor dźwięku" msgid "Error" msgstr "Błąd" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "Błąd wczytywania %1" @@ -1578,6 +1584,16 @@ msgstr "Lista odtwarzania \"%1\" była pusta lub nie mogła zostać wczytana." msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" diff --git a/src/translations/pt.po b/src/translations/pt.po index d906f6369..a10320257 100644 --- a/src/translations/pt.po +++ b/src/translations/pt.po @@ -44,15 +44,15 @@ msgstr "seleccionada(s) %1 de" msgid "%1 tracks" msgstr "%1 faixas" -#, c-format, qt-plural-format +#, c-format msgid "%n failed" msgstr "%n falha(s)" -#, c-format, qt-plural-format +#, c-format msgid "%n finished" msgstr "%n concluída(s)" -#, c-format, qt-plural-format +#, c-format msgid "%n remaining" msgstr "%n restante(s)" @@ -613,7 +613,7 @@ msgstr "Editar a informação da faixa..." msgid "Edit..." msgstr "Editar..." -#, c-format, qt-plural-format +#, c-format msgid "Editing %n tracks" msgstr "Editando %n faixas" @@ -646,6 +646,12 @@ msgstr "Equalizador" msgid "Error" msgstr "Erro" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "Erro ao carregar %1" @@ -1040,8 +1046,7 @@ msgid "Music" msgstr "Música" msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" -msgstr "" -"Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" +msgstr "Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" msgid "Music Library" msgstr "Biblioteca de Música" @@ -1585,6 +1590,16 @@ msgstr "A lista de reprodução '%1' está vazia ou não pôde ser carregada." msgid "There was a problem fetching the metadata from Magnatune" msgstr "Ocorreu um problema ao obter os meta-dados Magnatune" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" @@ -1770,13 +1785,12 @@ msgstr "" "serviço, a mensagem no final de cada faixa será removida." msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" "Você pode actualizar/memorizar as faixas gratuitamente, mas apenas os assinantes conseguem ouvir as rádios " -"Last.fm através do Clementine." +"style=\" font-weight:600;\">assinantes conseguem ouvir as rádios Last." +"fm através do Clementine." msgid "" "You need to launch System Preferences and turn on \"paid " #~ "subscriber to listen to Last.fm radio from within Clementine." #~ msgstr "" -#~ "Note que deverá ser um assinante " -#~ "para ouvir as rádio Last.fm com o Clementine." +#~ "Note que deverá ser um assinante para ouvir as rádio Last.fm com o Clementine." #~ msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)" #~ msgstr "Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)" diff --git a/src/translations/pt_BR.po b/src/translations/pt_BR.po index 3bc369d67..1667fe1cc 100644 --- a/src/translations/pt_BR.po +++ b/src/translations/pt_BR.po @@ -641,6 +641,12 @@ msgstr "Equalizador" msgid "Error" msgstr "Erro" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "Erro carregando %1" @@ -1578,6 +1584,16 @@ msgstr "A lista de reprodução '%1' está vazia ou não pode ser carregada." msgid "There was a problem fetching the metadata from Magnatune" msgstr "Há um problema ao buscar o arquivo multimídia no Magnatune" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" diff --git a/src/translations/ro.po b/src/translations/ro.po index 303acdc75..c68f65def 100644 --- a/src/translations/ro.po +++ b/src/translations/ro.po @@ -634,6 +634,12 @@ msgstr "Egalizator" msgid "Error" msgstr "" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "" @@ -1567,6 +1573,16 @@ msgstr "" msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" diff --git a/src/translations/ru.po b/src/translations/ru.po index 337e68f0d..90bb0ca2e 100644 --- a/src/translations/ru.po +++ b/src/translations/ru.po @@ -43,15 +43,15 @@ msgstr "%1 выбрано из" msgid "%1 tracks" msgstr "%1 композиций" -#, c-format, qt-plural-format +#, c-format msgid "%n failed" msgstr "%n с ошибкой" -#, c-format, qt-plural-format +#, c-format msgid "%n finished" msgstr "%n завершено" -#, c-format, qt-plural-format +#, c-format msgid "%n remaining" msgstr "%n осталось" @@ -610,7 +610,7 @@ msgstr "Изменить информацию о композиции..." msgid "Edit..." msgstr "Изменить..." -#, c-format, qt-plural-format +#, c-format msgid "Editing %n tracks" msgstr "Редактирую %n треков" @@ -625,8 +625,7 @@ msgstr "Введите новое имя для этого списка восп msgid "" "Enter an artist or tag to start listening to Last.fm radio." -msgstr "" -"Укажите исполнителя или тег чтобы слушать радио Last.fm." +msgstr "Укажите исполнителя или тег чтобы слушать радио Last.fm." msgid "Enter search terms here" msgstr "Поиск..." @@ -643,6 +642,12 @@ msgstr "Эквалайзер" msgid "Error" msgstr "Ошибка" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "Ошибка загрузки %1" @@ -798,8 +803,7 @@ msgid "Hardware information" msgstr "Информация об оборудовании" msgid "Hardware information is only available while the device is connected." -msgstr "" -"Информация об оборудовании доступна только если устройство подключено" +msgstr "Информация об оборудовании доступна только если устройство подключено" msgid "Help" msgstr "Помощь" @@ -829,8 +833,8 @@ msgstr "Игнорировать \"The\" в имени исполнителя" 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)" +"Изображения (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *." +"tiff)" msgid "Include album art in the notification" msgstr "Показывать обложку альбома в уведомлении" @@ -1039,8 +1043,7 @@ msgid "Music" msgstr "Музыка" msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" -msgstr "" -"Музыка (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" +msgstr "Музыка (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)" msgid "Music Library" msgstr "Музыкальная коллекция" @@ -1584,6 +1587,16 @@ msgstr "Список воспроизведения '%1' пуст или не м msgid "There was a problem fetching the metadata from Magnatune" msgstr "Проблема получения метаданных с Magnatune" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "Эти файлы будут удалены с диска, вы точно хотите продолжить?" @@ -1768,9 +1781,8 @@ msgstr "" "убирает сообщения в конце каждой композиции." msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" "Вы можете скробблить композиции свободно, но только платные подписчики могут слушать радио Last.fm из " @@ -1803,7 +1815,7 @@ msgstr "По-умолчанию" msgid "[click to edit]" msgstr "[щелкните, чтобы изменить]" -#, c-format, qt-plural-format +#, c-format msgid "add %n songs" msgstr "добавить %n композиций" @@ -1823,7 +1835,7 @@ msgstr "переместить композиции" msgid "options" msgstr "настройки" -#, c-format, qt-plural-format +#, c-format msgid "remove %n songs" msgstr "удалить %n композиций" @@ -1862,9 +1874,8 @@ msgstr "композиция %1" #~ "Note that you must be a paid " #~ "subscriber to listen to Last.fm radio from within Clementine." #~ msgstr "" -#~ "Обратите внимание, что вы должны быть платным подписчиком ,чтобы слушать радио Last.fm из " -#~ "Clementine." +#~ "Обратите внимание, что вы должны быть платным подписчиком ,чтобы слушать радио Last.fm из Clementine." #~ msgid "Fadeout" #~ msgstr "Затихание" @@ -1881,11 +1892,9 @@ msgstr "композиция %1" #~ msgid "Don't show notifications" #~ msgstr "Не показывать" -#, qt-format #~ msgid "%1's Neighborhood" #~ msgstr "Соседи %1" -#, qt-format #~ msgid "%1's Library" #~ msgstr "Коллекция %1" diff --git a/src/translations/sk.po b/src/translations/sk.po index f3bec5910..ad665178a 100644 --- a/src/translations/sk.po +++ b/src/translations/sk.po @@ -45,15 +45,15 @@ msgstr "%1 vybratých z" msgid "%1 tracks" msgstr "%1 skladieb" -#, c-format, qt-plural-format +#, c-format msgid "%n failed" msgstr "%n zlyhalo" -#, c-format, qt-plural-format +#, c-format msgid "%n finished" msgstr "%n dokončených" -#, c-format, qt-plural-format +#, c-format msgid "%n remaining" msgstr "%n zostávajúcich" @@ -612,7 +612,7 @@ msgstr "Upravť informácie o skladbe..." msgid "Edit..." msgstr "Upraviť..." -#, c-format, qt-plural-format +#, c-format msgid "Editing %n tracks" msgstr "Upravovanie %n skladieb" @@ -646,6 +646,12 @@ msgstr "Ekvalizér" msgid "Error" msgstr "Chyba" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "Chyba pri načítavaní %1" @@ -1582,6 +1588,16 @@ msgstr "Playlist '%1' je prázdny alebo nemôže byť načítaný." msgid "There was a problem fetching the metadata from Magnatune" msgstr "Nastal problém so získavaním metadát z Magnatune" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" @@ -1767,13 +1783,11 @@ msgstr "" "správy na konci každej skladby." msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" -"Môžte skrobblovať skladby zadarmo, ale len platiaci predplatitelia môžu streamovať Last.fm rádio z " -"Clementine." +"Môžte skrobblovať skladby zadarmo, ale len platiaci predplatitelia môžu streamovať Last.fm rádio z Clementine." msgid "" "You need to launch System Preferences and turn on \"artist or tag to start listening to Last.fm radio." msgstr "" -"Skriv in en artist eller tagg för att börja lyssna till " -"Last.fm radio." +"Skriv in en artist eller tagg för att börja lyssna till Last." +"fm radio." msgid "Enter search terms here" msgstr "Skriv in sökbegrepp här" @@ -641,6 +641,12 @@ msgstr "Equalizer" msgid "Error" msgstr "Fel" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "Fel vid insläsning av %1" @@ -1077,8 +1083,7 @@ msgstr "Ingen analysator" msgid "" "No matches found. Clear the search box to show the whole playlist again." -msgstr "" -"Inga träffar hittades. Tom sökrutan för att visa hela spellistan igen." +msgstr "Inga träffar hittades. Tom sökrutan för att visa hela spellistan igen." msgid "None" msgstr "Inga" @@ -1388,8 +1393,7 @@ msgid "Seek forward" msgstr "Sök framåt" msgid "Seek the currently playing track by a relative amount" -msgstr "" -"Sök spåret som spelas för tillfället relativt till nuvarande position" +msgstr "Sök spåret som spelas för tillfället relativt till nuvarande position" msgid "Seek the currently playing track to an absolute position" msgstr "Sök spåret som spelas för tillfället till en absolut position" @@ -1578,6 +1582,16 @@ msgstr "Spellistan '%1' var tom eller kunde inte läsas in." msgid "There was a problem fetching the metadata from Magnatune" msgstr "Ett fel uppstod vid hämtning av metadatan från Magnatune" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" @@ -1767,13 +1781,11 @@ msgstr "" "medlemskap tas meddelandena i slutet av varje spår bort." msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" -"Du kan skrobbla spår gratis, men endast betalprenumeranter kan strömma Last.fm-radio från " -"Clementine." +"Du kan skrobbla spår gratis, men endast betalprenumeranter kan strömma Last.fm-radio från Clementine." msgid "" "You need to launch System Preferences and turn on \"paid " #~ "subscriber to listen to Last.fm radio from within Clementine." #~ msgstr "" -#~ "Du måste ha ett betalabonnemang för " -#~ "att kunna lyssna på Last.fm radio i Clementine." +#~ "Du måste ha ett betalabonnemang " +#~ "för att kunna lyssna på Last.fm radio i Clementine." #~ msgid "Version" #~ msgstr "Version" diff --git a/src/translations/tr.po b/src/translations/tr.po index d7e6e0743..c73354238 100644 --- a/src/translations/tr.po +++ b/src/translations/tr.po @@ -635,6 +635,12 @@ msgstr "Ekolayzır" msgid "Error" msgstr "Hata" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "%1 yüklemesinde hata" @@ -1573,6 +1579,16 @@ msgstr "Çalma listesi '%1' boş veya yüklenemiyor." msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" diff --git a/src/translations/translations.pot b/src/translations/translations.pot index bdefbae59..17a10b5a6 100644 --- a/src/translations/translations.pot +++ b/src/translations/translations.pot @@ -625,6 +625,12 @@ msgstr "" msgid "Error" msgstr "" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "" @@ -1557,6 +1563,16 @@ msgstr "" msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" diff --git a/src/translations/uk.po b/src/translations/uk.po index bf3dfd208..c63d811c3 100644 --- a/src/translations/uk.po +++ b/src/translations/uk.po @@ -644,6 +644,12 @@ msgstr "Еквалайзер" msgid "Error" msgstr "Помилка" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "Помилка завантаження %1" @@ -1582,6 +1588,16 @@ msgstr "Список відтворення '%1' порожній або нем msgid "There was a problem fetching the metadata from Magnatune" msgstr "Проблема отримання метаданих з Magnatune" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "Ці файли будуть вилучені з диска. Ви впевнені? Вилучити їх?" diff --git a/src/translations/zh_CN.po b/src/translations/zh_CN.po index a32a09e86..6e617cd7b 100644 --- a/src/translations/zh_CN.po +++ b/src/translations/zh_CN.po @@ -634,6 +634,12 @@ msgstr "" msgid "Error" msgstr "" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "" @@ -1566,6 +1572,16 @@ msgstr "" msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" diff --git a/src/translations/zh_TW.po b/src/translations/zh_TW.po index 167d13b5c..6ee4f30b5 100644 --- a/src/translations/zh_TW.po +++ b/src/translations/zh_TW.po @@ -44,15 +44,15 @@ msgstr "%1 選定" msgid "%1 tracks" msgstr "%1 歌曲" -#, c-format, qt-plural-format +#, c-format msgid "%n failed" msgstr "%n 失敗的" -#, c-format, qt-plural-format +#, c-format msgid "%n finished" msgstr "%n 完成的" -#, c-format, qt-plural-format +#, c-format msgid "%n remaining" msgstr "%n 剩餘的" @@ -91,7 +91,8 @@ msgid "" msgstr "" "

Tokens 由%開頭, 例如:%artist %album %title

\n" "\n" -"

若您將一段文字的前後用大括號括起來,那段文字將在token是空白的情況下被隱藏。" +"

若您將一段文字的前後用大括號括起來,那段文字將在token是空白的情況下被隱" +"藏。" msgid "AIFF" msgstr "AIFF" @@ -606,7 +607,7 @@ msgstr "編輯歌曲資訊..." msgid "Edit..." msgstr "編輯..." -#, c-format, qt-plural-format +#, c-format msgid "Editing %n tracks" msgstr "編輯 %n 歌曲" @@ -638,6 +639,12 @@ msgstr "等化器" msgid "Error" msgstr "" +msgid "Error copying songs" +msgstr "" + +msgid "Error deleting songs" +msgstr "" + #, qt-format msgid "Error loading %1" msgstr "" @@ -1571,6 +1578,16 @@ msgstr "" msgid "There was a problem fetching the metadata from Magnatune" msgstr "" +msgid "" +"There were problems copying some songs. The following files could not be " +"copied:" +msgstr "" + +msgid "" +"There were problems deleting some songs. The following files could not be " +"deleted:" +msgstr "" + msgid "" "These files will be deleted from disk, are you sure you want to continue?" msgstr "" @@ -1746,12 +1763,13 @@ msgstr "你可以改變的歌曲庫中的組織形式." msgid "" "You can listen to Magnatune songs for free without an account. Purchasing a " "membership removes the messages at the end of each track." -msgstr "你可以免費聽Magnatune歌曲,而不需要一個帳戶.而當你購買成為會員時,每首歌曲後的廣告訊息將刪除." +msgstr "" +"你可以免費聽Magnatune歌曲,而不需要一個帳戶.而當你購買成為會員時,每首歌曲後的" +"廣告訊息將刪除." msgid "" -"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from " -"Clementine." +"You can scrobble tracks for free, but only paid subscribers can stream Last.fm radio from Clementine." msgstr "" msgid "" @@ -1778,7 +1796,7 @@ msgstr "" msgid "[click to edit]" msgstr "[點擊以編輯]" -#, c-format, qt-plural-format +#, c-format msgid "add %n songs" msgstr "加入 %n 歌" @@ -1798,7 +1816,7 @@ msgstr "移動歌曲" msgid "options" msgstr "選項" -#, c-format, qt-plural-format +#, c-format msgid "remove %n songs" msgstr "移除 %n 歌" diff --git a/src/ui/organisedialog.cpp b/src/ui/organisedialog.cpp index 9a0f9340e..80925a17f 100644 --- a/src/ui/organisedialog.cpp +++ b/src/ui/organisedialog.cpp @@ -14,11 +14,12 @@ along with Clementine. If not, see . */ +#include "iconloader.h" #include "organisedialog.h" +#include "organiseerrordialog.h" #include "ui_organisedialog.h" #include "core/musicstorage.h" #include "core/organise.h" -#include "ui/iconloader.h" #include #include @@ -284,7 +285,17 @@ void OrganiseDialog::accept() { Organise* organise = new Organise( task_manager_, storage, format_, copy, ui_->overwrite->isChecked(), filenames_, ui_->eject_after->isChecked()); + connect(organise, SIGNAL(Finished(QStringList)), SLOT(OrganiseFinished(QStringList))); organise->Start(); QDialog::accept(); } + +void OrganiseDialog::OrganiseFinished(const QStringList& files_with_errors) { + if (files_with_errors.isEmpty()) + return; + + OrganiseErrorDialog* dialog = new OrganiseErrorDialog(this); + dialog->Show(OrganiseErrorDialog::Type_Copy, files_with_errors); + // It deletes itself when the user closes it +} diff --git a/src/ui/organisedialog.h b/src/ui/organisedialog.h index 6edd1d56e..a24e690eb 100644 --- a/src/ui/organisedialog.h +++ b/src/ui/organisedialog.h @@ -65,6 +65,8 @@ private slots: void LoadPreviewSongs(const QString& filename); void UpdatePreviews(); + void OrganiseFinished(const QStringList& files_with_errors); + private: Ui_OrganiseDialog* ui_; TaskManager* task_manager_; diff --git a/src/ui/organiseerrordialog.cpp b/src/ui/organiseerrordialog.cpp new file mode 100644 index 000000000..7b8d10bb5 --- /dev/null +++ b/src/ui/organiseerrordialog.cpp @@ -0,0 +1,66 @@ +/* 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 "organiseerrordialog.h" +#include "ui_organiseerrordialog.h" + +OrganiseErrorDialog::OrganiseErrorDialog(QWidget *parent) + : QDialog(parent), + ui_(new Ui_OrganiseErrorDialog) +{ + ui_->setupUi(this); + + const int icon_size = style()->pixelMetric(QStyle::PM_MessageBoxIconSize, 0, this); + QIcon icon = style()->standardIcon(QStyle::SP_MessageBoxCritical, 0, this); + + ui_->icon->setPixmap(icon.pixmap(icon_size)); +} + +OrganiseErrorDialog::~OrganiseErrorDialog() { + delete ui_; +} + +void OrganiseErrorDialog::Show( + OperationType type, const SongList& songs_with_errors) { + QStringList files; + foreach (const Song& song, songs_with_errors) { + files << song.filename(); + } + Show(type, files); +} + +void OrganiseErrorDialog::Show( + OperationType type, const QStringList& files_with_errors) { + QStringList sorted_files = files_with_errors; + qStableSort(sorted_files); + + switch (type) { + case Type_Copy: + setWindowTitle(tr("Error copying songs")); + ui_->label->setText(tr("There were problems copying some songs. The following files could not be copied:")); + break; + + case Type_Delete: + setWindowTitle(tr("Error deleting songs")); + ui_->label->setText(tr("There were problems deleting some songs. The following files could not be deleted:")); + break; + } + + ui_->list->addItems(sorted_files); + + setAttribute(Qt::WA_DeleteOnClose); + show(); +} diff --git a/src/ui/organiseerrordialog.h b/src/ui/organiseerrordialog.h new file mode 100644 index 000000000..b6ef46c37 --- /dev/null +++ b/src/ui/organiseerrordialog.h @@ -0,0 +1,45 @@ +/* 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 ORGANISEERRORDIALOG_H +#define ORGANISEERRORDIALOG_H + +#include + +#include "core/song.h" + +class Ui_OrganiseErrorDialog; + +class OrganiseErrorDialog : public QDialog { + Q_OBJECT + +public: + OrganiseErrorDialog(QWidget* parent = 0); + ~OrganiseErrorDialog(); + + enum OperationType { + Type_Copy, + Type_Delete, + }; + + void Show(OperationType type, const SongList& songs_with_errors); + void Show(OperationType type, const QStringList& files_with_errors); + +private: + Ui_OrganiseErrorDialog* ui_; +}; + +#endif // ORGANISEERRORDIALOG_H diff --git a/src/ui/organiseerrordialog.ui b/src/ui/organiseerrordialog.ui new file mode 100644 index 000000000..b78a421e2 --- /dev/null +++ b/src/ui/organiseerrordialog.ui @@ -0,0 +1,91 @@ + + + OrganiseErrorDialog + + + + 0 + 0 + 779 + 355 + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Close + + + + + + + + + + + buttonBox + accepted() + OrganiseErrorDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + OrganiseErrorDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/src/widgets/fileview.cpp b/src/widgets/fileview.cpp index 0832264ff..5f7a8703a 100644 --- a/src/widgets/fileview.cpp +++ b/src/widgets/fileview.cpp @@ -19,6 +19,7 @@ #include "core/deletefiles.h" #include "core/filesystemmusicstorage.h" #include "ui/iconloader.h" +#include "ui/organiseerrordialog.h" #include #include @@ -167,5 +168,15 @@ void FileView::Delete(const QStringList& filenames) { return; DeleteFiles* delete_files = new DeleteFiles(task_manager_, storage_); + connect(delete_files, SIGNAL(Finished(SongList)), SLOT(DeleteFinished(SongList))); delete_files->Start(filenames); } + +void FileView::DeleteFinished(const SongList& songs_with_errors) { + if (songs_with_errors.isEmpty()) + return; + + OrganiseErrorDialog* dialog = new OrganiseErrorDialog(this); + dialog->Show(OrganiseErrorDialog::Type_Delete, songs_with_errors); + // It deletes itself when the user closes it +} diff --git a/src/widgets/fileview.h b/src/widgets/fileview.h index e6c598d96..4fd142924 100644 --- a/src/widgets/fileview.h +++ b/src/widgets/fileview.h @@ -24,6 +24,8 @@ #include +#include "core/song.h" + class FilesystemMusicStorage; class MusicStorage; class TaskManager; @@ -57,7 +59,9 @@ class FileView : public QWidget { void ChangeFilePath(const QString& new_path); void ItemActivated(const QModelIndex& index); void ItemDoubleClick(const QModelIndex& index); + void Delete(const QStringList& filenames); + void DeleteFinished(const SongList& songs_with_errors); private: void ChangeFilePathWithoutUndo(const QString& new_path);