0
0
mirror of https://github.com/fralx/LimeReport.git synced 2025-01-12 01:21:03 +03:00

Merge pull request #2 from fralx/master

Recent code change from origin repository
This commit is contained in:
wartime 2018-05-24 23:45:55 +08:00 committed by GitHub
commit 7d059fe011
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
27 changed files with 453 additions and 208 deletions

View File

@ -9,6 +9,7 @@ contains(CONFIG, static_build){
!contains(CONFIG, staticlib){ !contains(CONFIG, staticlib){
CONFIG += dll CONFIG += dll
DEFINES += QZINT_LIBRARY DEFINES += QZINT_LIBRARY
} }
include(../../../common.pri) include(../../../common.pri)
@ -26,7 +27,15 @@ unix{
INCLUDEPATH += $$PWD/../backend INCLUDEPATH += $$PWD/../backend
DEFINES += _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_WARNINGS ZINT_VERSION=\\\"$$VERSION\\\" DEFINES += _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_WARNINGS ZINT_VERSION=\\\"$$VERSION\\\"
TARGET = QtZint
CONFIG(debug, debug|release) {
TARGET = QtZintd
} else {
TARGET = QtZint
}
!contains(DEFINES, NO_PNG) { !contains(DEFINES, NO_PNG) {
SOURCES += $$PWD/../backend/png.c SOURCES += $$PWD/../backend/png.c

View File

@ -62,7 +62,7 @@ RCC_DIR = $${ARCH_DIR}/$${BUILD_TYPE}/rcc
LIMEREPORT_VERSION_MAJOR = 1 LIMEREPORT_VERSION_MAJOR = 1
LIMEREPORT_VERSION_MINOR = 4 LIMEREPORT_VERSION_MINOR = 4
LIMEREPORT_VERSION_RELEASE = 63 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}\"

View File

@ -26,24 +26,37 @@ macx{
} }
unix:{ unix:{
LIBS += -L$${DEST_LIBS} -llimereport LIBS += -L$${DEST_LIBS}
!contains(CONFIG, static_build){ CONFIG(debug, debug|release) {
contains(CONFIG,zint){ LIBS += -llimereportd
LIBS += -L$${DEST_LIBS} -lQtZint } else {
} LIBS += -llimereport
} }
DESTDIR = $$DEST_DIR
# QMAKE_POST_LINK += mkdir -p $$quote($$REPORTS_DIR) | !contains(CONFIG, static_build){
QMAKE_POST_LINK += $$QMAKE_COPY_DIR $$quote($$EXTRA_DIR) $$quote($$REPORTS_DIR) $$escape_expand(\n\t) contains(CONFIG,zint){
linux{ LIBS += -L$${DEST_LIBS}
#Link share lib to ../lib rpath
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN CONFIG(debug, debug|release) {
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/lib LIBS += -lQtZintd
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/../lib } else {
QMAKE_LFLAGS_RPATH += #. .. ./libs LIBS += -lQtZint
} }
target.path = $${DEST_DIR} }
INSTALLS = target }
DESTDIR = $$DEST_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)
linux{
#Link share lib to ../lib rpath
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/lib
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/../lib
QMAKE_LFLAGS_RPATH += #. .. ./libs
}
target.path = $${DEST_DIR}
INSTALLS = target
} }
win32 { win32 {
@ -56,11 +69,23 @@ win32 {
QMAKE_POST_LINK += $$QMAKE_COPY_DIR $$quote($$EXTRA_DIR\\*) $$quote($$REPORTS_DIR\\demo_reports) $$escape_expand(\\n\\t) QMAKE_POST_LINK += $$QMAKE_COPY_DIR $$quote($$EXTRA_DIR\\*) $$quote($$REPORTS_DIR\\demo_reports) $$escape_expand(\\n\\t)
!contains(CONFIG, static_build){ !contains(CONFIG, static_build){
contains(CONFIG,zint){
LIBS += -L$${DEST_LIBS} -lQtZint contains(CONFIG,zint){
} LIBS += -L$${DEST_LIBS}
CONFIG(debug, debug|release) {
LIBS += -lQtZintd
} else {
LIBS += -lQtZint
}
}
} }
LIBS += -L$${DEST_LIBS} -llimereport
LIBS += -L$${DEST_LIBS}
CONFIG(debug, debug|release) {
LIBS += -llimereportd
} else {
LIBS += -llimereport
}
} }

View File

@ -26,21 +26,31 @@ macx{
} }
unix:{ unix:{
LIBS += -L$${DEST_LIBS} -llimereport LIBS += -L$${DEST_LIBS}
!contains(CONFIG, static_build){ CONFIG(debug, debug|release) {
contains(CONFIG,zint){ LIBS += -llimereportd
LIBS += -L$${DEST_LIBS} -lQtZint } else {
} LIBS += -llimereport
} }
!contains(CONFIG, static_build){
contains(CONFIG,zint){
LIBS += -L$${DEST_LIBS}
CONFIG(debug, debug|release) {
LIBS += -lQtZintd
} else {
LIBS += -lQtZint
}
}
}
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 $$quote($$EXTRA_DIR) $$quote($$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
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/lib QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/lib
QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/../lib QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN/../lib
QMAKE_LFLAGS_RPATH += #. .. ./libs QMAKE_LFLAGS_RPATH += #. .. ./libs
} }
target.path = $${DEST_DIR} target.path = $${DEST_DIR}
INSTALLS = target INSTALLS = target
} }
@ -53,11 +63,22 @@ win32 {
DESTDIR = $$DEST_DIR DESTDIR = $$DEST_DIR
RC_FILE += mainicon.rc RC_FILE += mainicon.rc
!contains(CONFIG, static_build){ !contains(CONFIG, static_build){
contains(CONFIG,zint){ contains(CONFIG,zint){
LIBS += -L$${DEST_LIBS} -lQtZint LIBS += -L$${DEST_LIBS}
} CONFIG(debug, debug|release) {
LIBS += -lQtZintd
} else {
LIBS += -lQtZint
}
}
}
LIBS += -L$${DEST_LIBS}
CONFIG(debug, debug|release) {
LIBS += -llimereportd
} else {
LIBS += -llimereport
} }
LIBS += -L$${DEST_LIBS} -llimereport
QMAKE_POST_LINK += $$QMAKE_COPY_DIR \"$$EXTRA_DIR\" \"$$REPORTS_DIR\\demo_reports\" $$escape_expand(\\n\\t) QMAKE_POST_LINK += $$QMAKE_COPY_DIR \"$$EXTRA_DIR\" \"$$REPORTS_DIR\\demo_reports\" $$escape_expand(\\n\\t)
} }

View File

