diff options
author | Arno <arno@disconnect.de> | 2016-09-04 06:43:19 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2016-09-04 06:43:19 +0200 |
commit | f09ca72fd0828ed365c1619a91cb93f3211b42d2 (patch) | |
tree | 363bd5cb49f8b72534d699157cd8aae062e2c52e /filewidget.cpp | |
parent | 23a23ef364ee13cba413a3bd904ec4391838abbf (diff) | |
download | ShemovCleaner-f09ca72fd0828ed365c1619a91cb93f3211b42d2.tar.gz ShemovCleaner-f09ca72fd0828ed365c1619a91cb93f3211b42d2.tar.bz2 ShemovCleaner-f09ca72fd0828ed365c1619a91cb93f3211b42d2.zip |
Move some code around: prep for actions
* rename itemDoubleClicked to itemSelected
* turn cd and fileData into functions
* Bugfix: actually exec() mQFiles when gathering data!
Diffstat (limited to 'filewidget.cpp')
-rw-r--r-- | filewidget.cpp | 48 |
1 files changed, 29 insertions, 19 deletions
diff --git a/filewidget.cpp b/filewidget.cpp index 478ab26..5727e88 100644 --- a/filewidget.cpp +++ b/filewidget.cpp @@ -73,7 +73,7 @@ void FileWidget::setupGui(){ mFileView->setSortingEnabled(true); mFileView->setSelectionBehavior(QAbstractItemView::SelectRows); mFileView->setSelectionMode(QAbstractItemView::ExtendedSelection); - connect(mFileView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(itemDoubleClicked(QModelIndex))); + connect(mFileView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(itemSelected(QModelIndex))); QGroupBox *filesGB = new QGroupBox(tr("Files")); QHBoxLayout *filesGBL = new QHBoxLayout; filesGBL->addWidget(mFileView); @@ -106,6 +106,11 @@ void FileWidget::setupGui(){ mFileView->setFocus(); } +void FileWidget::fileData(const QString &fullPath, const QString &md5){ + mFileDisplay->setFileData(fullPath, md5); + mFileDisplay->show(); +} + void FileWidget::selectDir(){ QString dir = QFileDialog::getExistingDirectory(this, tr("Select directory"), QDir::homePath()); if(!dir.isEmpty()){ @@ -205,6 +210,7 @@ int FileWidget::md5Count(const QString &md5) { } if(!retval){ mQFiles.bindValue(":md5", md5); + mQFiles.exec(); while(mQFiles.next()){ retval = mQFiles.value(0).toInt(); } @@ -263,24 +269,28 @@ void FileWidget::fileSelectionChanged(const QItemSelection &selected, const QIte emit durationChanged(dur.toString()); } -void FileWidget::itemDoubleClicked(const QModelIndex &idx){ - if(idx.column() == NameColumn){ - int attr = idx.data(AttrsRole).toInt(); - if(attr == ParentDir || attr == Directory){ - QDir d(mDir->text()); - d.cd(idx.data().toString()); - QString newDir = d.absolutePath(); - mDir->setText(QDir::toNativeSeparators(newDir)); - gatherData(); - return; - } - if(attr == Present){ - QString fp = idx.data(FullPathRole).toString(); - QString md5 = idx.data(MD5SumRole).toString(); - mFileDisplay->setFileData(fp, md5); - mFileDisplay->show(); - } +void FileWidget::itemSelected(const QModelIndex &idx){ + QModelIndex name = idx; + QString mime = idx.sibling(idx.row(), MimeColumn).data().toString(); + if(name.column() != NameColumn){ + name = idx.sibling(idx.row(), NameColumn); } + int attr = name.data(AttrsRole).toInt(); + if(attr == ParentDir || attr == Directory){ + cd(name.data().toString()); + return; + } + if(mime.startsWith("video")){ + fileData(name.data(FullPathRole).toString(), name.data(MD5SumRole).toString()); + } +} + +void FileWidget::cd(const QString &to){ + QDir cur(mDir->text()); + cur.cd(to); + QString newDir = cur.absolutePath(); + mDir->setText(QDir::toNativeSeparators(newDir)); + gatherData(); } void FileWidget::keyPressEvent(QKeyEvent *e){ @@ -304,7 +314,7 @@ void FileWidget::keyPressEvent(QKeyEvent *e){ if(mFileView->hasFocus()){ if(e->key() == Qt::Key_Return){ QModelIndex idx = mFileView->selectionModel()->selectedRows(NameColumn).at(0); - itemDoubleClicked(idx); + itemSelected(idx); e->accept(); return; } |