QueryTool now uses the same DataGrid as the CRUD tool.

This commit is contained in:
eelke 2026-10-18 10:29:24 +02:00
parent bbe52c9db8
commit 5e7fb68c55
15 changed files with 135 additions and 203 deletions

View file

@ -1,11 +1,15 @@
#include "tuplesresultwidget.h"
#include "tuplesresultwidget.h"
#include "ui_tuplesresultwidget.h"
#include "ResultTableModelUtil.h"
#include "util.h"
#include "crud/CrudModel.h"
#include "crud/DataGridWidget.h"
#include "OpenDatabase.h"
#include <QFile>
#include <QTextStream>
#include "util/PgLabItemDelegate.h"
#include <QTableView>
#include <QHeaderView>
TuplesResultWidget::TuplesResultWidget(QWidget *parent) :
@ -15,9 +19,13 @@ TuplesResultWidget::TuplesResultWidget(QWidget *parent) :
ui->setupUi(this);
ui->lblRowCount->setText(QString());
SetTableViewDefault(ui->ResultView);
auto delegate = new PgLabItemDelegate(ui->ResultView);
ui->ResultView->setItemDelegate(delegate);
m_grid = new DataGridWidget(this);
ui->verticalLayout->insertWidget(0, m_grid);
m_grid->view()->setFont(QFont("Source Sans Pro", 10));
m_grid->view()->setAlternatingRowColors(true);
m_grid->view()->setWordWrap(false);
m_grid->view()->verticalHeader()->setDefaultSectionSize(21);
m_grid->view()->verticalHeader()->setMinimumSectionSize(16);
}
TuplesResultWidget::~TuplesResultWidget()
@ -25,14 +33,17 @@ TuplesResultWidget::~TuplesResultWidget()
delete ui;
}
void TuplesResultWidget::setResult(std::shared_ptr<QueryResultModel> res, float ms)
void TuplesResultWidget::setResult(std::shared_ptr<OpenDatabase> db, std::shared_ptr<Pgsql::Result> res, float ms)
{
resultModel = res;
ui->ResultView->setModel(resultModel.get());
m_result = res;
ui->ResultView->resizeColumnsToContents();
m_model = new CrudModel(m_grid);
m_model->setResult(db, res);
m_grid->setSourceModel(m_model);
QString rowcount_str = QString("rows: %1").arg(resultModel->rowCount());
m_grid->view()->resizeColumnsToContents();
QString rowcount_str = QString("rows: %1").arg(m_model->rowCount());
ui->lblRowCount->setText(rowcount_str);
ui->lblElapsedTime->setText(msfloatToHumanReadableString(ms));
}
@ -42,8 +53,6 @@ void TuplesResultWidget::exportData(const QString &file_name) const
QFile file(file_name);
if (file.open(QIODevice::WriteOnly)) {
QTextStream out(&file);
::exportTable(ui->ResultView, out);
::exportTable(m_grid->view(), out);
}
}