diff options
-rw-r--r-- | filesystemwidget.cpp | 4 | ||||
-rw-r--r-- | filesystemwidget.h | 1 | ||||
-rw-r--r-- | newmoviewizard.cpp | 20 | ||||
-rw-r--r-- | newmoviewizard.h | 3 | ||||
-rw-r--r-- | shemov.cpp | 2 |
5 files changed, 26 insertions, 4 deletions
diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp index ac840bd..2dd8076 100644 --- a/filesystemwidget.cpp +++ b/filesystemwidget.cpp @@ -149,6 +149,10 @@ bool FilesystemWidget::isMounted(){ return false; } +const QString FilesystemWidget::currentDir() const { + return mFileModel->dir().absolutePath(); +} + void FilesystemWidget::directoryChanged(const QModelIndex &selected, const QModelIndex &deselected){ QModelIndex real = mDirProxy->mapToSource(selected); if(!real.isValid()){ diff --git a/filesystemwidget.h b/filesystemwidget.h index 108d00a..23f8572 100644 --- a/filesystemwidget.h +++ b/filesystemwidget.h @@ -42,6 +42,7 @@ class FilesystemWidget : public QWidget { PictureViewer2 *pictureViewer() { return mPicViewer; } QToolBar *toolBar() { return mToolBar; } bool isMounted(); + const QString currentDir() const; signals: void windowTitle(const QString &); diff --git a/newmoviewizard.cpp b/newmoviewizard.cpp index 1c84f5f..137f7c2 100644 --- a/newmoviewizard.cpp +++ b/newmoviewizard.cpp @@ -405,6 +405,14 @@ void MovieInfoPage::addFile(const QString &file){ mFileView->resizeColumnToContents(2); } +void MovieInfoPage::selectFirst(){ + QModelIndex fIdx = mFileModel->rootIndex().child(0, 0); + if(fIdx.isValid()){ + mFileView->selectionModel()->select(fIdx, QItemSelectionModel::Rows | QItemSelectionModel::ClearAndSelect); + } + +} + void MovieInfoPage::initCompleters(){ QSqlDatabase db = QSqlDatabase::database("treedb"); db.open(); @@ -417,12 +425,15 @@ void MovieInfoPage::initCompleters(){ } void MovieInfoPage::addOld(){ - QSettings s; - QString startDir = s.value("paths/addfilespath", QDir::homePath()).toString(); - QString oldFile = QFileDialog::getOpenFileName(this, tr("Select files"), startDir); - if(oldFile.isEmpty()){ + QFileDialog *oldFileDlg = new QFileDialog(this, tr("Select source"), mCurrentDir); + Helper::centerWidget(oldFileDlg); + int retval = oldFileDlg->exec(); + if(retval != QDialog::Accepted || oldFileDlg->selectedFiles().isEmpty()){ + oldFileDlg->deleteLater(); return; } + QStringList files = oldFileDlg->selectedFiles(); + QString oldFile = files.first(); QFileInfo fi(oldFile); qint64 oldSize = fi.size(); QString fullPath = fi.absoluteFilePath(); @@ -438,6 +449,7 @@ void MovieInfoPage::addOld(){ mFileModel->appendRow(itemData, realIdx); mFileView->expandAll(); } + oldFileDlg->deleteLater(); } void MovieInfoPage::addFiles(){ diff --git a/newmoviewizard.h b/newmoviewizard.h index af185ae..b65551b 100644 --- a/newmoviewizard.h +++ b/newmoviewizard.h @@ -55,6 +55,8 @@ class MovieInfoPage : public QWizardPage { WizardTreeModel *model() { return mFileModel; } virtual void initializePage(); void addFile(const QString &file); + void setCurrentDir(const QString &dir) { mCurrentDir = dir; } + void selectFirst(); public slots: void initCompleters(); @@ -80,6 +82,7 @@ class MovieInfoPage : public QWizardPage { QCompleter *mSeriesCompleter; QStringListModel *mSeriesCompleterModel; QSortFilterProxyModel *mProxy; + QString mCurrentDir; }; class MovieMappingPage : public QWizardPage { @@ -298,6 +298,7 @@ void SheMov::newMovieWizardWithFiles(){ return; } mNewMovieWizard->restart(); + mNewMovieWizard->infoPage()->setCurrentDir(mFSWidget->currentDir()); foreach(QModelIndex sel, selected){ mNewMovieWizard->infoPage()->addFile(sel.data(SmDirModel::FullPathRole).toString()); } @@ -310,6 +311,7 @@ void SheMov::newMovieWizardWithFiles(){ mNewMovieWizard->infoPage()->addFile(fi.absoluteFilePath()); } } + mNewMovieWizard->infoPage()->selectFirst(); mNewMovieWizard->show(); } |