summaryrefslogtreecommitdiffstats
path: root/pictureswidget.h
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2012-02-26 08:54:00 +0100
committerArno <am@disconnect.de>2012-02-26 08:54:00 +0100
commit7b373a2a860d1e779664fffe98db769be34d5591 (patch)
tree83369d25d97216023b7464b3b86b85450986114b /pictureswidget.h
parent26530f47ff13e20d46472c12abc7567a61c14e57 (diff)
downloadSheMov-7b373a2a860d1e779664fffe98db769be34d5591.tar.gz
SheMov-7b373a2a860d1e779664fffe98db769be34d5591.tar.bz2
SheMov-7b373a2a860d1e779664fffe98db769be34d5591.zip
Implement PicturesWidget
Create a tab to show the archived pictures. It's far from complete, but it already does: * show pictures * hover * delete pictures from archive
Diffstat (limited to 'pictureswidget.h')
-rw-r--r--pictureswidget.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/pictureswidget.h b/pictureswidget.h
new file mode 100644
index 0000000..b0bd277
--- /dev/null
+++ b/pictureswidget.h
@@ -0,0 +1,83 @@
+/*
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version
+ 2 of the License, or (at your option) any later version.
+*/
+
+#ifndef PICTURESWIDGET_H
+#define PICTURESWIDGET_H
+
+#include <QWidget>
+#include <QTreeView>
+#include <QSqlDatabase>
+
+#include "smtreemodel.h"
+
+class PictureView;
+class MappingTreeWidget;
+class QSqlQuery;
+class PicFilesModel;
+class QSortFilterProxyModel;
+class QHideEvent;
+class QEvent;
+class HoverWindow;
+
+class PicturesWidget : public QWidget {
+ Q_OBJECT
+ public:
+ explicit PicturesWidget(QWidget *parent = 0);
+ PictureView *picView() { return mPictureView; }
+
+ private:
+ MappingTreeWidget *mMappingTree;
+ PictureView *mPictureView;
+};
+
+class PictureView : public QTreeView {
+ Q_OBJECT
+ public:
+ explicit PictureView(QWidget *parent = 0);
+
+ public slots:
+ void mappingChanged(int mapping);
+ void deletePics();
+
+ protected:
+ virtual void hideEvent(QHideEvent *);
+ virtual bool event(QEvent *e);
+ virtual void contextMenuEvent(QContextMenuEvent *e);
+
+ private:
+ HoverWindow *mHoverWin;
+ QModelIndex mCurHover;
+ QSortFilterProxyModel *mProxy;
+ PicFilesModel *mModel;
+ int mCursorOffset;
+};
+
+class PicFilesModel : public SmTreeModel {
+ Q_OBJECT
+ public:
+ enum Roles { FileNameRole = Qt::UserRole + 1, SizeRole = Qt::UserRole + 2, MimeTypeRole = Qt::UserRole + 3, FullPathRole = Qt::UserRole + 4, IdRole = Qt::UserRole + 5, AddedRole = Qt::UserRole + 6, Md5SumRole = Qt::UserRole + 7, SizeDisplayRole = Qt::UserRole + 8 };
+ enum Fields { FileName = 0, Size = 1, MimeType = 2, FullPath = 3, Id = 4, Added = 5, Md5Sum = 6, SizeDisplay = 7 };
+ enum { NumFields = 8 };
+ explicit PicFilesModel(const QStringList &headers, QObject *parent = 0);
+ void setMapping(int mappingId) { mMappingId = mappingId; }
+
+ //some data
+ Qt::ItemFlags flags(const QModelIndex &) const { return Qt::ItemIsEnabled | Qt::ItemIsSelectable; }
+ QVariant data(const QModelIndex &index, int role) const;
+ void removeFiles(const QList<QPersistentModelIndex> &files);
+
+ public slots:
+ void populate();
+
+ private:
+ QSqlDatabase mDb;
+ QSqlQuery *mPopulateQ;
+ QSqlQuery *mDeleteFileQ;
+ int mMappingId;
+};
+
+#endif // PICTURESWIDGET_H