summaryrefslogtreecommitdiffstats
path: root/filestreewidget.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2010-07-30 19:59:52 +0200
committerArno <am@disconnect.de>2010-07-30 19:59:52 +0200
commit066cc53c2506fb7f7cb7b3b0d888243df611cacd (patch)
tree73af8e7b7ea17255d95a84b3ee9dcd5d6946c171 /filestreewidget.cpp
parenta493d6500c33a0956e0165ad53136fa6110a7a64 (diff)
downloadSheMov-066cc53c2506fb7f7cb7b3b0d888243df611cacd.tar.gz
SheMov-066cc53c2506fb7f7cb7b3b0d888243df611cacd.tar.bz2
SheMov-066cc53c2506fb7f7cb7b3b0d888243df611cacd.zip
Bugfix commit
The journey through the internals of SheMov started by fixing SeriesTreeWidget::readSettings(). The selected index didn't really get selected on startup because only QItemSelectionModel::setCurrendt() was called. Replace it with QItemSelectionModel::select() and QTreeView::setCurrent(). Also fix SeriesTreeWidget::writeSettings() to only write selected items to QSettings() when something is selected. While working on selections I realized that there is a serious bug in Helper::moveToArchive. The destination directory in the archive must be created if it doesn't exist. For a testcase I needed an easy way to move files back from the archive to incoming directory, so I added FilesTreeWiget::moveToDirectory(). This lets you move files from the FilesTreeWidget to any directory. During testing I realized that SeriesTreeWidget::deleteFromSeries() QMessageBox() doesn't show files when deleting a series part. Fixed that by adding SeriesParts to file list. Finally a newly added SeriesPart gets selected and selected by expanding it first and then calling QItemSelectionModel::select() To make a long story short: 1. fix SeriesTreeWidget::{read,write}Settings 2. add FilesTreeWidget::moveToDirectory() 3. fix SeriesTreeWidget::deleteFromSeries() QMessageBox 4. fix selecting newly added SeriesParts
Diffstat (limited to 'filestreewidget.cpp')
-rw-r--r--filestreewidget.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/filestreewidget.cpp b/filestreewidget.cpp
index d27a22e..a348ac4 100644
--- a/filestreewidget.cpp
+++ b/filestreewidget.cpp
@@ -17,6 +17,8 @@
#include <QSpinBox>
#include <QPushButton>
#include <QProcess>
+#include <QFileDialog>
+#include <QSettings>
#include <QDebug>
@@ -139,6 +141,23 @@ void FilesTreeWidget::removeFiles(){
}
}
+void FilesTreeWidget::moveToDirectory(){
+ QModelIndexList selected = mView->selectionModel()->selectedRows();
+ if(selected.isEmpty()){
+ return;
+ }
+ QSettings s;
+ QString startDir = s.value("paths/selecteddir", QDir::homePath()).toString();
+ QString dir = QFileDialog::getExistingDirectory(this, tr("Select directory"), startDir);
+ if(!dir.isEmpty()){
+ foreach(QModelIndex i, selected){
+ QString source = i.data(FilesTreeModel::FullPathRole).toString();
+ QString destination = QString("%1/%2").arg(dir).arg(i.data(FilesTreeModel::FileNameRole).toString());
+ QFile::rename(source, destination);
+ }
+ }
+}
+
void FilesTreeWidget::fileSelectionChanged(const QModelIndex &current, const QModelIndex &previous){
Q_UNUSED(previous);
int seriesPartId = current.data(FilesTreeModel::SeriesPartIdRole).toInt();