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(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)
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
|
||||||
|
@ -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:
|
||||||
|
@ -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) { }
|
||||||
|
@ -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()
|
||||||
|
@ -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)
|
||||||
|
@ -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"); }
|
||||||
|
@ -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));
|
||||||
|
@ -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)
|
||||||
|
@ -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,
|
||||||
|
@ -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,
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
|
|
||||||
namespace LimeReport {
|
namespace LimeReport {
|
||||||
|
|
||||||
class ObjectPropItem: public QObject {
|
class LIMEREPORT_EXPORT ObjectPropItem: public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -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);
|
||||||
|
@ -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
Loading…
Reference in New Issue
Block a user