mirror of
https://github.com/fralx/LimeReport.git
synced 2024-12-23 16:22:58 +03:00
Merge branch 'develop' into feature/newScaleMethod
# Conflicts: # common.pri # limereport/lrbanddesignintf.cpp # limereport/lrbanddesignintf.h # limereport/lrbasedesignintf.cpp # limereport/lrbasedesignintf.h # limereport/lrpageitemdesignintf.h
This commit is contained in:
commit
b18c2e4aa8
1
3rdparty/zint-2.6.1/backend_qt/qzint.h
vendored
1
3rdparty/zint-2.6.1/backend_qt/qzint.h
vendored
@ -18,6 +18,7 @@
|
|||||||
#define BARCODERENDER_H
|
#define BARCODERENDER_H
|
||||||
#include <QColor>
|
#include <QColor>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
|
#include <QPainterPath>
|
||||||
|
|
||||||
#include "qzint_global.h"
|
#include "qzint_global.h"
|
||||||
#include "zint.h"
|
#include "zint.h"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
# LimeReport v1.5.35 [![Build Status](https://api.travis-ci.org/fralx/LimeReport.svg?branch=master)](https://travis-ci.org/fralx/LimeReport) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/bc31412ea4814f30825b5ed3723e9a70)](https://app.codacy.com/app/fralx/LimeReport?utm_source=github.com&utm_medium=referral&utm_content=fralx/LimeReport&utm_campaign=Badge_Grade_Dashboard)
|
# LimeReport v1.5.35 [![Build Status](https://api.travis-ci.org/fralx/LimeReport.svg?branch=master)](https://travis-ci.org/fralx/LimeReport) [![Build status](https://ci.appveyor.com/api/projects/status/wna5429pix7ilcmo/branch/master?svg=true)](https://ci.appveyor.com/project/fralx/limereport/branch/master) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/bc31412ea4814f30825b5ed3723e9a70)](https://app.codacy.com/app/fralx/LimeReport?utm_source=github.com&utm_medium=referral&utm_content=fralx/LimeReport&utm_campaign=Badge_Grade_Dashboard)
|
||||||
|
|
||||||
## Official LimeReport web site [http://limereport.ru](http://limereport.ru)
|
## Official LimeReport web site [http://limereport.ru](http://limereport.ru)
|
||||||
|
|
||||||
|
@ -134,7 +134,7 @@ RCC_DIR = $${ARCH_DIR}/$${BUILD_TYPE}/rcc
|
|||||||
|
|
||||||
LIMEREPORT_VERSION_MAJOR = 1
|
LIMEREPORT_VERSION_MAJOR = 1
|
||||||
LIMEREPORT_VERSION_MINOR = 5
|
LIMEREPORT_VERSION_MINOR = 5
|
||||||
LIMEREPORT_VERSION_RELEASE = 50
|
LIMEREPORT_VERSION_RELEASE = 78
|
||||||
|
|
||||||
LIMEREPORT_VERSION = '$${LIMEREPORT_VERSION_MAJOR}.$${LIMEREPORT_VERSION_MINOR}.$${LIMEREPORT_VERSION_RELEASE}'
|
LIMEREPORT_VERSION = '$${LIMEREPORT_VERSION_MAJOR}.$${LIMEREPORT_VERSION_MINOR}.$${LIMEREPORT_VERSION_RELEASE}'
|
||||||
DEFINES *= LIMEREPORT_VERSION_STR=\\\"$${LIMEREPORT_VERSION}\\\"
|
DEFINES *= LIMEREPORT_VERSION_STR=\\\"$${LIMEREPORT_VERSION}\\\"
|
||||||
|
@ -33,7 +33,7 @@ macx{
|
|||||||
unix:{
|
unix:{
|
||||||
DESTDIR = $$DEST_DIR
|
DESTDIR = $$DEST_DIR
|
||||||
# QMAKE_POST_LINK += mkdir -p $$quote($$REPORTS_DIR) |
|
# QMAKE_POST_LINK += mkdir -p $$quote($$REPORTS_DIR) |
|
||||||
QMAKE_POST_LINK += $$QMAKE_COPY_DIR $$quote($$EXTRA_DIR) $$quote($$REPORTS_DIR) $$escape_expand(\n\t)
|
QMAKE_POST_LINK += $$QMAKE_COPY_DIR \"$$EXTRA_DIR\" \"$$REPORTS_DIR\" $$escape_expand(\n\t)
|
||||||
|
|
||||||
linux{
|
linux{
|
||||||
#Link share lib to ../lib rpath
|
#Link share lib to ../lib rpath
|
||||||
@ -49,7 +49,7 @@ unix:{
|
|||||||
win32 {
|
win32 {
|
||||||
DESTDIR = $$DEST_DIR
|
DESTDIR = $$DEST_DIR
|
||||||
contains(QMAKE_HOST.os, Linux){
|
contains(QMAKE_HOST.os, Linux){
|
||||||
QMAKE_POST_LINK += $$QMAKE_COPY_DIR $$quote($$EXTRA_DIR) $$quote($$REPORTS_DIR) $$escape_expand(\n\t)
|
QMAKE_POST_LINK += $$QMAKE_COPY_DIR \"$$EXTRA_DIR\" \"$$REPORTS_DIR\" $$escape_expand(\n\t)
|
||||||
} else {
|
} else {
|
||||||
EXTRA_DIR ~= s,/,\\,g
|
EXTRA_DIR ~= s,/,\\,g
|
||||||
DEST_DIR ~= s,/,\\,g
|
DEST_DIR ~= s,/,\\,g
|
||||||
|
@ -33,7 +33,7 @@ macx{
|
|||||||
|
|
||||||
unix:{
|
unix:{
|
||||||
DESTDIR = $$DEST_DIR
|
DESTDIR = $$DEST_DIR
|
||||||
QMAKE_POST_LINK += $$QMAKE_COPY_DIR $$quote($$EXTRA_DIR) $$quote($$REPORTS_DIR) $$escape_expand(\n\t)
|
QMAKE_POST_LINK += $$QMAKE_COPY_DIR \"$$EXTRA_DIR\" \"$$REPORTS_DIR\" $$escape_expand(\n\t)
|
||||||
linux{
|
linux{
|
||||||
#Link share lib to ../lib rpath
|
#Link share lib to ../lib rpath
|
||||||
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN
|
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN
|
||||||
@ -48,7 +48,7 @@ unix:{
|
|||||||
win32 {
|
win32 {
|
||||||
DESTDIR = $$DEST_DIR
|
DESTDIR = $$DEST_DIR
|
||||||
contains(QMAKE_HOST.os, Linux){
|
contains(QMAKE_HOST.os, Linux){
|
||||||
QMAKE_POST_LINK += $$QMAKE_COPY_DIR $$quote($$EXTRA_DIR) $$quote($$REPORTS_DIR) $$escape_expand(\n\t)
|
QMAKE_POST_LINK += $$QMAKE_COPY_DIR \"$$EXTRA_DIR\" \"$$REPORTS_DIR\" $$escape_expand(\n\t)
|
||||||
} else {
|
} else {
|
||||||
EXTRA_DIR ~= s,/,\\,g
|
EXTRA_DIR ~= s,/,\\,g
|
||||||
DEST_DIR ~= s,/,\\,g
|
DEST_DIR ~= s,/,\\,g
|
||||||
|
@ -87,6 +87,7 @@ class DataFooterBand : public BandDesignIntf
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PROPERTY(int columnsCount READ columnsCount WRITE setColumnsCount)
|
Q_PROPERTY(int columnsCount READ columnsCount WRITE setColumnsCount)
|
||||||
|
Q_PROPERTY(bool splittable READ isSplittable WRITE setSplittable)
|
||||||
Q_PROPERTY(BandColumnsLayoutType columnsFillDirection READ columnsFillDirection WRITE setColumnsFillDirection)
|
Q_PROPERTY(BandColumnsLayoutType columnsFillDirection READ columnsFillDirection WRITE setColumnsFillDirection)
|
||||||
Q_PROPERTY(bool printAlways READ printAlways WRITE setPrintAlways)
|
Q_PROPERTY(bool printAlways READ printAlways WRITE setPrintAlways)
|
||||||
public:
|
public:
|
||||||
|
@ -77,6 +77,7 @@ class SubDetailFooterBand : public BandDesignIntf
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PROPERTY(int columnsCount READ columnsCount WRITE setColumnsCount)
|
Q_PROPERTY(int columnsCount READ columnsCount WRITE setColumnsCount)
|
||||||
|
Q_PROPERTY(bool splittable READ isSplittable WRITE setSplittable)
|
||||||
Q_PROPERTY(BandColumnsLayoutType columnsFillDirection READ columnsFillDirection WRITE setColumnsFillDirection)
|
Q_PROPERTY(BandColumnsLayoutType columnsFillDirection READ columnsFillDirection WRITE setColumnsFillDirection)
|
||||||
Q_PROPERTY(bool printAlways READ printAlways() WRITE setPrintAlways())
|
Q_PROPERTY(bool printAlways READ printAlways() WRITE setPrintAlways())
|
||||||
public:
|
public:
|
||||||
|
BIN
limereport/databrowser/images/closed_eye.png
Executable file
BIN
limereport/databrowser/images/closed_eye.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 232 B |
BIN
limereport/databrowser/images/eye.png
Executable file
BIN
limereport/databrowser/images/eye.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 429 B |
@ -118,7 +118,7 @@ ConnectionDesc *ConnectionDialog::uiToConnection(LimeReport::ConnectionDesc* con
|
|||||||
result ->setName(ConnectionDesc::connectionNameForReport(ui->leConnectionName->text()));
|
result ->setName(ConnectionDesc::connectionNameForReport(ui->leConnectionName->text()));
|
||||||
result ->setHost(ui->leServerName->text());
|
result ->setHost(ui->leServerName->text());
|
||||||
if (!ui->lePort->text().isEmpty())
|
if (!ui->lePort->text().isEmpty())
|
||||||
result->setPort(ui->lePort->text().toInt());
|
result->setPort(ui->lePort->text());
|
||||||
result ->setDriver(ui->cbbDrivers->currentText());
|
result ->setDriver(ui->cbbDrivers->currentText());
|
||||||
result ->setUserName(ui->leUserName->text());
|
result ->setUserName(ui->leUserName->text());
|
||||||
result ->setPassword(ui->lePassword->text());
|
result ->setPassword(ui->lePassword->text());
|
||||||
@ -141,7 +141,7 @@ void ConnectionDialog::connectionToUI()
|
|||||||
ui->cbbDrivers->setCurrentIndex(ui->cbbDrivers->findText(m_connection->driver()));
|
ui->cbbDrivers->setCurrentIndex(ui->cbbDrivers->findText(m_connection->driver()));
|
||||||
ui->cbAutoConnect->setChecked(m_connection->autoconnect());
|
ui->cbAutoConnect->setChecked(m_connection->autoconnect());
|
||||||
ui->cbbKeepCredentials->setChecked(!m_connection->keepDBCredentials());
|
ui->cbbKeepCredentials->setChecked(!m_connection->keepDBCredentials());
|
||||||
ui->lePort->setText(m_connection->port()!=-1?QString::number(m_connection->port()):"");
|
ui->lePort->setText(m_connection->port());
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConnectionDialog::on_toolButton_clicked()
|
void ConnectionDialog::on_toolButton_clicked()
|
||||||
@ -160,6 +160,10 @@ void ConnectionDialog::on_cbbUseDefaultConnection_toggled(bool checked)
|
|||||||
ui->leConnectionName->setEnabled(true);
|
ui->leConnectionName->setEnabled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
void ConnectionDialog::on_toolButton_2_toggled(bool checked)
|
||||||
|
{
|
||||||
|
ui->lePassword->setEchoMode(checked ? QLineEdit::Normal : QLineEdit::Password);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace LimeReport
|
} // namespace LimeReport
|
||||||
|
|
||||||
@ -167,3 +171,5 @@ void ConnectionDialog::on_cbbUseDefaultConnection_toggled(bool checked)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -60,6 +60,8 @@ private slots:
|
|||||||
void on_toolButton_clicked();
|
void on_toolButton_clicked();
|
||||||
void on_cbbUseDefaultConnection_toggled(bool checked);
|
void on_cbbUseDefaultConnection_toggled(bool checked);
|
||||||
|
|
||||||
|
void on_toolButton_2_toggled(bool checked);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::ConnectionDialog *ui;
|
Ui::ConnectionDialog *ui;
|
||||||
ConnectionDesc* m_connection;
|
ConnectionDesc* m_connection;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>420</width>
|
<width>420</width>
|
||||||
<height>323</height>
|
<height>365</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
@ -44,7 +44,7 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||||
<item>
|
<item>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
<item>
|
<item>
|
||||||
@ -114,14 +114,39 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLineEdit" name="lePassword">
|
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||||
<property name="text">
|
<property name="spacing">
|
||||||
<string/>
|
<number>2</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="echoMode">
|
<item>
|
||||||
<enum>QLineEdit::Password</enum>
|
<widget class="QLineEdit" name="lePassword">
|
||||||
</property>
|
<property name="text">
|
||||||
</widget>
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="echoMode">
|
||||||
|
<enum>QLineEdit::Password</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="toolButton_2">
|
||||||
|
<property name="focusPolicy">
|
||||||
|
<enum>Qt::ClickFocus</enum>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="lrdatabrowser.qrc">
|
||||||
|
<normaloff>:/databrowser/images/closed_eye.png</normaloff>
|
||||||
|
<normalon>:/databrowser/images/eye.png</normalon>:/databrowser/images/closed_eye.png</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
@ -137,6 +162,9 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QToolButton" name="toolButton">
|
<widget class="QToolButton" name="toolButton">
|
||||||
|
<property name="focusPolicy">
|
||||||
|
<enum>Qt::ClickFocus</enum>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>...</string>
|
<string>...</string>
|
||||||
</property>
|
</property>
|
||||||
@ -158,7 +186,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="cbbKeepCredentials">
|
<widget class="QCheckBox" name="cbbKeepCredentials">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Dont keep credentals in lrxml</string>
|
<string>Don't keep credentials in lrxml</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -221,8 +249,24 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
<tabstops>
|
||||||
|
<tabstop>leConnectionName</tabstop>
|
||||||
|
<tabstop>cbbUseDefaultConnection</tabstop>
|
||||||
|
<tabstop>cbbDrivers</tabstop>
|
||||||
|
<tabstop>leServerName</tabstop>
|
||||||
|
<tabstop>lePort</tabstop>
|
||||||
|
<tabstop>leUserName</tabstop>
|
||||||
|
<tabstop>lePassword</tabstop>
|
||||||
|
<tabstop>leDataBase</tabstop>
|
||||||
|
<tabstop>cbAutoConnect</tabstop>
|
||||||
|
<tabstop>cbbKeepCredentials</tabstop>
|
||||||
|
<tabstop>pbCheckConnection</tabstop>
|
||||||
|
<tabstop>pbCancel</tabstop>
|
||||||
|
<tabstop>pbOk</tabstop>
|
||||||
|
</tabstops>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="lrdatabrowser.qrc"/>
|
<include location="lrdatabrowser.qrc"/>
|
||||||
|
<include location="lrdatabrowser.qrc"/>
|
||||||
</resources>
|
</resources>
|
||||||
<connections>
|
<connections>
|
||||||
<connection>
|
<connection>
|
||||||
|
@ -677,7 +677,7 @@ SQLEditResult::ResultMode DataBrowser::currentDatasourceType(const QString& data
|
|||||||
|
|
||||||
void DataBrowser::applyChanges(SQLEditResult result)
|
void DataBrowser::applyChanges(SQLEditResult result)
|
||||||
{
|
{
|
||||||
if (result.resultMode == currentDatasourceType(result.datasourceName)){
|
if (result.resultMode == currentDatasourceType(result.oldDatasourceName)){
|
||||||
switch(result.resultMode){
|
switch(result.resultMode){
|
||||||
case SQLEditResult::Query:
|
case SQLEditResult::Query:
|
||||||
changeQuery(result);
|
changeQuery(result);
|
||||||
@ -694,7 +694,7 @@ void DataBrowser::applyChanges(SQLEditResult result)
|
|||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
removeDatasource(result.datasourceName);
|
removeDatasource(result.oldDatasourceName);
|
||||||
addDatasource(result);
|
addDatasource(result);
|
||||||
}
|
}
|
||||||
activateItem(result.datasourceName, DataBrowserTree::Table);
|
activateItem(result.datasourceName, DataBrowserTree::Table);
|
||||||
|
@ -44,5 +44,7 @@
|
|||||||
<file alias="/images/value_edit">images/value_edit2.png</file>
|
<file alias="/images/value_edit">images/value_edit2.png</file>
|
||||||
<file alias="/images/value">images/value1.png</file>
|
<file alias="/images/value">images/value1.png</file>
|
||||||
<file alias="/images/varToReport">images/varToReport.png</file>
|
<file alias="/images/varToReport">images/varToReport.png</file>
|
||||||
|
<file>images/eye.png</file>
|
||||||
|
<file>images/closed_eye.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
@ -28,6 +28,8 @@ void HorizontalBarChart::paintChart(QPainter *painter, QRectF chartRect)
|
|||||||
|
|
||||||
void HorizontalBarChart::paintHorizontalBars(QPainter *painter, QRectF barsRect)
|
void HorizontalBarChart::paintHorizontalBars(QPainter *painter, QRectF barsRect)
|
||||||
{
|
{
|
||||||
|
if (seriesCount() == 0) return;
|
||||||
|
|
||||||
painter->save();
|
painter->save();
|
||||||
painter->setRenderHint(QPainter::Antialiasing,false);
|
painter->setRenderHint(QPainter::Antialiasing,false);
|
||||||
int delta = int(maxValue()-minValue());
|
int delta = int(maxValue()-minValue());
|
||||||
|
@ -65,6 +65,8 @@ void LinesChart::drawDesignMode(QPainter* painter, qreal hStep, qreal vStep, qre
|
|||||||
|
|
||||||
void LinesChart::paintSerialLines(QPainter* painter, QRectF barsRect)
|
void LinesChart::paintSerialLines(QPainter* painter, QRectF barsRect)
|
||||||
{
|
{
|
||||||
|
if (valuesCount() == 0) return;
|
||||||
|
|
||||||
painter->save();
|
painter->save();
|
||||||
painter->setRenderHint(QPainter::Antialiasing,true);
|
painter->setRenderHint(QPainter::Antialiasing,true);
|
||||||
int delta = int(maxValue() - minValue());
|
int delta = int(maxValue() - minValue());
|
||||||
|
@ -70,7 +70,7 @@ void PieChart::paintChart(QPainter *painter, QRectF chartRect)
|
|||||||
drawPercent(painter, chartRect, currentDegree, sectorDegree);
|
drawPercent(painter, chartRect, currentDegree, sectorDegree);
|
||||||
currentDegree += sectorDegree;
|
currentDegree += sectorDegree;
|
||||||
}
|
}
|
||||||
} else {
|
} else if (m_chartItem->itemMode() == DesignMode){
|
||||||
painter->setBrush(color_map[0]);
|
painter->setBrush(color_map[0]);
|
||||||
painter->drawPie(chartRect,0,260*16);
|
painter->drawPie(chartRect,0,260*16);
|
||||||
drawPercent(painter, chartRect, 0, 260);
|
drawPercent(painter, chartRect, 0, 260);
|
||||||
@ -122,7 +122,7 @@ void PieChart::paintChartLegend(QPainter *painter, QRectF legendRect)
|
|||||||
);
|
);
|
||||||
cw += painter->fontMetrics().height();
|
cw += painter->fontMetrics().height();
|
||||||
}
|
}
|
||||||
} else {
|
} else if (m_chartItem->itemMode() == DesignMode){
|
||||||
qreal cw = 0;
|
qreal cw = 0;
|
||||||
for (int i=0;i<m_designLabels.size();++i){
|
for (int i=0;i<m_designLabels.size();++i){
|
||||||
QString label = m_designLabels.at(i);
|
QString label = m_designLabels.at(i);
|
||||||
|
@ -47,6 +47,8 @@ void VerticalBarChart::paintChart(QPainter *painter, QRectF chartRect)
|
|||||||
void VerticalBarChart::paintVerticalBars(QPainter *painter, QRectF barsRect)
|
void VerticalBarChart::paintVerticalBars(QPainter *painter, QRectF barsRect)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (valuesCount() == 0) return;
|
||||||
|
|
||||||
int delta = int(maxValue() - minValue());
|
int delta = int(maxValue() - minValue());
|
||||||
delta = genNextValue(delta);
|
delta = genNextValue(delta);
|
||||||
|
|
||||||
@ -64,6 +66,8 @@ void VerticalBarChart::paintVerticalBars(QPainter *painter, QRectF barsRect)
|
|||||||
qreal hStep = (barsRect.width() / valuesCount()) / (barSeriesCount == 0 ? 1 : barSeriesCount);
|
qreal hStep = (barsRect.width() / valuesCount()) / (barSeriesCount == 0 ? 1 : barSeriesCount);
|
||||||
qreal topShift = (delta - (maxValue() - minValue())) * vStep + barsRect.top();
|
qreal topShift = (delta - (maxValue() - minValue())) * vStep + barsRect.top();
|
||||||
|
|
||||||
|
qDebug() << "vStep" << vStep << "hStep" << hStep;
|
||||||
|
|
||||||
if (!m_chartItem->series().isEmpty() && (m_chartItem->itemMode() != DesignMode)){
|
if (!m_chartItem->series().isEmpty() && (m_chartItem->itemMode() != DesignMode)){
|
||||||
int curSeries = 0;
|
int curSeries = 0;
|
||||||
foreach (SeriesItem* series, m_chartItem->series()) {
|
foreach (SeriesItem* series, m_chartItem->series()) {
|
||||||
@ -93,6 +97,8 @@ void VerticalBarChart::paintVerticalBars(QPainter *painter, QRectF barsRect)
|
|||||||
|
|
||||||
void VerticalBarChart::paintSerialLines(QPainter* painter, QRectF barsRect)
|
void VerticalBarChart::paintSerialLines(QPainter* painter, QRectF barsRect)
|
||||||
{
|
{
|
||||||
|
if (valuesCount() == 0 ) return;
|
||||||
|
|
||||||
painter->save();
|
painter->save();
|
||||||
painter->setRenderHint(QPainter::Antialiasing,true);
|
painter->setRenderHint(QPainter::Antialiasing,true);
|
||||||
int delta = int(maxValue() - minValue());
|
int delta = int(maxValue() - minValue());
|
||||||
|
@ -160,7 +160,10 @@ QString AlignmentItemEditor::displayValue() const
|
|||||||
|
|
||||||
void AlignmentItemEditor::setPropertyValue(QVariant value)
|
void AlignmentItemEditor::setPropertyValue(QVariant value)
|
||||||
{
|
{
|
||||||
ObjectPropItem::setPropertyValue(extractAcceptableValue(value.toInt())[0]);
|
QVector<int> _accpepttableValueList= extractAcceptableValue(value.toInt());
|
||||||
|
if(_accpepttableValueList.isEmpty()) return;
|
||||||
|
|
||||||
|
ObjectPropItem::setPropertyValue(_accpepttableValueList[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -333,6 +333,13 @@ bool BarcodeItem::isEmpty() const
|
|||||||
return m_content.isEmpty();
|
return m_content.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BarcodeItem::expandContent(QString data, DataSourceManager* dataManager, RenderPass pass)
|
||||||
|
{
|
||||||
|
setContent(expandUserVariables(data, pass, NoEscapeSymbols, dataManager));
|
||||||
|
setContent(expandScripts(content(), dataManager));
|
||||||
|
setContent(expandDataFields(content(), NoEscapeSymbols, dataManager));
|
||||||
|
}
|
||||||
|
|
||||||
void BarcodeItem::updateItemSize(DataSourceManager* dataManager, RenderPass pass, int maxHeight)
|
void BarcodeItem::updateItemSize(DataSourceManager* dataManager, RenderPass pass, int maxHeight)
|
||||||
{
|
{
|
||||||
if (content().isEmpty())
|
if (content().isEmpty())
|
||||||
@ -346,21 +353,19 @@ void BarcodeItem::updateItemSize(DataSourceManager* dataManager, RenderPass pass
|
|||||||
if (data.isValid())
|
if (data.isValid())
|
||||||
{
|
{
|
||||||
switch(pass)
|
switch(pass)
|
||||||
{
|
{
|
||||||
case FirstPass:
|
case FirstPass:
|
||||||
setContent(expandUserVariables(data.toString(),pass,NoEscapeSymbols, dataManager));
|
expandContent(data.toString(), dataManager, pass);
|
||||||
setContent(expandDataFields(data.toString(), NoEscapeSymbols, dataManager));
|
break;
|
||||||
break;
|
default:;
|
||||||
default:;
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
switch(pass){
|
switch(pass){
|
||||||
case FirstPass:
|
case FirstPass:
|
||||||
setContent(expandUserVariables(content(),pass,NoEscapeSymbols, dataManager));
|
expandContent(content(), dataManager, pass);
|
||||||
setContent(expandDataFields(content(), NoEscapeSymbols, dataManager));
|
|
||||||
break;
|
break;
|
||||||
default:;
|
default:;
|
||||||
}
|
}
|
||||||
|
@ -191,20 +191,19 @@ public:
|
|||||||
void setSecurityLevel(int securityLevel);
|
void setSecurityLevel(int securityLevel);
|
||||||
int pdf417CodeWords() const;
|
int pdf417CodeWords() const;
|
||||||
void setPdf417CodeWords(int pdf417CodeWords);
|
void setPdf417CodeWords(int pdf417CodeWords);
|
||||||
|
|
||||||
InputMode inputMode() const;
|
InputMode inputMode() const;
|
||||||
void setInputMode(const InputMode &inputMode);
|
void setInputMode(const InputMode &inputMode);
|
||||||
|
|
||||||
bool hideText() const;
|
bool hideText() const;
|
||||||
void setHideText(bool hideText);
|
void setHideText(bool hideText);
|
||||||
|
|
||||||
int option3() const;
|
int option3() const;
|
||||||
void setOption3(int option3);
|
void setOption3(int option3);
|
||||||
|
|
||||||
bool hideIfEmpty() const;
|
bool hideIfEmpty() const;
|
||||||
void setHideIfEmpty(bool hideIfEmpty);
|
void setHideIfEmpty(bool hideIfEmpty);
|
||||||
bool isEmpty() const;
|
bool isEmpty() const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
void expandContent(QString data, DataSourceManager *dataManager, RenderPass pass);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString m_content;
|
QString m_content;
|
||||||
QString m_datasource;
|
QString m_datasource;
|
||||||
|
@ -584,7 +584,10 @@ QSizeF AbstractSeriesChart::calcChartLegendSize(const QFont &font)
|
|||||||
return QSizeF(maxWidth+fm.height()*2,cw);
|
return QSizeF(maxWidth+fm.height()*2,cw);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AbstractSeriesChart::verticalLabels(QPainter* painter, QRectF labelsRect){
|
bool AbstractSeriesChart::verticalLabels(QPainter* painter, QRectF labelsRect)
|
||||||
|
{
|
||||||
|
if (valuesCount() == 0) return false;
|
||||||
|
|
||||||
qreal hStep = (labelsRect.width() / valuesCount());
|
qreal hStep = (labelsRect.width() / valuesCount());
|
||||||
QFontMetrics fm = painter->fontMetrics();
|
QFontMetrics fm = painter->fontMetrics();
|
||||||
foreach(QString label, m_chartItem->labels()){
|
foreach(QString label, m_chartItem->labels()){
|
||||||
@ -597,6 +600,8 @@ bool AbstractSeriesChart::verticalLabels(QPainter* painter, QRectF labelsRect){
|
|||||||
|
|
||||||
void AbstractSeriesChart::paintHorizontalLabels(QPainter *painter, QRectF labelsRect)
|
void AbstractSeriesChart::paintHorizontalLabels(QPainter *painter, QRectF labelsRect)
|
||||||
{
|
{
|
||||||
|
if (valuesCount() == 0) return;
|
||||||
|
|
||||||
painter->save();
|
painter->save();
|
||||||
qreal hStep = (labelsRect.width() / valuesCount());
|
qreal hStep = (labelsRect.width() / valuesCount());
|
||||||
if (!m_chartItem->labels().isEmpty()){
|
if (!m_chartItem->labels().isEmpty()){
|
||||||
@ -623,6 +628,8 @@ void AbstractSeriesChart::paintHorizontalLabels(QPainter *painter, QRectF labels
|
|||||||
|
|
||||||
void AbstractSeriesChart::paintVerticalLabels(QPainter *painter, QRectF labelsRect)
|
void AbstractSeriesChart::paintVerticalLabels(QPainter *painter, QRectF labelsRect)
|
||||||
{
|
{
|
||||||
|
if (valuesCount() == 0) return;
|
||||||
|
|
||||||
painter->save();
|
painter->save();
|
||||||
painter->setFont(adaptLabelsFont(labelsRect.adjusted(0, 0, -hPadding(m_chartItem->rect()), 0),
|
painter->setFont(adaptLabelsFont(labelsRect.adjusted(0, 0, -hPadding(m_chartItem->rect()), 0),
|
||||||
painter->font()));
|
painter->font()));
|
||||||
@ -771,7 +778,7 @@ void AbstractBarChart::paintChartLegend(QPainter *painter, QRectF legendRect)
|
|||||||
);
|
);
|
||||||
cw += painter->fontMetrics().height();
|
cw += painter->fontMetrics().height();
|
||||||
}
|
}
|
||||||
} else {
|
} else if (m_chartItem->itemMode() == DesignMode){
|
||||||
qreal cw = 0;
|
qreal cw = 0;
|
||||||
for (int i=0;i<m_designLabels.size();++i){
|
for (int i=0;i<m_designLabels.size();++i){
|
||||||
QString label = m_designLabels.at(i);
|
QString label = m_designLabels.at(i);
|
||||||
|
@ -116,20 +116,14 @@ BaseDesignIntf* VerticalLayout::cloneBottomPart(int height, QObject* owner, QGra
|
|||||||
bottomPart->initFromItem(this);
|
bottomPart->initFromItem(this);
|
||||||
|
|
||||||
foreach(BaseDesignIntf* item,childBaseItems()){
|
foreach(BaseDesignIntf* item,childBaseItems()){
|
||||||
if ((item->geometry().top() < height) && ( item->geometry().bottom() > height )){
|
if (item->geometry().bottom() > height){
|
||||||
int sliceHeight = height - item->geometry().top();
|
int sliceHeight = height - item->geometry().top();
|
||||||
if (item->canBeSplitted(sliceHeight)){
|
if ((item->geometry().top() < height) && (item->canBeSplitted(sliceHeight))){
|
||||||
BaseDesignIntf* tmpItem = item->cloneBottomPart(sliceHeight, bottomPart, bottomPart);
|
BaseDesignIntf* tmpItem = item->cloneBottomPart(sliceHeight, bottomPart, bottomPart);
|
||||||
tmpItem->setPos(tmpItem->pos().x(),0);
|
|
||||||
tmpItem->setHeight(sliceHeight);
|
tmpItem->setHeight(sliceHeight);
|
||||||
|
bottomPart->addChild(tmpItem);
|
||||||
} else {
|
} else {
|
||||||
item->cloneItem(item->itemMode(), bottomPart, bottomPart);
|
bottomPart->addChild(item->cloneItem(item->itemMode(), bottomPart, bottomPart));
|
||||||
item->setPos(item->pos().x(), 0);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (item->geometry().top() >= height){
|
|
||||||
BaseDesignIntf* tmpItem = item->cloneItem(item->itemMode(), bottomPart, bottomPart);
|
|
||||||
tmpItem->setPos(item->pos().x(), item->pos().y() - height);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,28 +47,28 @@ include(limereport.pri)
|
|||||||
unix:{
|
unix:{
|
||||||
DESTDIR = $${DEST_LIBS}
|
DESTDIR = $${DEST_LIBS}
|
||||||
linux{
|
linux{
|
||||||
QMAKE_POST_LINK += mkdir -p $$quote($${DEST_INCLUDE_DIR}) $$escape_expand(\\n\\t) # qmake need make mkdir -p on subdirs more than root/
|
QMAKE_POST_LINK += mkdir -p \"$${DEST_INCLUDE_DIR}\" $$escape_expand(\\n\\t) # qmake need make mkdir -p on subdirs more than root/
|
||||||
for(FILE,EXTRA_FILES){
|
for(FILE,EXTRA_FILES){
|
||||||
QMAKE_POST_LINK += $$QMAKE_COPY $$quote($$FILE) $$quote($${DEST_INCLUDE_DIR}) $$escape_expand(\\n\\t) # inside of libs make /include/files
|
QMAKE_POST_LINK += $$QMAKE_COPY \"$$FILE\" \"$${DEST_INCLUDE_DIR}\" $$escape_expand(\\n\\t) # inside of libs make /include/files
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
macx{
|
macx{
|
||||||
for(FILE,EXTRA_FILES){
|
for(FILE,EXTRA_FILES){
|
||||||
QMAKE_POST_LINK += $$QMAKE_COPY $$quote($$FILE) $$quote($${DEST_INCLUDE_DIR}) $$escape_expand(\\n\\t)
|
QMAKE_POST_LINK += $$QMAKE_COPY \"$$FILE\" \"$${DEST_INCLUDE_DIR}\" $$escape_expand(\\n\\t)
|
||||||
}
|
}
|
||||||
QMAKE_POST_LINK += mkdir -p $$quote($${DESTDIR}/include) $$escape_expand(\\n\\t)
|
QMAKE_POST_LINK += mkdir -p \"$${DESTDIR}/include\" $$escape_expand(\\n\\t)
|
||||||
}
|
}
|
||||||
QMAKE_POST_LINK += $$QMAKE_COPY_DIR $$quote($${DEST_INCLUDE_DIR}) $$quote($${DESTDIR})
|
QMAKE_POST_LINK += $$QMAKE_COPY_DIR \"$${DEST_INCLUDE_DIR}\" \"$${DESTDIR}\"
|
||||||
}
|
}
|
||||||
|
|
||||||
win32 {
|
win32 {
|
||||||
DESTDIR = $${DEST_LIBS}
|
DESTDIR = $${DEST_LIBS}
|
||||||
contains(QMAKE_HOST.os, Linux){
|
contains(QMAKE_HOST.os, Linux){
|
||||||
QMAKE_POST_LINK += mkdir -p $$quote($${DEST_INCLUDE_DIR}) $$escape_expand(\\n\\t) # qmake need make mkdir -p on subdirs more than root/
|
QMAKE_POST_LINK += mkdir -p \"$${DEST_INCLUDE_DIR}\" $$escape_expand(\\n\\t) # qmake need make mkdir -p on subdirs more than root/
|
||||||
for(FILE,EXTRA_FILES){
|
for(FILE,EXTRA_FILES){
|
||||||
QMAKE_POST_LINK += $$QMAKE_COPY $$quote($$FILE) $$quote($${DEST_INCLUDE_DIR}) $$escape_expand(\\n\\t) # inside of libs make /include/files
|
QMAKE_POST_LINK += $$QMAKE_COPY \"$$FILE\" \"$${DEST_INCLUDE_DIR}\" $$escape_expand(\\n\\t) # inside of libs make /include/files
|
||||||
}
|
}
|
||||||
QMAKE_POST_LINK += $$QMAKE_COPY_DIR $$quote($${DEST_INCLUDE_DIR}) $$quote($${DESTDIR})
|
QMAKE_POST_LINK += $$QMAKE_COPY_DIR \"$${DEST_INCLUDE_DIR}\" \"$${DESTDIR}\"
|
||||||
} else {
|
} else {
|
||||||
EXTRA_FILES ~= s,/,\\,g
|
EXTRA_FILES ~= s,/,\\,g
|
||||||
BUILD_DIR ~= s,/,\\,g
|
BUILD_DIR ~= s,/,\\,g
|
||||||
@ -121,20 +121,13 @@ contains(CONFIG,build_translations){
|
|||||||
TRANSLATIONS = $$prependAll(LANGUAGES, \"$$TRANSLATIONS_PATH/limereport_,.ts\")
|
TRANSLATIONS = $$prependAll(LANGUAGES, \"$$TRANSLATIONS_PATH/limereport_,.ts\")
|
||||||
|
|
||||||
qtPrepareTool(LUPDATE, lupdate)
|
qtPrepareTool(LUPDATE, lupdate)
|
||||||
|
ts.commands = $$LUPDATE \"$$PWD\" -noobsolete -ts $$TRANSLATIONS
|
||||||
greaterThan(QT_MAJOR_VERSION, 4) {
|
|
||||||
ts.commands = $$LUPDATE $$shell_quote($$PWD) -noobsolete -ts $$TRANSLATIONS
|
|
||||||
}
|
|
||||||
lessThan(QT_MAJOR_VERSION, 5){
|
|
||||||
ts.commands = $$LUPDATE $$quote($$PWD) -noobsolete -ts $$TRANSLATIONS
|
|
||||||
}
|
|
||||||
TRANSLATIONS_FILES =
|
TRANSLATIONS_FILES =
|
||||||
qtPrepareTool(LRELEASE, lrelease)
|
qtPrepareTool(LRELEASE, lrelease)
|
||||||
for(tsfile, TRANSLATIONS) {
|
for(tsfile, TRANSLATIONS) {
|
||||||
qmfile = $$tsfile
|
qmfile = $$tsfile
|
||||||
qmfile ~= s,".ts\"$",".qm\"",
|
qmfile ~= s,".ts\"$",".qm\"",
|
||||||
qm.commands += $$LRELEASE -removeidentical $$tsfile -qm $$qmfile $$escape_expand(\\n\\t)
|
qm.commands += $$LRELEASE -removeidentical $$tsfile -qm $$qmfile $$escape_expand(\\n\\t)
|
||||||
tmp_command = $$LRELEASE -removeidentical $$tsfile -qm $$qmfile $$escape_expand(\\n\\t)
|
|
||||||
TRANSLATIONS_FILES += $$qmfile
|
TRANSLATIONS_FILES += $$qmfile
|
||||||
}
|
}
|
||||||
qm.depends = ts
|
qm.depends = ts
|
||||||
|
@ -273,6 +273,12 @@ void BandDesignIntf::setPpm(int ppm)
|
|||||||
updateBandMarkerGeometry(QRectF(pos(),size()));
|
updateBandMarkerGeometry(QRectF(pos(),size()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BandDesignIntf::copyBandAttributes(BandDesignIntf *source)
|
||||||
|
{
|
||||||
|
this->copyBookmarks(source);
|
||||||
|
this->setBackgroundColor(source->backgroundColor());
|
||||||
|
}
|
||||||
|
|
||||||
void BandDesignIntf::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
|
void BandDesignIntf::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
|
||||||
{
|
{
|
||||||
prepareRect(painter, option, widget);
|
prepareRect(painter, option, widget);
|
||||||
@ -776,6 +782,11 @@ void BandDesignIntf::emitBandRendered(BandDesignIntf* band)
|
|||||||
emit bandRendered(band);
|
emit bandRendered(band);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BandDesignIntf::emitBandReRendered(BandDesignIntf *oldBand, BandDesignIntf *newBand)
|
||||||
|
{
|
||||||
|
emit bandReRendered(oldBand, newBand);
|
||||||
|
}
|
||||||
|
|
||||||
void BandDesignIntf::setSplittable(bool value){
|
void BandDesignIntf::setSplittable(bool value){
|
||||||
if (m_splitable!=value){
|
if (m_splitable!=value){
|
||||||
bool oldValue = m_splitable;
|
bool oldValue = m_splitable;
|
||||||
|
@ -219,6 +219,7 @@ public:
|
|||||||
void parentObjectLoadFinished();
|
void parentObjectLoadFinished();
|
||||||
void finishLoading();
|
void finishLoading();
|
||||||
void emitBandRendered(BandDesignIntf *band);
|
void emitBandRendered(BandDesignIntf *band);
|
||||||
|
void emitBandReRendered(BandDesignIntf* oldBand, BandDesignIntf* newBand);
|
||||||
|
|
||||||
bool isSplittable() const {return m_splitable;}
|
bool isSplittable() const {return m_splitable;}
|
||||||
void setSplittable(bool value);
|
void setSplittable(bool value);
|
||||||
@ -255,6 +256,7 @@ public:
|
|||||||
bool startFromNewPage() const;
|
bool startFromNewPage() const;
|
||||||
void setStartFromNewPage(bool startFromNewPage);
|
void setStartFromNewPage(bool startFromNewPage);
|
||||||
bool canContainChildren() const{ return true;}
|
bool canContainChildren() const{ return true;}
|
||||||
|
bool canAcceptPaste() const{ return true;}
|
||||||
bool printAlways() const;
|
bool printAlways() const;
|
||||||
void setPrintAlways(bool printAlways);
|
void setPrintAlways(bool printAlways);
|
||||||
bool repeatOnEachRow() const;
|
bool repeatOnEachRow() const;
|
||||||
@ -281,8 +283,10 @@ public:
|
|||||||
void setPaddingBottom(int paddingBottom);
|
void setPaddingBottom(int paddingBottom);
|
||||||
|
|
||||||
QRectF boundingRect() const;
|
QRectF boundingRect() const;
|
||||||
|
void copyBandAttributes(BandDesignIntf* source);
|
||||||
signals:
|
signals:
|
||||||
void bandRendered(BandDesignIntf* band);
|
void bandRendered(BandDesignIntf* band);
|
||||||
|
void bandReRendered(BandDesignIntf* oldBand, BandDesignIntf* newBand);
|
||||||
void preparedForRender();
|
void preparedForRender();
|
||||||
void bandRegistred();
|
void bandRegistred();
|
||||||
protected:
|
protected:
|
||||||
|
@ -87,6 +87,8 @@ BaseDesignIntf::BaseDesignIntf(const QString &storageTypeName, QObject *owner, Q
|
|||||||
m_itemGeometryLocked(false),
|
m_itemGeometryLocked(false),
|
||||||
m_isChangingPos(false),
|
m_isChangingPos(false),
|
||||||
m_ppm(Const::STORAGE_MM_FACTOR)
|
m_ppm(Const::STORAGE_MM_FACTOR)
|
||||||
|
m_isMoveable(false)
|
||||||
|
|
||||||
{
|
{
|
||||||
setGeometry(QRectF(0, 0, m_width, m_height));
|
setGeometry(QRectF(0, 0, m_width, m_height));
|
||||||
if (BaseDesignIntf *item = dynamic_cast<BaseDesignIntf *>(parent)) {
|
if (BaseDesignIntf *item = dynamic_cast<BaseDesignIntf *>(parent)) {
|
||||||
@ -390,6 +392,10 @@ void BaseDesignIntf::setFixedPos(bool fixedPos)
|
|||||||
m_fixedPos = fixedPos;
|
m_fixedPos = fixedPos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BaseDesignIntf::onChangeGeometryTimeOut(){
|
||||||
|
m_isMoveable = true;
|
||||||
|
}
|
||||||
|
|
||||||
void BaseDesignIntf::mousePressEvent(QGraphicsSceneMouseEvent *event)
|
void BaseDesignIntf::mousePressEvent(QGraphicsSceneMouseEvent *event)
|
||||||
{
|
{
|
||||||
if (event->button() == Qt::LeftButton) {
|
if (event->button() == Qt::LeftButton) {
|
||||||
@ -398,7 +404,9 @@ void BaseDesignIntf::mousePressEvent(QGraphicsSceneMouseEvent *event)
|
|||||||
m_startPos = pos();
|
m_startPos = pos();
|
||||||
m_oldGeometry = geometry();
|
m_oldGeometry = geometry();
|
||||||
QGraphicsItem::mousePressEvent(event);
|
QGraphicsItem::mousePressEvent(event);
|
||||||
emit(itemSelected(this));
|
emit itemSelected(this);
|
||||||
|
m_isMoveable = false;
|
||||||
|
QTimer::singleShot(200, this, SLOT(onChangeGeometryTimeOut()));
|
||||||
}
|
}
|
||||||
else QGraphicsItem::mousePressEvent(event);
|
else QGraphicsItem::mousePressEvent(event);
|
||||||
}
|
}
|
||||||
@ -527,6 +535,7 @@ void BaseDesignIntf::hoverEnterEvent(QGraphicsSceneHoverEvent* /*event*/)
|
|||||||
|
|
||||||
void BaseDesignIntf::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
|
void BaseDesignIntf::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
|
||||||
{
|
{
|
||||||
|
if (!m_isMoveable) return;
|
||||||
if (!isSelected()){
|
if (!isSelected()){
|
||||||
QGraphicsItem::mouseMoveEvent(event);
|
QGraphicsItem::mouseMoveEvent(event);
|
||||||
return;
|
return;
|
||||||
|
@ -324,6 +324,7 @@ public:
|
|||||||
void setBorderColor(const QColor &borderColor);
|
void setBorderColor(const QColor &borderColor);
|
||||||
void setItemVisible(const bool& value);
|
void setItemVisible(const bool& value);
|
||||||
virtual bool canContainChildren() const { return false;}
|
virtual bool canContainChildren() const { return false;}
|
||||||
|
virtual bool canAcceptPaste() const{ return false;}
|
||||||
ReportSettings* reportSettings() const;
|
ReportSettings* reportSettings() const;
|
||||||
void setReportSettings(ReportSettings *reportSettings);
|
void setReportSettings(ReportSettings *reportSettings);
|
||||||
void setZValueProperty(qreal value);
|
void setZValueProperty(qreal value);
|
||||||
@ -338,6 +339,15 @@ public:
|
|||||||
virtual void setWatermark(bool watermark);
|
virtual void setWatermark(bool watermark);
|
||||||
void updateSelectionMarker();
|
void updateSelectionMarker();
|
||||||
void turnOnSelectionMarker(bool value);
|
void turnOnSelectionMarker(bool value);
|
||||||
|
bool fillTransparentInDesignMode() const;
|
||||||
|
void setFillTransparentInDesignMode(bool fillTransparentInDesignMode);
|
||||||
|
void emitPosChanged(QPointF oldPos, QPointF newPos);
|
||||||
|
void emitObjectNamePropertyChanged(const QString& oldName, const QString& newName);
|
||||||
|
bool isGeometryLocked() const;
|
||||||
|
void setGeometryLocked(bool itemLocked);
|
||||||
|
bool isChangingPos() const;
|
||||||
|
void setIsChangingPos(bool isChangingPos);
|
||||||
|
|
||||||
Q_INVOKABLE QString setItemWidth(qreal width);
|
Q_INVOKABLE QString setItemWidth(qreal width);
|
||||||
Q_INVOKABLE QString setItemHeight(qreal height);
|
Q_INVOKABLE QString setItemHeight(qreal height);
|
||||||
Q_INVOKABLE qreal getItemWidth();
|
Q_INVOKABLE qreal getItemWidth();
|
||||||
@ -434,6 +444,10 @@ private:
|
|||||||
void moveSelectedItems(QPointF delta);
|
void moveSelectedItems(QPointF delta);
|
||||||
Qt::CursorShape getPossibleCursor(int cursorFlags);
|
Qt::CursorShape getPossibleCursor(int cursorFlags);
|
||||||
void updatePossibleDirectionFlags();
|
void updatePossibleDirectionFlags();
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void onChangeGeometryTimeOut();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QPointF m_startPos;
|
QPointF m_startPos;
|
||||||
int m_resizeHandleSize;
|
int m_resizeHandleSize;
|
||||||
@ -495,19 +509,21 @@ private:
|
|||||||
bool m_itemGeometryLocked;
|
bool m_itemGeometryLocked;
|
||||||
bool m_isChangingPos;
|
bool m_isChangingPos;
|
||||||
int m_ppm;
|
int m_ppm;
|
||||||
|
bool m_isMoveable;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void geometryChanged(QObject* object, QRectF newGeometry, QRectF oldGeometry);
|
void geometryChanged(QObject* object, QRectF newGeometry, QRectF oldGeometry);
|
||||||
void posChanging(QObject* object, QPointF newPos, QPointF oldPos);
|
void posChanging(QObject* object, QPointF newPos, QPointF oldPos);
|
||||||
void posChanged(QObject* object, QPointF newPos, QPointF oldPos);
|
void posChanged(QObject* object, QPointF newPos, QPointF oldPos);
|
||||||
void itemSelected(LimeReport::BaseDesignIntf *item);
|
void itemSelected(LimeReport::BaseDesignIntf *item);
|
||||||
void itemSelectedHasBeenChanged(BaseDesignIntf *item, bool value);
|
void itemSelectedHasBeenChanged(LimeReport::BaseDesignIntf *item, bool value);
|
||||||
void loadCollectionFinished(const QString& collectionName);
|
void loadCollectionFinished(const QString& collectionName);
|
||||||
void objectLoaded(QObject* object);
|
void objectLoaded(QObject* object);
|
||||||
void objectChanged(QObject* object);
|
void objectChanged(QObject* object);
|
||||||
void propertyChanged(const QString& propertName, const QVariant& oldValue,const QVariant& newValue);
|
void propertyChanged(const QString& propertName, const QVariant& oldValue,const QVariant& newValue);
|
||||||
void propertyObjectNameChanged(const QString& oldValue, const QString& newValue);
|
void propertyObjectNameChanged(const QString& oldValue, const QString& newValue);
|
||||||
void propertyesChanged(QVector<QString> propertyNames);
|
void propertyesChanged(QVector<QString> propertyNames);
|
||||||
void itemAlignChanged(BaseDesignIntf* item, const ItemAlign& oldValue, const ItemAlign& newValue);
|
void itemAlignChanged(BaseDesignIntf* item, const BaseDesignIntf::ItemAlign& oldValue, const BaseDesignIntf::ItemAlign& newValue);
|
||||||
void itemVisibleHasChanged(BaseDesignIntf* item);
|
void itemVisibleHasChanged(BaseDesignIntf* item);
|
||||||
void beforeRender();
|
void beforeRender();
|
||||||
void afterData();
|
void afterData();
|
||||||
|
@ -336,13 +336,13 @@ void ModelToDataSource::slotModelDestroed()
|
|||||||
|
|
||||||
ConnectionDesc::ConnectionDesc(QSqlDatabase db, QObject *parent)
|
ConnectionDesc::ConnectionDesc(QSqlDatabase db, QObject *parent)
|
||||||
: QObject(parent), m_connectionName(db.connectionName()), m_connectionHost(db.hostName()), m_connectionDriver(db.driverName()),
|
: QObject(parent), m_connectionName(db.connectionName()), m_connectionHost(db.hostName()), m_connectionDriver(db.driverName()),
|
||||||
m_databaseName(db.databaseName()), m_user(db.userName()), m_password(db.password()), m_port(-1), m_autoconnect(false),
|
m_databaseName(db.databaseName()), m_user(db.userName()), m_password(db.password()), m_port(""), m_autoconnect(false),
|
||||||
m_internal(false), m_keepDBCredentials(true)
|
m_internal(false), m_keepDBCredentials(true)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
ConnectionDesc::ConnectionDesc(QObject *parent)
|
ConnectionDesc::ConnectionDesc(QObject *parent)
|
||||||
:QObject(parent),m_connectionName(""),m_connectionHost(""), m_connectionDriver(""),
|
:QObject(parent),m_connectionName(""),m_connectionHost(""), m_connectionDriver(""),
|
||||||
m_databaseName(""), m_user(""), m_password(""), m_port(-1), m_autoconnect(false),
|
m_databaseName(""), m_user(""), m_password(""), m_port(""), m_autoconnect(false),
|
||||||
m_internal(false), m_keepDBCredentials(true)
|
m_internal(false), m_keepDBCredentials(true)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@ -377,12 +377,12 @@ QString ConnectionDesc::connectionNameForReport(const QString &connectionName)
|
|||||||
return connectionName.compare(tr("defaultConnection")) == 0 ? QSqlDatabase::defaultConnection : connectionName;
|
return connectionName.compare(tr("defaultConnection")) == 0 ? QSqlDatabase::defaultConnection : connectionName;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ConnectionDesc::port() const
|
QString ConnectionDesc::port() const
|
||||||
{
|
{
|
||||||
return m_port;
|
return m_port;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConnectionDesc::setPort(int port)
|
void ConnectionDesc::setPort(QString port)
|
||||||
{
|
{
|
||||||
m_port = port;
|
m_port = port;
|
||||||
}
|
}
|
||||||
|
@ -78,7 +78,7 @@ class ConnectionDesc : public QObject{
|
|||||||
Q_PROPERTY(QString host READ host WRITE setHost)
|
Q_PROPERTY(QString host READ host WRITE setHost)
|
||||||
Q_PROPERTY(bool autoconnect READ autoconnect WRITE setAutoconnect)
|
Q_PROPERTY(bool autoconnect READ autoconnect WRITE setAutoconnect)
|
||||||
Q_PROPERTY(bool keepDBCredentials READ keepDBCredentials WRITE setKeepDBCredentials)
|
Q_PROPERTY(bool keepDBCredentials READ keepDBCredentials WRITE setKeepDBCredentials)
|
||||||
Q_PROPERTY(int port READ port WRITE setPort)
|
Q_PROPERTY(QString port READ port WRITE setPort)
|
||||||
public:
|
public:
|
||||||
typedef QSharedPointer<ConnectionDesc> Ptr;
|
typedef QSharedPointer<ConnectionDesc> Ptr;
|
||||||
ConnectionDesc(QSqlDatabase db, QObject* parent=0);
|
ConnectionDesc(QSqlDatabase db, QObject* parent=0);
|
||||||
@ -103,8 +103,8 @@ public:
|
|||||||
void setInternal(bool value) {m_internal = value;}
|
void setInternal(bool value) {m_internal = value;}
|
||||||
bool keepDBCredentials() const;
|
bool keepDBCredentials() const;
|
||||||
void setKeepDBCredentials(bool keepDBCredentials);
|
void setKeepDBCredentials(bool keepDBCredentials);
|
||||||
int port() const;
|
QString port() const;
|
||||||
void setPort(int port);
|
void setPort(QString port);
|
||||||
public:
|
public:
|
||||||
static QString connectionNameForUser(const QString& connectionName);
|
static QString connectionNameForUser(const QString& connectionName);
|
||||||
static QString connectionNameForReport(const QString& connectionName);
|
static QString connectionNameForReport(const QString& connectionName);
|
||||||
@ -117,7 +117,7 @@ private:
|
|||||||
QString m_databaseName;
|
QString m_databaseName;
|
||||||
QString m_user;
|
QString m_user;
|
||||||
QString m_password;
|
QString m_password;
|
||||||
int m_port;
|
QString m_port;
|
||||||
bool m_autoconnect;
|
bool m_autoconnect;
|
||||||
bool m_internal;
|
bool m_internal;
|
||||||
bool m_keepDBCredentials;
|
bool m_keepDBCredentials;
|
||||||
|
@ -675,8 +675,6 @@ CSVDesc *DataSourceManager::csvByName(const QString &datasourceName)
|
|||||||
|
|
||||||
void DataSourceManager::removeDatasource(const QString &name)
|
void DataSourceManager::removeDatasource(const QString &name)
|
||||||
{
|
{
|
||||||
invalidateLinkedDatasources(name);
|
|
||||||
|
|
||||||
if (m_datasources.contains(name)){
|
if (m_datasources.contains(name)){
|
||||||
IDataSourceHolder *holder;
|
IDataSourceHolder *holder;
|
||||||
holder=m_datasources.value(name);
|
holder=m_datasources.value(name);
|
||||||
@ -703,6 +701,7 @@ void DataSourceManager::removeDatasource(const QString &name)
|
|||||||
delete m_csvs.at(csvIndex);
|
delete m_csvs.at(csvIndex);
|
||||||
m_csvs.removeAt(csvIndex);
|
m_csvs.removeAt(csvIndex);
|
||||||
}
|
}
|
||||||
|
invalidateLinkedDatasources(name);
|
||||||
m_hasChanges = true;
|
m_hasChanges = true;
|
||||||
emit datasourcesChanged();
|
emit datasourcesChanged();
|
||||||
}
|
}
|
||||||
@ -808,12 +807,12 @@ bool DataSourceManager::initAndOpenDB(QSqlDatabase& db, ConnectionDesc& connecti
|
|||||||
|
|
||||||
bool connected = false;
|
bool connected = false;
|
||||||
|
|
||||||
|
|
||||||
db.setHostName(replaceVariables(connectionDesc.host()));
|
db.setHostName(replaceVariables(connectionDesc.host()));
|
||||||
db.setUserName(replaceVariables(connectionDesc.userName()));
|
db.setUserName(replaceVariables(connectionDesc.userName()));
|
||||||
db.setPassword(replaceVariables(connectionDesc.password()));
|
db.setPassword(replaceVariables(connectionDesc.password()));
|
||||||
if (connectionDesc.port()!=-1)
|
db.setDatabaseName(replaceVariables(connectionDesc.databaseName()));
|
||||||
db.setPort(connectionDesc.port());
|
if (connectionDesc.port()!="")
|
||||||
|
db.setPort(replaceVariables(connectionDesc.port()).toInt());
|
||||||
|
|
||||||
if (!connectionDesc.keepDBCredentials() && m_dbCredentialsProvider){
|
if (!connectionDesc.keepDBCredentials() && m_dbCredentialsProvider){
|
||||||
if (!m_dbCredentialsProvider->getUserName(connectionDesc.name()).isEmpty())
|
if (!m_dbCredentialsProvider->getUserName(connectionDesc.name()).isEmpty())
|
||||||
@ -1011,14 +1010,15 @@ void DataSourceManager::disconnectConnection(const QString& connectionName)
|
|||||||
foreach(QString datasourceName, dataSourceNames()){
|
foreach(QString datasourceName, dataSourceNames()){
|
||||||
if (isQuery(datasourceName) || isSubQuery(datasourceName)){
|
if (isQuery(datasourceName) || isSubQuery(datasourceName)){
|
||||||
QueryHolder* qh = dynamic_cast<QueryHolder*>(dataSourceHolder(datasourceName));
|
QueryHolder* qh = dynamic_cast<QueryHolder*>(dataSourceHolder(datasourceName));
|
||||||
if (qh && qh->connectionName().compare(connectionName,Qt::CaseInsensitive)==0){
|
if (qh && qh->connectionName().compare(connectionName, Qt::CaseInsensitive) == 0){
|
||||||
qh->invalidate(designTime()?IDataSource::DESIGN_MODE:IDataSource::RENDER_MODE);
|
qh->invalidate(designTime() ? IDataSource::DESIGN_MODE : IDataSource::RENDER_MODE, true);
|
||||||
qh->setLastError(tr("invalid connection"));
|
qh->setLastError(tr("invalid connection"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ConnectionDesc* connectionDesc = connectionByName(connectionName);
|
ConnectionDesc* connectionDesc = connectionByName(connectionName);
|
||||||
|
|
||||||
if (connectionDesc->isInternal()){
|
if (connectionDesc->isInternal()){
|
||||||
{
|
{
|
||||||
QSqlDatabase db = QSqlDatabase::database(connectionName);
|
QSqlDatabase db = QSqlDatabase::database(connectionName);
|
||||||
@ -1347,12 +1347,12 @@ void DataSourceManager::invalidateLinkedDatasources(QString datasourceName)
|
|||||||
{
|
{
|
||||||
foreach(QString name, dataSourceNames()){
|
foreach(QString name, dataSourceNames()){
|
||||||
if (isSubQuery(name)){
|
if (isSubQuery(name)){
|
||||||
if (subQueryByName(name)->master() == datasourceName)
|
if (subQueryByName(name)->master().compare(datasourceName) == 0)
|
||||||
dataSourceHolder(name)->invalidate(designTime()?IDataSource::DESIGN_MODE:IDataSource::RENDER_MODE);
|
dataSourceHolder(name)->invalidate(designTime()?IDataSource::DESIGN_MODE:IDataSource::RENDER_MODE);
|
||||||
}
|
}
|
||||||
if (isProxy(name)){
|
if (isProxy(name)){
|
||||||
ProxyDesc* proxy = proxyByName(name);
|
ProxyDesc* proxy = proxyByName(name);
|
||||||
if ((proxy->master() == datasourceName) || (proxy->child() == datasourceName))
|
if ((proxy->master().compare(datasourceName) == 0) || (proxy->child().compare(datasourceName) == 0))
|
||||||
dataSourceHolder(name)->invalidate(designTime()?IDataSource::DESIGN_MODE:IDataSource::RENDER_MODE);
|
dataSourceHolder(name)->invalidate(designTime()?IDataSource::DESIGN_MODE:IDataSource::RENDER_MODE);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1437,13 +1437,13 @@ void DataSourceManager::clear(ClearMethod method)
|
|||||||
case All:
|
case All:
|
||||||
invalidateLinkedDatasources(dit.key());
|
invalidateLinkedDatasources(dit.key());
|
||||||
delete dit.value();
|
delete dit.value();
|
||||||
m_datasources.erase(dit++);
|
dit = m_datasources.erase(dit);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (owned){
|
if (owned){
|
||||||
invalidateLinkedDatasources(dit.key());
|
invalidateLinkedDatasources(dit.key());
|
||||||
delete dit.value();
|
delete dit.value();
|
||||||
m_datasources.erase(dit++);
|
dit = m_datasources.erase(dit);
|
||||||
} else {
|
} else {
|
||||||
++dit;
|
++dit;
|
||||||
}
|
}
|
||||||
|
@ -97,6 +97,14 @@ void GroupFunction::slotBandRendered(BandDesignIntf *band)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GroupFunction::slotBandReRendered(BandDesignIntf *oldBand, BandDesignIntf *newBand)
|
||||||
|
{
|
||||||
|
if (m_valuesByBand.contains(oldBand)){
|
||||||
|
m_valuesByBand.insert(newBand, m_valuesByBand.value(oldBand));
|
||||||
|
m_valuesByBand.remove(oldBand);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
QVariant GroupFunction::addition(QVariant value1, QVariant value2)
|
QVariant GroupFunction::addition(QVariant value1, QVariant value2)
|
||||||
{
|
{
|
||||||
return value1.toDouble()+value2.toDouble();
|
return value1.toDouble()+value2.toDouble();
|
||||||
|
@ -56,6 +56,7 @@ public:
|
|||||||
virtual QVariant calculate(PageItemDesignIntf* page = 0)=0;
|
virtual QVariant calculate(PageItemDesignIntf* page = 0)=0;
|
||||||
public slots:
|
public slots:
|
||||||
void slotBandRendered(BandDesignIntf* band);
|
void slotBandRendered(BandDesignIntf* band);
|
||||||
|
void slotBandReRendered(BandDesignIntf* oldBand, BandDesignIntf* newBand);
|
||||||
protected:
|
protected:
|
||||||
void setName(const QString& value){m_name=value;}
|
void setName(const QString& value){m_name=value;}
|
||||||
QVariant addition(QVariant value1, QVariant value2);
|
QVariant addition(QVariant value1, QVariant value2);
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#include "lritemscontainerdesignitf.h"
|
#include "lritemscontainerdesignitf.h"
|
||||||
#include "lritemdesignintf.h"
|
#include "lritemdesignintf.h"
|
||||||
|
#include "lrbanddesignintf.h"
|
||||||
|
|
||||||
namespace LimeReport {
|
namespace LimeReport {
|
||||||
|
|
||||||
@ -37,11 +38,15 @@ bool itemSortContainerLessThen(const PItemSortContainer c1, const PItemSortConta
|
|||||||
else return c1->m_rect.y()<c2->m_rect.y();
|
else return c1->m_rect.y()<c2->m_rect.y();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemsContainerDesignInft::snapshotItemsLayout()
|
void ItemsContainerDesignInft::snapshotItemsLayout(SnapshotType type)
|
||||||
{
|
{
|
||||||
m_containerItems.clear();
|
m_containerItems.clear();
|
||||||
foreach(BaseDesignIntf *childItem,childBaseItems()){
|
foreach(BaseDesignIntf *childItem, childBaseItems()){
|
||||||
m_containerItems.append(PItemSortContainer(new ItemSortContainer(childItem)));
|
if (type == IgnoreBands){
|
||||||
|
if (!dynamic_cast<BandDesignIntf*>(childItem))
|
||||||
|
m_containerItems.append(PItemSortContainer(new ItemSortContainer(childItem)));
|
||||||
|
} else
|
||||||
|
m_containerItems.append(PItemSortContainer(new ItemSortContainer(childItem)));
|
||||||
}
|
}
|
||||||
qSort(m_containerItems.begin(),m_containerItems.end(),itemSortContainerLessThen);
|
qSort(m_containerItems.begin(),m_containerItems.end(),itemSortContainerLessThen);
|
||||||
}
|
}
|
||||||
|
@ -42,8 +42,9 @@ class ItemsContainerDesignInft : public BookmarkContainerDesignIntf{
|
|||||||
public:
|
public:
|
||||||
ItemsContainerDesignInft(const QString& xmlTypeName, QObject* owner = 0, QGraphicsItem* parent=0):
|
ItemsContainerDesignInft(const QString& xmlTypeName, QObject* owner = 0, QGraphicsItem* parent=0):
|
||||||
BookmarkContainerDesignIntf(xmlTypeName, owner, parent){}
|
BookmarkContainerDesignIntf(xmlTypeName, owner, parent){}
|
||||||
|
enum SnapshotType{Full, IgnoreBands};
|
||||||
protected:
|
protected:
|
||||||
void snapshotItemsLayout();
|
void snapshotItemsLayout(SnapshotType type = Full);
|
||||||
void arrangeSubItems(RenderPass pass, DataSourceManager *dataManager, ArrangeType type = AsNeeded);
|
void arrangeSubItems(RenderPass pass, DataSourceManager *dataManager, ArrangeType type = AsNeeded);
|
||||||
qreal findMaxBottom() const;
|
qreal findMaxBottom() const;
|
||||||
qreal findMaxHeight() const;
|
qreal findMaxHeight() const;
|
||||||
|
@ -132,23 +132,6 @@ void PageDesignIntf::updatePageRect()
|
|||||||
emit sceneRectChanged(sceneRect());
|
emit sceneRectChanged(sceneRect());
|
||||||
}
|
}
|
||||||
|
|
||||||
//PageDesignIntf::Orientation PageDesignIntf::getOrientation()
|
|
||||||
//{
|
|
||||||
// return m_orientation;
|
|
||||||
//}
|
|
||||||
|
|
||||||
//void PageDesignIntf::setPageSize(PageDesignIntf::PageSize sizeType, QSizeF sizeValue)
|
|
||||||
//{
|
|
||||||
// m_pageSize = sizeType;
|
|
||||||
// m_pageSizeValue = sizeValue;
|
|
||||||
// updatePageRect();
|
|
||||||
//}
|
|
||||||
|
|
||||||
//PageDesignIntf::PageSize PageDesignIntf::pageSize() const
|
|
||||||
//{
|
|
||||||
// return m_pageSize;
|
|
||||||
//}
|
|
||||||
|
|
||||||
void PageDesignIntf::keyPressEvent(QKeyEvent *event)
|
void PageDesignIntf::keyPressEvent(QKeyEvent *event)
|
||||||
{
|
{
|
||||||
if (event->modifiers() == Qt::NoModifier ||
|
if (event->modifiers() == Qt::NoModifier ||
|
||||||
@ -1385,9 +1368,9 @@ void PageDesignIntf::copy()
|
|||||||
}
|
}
|
||||||
|
|
||||||
BaseDesignIntf* PageDesignIntf::findDestObject(BaseDesignIntf* item){
|
BaseDesignIntf* PageDesignIntf::findDestObject(BaseDesignIntf* item){
|
||||||
if (item && item->canContainChildren()) return item;
|
if (item && item->canAcceptPaste()) return item;
|
||||||
BaseDesignIntf * curItem = item;
|
BaseDesignIntf * curItem = item;
|
||||||
while (curItem && !curItem->canContainChildren()){
|
while (curItem && !curItem->canAcceptPaste()){
|
||||||
curItem = dynamic_cast<BaseDesignIntf*>(curItem->parentItem());
|
curItem = dynamic_cast<BaseDesignIntf*>(curItem->parentItem());
|
||||||
}
|
}
|
||||||
return curItem;
|
return curItem;
|
||||||
@ -2150,6 +2133,9 @@ bool PasteCommand::insertItem(ItemsReaderIntf::Ptr reader)
|
|||||||
if (page()->reportItemsByName(item->objectName()).size()>1){
|
if (page()->reportItemsByName(item->objectName()).size()>1){
|
||||||
item->setObjectName(objectName);
|
item->setObjectName(objectName);
|
||||||
}
|
}
|
||||||
|
foreach (BaseDesignIntf* child, item->childBaseItems()){
|
||||||
|
changeName(page(), child);
|
||||||
|
};
|
||||||
m_itemNames.push_back(item->objectName());
|
m_itemNames.push_back(item->objectName());
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -2157,6 +2143,14 @@ bool PasteCommand::insertItem(ItemsReaderIntf::Ptr reader)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PasteCommand::changeName(PageDesignIntf *page, BaseDesignIntf* item)
|
||||||
|
{
|
||||||
|
item->setObjectName(page->genObjectName(*item));
|
||||||
|
foreach(BaseDesignIntf* child, item->childBaseItems()){
|
||||||
|
changeName(page, child);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
CommandIf::Ptr CutCommand::create(PageDesignIntf *page)
|
CommandIf::Ptr CutCommand::create(PageDesignIntf *page)
|
||||||
{
|
{
|
||||||
CutCommand *command = new CutCommand();
|
CutCommand *command = new CutCommand();
|
||||||
|
@ -266,7 +266,7 @@ namespace LimeReport {
|
|||||||
void bandDeleted(QObject* band);
|
void bandDeleted(QObject* band);
|
||||||
void slotPageItemLoaded(QObject *);
|
void slotPageItemLoaded(QObject *);
|
||||||
void slotSelectionChanged();
|
void slotSelectionChanged();
|
||||||
void slotAnimationStoped(QObject *animation);
|
void slotAnimationStoped(QObject *animation);
|
||||||
private:
|
private:
|
||||||
template <typename T>
|
template <typename T>
|
||||||
BaseDesignIntf* internalAddBand(T bandType);
|
BaseDesignIntf* internalAddBand(T bandType);
|
||||||
@ -430,6 +430,7 @@ namespace LimeReport {
|
|||||||
void setItemsXML(const QString& itemsXML);
|
void setItemsXML(const QString& itemsXML);
|
||||||
void setParent(BaseDesignIntf* parent){m_parentItemName = parent->objectName();}
|
void setParent(BaseDesignIntf* parent){m_parentItemName = parent->objectName();}
|
||||||
bool insertItem(ItemsReaderIntf::Ptr reader);
|
bool insertItem(ItemsReaderIntf::Ptr reader);
|
||||||
|
void changeName(PageDesignIntf* page, BaseDesignIntf *item);
|
||||||
private:
|
private:
|
||||||
QString m_itemsXML;
|
QString m_itemsXML;
|
||||||
QString m_parentItemName;
|
QString m_parentItemName;
|
||||||
|
@ -50,8 +50,9 @@ PageItemDesignIntf::PageItemDesignIntf(QObject *owner, QGraphicsItem *parent) :
|
|||||||
m_topMargin(0), m_bottomMargin(0), m_leftMargin(0), m_rightMargin(0),
|
m_topMargin(0), m_bottomMargin(0), m_leftMargin(0), m_rightMargin(0),
|
||||||
m_pageOrientaion(Portrait), m_pageSize(A4), m_sizeChainging(false),
|
m_pageOrientaion(Portrait), m_pageSize(A4), m_sizeChainging(false),
|
||||||
m_fullPage(false), m_oldPrintMode(false), m_resetPageNumber(false),
|
m_fullPage(false), m_oldPrintMode(false), m_resetPageNumber(false),
|
||||||
m_isExtendedInDesignMode(false), m_extendedHeight(1000), m_isTOC(false), m_setPageSizeToPrinter(false),
|
m_isExtendedInDesignMode(false), m_extendedHeight(1000), m_isTOC(false),
|
||||||
m_endlessHeight(false), m_printable(true), m_pageFooter(0), m_printBehavior(Split)
|
m_setPageSizeToPrinter(false), m_endlessHeight(false), m_printable(true),
|
||||||
|
m_pageFooter(0), m_printBehavior(Split), m_dropPrinterMargins(false)
|
||||||
{
|
{
|
||||||
setFixedPos(true);
|
setFixedPos(true);
|
||||||
setPossibleResizeDirectionFlags(Fixed);
|
setPossibleResizeDirectionFlags(Fixed);
|
||||||
@ -64,8 +65,9 @@ PageItemDesignIntf::PageItemDesignIntf(const PageSize pageSize, const QRectF &re
|
|||||||
m_topMargin(0), m_bottomMargin(0), m_leftMargin(0), m_rightMargin(0),
|
m_topMargin(0), m_bottomMargin(0), m_leftMargin(0), m_rightMargin(0),
|
||||||
m_pageOrientaion(Portrait), m_pageSize(pageSize), m_sizeChainging(false),
|
m_pageOrientaion(Portrait), m_pageSize(pageSize), m_sizeChainging(false),
|
||||||
m_fullPage(false), m_oldPrintMode(false), m_resetPageNumber(false),
|
m_fullPage(false), m_oldPrintMode(false), m_resetPageNumber(false),
|
||||||
m_isExtendedInDesignMode(false), m_extendedHeight(1000), m_isTOC(false), m_setPageSizeToPrinter(false),
|
m_isExtendedInDesignMode(false), m_extendedHeight(1000), m_isTOC(false),
|
||||||
m_endlessHeight(false), m_printable(true), m_pageFooter(0), m_printBehavior(Split)
|
m_setPageSizeToPrinter(false), m_endlessHeight(false), m_printable(true),
|
||||||
|
m_pageFooter(0), m_printBehavior(Split), m_dropPrinterMargins(false)
|
||||||
{
|
{
|
||||||
setFixedPos(true);
|
setFixedPos(true);
|
||||||
setPossibleResizeDirectionFlags(Fixed);
|
setPossibleResizeDirectionFlags(Fixed);
|
||||||
@ -129,7 +131,8 @@ BaseDesignIntf *PageItemDesignIntf::createSameTypeItem(QObject *owner, QGraphics
|
|||||||
void PageItemDesignIntf::geometryChangedEvent(QRectF newRect, QRectF)
|
void PageItemDesignIntf::geometryChangedEvent(QRectF newRect, QRectF)
|
||||||
{
|
{
|
||||||
Q_UNUSED(newRect)
|
Q_UNUSED(newRect)
|
||||||
updateMarginRect();
|
if (itemMode() == DesignMode || !endlessHeight())
|
||||||
|
updateMarginRect();
|
||||||
PageSize oldSize = m_pageSize;
|
PageSize oldSize = m_pageSize;
|
||||||
if (!m_sizeChainging && !isLoading())
|
if (!m_sizeChainging && !isLoading())
|
||||||
m_pageSize = Custom;
|
m_pageSize = Custom;
|
||||||
@ -241,8 +244,7 @@ int PageItemDesignIntf::calcBandIndex(BandDesignIntf::BandsType bandType, BandDe
|
|||||||
} else {
|
} else {
|
||||||
int maxChildIndex = 0;
|
int maxChildIndex = 0;
|
||||||
foreach(BandDesignIntf* band, m_bands){
|
foreach(BandDesignIntf* band, m_bands){
|
||||||
if (band->bandType() == BandDesignIntf::Data)
|
maxChildIndex = std::max(maxChildIndex, band->maxChildIndex());
|
||||||
maxChildIndex = std::max(maxChildIndex, band->maxChildIndex());
|
|
||||||
}
|
}
|
||||||
bandIndex = std::max(bandIndex, maxChildIndex + 1);
|
bandIndex = std::max(bandIndex, maxChildIndex + 1);
|
||||||
}
|
}
|
||||||
@ -345,6 +347,16 @@ void PageItemDesignIntf::initColumnsPos(QVector<qreal> &posByColumns, qreal pos,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool PageItemDesignIntf::dropPrinterMargins() const
|
||||||
|
{
|
||||||
|
return m_dropPrinterMargins;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PageItemDesignIntf::setDropPrinterMargins(bool dropPrinterMargins)
|
||||||
|
{
|
||||||
|
m_dropPrinterMargins = dropPrinterMargins;
|
||||||
|
}
|
||||||
|
|
||||||
void PageItemDesignIntf::setPrintBehavior(const PrintBehavior &printBehavior)
|
void PageItemDesignIntf::setPrintBehavior(const PrintBehavior &printBehavior)
|
||||||
{
|
{
|
||||||
m_printBehavior = printBehavior;
|
m_printBehavior = printBehavior;
|
||||||
@ -518,8 +530,10 @@ void PageItemDesignIntf::setResetPageNumber(bool resetPageNumber)
|
|||||||
|
|
||||||
void PageItemDesignIntf::updateSubItemsSize(RenderPass pass, DataSourceManager *dataManager)
|
void PageItemDesignIntf::updateSubItemsSize(RenderPass pass, DataSourceManager *dataManager)
|
||||||
{
|
{
|
||||||
snapshotItemsLayout();
|
if (!endlessHeight()){
|
||||||
arrangeSubItems(pass, dataManager);
|
snapshotItemsLayout(IgnoreBands);
|
||||||
|
arrangeSubItems(pass, dataManager);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PageItemDesignIntf::oldPrintMode() const
|
bool PageItemDesignIntf::oldPrintMode() const
|
||||||
|
@ -61,6 +61,7 @@ class PageItemDesignIntf : public ItemsContainerDesignInft
|
|||||||
Q_PROPERTY(QString printerName READ printerName WRITE setPrinterName)
|
Q_PROPERTY(QString printerName READ printerName WRITE setPrinterName)
|
||||||
Q_PROPERTY(UnitType units READ unitType WRITE setUnitTypeProperty)
|
Q_PROPERTY(UnitType units READ unitType WRITE setUnitTypeProperty)
|
||||||
Q_PROPERTY(PrintBehavior printBehavior READ printBehavior WRITE setPrintBehavior)
|
Q_PROPERTY(PrintBehavior printBehavior READ printBehavior WRITE setPrintBehavior)
|
||||||
|
Q_PROPERTY(bool dropPrinterMargins READ dropPrinterMargins WRITE setDropPrinterMargins)
|
||||||
friend class ReportRender;
|
friend class ReportRender;
|
||||||
public:
|
public:
|
||||||
enum Orientation { Portrait = QPrinter::Portrait, Landscape = QPrinter::Landscape };
|
enum Orientation { Portrait = QPrinter::Portrait, Landscape = QPrinter::Landscape };
|
||||||
@ -143,6 +144,7 @@ public:
|
|||||||
bool oldPrintMode() const;
|
bool oldPrintMode() const;
|
||||||
void setOldPrintMode(bool oldPrintMode);
|
void setOldPrintMode(bool oldPrintMode);
|
||||||
bool canContainChildren() const{ return true;}
|
bool canContainChildren() const{ return true;}
|
||||||
|
bool canAcceptPaste() const{ return true;}
|
||||||
bool resetPageNumber() const;
|
bool resetPageNumber() const;
|
||||||
void setResetPageNumber(bool resetPageNumber);
|
void setResetPageNumber(bool resetPageNumber);
|
||||||
void updateSubItemsSize(RenderPass pass, DataSourceManager *dataManager);
|
void updateSubItemsSize(RenderPass pass, DataSourceManager *dataManager);
|
||||||
@ -181,6 +183,10 @@ public:
|
|||||||
QRectF transformFromStorageToScenePpm(const QRectF& rect);
|
QRectF transformFromStorageToScenePpm(const QRectF& rect);
|
||||||
void zoomIn();
|
void zoomIn();
|
||||||
void zoomOut();
|
void zoomOut();
|
||||||
|
|
||||||
|
bool dropPrinterMargins() const;
|
||||||
|
void setDropPrinterMargins(bool dropPrinterMargins);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void beforeFirstPageRendered();
|
void beforeFirstPageRendered();
|
||||||
void afterLastPageRendered();
|
void afterLastPageRendered();
|
||||||
@ -225,6 +231,7 @@ private:
|
|||||||
QString m_printerName;
|
QString m_printerName;
|
||||||
BandDesignIntf* m_pageFooter;
|
BandDesignIntf* m_pageFooter;
|
||||||
PrintBehavior m_printBehavior;
|
PrintBehavior m_printBehavior;
|
||||||
|
bool m_dropPrinterMargins;
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -60,6 +60,7 @@ void PreparedPages::clear()
|
|||||||
|
|
||||||
bool PreparedPages::readPages(ItemsReaderIntf::Ptr reader)
|
bool PreparedPages::readPages(ItemsReaderIntf::Ptr reader)
|
||||||
{
|
{
|
||||||
|
clear();
|
||||||
if (reader->first()){
|
if (reader->first()){
|
||||||
PageItemDesignIntf::Ptr page = PageItemDesignIntf::create(0);
|
PageItemDesignIntf::Ptr page = PageItemDesignIntf::create(0);
|
||||||
if (!reader->readItem(page.data()))
|
if (!reader->readItem(page.data()))
|
||||||
|
@ -135,6 +135,7 @@ ReportDesignWindow::ReportDesignWindow(ReportEnginePrivateInterface* report, QWi
|
|||||||
m_hideLeftPanel->setChecked(isDockAreaVisible(Qt::LeftDockWidgetArea));
|
m_hideLeftPanel->setChecked(isDockAreaVisible(Qt::LeftDockWidgetArea));
|
||||||
m_hideRightPanel->setChecked(isDockAreaVisible(Qt::RightDockWidgetArea));
|
m_hideRightPanel->setChecked(isDockAreaVisible(Qt::RightDockWidgetArea));
|
||||||
createProgressBar();
|
createProgressBar();
|
||||||
|
m_deletePageAction->setEnabled(report->pageCount()>1);
|
||||||
}
|
}
|
||||||
|
|
||||||
ReportDesignWindow::~ReportDesignWindow()
|
ReportDesignWindow::~ReportDesignWindow()
|
||||||
@ -1126,6 +1127,7 @@ void ReportDesignWindow::slotSaveReport()
|
|||||||
QString filename = m_reportDesignWidget->reportFileName();
|
QString filename = m_reportDesignWidget->reportFileName();
|
||||||
m_lblReportName->setText(filename);
|
m_lblReportName->setText(filename);
|
||||||
if(!filename.isEmpty()) addRecentFile(filename);
|
if(!filename.isEmpty()) addRecentFile(filename);
|
||||||
|
setWindowTitle(m_reportDesignWidget->report()->reportName() + " - Lime Report Designer");
|
||||||
}
|
}
|
||||||
|
|
||||||
void ReportDesignWindow::slotSaveReportAs()
|
void ReportDesignWindow::slotSaveReportAs()
|
||||||
@ -1137,6 +1139,7 @@ void ReportDesignWindow::slotSaveReportAs()
|
|||||||
m_reportDesignWidget->saveToFile(fileName);
|
m_reportDesignWidget->saveToFile(fileName);
|
||||||
m_lblReportName->setText(m_reportDesignWidget->reportFileName());
|
m_lblReportName->setText(m_reportDesignWidget->reportFileName());
|
||||||
addRecentFile(fileName);
|
addRecentFile(fileName);
|
||||||
|
setWindowTitle(m_reportDesignWidget->report()->reportName() + " - Lime Report Designer");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -206,7 +206,7 @@ void ReportEnginePrivate::collectionLoadFinished(const QString &)
|
|||||||
page->setReportSettings(&m_reportSettings);
|
page->setReportSettings(&m_reportSettings);
|
||||||
page->setSceneRect(-Const::SCENE_MARGIN,-Const::SCENE_MARGIN,
|
page->setSceneRect(-Const::SCENE_MARGIN,-Const::SCENE_MARGIN,
|
||||||
page->pageItem()->width()+Const::SCENE_MARGIN*2,
|
page->pageItem()->width()+Const::SCENE_MARGIN*2,
|
||||||
page->pageItem()->height()+Const::SCENE_MARGIN*2);
|
page->pageItem()->boundingRect().height()+Const::SCENE_MARGIN*2);
|
||||||
}
|
}
|
||||||
emit pagesLoadFinished();
|
emit pagesLoadFinished();
|
||||||
}
|
}
|
||||||
@ -878,6 +878,7 @@ bool ReportEnginePrivate::saveToFile(const QString &fileName)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
dropChanges();
|
dropChanges();
|
||||||
|
this->setReportName(fi.baseName());
|
||||||
return saved;
|
return saved;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1801,9 +1802,6 @@ bool PrintProcessor::printPage(PageItemDesignIntf::Ptr page)
|
|||||||
if (!m_firstPage && !m_painter->isActive()) return false;
|
if (!m_firstPage && !m_painter->isActive()) return false;
|
||||||
PageDesignIntf* backupPage = dynamic_cast<PageDesignIntf*>(page->scene());
|
PageDesignIntf* backupPage = dynamic_cast<PageDesignIntf*>(page->scene());
|
||||||
|
|
||||||
//LimeReport::PageDesignIntf m_renderPage;
|
|
||||||
//m_renderPage.setItemMode(PrintMode);
|
|
||||||
|
|
||||||
QPointF backupPagePos = page->pos();
|
QPointF backupPagePos = page->pos();
|
||||||
page->setPos(0,0);
|
page->setPos(0,0);
|
||||||
int currentPpm = page->ppm();
|
int currentPpm = page->ppm();
|
||||||
@ -1852,7 +1850,14 @@ bool PrintProcessor::printPage(PageItemDesignIntf::Ptr page)
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
m_renderPage.render(m_painter);
|
if (page->getSetPageSizeToPrinter()){
|
||||||
|
QRectF source = page->geometry();
|
||||||
|
QSizeF inchSize = source.size() / (100 * 2.54);
|
||||||
|
QRectF target = QRectF(QPoint(0,0), inchSize * m_printer->resolution());
|
||||||
|
m_renderPage.render(m_painter, target, source);
|
||||||
|
} else {
|
||||||
|
m_renderPage.render(m_painter);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
page->setPos(backupPagePos);
|
page->setPos(backupPagePos);
|
||||||
page->setPpm(currentPpm);
|
page->setPpm(currentPpm);
|
||||||
@ -1876,13 +1881,15 @@ void PrintProcessor::initPrinter(PageItemDesignIntf* page)
|
|||||||
m_printer->setPaperSize(pageSize,QPrinter::Millimeter);
|
m_printer->setPaperSize(pageSize,QPrinter::Millimeter);
|
||||||
} else {
|
} else {
|
||||||
m_printer->setFullPage(page->fullPage());
|
m_printer->setFullPage(page->fullPage());
|
||||||
|
if (page->dropPrinterMargins())
|
||||||
|
m_printer->setPageMargins(0, 0, 0, 0, QPrinter::Point);
|
||||||
m_printer->setOrientation(static_cast<QPrinter::Orientation>(page->pageOrientation()));
|
m_printer->setOrientation(static_cast<QPrinter::Orientation>(page->pageOrientation()));
|
||||||
if (page->pageSize()==PageItemDesignIntf::Custom){
|
if (page->pageSize()==PageItemDesignIntf::Custom){
|
||||||
QSizeF pageSize = (page->pageOrientation()==PageItemDesignIntf::Landscape)?
|
QSizeF pageSize = (page->pageOrientation()==PageItemDesignIntf::Landscape)?
|
||||||
QSizeF(page->sizeMM().height(),page->sizeMM().width()):
|
QSizeF(page->sizeMM().height(),page->sizeMM().width()):
|
||||||
page->sizeMM();
|
page->sizeMM();
|
||||||
if (page->getSetPageSizeToPrinter() || m_printer->outputFormat() == QPrinter::PdfFormat)
|
if (page->getSetPageSizeToPrinter() || m_printer->outputFormat() == QPrinter::PdfFormat)
|
||||||
m_printer->setPaperSize(pageSize,QPrinter::Millimeter);
|
m_printer->setPaperSize(pageSize, QPrinter::Millimeter);
|
||||||
} else {
|
} else {
|
||||||
if (page->getSetPageSizeToPrinter() || m_printer->outputFormat() == QPrinter::PdfFormat)
|
if (page->getSetPageSizeToPrinter() || m_printer->outputFormat() == QPrinter::PdfFormat)
|
||||||
m_printer->setPaperSize(static_cast<QPrinter::PageSize>(page->pageSize()));
|
m_printer->setPaperSize(static_cast<QPrinter::PageSize>(page->pageSize()));
|
||||||
|
@ -386,7 +386,10 @@ void ReportRender::extractGroupFuntionsFromItem(ContentItemDesignIntf* contentIt
|
|||||||
if (dataBand){
|
if (dataBand){
|
||||||
GroupFunction* gf = datasources()->addGroupFunction(functionName,captures.at(Const::VALUE_INDEX),band->objectName(),dataBand->objectName());
|
GroupFunction* gf = datasources()->addGroupFunction(functionName,captures.at(Const::VALUE_INDEX),band->objectName(),dataBand->objectName());
|
||||||
if (gf){
|
if (gf){
|
||||||
connect(dataBand,SIGNAL(bandRendered(BandDesignIntf*)),gf,SLOT(slotBandRendered(BandDesignIntf*)));
|
connect(dataBand, SIGNAL(bandRendered(BandDesignIntf*)),
|
||||||
|
gf, SLOT(slotBandRendered(BandDesignIntf*)));
|
||||||
|
connect(dataBand, SIGNAL(bandReRendered(BandDesignIntf*, BandDesignIntf*)),
|
||||||
|
gf, SLOT(slotBandReRendered(BandDesignIntf*, BandDesignIntf*)));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
GroupFunction* gf = datasources()->addGroupFunction(functionName,captures.at(Const::VALUE_INDEX),band->objectName(),captures.at(dsIndex));
|
GroupFunction* gf = datasources()->addGroupFunction(functionName,captures.at(Const::VALUE_INDEX),band->objectName(),captures.at(dsIndex));
|
||||||
@ -463,6 +466,15 @@ void ReportRender::replaceGroupsFunction(BandDesignIntf *band)
|
|||||||
replaceGroupFunctionsInContainer(band, band);
|
replaceGroupFunctionsInContainer(band, band);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QColor ReportRender::makeBackgroundColor(BandDesignIntf* band){
|
||||||
|
if (band->useAlternateBackgroundColor()){
|
||||||
|
return datasources()->variable(QLatin1String("line_") + band->objectName().toLower()).toInt() %2 == 0 ?
|
||||||
|
band->backgroundColor() :
|
||||||
|
band->alternateBackgroundColor();
|
||||||
|
}
|
||||||
|
return band->backgroundColor();
|
||||||
|
}
|
||||||
|
|
||||||
BandDesignIntf* ReportRender::renderBand(BandDesignIntf *patternBand, BandDesignIntf* bandData, ReportRender::DataRenderMode mode, bool isLast)
|
BandDesignIntf* ReportRender::renderBand(BandDesignIntf *patternBand, BandDesignIntf* bandData, ReportRender::DataRenderMode mode, bool isLast)
|
||||||
{
|
{
|
||||||
QCoreApplication::processEvents();
|
QCoreApplication::processEvents();
|
||||||
@ -490,18 +502,9 @@ BandDesignIntf* ReportRender::renderBand(BandDesignIntf *patternBand, BandDesign
|
|||||||
if (patternBand->isFooter())
|
if (patternBand->isFooter())
|
||||||
m_lastRenderedFooter = patternBand;
|
m_lastRenderedFooter = patternBand;
|
||||||
|
|
||||||
if (bandClone->useAlternateBackgroundColor()){
|
bandClone->setBackgroundColor(makeBackgroundColor(patternBand));
|
||||||
bandClone->setBackgroundColor(
|
|
||||||
(datasources()->variable(QLatin1String("line_")+patternBand->objectName().toLower()).toInt() %2 == 0 ?
|
|
||||||
bandClone->backgroundColor() :
|
|
||||||
bandClone->alternateBackgroundColor()
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
patternBand->emitBandRendered(bandClone);
|
patternBand->emitBandRendered(bandClone);
|
||||||
m_scriptEngineContext->setCurrentBand(bandClone);
|
m_scriptEngineContext->setCurrentBand(bandClone);
|
||||||
emit(patternBand->afterRender());
|
|
||||||
|
|
||||||
if ( isLast && bandClone->keepFooterTogether() && bandClone->sliceLastRow() ){
|
if ( isLast && bandClone->keepFooterTogether() && bandClone->sliceLastRow() ){
|
||||||
if (m_maxHeightByColumn[m_currentColumn] < (bandClone->height()+m_reportFooterHeight))
|
if (m_maxHeightByColumn[m_currentColumn] < (bandClone->height()+m_reportFooterHeight))
|
||||||
@ -545,8 +548,9 @@ BandDesignIntf* ReportRender::renderBand(BandDesignIntf *patternBand, BandDesign
|
|||||||
savePage();
|
savePage();
|
||||||
startNewPage();
|
startNewPage();
|
||||||
if (!bandIsSliced){
|
if (!bandIsSliced){
|
||||||
BandDesignIntf* t = renderData(patternBand);
|
BandDesignIntf* t = renderData(patternBand, false);
|
||||||
t->copyBookmarks(bandClone);
|
t->copyBandAttributes(bandClone);
|
||||||
|
patternBand->emitBandReRendered(bandClone, t);
|
||||||
delete bandClone;
|
delete bandClone;
|
||||||
bandClone = t;
|
bandClone = t;
|
||||||
}
|
}
|
||||||
@ -554,6 +558,7 @@ BandDesignIntf* ReportRender::renderBand(BandDesignIntf *patternBand, BandDesign
|
|||||||
if (!registerBand(bandClone)) {
|
if (!registerBand(bandClone)) {
|
||||||
BandDesignIntf* upperPart = dynamic_cast<BandDesignIntf*>(bandClone->cloneUpperPart(m_maxHeightByColumn[m_currentColumn]));
|
BandDesignIntf* upperPart = dynamic_cast<BandDesignIntf*>(bandClone->cloneUpperPart(m_maxHeightByColumn[m_currentColumn]));
|
||||||
registerBand(upperPart);
|
registerBand(upperPart);
|
||||||
|
patternBand->emitBandReRendered(bandClone, upperPart);
|
||||||
delete bandClone;
|
delete bandClone;
|
||||||
bandClone = NULL;
|
bandClone = NULL;
|
||||||
};
|
};
|
||||||
@ -571,6 +576,7 @@ BandDesignIntf* ReportRender::renderBand(BandDesignIntf *patternBand, BandDesign
|
|||||||
|
|
||||||
if (patternBand->isFooter())
|
if (patternBand->isFooter())
|
||||||
datasources()->clearGroupFunctionValues(patternBand->objectName());
|
datasources()->clearGroupFunctionValues(patternBand->objectName());
|
||||||
|
emit(patternBand->afterRender());
|
||||||
return bandClone;
|
return bandClone;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@ -832,7 +838,7 @@ void ReportRender::recalcIfNeeded(BandDesignIntf* band){
|
|||||||
void ReportRender::renderDataHeader(BandDesignIntf *header)
|
void ReportRender::renderDataHeader(BandDesignIntf *header)
|
||||||
{
|
{
|
||||||
recalcIfNeeded(header);
|
recalcIfNeeded(header);
|
||||||
BandDesignIntf* renderedHeader = renderBand(header, 0);
|
BandDesignIntf* renderedHeader = renderBand(header, 0, StartNewPageAsNeeded);
|
||||||
if (containsGroupFunctions(header))
|
if (containsGroupFunctions(header))
|
||||||
m_recalcBands.append(renderedHeader);
|
m_recalcBands.append(renderedHeader);
|
||||||
}
|
}
|
||||||
@ -1253,13 +1259,14 @@ BandDesignIntf *ReportRender::saveUppperPartReturnBottom(BandDesignIntf *band, i
|
|||||||
return bottomBandPart;
|
return bottomBandPart;
|
||||||
}
|
}
|
||||||
|
|
||||||
BandDesignIntf *ReportRender::renderData(BandDesignIntf *patternBand)
|
BandDesignIntf *ReportRender::renderData(BandDesignIntf *patternBand, bool emitBeforeRender)
|
||||||
{
|
{
|
||||||
BandDesignIntf* bandClone = dynamic_cast<BandDesignIntf*>(patternBand->cloneItem(PreviewMode));
|
BandDesignIntf* bandClone = dynamic_cast<BandDesignIntf*>(patternBand->cloneItem(PreviewMode));
|
||||||
|
|
||||||
m_scriptEngineContext->baseDesignIntfToScript(patternBand->parent()->objectName(), bandClone);
|
m_scriptEngineContext->baseDesignIntfToScript(patternBand->parent()->objectName(), bandClone);
|
||||||
m_scriptEngineContext->setCurrentBand(bandClone);
|
m_scriptEngineContext->setCurrentBand(bandClone);
|
||||||
emit(patternBand->beforeRender());
|
if (emitBeforeRender)
|
||||||
|
emit(patternBand->beforeRender());
|
||||||
|
|
||||||
if (patternBand->isFooter()){
|
if (patternBand->isFooter()){
|
||||||
replaceGroupsFunction(bandClone);
|
replaceGroupsFunction(bandClone);
|
||||||
|
@ -169,12 +169,10 @@ private:
|
|||||||
BandDesignIntf *sliceBand(BandDesignIntf* band, BandDesignIntf *patternBand, bool isLast);
|
BandDesignIntf *sliceBand(BandDesignIntf* band, BandDesignIntf *patternBand, bool isLast);
|
||||||
|
|
||||||
BandDesignIntf* saveUppperPartReturnBottom(BandDesignIntf *band, int height, BandDesignIntf *patternBand);
|
BandDesignIntf* saveUppperPartReturnBottom(BandDesignIntf *band, int height, BandDesignIntf *patternBand);
|
||||||
BandDesignIntf* renderData(BandDesignIntf* patternBand);
|
BandDesignIntf* renderData(BandDesignIntf* patternBand, bool emitBeforeRender = true);
|
||||||
void startNewColumn();
|
void startNewColumn();
|
||||||
void startNewPage(bool isFirst = false);
|
void startNewPage(bool isFirst = false);
|
||||||
void resetPageNumber(ResetPageNuberType resetType);
|
void resetPageNumber(ResetPageNuberType resetType);
|
||||||
//int findLastPageNumber(int currentPage);
|
|
||||||
//int findPageNumber(int currentPage);
|
|
||||||
void savePage(bool isLast = false);
|
void savePage(bool isLast = false);
|
||||||
QString toString();
|
QString toString();
|
||||||
void initColumns();
|
void initColumns();
|
||||||
@ -187,8 +185,8 @@ private:
|
|||||||
void renameChildItems(BaseDesignIntf *item);
|
void renameChildItems(BaseDesignIntf *item);
|
||||||
void renderGroupFooterByHeader(BandDesignIntf *groupHeader);
|
void renderGroupFooterByHeader(BandDesignIntf *groupHeader);
|
||||||
void updateTOC(BaseDesignIntf* item, int pageNumber);
|
void updateTOC(BaseDesignIntf* item, int pageNumber);
|
||||||
//PagesRange& currentRange(bool isTOC = false){ return (isTOC) ? m_ranges.first(): m_ranges.last();}
|
|
||||||
void placeBandOnPage(BandDesignIntf *band, int columnIndex);
|
void placeBandOnPage(BandDesignIntf *band, int columnIndex);
|
||||||
|
QColor makeBackgroundColor(BandDesignIntf *band);
|
||||||
private:
|
private:
|
||||||
DataSourceManager* m_datasources;
|
DataSourceManager* m_datasources;
|
||||||
ScriptEngineContext* m_scriptEngineContext;
|
ScriptEngineContext* m_scriptEngineContext;
|
||||||
@ -223,7 +221,6 @@ private:
|
|||||||
bool m_newPageStarted;
|
bool m_newPageStarted;
|
||||||
bool m_lostHeadersMoved;
|
bool m_lostHeadersMoved;
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
} // namespace LimeReport
|
} // namespace LimeReport
|
||||||
#endif // LRREPORTRENDER_H
|
#endif // LRREPORTRENDER_H
|
||||||
|
@ -1937,7 +1937,10 @@ bool DatasourceFunctions::invalidate(const QString& datasourceName)
|
|||||||
|
|
||||||
QObject* DatasourceFunctions::createTableBuilder(QObject* horizontalLayout)
|
QObject* DatasourceFunctions::createTableBuilder(QObject* horizontalLayout)
|
||||||
{
|
{
|
||||||
return new TableBuilder(dynamic_cast<LimeReport::HorizontalLayout*>(horizontalLayout), dynamic_cast<DataSourceManager*>(m_dataManager));
|
LimeReport::HorizontalLayout* l = dynamic_cast<LimeReport::HorizontalLayout*>(horizontalLayout);
|
||||||
|
if (l)
|
||||||
|
return new TableBuilder(l, m_dataManager);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
TableBuilder::TableBuilder(HorizontalLayout* layout, DataSourceManager* dataManager)
|
TableBuilder::TableBuilder(HorizontalLayout* layout, DataSourceManager* dataManager)
|
||||||
@ -1987,16 +1990,19 @@ void TableBuilder::fillInRowData(QObject* row)
|
|||||||
void TableBuilder::buildTable(const QString& datasourceName)
|
void TableBuilder::buildTable(const QString& datasourceName)
|
||||||
{
|
{
|
||||||
checkBaseLayout();
|
checkBaseLayout();
|
||||||
m_dataManager->dataSourceHolder(datasourceName)->invalidate(IDataSource::RENDER_MODE);
|
IDataSourceHolder* dh = m_dataManager->dataSourceHolder(datasourceName);
|
||||||
IDataSource* ds = m_dataManager->dataSource(datasourceName);
|
if (dh) {
|
||||||
if (ds){
|
dh->invalidate(IDataSource::RENDER_MODE);
|
||||||
bool firstTime = true;
|
IDataSource* ds = m_dataManager->dataSource(datasourceName);
|
||||||
QObject* row = m_horizontalLayout;
|
if (ds){
|
||||||
while(!ds->eof()){
|
bool firstTime = true;
|
||||||
if (!firstTime) row = addRow();
|
QObject* row = m_horizontalLayout;
|
||||||
else firstTime = false;
|
while(!ds->eof()){
|
||||||
fillInRowData(row);
|
if (!firstTime) row = addRow();
|
||||||
ds->next();
|
else firstTime = false;
|
||||||
|
fillInRowData(row);
|
||||||
|
ds->next();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -332,7 +332,7 @@ class DatasourceFunctions : public QObject{
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit DatasourceFunctions(IDataSourceManager* dataManager)
|
explicit DatasourceFunctions(IDataSourceManager* dataManager)
|
||||||
: m_dataManager(dataManager){}
|
: m_dataManager(dynamic_cast<DataSourceManager*>(dataManager)){}
|
||||||
Q_INVOKABLE bool first(const QString& datasourceName);
|
Q_INVOKABLE bool first(const QString& datasourceName);
|
||||||
Q_INVOKABLE bool next(const QString& datasourceName);
|
Q_INVOKABLE bool next(const QString& datasourceName);
|
||||||
Q_INVOKABLE bool prior(const QString& datasourceName);
|
Q_INVOKABLE bool prior(const QString& datasourceName);
|
||||||
@ -340,7 +340,7 @@ public:
|
|||||||
Q_INVOKABLE bool invalidate(const QString& datasourceName);
|
Q_INVOKABLE bool invalidate(const QString& datasourceName);
|
||||||
Q_INVOKABLE QObject *createTableBuilder(QObject *horizontalLayout);
|
Q_INVOKABLE QObject *createTableBuilder(QObject *horizontalLayout);
|
||||||
private:
|
private:
|
||||||
IDataSourceManager* m_dataManager;
|
DataSourceManager* m_dataManager;
|
||||||
};
|
};
|
||||||
|
|
||||||
class ScriptFunctionsManager : public QObject{
|
class ScriptFunctionsManager : public QObject{
|
||||||
|
@ -29,6 +29,8 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
#include "lrsimplecrypt.h"
|
#include "lrsimplecrypt.h"
|
||||||
|
|
||||||
|
namespace LimeReport {
|
||||||
|
|
||||||
#if defined(LP64) || defined(_LP64) || defined(__LP64__)
|
#if defined(LP64) || defined(_LP64) || defined(__LP64__)
|
||||||
typedef unsigned int WORD; /* Should be 32-bit = 4 bytes */
|
typedef unsigned int WORD; /* Should be 32-bit = 4 bytes */
|
||||||
#else
|
#else
|
||||||
@ -62,8 +64,6 @@ void initPt(WTB& pt, QByteArray::Iterator* it, QByteArray::Iterator end){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace LimeReport {
|
|
||||||
|
|
||||||
class ChipperPrivate{
|
class ChipperPrivate{
|
||||||
friend class Chipper;
|
friend class Chipper;
|
||||||
public:
|
public:
|
||||||
@ -117,7 +117,7 @@ QByteArray Chipper::cryptString(QString value)
|
|||||||
{
|
{
|
||||||
QByteArray buff;
|
QByteArray buff;
|
||||||
QByteArray result;
|
QByteArray result;
|
||||||
buff += value;
|
buff += value.toUtf8();
|
||||||
WTB pt, ct, prior;
|
WTB pt, ct, prior;
|
||||||
|
|
||||||
if (!d->isPrepared())
|
if (!d->isPrepared())
|
||||||
|
@ -175,15 +175,15 @@ void ScriptHighlighter::highlightBlock(const QString& text)
|
|||||||
|
|
||||||
bool ScriptHighlighter::isKeyWord(const QString& word)
|
bool ScriptHighlighter::isKeyWord(const QString& word)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < KEYWORDS_COUNT-1; ++i){
|
return m_keywords.contains(word);
|
||||||
if (QLatin1String(keywords[i]) == word) return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ScriptHighlighter::ScriptHighlighter(QTextDocument* parent):
|
ScriptHighlighter::ScriptHighlighter(QTextDocument* parent):
|
||||||
QSyntaxHighlighter(parent)
|
QSyntaxHighlighter(parent)
|
||||||
{
|
{
|
||||||
|
for(int i=0; i<KEYWORDS_COUNT; ++i){
|
||||||
|
m_keywords.insert(keywords[i]);
|
||||||
|
}
|
||||||
|
|
||||||
if ( isColorDark(QPalette().background().color())){
|
if ( isColorDark(QPalette().background().color())){
|
||||||
m_formats[NumberFormat].setForeground(Qt::darkBlue);
|
m_formats[NumberFormat].setForeground(Qt::darkBlue);
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
#define LRSCRIPTHIGHLIGHTER_H
|
#define LRSCRIPTHIGHLIGHTER_H
|
||||||
|
|
||||||
#include <QSyntaxHighlighter>
|
#include <QSyntaxHighlighter>
|
||||||
|
#include <QSet>
|
||||||
|
|
||||||
namespace LimeReport{
|
namespace LimeReport{
|
||||||
|
|
||||||
@ -43,6 +44,8 @@ protected:
|
|||||||
QTextCharFormat m_formats[FormatsCount];
|
QTextCharFormat m_formats[FormatsCount];
|
||||||
bool isKeyWord(const QString& word);
|
bool isKeyWord(const QString& word);
|
||||||
void createParentheisisInfo(const char& literal, TextBlockData *data, const QString& text);
|
void createParentheisisInfo(const char& literal, TextBlockData *data, const QString& text);
|
||||||
|
private:
|
||||||
|
QSet<QString> m_keywords;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -55,6 +55,29 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ImageItemEditor</name>
|
||||||
|
<message>
|
||||||
|
<source>Image Item Editor</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Image</source>
|
||||||
|
<translation type="unfinished">صورة</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>...</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Resource path</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Select image file</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LRVariableDialog</name>
|
<name>LRVariableDialog</name>
|
||||||
<message>
|
<message>
|
||||||
@ -375,18 +398,22 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Keep bottom space</source>
|
<source>Keep bottom space</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Start from new page</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Start new page</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Keep top space</source>
|
<source>Keep top space</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Cut</source>
|
||||||
|
<translation type="unfinished">قص</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Copy</source>
|
||||||
|
<translation type="unfinished">نسخ</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Print if empty</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::BaseDesignIntf</name>
|
<name>LimeReport::BaseDesignIntf</name>
|
||||||
@ -422,6 +449,14 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Create Horizontal Layout</source>
|
<source>Create Horizontal Layout</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Lock item geometry</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Create Vertical Layout</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ConnectionDesc</name>
|
<name>LimeReport::ConnectionDesc</name>
|
||||||
@ -500,10 +535,6 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Use default application connection</source>
|
<source>Use default application connection</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Dont keep credentals in lrxml</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>defaultConnection</source>
|
<source>defaultConnection</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
@ -516,6 +547,10 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Port</source>
|
<source>Port</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Don't keep credentials in lrxml</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::DataBand</name>
|
<name>LimeReport::DataBand</name>
|
||||||
@ -527,6 +562,26 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Use alternate background color</source>
|
<source>Use alternate background color</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Keep footer together</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Keep subdetail together</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Slice last row</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Start from new page</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Start new page</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::DataBrowser</name>
|
<name>LimeReport::DataBrowser</name>
|
||||||
@ -621,6 +676,10 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>DataFooter</source>
|
<source>DataFooter</source>
|
||||||
<translation>ذيل جدول البيانات</translation>
|
<translation>ذيل جدول البيانات</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Print always</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::DataHeaderBand</name>
|
<name>LimeReport::DataHeaderBand</name>
|
||||||
@ -628,6 +687,18 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>DataHeader</source>
|
<source>DataHeader</source>
|
||||||
<translation>رأس جدول البيانات</translation>
|
<translation>رأس جدول البيانات</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reprint on each page</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Repeat on each row</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Print always</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::DataSourceManager</name>
|
<name>LimeReport::DataSourceManager</name>
|
||||||
@ -659,6 +730,10 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Datasource with name "%1" already exists!</source>
|
<source>Datasource with name "%1" already exists!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Unknown parameter "%1" for variable "%2" found!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::DataSourceModel</name>
|
<name>LimeReport::DataSourceModel</name>
|
||||||
@ -932,6 +1007,30 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>TitleAlignCenter</source>
|
<source>TitleAlignCenter</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Layout</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Table</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Millimeters</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Inches</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Scale</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Split</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::FlagsPropItem</name>
|
<name>LimeReport::FlagsPropItem</name>
|
||||||
@ -1049,6 +1148,18 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Watermark</source>
|
<source>Watermark</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Edit</source>
|
||||||
|
<translation type="unfinished">تحرير</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Images (*.gif *.icns *.ico *.jpeg *.tga *.tiff *.wbmp *.webp *.png *.jpg *.bmp);;All(*.*)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Ext.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ItemLocationPropItem</name>
|
<name>LimeReport::ItemLocationPropItem</name>
|
||||||
@ -1156,6 +1267,28 @@ p, li { white-space: pre-wrap; }
|
|||||||
<translation>الكائن</translation>
|
<translation>الكائن</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>LimeReport::ObjectInspectorWidget</name>
|
||||||
|
<message>
|
||||||
|
<source>Clear</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Filter</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Translate properties</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>LimeReport::PDFExporter</name>
|
||||||
|
<message>
|
||||||
|
<source>Export to PDF</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::PageFooter</name>
|
<name>LimeReport::PageFooter</name>
|
||||||
<message>
|
<message>
|
||||||
@ -1207,14 +1340,14 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Form</source>
|
<source>Form</source>
|
||||||
<translation type="unfinished">نموذج</translation>
|
<translation type="unfinished">نموذج</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>PDF file name</source>
|
|
||||||
<translation type="unfinished">أسم ملف PDF</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Report file name</source>
|
<source>Report file name</source>
|
||||||
<translation type="unfinished">أسم التقرير</translation>
|
<translation type="unfinished">أسم التقرير</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>%1 file name</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::PreviewReportWindow</name>
|
<name>LimeReport::PreviewReportWindow</name>
|
||||||
@ -1226,10 +1359,6 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Report</source>
|
<source>Report</source>
|
||||||
<translation type="unfinished">تقرير</translation>
|
<translation type="unfinished">تقرير</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>toolBar</source>
|
|
||||||
<translation type="unfinished">شريط الأدوات</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Print</source>
|
<source>Print</source>
|
||||||
<translation type="unfinished">طباعة</translation>
|
<translation type="unfinished">طباعة</translation>
|
||||||
@ -1330,6 +1459,46 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Text align</source>
|
<source>Text align</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>MainToolBar</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>EditModeTools</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>InsertTextItem</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Add new TextItem</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Selection Mode</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Delete Item</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Del</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Printing</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Attention</source>
|
||||||
|
<translation type="unfinished">Attention</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The printing is in process</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ProxyHolder</name>
|
<name>LimeReport::ProxyHolder</name>
|
||||||
@ -1800,16 +1969,65 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>variable</source>
|
<source>variable</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>LimeReport::RectMMPropItem</name>
|
|
||||||
<message>
|
<message>
|
||||||
<source>width</source>
|
<source>replaceCRwithBR</source>
|
||||||
<translation>العرض</translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>height</source>
|
<source>hideIfEmpty</source>
|
||||||
<translation>الأرتفاع</translation>
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>hideEmptyItems</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>useExternalPainter</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>layoutSpacing</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>printerName</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>fontLetterSpacing</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>hideText</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>option3</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>units</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>geometryLocked</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>printBehavior</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>shiftItems</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>showLegend</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>removeGap</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@ -1823,6 +2041,17 @@ p, li { white-space: pre-wrap; }
|
|||||||
<translation>الأرتفاع</translation>
|
<translation>الأرتفاع</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>LimeReport::RectUnitPropItem</name>
|
||||||
|
<message>
|
||||||
|
<source>width</source>
|
||||||
|
<translation type="unfinished">العرض</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>height</source>
|
||||||
|
<translation type="unfinished">الأرتفاع</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ReportDesignWidget</name>
|
<name>LimeReport::ReportDesignWidget</name>
|
||||||
<message>
|
<message>
|
||||||
@ -2020,18 +2249,6 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Report file name</source>
|
<source>Report file name</source>
|
||||||
<translation>أسم التقرير</translation>
|
<translation>أسم التقرير</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Rendering report</source>
|
|
||||||
<translation>جاري قراءة التقرير</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Abort</source>
|
|
||||||
<translation>إجهاض</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source> page rendered</source>
|
|
||||||
<translation>تم إنشاء الصفحة</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Warning</source>
|
<source>Warning</source>
|
||||||
<translation type="unfinished">تحذير</translation>
|
<translation type="unfinished">تحذير</translation>
|
||||||
@ -2120,6 +2337,38 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Hide right panel | Alt+R</source>
|
<source>Hide right panel | Alt+R</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Rendered %1 pages</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Cancel report rendering</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Vertical layout</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Lock selected items</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Unlock selected items</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Select one level items</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Attention</source>
|
||||||
|
<translation type="unfinished">Attention</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The rendering is in process</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ReportEnginePrivate</name>
|
<name>LimeReport::ReportEnginePrivate</name>
|
||||||
@ -2149,6 +2398,10 @@ This preview is no longer valid.</source>
|
|||||||
<source>Designer not found!</source>
|
<source>Designer not found!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>%1 file name</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ReportFooter</name>
|
<name>LimeReport::ReportFooter</name>
|
||||||
@ -2285,6 +2538,41 @@ This preview is no longer valid.</source>
|
|||||||
<source>Datasource with name: "%1" already exists!</source>
|
<source>Datasource with name: "%1" already exists!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>CSV</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Separator</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>;</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Use first row as header</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>LimeReport::SVGItem</name>
|
||||||
|
<message>
|
||||||
|
<source>SVG Image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>SVG (*.svg)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Edit</source>
|
||||||
|
<translation type="unfinished">تحرير</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Watermark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ScriptBrowser</name>
|
<name>LimeReport::ScriptBrowser</name>
|
||||||
@ -2457,6 +2745,10 @@ This preview is no longer valid.</source>
|
|||||||
<source>Function manager with name "%1" already exists!</source>
|
<source>Function manager with name "%1" already exists!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>RowIndex</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::SettingDialog</name>
|
<name>LimeReport::SettingDialog</name>
|
||||||
@ -2480,24 +2772,40 @@ This preview is no longer valid.</source>
|
|||||||
<source>Horizontal grid step</source>
|
<source>Horizontal grid step</source>
|
||||||
<translation type="unfinished">تباعد الشبكة الأفقي</translation>
|
<translation type="unfinished">تباعد الشبكة الأفقي</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Designer Setting</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Report Setting</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Suppress absent fields and variables warning</source>
|
<source>Suppress absent fields and variables warning</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Use dark theme</source>
|
<source>Language</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Language</source>
|
<source>Designer settings</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Theme</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Report units</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Script editor settings</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Font</source>
|
||||||
|
<translation type="unfinished">خط</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Indent size</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Report settings</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
@ -2515,6 +2823,13 @@ This preview is no longer valid.</source>
|
|||||||
<translation>رأس البيانات الفرعية</translation>
|
<translation>رأس البيانات الفرعية</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>LimeReport::SvgEditor</name>
|
||||||
|
<message>
|
||||||
|
<source>Select image file</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::TearOffBand</name>
|
<name>LimeReport::TearOffBand</name>
|
||||||
<message>
|
<message>
|
||||||
@ -2591,6 +2906,10 @@ This preview is no longer valid.</source>
|
|||||||
<source>Watermark</source>
|
<source>Watermark</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Hide if empty</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::TextItemEditor</name>
|
<name>LimeReport::TextItemEditor</name>
|
||||||
@ -2602,22 +2921,10 @@ This preview is no longer valid.</source>
|
|||||||
<source>Content</source>
|
<source>Content</source>
|
||||||
<translation type="unfinished">المحتوى</translation>
|
<translation type="unfinished">المحتوى</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Editor settings</source>
|
|
||||||
<translation type="unfinished">إعدادات المحرر</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Editor font</source>
|
|
||||||
<translation type="unfinished">خطوط المحرر</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Cancel</source>
|
<source>Cancel</source>
|
||||||
<translation type="unfinished">إلغاء الأمر</translation>
|
<translation type="unfinished">إلغاء الأمر</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>...</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Ok</source>
|
<source>Ok</source>
|
||||||
<translation type="unfinished">موافق</translation>
|
<translation type="unfinished">موافق</translation>
|
||||||
@ -2915,5 +3222,57 @@ This preview is no longer valid.</source>
|
|||||||
<source>Datasource manager not found</source>
|
<source>Datasource manager not found</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Export to PDF</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>SVG Item</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>VLayout</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Dark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Light</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Default</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Millimeters</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Inches</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>margin</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>''</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>series</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Series</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
@ -55,6 +55,29 @@
|
|||||||
<translation>Nombre de la Serie</translation>
|
<translation>Nombre de la Serie</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ImageItemEditor</name>
|
||||||
|
<message>
|
||||||
|
<source>Image Item Editor</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Image</source>
|
||||||
|
<translation type="unfinished">Imagen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>...</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Resource path</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Select image file</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LRVariableDialog</name>
|
<name>LRVariableDialog</name>
|
||||||
<message>
|
<message>
|
||||||
@ -515,6 +538,10 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Print if empty</source>
|
<source>Print if empty</source>
|
||||||
<translation>Imprimir si está vacío</translation>
|
<translation>Imprimir si está vacío</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Keep top space</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::BaseDesignIntf</name>
|
<name>LimeReport::BaseDesignIntf</name>
|
||||||
@ -554,6 +581,10 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Create Vertical Layout</source>
|
<source>Create Vertical Layout</source>
|
||||||
<translation>Crear diseño vertical</translation>
|
<translation>Crear diseño vertical</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Lock item geometry</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ConnectionDesc</name>
|
<name>LimeReport::ConnectionDesc</name>
|
||||||
@ -632,10 +663,6 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Use default application connection</source>
|
<source>Use default application connection</source>
|
||||||
<translation>Utilice la conexión de aplicación predeterminada</translation>
|
<translation>Utilice la conexión de aplicación predeterminada</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Dont keep credentals in lrxml</source>
|
|
||||||
<translation>No mantener credentals en el lrxml</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>defaultConnection</source>
|
<source>defaultConnection</source>
|
||||||
<translation>Conexión por defecto</translation>
|
<translation>Conexión por defecto</translation>
|
||||||
@ -648,6 +675,10 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Port</source>
|
<source>Port</source>
|
||||||
<translation>Puerto</translation>
|
<translation>Puerto</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Don't keep credentials in lrxml</source>
|
||||||
|
<translation>No mantener credentals en el lrxml</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::DataBand</name>
|
<name>LimeReport::DataBand</name>
|
||||||
@ -1112,6 +1143,22 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Table</source>
|
<source>Table</source>
|
||||||
<translation>Tabla</translation>
|
<translation>Tabla</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Millimeters</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Inches</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Scale</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Split</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::FlagsPropItem</name>
|
<name>LimeReport::FlagsPropItem</name>
|
||||||
@ -1233,6 +1280,14 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Ext.</source>
|
<source>Ext.</source>
|
||||||
<translation>Ext.</translation>
|
<translation>Ext.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Edit</source>
|
||||||
|
<translation type="unfinished">Editar</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Images (*.gif *.icns *.ico *.jpeg *.tga *.tiff *.wbmp *.webp *.png *.jpg *.bmp);;All(*.*)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ItemLocationPropItem</name>
|
<name>LimeReport::ItemLocationPropItem</name>
|
||||||
@ -1350,6 +1405,10 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Filter</source>
|
<source>Filter</source>
|
||||||
<translation>Filtrar</translation>
|
<translation>Filtrar</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Translate properties</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::PDFExporter</name>
|
<name>LimeReport::PDFExporter</name>
|
||||||
@ -1432,10 +1491,6 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Report</source>
|
<source>Report</source>
|
||||||
<translation>Reporte</translation>
|
<translation>Reporte</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>toolBar</source>
|
|
||||||
<translation>Barra herramientas</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Print</source>
|
<source>Print</source>
|
||||||
<translation>Imprimir</translation>
|
<translation>Imprimir</translation>
|
||||||
@ -1532,10 +1587,6 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Show toolbar</source>
|
<source>Show toolbar</source>
|
||||||
<translation>Mostrar barra herramientas</translation>
|
<translation>Mostrar barra herramientas</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>toolBar_2</source>
|
|
||||||
<translation>barra herramientas_2</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>InsertTextItem</source>
|
<source>InsertTextItem</source>
|
||||||
<translation>Insertar objeto de texto</translation>
|
<translation>Insertar objeto de texto</translation>
|
||||||
@ -1556,6 +1607,26 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Del</source>
|
<source>Del</source>
|
||||||
<translation>Supr</translation>
|
<translation>Supr</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>MainToolBar</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>EditModeTools</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Printing</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Attention</source>
|
||||||
|
<translation type="unfinished">Atención</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The printing is in process</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ProxyHolder</name>
|
<name>LimeReport::ProxyHolder</name>
|
||||||
@ -2062,16 +2133,29 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>option3</source>
|
<source>option3</source>
|
||||||
<translation>Opción3</translation>
|
<translation>Opción3</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
|
||||||
<context>
|
|
||||||
<name>LimeReport::RectMMPropItem</name>
|
|
||||||
<message>
|
<message>
|
||||||
<source>width</source>
|
<source>units</source>
|
||||||
<translation>ancho</translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>height</source>
|
<source>geometryLocked</source>
|
||||||
<translation>alto</translation>
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>printBehavior</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>shiftItems</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>showLegend</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>removeGap</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@ -2085,6 +2169,17 @@ p, li { white-space: pre-wrap; }
|
|||||||
<translation>alto</translation>
|
<translation>alto</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>LimeReport::RectUnitPropItem</name>
|
||||||
|
<message>
|
||||||
|
<source>width</source>
|
||||||
|
<translation type="unfinished">ancho</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>height</source>
|
||||||
|
<translation type="unfinished">alto</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ReportDesignWidget</name>
|
<name>LimeReport::ReportDesignWidget</name>
|
||||||
<message>
|
<message>
|
||||||
@ -2302,18 +2397,6 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Report file name</source>
|
<source>Report file name</source>
|
||||||
<translation>Nombre de archivo del reporte</translation>
|
<translation>Nombre de archivo del reporte</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Rendering report</source>
|
|
||||||
<translation>Generando reporte</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Abort</source>
|
|
||||||
<translation>Abortar</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source> page rendered</source>
|
|
||||||
<translation> página generada</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Warning</source>
|
<source>Warning</source>
|
||||||
<translation>Advertencia</translation>
|
<translation>Advertencia</translation>
|
||||||
@ -2386,6 +2469,34 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Vertical layout</source>
|
<source>Vertical layout</source>
|
||||||
<translation>Diseño vertical</translation>
|
<translation>Diseño vertical</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Rendered %1 pages</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Cancel report rendering</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Lock selected items</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Unlock selected items</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Select one level items</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Attention</source>
|
||||||
|
<translation type="unfinished">Atención</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The rendering is in process</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ReportEnginePrivate</name>
|
<name>LimeReport::ReportEnginePrivate</name>
|
||||||
@ -2574,6 +2685,25 @@ Esta vista previa ya no es válida.</translation>
|
|||||||
<translation>Usa la primera fila como encabezado</translation>
|
<translation>Usa la primera fila como encabezado</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>LimeReport::SVGItem</name>
|
||||||
|
<message>
|
||||||
|
<source>SVG Image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>SVG (*.svg)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Edit</source>
|
||||||
|
<translation type="unfinished">Editar</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Watermark</source>
|
||||||
|
<translation type="unfinished">Marca de agua</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ScriptBrowser</name>
|
<name>LimeReport::ScriptBrowser</name>
|
||||||
<message>
|
<message>
|
||||||
@ -2776,10 +2906,6 @@ Esta vista previa ya no es válida.</translation>
|
|||||||
<source>Suppress absent fields and variables warning</source>
|
<source>Suppress absent fields and variables warning</source>
|
||||||
<translation>Suprimir campos ausentes y variables de advertencia.</translation>
|
<translation>Suprimir campos ausentes y variables de advertencia.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Use dark theme</source>
|
|
||||||
<translation type="vanished">Usar tema oscuro</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Language</source>
|
<source>Language</source>
|
||||||
<translation>Idioma</translation>
|
<translation>Idioma</translation>
|
||||||
@ -2808,6 +2934,10 @@ Esta vista previa ya no es válida.</translation>
|
|||||||
<source>Theme</source>
|
<source>Theme</source>
|
||||||
<translation>Tema</translation>
|
<translation>Tema</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Report units</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::SubDetailBand</name>
|
<name>LimeReport::SubDetailBand</name>
|
||||||
@ -2823,6 +2953,13 @@ Esta vista previa ya no es válida.</translation>
|
|||||||
<translation>Encabezado sub-detalle</translation>
|
<translation>Encabezado sub-detalle</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>LimeReport::SvgEditor</name>
|
||||||
|
<message>
|
||||||
|
<source>Select image file</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::TearOffBand</name>
|
<name>LimeReport::TearOffBand</name>
|
||||||
<message>
|
<message>
|
||||||
@ -3227,5 +3364,45 @@ Esta vista previa ya no es válida.</translation>
|
|||||||
<source>Default</source>
|
<source>Default</source>
|
||||||
<translation>Por defecto</translation>
|
<translation>Por defecto</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>SVG Item</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>image</source>
|
||||||
|
<translation type="unfinished">imagen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Dark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Light</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Millimeters</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Inches</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>margin</source>
|
||||||
|
<translation type="unfinished">margen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>''</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>series</source>
|
||||||
|
<translation type="unfinished">series</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Series</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -540,10 +540,6 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Ok</source>
|
<source>Ok</source>
|
||||||
<translation>Ок</translation>
|
<translation>Ок</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Dont keep credentals in lrxml</source>
|
|
||||||
<translation>Не хранить учетные данные в lrxml</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>defaultConnection</source>
|
<source>defaultConnection</source>
|
||||||
<translation>Соединение по умолчанию</translation>
|
<translation>Соединение по умолчанию</translation>
|
||||||
@ -556,6 +552,10 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Port</source>
|
<source>Port</source>
|
||||||
<translation>Порт</translation>
|
<translation>Порт</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Don't keep credentials in lrxml</source>
|
||||||
|
<translation>Не хранить учетные данные в lrxml</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::DataBand</name>
|
<name>LimeReport::DataBand</name>
|
||||||
|
@ -523,10 +523,6 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Auto connect</source>
|
<source>Auto connect</source>
|
||||||
<translation>自动连接</translation>
|
<translation>自动连接</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Dont keep credentals in lrxml</source>
|
|
||||||
<translation>不在lrxml文件中保存凭证</translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Check connection</source>
|
<source>Check connection</source>
|
||||||
<translation>检查连接</translation>
|
<translation>检查连接</translation>
|
||||||
@ -563,6 +559,10 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>defaultConnection</source>
|
<source>defaultConnection</source>
|
||||||
<translation>默认连接</translation>
|
<translation>默认连接</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Don't keep credentials in lrxml</source>
|
||||||
|
<translation>不在lrxml文件中保存凭证</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::DataBand</name>
|
<name>LimeReport::DataBand</name>
|
||||||
@ -1168,6 +1168,10 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Edit</source>
|
<source>Edit</source>
|
||||||
<translation>编辑</translation>
|
<translation>编辑</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Images (*.gif *.icns *.ico *.jpeg *.tga *.tiff *.wbmp *.webp *.png *.jpg *.bmp);;All(*.*)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ItemLocationPropItem</name>
|
<name>LimeReport::ItemLocationPropItem</name>
|
||||||
@ -2029,6 +2033,14 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>shiftItems</source>
|
<source>shiftItems</source>
|
||||||
<translation>偏移组件</translation>
|
<translation>偏移组件</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>showLegend</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>removeGap</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::RectPropItem</name>
|
<name>LimeReport::RectPropItem</name>
|
||||||
@ -2557,6 +2569,25 @@ This preview is no longer valid.</source>
|
|||||||
<translation>第一行为头</translation>
|
<translation>第一行为头</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>LimeReport::SVGItem</name>
|
||||||
|
<message>
|
||||||
|
<source>SVG Image</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>SVG (*.svg)</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Edit</source>
|
||||||
|
<translation type="unfinished">编辑</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Watermark</source>
|
||||||
|
<translation type="unfinished">水印</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ScriptBrowser</name>
|
<name>LimeReport::ScriptBrowser</name>
|
||||||
<message>
|
<message>
|
||||||
@ -2806,6 +2837,13 @@ This preview is no longer valid.</source>
|
|||||||
<translation>子细节头</translation>
|
<translation>子细节头</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>LimeReport::SvgEditor</name>
|
||||||
|
<message>
|
||||||
|
<source>Select image file</source>
|
||||||
|
<translation type="unfinished">选择图像文件</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::TearOffBand</name>
|
<name>LimeReport::TearOffBand</name>
|
||||||
<message>
|
<message>
|
||||||
@ -3234,5 +3272,21 @@ This preview is no longer valid.</source>
|
|||||||
<source>''</source>
|
<source>''</source>
|
||||||
<translation>''</translation>
|
<translation>''</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>SVG Item</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>image</source>
|
||||||
|
<translation type="unfinished">图像</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>series</source>
|
||||||
|
<translation type="unfinished">数据系列</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Series</source>
|
||||||
|
<translation type="unfinished">数据系列</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
Loading…
Reference in New Issue
Block a user