Files
qt5-legatus-legacy/Lts/Tools/SqlBrowser/Query.h
T
2026-08-13 18:33:10 +02:00

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);
};