From dcbf9244f0ed147a5f3c412b9e83c581b58fa1b2 Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 15 Feb 2014 04:35:18 +0100 Subject: Act on DoubleClick in ArchiveBrowser Picture: show in PictureViewer Movie: show preview --- archivebrowser.cpp | 21 ++++++++++++++++++++- archivebrowser.h | 3 ++- shemov.cpp | 2 +- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/archivebrowser.cpp b/archivebrowser.cpp index 006c9e7..8f715c8 100644 --- a/archivebrowser.cpp +++ b/archivebrowser.cpp @@ -21,6 +21,7 @@ #include "archivebrowsermodel.h" #include "smtreeview.h" #include "smglobals.h" +#include "pictureviewer2.h" #include "delegates.h" #include "helper.h" @@ -55,6 +56,7 @@ ArchiveBrowser::ArchiveBrowser(QWidget *parent) : QWidget(parent), mSelectedSize //connect connect(mTree->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(browserSelectionChanged(QItemSelection,QItemSelection))); + connect(mTree, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(itemDoubleClicked(QModelIndex))); connect(mModel, SIGNAL(populated()), this, SLOT(resetAll())); //make widget @@ -144,7 +146,7 @@ void ArchiveBrowser::refresh() { mModel->refresh(); } -void ArchiveBrowser::playCurrent(){ +void ArchiveBrowser::playSelected(){ QPair pgdata = Helper::programData("movieviewer"); QModelIndexList sel = mTree->selectionModel()->selectedRows(); QStringList movieFiles; @@ -166,6 +168,23 @@ void ArchiveBrowser::playCurrent(){ QProcess::startDetached(prg, args); } +void ArchiveBrowser::itemDoubleClicked(QModelIndex cur){ + if(cur.data(ArchiveBrowserModel::NodeTypeRole).toInt() == ArchiveBrowserModel::SeriesPartNode){ + return; + } + if(cur.data(ArchiveBrowserModel::NodeTypeRole).toInt() == ArchiveBrowserModel::FileNode){ + int fileType = cur.data(ArchiveBrowserModel::FileTypeRole).toInt(); + PictureViewer2 *picView = SmGlobals::instance()->pictureViewer(); + if(fileType == 1){ //movie + QPixmap pm = Helper::preview(cur.data(ArchiveBrowserModel::FullPathRole).toString()); + picView->setPixmap(pm); + }else if(fileType == 2 || fileType == 3){ //pic + picView->setFile(cur.data(ArchiveBrowserModel::FullPathRole).toString()); + } + picView->show(); + } +} + void ArchiveBrowser::setupQualityFilter(){ mQualityFilter->clear(); QList qualities = mModel->availableQualities(); diff --git a/archivebrowser.h b/archivebrowser.h index 7b8fdcd..6656622 100644 --- a/archivebrowser.h +++ b/archivebrowser.h @@ -33,7 +33,8 @@ class ArchiveBrowser : public QWidget { void writeSettings(); void moveToBurn(); void refresh(); - void playCurrent(); + void playSelected(); + void itemDoubleClicked(QModelIndex); private slots: void setupQualityFilter(); diff --git a/shemov.cpp b/shemov.cpp index 830932a..705cf3a 100644 --- a/shemov.cpp +++ b/shemov.cpp @@ -658,7 +658,7 @@ void SheMov::createActions(){ mArchiveBrowserRefreshA = new QAction(QIcon(":/refresh.png"), tr("Refresh"), this); connect(mArchiveBrowserRefreshA, SIGNAL(triggered()), mArchiveBrowser, SLOT(refresh())); mArchiveBrowserPlaySelectedA = new QAction(QIcon(":/dildo.png"), tr("Play selected..."), this); - connect(mArchiveBrowserPlaySelectedA, SIGNAL(triggered()), mArchiveBrowser, SLOT(playCurrent())); + connect(mArchiveBrowserPlaySelectedA, SIGNAL(triggered()), mArchiveBrowser, SLOT(playSelected())); // db analyzer dialogs // analyze actors -- cgit v1.2.3-70-g09d2