From 305c1d1f5553e8d1f0385d39c817c02b153a7f15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Du=C5=A1an=20Poizl?= Date: Sat, 21 Mar 2026 20:32:28 +0100 Subject: [PATCH] Deffered SQL query when database is visible --- src/databaseview.cpp | 17 +++++++++++++++++ src/databaseview.h | 3 +++ 2 files changed, 20 insertions(+) diff --git a/src/databaseview.cpp b/src/databaseview.cpp index a510e02..81c52c8 100644 --- a/src/databaseview.cpp +++ b/src/databaseview.cpp @@ -157,8 +157,19 @@ void FITSFileModel::filesUnmarked(const QModelIndexList &indexes) } } +void FITSFileModel::load() +{ + if(!m_loaded) + { + m_loaded = true; + prepareQuery(); + } +} + void FITSFileModel::prepareQuery() { + if(!m_loaded)return; + QString cols; QString join; QStringList where; @@ -427,6 +438,7 @@ bool DataBaseView::exportCSV(const QString &path) if(!csv.open(QIODevice::WriteOnly | QIODevice::Text)) return false; + m_model->load(); QSqlQuery sql(m_model->query().lastQuery()); int colCount = m_model->columnCount(); QStringList header; @@ -455,3 +467,8 @@ bool DataBaseView::exportCSV(const QString &path) } return true; } + +void DataBaseView::visible(bool visible) +{ + if(visible)m_model->load(); +} diff --git a/src/databaseview.h b/src/databaseview.h index d0edbcc..f74e6c7 100644 --- a/src/databaseview.h +++ b/src/databaseview.h @@ -30,6 +30,7 @@ class FITSFileModel : public QSqlQueryModel QStringList m_limit; QSet m_markedFiles; Database *m_database; + bool m_loaded = false; public: explicit FITSFileModel(Database *database, QObject *parent = nullptr); void sort(int column, Qt::SortOrder order) override; @@ -38,6 +39,7 @@ public: QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; void filesMarked(const QModelIndexList &indexes); void filesUnmarked(const QModelIndexList &indexes); + void load(); protected: void prepareQuery(); }; @@ -74,6 +76,7 @@ public slots: void itemActivated(const QModelIndex &index); void applyFilter(); bool exportCSV(const QString &path); + void visible(bool visible); signals: void loadFile(QString file); };