0
0
mirror of https://github.com/fralx/LimeReport.git synced 2025-07-10 21:53:46 +03:00
This commit is contained in:
makarenkov 2025-06-25 20:55:02 +00:00 committed by GitHub
commit 87e14c8642
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
23 changed files with 6358 additions and 3376 deletions

View File

@ -12,6 +12,7 @@ option(LIMEREPORT_DEMO "Build LimeReport demos" OFF)
option(ENABLE_DIALOG_DESIGNER "Enable dialog designer" OFF) option(ENABLE_DIALOG_DESIGNER "Enable dialog designer" OFF)
option(HAVE_UI_LOADER "Enable ui loader" OFF) option(HAVE_UI_LOADER "Enable ui loader" OFF)
option(USE_QT6 "Use Qt6" OFF) option(USE_QT6 "Use Qt6" OFF)
option(UPDATE_TRANSLATIONS "Update TS files" OFF)
if (ENABLE_DIALOG_DESIGNER AND NOT HAVE_UI_LOADER) if (ENABLE_DIALOG_DESIGNER AND NOT HAVE_UI_LOADER)
message(FATAL_ERROR "You need to enable HAVE_UI_LOADER") message(FATAL_ERROR "You need to enable HAVE_UI_LOADER")
@ -35,13 +36,9 @@ if(HAVE_UI_LOADER)
if(ENABLE_DIALOG_DESIGNER) if(ENABLE_DIALOG_DESIGNER)
if(USE_QT6) if(USE_QT6)
if(ENABLE_DIALOG_DESIGNER) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Designer DesignerComponentsPrivate REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Designer DesignerComponentsPrivate REQUIRED)
endif()
else() else()
if(ENABLE_DIALOG_DESIGNER) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Designer DesignerComponents REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Designer DesignerComponents REQUIRED)
endif()
endif(USE_QT6) endif(USE_QT6)
endif() endif()
@ -397,7 +394,7 @@ set(GLOBAL_HEADERS
${PROJECT_NAME}/LRCallbackDS ${PROJECT_NAME}/LRCallbackDS
${PROJECT_NAME}/LRDataManager ${PROJECT_NAME}/LRDataManager
${PROJECT_NAME}/LRScriptManager ${PROJECT_NAME}/LRScriptManager
${CMAKE_BINARY_DIR}/limereport/version.h ${CMAKE_CURRENT_BINARY_DIR}/limereport/version.h
) )
set(PROJECT_NAME ${PROJECT_NAME}-qt${QT_VERSION_MAJOR}) set(PROJECT_NAME ${PROJECT_NAME}-qt${QT_VERSION_MAJOR})
@ -455,10 +452,15 @@ if(ENABLE_ZINT)
target_link_libraries( ${PROJECT_NAME} PRIVATE QZint) target_link_libraries( ${PROJECT_NAME} PRIVATE QZint)
endif(ENABLE_ZINT) endif(ENABLE_ZINT)
target_compile_definitions( ${PROJECT_NAME} PRIVATE -DDEFAULT_ITEM_PADDING=${DEFAULT_ITEM_PADDING} -DHAVE_QT${QT_VERSION_MAJOR} -DHAVE_REPORT_DESIGNER -DUSE_QJSENGINE -D_CRT_SECURE_NO_WARNINGS) target_compile_definitions( ${PROJECT_NAME} PRIVATE
-DDEFAULT_ITEM_PADDING=${DEFAULT_ITEM_PADDING}
-DHAVE_QT${QT_VERSION_MAJOR}
-DHAVE_REPORT_DESIGNER
-DUSE_QJSENGINE
-D_CRT_SECURE_NO_WARNINGS)
target_include_directories( ${PROJECT_NAME} PRIVATE target_include_directories( ${PROJECT_NAME} PRIVATE
limereport/ limereport/
limereport/base limereport/base
limereport/bands limereport/bands
limereport/databrowser limereport/databrowser
@ -470,7 +472,7 @@ target_include_directories( ${PROJECT_NAME} PRIVATE
limereport/scripteditor ) limereport/scripteditor )
target_include_directories( ${PROJECT_NAME} PUBLIC target_include_directories( ${PROJECT_NAME} PUBLIC
${CMAKE_BINARY_DIR}/limereport ) ${CMAKE_CURRENT_BINARY_DIR}/limereport )
target_include_directories( ${PROJECT_NAME} INTERFACE target_include_directories( ${PROJECT_NAME} INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}/include) ${CMAKE_CURRENT_SOURCE_DIR}/include)
@ -478,10 +480,73 @@ target_include_directories( ${PROJECT_NAME} INTERFACE
list (APPEND GLOBAL_HEADERS ${EXTRA_FILES}) list (APPEND GLOBAL_HEADERS ${EXTRA_FILES})
set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER "${GLOBAL_HEADERS}") set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER "${GLOBAL_HEADERS}")
message(STATUS "${PROJECT_NAME} UPDATE_TRANSLATIONS: ${UPDATE_TRANSLATIONS}")
list(APPEND LANGUAGES ru es fr pl zh ar)
foreach(lang ${LANGUAGES})
list(APPEND TS_FILES translations/limereport_${lang}.ts)
endforeach()
if (${QT_VERSION} GREATER_EQUAL 6.7.0)
qt_add_lrelease(
TS_FILES ${TS_FILES}
EXCLUDE_FROM_ALL
LRELEASE_TARGET ${PROJECT_NAME}_lrelease
OPTIONS -removeidentical
)
if (UPDATE_TRANSLATIONS)
qt_add_lupdate(
TS_FILES ${TS_FILES}
SOURCES ${LIMEREPORT_SOURCES}
LUPDATE_TARGET ${PROJECT_NAME}_lupdate
OPTIONS -noobsolete
)
add_dependencies(${PROJECT_NAME}_lrelease ${PROJECT_NAME}_lupdate)
endif()
elseif (${QT_VERSION} GREATER_EQUAL 6.2.0)
qt_add_lrelease(
${PROJECT_NAME}
TS_FILES ${TS_FILES}
OPTIONS -removeidentical
)
if (UPDATE_TRANSLATIONS)
qt_add_lupdate(
${PROJECT_NAME}
TS_FILES ${TS_FILES}
SOURCES ${LIMEREPORT_SOURCES}
OPTIONS -noobsolete
)
add_dependencies(${PROJECT_NAME}_lrelease ${PROJECT_NAME}_lupdate)
endif()
else()
if (UPDATE_TRANSLATIONS)
qt5_create_translation(
QM_FILES
${LIMEREPORT_SOURCES}
${TS_FILES}
OPTIONS -noobsolete -locations relative
)
else()
qt5_add_translation(QM_FILES ${TS_FILES} OPTIONS -removeidentical)
endif()
add_custom_target(${PROJECT_NAME}_lrelease DEPENDS ${QM_FILES})
endif()
add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}_lrelease)
install(TARGETS install(TARGETS
${PROJECT_NAME} ${PROJECT_NAME}
ARCHIVE DESTINATION lib ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib LIBRARY DESTINATION lib
RUNTIME DESTINATION bin RUNTIME DESTINATION bin
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/limereport) PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/limereport)

