diff options
| author | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-09-11 22:08:25 +1000 |
|---|---|---|
| committer | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-09-11 22:08:25 +1000 |
| commit | b87d5bf20eeea7f6a865066f9a39f7fd084df8ee (patch) | |
| tree | d3e491231cefd793ccd9f44304e7395ea013d3ad /plugin | |
| parent | plugin/appdb: fix persistence (diff) | |
| download | caelestia-shell-b87d5bf20eeea7f6a865066f9a39f7fd084df8ee.tar.gz caelestia-shell-b87d5bf20eeea7f6a865066f9a39f7fd084df8ee.tar.bz2 caelestia-shell-b87d5bf20eeea7f6a865066f9a39f7fd084df8ee.zip | |
plugin: format + refactor
Diffstat (limited to 'plugin')
| -rw-r--r-- | plugin/src/Caelestia/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | plugin/src/Caelestia/filesystemmodel.cpp | 64 | ||||
| -rw-r--r-- | plugin/src/Caelestia/filesystemmodel.hpp | 61 | ||||
| -rw-r--r-- | plugin/src/Caelestia/service.cpp | 2 | ||||
| -rw-r--r-- | plugin/src/Caelestia/service.hpp | 5 |
5 files changed, 84 insertions, 49 deletions
diff --git a/plugin/src/Caelestia/CMakeLists.txt b/plugin/src/Caelestia/CMakeLists.txt index c13417f..25cae86 100644 --- a/plugin/src/Caelestia/CMakeLists.txt +++ b/plugin/src/Caelestia/CMakeLists.txt @@ -10,6 +10,7 @@ qt_standard_project_setup(REQUIRES 6.9) qt_add_qml_module(caelestia URI Caelestia + VERSION ${VERSION} SOURCES cutils.hpp cutils.cpp cachingimagemanager.hpp cachingimagemanager.cpp diff --git a/plugin/src/Caelestia/filesystemmodel.cpp b/plugin/src/Caelestia/filesystemmodel.cpp index 9a435a8..54807b5 100644 --- a/plugin/src/Caelestia/filesystemmodel.cpp +++ b/plugin/src/Caelestia/filesystemmodel.cpp @@ -6,6 +6,70 @@ namespace caelestia { +FileSystemEntry::FileSystemEntry(const QString& path, const QString& relativePath, QObject* parent) + : QObject(parent) + , m_fileInfo(QFileInfo(path)) + , m_path(path) + , m_relativePath(relativePath) + , m_isImageInitialised(false) + , m_mimeTypeInitialised(false) {} + +QString FileSystemEntry::path() const { + return m_path; +}; + +QString FileSystemEntry::relativePath() const { + return m_relativePath; +}; + +QString FileSystemEntry::name() const { + return m_fileInfo.fileName(); +}; + +QString FileSystemEntry::parentDir() const { + return m_fileInfo.absolutePath(); +}; + +QString FileSystemEntry::suffix() const { + return m_fileInfo.completeSuffix(); +}; + +qint64 FileSystemEntry::size() const { + return m_fileInfo.size(); +}; + +bool FileSystemEntry::isDir() const { + return m_fileInfo.isDir(); +}; + +bool FileSystemEntry::isImage() const { + if (!m_isImageInitialised) { + QImageReader reader(m_path); + m_isImage = reader.canRead(); + m_isImageInitialised = true; + } + return m_isImage; +} + +QString FileSystemEntry::mimeType() const { + if (!m_mimeTypeInitialised) { + const QMimeDatabase db; + m_mimeType = db.mimeTypeForFile(m_path).name(); + m_mimeTypeInitialised = true; + } + return m_mimeType; +} + +FileSystemModel::FileSystemModel(QObject* parent) + : QAbstractListModel(parent) + , m_recursive(false) + , m_watchChanges(true) + , m_showHidden(false) + , m_filter(NoFilter) { + connect(&m_watcher, &QFileSystemWatcher::directoryChanged, this, &FileSystemModel::watchDirIfRecursive); + connect(&m_watcher, &QFileSystemWatcher::directoryChanged, this, &FileSystemModel::updateEntriesForDir); +} + int FileSystemModel::rowCount(const QModelIndex& parent) const { if (parent != QModelIndex()) { return 0; diff --git a/plugin/src/Caelestia/filesystemmodel.hpp b/plugin/src/Caelestia/filesystemmodel.hpp index db9fff9..4ea5f0a 100644 --- a/plugin/src/Caelestia/filesystemmodel.hpp +++ b/plugin/src/Caelestia/filesystemmodel.hpp @@ -27,40 +27,17 @@ class FileSystemEntry : public QObject { Q_PROPERTY(QString mimeType READ mimeType CONSTANT) public: - explicit FileSystemEntry(const QString& path, const QString& relativePath, QObject* parent = nullptr) - : QObject(parent) - , m_fileInfo(QFileInfo(path)) - , m_path(path) - , m_relativePath(relativePath) - , m_isImageInitialised(false) - , m_mimeTypeInitialised(false) {} + explicit FileSystemEntry(const QString& path, const QString& relativePath, QObject* parent = nullptr); - [[nodiscard]] QString path() const { return m_path; }; - [[nodiscard]] QString relativePath() const { return m_relativePath; }; - - [[nodiscard]] QString name() const { return m_fileInfo.fileName(); }; - [[nodiscard]] QString parentDir() const { return m_fileInfo.absolutePath(); }; - [[nodiscard]] QString suffix() const { return m_fileInfo.completeSuffix(); }; - [[nodiscard]] qint64 size() const { return m_fileInfo.size(); }; - [[nodiscard]] bool isDir() const { return m_fileInfo.isDir(); }; - - [[nodiscard]] bool isImage() { - if (!m_isImageInitialised) { - QImageReader reader(m_path); - m_isImage = reader.canRead(); - m_isImageInitialised = true; - } - return m_isImage; - } - - [[nodiscard]] QString mimeType() { - if (!m_mimeTypeInitialised) { - const QMimeDatabase db; - m_mimeType = db.mimeTypeForFile(m_path).name(); - m_mimeTypeInitialised = true; - } - return m_mimeType; - } + [[nodiscard]] QString path() const; + [[nodiscard]] QString relativePath() const; + [[nodiscard]] QString name() const; + [[nodiscard]] QString parentDir() const; + [[nodiscard]] QString suffix() const; + [[nodiscard]] qint64 size() const; + [[nodiscard]] bool isDir() const; + [[nodiscard]] bool isImage() const; + [[nodiscard]] QString mimeType() const; private: const QFileInfo m_fileInfo; @@ -68,11 +45,11 @@ private: const QString m_path; const QString m_relativePath; - bool m_isImage; - bool m_isImageInitialised; + mutable bool m_isImage; + mutable bool m_isImageInitialised; - QString m_mimeType; - bool m_mimeTypeInitialised; + mutable QString m_mimeType; + mutable bool m_mimeTypeInitialised; }; class FileSystemModel : public QAbstractListModel { @@ -96,15 +73,7 @@ public: }; Q_ENUM(Filter) - explicit FileSystemModel(QObject* parent = nullptr) - : QAbstractListModel(parent) - , m_recursive(false) - , m_watchChanges(true) - , m_showHidden(false) - , m_filter(NoFilter) { - connect(&m_watcher, &QFileSystemWatcher::directoryChanged, this, &FileSystemModel::watchDirIfRecursive); - connect(&m_watcher, &QFileSystemWatcher::directoryChanged, this, &FileSystemModel::updateEntriesForDir); - } + explicit FileSystemModel(QObject* parent = nullptr); int rowCount(const QModelIndex& parent = QModelIndex()) const override; QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override; diff --git a/plugin/src/Caelestia/service.cpp b/plugin/src/Caelestia/service.cpp index a265b22..941138f 100644 --- a/plugin/src/Caelestia/service.cpp +++ b/plugin/src/Caelestia/service.cpp @@ -8,7 +8,7 @@ Service::Service(QObject* parent) : QObject(parent) , m_refCount(0) {} -int Service::refCount() { +int Service::refCount() const { QMutexLocker locker(&m_mutex); return m_refCount; } diff --git a/plugin/src/Caelestia/service.hpp b/plugin/src/Caelestia/service.hpp index 6422b1f..787818b 100644 --- a/plugin/src/Caelestia/service.hpp +++ b/plugin/src/Caelestia/service.hpp @@ -2,6 +2,7 @@ #include <qmutex.h> #include <qobject.h> + namespace caelestia { class Service : public QObject { @@ -12,7 +13,7 @@ class Service : public QObject { public: explicit Service(QObject* parent = nullptr); - [[nodiscard]] int refCount(); + [[nodiscard]] int refCount() const; void ref(); void unref(); @@ -22,7 +23,7 @@ signals: private: int m_refCount; - QMutex m_mutex; + mutable QMutex m_mutex; virtual void start() = 0; virtual void stop() = 0; |