diff options
Diffstat (limited to 'filesystemwidget.h')
-rw-r--r-- | filesystemwidget.h | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/filesystemwidget.h b/filesystemwidget.h index b04feca..0cc3abc 100644 --- a/filesystemwidget.h +++ b/filesystemwidget.h @@ -10,8 +10,11 @@ #include <QWidget> #include <QPair> +#include <QFileSystemModel> +#include <QHash> +#include <QSqlDatabase> +#include <QDateTime> -class QFileSystemModel; class QTreeView; class FilesystemDirProxy; class FileView; @@ -24,6 +27,8 @@ class QVariant; class MessageDialog; class PictureViewer; class QStringList; +class FileSystemModel; +class QSqlQuery; class FilesystemWidget : public QWidget { Q_OBJECT @@ -32,7 +37,7 @@ class FilesystemWidget : public QWidget { ~FilesystemWidget() {}; FileView *fileView() { return mFileView; }; FilesystemFileProxy *fileProxy() { return mFileProxy; }; - QFileSystemModel *dirModel() { return mModel; }; + FileSystemModel *dirModel() { return mModel; }; const QString windowTitle() const { return mWindowTitle; }; PictureViewer *pictureViewer() { return mPicViewer; }; bool isMounted(); @@ -59,6 +64,7 @@ class FilesystemWidget : public QWidget { void readSettings(); void writeSettings(); void dvdMount(); + void markSeen(); private slots: void doRenameFile(); @@ -72,7 +78,7 @@ class FilesystemWidget : public QWidget { QPair<QString, QStringList> programData(const QString &prefix, const QString &preferred); QStringList selectedFiles(); QStringList mExpandedDirs; - QFileSystemModel *mModel; + FileSystemModel *mModel; QTreeView *mDirView; FileView *mFileView; FilesystemDirProxy *mDirProxy; @@ -86,5 +92,23 @@ class FilesystemWidget : public QWidget { QString mLastDir; }; -#endif +class FileSystemModel : public QFileSystemModel { + Q_OBJECT + public: + FileSystemModel(QObject *parent = 0); + ~FileSystemModel(); + virtual QVariant data(const QModelIndex &index, int role) const; + bool isSeen(const QString &path) const; + + public slots: + void markAsSeen(const QString &path, bool seen); + private: + void cleanup(); + QHash<QString, QDateTime> mSeen; + QSqlDatabase mDb; + QSqlQuery *mDeleteFromSeenQuery; + QSqlQuery *mMarkAsSeenQuery; +}; + +#endif |