Add simple filter option

This commit is contained in:
2022-04-09 18:44:37 +02:00
parent 1e61e25fdc
commit da20d043a2
2 changed files with 98 additions and 18 deletions
+21 -3
View File
@@ -6,6 +6,8 @@
#include <QSqlQueryModel>
#include <QTableView>
#include <QListWidget>
#include <QComboBox>
#include <QLineEdit>
#include "database.h"
class SelectColumnsDialog : public QDialog
@@ -18,12 +20,29 @@ public:
QStringList selectedColumns();
};
class FITSFileModel : public QSqlQueryModel
{
Q_OBJECT
QStringList m_columns;
QString m_sort;
QString m_having;
public:
FITSFileModel(QObject *parent = nullptr);
void sort(int column, Qt::SortOrder order);
void setColumns(const QStringList &columns);
void setFilter(const QString &key, const QString &value);
protected:
void prepareQuery();
};
class DataBaseView : public QWidget
{
Q_OBJECT
Database *m_database;
QTableView *m_tableView;
QSqlQueryModel *m_model;
FITSFileModel *m_model;
QComboBox *m_filterKeyword;
QLineEdit *m_search;
public:
explicit DataBaseView(Database *database, QWidget *parent = nullptr);
~DataBaseView();
@@ -31,8 +50,7 @@ public slots:
void selectColumns();
void loadDatabase();
void itemActivated(const QModelIndex &index);
protected:
void prepareQuery(const QStringList &columns);
void applyFilter();
signals:
void loadFile(QString file);
};