diff --git a/src/database.cpp b/src/database.cpp index faa0f57..88ee995 100644 --- a/src/database.cpp +++ b/src/database.cpp @@ -307,6 +307,11 @@ QVector Database::getObjects(double minRa, double maxRa, double minDe return objects; } +const QSqlDatabase &Database::db() const +{ + return database; +} + bool Database::indexDir2(const QDir &dir, QProgressDialog *progress, QStringList &scannedDirs) { if(scannedDirs.contains(dir.canonicalPath()))return true; diff --git a/src/database.h b/src/database.h index 84bfc5e..4f9ed93 100644 --- a/src/database.h +++ b/src/database.h @@ -42,6 +42,7 @@ public: void reindex(QProgressDialog *progress); QStringList getFitsKeywords(); QVector getObjects(double minRa, double maxRa, double minDec, double maxDec); + const QSqlDatabase& db() const; protected: bool indexDir2(const QDir &dir, QProgressDialog *progress, QStringList &scannedDirs); bool indexFile(const QFileInfo &file); diff --git a/src/databaseview.cpp b/src/databaseview.cpp index ebe5c4b..28b6030 100644 --- a/src/databaseview.cpp +++ b/src/databaseview.cpp @@ -163,26 +163,49 @@ void FITSFileModel::prepareQuery() QString join; QStringList where; QString sql = m_columns.size() ? "SELECT f.file," : "SELECT f.file"; + QVariantList bindValues; for(int i=0; idb()); + query.prepare(sql); + for(int i = 0; i < bindValues.size(); i++) + query.bindValue(i, bindValues[i]); + + if(!query.exec()) + qWarning() << "Failed to exectute query" << query.lastQuery(); + setQuery(std::move(query)); + setHeaderData(0, Qt::Horizontal, tr("File name")); i = 1; for(auto &column : m_columns)