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 | |
parent | 15025b8b62697787f85fffc7349fb1f9847d39c4 (diff) | |
download | ShemovCleaner-6faf839f511102c6daa69ffb9d8d7231656d7c09.tar.gz ShemovCleaner-6faf839f511102c6daa69ffb9d8d7231656d7c09.tar.bz2 ShemovCleaner-6faf839f511102c6daa69ffb9d8d7231656d7c09.zip |
Add menuBar to FileWidget
-rw-r--r-- | back_dick.png | bin | 0 -> 822 bytes | |||
-rw-r--r-- | filewidget.cpp | 45 | ||||
-rw-r--r-- | filewidget.h | 13 | ||||
-rw-r--r-- | shemovcleaner.cpp | 32 | ||||
-rw-r--r-- | shemovcleaner.h | 6 | ||||
-rw-r--r-- | shemovcleaner.qrc | 1 |
6 files changed, 87 insertions, 10 deletions
diff --git a/back_dick.png b/back_dick.png Binary files differnew file mode 100644 index 0000000..ec7eded --- /dev/null +++ b/back_dick.png 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){ diff --git a/filewidget.h b/filewidget.h index d16f307..36e63d1 100644 --- a/filewidget.h +++ b/filewidget.h @@ -5,6 +5,7 @@ #include <QSqlDatabase> #include <QSqlQuery> #include <QItemSelection> +#include <QMenuBar> class QLineEdit; class QStandardItemModel; @@ -22,6 +23,7 @@ class FileWidget : public QWidget { enum Columns { IconColumn = 0, NameColumn = 1, MimeColumn = 2, DurationColumn = 3, Md5Column = 4 }; explicit FileWidget(QWidget *parent = 0); QTreeView *fileView() { return mFileView; } + QMenuBar *menuBar() { return mMenuBar; } ~FileWidget(); signals: @@ -32,14 +34,17 @@ class FileWidget : public QWidget { public slots: void fileSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected); void cd(const QString &to); + void cdUp(); + void cdLast(); void deleteFiles(); - - private slots: void gatherData(); void selectDir(); + + private slots: void filter(); void clearFilter(); - void itemSelected(const QModelIndex &idx); + void properties(); + void properties(const QModelIndex &idx); protected: virtual void keyPressEvent(QKeyEvent *e); @@ -61,6 +66,8 @@ class FileWidget : public QWidget { QSqlQuery mQOrigin; QSqlQuery mQFiles; FileDisplay *mFileDisplay; + QMenuBar *mMenuBar; + QString mLastDir; }; #endif // FILEWIDGET_H diff --git a/shemovcleaner.cpp b/shemovcleaner.cpp index aaf0a5f..deb9bc4 100644 --- a/shemovcleaner.cpp +++ b/shemovcleaner.cpp @@ -182,9 +182,41 @@ void ShemovCleaner::createActions(){ mTorrentTab->addAction(createSeparator()); mTorrentTab->addAction(mTorDirA); + //TorrentDisplay mTorCopyToClipA = new QAction(QIcon(":/edit-copy.png"), tr("Copy"), this); connect(mTorCopyToClipA, SIGNAL(triggered()), mTorrentTab->torrentDisplay(), SLOT(copyToClipboard())); mTorrentTab->torrentDisplay()->addAction(mTorCopyToClipA); + + //FileWidget + mFileDirA = new QAction(QIcon(":/folder.png"), tr("Select folder..."), this); + connect(mFileDirA, SIGNAL(triggered()), mFileTab, SLOT(selectDir())); + mFileRefreshA = new QAction(QIcon(":/refresh.png"), tr("Refresh"), this); + connect(mFileRefreshA, SIGNAL(triggered()), mFileTab, SLOT(gatherData())); + mFileUpA = new QAction(QIcon(":/up_dick.png"), tr("Up directory"), this); + connect(mFileUpA, SIGNAL(triggered()), mFileTab, SLOT(cdUp())); + mFileBackDirA = new QAction(QIcon(":/back_dick"), tr("Back"), this); + connect(mFileBackDirA, SIGNAL(triggered()), mFileTab, SLOT(cdLast())); + mFilePropertiesA = new QAction(QIcon(":/diaper.png"), tr("Properties..."), this); + connect(mFilePropertiesA, SIGNAL(triggered()), mFileTab, SLOT(properties())); + mFileDeleteA = new QAction(QIcon(":/delete.png"), tr("Delete..."), this); + connect(mFileDeleteA, SIGNAL(triggered()), mFileTab, SLOT(deleteFiles())); + + QMenu *fileFileM = new QMenu(tr("File")); + fileFileM->addAction(mFileDirA); + fileFileM->addAction(mFileRefreshA); + fileFileM->addSeparator(); + fileFileM->addAction(quitA); + mFileTab->menuBar()->addMenu(fileFileM); + QMenu *fileEditM = new QMenu(tr("Edit")); + fileEditM->addAction(mFileUpA); + fileEditM->addAction(mFileBackDirA); + fileEditM->addSeparator(); + fileEditM->addAction(mFileDeleteA); + fileEditM->addSeparator(); + fileEditM->addAction(configA); + fileEditM->addSeparator(); + fileEditM->addAction(mFilePropertiesA); + mFileTab->menuBar()->addMenu(fileEditM); } void ShemovCleaner::openDatabase(){ diff --git a/shemovcleaner.h b/shemovcleaner.h index 0ace511..7ffdec5 100644 --- a/shemovcleaner.h +++ b/shemovcleaner.h @@ -44,6 +44,12 @@ class ShemovCleaner : public QMainWindow { QAction *mTorDirA; QAction *mTorCopyToClipA; QAction *mFnThisCopyToClipA; + QAction *mFileRefreshA; + QAction *mFileDirA; + QAction *mFileUpA; + QAction *mFileBackDirA; + QAction *mFilePropertiesA; + QAction *mFileDeleteA; }; #endif // SHEMOVCLEANER_H diff --git a/shemovcleaner.qrc b/shemovcleaner.qrc index 7083020..ff20233 100644 --- a/shemovcleaner.qrc +++ b/shemovcleaner.qrc @@ -11,5 +11,6 @@ <file>chastity_belt.png</file> <file>edit-copy.png</file> <file>up_dick.png</file> + <file>back_dick.png</file> </qresource> </RCC> |