/* 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 "smtreeview.h" #include "helper.h" class QContextMenuEvent; class QKeyEvent; class QResizeEvent; class QModelIndex; class QAction; class HoverWindow; class QEvent; class QFileInfo; class FilesystemFileProxy; class SmDirModel; class QActionGroup; class FileView : public SmTreeView { Q_OBJECT public: FileView(QWidget *parent = 0); ~FileView() {} virtual void setModel(QAbstractItemModel *model); QStringList selectedItems(); signals: void upDir(); void delFiles(); void enterPressed(const QModelIndex &); void statusbarMessage(const QString &); void editorClosed(const QModelIndex &idx); void numSelected(int); void selectedSize(qint64); void selectedDuration(qint64,bool); public slots: void markFiles(); void unmarkFiles(); void createFolder(); void readConfig(); void writeConfig(); void saveSelection(); void restoreSelection(); void selectedFilesChanged(); void properties(); void selectItem(const QString &item); 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: 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 mHoverPics; qint16 mCursorOffset; QList mSelectedFiles; FilesystemFileProxy *mProxy; SmDirModel *mModel; }; #endif