0
0
mirror of https://github.com/fralx/LimeReport.git synced 2025-11-25 00:18:06 +03:00

Define code style and format all source file using clang-format-14

except those placed in 3rdparty directories.
This commit is contained in:
Андрей Лухнов
2024-09-04 17:31:16 +03:00
parent c5b9ac265d
commit 0fca7169d3
285 changed files with 19120 additions and 17875 deletions

View File

@@ -29,111 +29,118 @@
****************************************************************************/
#include "lrconnectiondialog.h"
#include "ui_lrconnectiondialog.h"
#include "lrglobal.h"
#include <QDebug>
#include <QFileDialog>
#include <QMessageBox>
#include <QSqlDatabase>
#include <QSqlError>
#include <QDebug>
#include <QMessageBox>
#include <stdexcept>
#include <QFileDialog>
namespace LimeReport{
namespace LimeReport {
ConnectionDialog::ConnectionDialog(LimeReport::IConnectionController *conControl, LimeReport::ConnectionDesc* connectionDesc, QWidget *parent) :
ConnectionDialog::ConnectionDialog(LimeReport::IConnectionController* conControl,
LimeReport::ConnectionDesc* connectionDesc, QWidget* parent):
QDialog(parent),
ui(new Ui::ConnectionDialog), m_connection(connectionDesc), m_controller(conControl), m_savedConnectionName("")
ui(new Ui::ConnectionDialog),
m_connection(connectionDesc),
m_controller(conControl),
m_savedConnectionName("")
{
ui->setupUi(this);
setAttribute(Qt::WA_DeleteOnClose,true);
m_changeMode=m_connection!=0;
setAttribute(Qt::WA_DeleteOnClose, true);
m_changeMode = m_connection != 0;
}
ConnectionDialog::~ConnectionDialog()
{
delete ui;
}
ConnectionDialog::~ConnectionDialog() { delete ui; }
void ConnectionDialog::init()
{
ui->cbbDrivers->addItems(QSqlDatabase::drivers());
ui->cbbUseDefaultConnection->setEnabled(!m_controller->containsDefaultConnection());
ui->cbbDrivers->addItems(QSqlDatabase::drivers());
ui->cbbUseDefaultConnection->setEnabled(!m_controller->containsDefaultConnection());
}
void ConnectionDialog::showEvent(QShowEvent *)
{
connectionToUI();
}
void ConnectionDialog::showEvent(QShowEvent*) { connectionToUI(); }
void ConnectionDialog::slotAccept()
{
try {
checkFieldsFill();
if (ui->cbAutoConnect->isChecked()) checkConnection();
if (!m_connection){
if (ui->cbAutoConnect->isChecked())
checkConnection();
if (!m_connection) {
m_controller->addConnectionDesc(uiToConnection());
} else {
m_controller->changeConnectionDesc(uiToConnection(m_connection));
}
close();
}
catch(LimeReport::ReportError &exception){
QMessageBox::critical(this,tr("Error"),exception.what());
} catch (LimeReport::ReportError& exception) {
QMessageBox::critical(this, tr("Error"), exception.what());
}
}
void ConnectionDialog::slotCheckConnection()
{
try{
try {
checkConnection();
QMessageBox::information(this,tr("Connection"),tr("Connection succsesfully established!"));
} catch(LimeReport::ReportError &exception) {
QMessageBox::critical(this,tr("Error"),exception.what());
QMessageBox::information(this, tr("Connection"),
tr("Connection succsesfully established!"));
} catch (LimeReport::ReportError& exception) {
QMessageBox::critical(this, tr("Error"), exception.what());
}
}
void ConnectionDialog::checkFieldsFill()
{
if (ui->leConnectionName->text().isEmpty()){throw LimeReport::ReportError(tr("Connection Name is empty"));}
if (!m_changeMode&&QSqlDatabase::connectionNames().contains(ui->leConnectionName->text())) {
throw LimeReport::ReportError(tr("Connection with name ")+ui->leConnectionName->text()+tr(" already exists! "));
if (ui->leConnectionName->text().isEmpty()) {
throw LimeReport::ReportError(tr("Connection Name is empty"));
}
if (!m_changeMode && QSqlDatabase::connectionNames().contains(ui->leConnectionName->text())) {
throw LimeReport::ReportError(tr("Connection with name ") + ui->leConnectionName->text()
+ tr(" already exists! "));
}
}
bool ConnectionDialog::checkConnection()
{
QScopedPointer<LimeReport::ConnectionDesc> con(uiToConnection());
if (!m_controller->checkConnectionDesc(con.data())){
if (!m_controller->checkConnectionDesc(con.data())) {
throw LimeReport::ReportError(m_controller->lastError());
}
return true;
}
ConnectionDesc *ConnectionDialog::uiToConnection(LimeReport::ConnectionDesc* conDesc)
ConnectionDesc* ConnectionDialog::uiToConnection(LimeReport::ConnectionDesc* conDesc)
{
LimeReport::ConnectionDesc* result;
if (conDesc)
result = conDesc;
else
result = new LimeReport::ConnectionDesc();
result ->setName(ConnectionDesc::connectionNameForReport(ui->leConnectionName->text()));
result ->setHost(ui->leServerName->text());
result->setName(ConnectionDesc::connectionNameForReport(ui->leConnectionName->text()));
result->setHost(ui->leServerName->text());
if (!ui->lePort->text().isEmpty())
result->setPort(ui->lePort->text());
result ->setDriver(ui->cbbDrivers->currentText());
result ->setUserName(ui->leUserName->text());
result ->setPassword(ui->lePassword->text());
result ->setDatabaseName(ui->leDataBase->text());
result ->setAutoconnect(ui->cbAutoConnect->isChecked());
result->setDriver(ui->cbbDrivers->currentText());
result->setUserName(ui->leUserName->text());
result->setPassword(ui->lePassword->text());
result->setDatabaseName(ui->leDataBase->text());
result->setAutoconnect(ui->cbAutoConnect->isChecked());
result->setKeepDBCredentials(!ui->cbbKeepCredentials->isChecked());
return result ;
return result;
}
void ConnectionDialog::connectionToUI()
{
init();
if (!m_connection) return;
if (!m_connection)
return;
ui->leConnectionName->setText(ConnectionDesc::connectionNameForUser(m_connection->name()));
ui->cbbUseDefaultConnection->setChecked(m_connection->name().compare(QSqlDatabase::defaultConnection) == 0);
ui->cbbUseDefaultConnection->setChecked(
m_connection->name().compare(QSqlDatabase::defaultConnection) == 0);
ui->leDataBase->setText(m_connection->databaseName());
ui->leServerName->setText(m_connection->host());
ui->leUserName->setText(m_connection->userName());
@@ -151,7 +158,7 @@ void ConnectionDialog::on_toolButton_clicked()
void ConnectionDialog::on_cbbUseDefaultConnection_toggled(bool checked)
{
if (checked){
if (checked) {
m_savedConnectionName = ui->leConnectionName->text();
ui->leConnectionName->setText(tr("defaultConnection"));
ui->leConnectionName->setEnabled(false);
@@ -166,10 +173,3 @@ void ConnectionDialog::on_toolButton_2_toggled(bool checked)
}
} // namespace LimeReport

View File

@@ -30,27 +30,29 @@
#ifndef LRCONNECTIONDIALOG_H
#define LRCONNECTIONDIALOG_H
#include <QDialog>
#include "lrdatadesignintf.h"
namespace LimeReport{
#include <QDialog>
namespace LimeReport {
namespace Ui {
class ConnectionDialog;
}
class ConnectionDialog : public QDialog
{
class ConnectionDialog: public QDialog {
Q_OBJECT
public:
explicit ConnectionDialog(LimeReport::IConnectionController* conControl, LimeReport::ConnectionDesc* connectionDesc=0, QWidget *parent = 0);
explicit ConnectionDialog(LimeReport::IConnectionController* conControl,
LimeReport::ConnectionDesc* connectionDesc = 0, QWidget* parent = 0);
~ConnectionDialog();
protected:
void showEvent(QShowEvent *);
void showEvent(QShowEvent*);
void init();
void checkFieldsFill();
bool checkConnection();
ConnectionDesc* uiToConnection(LimeReport::ConnectionDesc *conDesc = 0);
ConnectionDesc* uiToConnection(LimeReport::ConnectionDesc* conDesc = 0);
void connectionToUI();
signals:
void conectionRegistred(LimeReport::ConnectionDesc* connectionDesc);
@@ -63,7 +65,7 @@ private slots:
void on_toolButton_2_toggled(bool checked);
private:
Ui::ConnectionDialog *ui;
Ui::ConnectionDialog* ui;
ConnectionDesc* m_connection;
bool m_changeMode;
IConnectionController* m_controller;

File diff suppressed because it is too large Load Diff

View File

@@ -30,27 +30,25 @@
#ifndef LRDATABROWSER_H
#define LRDATABROWSER_H
#include <QWidget>
#include <QTreeWidget>
#include <QToolButton>
#include <QDockWidget>
#include "lrdatabrowsertree.h"
#include "lrreportdesignwidget.h"
#include "lrsqleditdialog.h"
#include "lrdatabrowsertree.h"
namespace LimeReport{
#include <QDockWidget>
#include <QToolButton>
#include <QTreeWidget>
#include <QWidget>
namespace LimeReport {
namespace Ui {
class DataBrowser;
}
class DataBrowser : public QWidget, public IConnectionController
{
class DataBrowser: public QWidget, public IConnectionController {
Q_OBJECT
public:
explicit DataBrowser(QWidget *parent = 0);
explicit DataBrowser(QWidget* parent = 0);
~DataBrowser();
QSize sizeHint() const;
void setReportEditor(LimeReport::ReportDesignWidget* report);
@@ -62,7 +60,7 @@ public:
void setSettings(QSettings* value, bool owned = false);
QSettings* settings();
QString lastError() const;
void setLastError(const QString &lastError);
void setLastError(const QString& lastError);
private slots:
void slotDatasourcesChanged();
@@ -77,24 +75,27 @@ private slots:
void slotDataWindowClosed();
void slotChangeConnection();
void slotChangeConnectionState();
void slotVariableEditorAccept(const QString &variable);
void on_dataTree_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
void slotVariableEditorAccept(const QString& variable);
void on_dataTree_currentItemChanged(QTreeWidgetItem* current, QTreeWidgetItem* previous);
void on_editVariable_clicked();
void on_deleteVariable_clicked();
void on_addVariable_clicked();
void on_variablesTree_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
void on_variablesTree_currentItemChanged(QTreeWidgetItem* current, QTreeWidgetItem* previous);
void on_errorMessage_clicked();
void on_varToReport_clicked();
void on_variablesTree_itemDoubleClicked(QTreeWidgetItem *item, int);
void on_variablesTree_itemDoubleClicked(QTreeWidgetItem* item, int);
private:
enum NameType{NameForUser, NameForReport};
enum NameType {
NameForUser,
NameForReport
};
QString getDatasourceName();
QString getConnectionName(NameType nameType);
QString getVariable();
bool isClosingWindows() const {return m_closingWindows;}
QTreeWidgetItem * findByNameAndType(QString name, int itemType);
void fillFields(QTreeWidgetItem *parentItem, LimeReport::IDataSource *dataSource);
bool isClosingWindows() const { return m_closingWindows; }
QTreeWidgetItem* findByNameAndType(QString name, int itemType);
void fillFields(QTreeWidgetItem* parentItem, LimeReport::IDataSource* dataSource);
QDockWidget* createDataWindow(QString datasourceName);
void closeDataWindow(QString datasourceName);
QDockWidget* dataWindow(QString datasourceName);
@@ -113,22 +114,22 @@ private:
void applyChanges(SQLEditResult result);
void addDatasource(SQLEditResult result);
void addConnectionDesc(ConnectionDesc *connection);
void changeConnectionDesc(ConnectionDesc *connection);
bool checkConnectionDesc(ConnectionDesc *connection);
void addConnectionDesc(ConnectionDesc* connection);
void changeConnectionDesc(ConnectionDesc* connection);
bool checkConnectionDesc(ConnectionDesc* connection);
bool containsDefaultConnection();
void activateItem(const QString &name, DataBrowserTree::NodeType type);
void activateItem(const QString& name, DataBrowserTree::NodeType type);
private:
Ui::DataBrowser* ui;
ReportDesignWidget* m_report;
QMap<QString,QDockWidget*> m_dataWindows;
QMainWindow* m_mainWindow;
bool m_closingWindows;
QSettings* m_settings;
bool m_ownedSettings;
QString m_lastError;
Ui::DataBrowser* ui;
ReportDesignWidget* m_report;
QMap<QString, QDockWidget*> m_dataWindows;
QMainWindow* m_mainWindow;
bool m_closingWindows;
QSettings* m_settings;
bool m_ownedSettings;
QString m_lastError;
};
}
} // namespace LimeReport
#endif // LRDATABROWSER_H

View File

@@ -28,29 +28,30 @@
* GNU General Public License for more details. *
****************************************************************************/
#include "lrdatabrowsertree.h"
#include <QDebug>
#include <QMimeData>
namespace LimeReport {
DataBrowserTree::DataBrowserTree(QWidget *parent) :
QTreeWidget(parent){}
DataBrowserTree::DataBrowserTree(QWidget* parent): QTreeWidget(parent) { }
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
QMimeData *DataBrowserTree::mimeData(const QList<QTreeWidgetItem *> &items) const
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
QMimeData* DataBrowserTree::mimeData(const QList<QTreeWidgetItem*>& items) const
#else
QMimeData *DataBrowserTree::mimeData(const QList<QTreeWidgetItem *> items) const
QMimeData* DataBrowserTree::mimeData(const QList<QTreeWidgetItem*> items) const
#endif
{
QMimeData* result = QTreeWidget::mimeData(items);
if (items.at(0)->type()==Row){
result->setText("field:$D{"+items.at(0)->parent()->text(0)+"."+items.at(0)->data(0,Qt::DisplayRole).toString()+"}");
if (items.at(0)->type() == Row) {
result->setText("field:$D{" + items.at(0)->parent()->text(0) + "."
+ items.at(0)->data(0, Qt::DisplayRole).toString() + "}");
}
if (items.at(0)->type()==Variable){
result->setText("variable:$V{"+items.at(0)->text(0)+"}");
if (items.at(0)->type() == Variable) {
result->setText("variable:$V{" + items.at(0)->text(0) + "}");
}
if (items.at(0)->type()==ExternalVariable){
result->setText("variable:$V{"+items.at(0)->text(0)+"}");
if (items.at(0)->type() == ExternalVariable) {
result->setText("variable:$V{" + items.at(0)->text(0) + "}");
}
return result;
}

View File

@@ -32,24 +32,29 @@
#include <QTreeWidget>
namespace LimeReport{
namespace LimeReport {
class DataBrowserTree : public QTreeWidget
{
class DataBrowserTree: public QTreeWidget {
Q_OBJECT
public:
enum NodeType{Connection, Table, Row, Category, Variable, ExternalVariable};
explicit DataBrowserTree(QWidget *parent = 0);
enum NodeType {
Connection,
Table,
Row,
Category,
Variable,
ExternalVariable
};
explicit DataBrowserTree(QWidget* parent = 0);
protected:
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
virtual QMimeData *mimeData(const QList<QTreeWidgetItem *> &items) const;
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
virtual QMimeData* mimeData(const QList<QTreeWidgetItem*>& items) const;
#else
virtual QMimeData *mimeData(const QList<QTreeWidgetItem*> items) const;
virtual QMimeData* mimeData(const QList<QTreeWidgetItem*> items) const;
#endif
public slots:
};
} // namespace LimeReport

View File

@@ -28,18 +28,26 @@
* GNU General Public License for more details. *
****************************************************************************/
#include "lrsqleditdialog.h"
#include "lrreportengine_p.h"
#include "ui_lrsqleditdialog.h"
#include "lrreportengine_p.h"
#include <QDebug>
#include <QMessageBox>
#include <QSqlDatabase>
namespace LimeReport {
SQLEditDialog::SQLEditDialog(QWidget *parent, LimeReport::DataSourceManager *dataSources, SQLDialogMode dialogMode)
: QDialog(parent), ui(new Ui::SQLEditDialog), m_datasources(dataSources), m_dialogMode(dialogMode),
m_oldDatasourceName(""), m_settings(0), m_ownedSettings(false) {
SQLEditDialog::SQLEditDialog(QWidget* parent, LimeReport::DataSourceManager* dataSources,
SQLDialogMode dialogMode):
QDialog(parent),
ui(new Ui::SQLEditDialog),
m_datasources(dataSources),
m_dialogMode(dialogMode),
m_oldDatasourceName(""),
m_settings(0),
m_ownedSettings(false)
{
ui->setupUi(this);
m_masterDatasources = new QCompleter(this);
ui->leMaster->setCompleter(m_masterDatasources);
@@ -62,13 +70,15 @@ SQLEditDialog::SQLEditDialog(QWidget *parent, LimeReport::DataSourceManager *dat
connect(ui->pbHidePreview, SIGNAL(pressed()), this, SLOT(slotHidePreview()));
}
SQLEditDialog::~SQLEditDialog() {
SQLEditDialog::~SQLEditDialog()
{
delete ui;
if (m_settings && m_ownedSettings)
delete m_settings;
}
QSettings *SQLEditDialog::settings() {
QSettings* SQLEditDialog::settings()
{
if (m_settings) {
return m_settings;
} else {
@@ -78,14 +88,16 @@ QSettings *SQLEditDialog::settings() {
}
}
void SQLEditDialog::setSettings(QSettings *value, bool owned) {
void SQLEditDialog::setSettings(QSettings* value, bool owned)
{
if (m_settings && m_ownedSettings)
delete m_settings;
m_settings = value;
m_ownedSettings = owned;
}
void SQLEditDialog::accept() {
void SQLEditDialog::accept()
{
SQLEditResult result;
if (ui->tabWidget->currentIndex() == 1) {
@@ -99,7 +111,8 @@ void SQLEditDialog::accept() {
result.resultMode = SQLEditResult::SubProxy;
}
result.connectionName = ConnectionDesc::connectionNameForReport(ui->cbbConnection->currentText());
result.connectionName
= ConnectionDesc::connectionNameForReport(ui->cbbConnection->currentText());
result.datasourceName = ui->leDatasourceName->text();
result.sql = ui->sqlText->toPlainText();
result.csv = ui->csvText->toPlainText();
@@ -114,10 +127,12 @@ void SQLEditDialog::accept() {
if (ui->fieldsMap->rowCount() > 0) {
for (int i = 0; i < ui->fieldsMap->rowCount(); ++i) {
LimeReport::FieldsCorrelation fieldsCorrelation;
fieldsCorrelation.master =
ui->fieldsMap->item(i, 0) ? ui->fieldsMap->item(i, 0)->data(Qt::DisplayRole).toString() : "";
fieldsCorrelation.detail =
ui->fieldsMap->item(i, 1) ? ui->fieldsMap->item(i, 1)->data(Qt::DisplayRole).toString() : "";
fieldsCorrelation.master = ui->fieldsMap->item(i, 0)
? ui->fieldsMap->item(i, 0)->data(Qt::DisplayRole).toString()
: "";
fieldsCorrelation.detail = ui->fieldsMap->item(i, 1)
? ui->fieldsMap->item(i, 1)->data(Qt::DisplayRole).toString()
: "";
result.fieldMap.append(fieldsCorrelation);
}
}
@@ -126,22 +141,24 @@ void SQLEditDialog::accept() {
check();
emit signalSqlEditingFinished(result);
QDialog::accept();
} catch (LimeReport::ReportError &exception) {
} catch (LimeReport::ReportError& exception) {
QMessageBox::critical(this, tr("Error"), exception.what());
}
}
void SQLEditDialog::showEvent(QShowEvent *) {
void SQLEditDialog::showEvent(QShowEvent*)
{
ui->lblInfo->setVisible(false);
initConnections();
readSettings();
}
void SQLEditDialog::closeEvent(QCloseEvent *) { writeSetting(); }
void SQLEditDialog::closeEvent(QCloseEvent*) { writeSetting(); }
void SQLEditDialog::hideEvent(QHideEvent *) { writeSetting(); }
void SQLEditDialog::hideEvent(QHideEvent*) { writeSetting(); }
void SQLEditDialog::check() {
void SQLEditDialog::check()
{
if (ui->leDatasourceName->text().isEmpty())
throw LimeReport::ReportError(tr("Datasource Name is empty!"));
if (ui->sqlText->toPlainText().isEmpty() && (!ui->rbProxy))
@@ -149,20 +166,23 @@ void SQLEditDialog::check() {
if (m_dialogMode == AddMode) {
if (m_datasources->containsDatasource(ui->leDatasourceName->text())) {
throw LimeReport::ReportError(
QString(tr("Datasource with name: \"%1\" already exists!")).arg(ui->leDatasourceName->text()));
QString(tr("Datasource with name: \"%1\" already exists!"))
.arg(ui->leDatasourceName->text()));
}
}
}
void SQLEditDialog::initConnections() {
void SQLEditDialog::initConnections()
{
foreach (QString connectionName, QSqlDatabase::connectionNames()) {
ui->cbbConnection->addItem(QIcon(":/databrowser/images/plug-connect.png"),
ConnectionDesc::connectionNameForUser(connectionName));
}
foreach (QString connectionName, m_datasources->connectionNames()) {
connectionName =
(connectionName.compare(QSqlDatabase::defaultConnection) == 0) ? tr("defaultConnection") : connectionName;
connectionName = (connectionName.compare(QSqlDatabase::defaultConnection) == 0)
? tr("defaultConnection")
: connectionName;
if (ui->cbbConnection->findText(connectionName, Qt::MatchExactly) == -1)
ui->cbbConnection->addItem(QIcon(":/databrowser/images/plug-disconnect.png"),
ConnectionDesc::connectionNameForUser(connectionName));
@@ -170,12 +190,15 @@ void SQLEditDialog::initConnections() {
ui->cbbConnection->setCurrentIndex(ui->cbbConnection->findText(m_defaultConnection));
if (!m_oldDatasourceName.isEmpty()) {
ui->cbbConnection->setCurrentIndex(ui->cbbConnection->findText(
ConnectionDesc::connectionNameForUser(m_datasources->connectionName(m_oldDatasourceName))));
ui->cbbConnection->setCurrentIndex(
ui->cbbConnection->findText(ConnectionDesc::connectionNameForUser(
m_datasources->connectionName(m_oldDatasourceName))));
}
}
void SQLEditDialog::setDataSources(LimeReport::DataSourceManager *dataSources, QString datasourceName) {
void SQLEditDialog::setDataSources(LimeReport::DataSourceManager* dataSources,
QString datasourceName)
{
m_datasources = dataSources;
if (!datasourceName.isEmpty()) {
ui->cbSubdetail->setEnabled(true);
@@ -191,11 +214,11 @@ void SQLEditDialog::setDataSources(LimeReport::DataSourceManager *dataSources, Q
}
if (dataSources->isProxy(datasourceName)) {
initProxyMode();
LimeReport::ProxyDesc *proxyDesc = dataSources->proxyByName(datasourceName);
LimeReport::ProxyDesc* proxyDesc = dataSources->proxyByName(datasourceName);
ui->leChild->setText(proxyDesc->child());
ui->leMaster->setText(proxyDesc->master());
int curIndex = 0;
foreach (LimeReport::FieldMapDesc *fields, *proxyDesc->fieldsMap()) {
foreach (LimeReport::FieldMapDesc* fields, *proxyDesc->fieldsMap()) {
ui->fieldsMap->setRowCount(curIndex + 1);
ui->fieldsMap->setItem(curIndex, 0, new QTableWidgetItem(fields->master()));
ui->fieldsMap->setItem(curIndex, 1, new QTableWidgetItem(fields->detail()));
@@ -205,24 +228,27 @@ void SQLEditDialog::setDataSources(LimeReport::DataSourceManager *dataSources, Q
if (dataSources->isCSV(datasourceName)) {
ui->csvText->setPlainText(dataSources->csvByName(datasourceName)->csvText());
ui->leSeparator->setText(dataSources->csvByName(datasourceName)->separator());
ui->cbUseFirstRowAsHeader->setChecked(dataSources->csvByName(datasourceName)->firstRowIsHeader());
ui->cbUseFirstRowAsHeader->setChecked(
dataSources->csvByName(datasourceName)->firstRowIsHeader());
initCSVMode();
}
}
}
void SQLEditDialog::setDefaultConnection(QString defaultConnection) {
void SQLEditDialog::setDefaultConnection(QString defaultConnection)
{
m_defaultConnection = ConnectionDesc::connectionNameForUser(defaultConnection);
}
void SQLEditDialog::slotDataSourceNameEditing() {
void SQLEditDialog::slotDataSourceNameEditing()
{
if (m_dialogMode == AddMode) {
QPalette palette = ui->leDatasourceName->palette();
if (m_datasources->containsDatasource(ui->leDatasourceName->text())) {
palette.setColor(QPalette::Text, Qt::red);
ui->leDatasourceName->setPalette(palette);
ui->lblInfo->setText(
QString(tr("Datasource with name %1 already exist")).arg(ui->leDatasourceName->text()));
ui->lblInfo->setText(QString(tr("Datasource with name %1 already exist"))
.arg(ui->leDatasourceName->text()));
ui->lblInfo->setVisible(true);
} else {
palette.setColor(QPalette::Text, QApplication::palette().text().color());
@@ -232,9 +258,11 @@ void SQLEditDialog::slotDataSourceNameEditing() {
}
}
void SQLEditDialog::on_cbSubdetail_clicked(bool checked) {
void SQLEditDialog::on_cbSubdetail_clicked(bool checked)
{
if (checked) {
m_masterDatasources->setModel(new QStringListModel(m_datasources->dataSourceNames(), m_datasources));
m_masterDatasources->setModel(
new QStringListModel(m_datasources->dataSourceNames(), m_datasources));
}
ui->leMaster->setEnabled(checked);
ui->rbProxy->setEnabled(checked);
@@ -247,19 +275,25 @@ void SQLEditDialog::on_cbSubdetail_clicked(bool checked) {
initQueryMode();
}
void SQLEditDialog::on_rbProxy_clicked(bool checked) {
void SQLEditDialog::on_rbProxy_clicked(bool checked)
{
if (checked)
initProxyMode();
}
void SQLEditDialog::on_rbSubQuery_clicked(bool checked) {
void SQLEditDialog::on_rbSubQuery_clicked(bool checked)
{
if (checked)
initSubQueryMode();
}
void SQLEditDialog::on_pbAddField_clicked() { ui->fieldsMap->setRowCount(ui->fieldsMap->rowCount() + 1); }
void SQLEditDialog::on_pbAddField_clicked()
{
ui->fieldsMap->setRowCount(ui->fieldsMap->rowCount() + 1);
}
void SQLEditDialog::initQueryMode() {
void SQLEditDialog::initQueryMode()
{
ui->gbSQL->setVisible(true);
ui->gbFieldsMap->setVisible(false);
ui->pnlChildDatasource->setVisible(false);
@@ -272,7 +306,8 @@ void SQLEditDialog::initQueryMode() {
ui->tabWidget->addTab(ui->csvTab, tr("CSV"));
}
void SQLEditDialog::initSubQueryMode() {
void SQLEditDialog::initSubQueryMode()
{
ui->gbSQL->setVisible(true);
ui->gbFieldsMap->setVisible(false);
ui->pnlChildDatasource->setVisible(false);
@@ -286,7 +321,8 @@ void SQLEditDialog::initSubQueryMode() {
ui->tabWidget->removeTab(1);
}
void SQLEditDialog::initProxyMode() {
void SQLEditDialog::initProxyMode()
{
ui->gbSQL->setVisible(false);
ui->gbFieldsMap->setVisible(true);
ui->pnlChildDatasource->setVisible(true);
@@ -303,14 +339,15 @@ void SQLEditDialog::initProxyMode() {
void SQLEditDialog::initCSVMode() { ui->tabWidget->setCurrentWidget(ui->csvTab); }
void SQLEditDialog::slotPreviewData() {
void SQLEditDialog::slotPreviewData()
{
if (ui->cbbConnection->currentText().isEmpty()) {
QMessageBox::critical(this, tr("Attention"), tr("Connection is not specified"));
return;
}
m_previewModel =
m_datasources->previewSQL(ConnectionDesc::connectionNameForReport(ui->cbbConnection->currentText()),
ui->sqlText->toPlainText(), ui->leMaster->text());
m_previewModel = m_datasources->previewSQL(
ConnectionDesc::connectionNameForReport(ui->cbbConnection->currentText()),
ui->sqlText->toPlainText(), ui->leMaster->text());
if (m_previewModel) {
ui->tvPreview->setModel(m_previewModel.data());
ui->gbDataPreview->setVisible(true);
@@ -325,7 +362,8 @@ void SQLEditDialog::slotPreviewData() {
void SQLEditDialog::slotHidePreview() { hidePreview(); }
void SQLEditDialog::writeSetting() {
void SQLEditDialog::writeSetting()
{
if (settings() != 0) {
settings()->beginGroup("SQLEditor");
settings()->setValue("Geometry", saveGeometry());
@@ -333,7 +371,8 @@ void SQLEditDialog::writeSetting() {
}
}
void SQLEditDialog::readSettings() {
void SQLEditDialog::readSettings()
{
if (settings() == 0)
return;
settings()->beginGroup("SQLEditor");
@@ -344,12 +383,16 @@ void SQLEditDialog::readSettings() {
settings()->endGroup();
}
void SQLEditDialog::hidePreview() {
void SQLEditDialog::hidePreview()
{
ui->gbDataPreview->setVisible(false);
ui->pbPreview->setText(tr("Preview"));
ui->pbHidePreview->setVisible(false);
}
void SQLEditDialog::on_pbDelField_clicked() { ui->fieldsMap->removeRow(ui->fieldsMap->currentRow()); }
void SQLEditDialog::on_pbDelField_clicked()
{
ui->fieldsMap->removeRow(ui->fieldsMap->currentRow());
}
} // namespace LimeReport

View File

@@ -30,15 +30,17 @@
#ifndef LRSQLEDITDIALOG_H
#define LRSQLEDITDIALOG_H
#include <stdexcept>
#include <QDialog>
#include <QCompleter>
#include <QSettings>
#include "lrreportengine_p.h"
#include "lrdatasourcemanager.h"
#include "lrdatadesignintf.h"
#include "lrdatasourcemanager.h"
#include "lrreportengine_p.h"
namespace LimeReport{
#include <QCompleter>
#include <QDialog>
#include <QSettings>
#include <stdexcept>
namespace LimeReport {
namespace Ui {
class SQLEditDialog;
@@ -46,22 +48,26 @@ namespace Ui {
struct SQLEditResult;
class SQLEditDialog : public QDialog
{
class SQLEditDialog: public QDialog {
Q_OBJECT
public:
enum SQLDialogMode {AddMode,EditMode};
explicit SQLEditDialog(QWidget *parent, LimeReport::DataSourceManager* dataSources,SQLDialogMode dialogMode);
void setDataSources(LimeReport::DataSourceManager *dataSources,QString datasourceName="");
enum SQLDialogMode {
AddMode,
EditMode
};
explicit SQLEditDialog(QWidget* parent, LimeReport::DataSourceManager* dataSources,
SQLDialogMode dialogMode);
void setDataSources(LimeReport::DataSourceManager* dataSources, QString datasourceName = "");
void setDefaultConnection(QString defaultConnection);
~SQLEditDialog();
QSettings* settings();
void setSettings(QSettings* value, bool owned = false);
signals:
void signalSqlEditingFinished(SQLEditResult result);
protected:
void showEvent(QShowEvent *);
void showEvent(QShowEvent*);
void closeEvent(QCloseEvent*);
void hideEvent(QHideEvent*);
void check();
@@ -80,12 +86,14 @@ private slots:
void initCSVMode();
void slotPreviewData();
void slotHidePreview();
private:
void writeSetting();
void readSettings();
void hidePreview();
private:
Ui::SQLEditDialog *ui;
Ui::SQLEditDialog* ui;
LimeReport::DataSourceManager* m_datasources;
SQLDialogMode m_dialogMode;
QString m_oldDatasourceName;
@@ -96,8 +104,14 @@ private:
QSharedPointer<QAbstractItemModel> m_previewModel;
};
struct SQLEditResult{
enum ResultMode{Query, SubQuery, SubProxy, CSVText, Undefined};
struct SQLEditResult {
enum ResultMode {
Query,
SubQuery,
SubProxy,
CSVText,
Undefined
};
QString connectionName;
QString datasourceName;
QString oldDatasourceName;

View File

@@ -29,13 +29,16 @@
****************************************************************************/
#include "lrvariabledialog.h"
#include "ui_lrvariabledialog.h"
#include "lrglobal.h"
#include "lrvariablesholder.h"
#include <stdexcept>
#include <QMessageBox>
#include <QMetaEnum>
LRVariableDialog::LRVariableDialog(QWidget *parent) :
#include <stdexcept>
LRVariableDialog::LRVariableDialog(QWidget* parent):
QDialog(parent),
ui(new Ui::LRVariableDialog),
m_variableName(""),
@@ -45,43 +48,45 @@ LRVariableDialog::LRVariableDialog(QWidget *parent) :
{
ui->setupUi(this);
static int enumIndex = LimeReport::Enums::staticMetaObject.indexOfEnumerator("VariableDataType");
static int enumIndex
= LimeReport::Enums::staticMetaObject.indexOfEnumerator("VariableDataType");
QMetaEnum enumerator = LimeReport::Enums::staticMetaObject.enumerator(enumIndex);
for (int i = 0; i<enumerator.keyCount(); ++i){
for (int i = 0; i < enumerator.keyCount(); ++i) {
ui->cbbType->addItem(enumerator.key(i));
}
//ui->cbbType->setVisible(false);
//ui->lblType->setVisible(false);
// ui->cbbType->setVisible(false);
// ui->lblType->setVisible(false);
}
LRVariableDialog::~LRVariableDialog()
LRVariableDialog::~LRVariableDialog() { delete ui; }
void LRVariableDialog::setVariableContainer(LimeReport::IVariablesContainer* value)
{
delete ui;
m_variablesContainer = value;
}
void LRVariableDialog::setVariableContainer(LimeReport::IVariablesContainer *value)
void LRVariableDialog::setVariableName(const QString& value)
{
m_variablesContainer=value;
m_variableName = value;
m_changeMode = true;
m_oldVariableName = value;
}
void LRVariableDialog::setVariableName(const QString &value)
{
m_variableName=value;
m_changeMode=true;
m_oldVariableName=value;
}
void LRVariableDialog::showEvent(QShowEvent *)
void LRVariableDialog::showEvent(QShowEvent*)
{
ui->leName->setText(m_variableName);
static int enumIndex = LimeReport::Enums::staticMetaObject.indexOfEnumerator("VariableDataType");
static int enumIndex
= LimeReport::Enums::staticMetaObject.indexOfEnumerator("VariableDataType");
QMetaEnum enumerator = LimeReport::Enums::staticMetaObject.enumerator(enumIndex);
if (!m_variableName.isEmpty()&&m_variablesContainer&&m_variablesContainer->containsVariable(m_variableName)){
if (!m_variableName.isEmpty() && m_variablesContainer
&& m_variablesContainer->containsVariable(m_variableName)) {
ui->leValue->setPlainText(m_variablesContainer->variable(m_variableName).toString());
#if QT_VERSION < 0x050000
ui->cbbType->setCurrentIndex(ui->cbbType->findText(enumerator.valueToKey(m_variablesContainer->variableDataType(m_variableName))));
ui->cbbType->setCurrentIndex(ui->cbbType->findText(
enumerator.valueToKey(m_variablesContainer->variableDataType(m_variableName))));
#else
ui->cbbType->setCurrentText(enumerator.valueToKey(m_variablesContainer->variableDataType(m_variableName)));
ui->cbbType->setCurrentText(
enumerator.valueToKey(m_variablesContainer->variableDataType(m_variableName)));
#endif
ui->cbbMandatory->setChecked(m_variablesContainer->variableIsMandatory(m_variableName));
}
@@ -89,35 +94,36 @@ void LRVariableDialog::showEvent(QShowEvent *)
void LRVariableDialog::accept()
{
try{
static int enumIndex = LimeReport::Enums::staticMetaObject.indexOfEnumerator("VariableDataType");
try {
static int enumIndex
= LimeReport::Enums::staticMetaObject.indexOfEnumerator("VariableDataType");
QMetaEnum enumerator = LimeReport::Enums::staticMetaObject.enumerator(enumIndex);
if (m_variablesContainer&&!ui->leName->text().isEmpty()){
if (m_changeMode){
if (m_oldVariableName==ui->leName->text()){
m_variablesContainer->changeVariable(m_oldVariableName,value());
if (m_variablesContainer && !ui->leName->text().isEmpty()) {
if (m_changeMode) {
if (m_oldVariableName == ui->leName->text()) {
m_variablesContainer->changeVariable(m_oldVariableName, value());
} else {
m_variablesContainer->deleteVariable(m_oldVariableName);
m_variablesContainer->addVariable(ui->leName->text(),value(), LimeReport::VarDesc::Report);
m_variablesContainer->addVariable(ui->leName->text(), value(),
LimeReport::VarDesc::Report);
}
} else {
m_variablesContainer->addVariable(ui->leName->text(),value(), LimeReport::VarDesc::Report);
m_variablesContainer->addVariable(ui->leName->text(), value(),
LimeReport::VarDesc::Report);
}
m_variablesContainer->setVarableMandatory(ui->leName->text(),ui->cbbMandatory->isChecked());
m_variablesContainer->setVarableMandatory(ui->leName->text(),
ui->cbbMandatory->isChecked());
m_variablesContainer->setVariableDataType(
ui->leName->text(),
LimeReport::VariableDataType(enumerator.keysToValue(ui->cbbType->currentText().toLatin1()))
);
LimeReport::VariableDataType(
enumerator.keysToValue(ui->cbbType->currentText().toLatin1())));
emit signalVariableAccepted(ui->leName->text());
QDialog::accept();
}
} catch (LimeReport::ReportError &exception){
QMessageBox::critical(this,tr("Attention"),exception.what());
} catch (LimeReport::ReportError& exception) {
QMessageBox::critical(this, tr("Attention"), exception.what());
}
}
QVariant LRVariableDialog::value()
{
return ui->leValue->toPlainText();
}
QVariant LRVariableDialog::value() { return ui->leValue->toPlainText(); }

View File

@@ -30,32 +30,35 @@
#ifndef LRVARIABLEDIALOG_H
#define LRVARIABLEDIALOG_H
#include <QDialog>
#include "lrvariablesholder.h"
#include <QDialog>
namespace Ui {
class LRVariableDialog;
}
class LRVariableDialog : public QDialog
{
class LRVariableDialog: public QDialog {
Q_OBJECT
public:
explicit LRVariableDialog(QWidget *parent = 0);
explicit LRVariableDialog(QWidget* parent = 0);
~LRVariableDialog();
void setVariableContainer(LimeReport::IVariablesContainer *value);
void setVariableName(const QString &value);
void setVariableContainer(LimeReport::IVariablesContainer* value);
void setVariableName(const QString& value);
protected:
void showEvent(QShowEvent *);
void showEvent(QShowEvent*);
private slots:
void accept();
signals:
void signalVariableAccepted(const QString &variable);
void signalVariableAccepted(const QString& variable);
private:
QVariant value();
private:
Ui::LRVariableDialog *ui;
Ui::LRVariableDialog* ui;
QString m_variableName;
LimeReport::IVariablesContainer* m_variablesContainer;
bool m_changeMode;