summaryrefslogtreecommitdiffstats
path: root/filestreewidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'filestreewidget.cpp')
-rw-r--r--filestreewidget.cpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/filestreewidget.cpp b/filestreewidget.cpp
index d510312..19dbbdf 100644
--- a/filestreewidget.cpp
+++ b/filestreewidget.cpp
@@ -35,6 +35,7 @@
#include "filestreewidget.h"
#include "smglobals.h"
#include "filestreemodel.h"
+#include "seriestreewidget.h"
#include "seriestreemodel.h"
#include "helper.h"
#include "pictureviewer2.h"
@@ -298,6 +299,19 @@ void FilesTreeWidget::playSelected(){
playItems(fullPaths);
}
+void FilesTreeWidget::moveToSeries(){
+ SeriesTreeWidget *vWidget = SmGlobals::instance()->seriesTreeWidget();
+ QModelIndex sel = vWidget->seriesTree()->selectionModel()->currentIndex();
+ QModelIndex real = vWidget->seriesProxy()->mapToSource(sel);
+ QModelIndexList nfiles = mView->selectionModel()->selectedRows();
+ QList<QPersistentModelIndex> files;
+ foreach (QModelIndex i, nfiles){
+ files << i;
+ }
+ FileMoveDialog fmd(real, files, 0, 0);
+ fmd.exec();
+}
+
void FilesTreeWidget::fileSelectionChanged(){
QModelIndexList selected = mView->selectionModel()->selectedRows();
qint64 selSize = 0;
@@ -594,3 +608,42 @@ bool FilesTreeSortModel::lessThan(const QModelIndex &left, const QModelIndex &ri
}
return QSortFilterProxyModel::lessThan(left, right);
}
+
+FileMoveDialog::FileMoveDialog(QPersistentModelIndex selected, QList<QPersistentModelIndex> files, QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f), mFiles(files){
+ QLabel *l1 = new QLabel(tr("Select destination"));
+ QVBoxLayout *selectionLayout = new QVBoxLayout;
+ selectionLayout->addWidget(l1);
+ mTree = new QTreeView;
+ mModel = static_cast<SeriesTreeModel*>(SmGlobals::instance()->model("SeriesModel"));
+ mTree->setModel(mModel);
+ selectionLayout->addWidget(mTree);
+ for(int i = 1; i < SeriesTreeModel::NumFields; ++i){
+ mTree->setColumnHidden(i, true);
+ }
+ mTree->resizeColumnToContents(0);
+ mTree->setAlternatingRowColors(true);
+ mTree->expand(selected);
+ mTree->scrollTo(selected, QAbstractItemView::PositionAtTop);
+ QHBoxLayout *buttonLayout = new QHBoxLayout;
+ mOk = new QPushButton(tr("Ok"));
+ connect(mOk, SIGNAL(clicked()), this, SLOT(accept()));
+ mCancel = new QPushButton(tr("Cancel"));
+ connect(mCancel, SIGNAL(clicked()), this, SLOT(reject()));
+ buttonLayout->setAlignment(Qt::AlignRight);
+ buttonLayout->addWidget(mOk);
+ buttonLayout->addWidget(mCancel);
+ QVBoxLayout *mainLayout = new QVBoxLayout;
+ mainLayout->addLayout(selectionLayout);
+ mainLayout->addLayout(buttonLayout);
+ setLayout(mainLayout);
+}
+
+void FileMoveDialog::accept(){
+ if(mFiles.isEmpty()){
+ return;
+ }
+ FilesTreeModel *filesModel = static_cast<FilesTreeModel*>(SmGlobals::instance()->model("FilesModel"));
+ int newSeriesIdx = mTree->selectionModel()->currentIndex().data(SeriesTreeModel::SeriesPartIdRole).toInt();
+ filesModel->updateSeries(newSeriesIdx, mFiles);
+ QDialog::accept();
+}