diff options
Diffstat (limited to 'filestreewidget.cpp')
-rw-r--r-- | filestreewidget.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/filestreewidget.cpp b/filestreewidget.cpp index a348ac4..3161e57 100644 --- a/filestreewidget.cpp +++ b/filestreewidget.cpp @@ -28,6 +28,7 @@ #include "seriestreemodel.h" #include "helper.h" #include "pictureviewer.h" +#include "filepropertiesdialog.h" FilesTreeWidget::FilesTreeWidget(QWidget *parent) : QWidget(parent), mSelectedSize(0){ //the view @@ -158,6 +159,38 @@ void FilesTreeWidget::moveToDirectory(){ } } +void FilesTreeWidget::fileProperties(){ + QModelIndexList selected = mView->selectionModel()->selectedRows(); + if(selected.isEmpty()){ + return; + } + QModelIndex real = mProxy->mapToSource(selected.at(0)); + if(real.isValid()){ + int dvd = real.data(FilesTreeModel::DvdNoRole).toInt(); + if(dvd != -1){ + QMessageBox::critical(this, tr("Error"), tr("File is not available!")); + return; + } + QString fullPath = real.data(FilesTreeModel::FullPathRole).toString(); + QString mimeType = Helper::mimeType(fullPath); + FilePropertiesDialog dlg(this); + dlg.setFileName(real.data(FilesTreeModel::FileNameRole).toString()); + if(mimeType.startsWith("video")){ + QList<QMap<QString, QString> > fileData = mModel->streamInfo(real); + dlg.setStreamData(fileData); + }else if(mimeType.startsWith("image")){ + QMap<QString, QString> imageData = mModel->pictureInfo(real); + dlg.addData("Image data", imageData); + QMap<QString, QString> textData = mModel->pictureMetaInfo(real); + if(!textData.isEmpty()){ + dlg.addData("Meta data", textData); + } + } + dlg.exec(); + } + +} + void FilesTreeWidget::fileSelectionChanged(const QModelIndex ¤t, const QModelIndex &previous){ Q_UNUSED(previous); int seriesPartId = current.data(FilesTreeModel::SeriesPartIdRole).toInt(); |