diff options
| author | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-09-22 17:33:35 +1000 |
|---|---|---|
| committer | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-09-22 17:33:35 +1000 |
| commit | ca1d9f2134d53329dd8583d8a506c7f99e5278c7 (patch) | |
| tree | 0698cc40fef150717dcb52f4805ae301ff91414b | |
| parent | colours: fix term colours (diff) | |
| download | caelestia-shell-ca1d9f2134d53329dd8583d8a506c7f99e5278c7.tar.gz caelestia-shell-ca1d9f2134d53329dd8583d8a506c7f99e5278c7.tar.bz2 caelestia-shell-ca1d9f2134d53329dd8583d8a506c7f99e5278c7.zip | |
plugin/appdb: debounce updating entries
Fixes #667
| -rw-r--r-- | plugin/src/Caelestia/appdb.cpp | 7 | ||||
| -rw-r--r-- | plugin/src/Caelestia/appdb.hpp | 3 |
2 files changed, 9 insertions, 1 deletions
diff --git a/plugin/src/Caelestia/appdb.cpp b/plugin/src/Caelestia/appdb.cpp index a81019b..74d1873 100644 --- a/plugin/src/Caelestia/appdb.cpp +++ b/plugin/src/Caelestia/appdb.cpp @@ -75,7 +75,12 @@ QString AppEntry::keywords() const { AppDb::AppDb(QObject* parent) : QObject(parent) + , m_timer(new QTimer(this)) , m_uuid(QUuid::createUuid().toString()) { + m_timer->setSingleShot(true); + m_timer->setInterval(300); + connect(m_timer, &QTimer::timeout, this, &AppDb::updateApps); + auto db = QSqlDatabase::addDatabase("QSQLITE", m_uuid); db.setDatabaseName(":memory:"); db.open(); @@ -125,7 +130,7 @@ void AppDb::setEntries(const QList<QObject*>& entries) { m_entries = entries; emit entriesChanged(); - updateApps(); + m_timer->start(); } QList<AppEntry*> AppDb::apps() const { diff --git a/plugin/src/Caelestia/appdb.hpp b/plugin/src/Caelestia/appdb.hpp index 46aed59..bb1a3f1 100644 --- a/plugin/src/Caelestia/appdb.hpp +++ b/plugin/src/Caelestia/appdb.hpp @@ -3,6 +3,7 @@ #include <qhash.h> #include <qobject.h> #include <qqmlintegration.h> +#include <qtimer.h> namespace caelestia { @@ -87,6 +88,8 @@ signals: void appsChanged(); private: + QTimer* m_timer; + const QString m_uuid; QString m_path; QList<QObject*> m_entries; |