/* 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 FILEVIEW_H #define FILEVIEW_H #include class QContextMenuEvent; class QKeyEvent; class QResizeEvent; class QModelIndex; class QAction; class HoverWindow; class QEvent; class QFileInfo; class FileView : public QTreeView { Q_OBJECT public: FileView(QWidget *parent = 0); ~FileView() {} signals: void upDir(); void delFiles(); void enterPressed(const QModelIndex &); void statusbarMessage(const QString &); void editorClosed(const QModelIndex &idx); void numSelected(int); void selectedSize(qint64); public slots: void markFiles(); void unmarkFiles(); void createFolder(); void readConfig(); protected slots: virtual void closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint); protected: virtual void contextMenuEvent(QContextMenuEvent *e); virtual void keyPressEvent(QKeyEvent *e); virtual void resizeEvent(QResizeEvent *e); virtual bool event(QEvent *event); private slots: void selectedFilesChanged(); private: enum HoverFileType { Dir, Movie, Image, None }; bool exitHover(bool exitVal = true); void doHover(const QFileInfo &fi, int type); QAction *mDeleteA; HoverWindow *mHoverWin; QModelIndex mCurHover; bool mHoverDirs; bool mHoverMovies; bool mHoverPics; QString mWhen; qint16 mCursorOffset; }; #endif