summaryrefslogtreecommitdiffstats
path: root/filestreewidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'filestreewidget.cpp')
-rw-r--r--filestreewidget.cpp33
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 &current, const QModelIndex &previous){
Q_UNUSED(previous);
int seriesPartId = current.data(FilesTreeModel::SeriesPartIdRole).toInt();