Add simple filter option
This commit is contained in:
+21
-3
@@ -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);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user