From 8203bdcbdbc8c121831db0d197a89842b7178f59 Mon Sep 17 00:00:00 2001 From: Arno Date: Sun, 28 Aug 2016 07:28:15 +0200 Subject: Added copyToClipboard where applicable --- edit-copy.png | Bin 0 -> 1055 bytes shemovcleaner.cpp | 20 +++++++++++++++++++- shemovcleaner.h | 2 ++ shemovcleaner.qrc | 1 + torrentdisplay.cpp | 18 ++++++++++++++++-- torrentdisplay.h | 7 +++++++ torrentwidget.cpp | 8 ++++++++ torrentwidget.h | 2 ++ 8 files changed, 55 insertions(+), 3 deletions(-) create mode 100644 edit-copy.png diff --git a/edit-copy.png b/edit-copy.png new file mode 100644 index 0000000..210c07a Binary files /dev/null and b/edit-copy.png differ diff --git a/shemovcleaner.cpp b/shemovcleaner.cpp index ec9d6e4..e6147c9 100644 --- a/shemovcleaner.cpp +++ b/shemovcleaner.cpp @@ -9,9 +9,11 @@ #include #include #include +#include #include "shemovcleaner.h" #include "torrentwidget.h" +#include "torrentdisplay.h" #include "configurationwidget.h" ShemovCleaner::ShemovCleaner(QWidget *parent, Qt::WindowFlags f) : QMainWindow(parent, f) { @@ -74,7 +76,11 @@ void ShemovCleaner::createActions(){ connect(mTorInfoA, SIGNAL(triggered()), mTorrentTab, SLOT(torrentInfo())); mTorDirA = new QAction(QIcon(":/folder.png"), tr("Select folder..."), this); connect(mTorDirA, SIGNAL(triggered()), mTorrentTab, SLOT(selectDir())); + mFnThisCopyToClipA = new QAction(QIcon(":/edit-copy.png"), tr("Copy"), this); + connect(mFnThisCopyToClipA, SIGNAL(triggered()), mTorrentTab, SLOT(copyToClipboard())); + mTorrentTab->toolBar()->addAction(mTorRefreshA); + mTorrentTab->toolBar()->addAction(mFnThisCopyToClipA); mTorrentTab->toolBar()->addSeparator(); mTorrentTab->toolBar()->addAction(mTorDirA); mTorrentTab->toolBar()->addAction(mTorMoveA); @@ -90,8 +96,15 @@ void ShemovCleaner::createActions(){ torFileM->addAction(quitA); mTorrentTab->menuBar()->addMenu(torFileM); QMenu *torEditM = new QMenu(tr("Edit")); - torEditM->addAction(mTorDeleteA); + torEditM->addAction(mTorInfoA); + torEditM->addSeparator(); + torEditM->addAction(mTorRefreshA); + torEditM->addAction(mFnThisCopyToClipA); + torEditM->addSeparator(); torEditM->addAction(mTorMoveA); + torEditM->addAction(mTorDeleteA); + torEditM->addSeparator(); + torEditM->addAction(mTorDirA); torEditM->addSeparator(); torEditM->addAction(configA); torEditM->addSeparator(); @@ -100,11 +113,16 @@ void ShemovCleaner::createActions(){ mTorrentTab->addAction(mTorInfoA); mTorrentTab->addAction(createSeparator()); mTorrentTab->addAction(mTorRefreshA); + mTorrentTab->addAction(mFnThisCopyToClipA); mTorrentTab->addAction(createSeparator()); mTorrentTab->addAction(mTorMoveA); mTorrentTab->addAction(mTorDeleteA); mTorrentTab->addAction(createSeparator()); mTorrentTab->addAction(mTorDirA); + + mTorCopyToClipA = new QAction(QIcon(":/edit-copy.png"), tr("Copy"), this); + connect(mTorCopyToClipA, SIGNAL(triggered()), mTorrentTab->torrentDisplay(), SLOT(copyToClipboard())); + mTorrentTab->torrentDisplay()->addAction(mTorCopyToClipA); } void ShemovCleaner::openDatabase(){ diff --git a/shemovcleaner.h b/shemovcleaner.h index d709858..ccbdd63 100644 --- a/shemovcleaner.h +++ b/shemovcleaner.h @@ -31,6 +31,8 @@ class ShemovCleaner : public QMainWindow { QAction *mTorMoveA; QAction *mTorInfoA; QAction *mTorDirA; + QAction *mTorCopyToClipA; + QAction *mFnThisCopyToClipA; }; #endif // SHEMOVCLEANER_H diff --git a/shemovcleaner.qrc b/shemovcleaner.qrc index 26b21fe..e1145d4 100644 --- a/shemovcleaner.qrc +++ b/shemovcleaner.qrc @@ -9,5 +9,6 @@ folder.png refresh.png chastity_belt.png + edit-copy.png diff --git a/torrentdisplay.cpp b/torrentdisplay.cpp index 11b98b5..3a1664b 100644 --- a/torrentdisplay.cpp +++ b/torrentdisplay.cpp @@ -9,6 +9,10 @@ #include #include #include +#include +#include +#include +#include #include "torrentdisplay.h" @@ -79,8 +83,6 @@ TorrentDisplay::TorrentDisplay(QWidget *parent, Qt::WindowFlags f) : QDialog(par setWindowTitle(tr("Torrent Info")); } -#include - void TorrentDisplay::setData(const QList data, const QString &filename) { if(data.isEmpty()){ return; @@ -137,6 +139,18 @@ void TorrentDisplay::setData(const QList data, const QString &filename } } +void TorrentDisplay::copyToClipboard(){ + QModelIndex idx = mFileView->selectionModel()->currentIndex(); + QClipboard *clip = QApplication::clipboard(); + clip->setText(idx.data().toString()); +} + +void TorrentDisplay::contextMenuEvent(QContextMenuEvent *e){ + QMenu contextMenu(this); + contextMenu.addActions(actions()); + contextMenu.exec(e->globalPos()); +} + void TorrentDisplay::setMulti(const QVariantHash &data, const QString &filename){ QStandardItem *root = mFileModel->invisibleRootItem(); QStandardItem *torrentItem = new QStandardItem(filename); diff --git a/torrentdisplay.h b/torrentdisplay.h index 4aa01bf..221f0af 100644 --- a/torrentdisplay.h +++ b/torrentdisplay.h @@ -13,6 +13,13 @@ class TorrentDisplay : public QDialog { public: explicit TorrentDisplay(QWidget *parent = 0, Qt::WindowFlags f = 0); void setData(const QList data, const QString &filename); + QTreeView *fileView() { return mFileView; } + + public slots: + void copyToClipboard(); + + protected: + virtual void contextMenuEvent(QContextMenuEvent *e); private slots: void setMulti(const QVariantHash &data, const QString &filename); diff --git a/torrentwidget.cpp b/torrentwidget.cpp index 656870e..a6cb2f4 100644 --- a/torrentwidget.cpp +++ b/torrentwidget.cpp @@ -19,6 +19,8 @@ #include #include #include +#include +#include #include @@ -229,6 +231,12 @@ void TorrentWidget::selectDir(){ gatherData(); } +void TorrentWidget::copyToClipboard(){ + QModelIndex cur = mFileView->selectionModel()->currentIndex(); + QClipboard *clip = QApplication::clipboard(); + clip->setText(cur.data().toString()); +} + void TorrentWidget::fileSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected){ Q_UNUSED(selected); Q_UNUSED(deselected); diff --git a/torrentwidget.h b/torrentwidget.h index b1f33bb..5b1852c 100644 --- a/torrentwidget.h +++ b/torrentwidget.h @@ -22,6 +22,7 @@ class TorrentWidget : public QWidget { TorrentWidget(QWidget *parent = 0); QToolBar *toolBar() { return mToolBar; } QMenuBar *menuBar() { return mMenuBar; } + TorrentDisplay *torrentDisplay() { return mTorrentDisplay; } ~TorrentWidget(); signals: @@ -30,6 +31,7 @@ class TorrentWidget : public QWidget { public slots: void selectDir(); + void copyToClipboard(); void gatherData(); void deleteFiles(); void moveFiles(); -- cgit v1.2.3-70-g09d2