13 #include <QStringList>
19 class QAbstractItemModel;
20 class QStandardItemModel;
21 class QSortFilterProxyModel;
22 class QFileSystemWatcher;
73 QStringList LocalPrefixesChain_;
74 QStringList GlobalPrefixesChain_;
75 QString RelativePath_;
77 QHash<QString, QStringList> Entry2Paths_;
79 QStandardItemModel *SubElemModel_;
80 QStringList NameFilters_;
81 QDir::Filters AttrFilters_ = QDir::Dirs | QDir::NoDotAndDotDot | QDir::Readable;
82 QSortFilterProxyModel *SortModel_;
84 QFileSystemWatcher *Watcher_;
86 QTimer *CacheFlushTimer_;
87 mutable QCache<QString, QByteArray> CachePathContents_ { 0 };
88 mutable QCache<QString, QPixmap> CachePixmaps_ { 0 };
90 bool Verbose_ =
false;
98 explicit ResourceLoader (
const QString& relPath, QObject* obj =
nullptr);
108 void AddGlobalPrefix ();
116 void AddLocalPrefix (QString prefix = QString ());
131 void SetCacheParams (
int size,
int timeout);
157 QFileInfoList List (
const QString& option,
158 const QStringList& names = {},
159 QDir::Filters filters = QDir::NoFilter)
const;
185 QString GetPath (
const QStringList& pathVariants)
const;
204 QString GetIconPath (
const QString& basename)
const;
217 QIODevice_ptr Load (
const QStringList& pathVariants,
bool open =
false)
const;
232 QIODevice_ptr Load (
const QString& pathVariant,
bool open =
false)
const;
247 QIODevice_ptr GetIconDevice (
const QString& basename,
bool open =
false)
const;
265 QPixmap LoadPixmap (
const QString& basename)
const;
284 QAbstractItemModel* GetSubElemModel ()
const;
301 void SetAttrFilters (QDir::Filters);
318 void SetNameFilters (
const QStringList&);
326 void SetVerbose (
bool verbose);
328 void ScanPath (
const QString&);
329 void HandleDirectoryChanged (
const QString&);
331 void watchedDirectoriesChanged ();