/* 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 FILESTREEWIDGET_H #define FILESTREEWIDGET_H #include #include #include #include class FilesTreeView; class FilesTreeModel; class FilesTreeSortModel; class SeriesTreeModel; class PictureViewer; class HoverWindow; class QContextMenuEvent; class QSpinBox; class QPushButton; class QEvent; class FilesTreeWidget : public QWidget { Q_OBJECT public: explicit FilesTreeWidget(QWidget *parent = 0); FilesTreeView *filesTree() { return mView; } void resetSize(); public slots: void moveToBurn(); void setDvdNo(); void removeFiles(); void moveToDirectory(); void fileProperties(); void editQuality(); void editPart(); private slots: void fileSelectionChanged(const QModelIndex ¤t, const QModelIndex &previous); void fileSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected); void itemDoubleClicked(const QModelIndex &index); signals: void sizeChanged(qint64); void statusMessage(QString); private: FilesTreeView *mView; FilesTreeModel *mModel; FilesTreeSortModel *mProxy; SeriesTreeModel *mSeriesModel; PictureViewer *mPictureViewer; QModelIndexList mSelectedFiles; qint64 mSelectedSize; }; class FilesTreeView : public QTreeView { Q_OBJECT public: explicit FilesTreeView(QWidget *parent = 0); public slots: void readConfig(); protected: virtual void contextMenuEvent(QContextMenuEvent *event); virtual bool event(QEvent *event); private: QModelIndex mCurHover; HoverWindow *mHoverWin; bool mHover; }; class FilesTreeSortModel : public QSortFilterProxyModel { Q_OBJECT public: FilesTreeSortModel(QObject *parent = 0); ~FilesTreeSortModel() {} protected: virtual bool lessThan(const QModelIndex &left, const QModelIndex &right) const; }; class DvdNoDialog : public QDialog { Q_OBJECT public: DvdNoDialog(QWidget *parent = 0, Qt::WindowFlags f = 0); ~DvdNoDialog() {} int dvdNo() const; private: QSpinBox *mDvdNo; QPushButton *mOk; QPushButton *mCancel; }; #endif