View File

@ -4,7 +4,7 @@ if(GIT_EXECUTABLE)
# Generate a git-describe version string from Git repository tags # Generate a git-describe version string from Git repository tags
execute_process( execute_process(
COMMAND ${GIT_EXECUTABLE} describe --tags --dirty COMMAND ${GIT_EXECUTABLE} describe --tags --dirty
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_DESCRIBE_VERSION OUTPUT_VARIABLE GIT_DESCRIBE_VERSION
RESULT_VARIABLE GIT_DESCRIBE_ERROR_CODE RESULT_VARIABLE GIT_DESCRIBE_ERROR_CODE
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_STRIP_TRAILING_WHITESPACE
@ -22,7 +22,7 @@ if(NOT DEFINED GIT_VERSION)
endif() endif()
configure_file( configure_file(
${CMAKE_SOURCE_DIR}/limereport/version.h.in ${CMAKE_CURRENT_SOURCE_DIR}/limereport/version.h.in
${CMAKE_BINARY_DIR}/limereport/version.h ${CMAKE_CURRENT_BINARY_DIR}/limereport/version.h
@ONLY) @ONLY)

View File

@ -103,7 +103,7 @@ void SizeHandleRect::mousePressEvent(QMouseEvent *e)
return; return;
m_startSize = m_curSize = m_resizable->size(); m_startSize = m_curSize = m_resizable->size();
#if QT_VERSION < QT_VERSION_CHECK(5,15,3) #if QT_VERSION < QT_VERSION_CHECK(6,0,0)
m_startPos = m_curPos = m_resizable->mapFromGlobal(e->globalPos()); m_startPos = m_curPos = m_resizable->mapFromGlobal(e->globalPos());
#else #else
m_startPos = m_curPos = m_resizable->mapFromGlobal(e->globalPosition()); m_startPos = m_curPos = m_resizable->mapFromGlobal(e->globalPosition());
@ -121,7 +121,11 @@ void SizeHandleRect::mouseMoveEvent(QMouseEvent *e)
// causes the handle and the mouse cursor to become out of sync // causes the handle and the mouse cursor to become out of sync
// once a min/maxSize limit is hit. When the cursor reenters the valid // once a min/maxSize limit is hit. When the cursor reenters the valid
// areas, it will now snap to it. // areas, it will now snap to it.
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
m_curPos = m_resizable->mapFromGlobal(e->globalPos()); m_curPos = m_resizable->mapFromGlobal(e->globalPos());
#else
m_curPos = m_resizable->mapFromGlobal(e->globalPosition());
#endif
QSize delta = QSize(m_curPos.x() - m_startPos.x(), m_curPos.y() - m_startPos.y()); QSize delta = QSize(m_curPos.x() - m_startPos.x(), m_curPos.y() - m_startPos.y());
switch (m_dir) { switch (m_dir) {
case Right: case Right:

View File

@ -39,7 +39,7 @@ typedef QMap<QString, Qt::Alignment> AlignMap;
class AlignmentItemEditor; class AlignmentItemEditor;
class AlignmentPropItem: public ObjectPropItem { class LIMEREPORT_EXPORT AlignmentPropItem: public ObjectPropItem {
Q_OBJECT Q_OBJECT
public: public:
AlignmentPropItem(): ObjectPropItem(), m_horizEditor(NULL), m_vertEditor(NULL) { } AlignmentPropItem(): ObjectPropItem(), m_horizEditor(NULL), m_vertEditor(NULL) { }

View File

@ -94,16 +94,24 @@ void BorderFrameEditor::unSetAllLines()
void BorderFrameEditor::mousePressEvent(QMouseEvent* event) void BorderFrameEditor::mousePressEvent(QMouseEvent* event)
{ {
if (event->x() >= 10 && event->y() < 30) #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
int x = event->x();
int y = event->y();
#else
int x = event->position().x();
int y = event->position().y();
#endif
if (x >= 10 && y < 30)
emit borderSideClicked(BaseDesignIntf::BorderSide::TopLine, !topLine); emit borderSideClicked(BaseDesignIntf::BorderSide::TopLine, !topLine);
if ((event->x() >= 10 && event->x() < 30) && (event->y() > 10)) if ((x >= 10 && x < 30) && (y > 10))
emit borderSideClicked(BaseDesignIntf::BorderSide::LeftLine, !leftLine); emit borderSideClicked(BaseDesignIntf::BorderSide::LeftLine, !leftLine);
if (event->x() >= 10 && (event->y() > 80 && event->y() < rect().bottom())) if (x >= 10 && (y > 80 && y < rect().bottom()))
emit borderSideClicked(BaseDesignIntf::BorderSide::BottomLine, !bottomLine); emit borderSideClicked(BaseDesignIntf::BorderSide::BottomLine, !bottomLine);
if ((event->x() >= 130 && event->x() < rect().width()) && event->y() > 10) if ((x >= 130 && x < rect().width()) && y > 10)
emit borderSideClicked(BaseDesignIntf::BorderSide::RightLine, !rightLine); emit borderSideClicked(BaseDesignIntf::BorderSide::RightLine, !rightLine);
} }
@ -172,6 +180,7 @@ QGraphicsLineItem* BorderFrameEditor::createSideLine(LimeReport::BaseDesignIntf:
return scene->addLine( return scene->addLine(
QLineF(10, rect().bottom() - 10, rect().width() - 10, rect().bottom() - 10), m_pen); QLineF(10, rect().bottom() - 10, rect().width() - 10, rect().bottom() - 10), m_pen);
} }
return nullptr;
} }
void BorderFrameEditor::updateBorders() void BorderFrameEditor::updateBorders()

View File

@ -770,26 +770,25 @@ QSizeF AbstractSeriesChart::calcChartLegendSize(const QFont& font, const qreal m
} }
default: { default: {
qreal cw = 0; qreal cw = 0;
qreal maxWidth = 0; qreal mw = 0;
if (m_chartItem->series().isEmpty()) { if (m_chartItem->series().isEmpty()) {
foreach (QString label, m_designLabels) { foreach (QString label, m_designLabels) {
cw += fm.height(); cw += fm.height();
if (maxWidth < fm.boundingRect(label).width()) if (mw < fm.boundingRect(label).width())
maxWidth = fm.boundingRect(label).width() + 10; mw = fm.boundingRect(label).width() + 10;
} }
} else { } else {
foreach (SeriesItem* series, m_chartItem->series()) { foreach (SeriesItem* series, m_chartItem->series()) {
cw += fm.height(); cw += fm.height();
if (maxWidth < fm.boundingRect(series->name()).width()) if (mw < fm.boundingRect(series->name()).width())
maxWidth = fm.boundingRect(series->name()).width() + 10; mw = fm.boundingRect(series->name()).width() + 10;
} }
} }
cw += fm.height(); cw += fm.height();
return QSizeF(maxWidth + fm.height() * 2, cw); return QSizeF(mw + fm.height() * 2, cw);
} }
} }
return QSizeF();
} }
bool AbstractSeriesChart::verticalLabels(QPainter* painter, QRectF labelsRect) bool AbstractSeriesChart::verticalLabels(QPainter* painter, QRectF labelsRect)

