Merge pull request #340 from darktorres/master

Properly detect Qt 6
This commit is contained in:
Alexander Arin 2021-09-10 23:05:48 +03:00 committed by GitHub
commit 843ecc61b4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
65 changed files with 688 additions and 225 deletions

View File

@ -32,24 +32,25 @@ CONFIG(easy_profiler) {
message(EasyProfiler) message(EasyProfiler)
INCLUDEPATH *= $$PWD/3rdparty/easyprofiler/easy_profiler_core/include INCLUDEPATH *= $$PWD/3rdparty/easyprofiler/easy_profiler_core/include
DEPENDPATH *= $$PWD/3rdparty/easyprofiler/easy_profiler_core/include DEPENDPATH *= $$PWD/3rdparty/easyprofiler/easy_profiler_core/include
unix|win32: LIBS *= -L$$PWD/3rdparty/easyprofiler/build/bin/ -leasy_profiler unix|win32: LIBS *= -L$$PWD/3rdparty/easyprofiler/build/bin/ -leasy_profiler
greaterThan(QT_MAJOR_VERSION, 4) { equals(QT_MAJOR_VERSION, 5) | equals(QT_MAJOR_VERSION, 6) {
DEFINES *= BUILD_WITH_EASY_PROFILER DEFINES *= BUILD_WITH_EASY_PROFILER
} }
} }
!CONFIG(qtscriptengine) { !CONFIG(qtscriptengine) {
greaterThan(QT_MAJOR_VERSION, 4) { equals(QT_MAJOR_VERSION, 4) {
greaterThan(QT_MINOR_VERSION, 5) {
CONFIG *= qjsengine
}
lessThan(QT_MINOR_VERSION, 6) {
CONFIG *= qtscriptengine
}
}
lessThan(QT_MAJOR_VERSION, 5) {
CONFIG *= qtscriptengine CONFIG *= qtscriptengine
} }
equals(QT_MAJOR_VERSION, 5) : lessThan(QT_MINOR_VERSION, 6) {
CONFIG *= qtscriptengine
}
equals(QT_MAJOR_VERSION, 5) : greaterThan(QT_MINOR_VERSION, 5) {
CONFIG *= qjsengine
}
equals(QT_MAJOR_VERSION, 6) {
CONFIG *= qjsengine
}
} }
CONFIG(qtscriptengine) { CONFIG(qtscriptengine) {
@ -74,12 +75,12 @@ CONFIG(zint) {
DEFINES *= HAVE_ZINT DEFINES *= HAVE_ZINT
} }
greaterThan(QT_MAJOR_VERSION, 4) { equals(QT_MAJOR_VERSION, 4) {
QT *= uitools CONFIG *= uitools
} }
lessThan(QT_MAJOR_VERSION, 5) { equals(QT_MAJOR_VERSION, 5) | equals(QT_MAJOR_VERSION, 6) {
CONFIG *= uitools QT *= uitools
} }
CONFIG(release, debug|release) { CONFIG(release, debug|release) {
@ -150,7 +151,15 @@ QT *= xml sql
REPORT_PATH = $$PWD/limereport REPORT_PATH = $$PWD/limereport
TRANSLATIONS_PATH = $$PWD/translations TRANSLATIONS_PATH = $$PWD/translations
greaterThan(QT_MAJOR_VERSION, 4) { equals(QT_MAJOR_VERSION, 4) {
DEFINES *= HAVE_QT4
CONFIG(uitools) {
message(uitools)
DEFINES *= HAVE_UI_LOADER
}
}
equals(QT_MAJOR_VERSION, 5) | equals(QT_MAJOR_VERSION, 6) {
DEFINES *= HAVE_QT5 DEFINES *= HAVE_QT5
QT *= printsupport widgets QT *= printsupport widgets
contains(QT, uitools) { contains(QT, uitools) {
@ -163,11 +172,3 @@ greaterThan(QT_MAJOR_VERSION, 4) {
QT *= qml QT *= qml
} }
} }
lessThan(QT_MAJOR_VERSION, 5) {
DEFINES *= HAVE_QT4
CONFIG(uitools) {
message(uitools)
DEFINES *= HAVE_UI_LOADER
}
}

View File

@ -18,7 +18,7 @@ int main(int argc, char *argv[])
QApplication::setApplicationVersion(LIMEREPORT_VERSION_STR); QApplication::setApplicationVersion(LIMEREPORT_VERSION_STR);
QStringList vars; QStringList vars;
#if QT_VERSION > QT_VERSION_CHECK(5, 2, 0) #if QT_VERSION > 0x050200
QCommandLineParser parser; QCommandLineParser parser;
parser.addHelpOption(); parser.addHelpOption();
parser.addVersionOption(); parser.addVersionOption();

View File

@ -3,7 +3,11 @@
#include <QSqlDatabase> #include <QSqlDatabase>
#include <QDir> #include <QDir>
#include <QDebug> #include <QDebug>
#if QT_VERSION < 0x060000
#include <QDesktopWidget> #include <QDesktopWidget>
#else
#include <QScreen>
#endif
MainWindow::MainWindow(QWidget *parent) : MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent), QMainWindow(parent),
@ -40,10 +44,17 @@ MainWindow::MainWindow(QWidget *parent) :
connect(ui->actionOne_to_One, SIGNAL(triggered()), this, SLOT(slotOneToOne())); connect(ui->actionOne_to_One, SIGNAL(triggered()), this, SLOT(slotOneToOne()));
initPercentCombobox(); initPercentCombobox();
enableUI(false); enableUI(false);
#if QT_VERSION < 0x060000
QDesktopWidget *desktop = QApplication::desktop(); QDesktopWidget *desktop = QApplication::desktop();
int screenWidth = desktop->screenGeometry().width(); int screenWidth = desktop->screenGeometry().width();
int screenHeight = desktop->screenGeometry().height(); int screenHeight = desktop->screenGeometry().height();
#else
QScreen *screen = QGuiApplication::primaryScreen();
int screenWidth = screen->geometry().width();
int screenHeight = screen->geometry().height();
#endif
int x = screenWidth*0.1; int x = screenWidth*0.1;
int y = screenHeight*0.1; int y = screenHeight*0.1;

View File

@ -1 +1 @@
#include "lrcallbackdatasourceintf.h" #include "lrcallbackdatasourceintf.h"

View File

@ -67,7 +67,11 @@ QString replaceHTMLSymbols(const QString &value)
return result; return result;
} }
#if QT_VERSION < 0x060000
QVector<QString> normalizeCaptures(const QRegExp& reg){ QVector<QString> normalizeCaptures(const QRegExp& reg){
#else
QVector<QString> normalizeCaptures(const QRegularExpressionMatch &reg){
#endif
QVector<QString> result; QVector<QString> result;
foreach (QString cap, reg.capturedTexts()) { foreach (QString cap, reg.capturedTexts()) {
if (!cap.isEmpty()) if (!cap.isEmpty())

View File

@ -51,7 +51,7 @@ namespace LimeReport {
#define VARIABLE_IS_NOT_USED #define VARIABLE_IS_NOT_USED
#endif #endif
#if QT_VERSION >= QT_VERSION_CHECK(5, 8, 0) #if QT_VERSION >= 0x050800
Q_NAMESPACE Q_NAMESPACE
#endif #endif
@ -104,7 +104,11 @@ namespace Const{
QString extractClassName(QString className); QString extractClassName(QString className);
QString escapeSimbols(const QString& value); QString escapeSimbols(const QString& value);
QString replaceHTMLSymbols(const QString &value); QString replaceHTMLSymbols(const QString &value);
#if QT_VERSION < 0x060000
QVector<QString> normalizeCaptures(const QRegExp &reg); QVector<QString> normalizeCaptures(const QRegExp &reg);
#else
QVector<QString> normalizeCaptures(const QRegularExpressionMatch &reg);
#endif
bool isColorDark(QColor color); bool isColorDark(QColor color);
enum ExpandType {EscapeSymbols, NoEscapeSymbols, ReplaceHTMLSymbols}; enum ExpandType {EscapeSymbols, NoEscapeSymbols, ReplaceHTMLSymbols};
@ -148,7 +152,7 @@ namespace Const{
virtual ~IPainterProxy(); virtual ~IPainterProxy();
}; };
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) #if QT_VERSION < 0x050000
typedef QStyleOptionViewItemV4 StyleOptionViewItem; typedef QStyleOptionViewItemV4 StyleOptionViewItem;
#else #else
typedef QStyleOptionViewItem StyleOptionViewItem; typedef QStyleOptionViewItem StyleOptionViewItem;
@ -158,7 +162,7 @@ namespace Const{
{ {
public: public:
enum VariableDataType {Undefined, String, Bool, Int, Real, Date, Time, DateTime}; enum VariableDataType {Undefined, String, Bool, Int, Real, Date, Time, DateTime};
#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)) #if QT_VERSION >= 0x050500
Q_ENUM(VariableDataType) Q_ENUM(VariableDataType)
#else #else
Q_ENUMS(VariableDataType) Q_ENUMS(VariableDataType)

View File

@ -31,7 +31,7 @@
#define LRSCRIPTENGINEMANAGERINTF_H #define LRSCRIPTENGINEMANAGERINTF_H
#include "qglobal.h" #include "qglobal.h"
#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) #if QT_VERSION >= 0x050600
#ifndef USE_QTSCRIPTENGINE #ifndef USE_QTSCRIPTENGINE
#ifndef USE_QJSENGINE #ifndef USE_QJSENGINE
#define USE_QJSENGINE #define USE_QJSENGINE

View File

@ -14,7 +14,7 @@ SUBDIRS += \
demo_r2 \ demo_r2 \
designer designer
greaterThan(QT_MAJOR_VERSION, 4) : greaterThan(QT_MINOR_VERSION, 1) { if(equals(QT_MAJOR_VERSION, 5) : greaterThan(QT_MINOR_VERSION, 1)) | equals(QT_MAJOR_VERSION, 6) {
SUBDIRS += console SUBDIRS += console
} }

View File

@ -63,7 +63,8 @@ DataBrowser::DataBrowser(QWidget *parent) :
connect(ui->changeConnection,SIGNAL(clicked()),this,SLOT(slotChangeConnection())); connect(ui->changeConnection,SIGNAL(clicked()),this,SLOT(slotChangeConnection()));
connect(ui->pbConnect,SIGNAL(clicked()),this,SLOT(slotChangeConnectionState())); connect(ui->pbConnect,SIGNAL(clicked()),this,SLOT(slotChangeConnectionState()));
ui->verticalLayout_2->setMargin(Const::DOCKWIDGET_MARGINS); int margin = Const::DOCKWIDGET_MARGINS;
ui->verticalLayout_2->setContentsMargins(margin, margin, margin, margin);
ui->dataTree->setHeaderLabel(tr("Datasources")); ui->dataTree->setHeaderLabel(tr("Datasources"));
ui->pbConnect->setEnabled(false); ui->pbConnect->setEnabled(false);
@ -413,7 +414,7 @@ void DataBrowser::initConnections()
connections.append(connectionName); connections.append(connectionName);
} }
} }
qSort(connections); std::sort(connections.begin(), connections.end());
foreach (QString connectionName, connections) { foreach (QString connectionName, connections) {
QTreeWidgetItem *item=new QTreeWidgetItem( QTreeWidgetItem *item=new QTreeWidgetItem(
ui->dataTree, ui->dataTree,
@ -443,7 +444,7 @@ void DataBrowser::initConnections()
// } // }
// connections = m_report->dataManager()->connectionNames(); // connections = m_report->dataManager()->connectionNames();
// qSort(connections); // std::sort(connections);
// foreach(QString connectionName,connectionName){ // foreach(QString connectionName,connectionName){
// if (!QSqlDatabase::contains(connectionName)){ // if (!QSqlDatabase::contains(connectionName)){
// QTreeWidgetItem *item=new QTreeWidgetItem( // QTreeWidgetItem *item=new QTreeWidgetItem(

View File

@ -78,11 +78,10 @@ void LRVariableDialog::showEvent(QShowEvent *)
QMetaEnum enumerator = LimeReport::Enums::staticMetaObject.enumerator(enumIndex); 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()); ui->leValue->setPlainText(m_variablesContainer->variable(m_variableName).toString());
#ifdef HAVE_QT5 #if QT_VERSION < 0x050000
ui->cbbType->setCurrentText(enumerator.valueToKey(m_variablesContainer->variableDataType(m_variableName)));
#endif
#ifdef HAVE_QT4
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)));
#endif #endif
ui->cbbMandatory->setChecked(m_variablesContainer->variableIsMandatory(m_variableName)); ui->cbbMandatory->setChecked(m_variablesContainer->variableIsMandatory(m_variableName));
} }

View File

@ -55,12 +55,13 @@ FormResizer::FormResizer(QWidget *parent) :
setBackgroundRole(QPalette::Base); setBackgroundRole(QPalette::Base);
QVBoxLayout *handleLayout = new QVBoxLayout(this); QVBoxLayout *handleLayout = new QVBoxLayout(this);
handleLayout->setMargin(SELECTION_MARGIN); int margin = SELECTION_MARGIN;
handleLayout->setContentsMargins(margin, margin, margin, margin);
handleLayout->addWidget(m_frame); handleLayout->addWidget(m_frame);
m_frame->setFrameStyle(QFrame::Panel | QFrame::Raised); m_frame->setFrameStyle(QFrame::Panel | QFrame::Raised);
QVBoxLayout *layout = new QVBoxLayout(m_frame); QVBoxLayout *layout = new QVBoxLayout(m_frame);
layout->setMargin(0); layout->setContentsMargins(0, 0, 0, 0);
// handles // handles
m_handles.reserve(SizeHandleRect::Left); m_handles.reserve(SizeHandleRect::Left);
for (int i = SizeHandleRect::LeftTop; i <= SizeHandleRect::Left; ++i) { for (int i = SizeHandleRect::LeftTop; i <= SizeHandleRect::Left; ++i) {

View File

@ -70,7 +70,7 @@ void WidgetHost::setFormWindow(QDesignerFormWindowInterface *fw)
setBackgroundRole(QPalette::Base); setBackgroundRole(QPalette::Base);
m_formWindow->setAutoFillBackground(true); m_formWindow->setAutoFillBackground(true);
m_formWindow->setBackgroundRole(QPalette::Background); m_formWindow->setBackgroundRole(QPalette::Window);
connect(m_formResizer, SIGNAL(formWindowSizeChanged(QRect, QRect)), connect(m_formResizer, SIGNAL(formWindowSizeChanged(QRect, QRect)),
this, SLOT(fwSizeWasChanged(QRect, QRect))); this, SLOT(fwSizeWasChanged(QRect, QRect)));

View File

@ -3,21 +3,23 @@ include($$PWD/3rdparty/qtcreator/designerintegrationv2/designerintegration.pri)
INCLUDEPATH *= $$PWD/3rdparty/designer INCLUDEPATH *= $$PWD/3rdparty/designer
greaterThan(QT_MAJOR_VERSION, 4) : contains(QT, uitools) { equals(QT_MAJOR_VERSION, 4) : CONFIG(uitools) {
DEFINES += HAVE_QTDESIGNER_INTEGRATION DEFINES += HAVE_QTDESIGNER_INTEGRATION
} }
lessThan(QT_MAJOR_VERSION, 5) : CONFIG(uitools) { if(equals(QT_MAJOR_VERSION, 5) | equals(QT_MAJOR_VERSION, 6)) : contains(QT, uitools) {
DEFINES += HAVE_QTDESIGNER_INTEGRATION DEFINES += HAVE_QTDESIGNER_INTEGRATION
} }
greaterThan(QT_MAJOR_VERSION, 4) { equals(QT_MAJOR_VERSION, 4) {
QT *= designer designercomponents-private
} else {
CONFIG *= designer CONFIG *= designer
qtAddLibrary(QtDesignerComponents) qtAddLibrary(QtDesignerComponents)
} }
equals(QT_MAJOR_VERSION, 5) | equals(QT_MAJOR_VERSION, 6) {
QT *= designer designercomponents-private
}
SOURCES += $$PWD/lrdialogdesigner.cpp SOURCES += $$PWD/lrdialogdesigner.cpp
HEADERS += $$PWD/lrdialogdesigner.h HEADERS += $$PWD/lrdialogdesigner.h

View File

@ -104,10 +104,9 @@ DialogDesignerManager::DialogDesignerManager(QObject *parent) : QObject(parent)
m_designerToolWindows.append(m_actionEditor); m_designerToolWindows.append(m_actionEditor);
connect(m_actionEditor, SIGNAL(destroyed(QObject*)), this, SLOT(slotObjectDestroyed(QObject*)) ); connect(m_actionEditor, SIGNAL(destroyed(QObject*)), this, SLOT(slotObjectDestroyed(QObject*)) );
#ifdef HAVE_QT4 #if QT_VERSION < 0x050000
m_designerIntegration = new qdesigner_internal::QDesignerIntegration(m_formEditor,this); m_designerIntegration = new qdesigner_internal::QDesignerIntegration(m_formEditor,this);
#endif #else
#ifdef HAVE_QT5
m_designerIntegration = new QDesignerIntegration(m_formEditor,this); m_designerIntegration = new QDesignerIntegration(m_formEditor,this);
#endif #endif
m_formEditor->setIntegration(m_designerIntegration); m_formEditor->setIntegration(m_designerIntegration);

View File

@ -36,7 +36,7 @@ void HorizontalBarChart::paintHorizontalBars(QPainter *painter, QRectF barsRect)
delta = genNextValue(delta); delta = genNextValue(delta);
qreal vStep = (barsRect.height()-painter->fontMetrics().height()) / valuesCount() / seriesCount(); qreal vStep = (barsRect.height()-painter->fontMetrics().height()) / valuesCount() / seriesCount();
qreal hStep = (barsRect.width()-painter->fontMetrics().width(QString::number(maxValue()))) / delta; qreal hStep = (barsRect.width()-painter->fontMetrics().boundingRect(QString::number(maxValue())).width()) / delta;
if (!m_chartItem->series().isEmpty() && (m_chartItem->itemMode() != DesignMode)){ if (!m_chartItem->series().isEmpty() && (m_chartItem->itemMode() != DesignMode)){
int curSeries = 0; int curSeries = 0;

View File

@ -8,13 +8,12 @@ void PieChart::drawPercent(QPainter *painter, QRectF chartRect, qreal startAngle
QPointF center(chartRect.left()+chartRect.width()/2,chartRect.top()+chartRect.height()/2); QPointF center(chartRect.left()+chartRect.width()/2,chartRect.top()+chartRect.height()/2);
qreal percent = angle/3.6; qreal percent = angle/3.6;
#ifdef HAVE_QT4 #if QT_VERSION < 0x050000
qreal radAngle = (angle/2+startAngle)*(M_PI/180); qreal radAngle = (angle/2+startAngle)*(M_PI/180);
#endif #else
#ifdef HAVE_QT5
qreal radAngle = qDegreesToRadians(angle/2+startAngle); qreal radAngle = qDegreesToRadians(angle/2+startAngle);
#endif #endif
qreal radius = painter->fontMetrics().width("99,9%"); qreal radius = painter->fontMetrics().boundingRect("99,9%").width();
qreal border = chartRect.height()*0.02; qreal border = chartRect.height()*0.02;
qreal length = (chartRect.height())/2-(radius/2+border); qreal length = (chartRect.height())/2-(radius/2+border);
qreal x,y; qreal x,y;
@ -155,14 +154,14 @@ QSizeF PieChart::calcChartLegendSize(const QFont &font)
SeriesItem* si = m_chartItem->series().at(0); SeriesItem* si = m_chartItem->series().at(0);
foreach(QString label, si->data()->labels()){ foreach(QString label, si->data()->labels()){
cw += fm.height(); cw += fm.height();
if (maxWidth<fm.width(label)) if (maxWidth<fm.boundingRect(label).width())
maxWidth = fm.width(label)+10; maxWidth = fm.boundingRect(label).width()+10;
} }
} else { } else {
foreach(QString label, m_designLabels){ foreach(QString label, m_designLabels){
cw += fm.height(); cw += fm.height();
if (maxWidth<fm.width(label)) if (maxWidth<fm.boundingRect(label).width())
maxWidth = fm.width(label)+10; maxWidth = fm.boundingRect(label).width()+10;
} }
} }
cw += fm.height(); cw += fm.height();

View File

@ -53,7 +53,7 @@ void ItemsBordersEditorWidget::properyChangedEvent(const QString& property, cons
void ItemsBordersEditorWidget::noBordesClicked() void ItemsBordersEditorWidget::noBordesClicked()
{ {
updateValues(0); updateValues({});
} }
void ItemsBordersEditorWidget::allBordesClicked() void ItemsBordersEditorWidget::allBordesClicked()
@ -148,7 +148,7 @@ void ItemsBordersEditorWidgetForDesigner::buttonClicked(bool)
void ItemsBordersEditorWidgetForDesigner::noBordesClicked() void ItemsBordersEditorWidgetForDesigner::noBordesClicked()
{ {
m_reportEditor->setBorders(0); m_reportEditor->setBorders({});
ItemsBordersEditorWidget::noBordesClicked(); ItemsBordersEditorWidget::noBordesClicked();
} }

View File

@ -108,7 +108,7 @@ void TextAlignmentEditorWidget::updateValues(const Qt::Alignment &align)
Qt::Alignment TextAlignmentEditorWidget::createAlignment() Qt::Alignment TextAlignmentEditorWidget::createAlignment()
{ {
Qt::Alignment align = 0 ; Qt::Alignment align = Qt::Alignment();
if (m_textAliginLeft->isChecked()) align |= Qt::AlignLeft; if (m_textAliginLeft->isChecked()) align |= Qt::AlignLeft;
if (m_textAliginHCenter->isChecked()) align |= Qt::AlignHCenter; if (m_textAliginHCenter->isChecked()) align |= Qt::AlignHCenter;
if (m_textAliginRight->isChecked()) align |= Qt::AlignRight; if (m_textAliginRight->isChecked()) align |= Qt::AlignRight;

View File

@ -13,7 +13,7 @@ class AbstractLayout: public LayoutDesignIntf
Q_PROPERTY(int layoutSpacing READ layoutSpacing WRITE setLayoutSpacing) Q_PROPERTY(int layoutSpacing READ layoutSpacing WRITE setLayoutSpacing)
public: public:
enum LayoutType{Layout,Table}; enum LayoutType{Layout,Table};
#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)) #if QT_VERSION >= 0x050500
Q_ENUM(LayoutType) Q_ENUM(LayoutType)
#else #else
Q_ENUMS(LayoutType) Q_ENUMS(LayoutType)

View File

@ -152,7 +152,7 @@ public:
KANJI_INPUT_MODE = 3, KANJI_INPUT_MODE = 3,
SJIS_INPUT_MODE = 4 SJIS_INPUT_MODE = 4
}; };
#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)) #if QT_VERSION >= 0x050500
Q_ENUM(BarcodeType) Q_ENUM(BarcodeType)
Q_ENUM(AngleType) Q_ENUM(AngleType)
Q_ENUM(InputMode) Q_ENUM(InputMode)

View File

@ -30,9 +30,9 @@ namespace LimeReport{
QColor generateColor() QColor generateColor()
{ {
int red = (qrand()%(256 - 1)) + 1; int red = (rand()%(256 - 1)) + 1;
int green = (qrand()%(256 - 1)) + 1; int green = (rand()%(256 - 1)) + 1;
int blue = (qrand()%(256 - 1)) + 1;; int blue = (rand()%(256 - 1)) + 1;;
return QColor(red,green,blue); return QColor(red,green,blue);
} }
@ -348,7 +348,7 @@ void ChartItem::paintChartTitle(QPainter *painter, QRectF titleRect)
painter->save(); painter->save();
QFont tmpFont = painter->font(); QFont tmpFont = painter->font();
QFontMetrics fm(tmpFont); QFontMetrics fm(tmpFont);
while ((fm.height()>titleRect.height() || fm.width(m_title)>titleRect.width()) while ((fm.height()>titleRect.height() || fm.boundingRect(m_title).width()>titleRect.width())
&& tmpFont.pixelSize()>1) { && tmpFont.pixelSize()>1) {
tmpFont.setPixelSize(tmpFont.pixelSize()-1); tmpFont.setPixelSize(tmpFont.pixelSize()-1);
fm = QFontMetrics(tmpFont); fm = QFontMetrics(tmpFont);
@ -570,14 +570,14 @@ QSizeF AbstractSeriesChart::calcChartLegendSize(const QFont &font)
if (!m_chartItem->series().isEmpty()){ if (!m_chartItem->series().isEmpty()){
foreach(SeriesItem* series, m_chartItem->series()){ foreach(SeriesItem* series, m_chartItem->series()){
cw += fm.height(); cw += fm.height();
if (maxWidth<fm.width(series->name())) if (maxWidth<fm.boundingRect(series->name()).width())
maxWidth = fm.width(series->name())+10; maxWidth = fm.boundingRect(series->name()).width()+10;
} }
} else { } else {
foreach(QString label, m_designLabels){ foreach(QString label, m_designLabels){
cw += fm.height(); cw += fm.height();
if (maxWidth<fm.width(label)) if (maxWidth<fm.boundingRect(label).width())
maxWidth = fm.width(label)+10; maxWidth = fm.boundingRect(label).width()+10;
} }
} }
cw += fm.height(); cw += fm.height();
@ -591,7 +591,7 @@ bool AbstractSeriesChart::verticalLabels(QPainter* painter, QRectF labelsRect)
qreal hStep = (labelsRect.width() / valuesCount()); qreal hStep = (labelsRect.width() / valuesCount());
QFontMetrics fm = painter->fontMetrics(); QFontMetrics fm = painter->fontMetrics();
foreach(QString label, m_chartItem->labels()){ foreach(QString label, m_chartItem->labels()){
if (fm.width(label) > hStep){ if (fm.boundingRect(label).width() > hStep){
return true; return true;
} }
} }
@ -656,7 +656,7 @@ void AbstractSeriesChart::paintHorizontalGrid(QPainter *painter, QRectF gridRect
delta = genNextValue(delta); delta = genNextValue(delta);
painter->setRenderHint(QPainter::Antialiasing,false); painter->setRenderHint(QPainter::Antialiasing,false);
qreal hStep = (gridRect.width() - painter->fontMetrics().width(QString::number(maxValue()))) / 4; qreal hStep = (gridRect.width() - painter->fontMetrics().boundingRect(QString::number(maxValue())).width()) / 4;
painter->setFont(adaptValuesFont(hStep-4, painter->font())); painter->setFont(adaptValuesFont(hStep-4, painter->font()));
@ -708,7 +708,7 @@ qreal AbstractSeriesChart::valuesHMargin(QPainter *painter)
{ {
int delta = int(maxValue()-minValue()); int delta = int(maxValue()-minValue());
delta = genNextValue(delta); delta = genNextValue(delta);
return painter->fontMetrics().width(QString::number(delta))+4; return painter->fontMetrics().boundingRect(QString::number(delta)).width()+4;
} }
qreal AbstractSeriesChart::valuesVMargin(QPainter *painter) qreal AbstractSeriesChart::valuesVMargin(QPainter *painter)
@ -722,17 +722,21 @@ QFont AbstractSeriesChart::adaptLabelsFont(QRectF rect, QFont font)
QFontMetrics fm(font); QFontMetrics fm(font);
foreach(QString label, m_chartItem->labels()){ foreach(QString label, m_chartItem->labels()){
#if QT_VERSION < 0x060000
foreach (QString currentWord, label.split(QRegExp("\\W+"))){ foreach (QString currentWord, label.split(QRegExp("\\W+"))){
if (fm.width(maxWord) < fm.width(currentWord)) maxWord = currentWord; #else
foreach (QString currentWord, label.split(QRegularExpression("\\W+"))){
#endif
if (fm.boundingRect(maxWord).width() < fm.boundingRect(currentWord).width()) maxWord = currentWord;
} }
} }
qreal curWidth = fm.width(maxWord); qreal curWidth = fm.boundingRect(maxWord).width();
QFont tmpFont = font; QFont tmpFont = font;
while (curWidth>rect.width() && tmpFont.pixelSize() > 1){ while (curWidth>rect.width() && tmpFont.pixelSize() > 1){
tmpFont.setPixelSize(tmpFont.pixelSize() - 1); tmpFont.setPixelSize(tmpFont.pixelSize() - 1);
QFontMetricsF tmpFM(tmpFont); QFontMetricsF tmpFM(tmpFont);
curWidth = tmpFM.width(maxWord); curWidth = tmpFM.boundingRect(maxWord).width();
} }
return tmpFont; return tmpFont;
} }
@ -742,11 +746,11 @@ QFont AbstractSeriesChart::adaptValuesFont(qreal width, QFont font)
QString strValue = QString::number(maxValue()); QString strValue = QString::number(maxValue());
QFont tmpFont = font; QFont tmpFont = font;
QScopedPointer<QFontMetricsF> fm(new QFontMetricsF(tmpFont)); QScopedPointer<QFontMetricsF> fm(new QFontMetricsF(tmpFont));
qreal curWidth = fm->width(strValue); qreal curWidth = fm->boundingRect(strValue).width();
while (curWidth > width && tmpFont.pixelSize() > 1){ while (curWidth > width && tmpFont.pixelSize() > 1){
tmpFont.setPixelSize(tmpFont.pixelSize() - 1); tmpFont.setPixelSize(tmpFont.pixelSize() - 1);
fm.reset(new QFontMetricsF(tmpFont)); fm.reset(new QFontMetricsF(tmpFont));
curWidth = fm->width(strValue); curWidth = fm->boundingRect(strValue).width();
} }
return tmpFont; return tmpFont;
} }
@ -803,8 +807,8 @@ QRectF AbstractBarChart::verticalLabelsRect(QPainter *painter, QRectF labelsRect
qreal maxWidth = 0; qreal maxWidth = 0;
foreach (QString label, m_chartItem->labels()) { foreach (QString label, m_chartItem->labels()) {
if (painter->fontMetrics().width(label)>maxWidth) if (painter->fontMetrics().boundingRect(label).width()>maxWidth)
maxWidth = painter->fontMetrics().width(label); maxWidth = painter->fontMetrics().boundingRect(label).width();
} }
if (maxWidth + hPadding(m_chartItem->rect()) * 2 < labelsRect.width()) if (maxWidth + hPadding(m_chartItem->rect()) * 2 < labelsRect.width())
@ -818,8 +822,8 @@ QRectF AbstractBarChart::horizontalLabelsRect(QPainter *painter, QRectF labelsRe
qreal maxWidth = 0; qreal maxWidth = 0;
foreach (QString label, m_chartItem->labels()) { foreach (QString label, m_chartItem->labels()) {
if (painter->fontMetrics().width(label)>maxWidth) if (painter->fontMetrics().boundingRect(label).width()>maxWidth)
maxWidth = painter->fontMetrics().width(label); maxWidth = painter->fontMetrics().boundingRect(label).width();
} }
if ((maxWidth + vPadding(m_chartItem->rect()) < labelsRect.height()) || !verticalLabels(painter, labelsRect)) if ((maxWidth + vPadding(m_chartItem->rect()) < labelsRect.height()) || !verticalLabels(painter, labelsRect))

View File

@ -33,7 +33,7 @@ class SeriesItem : public QObject{
Q_PROPERTY(SeriesItemPreferredType preferredType READ preferredType WRITE setPreferredType) Q_PROPERTY(SeriesItemPreferredType preferredType READ preferredType WRITE setPreferredType)
public: public:
enum SeriesItemPreferredType {Bar, Line}; enum SeriesItemPreferredType {Bar, Line};
#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)) #if QT_VERSION >= 0x050500
Q_ENUM(SeriesItemPreferredType) Q_ENUM(SeriesItemPreferredType)
#else #else
Q_ENUMS(SeriesItemPreferredType) Q_ENUMS(SeriesItemPreferredType)
@ -135,7 +135,7 @@ public:
enum LegendAlign{LegendAlignTop,LegendAlignCenter,LegendAlignBottom}; enum LegendAlign{LegendAlignTop,LegendAlignCenter,LegendAlignBottom};
enum TitleAlign{TitleAlignLeft, TitleAlignCenter, TitleAlignRight}; enum TitleAlign{TitleAlignLeft, TitleAlignCenter, TitleAlignRight};
enum ChartType{Pie, VerticalBar, HorizontalBar, Lines}; enum ChartType{Pie, VerticalBar, HorizontalBar, Lines};
#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)) #if QT_VERSION >= 0x050500
Q_ENUM(LegendAlign) Q_ENUM(LegendAlign)
Q_ENUM(TitleAlign) Q_ENUM(TitleAlign)
Q_ENUM(ChartType) Q_ENUM(ChartType)

View File

@ -10,7 +10,7 @@ ChartItemEditor::ChartItemEditor(LimeReport::ChartItem *item, LimeReport::PageDe
{ {
ui->setupUi(this); ui->setupUi(this);
QHBoxLayout* colorLayout = new QHBoxLayout(); QHBoxLayout* colorLayout = new QHBoxLayout();
colorLayout->setMargin(0); colorLayout->setContentsMargins(0, 0, 0, 0);
m_colorButton = new QToolButton(); m_colorButton = new QToolButton();
m_colorButton->setText("..."); m_colorButton->setText("...");
m_colorButton->setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Minimum); m_colorButton->setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Minimum);
@ -118,11 +118,10 @@ void ChartItemEditor::init()
ui->seriesTypeComboBox->addItem(enumerator.key(i)); ui->seriesTypeComboBox->addItem(enumerator.key(i));
} }
#ifdef HAVE_QT5 #if QT_VERSION < 0x050000
ui->labelsFieldComboBox->setCurrentText(m_charItem->labelsField());
#endif
#ifdef HAVE_QT4
ui->labelsFieldComboBox->setCurrentIndex(ui->labelsFieldComboBox->findText( m_charItem->labelsField())); ui->labelsFieldComboBox->setCurrentIndex(ui->labelsFieldComboBox->findText( m_charItem->labelsField()));
#else
ui->labelsFieldComboBox->setCurrentText(m_charItem->labelsField());
#endif #endif
if (!m_charItem->series().isEmpty()){ if (!m_charItem->series().isEmpty()){
enableSeriesEditor(); enableSeriesEditor();
@ -150,11 +149,10 @@ void ChartItemEditor::disableSeriesEditor()
ui->valuesFieldComboBox->setDisabled(true); ui->valuesFieldComboBox->setDisabled(true);
m_colorButton->setDisabled(true); m_colorButton->setDisabled(true);
m_colorIndicator->setDisabled(true); m_colorIndicator->setDisabled(true);
#ifdef HAVE_QT5 #if QT_VERSION < 0x050000
ui->valuesFieldComboBox->setCurrentText("");
#endif
#ifdef HAVE_QT4
ui->valuesFieldComboBox->setEditText(""); ui->valuesFieldComboBox->setEditText("");
#else
ui->valuesFieldComboBox->setCurrentText("");
#endif #endif
ui->seriesTypeComboBox->setDisabled(true); ui->seriesTypeComboBox->setDisabled(true);
} }
@ -208,11 +206,10 @@ void ChartItemEditor::slotAddSeries()
ui->tableWidget->setRowCount(m_charItem->series().count()); ui->tableWidget->setRowCount(m_charItem->series().count());
ui->tableWidget->setItem(m_charItem->series().count()-1, 0, new QTableWidgetItem(series->name())); ui->tableWidget->setItem(m_charItem->series().count()-1, 0, new QTableWidgetItem(series->name()));
ui->tableWidget->selectRow(m_charItem->series().count()-1); ui->tableWidget->selectRow(m_charItem->series().count()-1);
#ifdef HAVE_QT5 #if QT_VERSION < 0x050000
ui->valuesFieldComboBox->setCurrentText("");
#endif
#ifdef HAVE_QT4
ui->valuesFieldComboBox->setEditText(""); ui->valuesFieldComboBox->setEditText("");
#else
ui->valuesFieldComboBox->setCurrentText("");
#endif #endif
} }
@ -235,20 +232,18 @@ void ChartItemEditor::on_tableWidget_itemSelectionChanged()
if (ui->tableWidget->selectionModel()->hasSelection()){ if (ui->tableWidget->selectionModel()->hasSelection()){
LimeReport::SeriesItem* series = m_charItem->series().at(ui->tableWidget->selectionModel()->currentIndex().row()); LimeReport::SeriesItem* series = m_charItem->series().at(ui->tableWidget->selectionModel()->currentIndex().row());
ui->seriesNameLineEdit->setText(series->name()); ui->seriesNameLineEdit->setText(series->name());
#ifdef HAVE_QT5 #if QT_VERSION < 0x050000
ui->valuesFieldComboBox->setCurrentText(series->valuesColumn());
#endif
#ifdef HAVE_QT4
ui->valuesFieldComboBox->setCurrentIndex(ui->valuesFieldComboBox->findText(series->valuesColumn())); ui->valuesFieldComboBox->setCurrentIndex(ui->valuesFieldComboBox->findText(series->valuesColumn()));
#else
ui->valuesFieldComboBox->setCurrentText(series->valuesColumn());
#endif #endif
m_colorIndicator->setColor(series->color()); m_colorIndicator->setColor(series->color());
static int enumIndex = LimeReport::SeriesItem::staticMetaObject.indexOfEnumerator("SeriesItemPreferredType"); static int enumIndex = LimeReport::SeriesItem::staticMetaObject.indexOfEnumerator("SeriesItemPreferredType");
QMetaEnum enumerator = LimeReport::SeriesItem::staticMetaObject.enumerator(enumIndex); QMetaEnum enumerator = LimeReport::SeriesItem::staticMetaObject.enumerator(enumIndex);
#ifdef HAVE_QT5 #if QT_VERSION < 0x050000
ui->seriesTypeComboBox->setCurrentText(enumerator.valueToKey(series->preferredType()));
#endif
#ifdef HAVE_QT4
ui->seriesTypeComboBox->setCurrentIndex(ui->seriesTypeComboBox->findText(enumerator.valueToKey(series->preferredType()))); ui->seriesTypeComboBox->setCurrentIndex(ui->seriesTypeComboBox->findText(enumerator.valueToKey(series->preferredType())));
#else
ui->seriesTypeComboBox->setCurrentText(enumerator.valueToKey(series->preferredType()));
#endif #endif
enableSeriesEditor(); enableSeriesEditor();
} }

View File

@ -140,7 +140,7 @@ void HorizontalLayout::setItemAlign(const BaseDesignIntf::ItemAlign &itemAlign)
void HorizontalLayout::sortChildren() void HorizontalLayout::sortChildren()
{ {
qSort(layoutsChildren().begin(),layoutsChildren().end(),horizontalLessThen); std::sort(layoutsChildren().begin(),layoutsChildren().end(),horizontalLessThen);
} }
void HorizontalLayout::updateLayoutSize() void HorizontalLayout::updateLayoutSize()
@ -177,7 +177,7 @@ void HorizontalLayout::relocateChildren()
layoutsChildren().append(item); layoutsChildren().append(item);
} }
} }
qSort(layoutsChildren().begin(),layoutsChildren().end(),horizontalLessThen); std::sort(layoutsChildren().begin(),layoutsChildren().end(),horizontalLessThen);
qreal curX = spaceBorder; qreal curX = spaceBorder;
setIsRelocating(true); setIsRelocating(true);
foreach (BaseDesignIntf* item, layoutsChildren()) { foreach (BaseDesignIntf* item, layoutsChildren()) {

View File

@ -58,7 +58,7 @@ public:
Hex = 1, Hex = 1,
Base64 = 2 Base64 = 2
}; };
#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)) #if QT_VERSION >= 0x050500
Q_ENUM(Format) Q_ENUM(Format)
#else #else
Q_ENUMS(Format) Q_ENUMS(Format)

View File

@ -47,7 +47,7 @@ class ShapeItem: public LimeReport::ItemDesignIntf
Q_PROPERTY(int cornerRadius READ cornerRadius WRITE setCornerRadius) Q_PROPERTY(int cornerRadius READ cornerRadius WRITE setCornerRadius)
public: public:
enum ShapeType{HorizontalLine,VerticalLine,Ellipse,Rectangle}; enum ShapeType{HorizontalLine,VerticalLine,Ellipse,Rectangle};
#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)) #if QT_VERSION >= 0x050500
Q_ENUM(ShapeType) Q_ENUM(ShapeType)
#else #else
Q_ENUMS(ShapeType) Q_ENUMS(ShapeType)

View File

@ -28,14 +28,18 @@
* GNU General Public License for more details. * * GNU General Public License for more details. *
****************************************************************************/ ****************************************************************************/
#include "lrsimpletagparser.h" #include "lrsimpletagparser.h"
#include <QRegExp>
#include <QDebug> #include <QDebug>
#include <QStringList> #include <QStringList>
#if QT_VERSION < 0x060000
#include <QRegExp>
#else
#include <QRegularExpression>
#endif
namespace LimeReport{ namespace LimeReport{
void HtmlContext::fillTagVector(QString html) void HtmlContext::fillTagVector(QString html)
{ {
#if QT_VERSION < 0x060000
QRegExp rx("<[^<]*>"); QRegExp rx("<[^<]*>");
QString buff=html; QString buff=html;
int curPos=0; int curPos=0;
@ -49,10 +53,20 @@ void HtmlContext::fillTagVector(QString html)
} }
buff=buff.right(buff.length()-rx.matchedLength()); buff=buff.right(buff.length()-rx.matchedLength());
} }
#else
QRegularExpression rx("<[^<]*>");
QString buff=html;
while(buff.contains(rx)){
QRegularExpressionMatch match = rx.match(buff);
// TODO: Qt6 port
}
#endif
} }
QString HtmlContext::parseTag(QVector<Tag *> &storage, QString text, int &curPos, bool createTag) QString HtmlContext::parseTag(QVector<Tag *> &storage, QString text, int &curPos, bool createTag)
{ {
#if QT_VERSION < 0x060000
QRegExp rx("<[^<]*>"); QRegExp rx("<[^<]*>");
int pos=rx.indexIn(text); int pos=rx.indexIn(text);
int begPos=pos+curPos; int begPos=pos+curPos;
@ -78,12 +92,16 @@ QString HtmlContext::parseTag(QVector<Tag *> &storage, QString text, int &curPos
buff=buff.right(buff.length()-rx.matchedLength()); buff=buff.right(buff.length()-rx.matchedLength());
} }
} }
#else
QRegularExpression rx("<[^<]*>");
// TODO: Qt6 port
#endif
return ""; return "";
} }
void HtmlContext::parseSymbs(QString text) void HtmlContext::parseSymbs(QString text)
{ {
#if QT_VERSION < 0x060000
QRegExp rx("<[^<]*[^/]>"); QRegExp rx("<[^<]*[^/]>");
while (text.contains(rx)){ while (text.contains(rx)){
int pos=rx.indexIn(text); int pos=rx.indexIn(text);
@ -100,6 +118,10 @@ void HtmlContext::parseSymbs(QString text)
text.replace(rx.cap(0)," "); text.replace(rx.cap(0)," ");
} }
} }
#else
QRegularExpression rx("<[^<]*>");
// TODO: Qt6 port
#endif
} }
void HtmlContext::initSymbPatterns() void HtmlContext::initSymbPatterns()

