diff options
-rw-r--r-- | filesystemwidget.cpp | 39 | ||||
-rw-r--r-- | filesystemwidget.h | 5 | ||||
-rw-r--r-- | shemov.cpp | 2 |
3 files changed, 11 insertions, 35 deletions
diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp index d857407..63bef46 100644 --- a/filesystemwidget.cpp +++ b/filesystemwidget.cpp @@ -177,11 +177,7 @@ void FilesystemWidget::deleteFiles(){ int count(0); if(!selected.isEmpty()){ count = selected.count(); - QAction *refresh = action(mFileView, "RE"); - if(refresh){ - // a refresh would invalidate selection - refresh->setEnabled(false); - } + mRefreshAction->setEnabled(false); QString message = QString(tr("Really delete %1 files?")).arg(QString::number(selected.count())); int retval = QMessageBox::question(this, tr("Question"), message, QMessageBox::Yes | QMessageBox::No); if(retval == QMessageBox::Yes){ @@ -192,9 +188,7 @@ void FilesystemWidget::deleteFiles(){ } mFileView->selectionModel()->clearSelection(); mModel->refresh(QModelIndex()); - if(refresh){ - refresh->setEnabled(true); - } + mRefreshAction->setEnabled(true); }else{ count = 1; QModelIndex cur = mFileView->currentIndex(); @@ -222,10 +216,7 @@ void FilesystemWidget::copyFiles(){ QString message = QString(tr("Really copy %1 files to %2?")).arg(selected.count()).arg(root.absoluteFilePath()); int retval = QMessageBox::question(this, tr("Question"), message, QMessageBox::Yes | QMessageBox::No); if(retval == QMessageBox::Yes){ - QAction *refresh = action(mFileView, "RE"); - if(refresh){ - refresh->setEnabled(false); - } + mRefreshAction->setEnabled(false); int files(0), dirs(0), failed(0); foreach(QModelIndex idx, selected){ QModelIndex real = proxy->mapToSource(idx); @@ -246,9 +237,7 @@ void FilesystemWidget::copyFiles(){ statusbarMessage(message); mFileView->selectionModel()->clearSelection(); mModel->refresh(rootIndex); - if(refresh){ - refresh->setEnabled(true); - } + mRefreshAction->setEnabled(true); } } @@ -264,10 +253,7 @@ void FilesystemWidget::moveFiles(){ QString message = QString(tr("Really move %1 file(s) to %2?")).arg(selected.count()).arg(root.absoluteFilePath()); int retval = QMessageBox::question(this, tr("Question"), message, QMessageBox::Yes | QMessageBox::No); if(retval == QMessageBox::Yes){ - QAction *refresh = action(mFileView, "RE"); - if(refresh){ - refresh->setEnabled(false); - } + mRefreshAction->setEnabled(false); int success(0), failed(0); foreach(QModelIndex cur, selected){ QModelIndex real = proxy->mapToSource(cur); @@ -281,9 +267,7 @@ void FilesystemWidget::moveFiles(){ } QString message = QString(tr("Successfully moved %1 file(s), %2 errors")).arg(success).arg(failed); emit statusbarMessage(message); - if(refresh){ - refresh->setEnabled(true); - } + mRefreshAction->setEnabled(true); mFileView->selectionModel()->clearSelection(); mModel->refresh(QModelIndex()); } @@ -557,14 +541,3 @@ QStringList FilesystemWidget::selectedFiles(){ } return retval; } - -QAction * FilesystemWidget::action(QWidget *widget, const QVariant &data) const{ - QAction *retval = 0; - foreach(QAction *a, widget->actions()){ - if(a->data() == data){ - retval = a; - break; - } - } - return retval; -} diff --git a/filesystemwidget.h b/filesystemwidget.h index 6ee60f6..8baae88 100644 --- a/filesystemwidget.h +++ b/filesystemwidget.h @@ -34,6 +34,8 @@ class FilesystemWidget : public QWidget { QDirModel *dirModel() { return mModel; }; const QString windowTitle() const { return mWindowTitle; }; void setArchiveDialog(ArchiveEditDialog *dlg); + void setRefreshAction(QAction *refreshAction) { mRefreshAction = refreshAction; } + QAction *refreshAction() { return mRefreshAction; } signals: void windowTitle(const QString &); @@ -70,7 +72,7 @@ class FilesystemWidget : public QWidget { QPair<QString, QStringList> programData(const QString &prefix, const QString &preferred); QStringList selectedFiles(); QStringList mExpandedDirs; - QAction *action(QWidget *widget, const QVariant &data) const; + //QAction *action(QWidget *widget, const QVariant &data) const; QDirModel *mModel; QTreeView *mDirView; FileView *mFileView; @@ -82,6 +84,7 @@ class FilesystemWidget : public QWidget { QString mTemplate; ArchiveEditDialog *mAEDialog; qint64 mSize; + QAction *mRefreshAction; }; #endif @@ -280,7 +280,7 @@ void SheMov::createActions(){ connect(mDeleteFilesA, SIGNAL(triggered()), mFSWidget, SLOT(deleteFiles())); mRefreshA = new QAction(tr("Refresh"), this); mRefreshA->setShortcut(Qt::Key_F4); - mRefreshA->setData("RE"); + mFSWidget->setRefreshAction(mRefreshA); connect(mRefreshA, SIGNAL(triggered()), mFSWidget->fileView(), SLOT(refresh())); connect(mRefreshA, SIGNAL(triggered()), this, SLOT(setFsFree())); mCopyA = new QAction(tr("Copy file(s)..."), this); |