/* 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 #include #include "smtreemodel.h" #include "pictureviewer2.h" #include "smtreeview.h" class PictureView; class MappingTreeWidget; class MappingEditWidget; class MappingEditDialog; class MappingTreeModel; class QSqlQuery; class PicFilesModel; class QSortFilterProxyModel; class QHideEvent; class QEvent; class HoverWindow; class PictureViewer2; class QAction; class QActionGroup; struct MappingData; class PicturesWidget : public QWidget { Q_OBJECT public: explicit PicturesWidget(QWidget *parent = 0); PictureView *picView() { return mPictureView; } void setPicViewerAction(QAction *action) { mPicViewerA = action; } PictureViewer2 *picViewer2() { return mPicViewer; } public slots: void showPicViewer(bool toggled); void writeSettings(); void readSettings(); void constructWindowTitle(); private slots: void editMappings(); void showInPicViewer(const QModelIndex &idx); signals: void needWindowTitleChange(QString); void editMappingsDone(); private: MappingTreeWidget *mMappingTree; PictureView *mPictureView; PictureViewer2 *mPicViewer; MappingEditDialog *mEditDialog; const QString mWindowTitleBase; QAction *mPicViewerA; }; class PictureView : public SmTreeView { Q_OBJECT public: explicit PictureView(QWidget *parent = 0); QList fileMappings() { return mFilesMappings; } PicFilesModel *filesModel() { return mModel; } QSortFilterProxyModel *proxy() { return mProxy; } void setPV(PictureViewer2 *pv) { mPV = pv; } PictureViewer2 *PV() { return mPV; } public slots: void mappingChanged(int pMapId); void deletePics(); void refresh(); void setPVData(int replace = false); void setPVAll(); void setHoverWinVisible(bool visible) const; protected: virtual void hideEvent(QHideEvent *); virtual bool event(QEvent *e); virtual void contextMenuEvent(QContextMenuEvent *e); private slots: void selectedFilesChanged(); signals: void newMappings(QString); void numSelected(int); void selectedSize(qint64); void editPicsMappings(); private: HoverWindow *mHoverWin; QModelIndex mCurHover; QSortFilterProxyModel *mProxy; PicFilesModel *mModel; int mCursorOffset; QList mFilesMappings; PictureViewer2 *mPV; MappingTreeModel *mMappingTreeModel; }; #endif // PICTURESWIDGET_H