View File

@ -360,7 +360,11 @@ void TextItem::updateLayout()
bool TextItem::isNeedExpandContent() const bool TextItem::isNeedExpandContent() const
{ {
#if QT_VERSION < 0x060000
QRegExp rx("$*\\{[^{]*\\}"); QRegExp rx("$*\\{[^{]*\\}");
#else
QRegularExpression rx("$*\\{[^{]*\\}");
#endif
return content().contains(rx) || isContentBackedUp(); return content().contains(rx) || isContentBackedUp();
} }
@ -448,7 +452,11 @@ QString TextItem::formatNumber(const double value)
if (m_format.contains("%")) if (m_format.contains("%"))
{ {
#if QT_VERSION < 0x050500
str.sprintf(m_format.toStdString().c_str(), value); str.sprintf(m_format.toStdString().c_str(), value);
#else
str.asprintf(m_format.toStdString().c_str(), value);
#endif
str = str.replace(",", QLocale::system().groupSeparator()); str = str.replace(",", QLocale::system().groupSeparator());
str = str.replace(".", QLocale::system().decimalPoint()); str = str.replace(".", QLocale::system().decimalPoint());
} }
@ -813,7 +821,11 @@ void TextItem::expandContent(DataSourceManager* dataManager, RenderPass pass)
{ {
QString context=content(); QString context=content();
foreach (QString variableName, dataManager->variableNamesByRenderPass(SecondPass)) { foreach (QString variableName, dataManager->variableNamesByRenderPass(SecondPass)) {
#if QT_VERSION < 0x060000
QRegExp rx(QString(Const::NAMED_VARIABLE_RX).arg(variableName)); QRegExp rx(QString(Const::NAMED_VARIABLE_RX).arg(variableName));
#else
QRegularExpression rx(QString(Const::NAMED_VARIABLE_RX).arg(variableName));
#endif
if (context.contains(rx) && pass == FirstPass){ if (context.contains(rx) && pass == FirstPass){
backupContent(); backupContent();
break; break;

View File

@ -79,7 +79,7 @@ public:
enum AutoWidth{NoneAutoWidth, MaxWordLength, MaxStringLength}; enum AutoWidth{NoneAutoWidth, MaxWordLength, MaxStringLength};
enum AngleType{Angle0, Angle90, Angle180, Angle270, Angle45, Angle315}; enum AngleType{Angle0, Angle90, Angle180, Angle270, Angle45, Angle315};
enum ValueType{Default, DateTime, Double}; enum ValueType{Default, DateTime, Double};
#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)) #if QT_VERSION >= 0x050500
Q_ENUM(AutoWidth) Q_ENUM(AutoWidth)
Q_ENUM(AngleType) Q_ENUM(AngleType)
Q_ENUM(ValueType) Q_ENUM(ValueType)

View File

@ -63,7 +63,7 @@ void VerticalLayout::relocateChildren()
layoutsChildren().append(item); layoutsChildren().append(item);
} }
} }
qSort(layoutsChildren().begin(),layoutsChildren().end(), verticalLessThen); std::sort(layoutsChildren().begin(),layoutsChildren().end(), verticalLessThen);
qreal curY = spaceBorder; qreal curY = spaceBorder;
setIsRelocating(true); setIsRelocating(true);
foreach (BaseDesignIntf* item, layoutsChildren()) { foreach (BaseDesignIntf* item, layoutsChildren()) {
@ -140,7 +140,7 @@ BaseDesignIntf* VerticalLayout::cloneBottomPart(int height, QObject* owner, QGra
void VerticalLayout::sortChildren() void VerticalLayout::sortChildren()
{ {
qSort(layoutsChildren().begin(),layoutsChildren().end(),verticalLessThen); std::sort(layoutsChildren().begin(),layoutsChildren().end(),verticalLessThen);
} }
void VerticalLayout::divideSpace() void VerticalLayout::divideSpace()

View File

@ -266,7 +266,7 @@ void BandDesignIntf::paint(QPainter *painter, const QStyleOptionGraphicsItem *op
QFontMetrics fontMetrics(font); QFontMetrics fontMetrics(font);
QVector<QRectF> bandNameRects; QVector<QRectF> bandNameRects;
bandNameRects.push_back(QRectF(8,8,fontMetrics.width(" "+bandText+" "),fontMetrics.height())); bandNameRects.push_back(QRectF(8,8,fontMetrics.boundingRect(" "+bandText+" ").width(),fontMetrics.height()));
//bandNameRects.push_back(QRectF(width()-fontMetrics.width(" "+bandText+" "),2,fontMetrics.width(" "+bandText+" "),fontMetrics.height())); //bandNameRects.push_back(QRectF(width()-fontMetrics.width(" "+bandText+" "),2,fontMetrics.width(" "+bandText+" "),fontMetrics.height()));
//bandNameRects.push_back(QRectF(2,height()-fontMetrics.height(),fontMetrics.width(" "+bandText+" "),fontMetrics.height())); //bandNameRects.push_back(QRectF(2,height()-fontMetrics.height(),fontMetrics.width(" "+bandText+" "),fontMetrics.height()));
//bandNameRects.push_back(QRectF(width()-fontMetrics.width(" "+bandText+" "),height()-fontMetrics.height(),fontMetrics.width(" "+bandText+" "),fontMetrics.height())); //bandNameRects.push_back(QRectF(width()-fontMetrics.width(" "+bandText+" "),height()-fontMetrics.height(),fontMetrics.width(" "+bandText+" "),fontMetrics.height()));
@ -487,7 +487,7 @@ QList<BandDesignIntf *> BandDesignIntf::childrenByType(BandDesignIntf::BandsType
foreach(BandDesignIntf* item,childBands()){ foreach(BandDesignIntf* item,childBands()){
if (item->bandType()==type) resList<<item; if (item->bandType()==type) resList<<item;
} }
qSort(resList.begin(),resList.end(),bandIndexLessThen); std::sort(resList.begin(),resList.end(),bandIndexLessThen);
return resList; return resList;
} }
@ -1223,7 +1223,7 @@ void BandNameLabel::updateLabel(const QString& bandName)
m_rect = QRectF( m_rect = QRectF(
m_band->pos().x()+10, m_band->pos().x()+10,
m_band->pos().y()-(fontMetrics.height()+10), m_band->pos().y()-(fontMetrics.height()+10),
fontMetrics.width(bandName)+20,fontMetrics.height()+10 fontMetrics.boundingRect(bandName).width()+20,fontMetrics.height()+10
); );
update(); update();
} }

View File

@ -138,7 +138,7 @@ public:
enum BandColumnsLayoutType{ enum BandColumnsLayoutType{
Horizontal, Vertical, VerticalUniform Horizontal, Vertical, VerticalUniform
}; };
#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)) #if QT_VERSION >= 0x050500
Q_ENUM(BandColumnsLayoutType) Q_ENUM(BandColumnsLayoutType)
#else #else
Q_ENUMS(BandColumnsLayoutType) Q_ENUMS(BandColumnsLayoutType)

View File

@ -144,7 +144,7 @@ public:
enum ItemAlign {LeftItemAlign,RightItemAlign,CenterItemAlign,ParentWidthItemAlign,DesignedItemAlign}; enum ItemAlign {LeftItemAlign,RightItemAlign,CenterItemAlign,ParentWidthItemAlign,DesignedItemAlign};
enum UnitType {Millimeters, Inches}; enum UnitType {Millimeters, Inches};
#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)) #if QT_VERSION >= 0x050500
Q_ENUM(BGMode) Q_ENUM(BGMode)
Q_ENUM(BrushStyle) Q_ENUM(BrushStyle)
Q_ENUM(ResizeFlags) Q_ENUM(ResizeFlags)

View File

@ -31,7 +31,9 @@
#include "lrdatadesignintf.h" #include "lrdatadesignintf.h"
#include <QStringList> #include <QStringList>
#include <QSqlQuery> #include <QSqlQuery>
#if QT_VERSION < 0x060000
#include <QRegExp> #include <QRegExp>
#endif
#include <QSqlError> #include <QSqlError>
#include <QSqlQueryModel> #include <QSqlQueryModel>
#include <QFileInfo> #include <QFileInfo>
@ -421,6 +423,7 @@ QString DataSourceManager::extractField(QString source)
} }
QString DataSourceManager::replaceVariables(QString value){ QString DataSourceManager::replaceVariables(QString value){
#if QT_VERSION < 0x060000
QRegExp rx(Const::VARIABLE_RX); QRegExp rx(Const::VARIABLE_RX);
if (value.contains(rx)){ if (value.contains(rx)){
@ -438,10 +441,16 @@ QString DataSourceManager::replaceVariables(QString value){
} }
} }
return value; return value;
#else
QRegularExpression rx(Const::VARIABLE_RX);
// TODO: Qt6 port
#endif
return QString();
} }
QString DataSourceManager::replaceVariables(QString query, QMap<QString,QString> &aliasesToParam) QString DataSourceManager::replaceVariables(QString query, QMap<QString,QString> &aliasesToParam)
{ {
#if QT_VERSION < 0x060000
QRegExp rx(Const::VARIABLE_RX); QRegExp rx(Const::VARIABLE_RX);
int curentAliasIndex = 0; int curentAliasIndex = 0;
if (query.contains(rx)){ if (query.contains(rx)){
@ -480,10 +489,16 @@ QString DataSourceManager::replaceVariables(QString query, QMap<QString,QString>
} }
} }
return query; return query;
#else
QRegularExpression rx(Const::VARIABLE_RX);
// TODO: Qt6 port
#endif
return QString();
} }
QString DataSourceManager::replaceFields(QString query, QMap<QString,QString> &aliasesToParam, QString masterDatasource) QString DataSourceManager::replaceFields(QString query, QMap<QString,QString> &aliasesToParam, QString masterDatasource)
{ {
#if QT_VERSION < 0x060000
QRegExp rx(Const::FIELD_RX); QRegExp rx(Const::FIELD_RX);
if (query.contains(rx)){ if (query.contains(rx)){
int curentAliasIndex=0; int curentAliasIndex=0;
@ -510,6 +525,11 @@ QString DataSourceManager::replaceFields(QString query, QMap<QString,QString> &a
} }
} }
return query; return query;
#else
QRegularExpression rx(Const::FIELD_RX);
// TODO: Qt6 port
#endif
return QString();
} }
void DataSourceManager::setReportVariable(const QString &name, const QVariant &value) void DataSourceManager::setReportVariable(const QString &name, const QVariant &value)
@ -1392,7 +1412,11 @@ void DataSourceManager::invalidateQueriesContainsVariable(const QString& variabl
foreach (const QString& datasourceName, dataSourceNames()){ foreach (const QString& datasourceName, dataSourceNames()){
QueryHolder* holder = dynamic_cast<QueryHolder*>(m_datasources.value(datasourceName)); QueryHolder* holder = dynamic_cast<QueryHolder*>(m_datasources.value(datasourceName));
if (holder){ if (holder){
#if QT_VERSION < 0x060000
QRegExp rx(QString(Const::NAMED_VARIABLE_RX).arg(variableName)); QRegExp rx(QString(Const::NAMED_VARIABLE_RX).arg(variableName));
#else
QRegularExpression rx(QString(Const::NAMED_VARIABLE_RX).arg(variableName));
#endif
if (holder->queryText().contains(rx)){ if (holder->queryText().contains(rx)){
holder->invalidate(designTime() ? IDataSource::DESIGN_MODE : IDataSource::RENDER_MODE); holder->invalidate(designTime() ? IDataSource::DESIGN_MODE : IDataSource::RENDER_MODE);
datasources.append(datasourceName); datasources.append(datasourceName);

View File

@ -67,7 +67,11 @@ QString replaceHTMLSymbols(const QString &value)
return result; return result;
} }
#if QT_VERSION < 0x060000
QVector<QString> normalizeCaptures(const QRegExp& reg){ QVector<QString> normalizeCaptures(const QRegExp& reg){
#else
QVector<QString> normalizeCaptures(const QRegularExpressionMatch& reg){
#endif
QVector<QString> result; QVector<QString> result;
foreach (QString cap, reg.capturedTexts()) { foreach (QString cap, reg.capturedTexts()) {
if (!cap.isEmpty()) if (!cap.isEmpty())

View File

@ -51,7 +51,7 @@ namespace LimeReport {
#define VARIABLE_IS_NOT_USED #define VARIABLE_IS_NOT_USED
#endif #endif
#if QT_VERSION >= QT_VERSION_CHECK(5, 8, 0) #if QT_VERSION >= 0x050800
Q_NAMESPACE Q_NAMESPACE
#endif #endif
@ -104,7 +104,11 @@ namespace Const{
QString extractClassName(QString className); QString extractClassName(QString className);
QString escapeSimbols(const QString& value); QString escapeSimbols(const QString& value);
QString replaceHTMLSymbols(const QString &value); QString replaceHTMLSymbols(const QString &value);
#if QT_VERSION < 0x060000
QVector<QString> normalizeCaptures(const QRegExp &reg); QVector<QString> normalizeCaptures(const QRegExp &reg);
#else
QVector<QString> normalizeCaptures(const QRegularExpressionMatch &reg);
#endif
bool isColorDark(QColor color); bool isColorDark(QColor color);
enum ExpandType {EscapeSymbols, NoEscapeSymbols, ReplaceHTMLSymbols}; enum ExpandType {EscapeSymbols, NoEscapeSymbols, ReplaceHTMLSymbols};
@ -148,7 +152,7 @@ namespace Const{
virtual ~IPainterProxy(); virtual ~IPainterProxy();
}; };
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) #if QT_VERSION < 0x050000
typedef QStyleOptionViewItemV4 StyleOptionViewItem; typedef QStyleOptionViewItemV4 StyleOptionViewItem;
#else #else
typedef QStyleOptionViewItem StyleOptionViewItem; typedef QStyleOptionViewItem StyleOptionViewItem;
@ -158,7 +162,7 @@ namespace Const{
{ {
public: public:
enum VariableDataType {Undefined, String, Bool, Int, Real, Date, Time, DateTime}; enum VariableDataType {Undefined, String, Bool, Int, Real, Date, Time, DateTime};
#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)) #if QT_VERSION >= 0x050500
Q_ENUM(VariableDataType) Q_ENUM(VariableDataType)
#else #else
Q_ENUMS(VariableDataType) Q_ENUMS(VariableDataType)

View File

@ -53,12 +53,21 @@ bool GraphicsViewZoomer::eventFilter(QObject *object, QEvent *event) {
} else if (event->type() == QEvent::Wheel) { } else if (event->type() == QEvent::Wheel) {
QWheelEvent* wheel_event = static_cast<QWheelEvent*>(event); QWheelEvent* wheel_event = static_cast<QWheelEvent*>(event);
if (QApplication::keyboardModifiers() == m_modifiers) { if (QApplication::keyboardModifiers() == m_modifiers) {
#if QT_VERSION < 0x060000
if (wheel_event->orientation() == Qt::Vertical) { if (wheel_event->orientation() == Qt::Vertical) {
double angle = wheel_event->delta(); double angle = wheel_event->delta();
double factor = qPow(m_zoomFactorBase, angle); double factor = qPow(m_zoomFactorBase, angle);
gentleZoom(factor); gentleZoom(factor);
return true; return true;
} }
#else
if (wheel_event->angleDelta().y() != 0) {
double angle = wheel_event->angleDelta().y();
double factor = qPow(m_zoomFactorBase, angle);
gentleZoom(factor);
return true;
}
#endif
} }
} }
Q_UNUSED(object) Q_UNUSED(object)

View File

@ -34,7 +34,9 @@
#include "lrscriptenginemanager.h" #include "lrscriptenginemanager.h"
#include "lrpageitemdesignintf.h" #include "lrpageitemdesignintf.h"
#if QT_VERSION < 0x060000
#include <QRegExp> #include <QRegExp>
#endif
namespace LimeReport { namespace LimeReport {
@ -42,13 +44,24 @@ void GroupFunction::slotBandRendered(BandDesignIntf *band)
{ {
ScriptEngineManager& sm = ScriptEngineManager::instance(); ScriptEngineManager& sm = ScriptEngineManager::instance();
#if QT_VERSION < 0x060000
QRegExp rxField(Const::FIELD_RX); QRegExp rxField(Const::FIELD_RX);
QRegExp rxVar(Const::VARIABLE_RX); QRegExp rxVar(Const::VARIABLE_RX);
#else
QRegularExpression rxField(Const::FIELD_RX);
QRegularExpression rxVar(Const::VARIABLE_RX);
#endif
switch (m_dataType){ switch (m_dataType){
case Field: case Field:{
#if QT_VERSION < 0x060000
if (rxField.indexIn(m_data) != -1){ if (rxField.indexIn(m_data) != -1){
QString field = rxField.cap(1); QString field = rxField.cap(1);
#else
QRegularExpressionMatch matchField = rxField.match(m_data);
if(matchField.hasMatch()){
QString field = matchField.captured(1);
#endif
if (m_dataManager->containsField(field)){ if (m_dataManager->containsField(field)){
m_values.push_back(m_dataManager->fieldData(field)); m_values.push_back(m_dataManager->fieldData(field));
m_valuesByBand.insert(band, m_dataManager->fieldData(field)); m_valuesByBand.insert(band, m_dataManager->fieldData(field));
@ -57,9 +70,16 @@ void GroupFunction::slotBandRendered(BandDesignIntf *band)
} }
} }
break; break;
case Variable: }
case Variable:{
#if QT_VERSION < 0x060000
if (rxVar.indexIn(m_data) != -1){ if (rxVar.indexIn(m_data) != -1){
QString var = rxVar.cap(1); QString var = rxVar.cap(1);
#else
QRegularExpressionMatch matchVar = rxVar.match(m_data);
if(matchVar.hasMatch()){
QString var = matchVar.captured(1);
#endif
if (m_dataManager->containsVariable(var)){ if (m_dataManager->containsVariable(var)){
m_values.push_back(m_dataManager->variable(var)); m_values.push_back(m_dataManager->variable(var));
m_valuesByBand.insert(band, m_dataManager->variable(var)); m_valuesByBand.insert(band, m_dataManager->variable(var));
@ -68,6 +88,7 @@ void GroupFunction::slotBandRendered(BandDesignIntf *band)
} }
} }
break; break;
}
case Script: case Script:
{ {
QVariant value = sm.evaluateScript(m_data); QVariant value = sm.evaluateScript(m_data);
@ -128,21 +149,41 @@ QVariant GroupFunction::multiplication(QVariant value1, QVariant value2)
GroupFunction::GroupFunction(const QString &expression, const QString &dataBandName, DataSourceManager* dataManager) GroupFunction::GroupFunction(const QString &expression, const QString &dataBandName, DataSourceManager* dataManager)
:m_data(expression), m_dataBandName(dataBandName), m_dataManager(dataManager), m_isValid(true), m_errorMessage("") :m_data(expression), m_dataBandName(dataBandName), m_dataManager(dataManager), m_isValid(true), m_errorMessage("")
{ {
#if QT_VERSION < 0x060000
QRegExp rxField(Const::FIELD_RX,Qt::CaseInsensitive); QRegExp rxField(Const::FIELD_RX,Qt::CaseInsensitive);
QRegExp rxVariable(Const::VARIABLE_RX,Qt::CaseInsensitive); QRegExp rxVariable(Const::VARIABLE_RX,Qt::CaseInsensitive);
QRegExp rxScript(Const::SCRIPT_RX,Qt::CaseInsensitive); QRegExp rxScript(Const::SCRIPT_RX,Qt::CaseInsensitive);
#else
QRegularExpression rxField(Const::FIELD_RX, QRegularExpression::CaseInsensitiveOption);
QRegularExpression rxVariable(Const::VARIABLE_RX, QRegularExpression::CaseInsensitiveOption);
QRegularExpression rxScript(Const::SCRIPT_RX, QRegularExpression::CaseInsensitiveOption);
#endif
#if QT_VERSION < 0x060000
if (rxScript.indexIn(expression) != -1){ if (rxScript.indexIn(expression) != -1){
#else
QRegularExpressionMatch matchScript = rxScript.match(expression);
if(matchScript.hasMatch()){
#endif
m_dataType = Script; m_dataType = Script;
return; return;
} }
#if QT_VERSION < 0x060000
if (rxField.indexIn(expression) != -1){ if (rxField.indexIn(expression) != -1){
#else
QRegularExpressionMatch matchField = rxField.match(expression);
if(matchField.hasMatch()){
#endif
m_dataType=Field; m_dataType=Field;
return; return;
} }
#if QT_VERSION < 0x060000
if (rxVariable.indexIn(expression) != -1){ if (rxVariable.indexIn(expression) != -1){
#else
QRegularExpressionMatch matchVariable = rxVariable.match(expression);
if(matchVariable.hasMatch()){
#endif
m_dataType = Variable; m_dataType = Variable;
return; return;
} }

View File

@ -35,7 +35,9 @@
#include "lrglobal.h" #include "lrglobal.h"
#include <QDebug> #include <QDebug>
#if QT_VERSION < 0x060000
#include <QRegExp> #include <QRegExp>
#endif
#include <QVariant> #include <QVariant>
namespace LimeReport{ namespace LimeReport{

View File

@ -43,7 +43,7 @@ class ItemDesignIntf : public BaseDesignIntf
Q_PROPERTY(ItemAlign itemAlign READ itemAlign WRITE setItemAlign) Q_PROPERTY(ItemAlign itemAlign READ itemAlign WRITE setItemAlign)
public: public:
enum LocationType{Band,Page}; enum LocationType{Band,Page};
#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)) #if QT_VERSION >= 0x050500
Q_ENUM(LocationType) Q_ENUM(LocationType)
#else #else
Q_ENUMS(LocationType) Q_ENUMS(LocationType)

View File

@ -48,7 +48,7 @@ void ItemsContainerDesignInft::snapshotItemsLayout(SnapshotType type)
} else } else
m_containerItems.append(PItemSortContainer(new ItemSortContainer(childItem))); m_containerItems.append(PItemSortContainer(new ItemSortContainer(childItem)));
} }
qSort(m_containerItems.begin(),m_containerItems.end(),itemSortContainerLessThen); std::sort(m_containerItems.begin(),m_containerItems.end(),itemSortContainerLessThen);
} }
void ItemsContainerDesignInft::arrangeSubItems(RenderPass pass, DataSourceManager *dataManager, ArrangeType type) void ItemsContainerDesignInft::arrangeSubItems(RenderPass pass, DataSourceManager *dataManager, ArrangeType type)

View File

@ -752,16 +752,28 @@ void PageDesignIntf::dropEvent(QGraphicsSceneDragDropEvent* event)
bool isVar = event->mimeData()->text().indexOf("variable:")==0; bool isVar = event->mimeData()->text().indexOf("variable:")==0;
BaseDesignIntf* item = addReportItem("TextItem",event->scenePos(),QSize(250, 50)); BaseDesignIntf* item = addReportItem("TextItem",event->scenePos(),QSize(250, 50));
TextItem* ti = dynamic_cast<TextItem*>(item); TextItem* ti = dynamic_cast<TextItem*>(item);
QString data = event->mimeData()->text().remove(0,event->mimeData()->text().indexOf(":")+1); QString data = event->mimeData()->text().remove(0,event->mimeData()->text().indexOf(":")+1);
#if QT_VERSION < 0x060000
if (isVar) data = data.remove(QRegExp(" \\[.*\\]")); if (isVar) data = data.remove(QRegExp(" \\[.*\\]"));
#else
if (isVar) data = data.remove(QRegularExpression(" \\[.*\\]"));
#endif
ti->setContent(data); ti->setContent(data);
if (!isVar){ if (!isVar){
BandDesignIntf* parentBand = dynamic_cast<BandDesignIntf*>(ti->parentItem()); BandDesignIntf* parentBand = dynamic_cast<BandDesignIntf*>(ti->parentItem());
if (parentBand && parentBand->datasourceName().isEmpty()){ if (parentBand && parentBand->datasourceName().isEmpty()){
#if QT_VERSION < 0x060000
QRegExp dataSource("(?:\\$D\\{\\s*(.*)\\..*\\})"); QRegExp dataSource("(?:\\$D\\{\\s*(.*)\\..*\\})");
if (dataSource.indexIn(data) != -1){ if (dataSource.indexIn(data) != -1){
parentBand->setProperty("datasource",dataSource.cap(1)); parentBand->setProperty("datasource",dataSource.cap(1));
} }
#else
QRegularExpression dataSource("(?:\\$D\\{\\s*(.*)\\..*\\})");
QRegularExpressionMatch match = dataSource.match(data);
if(match.hasMatch()){
parentBand->setProperty("datasource", match.captured(1));
}
#endif
} }
} }
} }
@ -1723,7 +1735,7 @@ HorizontalLayout* PageDesignIntf::internalAddHLayout()
QList<QGraphicsItem *> si = selectedItems(); QList<QGraphicsItem *> si = selectedItems();
QList<QGraphicsItem *>::iterator it = si.begin(); QList<QGraphicsItem *>::iterator it = si.begin();
qSort(si.begin(), si.end(), hLayoutLessThen); std::sort(si.begin(), si.end(), hLayoutLessThen);
it = si.begin(); it = si.begin();
if (si.count() > 1) { if (si.count() > 1) {
@ -1767,7 +1779,7 @@ VerticalLayout* PageDesignIntf::internalAddVLayout()
QList<QGraphicsItem *> si = selectedItems(); QList<QGraphicsItem *> si = selectedItems();
QList<QGraphicsItem *>::iterator it = si.begin(); QList<QGraphicsItem *>::iterator it = si.begin();
qSort(si.begin(), si.end(), vLayoutLessThen); std::sort(si.begin(), si.end(), vLayoutLessThen);
it = si.begin(); it = si.begin();
if (si.count() > 1) { if (si.count() > 1) {

View File

@ -233,7 +233,7 @@ int PageItemDesignIntf::calcBandIndex(BandDesignIntf::BandsType bandType, BandDe
groupFooterIgnoredBands << BandDesignIntf::DataFooter << BandDesignIntf::GroupHeader; groupFooterIgnoredBands << BandDesignIntf::DataFooter << BandDesignIntf::GroupHeader;
int bandIndex = -1; int bandIndex = -1;
qSort(m_bands.begin(), m_bands.end(), bandSortBandLessThenByIndex); std::sort(m_bands.begin(), m_bands.end(), bandSortBandLessThenByIndex);
if (bandType != BandDesignIntf::Data){ if (bandType != BandDesignIntf::Data){
foreach(BandDesignIntf* band,m_bands){ foreach(BandDesignIntf* band,m_bands){
if ((band->bandType() == BandDesignIntf::GroupHeader) && ( band->bandType() > bandType)) break; if ((band->bandType() == BandDesignIntf::GroupHeader) && ( band->bandType() > bandType)) break;
@ -547,7 +547,7 @@ void PageItemDesignIntf::relocateBands()
QVector<qreal> posByColumn; QVector<qreal> posByColumn;
qSort(m_bands.begin(), m_bands.end(), bandSortBandLessThenByIndex); std::sort(m_bands.begin(), m_bands.end(), bandSortBandLessThenByIndex);
int bandIndex = 0; int bandIndex = 0;
if (!(itemMode() & DesignMode)){ if (!(itemMode() & DesignMode)){
@ -623,7 +623,7 @@ int PageItemDesignIntf::dataBandCount()
BandDesignIntf *PageItemDesignIntf::dataBandAt(int index) BandDesignIntf *PageItemDesignIntf::dataBandAt(int index)
{ {
int count=0; int count=0;
qSort(m_bands.begin(),m_bands.end(),bandSortBandLessThenByIndex); std::sort(m_bands.begin(),m_bands.end(),bandSortBandLessThenByIndex);
foreach(BandDesignIntf* band,m_bands){ foreach(BandDesignIntf* band,m_bands){
if (band->bandType()==BandDesignIntf::Data){ if (band->bandType()==BandDesignIntf::Data){
if(count==index) return band; if(count==index) return band;
@ -711,10 +711,18 @@ QSizeF PageItemDesignIntf::getRectByPageSize(const PageSize& size)
if (size != Custom) { if (size != Custom) {
QPrinter printer; QPrinter printer;
printer.setOutputFormat(QPrinter::PdfFormat); printer.setOutputFormat(QPrinter::PdfFormat);
#if QT_VERSION < 0x060000
printer.setOrientation((QPrinter::Orientation)pageOrientation()); printer.setOrientation((QPrinter::Orientation)pageOrientation());
printer.setPaperSize((QPrinter::PageSize)size); printer.setPaperSize((QPrinter::PageSize)size);
return QSizeF(printer.paperSize(QPrinter::Millimeter).width() * 10, return QSizeF(printer.paperSize(QPrinter::Millimeter).width() * 10,
printer.paperSize(QPrinter::Millimeter).height() * 10); printer.paperSize(QPrinter::Millimeter).height() * 10);
#else
printer.setPageOrientation((QPageLayout::Orientation)pageOrientation());
printer.setPageSize(QPageSize((QPageSize::PageSizeId)size));
return QSizeF(printer.pageLayout().pageSize().size(QPageSize::Millimeter).width() * 10,
printer.pageLayout().pageSize().size(QPageSize::Millimeter).height() * 10);
#endif
} }
else { else {
@ -829,7 +837,7 @@ void PageItemDesignIntf::swapBands(BandDesignIntf* band, BandDesignIntf* bandToS
firstMoveBand->changeBandIndex(firstIndex, true); firstMoveBand->changeBandIndex(firstIndex, true);
moveIndex = firstIndex; moveIndex = firstIndex;
qSort(bandToMove.begin(), bandToMove.end(), bandIndexLessThen); std::sort(bandToMove.begin(), bandToMove.end(), bandIndexLessThen);
foreach(BandDesignIntf* curBand, bandToMove){ foreach(BandDesignIntf* curBand, bandToMove){
curBand->changeBandIndex(moveIndex,true); curBand->changeBandIndex(moveIndex,true);
@ -852,7 +860,7 @@ QList<BandDesignIntf*> PageItemDesignIntf::createBandGroup(int beginIndex, int e
if ( curBand->bandIndex() >= beginIndex && curBand->bandIndex() <= endIndex) if ( curBand->bandIndex() >= beginIndex && curBand->bandIndex() <= endIndex)
result.append(curBand); result.append(curBand);
} }
qSort(result.begin(), result.end(), bandIndexLessThen); std::sort(result.begin(), result.end(), bandIndexLessThen);
return result; return result;
} }

View File

@ -66,6 +66,7 @@ class PageItemDesignIntf : public ItemsContainerDesignInft
Q_PROPERTY(bool mixWithPriorPage READ mixWithPriorPage WRITE setMixWithPriorPage) Q_PROPERTY(bool mixWithPriorPage READ mixWithPriorPage WRITE setMixWithPriorPage)
friend class ReportRender; friend class ReportRender;
public: public:
#if QT_VERSION < 0x060000
enum Orientation { Portrait = QPrinter::Portrait, Landscape = QPrinter::Landscape }; enum Orientation { Portrait = QPrinter::Portrait, Landscape = QPrinter::Landscape };
enum PrintBehavior {Scale, Split}; enum PrintBehavior {Scale, Split};
@ -82,7 +83,26 @@ public:
Ledger = QPrinter::Ledger, Tabloid = QPrinter::Tabloid, Custom = QPrinter::Custom, Ledger = QPrinter::Ledger, Tabloid = QPrinter::Tabloid, Custom = QPrinter::Custom,
NPageSize = Custom NPageSize = Custom
}; };
#if (QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)) #else
enum Orientation { Portrait = QPageLayout::Portrait, Landscape = QPageLayout::Landscape };
enum PrintBehavior {Scale, Split};
enum PageSize {
A4 = QPageSize::A4, B5 = QPageSize::B5, Letter = QPageSize::Letter,
Legal = QPageSize::Legal, Executive = QPageSize::Executive,
A0 = QPageSize::A0, A1 = QPageSize::A1, A2 = QPageSize::A2, A3 = QPageSize::A3,
A5 = QPageSize::A5, A6 = QPageSize::A6, A7 = QPageSize::A7, A8 = QPageSize::A8,
A9 = QPageSize::A9, B0 = QPageSize::B0, B1 = QPageSize::B1, B10 = QPageSize::B10,
B2 = QPageSize::B2, B3 = QPageSize::B3, B4 = QPageSize::B4, B6 = QPageSize::B6,
B7 = QPageSize::B7, B8 = QPageSize::B8, B9 = QPageSize::B9, C5E = QPageSize::C5E,
Comm10E = QPageSize::Comm10E, DLE = QPageSize::DLE, Folio = QPageSize::Folio,
Ledger = QPageSize::Ledger, Tabloid = QPageSize::Tabloid, Custom = QPageSize::Custom,
NPageSize = Custom
};
#endif
#if QT_VERSION >= 0x050500
Q_ENUM(Orientation) Q_ENUM(Orientation)
Q_ENUM(PrintBehavior) Q_ENUM(PrintBehavior)
Q_ENUM(PageSize) Q_ENUM(PageSize)

View File

@ -143,7 +143,11 @@ void PreviewReportWidget::initPreview()
{ {
if (ui->graphicsView->scene()!=d_ptr->m_previewPage) if (ui->graphicsView->scene()!=d_ptr->m_previewPage)
ui->graphicsView->setScene(d_ptr->m_previewPage); ui->graphicsView->setScene(d_ptr->m_previewPage);
#if QT_VERSION < 0x060000
ui->graphicsView->resetMatrix(); ui->graphicsView->resetMatrix();
#else
ui->graphicsView->resetTransform();
#endif
ui->graphicsView->centerOn(0, 0); ui->graphicsView->centerOn(0, 0);
ui->graphicsView->scene()->setBackgroundBrush(QColor(m_previewPageBackgroundColor)); ui->graphicsView->scene()->setBackgroundBrush(QColor(m_previewPageBackgroundColor));
setScalePercent(d_ptr->m_scalePercent); setScalePercent(d_ptr->m_scalePercent);
@ -237,15 +241,10 @@ void PreviewReportWidget::print()
QPrinter lp(QPrinter::HighResolution); QPrinter lp(QPrinter::HighResolution);
if (!pi.defaultPrinter().isNull()){ if (!pi.defaultPrinter().isNull()){
#ifdef HAVE_QT4 #if QT_VERSION >= 0x050300
lp.setPrinterName(pi.defaultPrinter().printerName());
#endif
#ifdef HAVE_QT5
#if (QT_VERSION >= QT_VERSION_CHECK(5, 3, 0))
lp.setPrinterName(pi.defaultPrinterName()); lp.setPrinterName(pi.defaultPrinterName());
#else #else
lp.setPrinterName(pi.defaultPrinter().printerName()); lp.setPrinterName(pi.defaultPrinter().printerName());
#endif
#endif #endif
} }
@ -300,7 +299,11 @@ void PreviewReportWidget::saveToFile()
void PreviewReportWidget::setScalePercent(int percent) void PreviewReportWidget::setScalePercent(int percent)
{ {
m_scaleChanging = true; m_scaleChanging = true;
#if QT_VERSION < 0x060000
ui->graphicsView->resetMatrix(); ui->graphicsView->resetMatrix();
#else
ui->graphicsView->resetTransform();
#endif
d_ptr->m_scalePercent = percent; d_ptr->m_scalePercent = percent;
qreal scaleSize = percent/100.0; qreal scaleSize = percent/100.0;
ui->graphicsView->scale(scaleSize, scaleSize); ui->graphicsView->scale(scaleSize, scaleSize);
@ -462,7 +465,11 @@ void PreviewReportWidget::reportEngineDestroyed(QObject *object)
void PreviewReportWidget::slotZoomed(double ) void PreviewReportWidget::slotZoomed(double )
{ {
#if QT_VERSION < 0x060000
d_ptr->m_scalePercent = ui->graphicsView->matrix().m11()*100; d_ptr->m_scalePercent = ui->graphicsView->matrix().m11()*100;
#else
d_ptr->m_scalePercent = ui->graphicsView->transform().m11()*100;
#endif
emit scalePercentChanged(d_ptr->m_scalePercent); emit scalePercentChanged(d_ptr->m_scalePercent);
} }

View File

@ -41,7 +41,11 @@
#include <QPrintDialog> #include <QPrintDialog>
#include <QFileDialog> #include <QFileDialog>
#include <QScrollBar> #include <QScrollBar>
#if QT_VERSION < 0x060000
#include <QDesktopWidget> #include <QDesktopWidget>
#else
#include <QScreen>
#endif
#include <QLabel> #include <QLabel>
#include <QMessageBox> #include <QMessageBox>
#include <QToolButton> #include <QToolButton>
@ -57,7 +61,7 @@ PreviewReportWindow::PreviewReportWindow(ReportEngine *report, QWidget *parent,
m_progressWidget = new QWidget(ui->statusbar); m_progressWidget = new QWidget(ui->statusbar);
QHBoxLayout* progressLayout = new QHBoxLayout(); QHBoxLayout* progressLayout = new QHBoxLayout();
progressLayout->setMargin(0); progressLayout->setContentsMargins(0, 0, 0, 0);
progressLayout->addWidget(new QLabel(tr("Printing"))); progressLayout->addWidget(new QLabel(tr("Printing")));
m_progressBar = new QProgressBar(ui->statusbar); m_progressBar = new QProgressBar(ui->statusbar);
m_progressBar->setMaximumWidth(100); m_progressBar->setMaximumWidth(100);
@ -139,11 +143,17 @@ void PreviewReportWindow::restoreSetting()
if (v.isValid()){ if (v.isValid()){
restoreGeometry(v.toByteArray()); restoreGeometry(v.toByteArray());
} else { } else {
#if QT_VERSION < 0x060000
QDesktopWidget *desktop = QApplication::desktop(); QDesktopWidget *desktop = QApplication::desktop();
int screenWidth = desktop->screenGeometry().width(); int screenWidth = desktop->screenGeometry().width();
int screenHeight = desktop->screenGeometry().height(); int screenHeight = desktop->screenGeometry().height();
#else
QScreen *screen = QGuiApplication::primaryScreen();
int screenWidth = screen->geometry().width();
int screenHeight = screen->geometry().height();
#endif
int x = static_cast<int>(screenWidth*0.1); int x = static_cast<int>(screenWidth*0.1);
int y = static_cast<int>(screenHeight*0.1); int y = static_cast<int>(screenHeight*0.1);

View File

@ -60,7 +60,7 @@ class PreviewReportWindow : public QMainWindow
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit PreviewReportWindow(ReportEngine *report, QWidget *parent = 0, QSettings* settings=0, Qt::WindowFlags flags=0); explicit PreviewReportWindow(ReportEngine *report, QWidget *parent = 0, QSettings* settings=0, Qt::WindowFlags flags=Qt::WindowFlags());
~PreviewReportWindow(); ~PreviewReportWindow();
void setReportReader(ItemsReaderIntf::Ptr reader); void setReportReader(ItemsReaderIntf::Ptr reader);
void setPages(ReportPages pages); void setPages(ReportPages pages);

View File

@ -59,10 +59,9 @@ ReportDesignWidget::ReportDesignWidget(ReportEnginePrivateInterface* report, QSe
m_mainWindow(mainWindow), m_verticalGridStep(10), m_horizontalGridStep(10), m_useGrid(false), m_mainWindow(mainWindow), m_verticalGridStep(10), m_horizontalGridStep(10), m_useGrid(false),
m_dialogChanged(false), m_theme("Default"), m_settings(settings), m_defaultUnits(BaseDesignIntf::Millimeters) m_dialogChanged(false), m_theme("Default"), m_settings(settings), m_defaultUnits(BaseDesignIntf::Millimeters)
{ {
#ifdef HAVE_QT4 #if QT_VERSION < 0x050000
m_tabWidget = new LimeReportTabWidget(this); m_tabWidget = new LimeReportTabWidget(this);
#endif #else
#ifdef HAVE_QT5
m_tabWidget = new QTabWidget(this); m_tabWidget = new QTabWidget(this);
#endif #endif
m_tabWidget->setTabPosition(QTabWidget::South); m_tabWidget->setTabPosition(QTabWidget::South);
@ -1059,8 +1058,13 @@ bool ReportDesignWidget::eventFilter(QObject *target, QEvent *event)
if (event->type() == QEvent::Wheel){ if (event->type() == QEvent::Wheel){
QWheelEvent* we = dynamic_cast<QWheelEvent*>(event); QWheelEvent* we = dynamic_cast<QWheelEvent*>(event);
if (QApplication::keyboardModifiers()==Qt::ControlModifier){ if (QApplication::keyboardModifiers()==Qt::ControlModifier){
#if QT_VERSION < 0x060000
if(we->delta()<0) scale(1.2,1.2); if(we->delta()<0) scale(1.2,1.2);
else scale(1/1.2,1/1.2); else scale(1/1.2,1/1.2);
#else
if(we->pixelDelta().x()<0) scale(1.2,1.2);
else scale(1/1.2,1/1.2);
#endif
} }
} }
return QWidget::eventFilter(target,event); return QWidget::eventFilter(target,event);
@ -1132,10 +1136,10 @@ void Ruler::setPage(PageItemDesignIntf *page)
void Ruler::paintEvent(QPaintEvent *event){ void Ruler::paintEvent(QPaintEvent *event){
QPainter painter(this); QPainter painter(this);
painter.setBrush(palette().background()); painter.setBrush(palette().window());
painter.setPen(Qt::NoPen); painter.setPen(Qt::NoPen);
painter.drawRect(event->rect()); painter.drawRect(event->rect());
// painter.setPen(palette().foreground().color()); // painter.setPen(palette().windowText().color());
if (m_page){ if (m_page){
qreal rulerWidth = m_page->geometry().width() / m_page->unitFactor(); qreal rulerWidth = m_page->geometry().width() / m_page->unitFactor();
@ -1154,13 +1158,13 @@ void Ruler::paintEvent(QPaintEvent *event){
case Horizontal: case Horizontal:
painter.setPen(Qt::NoPen); painter.setPen(Qt::NoPen);
if (isColorDark(palette().background().color())) if (isColorDark(palette().window().color()))
painter.setBrush(QColor("#64893d")); painter.setBrush(QColor("#64893d"));
else else
painter.setBrush(QColor("#b5da91")); painter.setBrush(QColor("#b5da91"));
drawItemWithChildren(&painter, m_page); drawItemWithChildren(&painter, m_page);
painter.setPen(palette().foreground().color()); painter.setPen(palette().windowText().color());
for (int i = 0; i < rulerWidth / 10; ++i){ for (int i = 0; i < rulerWidth / 10; ++i){
int hs10 = view->mapFromScene(QPointF(m_page->geometry().topLeft().x() + i * 10 * m_page->unitFactor(), 0)).x(); int hs10 = view->mapFromScene(QPointF(m_page->geometry().topLeft().x() + i * 10 * m_page->unitFactor(), 0)).x();
@ -1173,24 +1177,24 @@ void Ruler::paintEvent(QPaintEvent *event){
painter.drawLine(hs10, 15, hs10, 20); painter.drawLine(hs10, 15, hs10, 20);
painter.drawLine(hs5, 10, hs5, 20); painter.drawLine(hs5, 10, hs5, 20);
if ( i > 0) if ( i > 0)
painter.drawText(QPoint(hs10 - (painter.fontMetrics().width(QString::number(i))/2), 12), painter.drawText(QPoint(hs10 - (painter.fontMetrics().boundingRect(QString::number(i)).width()/2), 12),
QString::number(i)); QString::number(i));
} }
} }
painter.setPen(palette().foreground().color()); painter.setPen(palette().windowText().color());
painter.drawLine(m_mousePos.x() - (hStartPos > 0 ? hStartPos : 0) , 0, painter.drawLine(m_mousePos.x() - (hStartPos > 0 ? hStartPos : 0) , 0,
m_mousePos.x() - (hStartPos > 0 ? hStartPos : 0) , 20); m_mousePos.x() - (hStartPos > 0 ? hStartPos : 0) , 20);
break; break;
case Vertical: case Vertical:
painter.setPen(Qt::NoPen); painter.setPen(Qt::NoPen);
if (isColorDark(palette().background().color())) if (isColorDark(palette().window().color()))
painter.setBrush(QColor("#64893d")); painter.setBrush(QColor("#64893d"));
else else
painter.setBrush(QColor("#b5da91")); painter.setBrush(QColor("#b5da91"));
drawItemWithChildren(&painter, m_page); drawItemWithChildren(&painter, m_page);
painter.setPen(palette().foreground().color()); painter.setPen(palette().windowText().color());
for (int i = 0; i < rulerHeight / 10; ++i){ for (int i = 0; i < rulerHeight / 10; ++i){
int vs10 = view->mapFromScene(QPointF(0, m_page->geometry().topLeft().y()+i * 10 * m_page->unitFactor())).y(); int vs10 = view->mapFromScene(QPointF(0, m_page->geometry().topLeft().y()+i * 10 * m_page->unitFactor())).y();
int vs5 = view->mapFromScene(QPointF(0, m_page->geometry().topLeft().y()+i * 10 * m_page->unitFactor() + 5 * m_page->unitFactor())).y(); int vs5 = view->mapFromScene(QPointF(0, m_page->geometry().topLeft().y()+i * 10 * m_page->unitFactor() + 5 * m_page->unitFactor())).y();
@ -1201,12 +1205,12 @@ void Ruler::paintEvent(QPaintEvent *event){
} }
painter.drawLine(15, vs10, 20, vs10); painter.drawLine(15, vs10, 20, vs10);
if ( i > 0 ) if ( i > 0 )
painter.drawText(QPoint( (15 - painter.fontMetrics().width(QString::number(i))) / 2 , painter.drawText(QPoint( (15 - painter.fontMetrics().boundingRect(QString::number(i)).width()) / 2 ,
vs10 + (painter.fontMetrics().height()/2)), QString::number(i)); vs10 + (painter.fontMetrics().height()/2)), QString::number(i));
painter.drawLine(10, vs5, 20, vs5); painter.drawLine(10, vs5, 20, vs5);
} }
} }
painter.setPen(palette().foreground().color()); painter.setPen(palette().windowText().color());
painter.drawLine(0, m_mousePos.y() - (vStartPos > 0 ? vStartPos : 0), painter.drawLine(0, m_mousePos.y() - (vStartPos > 0 ? vStartPos : 0),
20, m_mousePos.y() - (vStartPos > 0 ? vStartPos : 0)); 20, m_mousePos.y() - (vStartPos > 0 ? vStartPos : 0));
break; break;

View File

@ -42,7 +42,7 @@
#include "lrreportengine_p.h" #include "lrreportengine_p.h"
#include "lrgraphicsviewzoom.h" #include "lrgraphicsviewzoom.h"
#ifdef HAVE_QT4 #if QT_VERSION < 0x050000
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
class LimeReportTabWidget: public QTabWidget{ class LimeReportTabWidget: public QTabWidget{
Q_OBJECT Q_OBJECT
@ -259,10 +259,9 @@ private:
DialogDesignerManager* m_dialogDesignerManager; DialogDesignerManager* m_dialogDesignerManager;
#endif #endif
QMainWindow *m_mainWindow; QMainWindow *m_mainWindow;
#ifdef HAVE_QT4 #if QT_VERSION < 0x050000
LimeReportTabWidget* m_tabWidget; LimeReportTabWidget* m_tabWidget;
#endif #else
#ifdef HAVE_QT5
QTabWidget* m_tabWidget; QTabWidget* m_tabWidget;
#endif #endif
GraphicsViewZoomer* m_zoomer; GraphicsViewZoomer* m_zoomer;

View File

@ -39,7 +39,11 @@
#include <QMenuBar> #include <QMenuBar>
#include <QCheckBox> #include <QCheckBox>
#include <QVBoxLayout> #include <QVBoxLayout>
#if QT_VERSION < 0x060000
#include <QDesktopWidget> #include <QDesktopWidget>
#else
#include <QScreen>
#endif
#include <QSortFilterProxyModel> #include <QSortFilterProxyModel>
#include <QLineEdit> #include <QLineEdit>
#include <QPushButton> #include <QPushButton>
@ -69,7 +73,7 @@ void ReportDesignWindow::createProgressBar()
{ {
m_progressWidget = new QWidget(m_statusBar); m_progressWidget = new QWidget(m_statusBar);
QHBoxLayout* progressLayout = new QHBoxLayout(); QHBoxLayout* progressLayout = new QHBoxLayout();
progressLayout->setMargin(0); progressLayout->setContentsMargins(0, 0, 0, 0);
m_progressLabel = new QLabel(tr("Rendered %1 pages").arg(0)); m_progressLabel = new QLabel(tr("Rendered %1 pages").arg(0));
progressLayout->addWidget(m_progressLabel); progressLayout->addWidget(m_progressLabel);
m_progressBar = new QProgressBar(m_statusBar); m_progressBar = new QProgressBar(m_statusBar);
@ -149,7 +153,7 @@ void ReportDesignWindow::createActions()
{ {
m_newReportAction = new QAction(tr("New Report"),this); m_newReportAction = new QAction(tr("New Report"),this);
m_newReportAction->setIcon(QIcon(":/report/images/newReport")); m_newReportAction->setIcon(QIcon(":/report/images/newReport"));
m_newReportAction->setShortcut(QKeySequence(Qt::CTRL+Qt::Key_N)); m_newReportAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_N));
connect(m_newReportAction,SIGNAL(triggered()),this,SLOT(slotNewReport())); connect(m_newReportAction,SIGNAL(triggered()),this,SLOT(slotNewReport()));
m_newPageAction = new QAction(tr("New Report Page"),this); m_newPageAction = new QAction(tr("New Report Page"),this);
@ -171,28 +175,28 @@ void ReportDesignWindow::createActions()
m_undoAction = new QAction(tr("Undo"),this); m_undoAction = new QAction(tr("Undo"),this);
m_undoAction->setIcon(QIcon(":/report/images/undo")); m_undoAction->setIcon(QIcon(":/report/images/undo"));
m_undoAction->setEnabled(false); m_undoAction->setEnabled(false);
m_undoAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_Z)); m_undoAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Z));
connect(m_undoAction,SIGNAL(triggered()),this,SLOT(slotUndo())); connect(m_undoAction,SIGNAL(triggered()),this,SLOT(slotUndo()));
m_redoAction = new QAction(tr("Redo"),this); m_redoAction = new QAction(tr("Redo"),this);
m_redoAction->setIcon(QIcon(":/report/images/redo")); m_redoAction->setIcon(QIcon(":/report/images/redo"));
m_redoAction->setEnabled(false); m_redoAction->setEnabled(false);
m_redoAction->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_Z)); m_redoAction->setShortcut(QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_Z));
connect(m_redoAction,SIGNAL(triggered()),this,SLOT(slotRedo())); connect(m_redoAction,SIGNAL(triggered()),this,SLOT(slotRedo()));
m_copyAction = new QAction(tr("Copy"),this); m_copyAction = new QAction(tr("Copy"),this);
m_copyAction->setIcon(QIcon(":/report/images/copy")); m_copyAction->setIcon(QIcon(":/report/images/copy"));
m_copyAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_C)); m_copyAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_C));
connect(m_copyAction,SIGNAL(triggered()),this,SLOT(slotCopy())); connect(m_copyAction,SIGNAL(triggered()),this,SLOT(slotCopy()));
m_pasteAction = new QAction(tr("Paste"),this); m_pasteAction = new QAction(tr("Paste"),this);
m_pasteAction->setIcon(QIcon(":/report/images/paste")); m_pasteAction->setIcon(QIcon(":/report/images/paste"));
m_pasteAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_V)); m_pasteAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_V));
connect(m_pasteAction,SIGNAL(triggered()),this,SLOT(slotPaste())); connect(m_pasteAction,SIGNAL(triggered()),this,SLOT(slotPaste()));
m_cutAction = new QAction(tr("Cut"),this); m_cutAction = new QAction(tr("Cut"),this);
m_cutAction->setIcon(QIcon(":/report/images/cut")); m_cutAction->setIcon(QIcon(":/report/images/cut"));
m_cutAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_X)); m_cutAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_X));
connect(m_cutAction,SIGNAL(triggered()),this,SLOT(slotCut())); connect(m_cutAction,SIGNAL(triggered()),this,SLOT(slotCut()));
m_settingsAction = new QAction(tr("Settings"),this); m_settingsAction = new QAction(tr("Settings"),this);
@ -202,13 +206,13 @@ void ReportDesignWindow::createActions()
m_useGridAction = new QAction(tr("Use grid"),this); m_useGridAction = new QAction(tr("Use grid"),this);
m_useGridAction->setIcon(QIcon(":/report/images/grid")); m_useGridAction->setIcon(QIcon(":/report/images/grid"));
m_useGridAction->setCheckable(true); m_useGridAction->setCheckable(true);
m_useGridAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_G)); m_useGridAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_G));
connect(m_useGridAction,SIGNAL(toggled(bool)),this,SLOT(slotUseGrid(bool))); connect(m_useGridAction,SIGNAL(toggled(bool)),this,SLOT(slotUseGrid(bool)));
m_useMagnetAction = new QAction(tr("Use magnet"),this); m_useMagnetAction = new QAction(tr("Use magnet"),this);
m_useMagnetAction->setIcon(QIcon(":/report/images/magnet")); m_useMagnetAction->setIcon(QIcon(":/report/images/magnet"));
m_useMagnetAction->setCheckable(true); m_useMagnetAction->setCheckable(true);
m_useMagnetAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_M)); m_useMagnetAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_M));
connect(m_useMagnetAction,SIGNAL(toggled(bool)),this,SLOT(slotUseMagnet(bool))); connect(m_useMagnetAction,SIGNAL(toggled(bool)),this,SLOT(slotUseMagnet(bool)));
@ -219,17 +223,17 @@ void ReportDesignWindow::createActions()
m_saveReportAction = new QAction(tr("Save Report"),this); m_saveReportAction = new QAction(tr("Save Report"),this);
m_saveReportAction->setIcon(QIcon(":/report/images/save")); m_saveReportAction->setIcon(QIcon(":/report/images/save"));
m_saveReportAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_S)); m_saveReportAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_S));
connect(m_saveReportAction,SIGNAL(triggered()),this,SLOT(slotSaveReport())); connect(m_saveReportAction,SIGNAL(triggered()),this,SLOT(slotSaveReport()));
m_saveReportAsAction = new QAction(tr("Save Report As"),this); m_saveReportAsAction = new QAction(tr("Save Report As"),this);
m_saveReportAsAction->setIcon(QIcon(":/report/images/saveas")); m_saveReportAsAction->setIcon(QIcon(":/report/images/saveas"));
m_saveReportAsAction->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_S)); m_saveReportAsAction->setShortcut(QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_S));
connect(m_saveReportAsAction,SIGNAL(triggered()),this,SLOT(slotSaveReportAs())); connect(m_saveReportAsAction,SIGNAL(triggered()),this,SLOT(slotSaveReportAs()));
m_loadReportAction = new QAction(tr("Load Report"),this); m_loadReportAction = new QAction(tr("Load Report"),this);
m_loadReportAction->setIcon(QIcon(":/report/images/folder")); m_loadReportAction->setIcon(QIcon(":/report/images/folder"));
m_loadReportAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_O)); m_loadReportAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_O));
connect(m_loadReportAction,SIGNAL(triggered()),this,SLOT(slotLoadReport())); connect(m_loadReportAction,SIGNAL(triggered()),this,SLOT(slotLoadReport()));
m_deleteItemAction = new QAction(tr("Delete item"),this); m_deleteItemAction = new QAction(tr("Delete item"),this);
@ -247,7 +251,7 @@ void ReportDesignWindow::createActions()
m_previewReportAction = new QAction(tr("Render Report"),this); m_previewReportAction = new QAction(tr("Render Report"),this);
m_previewReportAction->setIcon(QIcon(":/report/images/render")); m_previewReportAction->setIcon(QIcon(":/report/images/render"));
m_previewReportAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_P)); m_previewReportAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_P));
connect(m_previewReportAction,SIGNAL(triggered()),this,SLOT(slotPreviewReport())); connect(m_previewReportAction,SIGNAL(triggered()),this,SLOT(slotPreviewReport()));
m_testAction = new QAction("test",this); m_testAction = new QAction("test",this);
@ -274,13 +278,13 @@ void ReportDesignWindow::createActions()
m_hideLeftPanel = new QAction(tr("Hide left panel | Alt+L"),this); m_hideLeftPanel = new QAction(tr("Hide left panel | Alt+L"),this);
m_hideLeftPanel->setCheckable(true); m_hideLeftPanel->setCheckable(true);
m_hideLeftPanel->setIcon(QIcon(":/report/images/hideLeftPanel")); m_hideLeftPanel->setIcon(QIcon(":/report/images/hideLeftPanel"));
m_hideLeftPanel->setShortcut(QKeySequence(Qt::ALT + Qt::Key_L)); m_hideLeftPanel->setShortcut(QKeySequence(Qt::ALT | Qt::Key_L));
connect(m_hideLeftPanel,SIGNAL(toggled(bool)), this, SLOT(slotHideLeftPanel(bool))); connect(m_hideLeftPanel,SIGNAL(toggled(bool)), this, SLOT(slotHideLeftPanel(bool)));
m_hideRightPanel = new QAction(tr("Hide right panel | Alt+R"),this); m_hideRightPanel = new QAction(tr("Hide right panel | Alt+R"),this);
m_hideRightPanel->setCheckable(true); m_hideRightPanel->setCheckable(true);
m_hideRightPanel->setIcon(QIcon(":/report/images/hideRightPanel")); m_hideRightPanel->setIcon(QIcon(":/report/images/hideRightPanel"));
m_hideRightPanel->setShortcut(QKeySequence(Qt::ALT + Qt::Key_R)); m_hideRightPanel->setShortcut(QKeySequence(Qt::ALT | Qt::Key_R));
connect(m_hideRightPanel,SIGNAL(toggled(bool)), this, SLOT(slotHideRightPanel(bool))); connect(m_hideRightPanel,SIGNAL(toggled(bool)), this, SLOT(slotHideRightPanel(bool)));
#ifdef HAVE_QTDESIGNER_INTEGRATION #ifdef HAVE_QTDESIGNER_INTEGRATION
m_deleteDialogAction = new QAction(tr("Delete dialog"), this); m_deleteDialogAction = new QAction(tr("Delete dialog"), this);
@ -294,19 +298,19 @@ void ReportDesignWindow::createActions()
m_lockSelectedItemsAction = new QAction(tr("Lock selected items"), this); m_lockSelectedItemsAction = new QAction(tr("Lock selected items"), this);
m_lockSelectedItemsAction->setIcon(QIcon(":/report/images/lock")); m_lockSelectedItemsAction->setIcon(QIcon(":/report/images/lock"));
m_lockSelectedItemsAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_L)); m_lockSelectedItemsAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_L));
connect(m_lockSelectedItemsAction, SIGNAL(triggered()), connect(m_lockSelectedItemsAction, SIGNAL(triggered()),
this, SLOT(slotLockSelectedItems())); this, SLOT(slotLockSelectedItems()));
m_unlockSelectedItemsAction = new QAction(tr("Unlock selected items"), this); m_unlockSelectedItemsAction = new QAction(tr("Unlock selected items"), this);
m_unlockSelectedItemsAction->setIcon(QIcon(":/report/images/unlock")); m_unlockSelectedItemsAction->setIcon(QIcon(":/report/images/unlock"));
m_unlockSelectedItemsAction->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_L)); m_unlockSelectedItemsAction->setShortcut(QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_L));
connect(m_unlockSelectedItemsAction, SIGNAL(triggered()), connect(m_unlockSelectedItemsAction, SIGNAL(triggered()),
this, SLOT(slotUnlockSelectedItems())); this, SLOT(slotUnlockSelectedItems()));
m_selectOneLevelItems = new QAction(tr("Select one level items"), this); m_selectOneLevelItems = new QAction(tr("Select one level items"), this);
//m_unlockSelectedItemsAction->setIcon(QIcon(":/report/images/unlock")); //m_unlockSelectedItemsAction->setIcon(QIcon(":/report/images/unlock"));
m_selectOneLevelItems->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_A)); m_selectOneLevelItems->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_A));
connect(m_selectOneLevelItems, SIGNAL(triggered()), connect(m_selectOneLevelItems, SIGNAL(triggered()),
this, SLOT(slotSelectOneLevelItems())); this, SLOT(slotSelectOneLevelItems()));
} }
@ -567,7 +571,7 @@ void ReportDesignWindow::createObjectInspector()
QWidget* w = new QWidget(objectDoc); QWidget* w = new QWidget(objectDoc);
QVBoxLayout* l = new QVBoxLayout(w); QVBoxLayout* l = new QVBoxLayout(w);
l->addWidget(m_objectInspector); l->addWidget(m_objectInspector);
l->setMargin(0); l->setContentsMargins(0, 0, 0, 0);
w->setLayout(l); w->setLayout(l);
objectDoc->setWindowTitle(tr("Object Inspector")); objectDoc->setWindowTitle(tr("Object Inspector"));
objectDoc->setWidget(w); objectDoc->setWidget(w);
@ -833,11 +837,17 @@ void ReportDesignWindow::restoreSetting()
if (v.isValid()){ if (v.isValid()){
restoreGeometry(v.toByteArray()); restoreGeometry(v.toByteArray());
} else { } else {
#if QT_VERSION < 0x060000
QDesktopWidget *desktop = QApplication::desktop(); QDesktopWidget *desktop = QApplication::desktop();
int screenWidth = desktop->screenGeometry().width(); int screenWidth = desktop->screenGeometry().width();
int screenHeight = desktop->screenGeometry().height(); int screenHeight = desktop->screenGeometry().height();
#else
QScreen *screen = QGuiApplication::primaryScreen();
int screenWidth = screen->geometry().width();
int screenHeight = screen->geometry().height();
#endif
int x = screenWidth * 0.1; int x = screenWidth * 0.1;
int y = screenHeight * 0.1; int y = screenHeight * 0.1;
@ -1530,7 +1540,11 @@ void ReportDesignWindow::slotPageDeleted()
void ReportDesignWindow::slotFilterTextChanged(const QString& filter) void ReportDesignWindow::slotFilterTextChanged(const QString& filter)
{ {
#if QT_VERSION < 0x060000
m_filterModel->setFilterRegExp(QRegExp(filter, Qt::CaseInsensitive, QRegExp::FixedString)); m_filterModel->setFilterRegExp(QRegExp(filter, Qt::CaseInsensitive, QRegExp::FixedString));
#else
m_filterModel->setFilterRegularExpression(QRegularExpression(filter, QRegularExpression::CaseInsensitiveOption));
#endif
} }
#ifdef HAVE_QTDESIGNER_INTEGRATION #ifdef HAVE_QTDESIGNER_INTEGRATION

View File

@ -32,7 +32,11 @@
#include <QPrinterInfo> #include <QPrinterInfo>
#include <QMessageBox> #include <QMessageBox>
#include <QApplication> #include <QApplication>
#if QT_VERSION < 0x060000
#include <QDesktopWidget> #include <QDesktopWidget>
#else
#include <QScreen>
#endif
#include <QFileSystemWatcher> #include <QFileSystemWatcher>
#include <QPluginLoader> #include <QPluginLoader>
#include <QFileDialog> #include <QFileDialog>
@ -272,15 +276,10 @@ bool ReportEnginePrivate::printPages(ReportPages pages, QPrinter *printer)
if (!printer&&!m_printerSelected){ if (!printer&&!m_printerSelected){
QPrinterInfo pi; QPrinterInfo pi;
if (!pi.defaultPrinter().isNull()) if (!pi.defaultPrinter().isNull())
#ifdef HAVE_QT4 #if QT_VERSION >= 0x050300
m_printer.data()->setPrinterName(pi.defaultPrinter().printerName());
#endif
#ifdef HAVE_QT5
#if (QT_VERSION >= QT_VERSION_CHECK(5, 3, 0))
m_printer.data()->setPrinterName(pi.defaultPrinterName()); m_printer.data()->setPrinterName(pi.defaultPrinterName());
#else #else
m_printer.data()->setPrinterName(pi.defaultPrinter().printerName()); m_printer.data()->setPrinterName(pi.defaultPrinter().printerName());
#endif
#endif #endif
QPrintDialog dialog(m_printer.data(),QApplication::activeWindow()); QPrintDialog dialog(m_printer.data(),QApplication::activeWindow());
m_printerSelected = dialog.exec()!=QDialog::Rejected; m_printerSelected = dialog.exec()!=QDialog::Rejected;
@ -394,15 +393,10 @@ bool ReportEnginePrivate::printReport(QPrinter* printer)
if (!printer&&!m_printerSelected){ if (!printer&&!m_printerSelected){
QPrinterInfo pi; QPrinterInfo pi;
if (!pi.defaultPrinter().isNull()) if (!pi.defaultPrinter().isNull())
#ifdef HAVE_QT4 #if QT_VERSION >= 0x050300
m_printer.data()->setPrinterName(pi.defaultPrinter().printerName());
#endif
#ifdef HAVE_QT5
#if (QT_VERSION >= QT_VERSION_CHECK(5, 3, 0))
m_printer.data()->setPrinterName(pi.defaultPrinterName()); m_printer.data()->setPrinterName(pi.defaultPrinterName());
#else #else
m_printer.data()->setPrinterName(pi.defaultPrinter().printerName()); m_printer.data()->setPrinterName(pi.defaultPrinter().printerName());
#endif
#endif #endif
QPrintDialog dialog(m_printer.data(),QApplication::activeWindow()); QPrintDialog dialog(m_printer.data(),QApplication::activeWindow());
m_printerSelected = dialog.exec()!=QDialog::Rejected; m_printerSelected = dialog.exec()!=QDialog::Rejected;
@ -1824,6 +1818,7 @@ PrintProcessor::PrintProcessor(QPrinter* printer)
bool PrintProcessor::printPage(PageItemDesignIntf::Ptr page) bool PrintProcessor::printPage(PageItemDesignIntf::Ptr page)
{ {
#if QT_VERSION < 0x060000
if (!m_firstPage && !m_painter->isActive()) return false; if (!m_firstPage && !m_painter->isActive()) return false;
PageDesignIntf* backupPage = dynamic_cast<PageDesignIntf*>(page->scene()); PageDesignIntf* backupPage = dynamic_cast<PageDesignIntf*>(page->scene());
@ -1885,11 +1880,76 @@ bool PrintProcessor::printPage(PageItemDesignIntf::Ptr page)
page->setPos(backupPagePos); page->setPos(backupPagePos);
m_renderPage.removePageItem(page); m_renderPage.removePageItem(page);
if (backupPage) backupPage->reactivatePageItem(page); if (backupPage) backupPage->reactivatePageItem(page);
#else
if (!m_firstPage && !m_painter->isActive()) return false;
PageDesignIntf* backupPage = dynamic_cast<PageDesignIntf*>(page->scene());
QPointF backupPagePos = page->pos();
page->setPos(0,0);
m_renderPage.setPageItem(page);
m_renderPage.setSceneRect(m_renderPage.pageItem()->mapToScene(m_renderPage.pageItem()->rect()).boundingRect());
initPrinter(m_renderPage.pageItem());
if (!m_firstPage){
m_printer->newPage();
} else {
m_painter = new QPainter(m_printer);
if (!m_painter->isActive()) return false;
m_firstPage = false;
}
qreal leftMargin = m_printer->pageLayout().margins().left();
qreal topMargin = m_printer->pageLayout().margins().top();
qreal rightMargin = m_printer->pageLayout().margins().right();
qreal bottomMargin = m_printer->pageLayout().margins().bottom();
QRectF printerPageRect = m_printer->pageRect(QPrinter::Millimeter);
printerPageRect = QRectF(0,0,(printerPageRect.size().width() + rightMargin + leftMargin) * page->unitFactor(),
(printerPageRect.size().height() + bottomMargin + topMargin) * page->unitFactor());
if (page->printBehavior() == PageItemDesignIntf::Split && m_printer->pageLayout().pageSize() != QPageSize((QPageSize::PageSizeId)page->pageSize()) &&
printerPageRect.width() < page->geometry().width())
{
qreal pageWidth = page->geometry().width();
qreal pageHeight = page->geometry().height();
QRectF currentPrintingRect = printerPageRect;
qreal curHeight = 0;
qreal curWidth = 0;
bool first = true;
while (pageHeight > 0){
while (curWidth < pageWidth){
if (!first) m_printer->newPage(); else first = false;
m_renderPage.render(m_painter, m_printer->pageRect(QPrinter::Millimeter), currentPrintingRect);
currentPrintingRect.adjust(printerPageRect.size().width(), 0, printerPageRect.size().width(), 0);
curWidth += printerPageRect.size().width();
}
pageHeight -= printerPageRect.size().height();
curHeight += printerPageRect.size().height();
currentPrintingRect = printerPageRect;
currentPrintingRect.adjust(0, curHeight, 0, curHeight);
curWidth = 0;
}
} else {
if (page->getSetPageSizeToPrinter()){
QRectF source = page->geometry();
QSizeF inchSize = source.size() / (100 * 2.54);
QRectF target = QRectF(QPoint(0,0), inchSize * m_printer->resolution());
m_renderPage.render(m_painter, target, source);
} else {
m_renderPage.render(m_painter);
}
}
page->setPos(backupPagePos);
m_renderPage.removePageItem(page);
if (backupPage) backupPage->reactivatePageItem(page);
#endif
return true; return true;
} }
void PrintProcessor::initPrinter(PageItemDesignIntf* page) void PrintProcessor::initPrinter(PageItemDesignIntf* page)
{ {
#if QT_VERSION < 0x060000
if (page->oldPrintMode()){ if (page->oldPrintMode()){
m_printer->setPageMargins(page->leftMargin(), m_printer->setPageMargins(page->leftMargin(),
page->topMargin(), page->topMargin(),
@ -1917,6 +1977,31 @@ void PrintProcessor::initPrinter(PageItemDesignIntf* page)
m_printer->setPaperSize(static_cast<QPrinter::PageSize>(page->pageSize())); m_printer->setPaperSize(static_cast<QPrinter::PageSize>(page->pageSize()));
} }
} }
#else
if (page->oldPrintMode()){
m_printer->setPageMargins(QMarginsF(page->leftMargin(), page->topMargin(), page->rightMargin(), page->bottomMargin()),QPageLayout::Millimeter);
m_printer->setPageOrientation((QPageLayout::Orientation)page->pageOrientation());
QSizeF pageSize = (page->pageOrientation()==PageItemDesignIntf::Landscape)?
QSizeF(page->sizeMM().height(),page->sizeMM().width()):
page->sizeMM();
m_printer->setPageSize(QPageSize(pageSize, QPageSize::Millimeter));
} else {
m_printer->setFullPage(page->fullPage());
if (page->dropPrinterMargins())
m_printer->setPageMargins(QMarginsF(0, 0, 0, 0), QPageLayout::Point);
m_printer->setPageOrientation((QPageLayout::Orientation)page->pageOrientation());
if (page->pageSize()==PageItemDesignIntf::Custom){
QSizeF pageSize = (page->pageOrientation()==PageItemDesignIntf::Landscape)?
QSizeF(page->sizeMM().height(),page->sizeMM().width()):
page->sizeMM();
if (page->getSetPageSizeToPrinter() || m_printer->outputFormat() == QPrinter::PdfFormat)
m_printer->setPageSize(QPageSize(pageSize, QPageSize::Millimeter));
} else {
if (page->getSetPageSizeToPrinter() || m_printer->outputFormat() == QPrinter::PdfFormat)
m_printer->setPageSize(QPageSize((QPageSize::PageSizeId)page->pageSize()));
}
}
#endif
} }
qreal ItemGeometry::x() const qreal ItemGeometry::x() const

View File

@ -196,11 +196,15 @@ void ReportRender::analizeItem(ContentItemDesignIntf* contentItem, BandDesignInt
QString content = contentItem->content(); QString content = contentItem->content();
QVector<QString> functions; QVector<QString> functions;
foreach(const QString &functionName, m_datasources->groupFunctionNames()){ foreach(const QString &functionName, m_datasources->groupFunctionNames()){
#if QT_VERSION < 0x060000
QRegExp rx(QString(Const::GROUP_FUNCTION_RX).arg(functionName)); QRegExp rx(QString(Const::GROUP_FUNCTION_RX).arg(functionName));
rx.setMinimal(true); rx.setMinimal(true);
if (rx.indexIn(content)>=0){ if (rx.indexIn(content)>=0){
functions.append(functionName); functions.append(functionName);
} }
#else
// TODO: Qt6 port
#endif
} }
if (functions.size()>0) if (functions.size()>0)
m_groupfunctionItems.insert(contentItem->patternName(), functions); m_groupfunctionItems.insert(contentItem->patternName(), functions);
@ -361,10 +365,14 @@ bool ReportRender::containsGroupFunctions(BandDesignIntf *band){
if (contentItem){ if (contentItem){
QString content = contentItem->content(); QString content = contentItem->content();
foreach(QString functionName, m_datasources->groupFunctionNames()){ foreach(QString functionName, m_datasources->groupFunctionNames()){
#if QT_VERSION < 0x060000
QRegExp rx(QString(Const::GROUP_FUNCTION_RX).arg(functionName)); QRegExp rx(QString(Const::GROUP_FUNCTION_RX).arg(functionName));
if (rx.indexIn(content)>=0){ if (rx.indexIn(content)>=0){
return true; return true;
} }
#else
// TODO: Qt6 port
#endif
} }
} }
} }
@ -372,6 +380,7 @@ bool ReportRender::containsGroupFunctions(BandDesignIntf *band){
} }
void ReportRender::extractGroupFuntionsFromItem(ContentItemDesignIntf* contentItem, BandDesignIntf* band){ void ReportRender::extractGroupFuntionsFromItem(ContentItemDesignIntf* contentItem, BandDesignIntf* band){
#if QT_VERSION < 0x060000
if ( contentItem && contentItem->content().contains(QRegExp("\\$S\\s*\\{.*\\}"))){ if ( contentItem && contentItem->content().contains(QRegExp("\\$S\\s*\\{.*\\}"))){
foreach(const QString &functionName, m_datasources->groupFunctionNames()){ foreach(const QString &functionName, m_datasources->groupFunctionNames()){
QRegExp rx(QString(Const::GROUP_FUNCTION_RX).arg(functionName)); QRegExp rx(QString(Const::GROUP_FUNCTION_RX).arg(functionName));
@ -406,6 +415,9 @@ void ReportRender::extractGroupFuntionsFromItem(ContentItemDesignIntf* contentIt
} }
} }
} }
#else
// TODO: Qt6 port
#endif
} }
void ReportRender::extractGroupFunctionsFromContainer(BaseDesignIntf* baseItem, BandDesignIntf* band){ void ReportRender::extractGroupFunctionsFromContainer(BaseDesignIntf* baseItem, BandDesignIntf* band){
@ -428,6 +440,7 @@ void ReportRender::replaceGroupFunctionsInItem(ContentItemDesignIntf* contentIte
if (m_groupfunctionItems.contains(contentItem->patternName())){ if (m_groupfunctionItems.contains(contentItem->patternName())){
QString content = contentItem->content(); QString content = contentItem->content();
foreach(QString functionName, m_groupfunctionItems.value(contentItem->patternName())){ foreach(QString functionName, m_groupfunctionItems.value(contentItem->patternName())){
#if QT_VERSION < 0x060000
QRegExp rx(QString(Const::GROUP_FUNCTION_RX).arg(functionName)); QRegExp rx(QString(Const::GROUP_FUNCTION_RX).arg(functionName));
rx.setMinimal(true); rx.setMinimal(true);
if (rx.indexIn(content)>=0){ if (rx.indexIn(content)>=0){
@ -450,6 +463,9 @@ void ReportRender::replaceGroupFunctionsInItem(ContentItemDesignIntf* contentIte
pos += rx.matchedLength(); pos += rx.matchedLength();
} }
} }
#else
// TODO: Qt6 port
#endif
} }
contentItem->setContent(content); contentItem->setContent(content);
} }
@ -1142,10 +1158,9 @@ bool ReportRender::registerBand(BandDesignIntf *band, bool registerInChildren)
band->setObjectName(band->objectName()+QString::number(++m_currentNameIndex)); band->setObjectName(band->objectName()+QString::number(++m_currentNameIndex));
renameChildItems(band); renameChildItems(band);
if (m_lastDataBand){ if (m_lastDataBand){
#ifdef HAVE_QT4 #if QT_VERSION < 0x050000
m_lastDataBand->metaObject()->invokeMethod(m_lastDataBand,"bandRegistred"); m_lastDataBand->metaObject()->invokeMethod(m_lastDataBand,"bandRegistred");
#endif #else
#ifdef HAVE_QT5
emit m_lastDataBand->bandRegistred(); emit m_lastDataBand->bandRegistred();
#endif #endif
} }
@ -1428,7 +1443,7 @@ void ReportRender::checkLostHeadersOnPrevPage()
if (lostHeaders.size() > 0){ if (lostHeaders.size() > 0){
m_lostHeadersMoved = true; m_lostHeadersMoved = true;
//qSort(lostHeaders.begin(), lostHeaders.end(), bandLessThen); //std::sort(lostHeaders.begin(), lostHeaders.end(), bandLessThen);
std::sort(lostHeaders.begin(), lostHeaders.end(), bandLessThen); std::sort(lostHeaders.begin(), lostHeaders.end(), bandLessThen);
foreach(BandDesignIntf* header, lostHeaders){ foreach(BandDesignIntf* header, lostHeaders){
registerBand(header); registerBand(header);
@ -1466,7 +1481,7 @@ void ReportRender::checkLostHeadersInPrevColumn()
if (lostHeaders.size() > 0){ if (lostHeaders.size() > 0){
m_lostHeadersMoved = true; m_lostHeadersMoved = true;
// qSort(lostHeaders.begin(), lostHeaders.end(), bandLessThen); // std::sort(lostHeaders.begin(), lostHeaders.end(), bandLessThen);
std::sort(lostHeaders.begin(), lostHeaders.end(), bandLessThen); std::sort(lostHeaders.begin(), lostHeaders.end(), bandLessThen);
foreach(BandDesignIntf* header, lostHeaders){ foreach(BandDesignIntf* header, lostHeaders){
registerBand(header); registerBand(header);

View File

@ -354,6 +354,7 @@ void ScriptEngineManager::setDataManager(DataSourceManager *dataManager){
QString ScriptEngineManager::expandUserVariables(QString context, RenderPass /* pass */, ExpandType expandType, QVariant &varValue) QString ScriptEngineManager::expandUserVariables(QString context, RenderPass /* pass */, ExpandType expandType, QVariant &varValue)
{ {
#if QT_VERSION < 0x060000
QRegExp rx(Const::VARIABLE_RX); QRegExp rx(Const::VARIABLE_RX);
if (context.contains(rx)){ if (context.contains(rx)){
int pos = 0; int pos = 0;
@ -396,10 +397,62 @@ QString ScriptEngineManager::expandUserVariables(QString context, RenderPass /*
} }
} }
return context; return context;
#else
QRegularExpression rx(Const::VARIABLE_RX);
if (context.contains(rx)){
int pos = 0;
QRegularExpressionMatch match = rx.match(context, pos);
while (match.hasMatch()){
QString variable=match.captured(1);
pos = match.capturedEnd();
if (dataManager()->containsVariable(variable) ){
try {
varValue = dataManager()->variable(variable);
switch (expandType){
case EscapeSymbols:
context.replace(match.captured(0), escapeSimbols(varValue.toString()));
break;
case NoEscapeSymbols:
context.replace(match.captured(0), varValue.toString());
break;
case ReplaceHTMLSymbols:
context.replace(match.captured(0), replaceHTMLSymbols(varValue.toString()));
break;
}
pos = 0;
} catch (ReportError &e){
dataManager()->putError(e.what());
if (!dataManager()->reportSettings() || dataManager()->reportSettings()->suppressAbsentFieldsAndVarsWarnings())
context.replace(match.captured(0), e.what());
else
context.replace(match.captured(0), "");
}
} else {
QString error;
error = tr("Variable %1 not found").arg(variable);
dataManager()->putError(error);
if (!dataManager()->reportSettings() || dataManager()->reportSettings()->suppressAbsentFieldsAndVarsWarnings())
context.replace(match.captured(0), error);
else
context.replace(match.captured(0), "");
}
match = rx.match(context, pos);
}
}
return context;
#endif
} }
QString ScriptEngineManager::expandDataFields(QString context, ExpandType expandType, QVariant &varValue, QObject *reportItem) QString ScriptEngineManager::expandDataFields(QString context, ExpandType expandType, QVariant &varValue, QObject *reportItem)
{ {
#if QT_VERSION < 0x060000
QRegExp rx(Const::FIELD_RX); QRegExp rx(Const::FIELD_RX);
if (context.contains(rx)){ if (context.contains(rx)){
@ -450,13 +503,74 @@ QString ScriptEngineManager::expandDataFields(QString context, ExpandType expand
} }
return context; return context;
#else
QRegularExpression rx(Const::FIELD_RX);
if (context.contains(rx)){
QRegularExpressionMatch match = rx.match(context);
while (match.hasMatch()){
QString field=match.captured(1);
if (dataManager()->containsField(field)) {
QString fieldValue;
varValue = dataManager()->fieldData(field);
if (expandType == EscapeSymbols) {
if (varValue.isNull()) {
fieldValue="\"\"";
} else {
fieldValue = escapeSimbols(varValue.toString());
switch (dataManager()->fieldData(field).type()) {
case QVariant::Char:
case QVariant::String:
case QVariant::StringList:
case QVariant::Date:
case QVariant::DateTime:
fieldValue = "\""+fieldValue+"\"";
break;
default:
break;
}
}
} else {
if (expandType == ReplaceHTMLSymbols)
fieldValue = replaceHTMLSymbols(varValue.toString());
else fieldValue = varValue.toString();
}
context.replace(match.captured(0),fieldValue);
} else {
QString error;
if (reportItem){
error = tr("Field %1 not found in %2!").arg(field).arg(reportItem->objectName());
dataManager()->putError(error);
}
varValue = QVariant();
if (!dataManager()->reportSettings() || !dataManager()->reportSettings()->suppressAbsentFieldsAndVarsWarnings())
context.replace(match.captured(0), error);
else
context.replace(match.captured(0), "");
}
match = rx.match(context);
}
}
return context;
#endif
} }
QString ScriptEngineManager::expandScripts(QString context, QVariant& varValue, QObject *reportItem) QString ScriptEngineManager::expandScripts(QString context, QVariant& varValue, QObject *reportItem)
{ {
#if QT_VERSION < 0x060000
QRegExp rx(Const::SCRIPT_RX); QRegExp rx(Const::SCRIPT_RX);
if (context.contains(rx)){ if (context.contains(rx)){
#else
QRegularExpression rx(Const::SCRIPT_RX, QRegularExpression::DotMatchesEverythingOption);
if(context.contains(rx)){
#endif
if (ScriptEngineManager::instance().dataManager() != dataManager()) if (ScriptEngineManager::instance().dataManager() != dataManager())
ScriptEngineManager::instance().setDataManager(dataManager()); ScriptEngineManager::instance().setDataManager(dataManager());
@ -517,10 +631,17 @@ QString ScriptEngineManager::replaceScripts(QString context, QVariant &varValue,
QVariant ScriptEngineManager::evaluateScript(const QString& script){ QVariant ScriptEngineManager::evaluateScript(const QString& script){
#if QT_VERSION < 0x060000
QRegExp rx(Const::SCRIPT_RX); QRegExp rx(Const::SCRIPT_RX);
QVariant varValue; QVariant varValue;
if (script.contains(rx)){ if (script.contains(rx)){
#else
QRegularExpression rx(Const::SCRIPT_RX);
QVariant varValue;
if (script.contains(rx)){
#endif
if (ScriptEngineManager::instance().dataManager()!=dataManager()) if (ScriptEngineManager::instance().dataManager()!=dataManager())
ScriptEngineManager::instance().setDataManager(dataManager()); ScriptEngineManager::instance().setDataManager(dataManager());

View File

@ -31,7 +31,7 @@
#define LRSCRIPTENGINEMANAGERINTF_H #define LRSCRIPTENGINEMANAGERINTF_H
#include "qglobal.h" #include "qglobal.h"
#if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) #if QT_VERSION >= 0x050600
#ifndef USE_QTSCRIPTENGINE #ifndef USE_QTSCRIPTENGINE
#ifndef USE_QJSENGINE #ifndef USE_QJSENGINE
#define USE_QJSENGINE #define USE_QJSENGINE

View File

@ -106,7 +106,7 @@ void SettingDialog::setScritpTabIndention(int size)
void SettingDialog::setTheme(const QString &theme) void SettingDialog::setTheme(const QString &theme)
{ {
#ifdef HAVE_QT4 #if QT_VERSION < 0x050000
ui->cbTheme->setCurrentIndex(ui->cbTheme->findText(theme)); ui->cbTheme->setCurrentIndex(ui->cbTheme->findText(theme));
#else #else
ui->cbTheme->setCurrentText(theme); ui->cbTheme->setCurrentText(theme);
@ -128,7 +128,7 @@ void SettingDialog::setDesignerLanguages(QList<QLocale::Language> languages, QLo
if (language != currentLanguage) if (language != currentLanguage)
ui->designerLanguage->addItem(QLocale::languageToString(language)); ui->designerLanguage->addItem(QLocale::languageToString(language));
} }
#ifdef HAVE_QT4 #if QT_VERSION < 0x050000
ui->designerLanguage->setCurrentIndex(ui->designerLanguage->findText(QLocale::languageToString(currentLanguage))); ui->designerLanguage->setCurrentIndex(ui->designerLanguage->findText(QLocale::languageToString(currentLanguage)));
#else #else
ui->designerLanguage->setCurrentText(QLocale::languageToString(currentLanguage)); ui->designerLanguage->setCurrentText(QLocale::languageToString(currentLanguage));
@ -139,7 +139,7 @@ void SettingDialog::setDesignerThemes(QList<QString> themes, const QString &curr
{ {
ui->cbTheme->clear(); ui->cbTheme->clear();
ui->cbTheme->addItems(themes); ui->cbTheme->addItems(themes);
#ifdef HAVE_QT4 #if QT_VERSION < 0x050000
ui->cbTheme->setCurrentIndex(ui->cbTheme->findText(currentTheme)); ui->cbTheme->setCurrentIndex(ui->cbTheme->findText(currentTheme));
#else #else
ui->cbTheme->setCurrentText(currentTheme); ui->cbTheme->setCurrentText(currentTheme);
@ -150,8 +150,8 @@ void SettingDialog::setDesignerUnites(QList<QString> unitTypes, const QString cu
{ {
ui->reportUnits->clear(); ui->reportUnits->clear();
ui->reportUnits->addItems(unitTypes); ui->reportUnits->addItems(unitTypes);
#ifdef HAVE_QT4 #if QT_VERSION < 0x050000
ui->cbTheme->setCurrentIndex(ui->cbTheme->findText(currentUnitType)); ui->reportUnits->setCurrentIndex(ui->reportUnits->findText(currentUnitType));
#else #else
ui->reportUnits->setCurrentText(currentUnitType); ui->reportUnits->setCurrentText(currentUnitType);
#endif #endif

View File

@ -34,7 +34,11 @@
#include <QFocusEvent> #include <QFocusEvent>
#include <QApplication> #include <QApplication>
#include <QStyle> #include <QStyle>
#if QT_VERSION < 0x060000
#include <QDesktopWidget> #include <QDesktopWidget>
#else
#include <QScreen>
#endif
#include "lrtextitempropertyeditor.h" #include "lrtextitempropertyeditor.h"
namespace LimeReport{ namespace LimeReport{
@ -66,7 +70,11 @@ void ButtonLineEditor::editButtonClicked()
{ {
TextItemPropertyEditor* editor = new TextItemPropertyEditor(QApplication::activeWindow()); TextItemPropertyEditor* editor = new TextItemPropertyEditor(QApplication::activeWindow());
editor->setAttribute(Qt::WA_DeleteOnClose); editor->setAttribute(Qt::WA_DeleteOnClose);
#if QT_VERSION < 0x060000
editor->setGeometry(QStyle::alignedRect(Qt::LeftToRight, Qt::AlignCenter, editor->size(), QApplication::desktop()->availableGeometry())); editor->setGeometry(QStyle::alignedRect(Qt::LeftToRight, Qt::AlignCenter, editor->size(), QApplication::desktop()->availableGeometry()));
#else
editor->setGeometry(QStyle::alignedRect(Qt::LeftToRight, Qt::AlignCenter, editor->size(), QGuiApplication::screens().first()->availableGeometry()));
#endif
editor->setWindowTitle(m_propertyName); editor->setWindowTitle(m_propertyName);
editor->setText(m_lineEdit->text()); editor->setText(m_lineEdit->text());
connect(editor,SIGNAL(accepted()),this,SLOT(editingByEditorFinished())); connect(editor,SIGNAL(accepted()),this,SLOT(editingByEditorFinished()));

View File

@ -167,8 +167,12 @@ void ObjectInspectorTreeView::commitActiveEditorData(){
bool PropertyFilterModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const bool PropertyFilterModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
{ {
QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent); QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent);
if (sourceParent.isValid()) return true; if (sourceParent.isValid()) return true;
#if QT_VERSION < 0x060000
return sourceModel()->data(index).toString().contains(filterRegExp()); return sourceModel()->data(index).toString().contains(filterRegExp());
#else
return sourceModel()->data(index).toString().contains(filterRegularExpression());
#endif
} }
ObjectInspectorWidget::ObjectInspectorWidget(QWidget *parent) ObjectInspectorWidget::ObjectInspectorWidget(QWidget *parent)
@ -178,7 +182,11 @@ ObjectInspectorWidget::ObjectInspectorWidget(QWidget *parent)
m_propertyModel = new BaseDesignPropertyModel(this); m_propertyModel = new BaseDesignPropertyModel(this);
m_filterModel = new PropertyFilterModel(this); m_filterModel = new PropertyFilterModel(this);
m_filterModel->setSourceModel(m_propertyModel); m_filterModel->setSourceModel(m_propertyModel);
#if QT_VERSION < 0x060000
m_filterModel->setFilterRegExp(QRegExp("", Qt::CaseInsensitive, QRegExp::FixedString)); m_filterModel->setFilterRegExp(QRegExp("", Qt::CaseInsensitive, QRegExp::FixedString));
#else
m_filterModel->setFilterRegularExpression(QRegularExpression("", QRegularExpression::CaseInsensitiveOption));
#endif
m_objectInspectorView->setModel(m_filterModel); m_objectInspectorView->setModel(m_filterModel);
QVBoxLayout* l = new QVBoxLayout(); QVBoxLayout* l = new QVBoxLayout();
QLineEdit* le = new QLineEdit(this); QLineEdit* le = new QLineEdit(this);
@ -209,7 +217,8 @@ ObjectInspectorWidget::ObjectInspectorWidget(QWidget *parent)
h->addWidget(settingButton); h->addWidget(settingButton);
l->addLayout(h); l->addLayout(h);
l->addWidget(m_objectInspectorView); l->addWidget(m_objectInspectorView);
l->setMargin(Const::DOCKWIDGET_MARGINS); int margin = Const::DOCKWIDGET_MARGINS;
l->setContentsMargins(margin, margin, margin, margin);
l->setSpacing(2); l->setSpacing(2);
this->setLayout(l); this->setLayout(l);
} }
@ -305,7 +314,11 @@ void ObjectInspectorWidget::updateProperty(const QString &propertyName)
void ObjectInspectorWidget::slotFilterTextChanged(const QString &filter) void ObjectInspectorWidget::slotFilterTextChanged(const QString &filter)
{ {
if (m_filterModel) if (m_filterModel)
#if QT_VERSION < 0x060000
m_filterModel->setFilterRegExp(QRegExp(filter, Qt::CaseInsensitive, QRegExp::FixedString)); m_filterModel->setFilterRegExp(QRegExp(filter, Qt::CaseInsensitive, QRegExp::FixedString));
#else
m_filterModel->setFilterRegularExpression(QRegularExpression(filter, QRegularExpression::CaseInsensitiveOption));
#endif
} }
void ObjectInspectorWidget::slotTranslatePropertiesChecked(bool value) void ObjectInspectorWidget::slotTranslatePropertiesChecked(bool value)

View File

@ -93,7 +93,7 @@ void ObjectPropItem::appendItem(ObjectPropItem *item){
void ObjectPropItem::sortItem() void ObjectPropItem::sortItem()
{ {
qSort(m_childItems.begin(), m_childItems.end(), lesThen); std::sort(m_childItems.begin(), m_childItems.end(), lesThen);
} }
QVariant ObjectPropItem::propertyValue() const { QVariant ObjectPropItem::propertyValue() const {

View File

@ -40,7 +40,8 @@ ObjectBrowser::ObjectBrowser(QWidget *parent)
{ {
QVBoxLayout *layout = new QVBoxLayout(this); QVBoxLayout *layout = new QVBoxLayout(this);
setLayout(layout); setLayout(layout);
layout->setMargin(Const::DOCKWIDGET_MARGINS); int margin = Const::DOCKWIDGET_MARGINS;
layout->setContentsMargins(margin, margin, margin, margin);
m_treeView = new QTreeWidget(this); m_treeView = new QTreeWidget(this);
layout->addWidget(m_treeView); layout->addWidget(m_treeView);
m_treeView->headerItem()->setText(0,tr("Objects")); m_treeView->headerItem()->setText(0,tr("Objects"));

View File

@ -43,7 +43,8 @@ ScriptBrowser::ScriptBrowser(QWidget *parent) :
ui(new Ui::ScriptBrowser) ui(new Ui::ScriptBrowser)
{ {
ui->setupUi(this); ui->setupUi(this);
ui->verticalLayout->setMargin(Const::DOCKWIDGET_MARGINS); int margin = Const::DOCKWIDGET_MARGINS;
ui->verticalLayout->setContentsMargins(margin, margin, margin, margin);
#ifndef HAVE_UI_LOADER #ifndef HAVE_UI_LOADER
ui->tpDialogs->setVisible(false); ui->tpDialogs->setVisible(false);
ui->tabWidget->removeTab(ui->tabWidget->indexOf(ui->tpDialogs)); ui->tabWidget->removeTab(ui->tabWidget->indexOf(ui->tpDialogs));

View File

@ -46,8 +46,8 @@ void CodeEditor::lineNumberAreaPaintEvent(QPaintEvent* event)
QPainter painter(lineNumberArea); QPainter painter(lineNumberArea);
QStyleOption option; QStyleOption option;
option.initFrom(this); option.initFrom(this);
//painter.fillRect(event->rect(), QPalette().background().color()); //painter.fillRect(event->rect(), QPalette().window().color());
QColor bg = option.palette.background().color().darker(150); QColor bg = option.palette.window().color().darker(150);
painter.fillRect(event->rect(), bg); painter.fillRect(event->rect(), bg);
QTextBlock block = firstVisibleBlock(); QTextBlock block = firstVisibleBlock();
@ -79,7 +79,7 @@ int CodeEditor::lineNumberAreaWidth()
++digits; ++digits;
} }
int space = fontMetrics().width(QLatin1Char('9'))*2 + fontMetrics().width(QLatin1Char('9')) * digits; int space = fontMetrics().boundingRect(QLatin1Char('9')).width()*2 + fontMetrics().boundingRect(QLatin1Char('9')).width() * digits;
return space; return space;
} }
@ -300,7 +300,7 @@ void CodeEditor::highlightCurrentLine()
if (!isReadOnly()) { if (!isReadOnly()) {
QTextEdit::ExtraSelection selection; QTextEdit::ExtraSelection selection;
QColor lineColor = QColor(QPalette().background().color()).darker(100); QColor lineColor = QColor(QPalette().window().color()).darker(100);
selection.format.setBackground(lineColor); selection.format.setBackground(lineColor);
selection.format.setProperty(QTextFormat::FullWidthSelection, true); selection.format.setProperty(QTextFormat::FullWidthSelection, true);

View File

@ -20,7 +20,11 @@ ScriptEditor::ScriptEditor(QWidget *parent) :
setFocusProxy(ui->textEdit); setFocusProxy(ui->textEdit);
m_completer = new ReportStructureCompleater(this); m_completer = new ReportStructureCompleater(this);
ui->textEdit->setCompleter(m_completer); ui->textEdit->setCompleter(m_completer);
ui->textEdit->setTabStopWidth(ui->textEdit->fontMetrics().width("0")*m_tabIndention); #if QT_VERSION < 0x060000
ui->textEdit->setTabStopWidth(ui->textEdit->fontMetrics().boundingRect("0").width()*m_tabIndention);
#else
ui->textEdit->setTabStopDistance(ui->textEdit->fontMetrics().boundingRect("0").width()*m_tabIndention);
#endif
connect(ui->splitter, SIGNAL(splitterMoved(int,int)), this, SIGNAL(splitterMoved(int,int))); connect(ui->splitter, SIGNAL(splitterMoved(int,int)), this, SIGNAL(splitterMoved(int,int)));
connect(ui->textEdit, SIGNAL(textChanged()), this, SIGNAL(textChanged())); connect(ui->textEdit, SIGNAL(textChanged()), this, SIGNAL(textChanged()));
} }
@ -86,7 +90,11 @@ void ScriptEditor::setPageBand(BandDesignIntf* band)
void ScriptEditor::setTabIndention(int charCount) void ScriptEditor::setTabIndention(int charCount)
{ {
if (m_tabIndention != charCount){ if (m_tabIndention != charCount){
ui->textEdit->setTabStopWidth(ui->textEdit->fontMetrics().width("W")*charCount); #if QT_VERSION < 0x060000
ui->textEdit->setTabStopWidth(ui->textEdit->fontMetrics().boundingRect("W").width()*charCount);
#else
ui->textEdit->setTabStopDistance(ui->textEdit->fontMetrics().boundingRect("W").width()*charCount);
#endif
m_tabIndention = charCount; m_tabIndention = charCount;
} }
} }

View File

@ -247,7 +247,7 @@ ScriptHighlighter::ScriptHighlighter(QTextDocument* parent):
m_keywords.insert(keywords[i]); m_keywords.insert(keywords[i]);
} }
if ( isColorDark(QPalette().background().color())){ if ( isColorDark(QPalette().window().color())){
m_formats[NumberFormat].setForeground(Qt::darkBlue); m_formats[NumberFormat].setForeground(Qt::darkBlue);
m_formats[StringFormat].setForeground(Qt::darkGreen); m_formats[StringFormat].setForeground(Qt::darkGreen);
m_formats[KeywordFormat].setForeground(Qt::darkYellow); m_formats[KeywordFormat].setForeground(Qt::darkYellow);

View File

@ -197,7 +197,7 @@ QVariant XmlFontSerializator::loadValue()
//#if QT_VERSION>0x040800 //#if QT_VERSION>0x040800
// font.setStyleName(node()->attribute("stylename")); // font.setStyleName(node()->attribute("stylename"));
//#endif //#endif
font.setWeight(node()->attribute("weight").toInt()); font.setWeight(static_cast<QFont::Weight>(node()->attribute("weight").toInt()));
if (!node()->attribute("bold").isEmpty()) if (!node()->attribute("bold").isEmpty())
font.setBold(node()->attribute("bold").toInt()); font.setBold(node()->attribute("bold").toInt());
font.setItalic(node()->attribute("italic").toInt()); font.setItalic(node()->attribute("italic").toInt());

View File

@ -12,11 +12,10 @@ LanguageSelectDialog::LanguageSelectDialog(QWidget *parent) :
for (int i = 2; i<QLocale::LastLanguage; ++i){ for (int i = 2; i<QLocale::LastLanguage; ++i){
ui->comboBox->addItem(QLocale::languageToString(static_cast<QLocale::Language>(i)),static_cast<QLocale::Language>(i)); ui->comboBox->addItem(QLocale::languageToString(static_cast<QLocale::Language>(i)),static_cast<QLocale::Language>(i));
} }
#ifdef HAVE_QT5 #if QT_VERSION < 0x050000
ui->comboBox->setCurrentText("");
#endif
#ifdef HAVE_QT4
ui->comboBox->setEditText(""); ui->comboBox->setEditText("");
#else
ui->comboBox->setCurrentText("");
#endif #endif
} }