View File

@ -367,13 +367,13 @@ bool TextItem::isNeedExpandContent() const
{ {
#if (QT_VERSION < QT_VERSION_CHECK(5, 15, 1)) #if (QT_VERSION < QT_VERSION_CHECK(5, 15, 1))
QRegExp rx("$*\\{[^{]*\\}"); QRegExp rx("$*\\{[^{]*\\}");
return content().contains(rx) || isContentBackedUp();
#else #else
bool result = false; bool result = false;
QRegularExpression rx("\\$*\\{[^{]*\\}"); QRegularExpression rx("\\$*\\{[^{]*\\}");
result = content().contains(rx) || isContentBackedUp(); result = content().contains(rx) || isContentBackedUp();
return result; return result;
#endif #endif
return content().contains(rx) || isContentBackedUp();
} }
QString TextItem::replaceBR(QString text) const { return text.replace("<br/>", "\n"); } QString TextItem::replaceBR(QString text) const { return text.replace("<br/>", "\n"); }

View File

@ -1354,10 +1354,10 @@ void BaseDesignIntf::contextMenuEvent(QGraphicsSceneContextMenuEvent* event)
pasteAction->setEnabled(false); pasteAction->setEnabled(false);
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
lockGeometryAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_L)); lockGeometryAction->setShortcut(QKeySequence(Qt::Key(Qt::CTRL) | Qt::Key_L));
copyAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_C)); copyAction->setShortcut(QKeySequence(Qt::Key(Qt::CTRL) | Qt::Key_C));
cutAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_X)); cutAction->setShortcut(QKeySequence(Qt::Key(Qt::CTRL) | Qt::Key_X));
pasteAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_V)); pasteAction->setShortcut(QKeySequence(Qt::Key(Qt::CTRL) | Qt::Key_V));
#else #else
lockGeometryAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_L)); lockGeometryAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_L));
copyAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_C)); copyAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_C));

