diff options
author | Arno <am@disconnect.de> | 2012-02-26 08:54:00 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2012-02-26 08:54:00 +0100 |
commit | 7b373a2a860d1e779664fffe98db769be34d5591 (patch) | |
tree | 83369d25d97216023b7464b3b86b85450986114b /pictureswidget.h | |
parent | 26530f47ff13e20d46472c12abc7567a61c14e57 (diff) | |
download | SheMov-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.h | 83 |
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 |