diff options
-rw-r--r-- | filepropertiesdialog.cpp | 35 | ||||
-rw-r--r-- | filepropertiesdialog.h | 3 |
2 files changed, 37 insertions, 1 deletions
diff --git a/filepropertiesdialog.cpp b/filepropertiesdialog.cpp index f130b0b..468da04 100644 --- a/filepropertiesdialog.cpp +++ b/filepropertiesdialog.cpp @@ -15,6 +15,8 @@ #include <QTabWidget> #include <QStackedWidget> #include <QImage> +#include <QSqlDatabase> +#include <QSqlQuery> #include "filepropertiesdialog.h" #include "smtreemodel.h" @@ -49,6 +51,7 @@ FilePropertiesDialog::FilePropertiesDialog(const QString &file, QWidget *parent, mTab->addTab(streamWidget, tr("Streams")); mStack->addWidget(mTab); + QTabWidget *mPicsTab = new QTabWidget; QWidget *picWidget = new QWidget; mPicView = new SmTreeView; mPicModel = new SmTreeModel(QStringList() << tr("Key") << tr("Value"), this); @@ -56,7 +59,16 @@ FilePropertiesDialog::FilePropertiesDialog(const QString &file, QWidget *parent, QHBoxLayout *picLayout = new QHBoxLayout; picLayout->addWidget(mPicView); picWidget->setLayout(picLayout); - mStack->addWidget(picWidget); + mPicsTab->addTab(picWidget, tr("Picture data")); + + QWidget *archivedTab = new QWidget; + mArchivedAs = new QLabel; + QHBoxLayout *archivedL = new QHBoxLayout; + archivedL->addWidget(mArchivedAs); + archivedTab->setLayout(archivedL); + mPicsTab->addTab(archivedTab, tr("Archive")); + + mStack->addWidget(mPicsTab); mainLayout->addWidget(mStack); mOk = new QPushButton(tr("Ok")); @@ -133,6 +145,27 @@ void FilePropertiesDialog::pictureData(){ appendItem(QList<QVariant>() << tr("qt format") << img.format(), rootItem); appendItem(QList<QVariant>() << tr("byte count") << img.byteCount(), rootItem); mPicModel->setRoot(rootItem); + QString md5sum = Helper::md5Sum(mFile); + QSqlDatabase db = QSqlDatabase::database("treedb"); + db.open(); + QSqlQuery p(db); + p.prepare("SELECT tdescription_name FROM pics, pics_mappings, mapping_parents, mapping_description WHERE pics.cmd5sum = :md5 AND pics.ipicsid = pics_mappings.ipics_id AND pics_mappings.imappings_parents_id = mapping_parents.imapping_parents_id AND mapping_parents.idescription_id = mapping_description.idescription_id ORDER BY tdescription_name"); + p.bindValue(":md5", md5sum); + p.exec(); + QStringList archived; + while(p.next()){ + archived << p.value(0).toString(); + } + if(archived.empty()){ + mArchivedAs->setText(tr("<center>File not found in Archive</center>")); + }else{ + QString text = QString(tr("<p>Archived as:</p><ul>")); + foreach(QString a, archived){ + text.append(QString(tr("<li>%1</li>")).arg(a)); + } + text.append("</ul>"); + mArchivedAs->setText(text); + } } void FilePropertiesDialog::appendItem(const QList<QVariant> &data, SmTreeItem *parent){ diff --git a/filepropertiesdialog.h b/filepropertiesdialog.h index 425f6e6..39683e5 100644 --- a/filepropertiesdialog.h +++ b/filepropertiesdialog.h @@ -16,6 +16,7 @@ class SmTreeItem; class SmTreeModel; class QTabWidget; class QStackedWidget; +class QLabel; class FilePropertiesDialog : public SmDialog { Q_OBJECT @@ -28,6 +29,7 @@ class FilePropertiesDialog : public SmDialog { void pictureData(); void appendItem(const QList<QVariant> &data, SmTreeItem *parent); QTabWidget *mTab; + QTabWidget *mPicsTab; QStackedWidget *mStack; QPushButton *mOk; SmTreeModel *mFormatModel; @@ -36,6 +38,7 @@ class FilePropertiesDialog : public SmDialog { SmTreeView *mStreamView; SmTreeModel *mPicModel; SmTreeView *mPicView; + QLabel *mArchivedAs; QString mFile; }; |