View File

@ -489,7 +489,6 @@ QString DataSourceManager::replaceVariables(QString value)
} }
return value; return value;
#endif #endif
return QString();
} }
QString DataSourceManager::replaceVariables(QString query, QMap<QString, QString>& aliasesToParam) QString DataSourceManager::replaceVariables(QString query, QMap<QString, QString>& aliasesToParam)

View File

@ -112,7 +112,7 @@ private:
DataNode* m_rootNode; DataNode* m_rootNode;
}; };
class DataSourceManager: class LIMEREPORT_EXPORT DataSourceManager:
public QObject, public QObject,
public ICollectionContainer, public ICollectionContainer,
public IVariablesContainer, public IVariablesContainer,

View File

@ -36,7 +36,7 @@
namespace LimeReport { namespace LimeReport {
class BaseDesignIntf; class BaseDesignIntf;
class ItemDesignIntf: public BaseDesignIntf { class LIMEREPORT_EXPORT ItemDesignIntf: public BaseDesignIntf {
Q_OBJECT Q_OBJECT
Q_PROPERTY(LocationType itemLocation READ itemLocation WRITE setItemLocation) Q_PROPERTY(LocationType itemLocation READ itemLocation WRITE setItemLocation)
Q_PROPERTY(bool stretchToMaxHeight READ stretchToMaxHeight WRITE setStretchToMaxHeight) Q_PROPERTY(bool stretchToMaxHeight READ stretchToMaxHeight WRITE setStretchToMaxHeight)
@ -81,7 +81,7 @@ protected:
} }
}; };
class ContentItemDesignIntf: public ItemDesignIntf { class LIMEREPORT_EXPORT ContentItemDesignIntf: public ItemDesignIntf {
Q_OBJECT Q_OBJECT
public: public:
ContentItemDesignIntf(const QString& xmlTypeName, QObject* owner = 0, ContentItemDesignIntf(const QString& xmlTypeName, QObject* owner = 0,

View File

@ -465,7 +465,7 @@ void PreviewReportWindow::scaleComboboxChanged(QString text)
if (m_scalePercentChanging) if (m_scalePercentChanging)
return; return;
m_scalePercentChanging = true; m_scalePercentChanging = true;
m_previewReportWidget->setScalePercent(text.remove(text.count() - 1, 1).toInt()); m_previewReportWidget->setScalePercent(text.remove(text.length() - 1, 1).toInt());
m_scalePercentChanging = false; m_scalePercentChanging = false;
} }

View File

@ -162,7 +162,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::Key(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);
@ -184,7 +184,7 @@ 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::Key(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);
@ -195,17 +195,17 @@ void ReportDesignWindow::createActions()
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::Key(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::Key(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::Key(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);
@ -215,13 +215,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::Key(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::Key(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)));
m_newTextItemAction = new QAction(tr("Text Item"), this); m_newTextItemAction = new QAction(tr("Text Item"), this);
@ -231,7 +231,7 @@ 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::Key(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);
@ -241,7 +241,7 @@ void ReportDesignWindow::createActions()
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::Key(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);
@ -259,7 +259,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::Key(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);
@ -286,13 +286,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::Key(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::Key(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);
@ -306,7 +306,7 @@ 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::Key(Qt::CTRL) | Qt::Key_L));
connect(m_lockSelectedItemsAction, SIGNAL(triggered()), this, SLOT(slotLockSelectedItems())); connect(m_lockSelectedItemsAction, SIGNAL(triggered()), this, SLOT(slotLockSelectedItems()));
m_unlockSelectedItemsAction = new QAction(tr("Unlock selected items"), this); m_unlockSelectedItemsAction = new QAction(tr("Unlock selected items"), this);
@ -317,7 +317,7 @@ void ReportDesignWindow::createActions()
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::Key(Qt::CTRL) | Qt::Key_A));
connect(m_selectOneLevelItems, SIGNAL(triggered()), this, SLOT(slotSelectOneLevelItems())); connect(m_selectOneLevelItems, SIGNAL(triggered()), this, SLOT(slotSelectOneLevelItems()));
} }

