diff options
author | Arno <arno@disconnect.de> | 2016-09-04 08:58:32 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2016-09-04 08:58:32 +0200 |
commit | 6faf839f511102c6daa69ffb9d8d7231656d7c09 (patch) | |
tree | ed40e87a811499025bbce5569b31889d7a2da7c3 /filewidget.cpp | |
parent | 15025b8b62697787f85fffc7349fb1f9847d39c4 (diff) | |
download | ShemovCleaner-6faf839f511102c6daa69ffb9d8d7231656d7c09.tar.gz ShemovCleaner-6faf839f511102c6daa69ffb9d8d7231656d7c09.tar.bz2 ShemovCleaner-6faf839f511102c6daa69ffb9d8d7231656d7c09.zip |
Add menuBar to FileWidget
Diffstat (limited to 'filewidget.cpp')
-rw-r--r-- | filewidget.cpp | 45 |
1 files changed, 38 insertions, 7 deletions
diff --git a/filewidget.cpp b/filewidget.cpp index ac75d48..f1972cf 100644 --- a/filewidget.cpp +++ b/filewidget.cpp @@ -74,7 +74,7 @@ void FileWidget::setupGui(){ mFileView->setSortingEnabled(true); mFileView->setSelectionBehavior(QAbstractItemView::SelectRows); mFileView->setSelectionMode(QAbstractItemView::ExtendedSelection); - connect(mFileView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(itemSelected(QModelIndex))); + connect(mFileView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(properties(QModelIndex))); QGroupBox *filesGB = new QGroupBox(tr("Files")); QHBoxLayout *filesGBL = new QHBoxLayout; filesGBL->addWidget(mFileView); @@ -96,8 +96,10 @@ void FileWidget::setupGui(){ mQFiles.prepare("SELECT COUNT(*) FROM files WHERE cmd5sum = :md5"); mFileDisplay = new FileDisplay(this); + mMenuBar = new QMenuBar; QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addWidget(mMenuBar); mainLayout->addWidget(dirGB); mainLayout->addWidget(filterGB); mainLayout->addWidget(filesGB); @@ -270,7 +272,19 @@ void FileWidget::fileSelectionChanged(const QItemSelection &selected, const QIte emit durationChanged(dur.toString()); } -void FileWidget::itemSelected(const QModelIndex &idx){ +void FileWidget::properties(){ + QModelIndexList idxs = mFileView->selectionModel()->selectedRows(); + if(!idxs.isEmpty()){ + QModelIndex cur = idxs.first(); + int attr = cur.data(AttrsRole).toInt(); + if(attr != ParentDir && attr != Directory){ + mFileView->selectionModel()->select(cur, QItemSelectionModel::Rows); + properties(cur); + } + } +} + +void FileWidget::properties(const QModelIndex &idx){ QModelIndex name = idx; QString mime = idx.sibling(idx.row(), MimeColumn).data().toString(); if(name.column() != NameColumn){ @@ -287,15 +301,32 @@ void FileWidget::itemSelected(const QModelIndex &idx){ } void FileWidget::cd(const QString &to){ + QString ld = mDir->text(); QDir cur(mDir->text()); - cur.cd(to); - QString newDir = cur.absolutePath(); - mDir->setText(QDir::toNativeSeparators(newDir)); - gatherData(); + if(cur.cd(to)){ + QString newDir = cur.absolutePath(); + mDir->setText(QDir::toNativeSeparators(newDir)); + mLastDir = ld; + gatherData(); + }else{ + QString msg = QString(tr("Could not cd to %1")).arg(to); + emit statusMessage(msg); + } +} + +void FileWidget::cdUp(){ + cd(".."); +} + +void FileWidget::cdLast(){ + cd(mLastDir); } void FileWidget::deleteFiles(){ QModelIndexList selFiles = mFileView->selectionModel()->selectedRows(NameColumn); + if(selFiles.isEmpty()){ + return; + } const QString msg = QString(tr("Really delete %1 file(s)?")).arg(QString::number(selFiles.count())); int retval = QMessageBox::question(this, tr("Delete files..."), msg); if(retval == QMessageBox::Yes){ @@ -325,7 +356,7 @@ void FileWidget::keyPressEvent(QKeyEvent *e){ if(mFileView->hasFocus()){ if(e->key() == Qt::Key_Return){ QModelIndex idx = mFileView->selectionModel()->selectedRows(NameColumn).at(0); - itemSelected(idx); + properties(idx); goto exit; } if(e->key() == Qt::Key_Delete){ |