106 lines
2.4 KiB
C++
Executable File
106 lines
2.4 KiB
C++
Executable File
#pragma once
|
|
|
|
#include "DataModel.h"
|
|
#include "AddModel.h"
|
|
#include "AddLine.h"
|
|
|
|
#include <QWidget>
|
|
#include <QSortFilterProxyModel>
|
|
#include <QList>
|
|
#include <QSet>
|
|
#include <QModelIndex>
|
|
|
|
class QueryWorker;
|
|
class QCheckBox;
|
|
|
|
namespace Ui
|
|
{
|
|
class Query;
|
|
}
|
|
|
|
|
|
class Query: public QWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit Query(QueryWorker* queryWorker, QWidget *parent = nullptr);
|
|
~Query();
|
|
|
|
void setTable(const QString& tableName); // get's data from specified table and shows it in the data view
|
|
|
|
void setModel();
|
|
void refreshData(QVariant val, QModelIndex onThisPosition);
|
|
void handleError(const QString &errorText);
|
|
|
|
private:
|
|
Ui::Query* m_ui;
|
|
DataModel* m_model;
|
|
QSortFilterProxyModel m_sortModel;
|
|
QueryWorker* m_queryWorker;
|
|
AddLines* m_addLines; // need access to add lines for show/hide/close.....
|
|
QSet<QCheckBox *> m_checkboxes;
|
|
bool m_idInWhere;
|
|
|
|
void setCustomQuery(); // cannot add/delete/reload
|
|
void setTableQuery(); // can add/delete/reload
|
|
|
|
QStringList checkedColumnsNames() const;
|
|
signals:
|
|
void signalShowWait(const QString &msg);
|
|
void signalHideWait();
|
|
|
|
private slots:
|
|
void slotExportCSV();
|
|
void onQueryDelete();
|
|
void onQueryInsert();
|
|
void onQueryUpdate();
|
|
|
|
// new architecture
|
|
|
|
// Delete Line(s)
|
|
signals:
|
|
void signalDeleteLines(Query* caller, const QList<QModelIndex> &, DataModel*);
|
|
|
|
private slots:
|
|
void slotDeleteLine();
|
|
void slotDeleteLinesResult(Query* caller, int affectedRowsCount, QString errorText, const QList<QModelIndex> &affectedRowsList);
|
|
|
|
|
|
// Custom Query
|
|
signals:
|
|
void signalCustomQuery(Query* caller, const QString &, DataModel*);
|
|
|
|
private slots:
|
|
void slotCustomQuery();
|
|
void slotCustomQueryResult(Query* caller, const QString &errorText);
|
|
|
|
|
|
// Table Query
|
|
signals:
|
|
void signalTableQuery(Query* caller, DataModel*);
|
|
|
|
private slots:
|
|
void slotTableQuery();
|
|
void slotTableQueryResult(Query* caller, const QString &errorText);
|
|
|
|
|
|
// Add Line
|
|
signals:
|
|
void signalAddLines(Query* caller, AddModel*);
|
|
|
|
private slots:
|
|
void slotStartAddLines();
|
|
void slotAddLines(AddModel*);
|
|
void slotAddLinesResult(Query* caller, int affectedRows, const QString &errorText);
|
|
|
|
|
|
// Set Data
|
|
signals:
|
|
void signalSetData(Query* caller, DataModel *model, const QModelIndex &index, const QVariant &val);
|
|
|
|
private slots:
|
|
void slotSetData(DataModel* model, const QModelIndex &index, const QVariant &val);
|
|
void slotSetDataResult(Query* caller, const QString &errorText);
|
|
};
|