diff options
Diffstat (limited to 'src-qt5/desktop-utils/lumina-fm-dev/Browser.h')
-rw-r--r-- | src-qt5/desktop-utils/lumina-fm-dev/Browser.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src-qt5/desktop-utils/lumina-fm-dev/Browser.h b/src-qt5/desktop-utils/lumina-fm-dev/Browser.h new file mode 100644 index 00000000..94f6ba3f --- /dev/null +++ b/src-qt5/desktop-utils/lumina-fm-dev/Browser.h @@ -0,0 +1,75 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2016, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +// This is the main browsing backend for the file manager +//=========================================== +#ifndef _LUMINA_FM_BROWSE_BACKEND_H +#define _LUMINA_FM_BROWSE_BACKEND_H + +#include <QObject> +#include <QString> +#include <QFileSystemWatcher> +#include <QIcon> +//#include <QFutureWatcher> + +#include <LuminaXDG.h> +/*class FileItem{ +public: + QString name; + QByteArray icon; + + FileItem(){} + ~FileItem(){}; +};*/ + +class Browser : public QObject{ + Q_OBJECT +public: + Browser(QObject *parent = 0); + ~Browser(); + + QString currentDirectory(); + void showHiddenFiles(bool); + bool showingHiddenFiles(); + + void showThumbnails(bool); + bool showingThumbnails(); + + //FileItem loadItem(QString info); //this is the main loader class - multiple instances each run in a separate thread + +private: + QString currentDir; + QFileSystemWatcher *watcher; + bool showHidden, showThumbs; + QStringList imageFormats, oldFiles; + QHash<QString, QIcon> mimeIcons; //cache for quickly re-using QIcons + + void loadItem(QString info, Browser *obj); //this is the main loader class - multiple instances each run in a separate thread + QIcon loadIcon(QString icon); //simplification for using/populating the mimIcons cache + +private slots: + void fileChanged(QString); //tied into the watcher - for file change notifications + void dirChanged(QString); // tied into the watcher - for new/removed files in the current dir + + void futureFinished(QString, QImage); + +public slots: + void loadDirectory(QString dir = ""); + +signals: + //Main Signals + void itemRemoved(QString item); //emitted if a file was removed from the underlying + void clearItems(); //emitted when dirs change for example + void itemDataAvailable(QIcon, LFileInfo*); + + //Start/Stop signals for loading of data + void itemsLoading(int); //number of items which are getting loaded + + //Internal signal for the alternate threads + void threadDone(QString, QImage); +}; + +#endif |