Add an "Organise files..." menu option to the Library view

This commit is contained in:
David Sansome 2010-06-24 22:45:30 +00:00
parent a8f505e266
commit dbe51d2cf5
35 changed files with 219 additions and 0 deletions

View File

@ -186,5 +186,8 @@
<file>icons/22x22/input-keyboard.png</file>
<file>icons/32x32/input-keyboard.png</file>
<file>icons/48x48/input-keyboard.png</file>
<file>icons/22x22/edit-delete.png</file>
<file>icons/32x32/edit-delete.png</file>
<file>icons/48x48/edit-delete.png</file>
</qresource>
</RCC>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -14,11 +14,13 @@
along with Clementine. If not, see <http://www.gnu.org/licenses/>.
*/
#include "librarydirectorymodel.h"
#include "librarymodel.h"
#include "libraryview.h"
#include "libraryitem.h"
#include "librarybackend.h"
#include "ui/iconloader.h"
#include "ui/organisedialog.h"
#include <QPainter>
#include <QContextMenuEvent>
@ -89,14 +91,24 @@ LibraryView::LibraryView(QWidget* parent)
add_to_playlist_ = context_menu_->addAction(IconLoader::Load("media-playback-start"),
tr("Add to playlist"), this, SLOT(AddToPlaylist()));
context_menu_->addSeparator();
organise_ = context_menu_->addAction(IconLoader::Load("edit-copy"),
tr("Organise files..."), this, SLOT(Organise()));
delete_ = context_menu_->addAction(IconLoader::Load("edit-delete"),
tr("Delete from disk..."), this, SLOT(Delete()));
context_menu_->addSeparator();
show_in_various_ = context_menu_->addAction(
tr("Show in various artists"), this, SLOT(ShowInVarious()));
no_show_in_various_ = context_menu_->addAction(
tr("Don't show in various artists"), this, SLOT(NoShowInVarious()));
delete_->setVisible(false); // TODO
ReloadSettings();
}
LibraryView::~LibraryView() {
}
void LibraryView::ReloadSettings() {
QSettings s;
s.beginGroup(kSettingsGroup);
@ -104,6 +116,11 @@ void LibraryView::ReloadSettings() {
SetAutoOpen(s.value("auto_open", true).toBool());
}
void LibraryView::SetTaskManager(TaskManager *task_manager) {
organise_dialog_.reset(new OrganiseDialog(task_manager));
organise_dialog_->AddDirectoryModel(library_->directory_model());
}
void LibraryView::SetLibrary(LibraryModel *library) {
library_ = library;
}
@ -222,3 +239,23 @@ void LibraryView::scrollTo(const QModelIndex &index, ScrollHint hint) {
else
QTreeView::scrollTo(index, hint);
}
void LibraryView::Organise() {
QModelIndexList selected_indexes =
qobject_cast<QSortFilterProxyModel*>(model())->mapSelectionToSource(
selectionModel()->selection()).indexes();
SongList songs = library_->GetChildSongs(selected_indexes);
QStringList filenames;
foreach (const Song& song, songs) {
filenames << song.filename();
}
organise_dialog_->SetCopy(false);
organise_dialog_->SetFilenames(filenames);
organise_dialog_->show();
}
void LibraryView::Delete() {
}

View File

@ -21,7 +21,11 @@
#include <QStyledItemDelegate>
#include <boost/scoped_ptr.hpp>
class LibraryModel;
class OrganiseDialog;
class TaskManager;
class LibraryItemDelegate : public QStyledItemDelegate {
public:
@ -34,9 +38,11 @@ class LibraryView : public AutoExpandingTreeView {
public:
LibraryView(QWidget* parent = 0);
~LibraryView();
static const char* kSettingsGroup;
void SetTaskManager(TaskManager* task_manager);
void SetLibrary(LibraryModel* library);
// QTreeView
@ -61,6 +67,8 @@ class LibraryView : public AutoExpandingTreeView {
private slots:
void Load();
void AddToPlaylist();
void Organise();
void Delete();
void ShowInVarious();
void NoShowInVarious();
@ -78,9 +86,13 @@ class LibraryView : public AutoExpandingTreeView {
QModelIndex context_menu_index_;
QAction* load_;
QAction* add_to_playlist_;
QAction* organise_;
QAction* delete_;
QAction* show_in_various_;
QAction* no_show_in_various_;
boost::scoped_ptr<OrganiseDialog> organise_dialog_;
bool is_in_keyboard_search_;
};

View File

@ -440,6 +440,9 @@ msgstr ""
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -981,6 +984,9 @@ msgstr "خيارات"
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -441,6 +441,9 @@ msgstr "Snížit hlasitost"
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -985,6 +988,9 @@ msgstr "Možnosti"
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -441,6 +441,9 @@ msgstr ""
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -986,6 +989,9 @@ msgstr "Indstillinger"
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -442,6 +442,9 @@ msgstr "Lautstärke verringern"
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -989,6 +992,9 @@ msgstr "Einstellungen"
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -444,6 +444,9 @@ msgstr "Μείωση έντασης"
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -990,6 +993,9 @@ msgstr "Επιλογές"
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -442,6 +442,9 @@ msgstr "Decrease volume"
msgid "Delay between visualizations"
msgstr "Delay between visualisations"
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -986,6 +989,9 @@ msgstr ""
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -440,6 +440,9 @@ msgstr ""
msgid "Delay between visualizations"
msgstr "Delay between visualisations"
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -983,6 +986,9 @@ msgstr "Options"
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -444,6 +444,9 @@ msgstr "Disminuir volumen"
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -994,6 +997,9 @@ msgstr "Opciones"
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -440,6 +440,9 @@ msgstr ""
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -981,6 +984,9 @@ msgstr ""
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -441,6 +441,9 @@ msgstr "Diminuer le volume"
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -989,6 +992,9 @@ msgstr "Options"
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -440,6 +440,9 @@ msgstr ""
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -983,6 +986,9 @@ msgstr ""
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -443,6 +443,9 @@ msgstr "Riduci il volume"
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -992,6 +995,9 @@ msgstr "Opzioni"
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -440,6 +440,9 @@ msgstr ""
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -983,6 +986,9 @@ msgstr ""
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -440,6 +440,9 @@ msgstr ""
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -984,6 +987,9 @@ msgstr "Instillinger"
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -440,6 +440,9 @@ msgstr "Reduire lo volum"
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -981,6 +984,9 @@ msgstr "Opcions"
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -441,6 +441,9 @@ msgstr ""
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -983,6 +986,9 @@ msgstr "Opcje"
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -442,6 +442,9 @@ msgstr "Diminuir volume"
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -988,6 +991,9 @@ msgstr "Opções"
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -442,6 +442,9 @@ msgstr "Diminuir volume"
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -990,6 +993,9 @@ msgstr ""
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -440,6 +440,9 @@ msgstr ""
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -982,6 +985,9 @@ msgstr "Opțiuni"
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -441,6 +441,9 @@ msgstr "Уменьшить громкость"
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -987,6 +990,9 @@ msgstr "Настройки"
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -443,6 +443,9 @@ msgstr "Znížiť hlasitosť"
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -988,6 +991,9 @@ msgstr "Možnosti"
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -442,6 +442,9 @@ msgstr "Sänk volymen"
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -986,6 +989,9 @@ msgstr "Flaggor"
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -440,6 +440,9 @@ msgstr "Sesi azalt"
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -983,6 +986,9 @@ msgstr "Seçenekler"
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -431,6 +431,9 @@ msgstr ""
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -972,6 +975,9 @@ msgstr ""
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -442,6 +442,9 @@ msgstr "Зменшити гучність"
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -988,6 +991,9 @@ msgstr ""
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -440,6 +440,9 @@ msgstr "降低音量"
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -981,6 +984,9 @@ msgstr "选项"
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -440,6 +440,9 @@ msgstr ""
msgid "Delay between visualizations"
msgstr ""
msgid "Delete from disk..."
msgstr ""
msgid "Delete originals"
msgstr ""
@ -981,6 +984,9 @@ msgstr ""
msgid "Organise Files"
msgstr ""
msgid "Organise songs..."
msgstr ""
msgid "Organising files"
msgstr ""

View File

@ -182,6 +182,7 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg
ui_->library_view->setModel(library_sort_model_);
ui_->library_view->SetLibrary(library_->model());
ui_->library_view->SetTaskManager(task_manager_);
settings_dialog_->SetLibraryDirectoryModel(library_->model()->directory_model());
ui_->radio_view->SetModel(radio_model_);

View File

@ -13,6 +13,10 @@
<property name="windowTitle">
<string>Organise Files</string>
</property>
<property name="windowIcon">
<iconset resource="../../data/data.qrc">
<normaloff>:/icon.png</normaloff>:/icon.png</iconset>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QFormLayout" name="formLayout">