From 845c609c8665562298b8b4a89ba0529b35410e20 Mon Sep 17 00:00:00 2001 From: Arin Alexander Date: Tue, 24 Oct 2017 01:49:30 +0300 Subject: [PATCH 1/2] Database connection fixed --- limereport/lrdatadesignintf.cpp | 7 ++++--- limereport/lrdatadesignintf.h | 10 +++++----- limereport/lrdatasourcemanager.cpp | 2 +- limereport/lrreportdesignwidget.cpp | 3 +++ limereport/lrreportengine.cpp | 2 +- 5 files changed, 14 insertions(+), 10 deletions(-) diff --git a/limereport/lrdatadesignintf.cpp b/limereport/lrdatadesignintf.cpp index 2bc5e3a..d33eda8 100644 --- a/limereport/lrdatadesignintf.cpp +++ b/limereport/lrdatadesignintf.cpp @@ -118,9 +118,9 @@ void QueryHolder::setConnectionName(QString connectionName) m_connectionName=connectionName; } -void QueryHolder::invalidate(IDataSource::DatasourceMode mode){ +void QueryHolder::invalidate(IDataSource::DatasourceMode mode, bool dbWillBeClosed){ QSqlDatabase db = QSqlDatabase::database(m_connectionName); - if (!db.isValid()){ + if (!db.isValid() || dbWillBeClosed){ setLastError(QObject::tr("Invalid connection! %1").arg(m_connectionName)); delete m_query; m_dataSource.clear(); @@ -552,9 +552,10 @@ IDataSource *ProxyHolder::dataSource(IDataSource::DatasourceMode mode) return m_datasource.data(); } -void ProxyHolder::invalidate(IDataSource::DatasourceMode mode) +void ProxyHolder::invalidate(IDataSource::DatasourceMode mode, bool dbWillBeClosed) { Q_UNUSED(mode) + Q_UNUSED(dbWillBeClosed); if (m_model && m_model->isInvalid()){ m_invalid = true; m_lastError = tr("Datasource has been invalidated"); diff --git a/limereport/lrdatadesignintf.h b/limereport/lrdatadesignintf.h index e51a3af..9910049 100644 --- a/limereport/lrdatadesignintf.h +++ b/limereport/lrdatadesignintf.h @@ -74,7 +74,7 @@ public: virtual bool isOwned() const = 0; virtual bool isEditable() const = 0; virtual bool isRemovable() const = 0; - virtual void invalidate(IDataSource::DatasourceMode mode) = 0; + virtual void invalidate(IDataSource::DatasourceMode mode, bool dbWillBeClosed = false) = 0; virtual void update() = 0; virtual void clearErrors() = 0; virtual ~IDataSourceHolder(){} @@ -91,7 +91,7 @@ public: QString lastError() const { return m_dataSource->lastError(); } bool isEditable() const { return false; } bool isRemovable() const { return false; } - void invalidate(IDataSource::DatasourceMode mode){Q_UNUSED(mode)} + void invalidate(IDataSource::DatasourceMode mode, bool dbWillBeClosed = false){Q_UNUSED(mode) Q_UNUSED(dbWillBeClosed)} void update(){} void clearErrors(){} signals: @@ -200,7 +200,7 @@ public: bool isPrepared() const {return m_prepared;} QString lastError() const { return m_lastError; } void setLastError(QString value){m_lastError=value; if (m_query) {delete m_query; m_query=0;}} - void invalidate(IDataSource::DatasourceMode mode); + void invalidate(IDataSource::DatasourceMode mode, bool dbWillBeClosed = false); void update(); void clearErrors(){setLastError("");} DataSourceManager* dataManager() const {return m_dataManager;} @@ -330,7 +330,7 @@ public: bool isEditable() const { return true; } bool isRemovable() const { return true; } QString lastError() const { return m_lastError; } - void invalidate(IDataSource::DatasourceMode mode); + void invalidate(IDataSource::DatasourceMode mode, bool dbWillBeClosed = false); void update(){} void clearErrors(){m_lastError = "";} DataSourceManager* dataManager() const {return m_dataManger;} @@ -420,7 +420,7 @@ public: bool isOwned() const {return m_owned;} bool isEditable() const {return false;} bool isRemovable() const {return false;} - void invalidate(IDataSource::DatasourceMode mode){Q_UNUSED(mode)} + void invalidate(IDataSource::DatasourceMode mode, bool dbWillBeClosed = false){Q_UNUSED(mode) Q_UNUSED(dbWillBeClosed)} ~CallbackDatasourceHolder(){delete m_datasource;} void update(){} void clearErrors(){} diff --git a/limereport/lrdatasourcemanager.cpp b/limereport/lrdatasourcemanager.cpp index 365455e..4da9e63 100644 --- a/limereport/lrdatasourcemanager.cpp +++ b/limereport/lrdatasourcemanager.cpp @@ -930,7 +930,7 @@ void DataSourceManager::disconnectConnection(const QString& connectionName) if (isQuery(datasourceName) || isSubQuery(datasourceName)){ QueryHolder* qh = dynamic_cast(dataSourceHolder(datasourceName)); if (qh && qh->connectionName().compare(connectionName,Qt::CaseInsensitive)==0){ - qh->invalidate(designTime()?IDataSource::DESIGN_MODE:IDataSource::RENDER_MODE); + qh->invalidate(designTime()?IDataSource::DESIGN_MODE:IDataSource::RENDER_MODE, true); qh->setLastError(tr("invalid connection")); } } diff --git a/limereport/lrreportdesignwidget.cpp b/limereport/lrreportdesignwidget.cpp index f88a971..a96854d 100644 --- a/limereport/lrreportdesignwidget.cpp +++ b/limereport/lrreportdesignwidget.cpp @@ -637,6 +637,9 @@ void ReportDesignWidget::slotPagePropertyObjectNameChanged(const QString &oldVal void ReportDesignWidget::slotTabMoved(int from, int to) { + Q_UNUSED(from) + Q_UNUSED(to) + QList pages; for ( int i = 0; i < m_tabWidget->tabBar()->count(); ++i){ diff --git a/limereport/lrreportengine.cpp b/limereport/lrreportengine.cpp index 9e74c6f..dd1896c 100644 --- a/limereport/lrreportengine.cpp +++ b/limereport/lrreportengine.cpp @@ -364,7 +364,7 @@ bool ReportEnginePrivate::printToPDF(const QString &fileName) void ReportEnginePrivate::previewReport(PreviewHints hints) { - QTime start = QTime::currentTime(); +// QTime start = QTime::currentTime(); try{ dataManager()->setDesignTime(false); ReportPages pages = renderToPages(); From d91f97d337c8a19dbb69247ad352fbbaa0d7037a Mon Sep 17 00:00:00 2001 From: Arin Alexander Date: Tue, 24 Oct 2017 01:50:23 +0300 Subject: [PATCH 2/2] Version changed --- common.pri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.pri b/common.pri index 7dea220..6daf5cf 100644 --- a/common.pri +++ b/common.pri @@ -62,7 +62,7 @@ RCC_DIR = $${ARCH_DIR}/$${BUILD_TYPE}/rcc LIMEREPORT_VERSION_MAJOR = 1 LIMEREPORT_VERSION_MINOR = 4 -LIMEREPORT_VERSION_RELEASE = 43 +LIMEREPORT_VERSION_RELEASE = 47 LIMEREPORT_VERSION = '\\"$${LIMEREPORT_VERSION_MAJOR}.$${LIMEREPORT_VERSION_MINOR}.$${LIMEREPORT_VERSION_RELEASE}\\"' DEFINES += LIMEREPORT_VERSION_STR=\"$${LIMEREPORT_VERSION}\"