From 692e941bbbf8997dd53404684d41bd96768f7a57 Mon Sep 17 00:00:00 2001 From: Arin Alex Date: Wed, 29 Jun 2016 23:24:04 +0300 Subject: [PATCH 1/3] travis build: ppa:beineri/opt-qt56-trusty --> ppa:beineri/opt-qt561-trusty --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4d1be7d..b89e1f8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ env: - QT_BASE=56 before_install: - - if [ "$QT_BASE" = "56" ]; then sudo add-apt-repository ppa:beineri/opt-qt56-trusty -y; fi + - if [ "$QT_BASE" = "56" ]; then sudo add-apt-repository ppa:beineri/opt-qt561-trusty -y; fi - sudo apt-get update -qq install: From bf6adc13c352eb7a2a51eafa4e94cdc5d5a0bae0 Mon Sep 17 00:00:00 2001 From: Arin Alex Date: Thu, 7 Jul 2016 23:48:03 +0300 Subject: [PATCH 2/3] Fix #40 Replace "QStyleOptionViewItemV4" with "QStyleOptionViewItem" --- common.pri | 1 + include/lrglobal.h | 8 ++++++++ limereport/databrowser/lrdatabrowser.ui | 2 +- limereport/lrglobal.h | 8 ++++++++ limereport/objectinspector/lrobjectinspectorwidget.cpp | 4 ++-- limereport/objectinspector/lrobjectpropitem.cpp | 2 +- limereport/objectinspector/lrobjectpropitem.h | 3 +-- limereport/objectinspector/lrpropertydelegate.cpp | 4 ++-- .../objectinspector/propertyItems/lrboolpropitem.cpp | 2 +- limereport/objectinspector/propertyItems/lrboolpropitem.h | 2 +- .../objectinspector/propertyItems/lrcolorpropitem.cpp | 2 +- .../objectinspector/propertyItems/lrcolorpropitem.h | 2 +- 12 files changed, 28 insertions(+), 12 deletions(-) diff --git a/common.pri b/common.pri index 2534473..c15fe14 100644 --- a/common.pri +++ b/common.pri @@ -68,6 +68,7 @@ greaterThan(QT_MAJOR_VERSION, 4) { } lessThan(QT_MAJOR_VERSION, 5){ + DEFINES+=HAVE_QT4 CONFIG(uitools){ message(uitools) DEFINES += HAVE_UI_LOADER diff --git a/include/lrglobal.h b/include/lrglobal.h index 4d1a456..b131207 100644 --- a/include/lrglobal.h +++ b/include/lrglobal.h @@ -32,6 +32,7 @@ #include "qglobal.h" #include #include +#include #if defined(LIMEREPORT_EXPORTS) # define LIMEREPORT_EXPORT Q_DECL_EXPORT @@ -94,6 +95,13 @@ namespace Const{ bool m_suppressAbsentFieldsAndVarsWarnings; }; +#ifdef HAVE_QT4 + typedef QStyleOptionViewItemV4 StyleOptionViewItem; +#else + typedef QStyleOptionViewItem StyleOptionViewItem; +#endif + + } // namespace LimeReport diff --git a/limereport/databrowser/lrdatabrowser.ui b/limereport/databrowser/lrdatabrowser.ui index 2bfc7a6..2b60383 100644 --- a/limereport/databrowser/lrdatabrowser.ui +++ b/limereport/databrowser/lrdatabrowser.ui @@ -35,7 +35,7 @@ QTabWidget::South - 1 + 0 diff --git a/limereport/lrglobal.h b/limereport/lrglobal.h index 4d1a456..b131207 100644 --- a/limereport/lrglobal.h +++ b/limereport/lrglobal.h @@ -32,6 +32,7 @@ #include "qglobal.h" #include #include +#include #if defined(LIMEREPORT_EXPORTS) # define LIMEREPORT_EXPORT Q_DECL_EXPORT @@ -94,6 +95,13 @@ namespace Const{ bool m_suppressAbsentFieldsAndVarsWarnings; }; +#ifdef HAVE_QT4 + typedef QStyleOptionViewItemV4 StyleOptionViewItem; +#else + typedef QStyleOptionViewItem StyleOptionViewItem; +#endif + + } // namespace LimeReport diff --git a/limereport/objectinspector/lrobjectinspectorwidget.cpp b/limereport/objectinspector/lrobjectinspectorwidget.cpp index 4405f7d..325ec1e 100644 --- a/limereport/objectinspector/lrobjectinspectorwidget.cpp +++ b/limereport/objectinspector/lrobjectinspectorwidget.cpp @@ -59,8 +59,8 @@ ObjectInspectorWidget::~ObjectInspectorWidget(){} void ObjectInspectorWidget::drawRow(QPainter *painter, const QStyleOptionViewItem &options, const QModelIndex &index) const { ObjectPropItem *node = nodeFromIndex(index); - QStyleOptionViewItemV4 so = options; - bool alternate = so.features & QStyleOptionViewItemV4::Alternate; + StyleOptionViewItem so = options; + bool alternate = so.features & StyleOptionViewItem::Alternate; if (node){ if ((!node->isHaveValue())){ const QColor c = options.palette.color(QPalette::Dark); diff --git a/limereport/objectinspector/lrobjectpropitem.cpp b/limereport/objectinspector/lrobjectpropitem.cpp index 908237c..fa516ff 100644 --- a/limereport/objectinspector/lrobjectpropitem.cpp +++ b/limereport/objectinspector/lrobjectpropitem.cpp @@ -177,7 +177,7 @@ void ObjectPropItem::updatePropertyValue() m_model->setData(m_index,m_object->property(m_name.toLatin1())); } -bool ObjectPropItem::paint(QPainter *, const QStyleOptionViewItemV4 &, const QModelIndex &) +bool ObjectPropItem::paint(QPainter *, const StyleOptionViewItem &, const QModelIndex &) { return false; } diff --git a/limereport/objectinspector/lrobjectpropitem.h b/limereport/objectinspector/lrobjectpropitem.h index 6e2d796..c78cf69 100644 --- a/limereport/objectinspector/lrobjectpropitem.h +++ b/limereport/objectinspector/lrobjectpropitem.h @@ -36,7 +36,6 @@ #include #include #include -#include #include "lrattribsabstractfactory.h" #include "lrsingleton.h" @@ -70,7 +69,7 @@ namespace LimeReport{ virtual void setModelData(QWidget * /*editor*/, QAbstractItemModel * /*model*/, const QModelIndex &/*index*/){} virtual void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &/*index*/) const; virtual void updatePropertyValue(); - virtual bool paint(QPainter *, const QStyleOptionViewItemV4 &, const QModelIndex &); + virtual bool paint(QPainter *, const StyleOptionViewItem &, const QModelIndex &); ObjectPropItem* parent() const{ return m_parent;} QObject* object() const{return m_object;} diff --git a/limereport/objectinspector/lrpropertydelegate.cpp b/limereport/objectinspector/lrpropertydelegate.cpp index 4796c23..db44400 100644 --- a/limereport/objectinspector/lrpropertydelegate.cpp +++ b/limereport/objectinspector/lrpropertydelegate.cpp @@ -50,7 +50,7 @@ void LimeReport::PropertyDelegate::paint(QPainter *painter, const QStyleOptionVi if (node){ if (!node->isHaveValue()){ if (index.column()==0) { - QStyleOptionViewItemV4 cellOpt = option; + StyleOptionViewItem cellOpt = option; QTreeView const *tree = dynamic_cast(cellOpt.widget); QStyleOptionViewItem primitiveOpt = cellOpt; primitiveOpt.rect.setWidth(tree->indentation()); @@ -82,7 +82,7 @@ void LimeReport::PropertyDelegate::paint(QPainter *painter, const QStyleOptionVi painter->restore(); } - QStyleOptionViewItemV4 so = option; + StyleOptionViewItem so = option; if ((node->isValueReadonly())&&(!node->isHaveChildren())) { so.palette.setColor(QPalette::Text,so.palette.color(QPalette::Dark)); } diff --git a/limereport/objectinspector/propertyItems/lrboolpropitem.cpp b/limereport/objectinspector/propertyItems/lrboolpropitem.cpp index 9989af5..950c531 100644 --- a/limereport/objectinspector/propertyItems/lrboolpropitem.cpp +++ b/limereport/objectinspector/propertyItems/lrboolpropitem.cpp @@ -67,7 +67,7 @@ void BoolPropItem::setModelData(QWidget *propertyEditor, QAbstractItemModel *mod setValueToObject(propertyName(),propertyValue()); } -bool BoolPropItem::paint(QPainter *painter, const QStyleOptionViewItemV4 &option, const QModelIndex &index) +bool BoolPropItem::paint(QPainter *painter, const StyleOptionViewItem &option, const QModelIndex &index) { if (index.column()==1){ QStyleOptionButton so; diff --git a/limereport/objectinspector/propertyItems/lrboolpropitem.h b/limereport/objectinspector/propertyItems/lrboolpropitem.h index 0e7dc99..3407925 100644 --- a/limereport/objectinspector/propertyItems/lrboolpropitem.h +++ b/limereport/objectinspector/propertyItems/lrboolpropitem.h @@ -44,7 +44,7 @@ public: virtual QWidget* createProperyEditor(QWidget *parent) const; virtual void setPropertyEditorData(QWidget * propertyEditor, const QModelIndex &) const; virtual void setModelData(QWidget * propertyEditor, QAbstractItemModel * model, const QModelIndex & index); - bool paint(QPainter *painter, const QStyleOptionViewItemV4 &option, const QModelIndex &index); + bool paint(QPainter *painter, const StyleOptionViewItem &option, const QModelIndex &index); }; } // namespace LimeReport diff --git a/limereport/objectinspector/propertyItems/lrcolorpropitem.cpp b/limereport/objectinspector/propertyItems/lrcolorpropitem.cpp index 7880442..4443cb9 100644 --- a/limereport/objectinspector/propertyItems/lrcolorpropitem.cpp +++ b/limereport/objectinspector/propertyItems/lrcolorpropitem.cpp @@ -54,7 +54,7 @@ void ColorPropItem::setModelData(QWidget *propertyEditor, QAbstractItemModel *mo setValueToObject(propertyName(),propertyValue()); } -bool ColorPropItem::paint(QPainter *painter, const QStyleOptionViewItemV4 &option, const QModelIndex &index) +bool ColorPropItem::paint(QPainter *painter, const StyleOptionViewItem &option, const QModelIndex &index) { if (index.column()==1){ painter->save(); diff --git a/limereport/objectinspector/propertyItems/lrcolorpropitem.h b/limereport/objectinspector/propertyItems/lrcolorpropitem.h index f4940b5..6d0b8de 100644 --- a/limereport/objectinspector/propertyItems/lrcolorpropitem.h +++ b/limereport/objectinspector/propertyItems/lrcolorpropitem.h @@ -44,7 +44,7 @@ public: QWidget* createProperyEditor(QWidget *parent) const; void setPropertyEditorData(QWidget *propertyEditor, const QModelIndex &) const; void setModelData(QWidget *propertyEditor, QAbstractItemModel *model, const QModelIndex &index); - bool paint(QPainter *painter, const QStyleOptionViewItemV4 &option, const QModelIndex &index); + bool paint(QPainter *painter, const StyleOptionViewItem &option, const QModelIndex &index); }; } From 885cd91daace6c8d156a37d44603297dc5c3530d Mon Sep 17 00:00:00 2001 From: Arin Alex Date: Thu, 7 Jul 2016 23:49:54 +0300 Subject: [PATCH 3/3] singnal queryTextChanged(const QString& queryName, const QString& queryText) has been added to QueryDesc singnal queryTextChanged(const QString& queryName, const QString& queryText) has been added to QueryDesc --- limereport/lrdatadesignintf.cpp | 8 +++++++- limereport/lrdatadesignintf.h | 8 +++++--- limereport/lrdatasourcemanager.cpp | 20 +++++++++++++------- limereport/lrdatasourcemanager.h | 4 ++-- 4 files changed, 27 insertions(+), 13 deletions(-) diff --git a/limereport/lrdatadesignintf.cpp b/limereport/lrdatadesignintf.cpp index 9b8e86a..b9a15dd 100644 --- a/limereport/lrdatadesignintf.cpp +++ b/limereport/lrdatadesignintf.cpp @@ -158,6 +158,7 @@ void QueryHolder::fillParams(QSqlQuery *query) void QueryHolder::extractParams() { m_preparedSQL = replaceVariables(m_queryText); + m_prepared = true; } QString QueryHolder::replaceVariables(QString query) @@ -195,6 +196,11 @@ QString QueryHolder::queryText() void QueryHolder::setQueryText(QString queryText) { m_queryText=queryText; + m_prepared = false; + if (m_query) { + delete m_query; + m_query = 0; + } } IDataSource* QueryHolder::dataSource(IDataSource::DatasourceMode mode) @@ -364,7 +370,7 @@ void ConnectionDesc::setName(const QString &value) } QueryDesc::QueryDesc(QString queryName, QString queryText, QString connection) - :m_queryName(queryName), m_query(queryText), m_connectionName(connection) + :m_queryName(queryName), m_queryText(queryText), m_connectionName(connection) {} SubQueryHolder::SubQueryHolder(QString queryText, QString connectionName, QString masterDatasource, DataSourceManager* dataManager) diff --git a/limereport/lrdatadesignintf.h b/limereport/lrdatadesignintf.h index 1c7823a..e53056f 100644 --- a/limereport/lrdatadesignintf.h +++ b/limereport/lrdatadesignintf.h @@ -159,13 +159,15 @@ public: explicit QueryDesc(QObject* parent=0):QObject(parent){} void setQueryName(QString value){m_queryName=value;} QString queryName(){return m_queryName;} - void setQueryText(QString value){m_query=value;} - QString queryText(){return m_query;} + void setQueryText(QString value){m_queryText=value; emit queryTextChanged(m_queryName, m_queryText);} + QString queryText(){return m_queryText;} void setConnectionName(QString value){m_connectionName=value;} QString connectionName(){return m_connectionName;} +signals: + void queryTextChanged(const QString& queryName, const QString& queryText); private: QString m_queryName; - QString m_query; + QString m_queryText; QString m_connectionName; }; diff --git a/limereport/lrdatasourcemanager.cpp b/limereport/lrdatasourcemanager.cpp index d140a16..9cfa82e 100644 --- a/limereport/lrdatasourcemanager.cpp +++ b/limereport/lrdatasourcemanager.cpp @@ -620,13 +620,7 @@ bool DataSourceManager::checkConnectionDesc(ConnectionDesc *connection) return false; } -void DataSourceManager::addQueryDesc(QueryDesc *query) -{ - m_queries.append(query); - addQuery(query->queryName(), query->queryText(), query->connectionName()); -} - -void DataSourceManager::putHolder(QString name, IDataSourceHolder *dataSource) +void DataSourceManager::putHolder(const QString& name, IDataSourceHolder *dataSource) { if (!m_datasources.contains(name.toLower())){ m_datasources.insert( @@ -640,6 +634,8 @@ void DataSourceManager::putQueryDesc(QueryDesc* queryDesc) { if (!containsDatasource(queryDesc->queryName())){ m_queries.append(queryDesc); + connect(queryDesc, SIGNAL(queryTextChanged(QString,QString)), + this, SLOT(slotQueryTextChanged(QString,QString))); } else throw ReportError(tr("datasource with name \"%1\" already exists !").arg(queryDesc->queryName())); } @@ -647,6 +643,8 @@ void DataSourceManager::putSubQueryDesc(SubQueryDesc *subQueryDesc) { if (!containsDatasource(subQueryDesc->queryName())){ m_subqueries.append(subQueryDesc); + connect(subQueryDesc, SIGNAL(queryTextChanged(QString,QString)), + this, SLOT(slotQueryTextChanged(QString,QString))); } else throw ReportError(tr("datasource with name \"%1\" already exists !").arg(subQueryDesc->queryName())); } @@ -1058,6 +1056,14 @@ void DataSourceManager::slotConnectionRenamed(const QString &oldName, const QStr } } +void DataSourceManager::slotQueryTextChanged(const QString &queryName, const QString &queryText) +{ + QueryHolder* holder = dynamic_cast(m_datasources.value(queryName)); + if (holder){ + holder->setQueryText(queryText); + } +} + void DataSourceManager::clear(ClearMethod method) { DataSourcesMap::iterator dit; diff --git a/limereport/lrdatasourcemanager.h b/limereport/lrdatasourcemanager.h index aac8778..97fe6d1 100644 --- a/limereport/lrdatasourcemanager.h +++ b/limereport/lrdatasourcemanager.h @@ -195,8 +195,7 @@ signals: void cleared(); void datasourcesChanged(); protected: - void addQueryDesc(QueryDesc *); - void putHolder(QString name, LimeReport::IDataSourceHolder* dataSource); + void putHolder(const QString& name, LimeReport::IDataSourceHolder* dataSource); void putQueryDesc(QueryDesc *queryDesc); void putSubQueryDesc(SubQueryDesc *subQueryDesc); void putProxyDesc(ProxyDesc *proxyDesc); @@ -217,6 +216,7 @@ protected: private slots: void slotConnectionRenamed(const QString& oldName,const QString& newName); + void slotQueryTextChanged(const QString& queryName, const QString& queryText); private: explicit DataSourceManager(QObject *parent = 0); Q_DISABLE_COPY(DataSourceManager)