summaryrefslogtreecommitdiffstats
path: root/filewidget.cpp
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2016-09-04 06:43:19 +0200
committerArno <arno@disconnect.de>2016-09-04 06:43:19 +0200
commitf09ca72fd0828ed365c1619a91cb93f3211b42d2 (patch)
tree363bd5cb49f8b72534d699157cd8aae062e2c52e /filewidget.cpp
parent23a23ef364ee13cba413a3bd904ec4391838abbf (diff)
downloadShemovCleaner-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.cpp48
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;
}