mirror of
https://github.com/fralx/LimeReport.git
synced 2025-04-01 07:03:43 +03:00
Merge c7e4028637
into 33ebdfc640
This commit is contained in:
commit
cdd87ce681
@ -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)
|
||||
|
@ -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));
|
||||
|
@ -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()));
|
||||
|
Loading…
Reference in New Issue
Block a user