diff options
author | Arno <arno@disconnect.de> | 2018-01-02 22:09:07 +0100 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2018-01-02 22:09:07 +0100 |
commit | b5dc8c10367537aec8ce7c061f608ca896ec9f36 (patch) | |
tree | 3038603c5b485b8a92593a2b24295327d9b71702 /filewidget.h | |
parent | c77061d4d19de23c805ccbcc7cc229b221d4c1d5 (diff) | |
download | ShemovCleaner-b5dc8c10367537aec8ce7c061f608ca896ec9f36.tar.gz ShemovCleaner-b5dc8c10367537aec8ce7c061f608ca896ec9f36.tar.bz2 ShemovCleaner-b5dc8c10367537aec8ce7c061f608ca896ec9f36.zip |
Implement cache for FileWidget
Some data-gathering is quite expensive and requires a QProcess, like
getting the duration, so cache it in memory using QCache. Once the cache
is filled, the UI is much snappier.
This simplifies gatherData() a bit. It's still quite a long function,
but now it doesn't create the QStandardItems any more. I moved it to a
separate function.
Diffstat (limited to 'filewidget.h')
-rw-r--r-- | filewidget.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/filewidget.h b/filewidget.h index b4c94e3..9c466fa 100644 --- a/filewidget.h +++ b/filewidget.h @@ -9,6 +9,7 @@ #include <QToolBar> #include <QFileInfo> #include <QLineEdit> +#include <QCache> class QLineEdit; class QStandardItemModel; @@ -23,6 +24,8 @@ class OriginDialog; class QMenu; class FileCopier; class ProgressDialog; +class CachedFileData; +class QStandardItem; class FileWidget : public QWidget { Q_OBJECT @@ -86,6 +89,7 @@ class FileWidget : public QWidget { void readSettings(); void writeSettings(); void cutOrCopy(); + QList<QStandardItem*> constructRow(CachedFileData *fd) const; QAction *createSeparator(); QLineEdit *mDir; QLineEdit *mFilter; @@ -117,6 +121,7 @@ class FileWidget : public QWidget { VideoSorter *mProxy; OriginDialog *mOrignDlg; FileCopier *mFileCopier; + QCache<QString, CachedFileData> mFileCache; int mFileAction; }; |