@ -17,12 +17,22 @@ macx{
} }
unix:{ unix:{
LIBS += -L$${DEST_LIBS} -llimereport LIBS += -L$${DEST_LIBS}
!contains(CONFIG, static_build){ CONFIG(debug, debug|release) {
contains(CONFIG,zint){ LIBS += -llimereportd
LIBS += -L$${DEST_LIBS} -lQtZint } else {
} LIBS += -llimereport
} }
!contains(CONFIG, static_build){
contains(CONFIG,zint){
LIBS += -L$${DEST_LIBS}
CONFIG(debug, debug|release) {
LIBS += -lQtZintd
} else {
LIBS += -lQtZint
}
}
}
DESTDIR = $$DEST_DIR DESTDIR = $$DEST_DIR
linux{ linux{
#Link share lib to ../lib rpath #Link share lib to ../lib rpath
@ -43,10 +53,21 @@ win32 {
DESTDIR = $$DEST_DIR DESTDIR = $$DEST_DIR
RC_FILE += mainicon.rc RC_FILE += mainicon.rc
!contains(CONFIG, static_build){ !contains(CONFIG, static_build){
contains(CONFIG,zint){ contains(CONFIG,zint){
LIBS += -L$${DEST_LIBS} -lQtZint LIBS += -L$${DEST_LIBS}
} CONFIG(debug, debug|release) {
LIBS += -lQtZintd
} else {
LIBS += -lQtZint
}
}
}
LIBS += -L$${DEST_LIBS}
CONFIG(debug, debug|release) {
LIBS += -llimereportd
} else {
LIBS += -llimereport
} }
LIBS += -L$${DEST_LIBS} -llimereport
} }

View File

@ -47,6 +47,7 @@ class ImageItem : public LimeReport::ItemDesignIntf
Q_PROPERTY(bool keepAspectRatio READ keepAspectRatio WRITE setKeepAspectRatio) Q_PROPERTY(bool keepAspectRatio READ keepAspectRatio WRITE setKeepAspectRatio)
Q_PROPERTY(bool center READ center WRITE setCenter) Q_PROPERTY(bool center READ center WRITE setCenter)
Q_PROPERTY(QString resourcePath READ resourcePath WRITE setResourcePath) Q_PROPERTY(QString resourcePath READ resourcePath WRITE setResourcePath)
Q_PROPERTY(bool watermark READ isWatermark WRITE setWatermark)
public: public:
enum Format { enum Format {
Binary = 0, Binary = 0,

View File

@ -77,8 +77,8 @@ void LimeReport::ItemLocationPropItem::setPropertyEditorData(QWidget *propertyEd
} }
void LimeReport::ItemLocationPropItem::setModelData(QWidget *propertyEditor, QAbstractItemModel *model, const QModelIndex &index){ void LimeReport::ItemLocationPropItem::setModelData(QWidget *propertyEditor, QAbstractItemModel *model, const QModelIndex &index){
object()->setProperty(propertyName().toLatin1(),stringToLocation(qobject_cast<ComboBoxEditor*>(propertyEditor)->text()));
model->setData(index,object()->property(propertyName().toLatin1())); model->setData(index,object()->property(propertyName().toLatin1()));
setValueToObject(propertyName(), propertyValue());
} }
QString LimeReport::ItemLocationPropItem::locationToString(LimeReport::ItemDesignIntf::LocationType location) const{ QString LimeReport::ItemLocationPropItem::locationToString(LimeReport::ItemDesignIntf::LocationType location) const{
@ -92,6 +92,5 @@ LimeReport::ItemDesignIntf::LocationType LimeReport::ItemLocationPropItem::strin
void LimeReport::ItemLocationPropItem::slotLocationChanged(const QString &text){ void LimeReport::ItemLocationPropItem::slotLocationChanged(const QString &text){
if ( locationToString(object()->property(propertyName().toLatin1()).toInt())!=text){ if ( locationToString(object()->property(propertyName().toLatin1()).toInt())!=text){
object()->setProperty(propertyName().toLatin1(),stringToLocation(text)); object()->setProperty(propertyName().toLatin1(),stringToLocation(text));
dynamic_cast<ComboBoxEditor*>(sender())->setTextValue(locationToString(object()->property(propertyName().toLatin1()).toInt()));
} }
} }

View File

@ -543,6 +543,14 @@ void TextItem::setTextLayoutDirection(const Qt::LayoutDirection &textLayoutDirec
} }
} }
void TextItem::setWatermark(bool watermark)
{
if (watermark){
setBackgroundMode(TransparentMode);
}
BaseDesignIntf::setWatermark(watermark);
}
QString TextItem::followTo() const QString TextItem::followTo() const
{ {

View File

@ -71,6 +71,7 @@ class TextItem : public LimeReport::ContentItemDesignIntf, IPageInit {
Q_PROPERTY(BrushStyle backgroundBrushStyle READ backgroundBrushStyle WRITE setBackgroundBrushStyle) Q_PROPERTY(BrushStyle backgroundBrushStyle READ backgroundBrushStyle WRITE setBackgroundBrushStyle)
Q_PROPERTY(qreal textIndent READ textIndent WRITE setTextIndent) Q_PROPERTY(qreal textIndent READ textIndent WRITE setTextIndent)
Q_PROPERTY(Qt::LayoutDirection textLayoutDirection READ textLayoutDirection WRITE setTextLayoutDirection) Q_PROPERTY(Qt::LayoutDirection textLayoutDirection READ textLayoutDirection WRITE setTextLayoutDirection)
Q_PROPERTY(bool watermark READ isWatermark WRITE setWatermark)
public: public:
enum AutoWidth{NoneAutoWidth,MaxWordLength,MaxStringLength}; enum AutoWidth{NoneAutoWidth,MaxWordLength,MaxStringLength};
@ -164,6 +165,8 @@ public:
Qt::LayoutDirection textLayoutDirection() const; Qt::LayoutDirection textLayoutDirection() const;
void setTextLayoutDirection(const Qt::LayoutDirection &textLayoutDirection); void setTextLayoutDirection(const Qt::LayoutDirection &textLayoutDirection);
void setWatermark(bool watermark);
protected: protected:
void updateLayout(); void updateLayout();
bool isNeedExpandContent() const; bool isNeedExpandContent() const;

View File

@ -1,4 +1,13 @@
TARGET = limereport #TARGET = limereport
CONFIG(debug, debug|release) {
TARGET = limereportd
} else {
TARGET = limereport
}
TEMPLATE = lib TEMPLATE = lib
contains(CONFIG, static_build){ contains(CONFIG, static_build){
@ -73,7 +82,14 @@ contains(CONFIG,zint){
message(zint) message(zint)
INCLUDEPATH += $$ZINT_PATH/backend $$ZINT_PATH/backend_qt4 INCLUDEPATH += $$ZINT_PATH/backend $$ZINT_PATH/backend_qt4
DEPENDPATH += $$ZINT_PATH/backend $$ZINT_PATH/backend_qt4 DEPENDPATH += $$ZINT_PATH/backend $$ZINT_PATH/backend_qt4
LIBS += -L$${DEST_LIBS} -lQtZint LIBS += -L$${DEST_LIBS}
CONFIG(debug, debug|release) {
LIBS += -lQtZintd
} else {
LIBS += -lQtZint
}
} }
####### #######

View File

@ -182,14 +182,27 @@ QString BandDesignIntf::translateBandName(const BaseDesignIntf* item) const{
} }
} }
void BandDesignIntf::setBackgroundModeProperty(BaseDesignIntf::BGMode value)
{
if (value!=backgroundMode()){
BaseDesignIntf::BGMode oldValue = backgroundMode();
setBackgroundMode(value);
notify("backgroundMode",oldValue,value);
}
}
void BandDesignIntf::setBackgroundOpacity(int value)
{
if (opacity()!=value){
int oldValue = opacity();
setOpacity(value);
notify("backgroundOpacity",oldValue,value);
}
}
void BandDesignIntf::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) void BandDesignIntf::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{ {
prepareRect(painter, option, widget);
if ( !(backgroundColor() == Qt::white && backgroundBrushStyle() == SolidPattern) ) {
QBrush brush(backgroundColor(), static_cast<Qt::BrushStyle>(backgroundBrushStyle()));
brush.setTransform(painter->worldTransform().inverted());
painter->fillRect(rect(), brush);
}
if (itemMode() & DesignMode){ if (itemMode() & DesignMode){
painter->save(); painter->save();
@ -585,7 +598,7 @@ BaseDesignIntf *BandDesignIntf::cloneBottomPart(int height, QObject *owner, QGra
BaseDesignIntf* tmpItem = item->cloneItem(item->itemMode(),bottomPart,bottomPart); BaseDesignIntf* tmpItem = item->cloneItem(item->itemMode(),bottomPart,bottomPart);
tmpItem->setPos(tmpItem->pos().x(), (tmpItem->pos().y()-height)+borderLineSize()); tmpItem->setPos(tmpItem->pos().x(), (tmpItem->pos().y()-height)+borderLineSize());
} }
else if ((item->geometry().top()<height) && (item->geometry().bottom()>height)){ else if ((item->geometry().top()<=height) && (item->geometry().bottom()>height)){
int sliceHeight = height-item->geometry().top(); int sliceHeight = height-item->geometry().top();
if (item->isSplittable() && item->canBeSplitted(sliceHeight)) { if (item->isSplittable() && item->canBeSplitted(sliceHeight)) {
BaseDesignIntf* tmpItem=item->cloneBottomPart(sliceHeight,bottomPart,bottomPart); BaseDesignIntf* tmpItem=item->cloneBottomPart(sliceHeight,bottomPart,bottomPart);
@ -597,7 +610,7 @@ BaseDesignIntf *BandDesignIntf::cloneBottomPart(int height, QObject *owner, QGra
moveItemsDown(item->pos().y()+item->height(), sizeOffset + bottomOffset); moveItemsDown(item->pos().y()+item->height(), sizeOffset + bottomOffset);
} }
} else { } else {
if ((item->geometry().bottom()-height)>height){ if ((item->geometry().bottom()-height)>=height){
BaseDesignIntf* tmpItem = item->cloneItem(item->itemMode(),bottomPart,bottomPart); BaseDesignIntf* tmpItem = item->cloneItem(item->itemMode(),bottomPart,bottomPart);
tmpItem->setPos(tmpItem->pos().x(),borderLineSize()); tmpItem->setPos(tmpItem->pos().x(),borderLineSize());
tmpItem->setHeight((this->height()-height)); tmpItem->setHeight((this->height()-height));

View File

@ -105,6 +105,8 @@ class BandDesignIntf : public ItemsContainerDesignInft
Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor) Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor)
Q_PROPERTY(BrushStyle backgroundBrushStyle READ backgroundBrushStyle WRITE setBackgroundBrushStyle) Q_PROPERTY(BrushStyle backgroundBrushStyle READ backgroundBrushStyle WRITE setBackgroundBrushStyle)
Q_PROPERTY(bool printIfEmpty READ printIfEmpty WRITE setPrintIfEmpty) Q_PROPERTY(bool printIfEmpty READ printIfEmpty WRITE setPrintIfEmpty)
Q_PROPERTY(BGMode backgroundMode READ backgroundMode WRITE setBackgroundModeProperty)
Q_PROPERTY(int backgroundOpacity READ opacity WRITE setBackgroundOpacity)
Q_ENUMS(BandColumnsLayoutType) Q_ENUMS(BandColumnsLayoutType)
friend class BandMarker; friend class BandMarker;
friend class BandNameLabel; friend class BandNameLabel;
@ -235,6 +237,8 @@ public:
QColor alternateBackgroundColor() const; QColor alternateBackgroundColor() const;
void setAlternateBackgroundColor(const QColor &alternateBackgroundColor); void setAlternateBackgroundColor(const QColor &alternateBackgroundColor);
qreal bottomSpace() const; qreal bottomSpace() const;
void setBackgroundModeProperty(BGMode value);
void setBackgroundOpacity(int value);
signals: signals:
void bandRendered(BandDesignIntf* band); void bandRendered(BandDesignIntf* band);
protected: protected:

View File

@ -78,7 +78,8 @@ BaseDesignIntf::BaseDesignIntf(const QString &storageTypeName, QObject *owner, Q
m_changingItemAlign(false), m_changingItemAlign(false),
m_borderColor(Qt::black), m_borderColor(Qt::black),
m_reportSettings(0), m_reportSettings(0),
m_patternName("") m_patternName(""),
m_watermark(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)) {
@ -399,19 +400,21 @@ void BaseDesignIntf::prepareRect(QPainter *painter, const QStyleOptionGraphicsIt
{ {
painter->save(); painter->save();
QRectF r = rect().adjusted(0, 0, borderLineSize(), borderLineSize());
QBrush brush(m_backgroundColor,static_cast<Qt::BrushStyle>(m_backgroundBrushStyle)); QBrush brush(m_backgroundColor,static_cast<Qt::BrushStyle>(m_backgroundBrushStyle));
brush.setTransform(painter->worldTransform().inverted()); brush.setTransform(painter->worldTransform().inverted());
if (isSelected() && (opacity() == 100) && (m_BGMode!=TransparentMode)) { if (isSelected() && (opacity() == 100) && (m_BGMode!=TransparentMode)) {
painter->fillRect(rect(), brush); painter->fillRect(r, brush);
} }
else { else {
if (m_BGMode == OpaqueMode) { if (m_BGMode == OpaqueMode) {
painter->setOpacity(qreal(m_opacity) / 100); qreal o = (itemMode() & DesignMode) ? 0.5 : qreal(m_opacity) / 100;
painter->fillRect(rect(), brush); painter->setOpacity(o);
painter->fillRect(r, brush);
} else if (itemMode() & DesignMode){ } else if (itemMode() & DesignMode){
painter->setOpacity(0.1); painter->setOpacity(0.1);
painter->fillRect(rect(), QBrush(QPixmap(":/report/images/empty"))); painter->fillRect(r, QBrush(QPixmap(":/report/images/empty")));
} }
} }
painter->restore(); painter->restore();
@ -701,6 +704,19 @@ void BaseDesignIntf::turnOnSelectionMarker(bool value)
} }
} }
bool BaseDesignIntf::isWatermark() const
{
return m_watermark;
}
void BaseDesignIntf::setWatermark(bool watermark)
{
if (m_watermark != watermark){
m_watermark = watermark;
notify("watermark",!watermark,watermark);
}
}
QString BaseDesignIntf::patternName() const QString BaseDesignIntf::patternName() const
{ {
return (m_patternName.isEmpty()) ? objectName() : m_patternName; return (m_patternName.isEmpty()) ? objectName() : m_patternName;
@ -1153,6 +1169,7 @@ void BaseDesignIntf::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
void BaseDesignIntf::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) void BaseDesignIntf::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
{ {
if (!(flags() & QGraphicsItem::ItemIsSelectable)) return;
PageDesignIntf* page = dynamic_cast<PageDesignIntf*>(scene()); PageDesignIntf* page = dynamic_cast<PageDesignIntf*>(scene());
if (!page->selectedItems().contains(this)){ if (!page->selectedItems().contains(this)){
page->clearSelection(); page->clearSelection();

View File

@ -272,6 +272,8 @@ public:
void setZValueProperty(qreal value); void setZValueProperty(qreal value);
QString patternName() const; QString patternName() const;
void setPatternName(const QString &patternName); void setPatternName(const QString &patternName);
bool isWatermark() const;
virtual void setWatermark(bool watermark);
Q_INVOKABLE QString setItemWidth(qreal width); Q_INVOKABLE QString setItemWidth(qreal width);
Q_INVOKABLE QString setItemHeight(qreal height); Q_INVOKABLE QString setItemHeight(qreal height);
@ -396,6 +398,7 @@ private:
QColor m_borderColor; QColor m_borderColor;
ReportSettings* m_reportSettings; ReportSettings* m_reportSettings;
QString m_patternName; QString m_patternName;
bool m_watermark;
signals: signals:
void geometryChanged(QObject* object, QRectF newGeometry, QRectF oldGeometry); void geometryChanged(QObject* object, QRectF newGeometry, QRectF oldGeometry);
void posChanged(QObject* object, QPointF newPos, QPointF oldPos); void posChanged(QObject* object, QPointF newPos, QPointF oldPos);

View File

@ -70,7 +70,7 @@ bool QueryHolder::runQuery(IDataSource::DatasourceMode mode)
m_mode = mode; m_mode = mode;
QSqlDatabase db = QSqlDatabase::database(m_connectionName); QSqlDatabase db = QSqlDatabase::database(m_connectionName);
QSqlQuery* query = new QSqlQuery(db); QSqlQuery query(db);
if (!db.isValid()) { if (!db.isValid()) {
setLastError(QObject::tr("Invalid connection! %1").arg(m_connectionName)); setLastError(QObject::tr("Invalid connection! %1").arg(m_connectionName));
@ -82,13 +82,12 @@ bool QueryHolder::runQuery(IDataSource::DatasourceMode mode)
if (!m_prepared) return false; if (!m_prepared) return false;
} }
query->prepare(m_preparedSQL); query.prepare(m_preparedSQL);
fillParams(&query);
fillParams(query); query.exec();
query->exec();
QSqlQueryModel *model = new QSqlQueryModel; QSqlQueryModel *model = new QSqlQueryModel;
model->setQuery(*query); model->setQuery(query);
while (model->canFetchMore()) while (model->canFetchMore())
model->fetchMore(); model->fetchMore();

View File

@ -640,7 +640,10 @@ void ReportRender::renderPageItems(PageItemDesignIntf* patternPage)
m_renderPageItem->restoreLinks(); m_renderPageItem->restoreLinks();
m_renderPageItem->updateSubItemsSize(FirstPass,m_datasources); m_renderPageItem->updateSubItemsSize(FirstPass,m_datasources);
foreach(BaseDesignIntf* item, pageItems){ foreach(BaseDesignIntf* item, pageItems){
item->setZValue(item->zValue()-100000); if (!item->isWatermark())
item->setZValue(item->zValue()-100000);
else
item->setZValue(item->zValue()+100000);
} }
} }
@ -705,8 +708,8 @@ void ReportRender::renderGroupHeader(BandDesignIntf *parentBand, IDataSource* da
foreach (BandDesignIntf* subBand, band->childrenByType(BandDesignIntf::GroupHeader)) { foreach (BandDesignIntf* subBand, band->childrenByType(BandDesignIntf::GroupHeader)) {
foreach(BandDesignIntf* footer, subBand->childrenByType(BandDesignIntf::GroupFooter)){ foreach(BandDesignIntf* footer, subBand->childrenByType(BandDesignIntf::GroupFooter)){
renderBand(footer, 0); renderBand(footer, 0);
closeDataGroup(subBand);
} }
closeDataGroup(subBand);
} }
foreach (BandDesignIntf* footer, band->childrenByType(BandDesignIntf::GroupFooter)) { foreach (BandDesignIntf* footer, band->childrenByType(BandDesignIntf::GroupFooter)) {

View File

@ -134,6 +134,7 @@ void QObjectPropertyModel::translatePropertyName()
tr("condition"); tr("condition");
tr("groupFieldName"); tr("groupFieldName");
tr("keepGroupTogether"); tr("keepGroupTogether");
tr("watermark");
} }
void QObjectPropertyModel::clearObjectsList() void QObjectPropertyModel::clearObjectsList()

View File

@ -67,23 +67,39 @@ void BoolPropItem::setModelData(QWidget *propertyEditor, QAbstractItemModel *mod
setValueToObject(propertyName(),propertyValue()); setValueToObject(propertyName(),propertyValue());
} }
QPixmap BoolPropItem::getIndicatorImage(const StyleOptionViewItem &option){
QStyleOptionButton so;
so.state = option.state;
if (!isValueReadonly())
so.state = QStyle::State_Enabled;
else
so.state &= ~QStyle::State_Enabled;
so.state |= propertyValue().toBool() ? QStyle::State_On : QStyle::State_Off;
so.rect = QRect(0,0,
QApplication::style()->pixelMetric(QStyle::PM_IndicatorWidth),
QApplication::style()->pixelMetric(QStyle::PM_IndicatorHeight));
QPixmap pixmap(so.rect.width(),so.rect.height());
pixmap.fill(Qt::transparent);
QPainter p(&pixmap);
option.widget->style()->drawPrimitive(QStyle::PE_IndicatorItemViewItemCheck,&so, &p);
return pixmap;
}
bool BoolPropItem::paint(QPainter *painter, const StyleOptionViewItem &option, const QModelIndex &index) bool BoolPropItem::paint(QPainter *painter, const StyleOptionViewItem &option, const QModelIndex &index)
{ {
QStyle* style = option.widget ? option.widget->style() : QApplication::style();
if (index.column()==1){ if (index.column()==1){
QStyleOptionButton so; int border = (option.rect.height() - style->pixelMetric(QStyle::PM_IndicatorWidth))/2;
int border = (option.rect.height() - QApplication::style()->pixelMetric(QStyle::PM_IndicatorWidth))/2; // QStyleOptionButton so;
so.rect = option.rect.adjusted(border,border,0,-border); // so.rect = option.rect.adjusted(border,border,0,-border);
so.rect.setWidth(QApplication::style()->pixelMetric(QStyle::PM_IndicatorWidth)); // so.rect.setWidth(style->pixelMetric(QStyle::PM_IndicatorWidth));
// so.rect.setHeight(style->pixelMetric(QStyle::PM_IndicatorHeight));
if (!isValueReadonly()) // so.state |= propertyValue().toBool() ? QStyle::State_On : QStyle::State_Off;
so.state = QStyle::State_Enabled; // style->drawPrimitive(QStyle::PE_IndicatorItemViewItemCheck,&so,painter);
else painter->drawPixmap(option.rect.x()+border,option.rect.y()+border, getIndicatorImage(option));
so.state &= ~QStyle::State_Enabled;
so.state |= propertyValue().toBool() ? QStyle::State_On : QStyle::State_Off;
option.widget->style()->drawPrimitive(QStyle::PE_IndicatorCheckBox,&so,painter);
return true; return true;
} else return false; } else return false;
} }

View File

@ -45,6 +45,8 @@ public:
virtual void setPropertyEditorData(QWidget * propertyEditor, const QModelIndex &) const; virtual void setPropertyEditorData(QWidget * propertyEditor, const QModelIndex &) const;
virtual void setModelData(QWidget * propertyEditor, QAbstractItemModel * model, const QModelIndex & index); virtual void setModelData(QWidget * propertyEditor, QAbstractItemModel * model, const QModelIndex & index);
bool paint(QPainter *painter, const StyleOptionViewItem &option, const QModelIndex &index); bool paint(QPainter *painter, const StyleOptionViewItem &option, const QModelIndex &index);
protected:
QPixmap getIndicatorImage(const StyleOptionViewItem &option);
}; };
} // namespace LimeReport } // namespace LimeReport

View File

@ -35,7 +35,8 @@
namespace LimeReport{ namespace LimeReport{
ObjectBrowser::ObjectBrowser(QWidget *parent) ObjectBrowser::ObjectBrowser(QWidget *parent)
:QWidget(parent), m_report(NULL), m_mainWindow(NULL), m_changingItemSelection(false) :QWidget(parent), m_report(NULL), m_mainWindow(NULL),
m_changingItemSelection(false), m_movingItem(false)
{ {
QVBoxLayout *layout = new QVBoxLayout(this); QVBoxLayout *layout = new QVBoxLayout(this);
setLayout(layout); setLayout(layout);
@ -86,6 +87,7 @@ void ObjectBrowser::slotClear()
} }
void ObjectBrowser::fillNode(QTreeWidgetItem* parentNode, BaseDesignIntf* reportItem, BaseDesignIntf *ignoredItem){ void ObjectBrowser::fillNode(QTreeWidgetItem* parentNode, BaseDesignIntf* reportItem, BaseDesignIntf *ignoredItem){
foreach (BaseDesignIntf* item, reportItem->childBaseItems()) { foreach (BaseDesignIntf* item, reportItem->childBaseItems()) {
if (item != ignoredItem){ if (item != ignoredItem){
ObjectBrowserNode* treeItem = new ObjectBrowserNode(parentNode); ObjectBrowserNode* treeItem = new ObjectBrowserNode(parentNode);
@ -93,11 +95,11 @@ void ObjectBrowser::fillNode(QTreeWidgetItem* parentNode, BaseDesignIntf* report
treeItem->setObject(item); treeItem->setObject(item);
treeItem->setIcon(0,QIcon(":/items/"+extractClassName(item->metaObject()->className()))); treeItem->setIcon(0,QIcon(":/items/"+extractClassName(item->metaObject()->className())));
connect(item, SIGNAL(propertyObjectNameChanged(QString,QString)), connect(item, SIGNAL(propertyObjectNameChanged(QString,QString)),
this, SLOT(slotPropertyObjectNameChanged(QString,QString))); this, SLOT(slotPropertyObjectNameChanged(QString,QString)), Qt::UniqueConnection);
ItemDesignIntf* i = dynamic_cast<ItemDesignIntf*>(item); ItemDesignIntf* i = dynamic_cast<ItemDesignIntf*>(item);
if (i){ if (i){
connect(i, SIGNAL(itemLocationChanged(BaseDesignIntf*,BaseDesignIntf*)), connect(i, SIGNAL(itemLocationChanged(BaseDesignIntf*,BaseDesignIntf*)),
this, SLOT(slotItemParentChanged(BaseDesignIntf*,BaseDesignIntf*))); this, SLOT(slotItemParentChanged(BaseDesignIntf*,BaseDesignIntf*)), Qt::UniqueConnection);
} }
m_itemsMap.insert(item,treeItem); m_itemsMap.insert(item,treeItem);
parentNode->addChild(treeItem); parentNode->addChild(treeItem);
@ -283,7 +285,9 @@ void ObjectBrowser::slotActivePageUpdated(LimeReport::PageDesignIntf *)
buildTree(); buildTree();
} }
void ObjectBrowser::slotItemParentChanged(BaseDesignIntf* item, BaseDesignIntf* parent)
void ObjectBrowser::moveItemNode(BaseDesignIntf* item, BaseDesignIntf* parent)
{ {
if (m_itemsMap.contains(item) && m_itemsMap.contains(parent)){ if (m_itemsMap.contains(item) && m_itemsMap.contains(parent)){
m_itemsMap.value(item)->parent()->removeChild(m_itemsMap.value(item)); m_itemsMap.value(item)->parent()->removeChild(m_itemsMap.value(item));
@ -293,7 +297,24 @@ void ObjectBrowser::slotItemParentChanged(BaseDesignIntf* item, BaseDesignIntf*
item->setSelected(true); item->setSelected(true);
m_changingItemSelection = false; m_changingItemSelection = false;
} }
}
void ObjectBrowser::slotItemParentChanged(BaseDesignIntf* item, BaseDesignIntf* parent)
{
if (!m_movingItem){
m_movingItem = true;
moveItemNode(item, parent);
m_movingItem = false;
foreach(QObject* di, m_defferedItems){
BaseDesignIntf* b = dynamic_cast<BaseDesignIntf*>(di);
if (b)
moveItemNode(b, parent);
}
m_defferedItems.clear();
} else {
if (!m_defferedItems.contains(item))
m_defferedItems.append(item);
}
} }
void ObjectBrowserNode::setObject(QObject *value) void ObjectBrowserNode::setObject(QObject *value)

View File

@ -60,6 +60,7 @@ protected:
void buildTree(BaseDesignIntf *ignoredItem = 0); void buildTree(BaseDesignIntf *ignoredItem = 0);
void removeItem(BaseDesignIntf* item); void removeItem(BaseDesignIntf* item);
void findAndRemove(QTreeWidgetItem *node, BaseDesignIntf *item); void findAndRemove(QTreeWidgetItem *node, BaseDesignIntf *item);
void moveItemNode(BaseDesignIntf* item, BaseDesignIntf* parent);
private slots: private slots:
// void slotObjectNameChanged(const QString& objectName); // void slotObjectNameChanged(const QString& objectName);
void slotPropertyObjectNameChanged(const QString& oldName, const QString& newName); void slotPropertyObjectNameChanged(const QString& oldName, const QString& newName);
@ -82,6 +83,8 @@ private:
QTreeWidget* m_treeView; QTreeWidget* m_treeView;
QMap<QObject*, ObjectBrowserNode*> m_itemsMap; QMap<QObject*, ObjectBrowserNode*> m_itemsMap;
bool m_changingItemSelection; bool m_changingItemSelection;
bool m_movingItem;
QList<QObject*> m_defferedItems;
}; };
} //namespace LimeReport } //namespace LimeReport

View File

@ -587,6 +587,10 @@ p, li { white-space: pre-wrap; }
<source> already exists! </source> <source> already exists! </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Port</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>LimeReport::ContentItemDesignIntf</name> <name>LimeReport::ContentItemDesignIntf</name>
@ -1891,11 +1895,11 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Hide left panel</source> <source>Hide left panel</source>
<translation>إخفاء المقطع الأيسر</translation> <translation type="vanished">إخفاء المقطع الأيسر</translation>
</message> </message>
<message> <message>
<source>Hide right panel</source> <source>Hide right panel</source>
<translation>إخفاء المقطع الأيمن</translation> <translation type="vanished">إخفاء المقطع الأيمن</translation>
</message> </message>
<message> <message>
<source>Report Tools</source> <source>Report Tools</source>
@ -2065,6 +2069,14 @@ p, li { white-space: pre-wrap; }
<source>Report has been modified! Do you want save the report?</source> <source>Report has been modified! Do you want save the report?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Hide left panel | Alt+L</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Hide right panel | Alt+R</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>LimeReport::ReportEnginePrivate</name> <name>LimeReport::ReportEnginePrivate</name>
@ -2347,6 +2359,10 @@ This preview is no longer valid.</source>
<source>GENERAL</source> <source>GENERAL</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Seconds</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>LimeReport::SettingDialog</name> <name>LimeReport::SettingDialog</name>

Binary file not shown.

View File

@ -454,6 +454,10 @@ p, li { white-space: pre-wrap; }
<source> already exists! </source> <source> already exists! </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Port</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>LimeReport::ContentItemDesignIntf</name> <name>LimeReport::ContentItemDesignIntf</name>
@ -1710,14 +1714,6 @@ p, li { white-space: pre-wrap; }
<source>Horizontal layout</source> <source>Horizontal layout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Hide left panel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Hide right panel</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Report Tools</source> <source>Report Tools</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -1866,6 +1862,14 @@ p, li { white-space: pre-wrap; }
<source>Report has been modified! Do you want save the report?</source> <source>Report has been modified! Do you want save the report?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Hide left panel | Alt+L</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Hide right panel | Alt+R</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>LimeReport::ReportEnginePrivate</name> <name>LimeReport::ReportEnginePrivate</name>
@ -2132,6 +2136,10 @@ This preview is no longer valid.</source>
<source>GENERAL</source> <source>GENERAL</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Seconds</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>LimeReport::SettingDialog</name> <name>LimeReport::SettingDialog</name>

View File

@ -254,112 +254,112 @@ p, li { white-space: pre-wrap; }
<context> <context>
<name>LimeReport::BandDesignIntf</name> <name>LimeReport::BandDesignIntf</name>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="224"/> <location filename="../limereport/lrbanddesignintf.cpp" line="229"/>
<source>DataBand</source> <source>DataBand</source>
<translation>bande de données</translation> <translation>bande de données</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="225"/> <location filename="../limereport/lrbanddesignintf.cpp" line="230"/>
<source>DataHeaderBand</source> <source>DataHeaderBand</source>
<translation>En-tête de données</translation> <translation>En-tête de données</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="226"/> <location filename="../limereport/lrbanddesignintf.cpp" line="231"/>
<source>DataFooterBand</source> <source>DataFooterBand</source>
<translation>Bande de pied de données</translation> <translation>Bande de pied de données</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="227"/> <location filename="../limereport/lrbanddesignintf.cpp" line="232"/>
<source>ReportHeader</source> <source>ReportHeader</source>
<translation>En-tête du rapport</translation> <translation>En-tête du rapport</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="228"/> <location filename="../limereport/lrbanddesignintf.cpp" line="233"/>
<source>ReportFooter</source> <source>ReportFooter</source>
<translation>Pied du rapport</translation> <translation>Pied du rapport</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="229"/> <location filename="../limereport/lrbanddesignintf.cpp" line="234"/>
<source>PageHeader</source> <source>PageHeader</source>
<translation>En-tête de page</translation> <translation>En-tête de page</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="230"/> <location filename="../limereport/lrbanddesignintf.cpp" line="235"/>
<source>PageFooter</source> <source>PageFooter</source>
<translation>Pied de page</translation> <translation>Pied de page</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="231"/> <location filename="../limereport/lrbanddesignintf.cpp" line="236"/>
<source>SubDetailBand</source> <source>SubDetailBand</source>
<translation>Bande de sous-détails</translation> <translation>Bande de sous-détails</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="232"/> <location filename="../limereport/lrbanddesignintf.cpp" line="237"/>
<source>SubDetailHeaderBand</source> <source>SubDetailHeaderBand</source>
<translation>En-tête de sous-détails</translation> <translation>En-tête de sous-détails</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="233"/> <location filename="../limereport/lrbanddesignintf.cpp" line="238"/>
<source>SubDetailFooterBand</source> <source>SubDetailFooterBand</source>
<translation>Pied de sous-détails</translation> <translation>Pied de sous-détails</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="234"/> <location filename="../limereport/lrbanddesignintf.cpp" line="239"/>
<source>GroupBandHeader</source> <source>GroupBandHeader</source>
<translation>Bande de groupe d&apos;en-tête</translation> <translation>Bande de groupe d&apos;en-tête</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="235"/> <location filename="../limereport/lrbanddesignintf.cpp" line="240"/>
<source>GroupBandFooter</source> <source>GroupBandFooter</source>
<translation>Bande de groupe de pieds</translation> <translation>Bande de groupe de pieds</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="236"/> <location filename="../limereport/lrbanddesignintf.cpp" line="241"/>
<source>TearOffBand</source> <source>TearOffBand</source>
<translation>Bande détachable</translation> <translation>Bande détachable</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="247"/> <location filename="../limereport/lrbanddesignintf.cpp" line="252"/>
<source> connected to </source> <source> connected to </source>
<translation> Connecté à </translation> <translation> Connecté à </translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="471"/> <location filename="../limereport/lrbanddesignintf.cpp" line="476"/>
<source>Bring to top</source> <source>Bring to top</source>
<translation>Placer au premier-plan</translation> <translation>Placer au premier-plan</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="472"/> <location filename="../limereport/lrbanddesignintf.cpp" line="477"/>
<source>Send to back</source> <source>Send to back</source>
<translation>Placer en arrière-plan</translation> <translation>Placer en arrière-plan</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="477"/> <location filename="../limereport/lrbanddesignintf.cpp" line="482"/>
<location filename="../limereport/lrbanddesignintf.cpp" line="500"/> <location filename="../limereport/lrbanddesignintf.cpp" line="505"/>
<source>Auto height</source> <source>Auto height</source>
<translation>Hauteur automatique</translation> <translation>Hauteur automatique</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="481"/> <location filename="../limereport/lrbanddesignintf.cpp" line="486"/>
<location filename="../limereport/lrbanddesignintf.cpp" line="503"/> <location filename="../limereport/lrbanddesignintf.cpp" line="508"/>
<source>Splittable</source> <source>Splittable</source>
<translation>Divisible</translation> <translation>Divisible</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="485"/> <location filename="../limereport/lrbanddesignintf.cpp" line="490"/>
<location filename="../limereport/lrbanddesignintf.cpp" line="506"/> <location filename="../limereport/lrbanddesignintf.cpp" line="511"/>
<source>Keep bottom space</source> <source>Keep bottom space</source>
<translation>Garder l&apos;espace inférieur</translation> <translation>Garder l&apos;espace inférieur</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="489"/> <location filename="../limereport/lrbanddesignintf.cpp" line="494"/>
<location filename="../limereport/lrbanddesignintf.cpp" line="512"/> <location filename="../limereport/lrbanddesignintf.cpp" line="517"/>
<source>Start from new page</source> <source>Start from new page</source>
<translation>Démarrer depuis une nouvelle page</translation> <translation>Démarrer depuis une nouvelle page</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbanddesignintf.cpp" line="493"/> <location filename="../limereport/lrbanddesignintf.cpp" line="498"/>
<location filename="../limereport/lrbanddesignintf.cpp" line="509"/> <location filename="../limereport/lrbanddesignintf.cpp" line="514"/>
<source>Start new page</source> <source>Start new page</source>
<translation>Démarrer une nouvelle page</translation> <translation>Démarrer une nouvelle page</translation>
</message> </message>
@ -367,37 +367,37 @@ p, li { white-space: pre-wrap; }
<context> <context>
<name>LimeReport::BaseDesignIntf</name> <name>LimeReport::BaseDesignIntf</name>
<message> <message>
<location filename="../limereport/lrbasedesignintf.cpp" line="1162"/> <location filename="../limereport/lrbasedesignintf.cpp" line="1163"/>
<source>Copy</source> <source>Copy</source>
<translation>Copier</translation> <translation>Copier</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbasedesignintf.cpp" line="1164"/> <location filename="../limereport/lrbasedesignintf.cpp" line="1165"/>
<source>Cut</source> <source>Cut</source>
<translation>Couper</translation> <translation>Couper</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbasedesignintf.cpp" line="1166"/> <location filename="../limereport/lrbasedesignintf.cpp" line="1167"/>
<source>Paste</source> <source>Paste</source>
<translation>Coller</translation> <translation>Coller</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbasedesignintf.cpp" line="1175"/> <location filename="../limereport/lrbasedesignintf.cpp" line="1176"/>
<source>Bring to top</source> <source>Bring to top</source>
<translation>Placer au premier-plan</translation> <translation>Placer au premier-plan</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbasedesignintf.cpp" line="1176"/> <location filename="../limereport/lrbasedesignintf.cpp" line="1177"/>
<source>Send to back</source> <source>Send to back</source>
<translation>Placer en arrière-plan</translation> <translation>Placer en arrière-plan</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbasedesignintf.cpp" line="1178"/> <location filename="../limereport/lrbasedesignintf.cpp" line="1179"/>
<source>No borders</source> <source>No borders</source>
<translation>Aucune bordure</translation> <translation>Aucune bordure</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrbasedesignintf.cpp" line="1179"/> <location filename="../limereport/lrbasedesignintf.cpp" line="1180"/>
<source>All borders</source> <source>All borders</source>
<translation>Toutes les bordures</translation> <translation>Toutes les bordures</translation>
</message> </message>
@ -405,8 +405,8 @@ p, li { white-space: pre-wrap; }
<context> <context>
<name>LimeReport::ConnectionDesc</name> <name>LimeReport::ConnectionDesc</name>
<message> <message>
<location filename="../limereport/lrdatadesignintf.cpp" line="378"/> <location filename="../limereport/lrdatadesignintf.cpp" line="377"/>
<location filename="../limereport/lrdatadesignintf.cpp" line="383"/> <location filename="../limereport/lrdatadesignintf.cpp" line="382"/>
<source>defaultConnection</source> <source>defaultConnection</source>
<translation>Connexion par défaut</translation> <translation>Connexion par défaut</translation>
</message> </message>
@ -430,57 +430,62 @@ p, li { white-space: pre-wrap; }
<translation>Utiliser la connexion par défaut de l&apos;application</translation> <translation>Utiliser la connexion par défaut de l&apos;application</translation>
</message> </message>
<message> <message>
<location filename="../limereport/databrowser/lrconnectiondialog.ui" line="51"/> <location filename="../limereport/databrowser/lrconnectiondialog.ui" line="53"/>
<source>Driver</source> <source>Driver</source>
<translation>Pilote</translation> <translation>Pilote</translation>
</message> </message>
<message> <message>
<location filename="../limereport/databrowser/lrconnectiondialog.ui" line="61"/> <location filename="../limereport/databrowser/lrconnectiondialog.ui" line="60"/>
<source>Server </source> <source>Server </source>
<translation>Serveur </translation> <translation>Serveur </translation>
</message> </message>
<message> <message>
<location filename="../limereport/databrowser/lrconnectiondialog.ui" line="75"/> <location filename="../limereport/databrowser/lrconnectiondialog.ui" line="67"/>
<source>Port</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../limereport/databrowser/lrconnectiondialog.ui" line="74"/>
<source>User</source> <source>User</source>
<translation>Utilisateur</translation> <translation>Utilisateur</translation>
</message> </message>
<message> <message>
<location filename="../limereport/databrowser/lrconnectiondialog.ui" line="89"/> <location filename="../limereport/databrowser/lrconnectiondialog.ui" line="81"/>
<source>Password</source> <source>Password</source>
<translation>Mot de passe</translation> <translation>Mot de passe</translation>
</message> </message>
<message> <message>
<location filename="../limereport/databrowser/lrconnectiondialog.ui" line="106"/> <location filename="../limereport/databrowser/lrconnectiondialog.ui" line="88"/>
<source>Database</source> <source>Database</source>
<translation>Base de données</translation> <translation>Base de données</translation>
</message> </message>
<message> <message>
<location filename="../limereport/databrowser/lrconnectiondialog.ui" line="125"/> <location filename="../limereport/databrowser/lrconnectiondialog.ui" line="141"/>
<source>...</source> <source>...</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../limereport/databrowser/lrconnectiondialog.ui" line="136"/> <location filename="../limereport/databrowser/lrconnectiondialog.ui" line="154"/>
<source>Auto connect</source> <source>Auto connect</source>
<translation>Connexion automatique</translation> <translation>Connexion automatique</translation>
</message> </message>
<message> <message>
<location filename="../limereport/databrowser/lrconnectiondialog.ui" line="143"/> <location filename="../limereport/databrowser/lrconnectiondialog.ui" line="161"/>
<source>Dont keep credentals in lrxml</source> <source>Dont keep credentals in lrxml</source>
<translation>Ne pas enregistrer les informations personnelles</translation> <translation>Ne pas enregistrer les informations personnelles</translation>
</message> </message>
<message> <message>
<location filename="../limereport/databrowser/lrconnectiondialog.ui" line="165"/> <location filename="../limereport/databrowser/lrconnectiondialog.ui" line="183"/>
<source>Check connection</source> <source>Check connection</source>
<translation>Vérifier la connexion</translation> <translation>Vérifier la connexion</translation>
</message> </message>
<message> <message>
<location filename="../limereport/databrowser/lrconnectiondialog.ui" line="188"/> <location filename="../limereport/databrowser/lrconnectiondialog.ui" line="206"/>
<source>Cancel</source> <source>Cancel</source>
<translation>Annuler</translation> <translation>Annuler</translation>
</message> </message>
<message> <message>
<location filename="../limereport/databrowser/lrconnectiondialog.ui" line="198"/> <location filename="../limereport/databrowser/lrconnectiondialog.ui" line="216"/>
<source>Ok</source> <source>Ok</source>
<translation></translation> <translation></translation>
</message> </message>
@ -511,7 +516,7 @@ p, li { white-space: pre-wrap; }
<translation> existe déja! </translation> <translation> existe déja! </translation>
</message> </message>
<message> <message>
<location filename="../limereport/databrowser/lrconnectiondialog.cpp" line="153"/> <location filename="../limereport/databrowser/lrconnectiondialog.cpp" line="156"/>
<source>defaultConnection</source> <source>defaultConnection</source>
<translation></translation> <translation></translation>
</message> </message>
@ -679,7 +684,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<location filename="../limereport/lrdatasourcemanager.cpp" line="599"/> <location filename="../limereport/lrdatasourcemanager.cpp" line="599"/>
<location filename="../limereport/lrdatasourcemanager.cpp" line="964"/> <location filename="../limereport/lrdatasourcemanager.cpp" line="966"/>
<source>Datasource &quot;%1&quot; not found!</source> <source>Datasource &quot;%1&quot; not found!</source>
<translation>Source de donnée &quot;%1&quot; introuvable!</translation> <translation>Source de donnée &quot;%1&quot; introuvable!</translation>
</message> </message>
@ -697,12 +702,12 @@ p, li { white-space: pre-wrap; }
<translation>La source de donnée avec le nom &quot;%1&quot; existe déja!</translation> <translation>La source de donnée avec le nom &quot;%1&quot; existe déja!</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrdatasourcemanager.cpp" line="761"/> <location filename="../limereport/lrdatasourcemanager.cpp" line="763"/>
<source>Database &quot;%1&quot; not found</source> <source>Database &quot;%1&quot; not found</source>
<translation>Base de données &quot;%1 introuvable</translation> <translation>Base de données &quot;%1 introuvable</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrdatasourcemanager.cpp" line="937"/> <location filename="../limereport/lrdatasourcemanager.cpp" line="939"/>
<source>invalid connection</source> <source>invalid connection</source>
<translation>Connexion invalide</translation> <translation>Connexion invalide</translation>
</message> </message>
@ -1196,12 +1201,12 @@ p, li { white-space: pre-wrap; }
<context> <context>
<name>LimeReport::MasterDetailProxyModel</name> <name>LimeReport::MasterDetailProxyModel</name>
<message> <message>
<location filename="../limereport/lrdatadesignintf.cpp" line="614"/> <location filename="../limereport/lrdatadesignintf.cpp" line="623"/>
<source>Field: &quot;%1&quot; not found in &quot;%2&quot; child datasource</source> <source>Field: &quot;%1&quot; not found in &quot;%2&quot; child datasource</source>
<translation>Le champ: &quot;%1&quot;est introuvable dans la source de donnée enfant &quot;%2&quot;</translation> <translation>Le champ: &quot;%1&quot;est introuvable dans la source de donnée enfant &quot;%2&quot;</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrdatadesignintf.cpp" line="627"/> <location filename="../limereport/lrdatadesignintf.cpp" line="636"/>
<source>Field: &quot;%1&quot; not found in &quot;%2&quot; master datasource</source> <source>Field: &quot;%1&quot; not found in &quot;%2&quot; master datasource</source>
<translation>Le champ: &quot;%1&quot;est introuvable dans la source de donnée principale &quot;%2&quot;</translation> <translation>Le champ: &quot;%1&quot;est introuvable dans la source de donnée principale &quot;%2&quot;</translation>
</message> </message>
@ -1209,7 +1214,7 @@ p, li { white-space: pre-wrap; }
<context> <context>
<name>LimeReport::ModelToDataSource</name> <name>LimeReport::ModelToDataSource</name>
<message> <message>
<location filename="../limereport/lrdatadesignintf.cpp" line="339"/> <location filename="../limereport/lrdatadesignintf.cpp" line="338"/>
<source>model is destroyed</source> <source>model is destroyed</source>
<translation>Le modèle a é supprimé</translation> <translation>Le modèle a é supprimé</translation>
</message> </message>
@ -1416,7 +1421,7 @@ p, li { white-space: pre-wrap; }
<context> <context>
<name>LimeReport::ProxyHolder</name> <name>LimeReport::ProxyHolder</name>
<message> <message>
<location filename="../limereport/lrdatadesignintf.cpp" line="553"/> <location filename="../limereport/lrdatadesignintf.cpp" line="562"/>
<source>Datasource has been invalidated</source> <source>Datasource has been invalidated</source>
<translation>La source de donnée n&apos;a pas é validée</translation> <translation>La source de donnée n&apos;a pas é validée</translation>
</message> </message>
@ -2087,14 +2092,22 @@ p, li { white-space: pre-wrap; }
<translation>A propos</translation> <translation>A propos</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrreportdesignwindow.cpp" line="220"/>
<source>Hide left panel</source> <source>Hide left panel</source>
<translation>Masquer le panneau de gauche</translation> <translation type="vanished">Masquer le panneau de gauche</translation>
</message>
<message>
<source>Hide right panel</source>
<translation type="vanished">Masquer le panneau de droite</translation>
</message>
<message>
<location filename="../limereport/lrreportdesignwindow.cpp" line="220"/>
<source>Hide left panel | Alt+L</source>
<translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrreportdesignwindow.cpp" line="226"/> <location filename="../limereport/lrreportdesignwindow.cpp" line="226"/>
<source>Hide right panel</source> <source>Hide right panel | Alt+R</source>
<translation>Masquer le panneau de droite</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrreportdesignwindow.cpp" line="235"/> <location filename="../limereport/lrreportdesignwindow.cpp" line="235"/>
@ -2281,17 +2294,17 @@ p, li { white-space: pre-wrap; }
<translation>Aperçu avant impression</translation> <translation>Aperçu avant impression</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrreportengine.cpp" line="162"/> <location filename="../limereport/lrreportengine.cpp" line="163"/>
<source>Error</source> <source>Error</source>
<translation>Erreur</translation> <translation>Erreur</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrreportengine.cpp" line="474"/> <location filename="../limereport/lrreportengine.cpp" line="475"/>
<source>Report File Change</source> <source>Report File Change</source>
<translation>Nom du fichier changé</translation> <translation>Nom du fichier changé</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrreportengine.cpp" line="475"/> <location filename="../limereport/lrreportengine.cpp" line="476"/>
<source>The report file &quot;%1&quot; has changed names or been deleted. <source>The report file &quot;%1&quot; has changed names or been deleted.
This preview is no longer valid.</source> This preview is no longer valid.</source>
@ -2541,7 +2554,7 @@ Cet aperçu n&apos;est plus valide.</translation>
<context> <context>
<name>LimeReport::ScriptEngineContext</name> <name>LimeReport::ScriptEngineContext</name>
<message> <message>
<location filename="../limereport/lrscriptenginemanager.cpp" line="799"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="829"/>
<source>Dialog with name: %1 can`t be created</source> <source>Dialog with name: %1 can`t be created</source>
<translation>Le dialogue avec le nom &quot;%1&quot; ne peut pas être crée</translation> <translation>Le dialogue avec le nom &quot;%1&quot; ne peut pas être crée</translation>
</message> </message>
@ -2549,89 +2562,96 @@ Cet aperçu n&apos;est plus valide.</translation>
<context> <context>
<name>LimeReport::ScriptEngineManager</name> <name>LimeReport::ScriptEngineManager</name>
<message> <message>
<location filename="../limereport/lrscriptenginemanager.cpp" line="434"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="463"/>
<source>GROUP FUNCTIONS</source> <source>GROUP FUNCTIONS</source>
<translation>Fonctions de groupe</translation> <translation>Fonctions de groupe</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrscriptenginemanager.cpp" line="434"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="463"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="620"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="649"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="623"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="653"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="624"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="654"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="625"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="655"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="629"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="659"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="630"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="660"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="632"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="662"/>
<source>Value</source> <source>Value</source>
<translation>Valeur</translation> <translation>Valeur</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrscriptenginemanager.cpp" line="434"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="463"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="619"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="648"/>
<source>BandName</source> <source>BandName</source>
<translation>Nom de la bande</translation> <translation>Nom de la bande</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrscriptenginemanager.cpp" line="478"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="507"/>
<source>Variable %1 not found</source> <source>Variable %1 not found</source>
<translation>Variable &quot;%1&quot; introuvable</translation> <translation>Variable &quot;%1&quot; introuvable</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrscriptenginemanager.cpp" line="619"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="648"/>
<source>SYSTEM</source> <source>SYSTEM</source>
<translation>Système</translation> <translation>Système</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrscriptenginemanager.cpp" line="620"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="649"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="629"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="659"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="630"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="660"/>
<source>NUMBER</source> <source>NUMBER</source>
<translation>Nombre</translation> <translation>Nombre</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrscriptenginemanager.cpp" line="620"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="649"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="623"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="652"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="624"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="653"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="625"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="654"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="655"/>
<source>Format</source> <source>Format</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrscriptenginemanager.cpp" line="621"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="650"/>
<source>Precision</source> <source>Precision</source>
<translation>Précision</translation> <translation>Précision</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrscriptenginemanager.cpp" line="622"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="651"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="629"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="659"/>
<source>Locale</source> <source>Locale</source>
<translation>Local</translation> <translation>Local</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrscriptenginemanager.cpp" line="623"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="652"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="624"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="653"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="625"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="654"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="626"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="655"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="627"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="656"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="657"/>
<source>DATE&amp;TIME</source> <source>DATE&amp;TIME</source>
<translation>DATE&amp;HEURE</translation> <translation>DATE&amp;HEURE</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrscriptenginemanager.cpp" line="630"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="652"/>
<source>Seconds</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../limereport/lrscriptenginemanager.cpp" line="660"/>
<source>CurrencySymbol</source> <source>CurrencySymbol</source>
<translation>Symbolde de la monnaie</translation> <translation>Symbolde de la monnaie</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrscriptenginemanager.cpp" line="632"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="662"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="633"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="663"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="634"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="664"/>
<source>GENERAL</source> <source>GENERAL</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrscriptenginemanager.cpp" line="632"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="662"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="633"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="663"/>
<location filename="../limereport/lrscriptenginemanager.cpp" line="634"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="664"/>
<source>Name</source> <source>Name</source>
<translation>Nom</translation> <translation>Nom</translation>
</message> </message>
@ -2995,32 +3015,32 @@ Cet aperçu n&apos;est plus valide.</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrdatadesignintf.cpp" line="76"/> <location filename="../limereport/lrdatadesignintf.cpp" line="76"/>
<location filename="../limereport/lrdatadesignintf.cpp" line="121"/> <location filename="../limereport/lrdatadesignintf.cpp" line="120"/>
<source>Invalid connection! %1</source> <source>Invalid connection! %1</source>
<translation>Connexion invalidé %1</translation> <translation>Connexion invalidé %1</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrdatadesignintf.cpp" line="416"/> <location filename="../limereport/lrdatadesignintf.cpp" line="425"/>
<source>Master datasource &quot;%1&quot; not found!</source> <source>Master datasource &quot;%1&quot; not found!</source>
<translation>Source de donnée principale &quot;%1&quot; introuvable!</translation> <translation>Source de donnée principale &quot;%1&quot; introuvable!</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrdatadesignintf.cpp" line="524"/> <location filename="../limereport/lrdatadesignintf.cpp" line="533"/>
<source>Master datasouce &quot;%1&quot; not found!</source> <source>Master datasouce &quot;%1&quot; not found!</source>
<translation>Source de donnée principale &quot;%1&quot; introuvable!</translation> <translation>Source de donnée principale &quot;%1&quot; introuvable!</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrdatadesignintf.cpp" line="525"/> <location filename="../limereport/lrdatadesignintf.cpp" line="534"/>
<source>Child</source> <source>Child</source>
<translation>Enfant</translation> <translation>Enfant</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrdatadesignintf.cpp" line="525"/> <location filename="../limereport/lrdatadesignintf.cpp" line="534"/>
<source> and child </source> <source> and child </source>
<translation> est enfant </translation> <translation> est enfant </translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrdatadesignintf.cpp" line="526"/> <location filename="../limereport/lrdatadesignintf.cpp" line="535"/>
<source>datasouce &quot;%1&quot; not found!</source> <source>datasouce &quot;%1&quot; not found!</source>
<translation>Source de donnée &quot;%1&quot; introuvable!</translation> <translation>Source de donnée &quot;%1&quot; introuvable!</translation>
</message> </message>
@ -3136,7 +3156,7 @@ Cet aperçu n&apos;est plus valide.</translation>
<translation>L&apos;objet avec le nom &quot;%1&quot; existe déja!</translation> <translation>L&apos;objet avec le nom &quot;%1&quot; existe déja!</translation>
</message> </message>
<message> <message>
<location filename="../limereport/lrscriptenginemanager.cpp" line="330"/> <location filename="../limereport/lrscriptenginemanager.cpp" line="359"/>
<source>Function %1 not found or have wrong arguments</source> <source>Function %1 not found or have wrong arguments</source>
<translation>La fonction %1 est introuvable ou contient des paramètres incorrects</translation> <translation>La fonction %1 est introuvable ou contient des paramètres incorrects</translation>
</message> </message>

Binary file not shown.

View File

@ -456,6 +456,10 @@ p, li { white-space: pre-wrap; }
<source> already exists! </source> <source> already exists! </source>
<translation> уже существует! </translation> <translation> уже существует! </translation>
</message> </message>
<message>
<source>Port</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>LimeReport::ContentItemDesignIntf</name> <name>LimeReport::ContentItemDesignIntf</name>
@ -1769,11 +1773,11 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Hide left panel</source> <source>Hide left panel</source>
<translation>Спрятать левую панель</translation> <translation type="vanished">Спрятать левую панель</translation>
</message> </message>
<message> <message>
<source>Hide right panel</source> <source>Hide right panel</source>
<translation>Спрятать правую панель</translation> <translation type="vanished">Спрятать правую панель</translation>
</message> </message>
<message> <message>
<source>Report Tools</source> <source>Report Tools</source>
@ -1951,6 +1955,14 @@ p, li { white-space: pre-wrap; }
<source>Report has been modified! Do you want save the report?</source> <source>Report has been modified! Do you want save the report?</source>
<translation>Отчет был изменен! Хотите его сохранить?</translation> <translation>Отчет был изменен! Хотите его сохранить?</translation>
</message> </message>
<message>
<source>Hide left panel | Alt+L</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Hide right panel | Alt+R</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>LimeReport::ReportEnginePrivate</name> <name>LimeReport::ReportEnginePrivate</name>
@ -2225,6 +2237,10 @@ This preview is no longer valid.</source>
<source>GENERAL</source> <source>GENERAL</source>
<translation>ОБЩИЕ</translation> <translation>ОБЩИЕ</translation>
</message> </message>
<message>
<source>Seconds</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>LimeReport::SettingDialog</name> <name>LimeReport::SettingDialog</name>