Add a menu item for copying songs off devices to the library

This commit is contained in:
David Sansome 2010-07-18 17:13:43 +00:00
parent 1a5f865d53
commit c43d695d8b
30 changed files with 114 additions and 1 deletions

View File

@ -19,8 +19,10 @@
#include "deviceproperties.h"
#include "deviceview.h"
#include "core/mergedproxymodel.h"
#include "library/librarydirectorymodel.h"
#include "library/librarymodel.h"
#include "ui/iconloader.h"
#include "ui/organisedialog.h"
#include <QContextMenuEvent>
#include <QMenu>
@ -135,8 +137,10 @@ DeviceView::DeviceView(QWidget* parent)
add_to_playlist_action_ = library_menu_->addAction(IconLoader::Load("media-playback-start"),
tr("Add to playlist"), this, SLOT(AddToPlaylist()));
library_menu_->addSeparator();
organise_action_ = library_menu_->addAction(IconLoader::Load("edit-copy"),
tr("Copy to library..."), this, SLOT(Organise()));
delete_action_ = library_menu_->addAction(IconLoader::Load("edit-delete"),
tr("Delete from disk..."), this, SLOT(Delete()));
tr("Delete from device..."), this, SLOT(Delete()));
setItemDelegate(new DeviceItemDelegate(this));
SetExpandOnReset(false);
@ -167,6 +171,15 @@ void DeviceView::SetDeviceManager(DeviceManager *manager) {
properties_dialog_->SetDeviceManager(manager_);
}
void DeviceView::SetLibrary(LibraryModel* library) {
Q_ASSERT(manager_);
library_ = library;
organise_dialog_.reset(new OrganiseDialog(manager_->task_manager()));
organise_dialog_->AddDirectoryModel(library_->directory_model());
}
void DeviceView::contextMenuEvent(QContextMenuEvent* e) {
menu_index_ = currentIndex();
@ -318,3 +331,15 @@ void DeviceView::AddToPlaylist() {
void DeviceView::Delete() {
}
void DeviceView::Organise() {
SongList songs = GetSelectedSongs();
QStringList filenames;
foreach (const Song& song, songs) {
filenames << song.filename();
}
organise_dialog_->SetCopy(true);
organise_dialog_->SetFilenames(filenames);
organise_dialog_->show();
}

View File

@ -27,6 +27,7 @@ class QSortFilterProxyModel;
class DeviceManager;
class DeviceProperties;
class LibraryModel;
class MergedProxyModel;
class DeviceItemDelegate : public LibraryItemDelegate {
@ -47,6 +48,7 @@ public:
~DeviceView();
void SetDeviceManager(DeviceManager* manager);
void SetLibrary(LibraryModel* library);
signals:
void Load(const SongList& songs);
@ -67,6 +69,7 @@ private slots:
// Library menu actions
void Load();
void AddToPlaylist();
void Organise();
void Delete();
void DeviceDisconnected(int row);
@ -78,10 +81,12 @@ private:
private:
DeviceManager* manager_;
LibraryModel* library_;
MergedProxyModel* merged_model_;
QSortFilterProxyModel* sort_model_;
boost::scoped_ptr<DeviceProperties> properties_dialog_;
boost::scoped_ptr<OrganiseDialog> organise_dialog_;
QMenu* device_menu_;
QAction* connect_action_;
@ -92,6 +97,7 @@ private:
QMenu* library_menu_;
QAction* load_action_;
QAction* add_to_playlist_action_;
QAction* organise_action_;
QAction* delete_action_;
QModelIndex menu_index_;

View File

@ -473,6 +473,9 @@ msgstr ""
msgid "Delete files..."
msgstr ""
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr ""

View File

@ -474,6 +474,9 @@ msgstr ""
msgid "Delete files..."
msgstr ""
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr ""

View File

@ -474,6 +474,9 @@ msgstr ""
msgid "Delete files..."
msgstr ""
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr ""

View File

@ -475,6 +475,9 @@ msgstr "Verzögerung zwischen Visualisierungen"
msgid "Delete files..."
msgstr "Dateien löschen..."
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr "Von der Festplatte löschen..."

View File

@ -483,6 +483,9 @@ msgstr "Καθυστέρηση μεταξύ οπτικών εφέ"
msgid "Delete files..."
msgstr "Διαγραφή αρχείων..."
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr "Διαγραφή από τον δίσκο..."

View File

@ -475,6 +475,9 @@ msgstr "Delay between visualisations"
msgid "Delete files..."
msgstr ""
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr ""

View File

@ -473,6 +473,9 @@ msgstr "Delay between visualisations"
msgid "Delete files..."
msgstr ""
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr ""

View File

@ -477,6 +477,9 @@ msgstr "Retardo entre visualizaciones"
msgid "Delete files..."
msgstr "Eliminar archivos..."
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr "Eliminar del disco..."

View File

@ -473,6 +473,9 @@ msgstr ""
msgid "Delete files..."
msgstr "Poista tiedostot..."
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr "Poista levyltä..."

View File

@ -474,6 +474,9 @@ msgstr ""
msgid "Delete files..."
msgstr ""
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr ""

View File

@ -473,6 +473,9 @@ msgstr ""
msgid "Delete files..."
msgstr ""
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr ""

View File

@ -476,6 +476,9 @@ msgstr "Ritardo tra le visualizzazioni"
msgid "Delete files..."
msgstr "Elimina file..."
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr "Elimina dal disco..."

View File

@ -473,6 +473,9 @@ msgstr ""
msgid "Delete files..."
msgstr ""
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr ""

View File

@ -473,6 +473,9 @@ msgstr ""
msgid "Delete files..."
msgstr ""
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr ""

View File

@ -473,6 +473,9 @@ msgstr ""
msgid "Delete files..."
msgstr ""
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr ""

View File

@ -474,6 +474,9 @@ msgstr ""
msgid "Delete files..."
msgstr ""
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr ""

View File

@ -480,6 +480,9 @@ msgstr "Atraso entre visualizações"
msgid "Delete files..."
msgstr "Apagar ficheiros..."
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr "Apagar ficheiros no disco..."

View File

@ -478,6 +478,9 @@ msgstr "Atraso entre as visualizações"
msgid "Delete files..."
msgstr "Remover arquivos..."
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr "Apagar do disco..."

View File

@ -473,6 +473,9 @@ msgstr ""
msgid "Delete files..."
msgstr ""
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr ""

View File

@ -474,6 +474,9 @@ msgstr "Задержка между визуализациями"
msgid "Delete files..."
msgstr "Удалить файлы..."
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr "Удалить с диска..."

View File

@ -480,6 +480,9 @@ msgstr "Oneskorenie medzi vizualizáciami"
msgid "Delete files..."
msgstr "Vymazať súbory..."
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr "Vymazať z disku..."

View File

@ -475,6 +475,9 @@ msgstr ""
msgid "Delete files..."
msgstr ""
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr ""

View File

@ -473,6 +473,9 @@ msgstr ""
msgid "Delete files..."
msgstr ""
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr ""

View File

@ -463,6 +463,9 @@ msgstr ""
msgid "Delete files..."
msgstr ""
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr ""

View File

@ -479,6 +479,9 @@ msgstr "Затримка між візуалізаціями"
msgid "Delete files..."
msgstr "Вилучити файли..."
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr "Вилучити з диска..."

View File

@ -473,6 +473,9 @@ msgstr ""
msgid "Delete files..."
msgstr ""
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr ""

View File

@ -473,6 +473,9 @@ msgstr ""
msgid "Delete files..."
msgstr ""
msgid "Delete from device..."
msgstr ""
msgid "Delete from disk..."
msgstr ""

View File

@ -201,6 +201,7 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg
ui_->radio_view->SetModel(radio_model_);
ui_->devices_view->SetDeviceManager(devices_);
ui_->devices_view->SetLibrary(library_->model());
organise_dialog_->AddDirectoryModel(library_->model()->directory_model());