summaryrefslogtreecommitdiff
path: root/plugin/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--plugin/src/Caelestia/CMakeLists.txt1
-rw-r--r--plugin/src/Caelestia/filesystemmodel.cpp64
-rw-r--r--plugin/src/Caelestia/filesystemmodel.hpp61
-rw-r--r--plugin/src/Caelestia/service.cpp2
-rw-r--r--plugin/src/Caelestia/service.hpp5
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;