From 361a5c3fbd2a693440491e3720e77a6245ac48d6 Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 14 Sep 2013 08:05:57 +0200 Subject: Add preview to FilesystemWidget --- filesystemwidget.cpp | 19 +++++++++++++++++++ filesystemwidget.h | 1 + shemov.cpp | 3 +++ shemov.h | 1 + 4 files changed, 24 insertions(+) diff --git a/filesystemwidget.cpp b/filesystemwidget.cpp index c2d3861..8c013ec 100644 --- a/filesystemwidget.cpp +++ b/filesystemwidget.cpp @@ -434,6 +434,25 @@ void FilesystemWidget::setWindowTitle(){ emit windowTitle(mWindowTitle); } +void FilesystemWidget::preview(){ + QModelIndex curIdx = mFileView->selectionModel()->currentIndex(); + QString mimeType = curIdx.data(SmDirModel::TypeRole).toString(); + if(mimeType.startsWith("video")){ + qApp->setOverrideCursor(Qt::BusyCursor); + mPicViewer->setShowMappingItem(false); + QPixmap pm(Helper::preview(curIdx.data(SmDirModel::FullPathRole).toString())); + if(!pm.isNull()){ + mPicViewer->setPixmap(pm); + mPicViewer->show(); + } + qApp->restoreOverrideCursor(); + }else if(mimeType.startsWith("image")){ + mPicViewer->setShowMappingItem(false); + mPicViewer->setFile(curIdx.data(SmDirModel::FullPathRole).toString()); + mPicViewer->show(); + } +} + void FilesystemWidget::deleteRecursive(const QFileInfo &start){ if(start.isDir()){ QDir curDir = QDir(start.absoluteFilePath());; diff --git a/filesystemwidget.h b/filesystemwidget.h index e3a2597..751a805 100644 --- a/filesystemwidget.h +++ b/filesystemwidget.h @@ -59,6 +59,7 @@ class FilesystemWidget : public QWidget { void moveToArchive(); void selectAllPV(); void setWindowTitle(); + void preview(); private slots: void dirExpanded(const QModelIndex &idx); diff --git a/shemov.cpp b/shemov.cpp index e9c8427..2b7666d 100644 --- a/shemov.cpp +++ b/shemov.cpp @@ -435,6 +435,8 @@ void SheMov::createActions(){ connect(mRefreshA, SIGNAL(triggered()), mFSWidget->fileModel(), SLOT(refresh())); mFSViewPropertiesA = new QAction(tr("Properties..."), this); connect(mFSViewPropertiesA, SIGNAL(triggered()), mFSWidget->fileView(), SLOT(properties())); + mFSPreviewA = new QAction(tr("Preview..."), this); + connect(mFSPreviewA, SIGNAL(triggered()), mFSWidget, SLOT(preview())); //Help menu QString aboutLabel = QString(tr("About %1...")).arg(qApp->applicationName()); @@ -759,6 +761,7 @@ void SheMov::createMenus(){ mFSWidget->fileView()->addAction(mArchiveSelectedPicsA); mFSWidget->fileView()->addAction(mArchiveSelectedMovsA); mFSWidget->fileView()->addAction(createSeparator()); + mFSWidget->fileView()->addAction(mFSPreviewA); mFSWidget->fileView()->addAction(mFSViewPropertiesA); // Movie archive diff --git a/shemov.h b/shemov.h index 0b41bc0..4a6bf23 100644 --- a/shemov.h +++ b/shemov.h @@ -105,6 +105,7 @@ class SheMov : public QMainWindow { QAction *mNewMovieWizardA; QAction *mMoveToArchiveA; QAction *mFSViewPropertiesA; + QAction *mFSPreviewA; //Filesystem View Actions QActionGroup *mOpenWithGroupFS; -- cgit v1.2.3-70-g09d2