From a86cab595e880541b3fe717a1c382e4f39fc01d5 Mon Sep 17 00:00:00 2001 From: Arno Date: Wed, 4 Apr 2018 09:41:40 +0200 Subject: MovieWidget: copy assorted columns to clipboard --- moviewidget.cpp | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'moviewidget.cpp') diff --git a/moviewidget.cpp b/moviewidget.cpp index b689809..c07da0f 100644 --- a/moviewidget.cpp +++ b/moviewidget.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include "moviewidget.h" @@ -93,10 +94,16 @@ void MovieWidget::setupWidget(){ mBottomProxy->setSourceModel(mBottomModel); mBottomView->setModel(mBottomProxy); connect(mBottomView, &SmView::doubleClicked, this, &MovieWidget::bottomDoubleClicked); - QAction *playSelectedA = new QAction(QIcon(":/spreadingpants.png"), tr("Play selected"), this); + QAction *playSelectedA = new QAction(QIcon(":/spreadingpants.png"), tr("Play selected..."), this); connect(playSelectedA, &QAction::triggered, this, &MovieWidget::playSelected); + QAction *filenameToClipA = new QAction(tr("Filename to clip"), this); + connect(filenameToClipA, &QAction::triggered, [=] { copyToClipboard(FilenameRole); }); + QAction *fullpathToClipA = new QAction(tr("Full path to clip"), this); + connect(fullpathToClipA, &QAction::triggered, [=] { copyToClipboard(FullPathRole); }); + QAction *md5ToClipA = new QAction(tr("MD5 to clip"), this); + connect(md5ToClipA, &QAction::triggered, [=] { copyToClipboard(MD5SumRole); }); - mBottomView->addActions(QList() << playSelectedA); + mBottomView->addActions(QList() << playSelectedA << Helper::createSeparator(this) << filenameToClipA << fullpathToClipA << md5ToClipA); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addLayout(topWL); @@ -353,6 +360,8 @@ void MovieWidget::topSelectionChanged(){ item->setForeground(currentBrush); item->setEditable(false); item->setData(fullPath, FullPathRole); + item->setData(md5, MD5SumRole); + item->setData(fileName, FilenameRole); items << item; } items[0]->setText(selectFilesQ.value(0).toString()); @@ -409,3 +418,12 @@ void MovieWidget::playSelected(){ args << files; QProcess::startDetached(playerData.first, args); } + +void MovieWidget::copyToClipboard(int role){ + QModelIndexList selected = mBottomView->selectionModel()->selectedRows(); + if(selected.isEmpty()){ + return; + } + QClipboard *clip = qApp->clipboard(); + clip->setText(selected.first().data(role).toString()); +} -- cgit v1.2.3-70-g09d2