summaryrefslogtreecommitdiffstats
path: root/picturelistview.h
blob: 9e86372beb8306135c0d57cb13de0d6d4038625c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
  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 PICTURELISTVIEW_H
#define PICTURELISTVIEW_H

#include <QList>
#include <QSortFilterProxyModel>

#include "smtreeview.h"
#include "picfilesmodel.h"
#include "pictureviewer2.h"
#include "hoverwindow.h"

class PictureListView : public SmTreeView {
    Q_OBJECT
    public:
        explicit PictureListView(QWidget *parent = 0);
        QList<int> 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<int> mFilesMappings;
        PictureViewer2 *mPV;
        MappingTreeModel *mMappingTreeModel;
};

#endif // PICTURELISTVIEW_H