diff options
author | Arno <am@disconnect.de> | 2010-07-31 16:26:10 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2010-07-31 16:26:10 +0200 |
commit | 8eba6e7f033617f3e7ea3bd9913105df0de74ae2 (patch) | |
tree | 8d4b93a4a686e6e57526b77033bb985fa9545036 /filestreewidget.cpp | |
parent | 6d3b28f9b12964b161b5a7ac0038435cfdd6e27b (diff) | |
download | SheMov-8eba6e7f033617f3e7ea3bd9913105df0de74ae2.tar.gz SheMov-8eba6e7f033617f3e7ea3bd9913105df0de74ae2.tar.bz2 SheMov-8eba6e7f033617f3e7ea3bd9913105df0de74ae2.zip |
Implement FilePropertiesDialog
Implemented a dialog for file properties. When the mime type says it's a
video, fork ffprobe to read the properties of all streams and show them
in a QTreeView powered by a SmTreeModel. If the mime type is image, use
QImage to read some properties and show them in the same dialog.
This commit introduces the new class FilePropertiesDialog. I also had to
implement a copy constructor for SmTreeItem. It obsoletes classes
ActorWidget, ActorModel and MoviePropertiesDialog.
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(); |