#ifndef TORRENTWIDGET_H #define TORRENTWIDGET_H #include #include #include #include #include class QTreeView; class QStandardItemModel; class QLabel; class QToolBar; class QMenuBar; class QKeyEvent; class FileSorter; class TorrentDisplay; class TorrentWidget : public QWidget { Q_OBJECT public: enum CustomRoles { PresentRole = Qt::UserRole + 1, FullPathRole = Qt::UserRole + 2, CreatedRole = Qt::UserRole + 3 }; enum { ColumnCount = 3 }; enum Columns { IconColumn = 0, NameColumn = 1, CreatedColumn = 2 }; enum Present { NotPresent = 0, Present = 1 }; TorrentWidget(QWidget *parent = 0); QMenuBar *menuBar() { return mMenuBar; } TorrentDisplay *torrentDisplay() { return mTorrentDisplay; } QTreeView *torrentFileView() { return mFileView; } const QString currentDir() const { return mDir->text(); } ~TorrentWidget(); signals: void statusMessage(const QString &msg); void selectionCountChanged(const QString &msg); void freeSpaceChanged(const QString &dir); public slots: void selectDir(); void setDir(); void copyToClipboard(); void gatherData(); void deleteFiles(); void moveFiles(); void torrentInfo(); void searchFile(); void fileSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected); void selectFirst(); void guessSubtitle(); protected: virtual void keyPressEvent(QKeyEvent *e); virtual void contextMenuEvent(QContextMenuEvent *e); private: void setupGui(); void createActions(); void readHeaderData(); void writeHeaderData(); void readSettings(); void writeSettings(); void rememberSelection(); void restoreSelection(); QAction *createSeparator(); QLineEdit *mDir; QLineEdit *mSearchTorrents; QString mExt; QStringList mSelection; QStandardItemModel *mModel; QTreeView *mFileView; QToolBar *mToolBar; QMenuBar *mMenuBar; QAction *mRefreshA; QAction *mDeleteA; QAction *mMoveA; QAction *mTorrentInfoA; QAction *mSelDirA; QAction *mCopyFnToClipA; QAction *mGuessSubtitleA; FileSorter *mProxy; TorrentDisplay *mTorrentDisplay; }; #endif // TORRENTWIDGET_H