mirror of
https://github.com/fralx/LimeReport.git
synced 2025-07-10 21:53:46 +03:00
Merge 0c41bc749c
into 09ab013518
This commit is contained in:
commit
87e14c8642
@ -12,6 +12,7 @@ option(LIMEREPORT_DEMO "Build LimeReport demos" OFF)
|
||||
option(ENABLE_DIALOG_DESIGNER "Enable dialog designer" OFF)
|
||||
option(HAVE_UI_LOADER "Enable ui loader" OFF)
|
||||
option(USE_QT6 "Use Qt6" OFF)
|
||||
option(UPDATE_TRANSLATIONS "Update TS files" OFF)
|
||||
|
||||
if (ENABLE_DIALOG_DESIGNER AND NOT 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(USE_QT6)
|
||||
if(ENABLE_DIALOG_DESIGNER)
|
||||
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Designer DesignerComponentsPrivate REQUIRED)
|
||||
endif()
|
||||
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Designer DesignerComponentsPrivate REQUIRED)
|
||||
else()
|
||||
if(ENABLE_DIALOG_DESIGNER)
|
||||
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Designer DesignerComponents REQUIRED)
|
||||
endif()
|
||||
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Designer DesignerComponents REQUIRED)
|
||||
endif(USE_QT6)
|
||||
endif()
|
||||
|
||||
@ -397,7 +394,7 @@ set(GLOBAL_HEADERS
|
||||
${PROJECT_NAME}/LRCallbackDS
|
||||
${PROJECT_NAME}/LRDataManager
|
||||
${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})
|
||||
@ -455,10 +452,15 @@ if(ENABLE_ZINT)
|
||||
target_link_libraries( ${PROJECT_NAME} PRIVATE QZint)
|
||||
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
|
||||
limereport/
|
||||
limereport/
|
||||
limereport/base
|
||||
limereport/bands
|
||||
limereport/databrowser
|
||||
@ -470,7 +472,7 @@ target_include_directories( ${PROJECT_NAME} PRIVATE
|
||||
limereport/scripteditor )
|
||||
|
||||
target_include_directories( ${PROJECT_NAME} PUBLIC
|
||||
${CMAKE_BINARY_DIR}/limereport )
|
||||
${CMAKE_CURRENT_BINARY_DIR}/limereport )
|
||||
|
||||
target_include_directories( ${PROJECT_NAME} INTERFACE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
@ -478,10 +480,73 @@ target_include_directories( ${PROJECT_NAME} INTERFACE
|
||||
list (APPEND GLOBAL_HEADERS ${EXTRA_FILES})
|
||||
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
|
||||
${PROJECT_NAME}
|
||||
ARCHIVE DESTINATION lib
|
||||
LIBRARY DESTINATION lib
|
||||
RUNTIME DESTINATION bin
|
||||
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/limereport)
|
||||
|
||||
|
@ -4,7 +4,7 @@ if(GIT_EXECUTABLE)
|
||||
# Generate a git-describe version string from Git repository tags
|
||||
execute_process(
|
||||
COMMAND ${GIT_EXECUTABLE} describe --tags --dirty
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_DESCRIBE_VERSION
|
||||
RESULT_VARIABLE GIT_DESCRIBE_ERROR_CODE
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
@ -22,7 +22,7 @@ if(NOT DEFINED GIT_VERSION)
|
||||
endif()
|
||||
|
||||
configure_file(
|
||||
${CMAKE_SOURCE_DIR}/limereport/version.h.in
|
||||
${CMAKE_BINARY_DIR}/limereport/version.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/limereport/version.h.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/limereport/version.h
|
||||
@ONLY)
|
||||
|
||||
|
@ -103,7 +103,7 @@ void SizeHandleRect::mousePressEvent(QMouseEvent *e)
|
||||
return;
|
||||
|
||||
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());
|
||||
#else
|
||||
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
|
||||
// once a min/maxSize limit is hit. When the cursor reenters the valid
|
||||
// areas, it will now snap to it.
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
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());
|
||||
switch (m_dir) {
|
||||
case Right:
|
||||
|
@ -39,7 +39,7 @@ typedef QMap<QString, Qt::Alignment> AlignMap;
|
||||
|
||||
class AlignmentItemEditor;
|
||||
|
||||
class AlignmentPropItem: public ObjectPropItem {
|
||||
class LIMEREPORT_EXPORT AlignmentPropItem: public ObjectPropItem {
|
||||
Q_OBJECT
|
||||
public:
|
||||
AlignmentPropItem(): ObjectPropItem(), m_horizEditor(NULL), m_vertEditor(NULL) { }
|
||||
|
@ -94,16 +94,24 @@ void BorderFrameEditor::unSetAllLines()
|
||||
|
||||
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);
|
||||
|
||||
if ((event->x() >= 10 && event->x() < 30) && (event->y() > 10))
|
||||
if ((x >= 10 && x < 30) && (y > 10))
|
||||
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);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@ -172,6 +180,7 @@ QGraphicsLineItem* BorderFrameEditor::createSideLine(LimeReport::BaseDesignIntf:
|
||||
return scene->addLine(
|
||||
QLineF(10, rect().bottom() - 10, rect().width() - 10, rect().bottom() - 10), m_pen);
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void BorderFrameEditor::updateBorders()
|
||||
|
@ -770,26 +770,25 @@ QSizeF AbstractSeriesChart::calcChartLegendSize(const QFont& font, const qreal m
|
||||
}
|
||||
default: {
|
||||
qreal cw = 0;
|
||||
qreal maxWidth = 0;
|
||||
qreal mw = 0;
|
||||
|
||||
if (m_chartItem->series().isEmpty()) {
|
||||
foreach (QString label, m_designLabels) {
|
||||
cw += fm.height();
|
||||
if (maxWidth < fm.boundingRect(label).width())
|
||||
maxWidth = fm.boundingRect(label).width() + 10;
|
||||
if (mw < fm.boundingRect(label).width())
|
||||
mw = fm.boundingRect(label).width() + 10;
|
||||
}
|
||||
} else {
|
||||
foreach (SeriesItem* series, m_chartItem->series()) {
|
||||
cw += fm.height();
|
||||
if (maxWidth < fm.boundingRect(series->name()).width())
|
||||
maxWidth = fm.boundingRect(series->name()).width() + 10;
|
||||
if (mw < fm.boundingRect(series->name()).width())
|
||||
mw = fm.boundingRect(series->name()).width() + 10;
|
||||
}
|
||||
}
|
||||
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)
|
||||
|
@ -367,13 +367,13 @@ bool TextItem::isNeedExpandContent() const
|
||||
{
|
||||
#if (QT_VERSION < QT_VERSION_CHECK(5, 15, 1))
|
||||
QRegExp rx("$*\\{[^{]*\\}");
|
||||
return content().contains(rx) || isContentBackedUp();
|
||||
#else
|
||||
bool result = false;
|
||||
QRegularExpression rx("\\$*\\{[^{]*\\}");
|
||||
result = content().contains(rx) || isContentBackedUp();
|
||||
return result;
|
||||
#endif
|
||||
return content().contains(rx) || isContentBackedUp();
|
||||
}
|
||||
|
||||
QString TextItem::replaceBR(QString text) const { return text.replace("<br/>", "\n"); }
|
||||
|
@ -1354,10 +1354,10 @@ void BaseDesignIntf::contextMenuEvent(QGraphicsSceneContextMenuEvent* event)
|
||||
pasteAction->setEnabled(false);
|
||||
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
|
||||
lockGeometryAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_L));
|
||||
copyAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_C));
|
||||
cutAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_X));
|
||||
pasteAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_V));
|
||||
lockGeometryAction->setShortcut(QKeySequence(Qt::Key(Qt::CTRL) | Qt::Key_L));
|
||||
copyAction->setShortcut(QKeySequence(Qt::Key(Qt::CTRL) | Qt::Key_C));
|
||||
cutAction->setShortcut(QKeySequence(Qt::Key(Qt::CTRL) | Qt::Key_X));
|
||||
pasteAction->setShortcut(QKeySequence(Qt::Key(Qt::CTRL) | Qt::Key_V));
|
||||
#else
|
||||
lockGeometryAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_L));
|
||||
copyAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_C));
|
||||
|
@ -489,7 +489,6 @@ QString DataSourceManager::replaceVariables(QString value)
|
||||
}
|
||||
return value;
|
||||
#endif
|
||||
return QString();
|
||||
}
|
||||
|
||||
QString DataSourceManager::replaceVariables(QString query, QMap<QString, QString>& aliasesToParam)
|
||||
|
@ -112,7 +112,7 @@ private:
|
||||
DataNode* m_rootNode;
|
||||
};
|
||||
|
||||
class DataSourceManager:
|
||||
class LIMEREPORT_EXPORT DataSourceManager:
|
||||
public QObject,
|
||||
public ICollectionContainer,
|
||||
public IVariablesContainer,
|
||||
|
@ -36,7 +36,7 @@
|
||||
|
||||
namespace LimeReport {
|
||||
class BaseDesignIntf;
|
||||
class ItemDesignIntf: public BaseDesignIntf {
|
||||
class LIMEREPORT_EXPORT ItemDesignIntf: public BaseDesignIntf {
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(LocationType itemLocation READ itemLocation WRITE setItemLocation)
|
||||
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
|
||||
public:
|
||||
ContentItemDesignIntf(const QString& xmlTypeName, QObject* owner = 0,
|
||||
|
@ -465,7 +465,7 @@ void PreviewReportWindow::scaleComboboxChanged(QString text)
|
||||
if (m_scalePercentChanging)
|
||||
return;
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -162,7 +162,7 @@ void ReportDesignWindow::createActions()
|
||||
{
|
||||
m_newReportAction = new QAction(tr("New Report"), this);
|
||||
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()));
|
||||
|
||||
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->setIcon(QIcon(":/report/images/undo"));
|
||||
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()));
|
||||
|
||||
m_redoAction = new QAction(tr("Redo"), this);
|
||||
@ -195,17 +195,17 @@ void ReportDesignWindow::createActions()
|
||||
|
||||
m_copyAction = new QAction(tr("Copy"), this);
|
||||
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()));
|
||||
|
||||
m_pasteAction = new QAction(tr("Paste"), this);
|
||||
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()));
|
||||
|
||||
m_cutAction = new QAction(tr("Cut"), this);
|
||||
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()));
|
||||
|
||||
m_settingsAction = new QAction(tr("Settings"), this);
|
||||
@ -215,13 +215,13 @@ void ReportDesignWindow::createActions()
|
||||
m_useGridAction = new QAction(tr("Use grid"), this);
|
||||
m_useGridAction->setIcon(QIcon(":/report/images/grid"));
|
||||
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)));
|
||||
|
||||
m_useMagnetAction = new QAction(tr("Use magnet"), this);
|
||||
m_useMagnetAction->setIcon(QIcon(":/report/images/magnet"));
|
||||
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)));
|
||||
|
||||
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->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()));
|
||||
|
||||
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->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()));
|
||||
|
||||
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->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()));
|
||||
|
||||
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->setCheckable(true);
|
||||
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)));
|
||||
|
||||
m_hideRightPanel = new QAction(tr("Hide right panel | Alt+R"), this);
|
||||
m_hideRightPanel->setCheckable(true);
|
||||
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)));
|
||||
#ifdef HAVE_QTDESIGNER_INTEGRATION
|
||||
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->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()));
|
||||
|
||||
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_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()));
|
||||
}
|
||||
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include <QComboBox>
|
||||
#include <QWidget>
|
||||
//#include <QPushButton>
|
||||
#include "lrglobal.h"
|
||||
|
||||
class QToolButton;
|
||||
|
||||
@ -58,7 +59,7 @@ private:
|
||||
bool m_popup;
|
||||
};
|
||||
|
||||
class ComboBoxEditor: public QWidget {
|
||||
class LIMEREPORT_EXPORT ComboBoxEditor: public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
// explicit ComboBoxEditor(QWidget *parent = 0);
|
||||
|
@ -42,7 +42,7 @@
|
||||
|
||||
namespace LimeReport {
|
||||
|
||||
class ObjectPropItem: public QObject {
|
||||
class LIMEREPORT_EXPORT ObjectPropItem: public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
@ -250,9 +250,10 @@ void XMLWriter::saveTranslation(QString propertyName, QObject* item, QDomElement
|
||||
foreach (PageTranslation* page, curTranslation->pagesTranslation()) {
|
||||
QDomElement pageNode = m_doc->createElement(page->pageName);
|
||||
languageNode.appendChild(pageNode);
|
||||
foreach (ItemTranslation* item, page->itemsTranslation) {
|
||||
QDomElement itemNode = m_doc->createElement(item->itemName);
|
||||
foreach (PropertyTranslation* property, item->propertyesTranslation) {
|
||||
foreach (ItemTranslation* translationItem, page->itemsTranslation) {
|
||||
QDomElement itemNode = m_doc->createElement(translationItem->itemName);
|
||||
foreach (PropertyTranslation* property,
|
||||
translationItem->propertyesTranslation) {
|
||||
if (property->sourceValue.compare(property->value) != 0) {
|
||||
QDomElement propertyNode = m_doc->createElement(property->propertyName);
|
||||
propertyNode.setAttribute("Value", property->value);
|
||||
|
@ -35,8 +35,8 @@ TranslationEditor::TranslationEditor(QWidget* parent):
|
||||
ui->tbStrings->setHorizontalHeaderItem(2, new QTableWidgetItem(tr("Property")));
|
||||
ui->tbStrings->setHorizontalHeaderItem(3, new QTableWidgetItem(tr("Source text")));
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
|
||||
m_clrReturn
|
||||
= new QShortcut(QKeySequence(Qt::CTRL | Qt::Key_Return), this, SLOT(slotItemChecked()));
|
||||
m_clrReturn = new QShortcut(QKeySequence(Qt::Key(Qt::CTRL) | Qt::Key_Return), this,
|
||||
SLOT(slotItemChecked()));
|
||||
#else
|
||||
m_clrReturn
|
||||
= 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
Loading…
Reference in New Issue
Block a user