View File

@ -33,6 +33,7 @@
#include <QComboBox> #include <QComboBox>
#include <QWidget> #include <QWidget>
//#include <QPushButton> //#include <QPushButton>
#include "lrglobal.h"
class QToolButton; class QToolButton;
@ -58,7 +59,7 @@ private:
bool m_popup; bool m_popup;
}; };
class ComboBoxEditor: public QWidget { class LIMEREPORT_EXPORT ComboBoxEditor: public QWidget {
Q_OBJECT Q_OBJECT
public: public:
// explicit ComboBoxEditor(QWidget *parent = 0); // explicit ComboBoxEditor(QWidget *parent = 0);

View File

@ -42,7 +42,7 @@
namespace LimeReport { namespace LimeReport {
class ObjectPropItem: public QObject { class LIMEREPORT_EXPORT ObjectPropItem: public QObject {
Q_OBJECT Q_OBJECT
public: public:

View File

@ -250,9 +250,10 @@ void XMLWriter::saveTranslation(QString propertyName, QObject* item, QDomElement
foreach (PageTranslation* page, curTranslation->pagesTranslation()) { foreach (PageTranslation* page, curTranslation->pagesTranslation()) {
QDomElement pageNode = m_doc->createElement(page->pageName); QDomElement pageNode = m_doc->createElement(page->pageName);
languageNode.appendChild(pageNode); languageNode.appendChild(pageNode);
foreach (ItemTranslation* item, page->itemsTranslation) { foreach (ItemTranslation* translationItem, page->itemsTranslation) {
QDomElement itemNode = m_doc->createElement(item->itemName); QDomElement itemNode = m_doc->createElement(translationItem->itemName);
foreach (PropertyTranslation* property, item->propertyesTranslation) { foreach (PropertyTranslation* property,
translationItem->propertyesTranslation) {
if (property->sourceValue.compare(property->value) != 0) { if (property->sourceValue.compare(property->value) != 0) {
QDomElement propertyNode = m_doc->createElement(property->propertyName); QDomElement propertyNode = m_doc->createElement(property->propertyName);
propertyNode.setAttribute("Value", property->value); propertyNode.setAttribute("Value", property->value);

View File

@ -35,8 +35,8 @@ TranslationEditor::TranslationEditor(QWidget* parent):
ui->tbStrings->setHorizontalHeaderItem(2, new QTableWidgetItem(tr("Property"))); ui->tbStrings->setHorizontalHeaderItem(2, new QTableWidgetItem(tr("Property")));
ui->tbStrings->setHorizontalHeaderItem(3, new QTableWidgetItem(tr("Source text"))); ui->tbStrings->setHorizontalHeaderItem(3, new QTableWidgetItem(tr("Source text")));
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
m_clrReturn m_clrReturn = new QShortcut(QKeySequence(Qt::Key(Qt::CTRL) | Qt::Key_Return), this,
= new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_Return), this, SLOT(slotItemChecked())); SLOT(slotItemChecked()));
#else #else
m_clrReturn m_clrReturn
= new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Return), this, SLOT(slotItemChecked())); = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Return), this, SLOT(slotItemChecked()));

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff