summaryrefslogtreecommitdiff
path: root/plugin/src/Caelestia/appdb.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/src/Caelestia/appdb.hpp')
-rw-r--r--plugin/src/Caelestia/appdb.hpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/plugin/src/Caelestia/appdb.hpp b/plugin/src/Caelestia/appdb.hpp
index 5f9b960..ce5f270 100644
--- a/plugin/src/Caelestia/appdb.hpp
+++ b/plugin/src/Caelestia/appdb.hpp
@@ -4,6 +4,7 @@
#include <qobject.h>
#include <qqmlintegration.h>
#include <qqmllist.h>
+#include <qregularexpression.h>
#include <qtimer.h>
namespace caelestia {
@@ -66,6 +67,7 @@ class AppDb : public QObject {
Q_PROPERTY(QString uuid READ uuid CONSTANT)
Q_PROPERTY(QString path READ path WRITE setPath NOTIFY pathChanged REQUIRED)
Q_PROPERTY(QObjectList entries READ entries WRITE setEntries NOTIFY entriesChanged REQUIRED)
+ Q_PROPERTY(QStringList favouriteApps READ favouriteApps WRITE setFavouriteApps NOTIFY favouriteAppsChanged REQUIRED)
Q_PROPERTY(QQmlListProperty<caelestia::AppEntry> apps READ apps NOTIFY appsChanged)
public:
@@ -79,6 +81,9 @@ public:
[[nodiscard]] QObjectList entries() const;
void setEntries(const QObjectList& entries);
+ [[nodiscard]] QStringList favouriteApps() const;
+ void setFavouriteApps(const QStringList& favApps);
+
[[nodiscard]] QQmlListProperty<AppEntry> apps();
Q_INVOKABLE void incrementFrequency(const QString& id);
@@ -86,6 +91,7 @@ public:
signals:
void pathChanged();
void entriesChanged();
+ void favouriteAppsChanged();
void appsChanged();
private:
@@ -94,10 +100,14 @@ private:
const QString m_uuid;
QString m_path;
QObjectList m_entries;
+ QStringList m_favouriteApps; // unedited string list from qml
+ QList<QRegularExpression> m_favouriteAppsRegex; // pre-regexified m_favouriteApps list
QHash<QString, AppEntry*> m_apps;
mutable QList<AppEntry*> m_sortedApps;
+ QString regexifyString(const QString& original) const;
QList<AppEntry*>& getSortedApps() const;
+ bool isFavourite(const AppEntry* app) const;
quint32 getFrequency(const QString& id) const;
void updateAppFrequencies();
void updateApps();