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){
CONFIG += dll
DEFINES += QZINT_LIBRARY
}
include(../../../common.pri)
@ -26,7 +27,15 @@ unix{
INCLUDEPATH += $$PWD/../backend
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) {
SOURCES += $$PWD/../backend/png.c

View File

@ -62,7 +62,7 @@ RCC_DIR = $${ARCH_DIR}/$${BUILD_TYPE}/rcc
LIMEREPORT_VERSION_MAJOR = 1
LIMEREPORT_VERSION_MINOR = 4
LIMEREPORT_VERSION_RELEASE = 63
LIMEREPORT_VERSION_RELEASE = 78
LIMEREPORT_VERSION = '\\"$${LIMEREPORT_VERSION_MAJOR}.$${LIMEREPORT_VERSION_MINOR}.$${LIMEREPORT_VERSION_RELEASE}\\"'
DEFINES += LIMEREPORT_VERSION_STR=\"$${LIMEREPORT_VERSION}\"

View File

@ -26,24 +26,37 @@ macx{
}
unix:{
LIBS += -L$${DEST_LIBS} -llimereport
!contains(CONFIG, static_build){
contains(CONFIG,zint){
LIBS += -L$${DEST_LIBS} -lQtZint
}
LIBS += -L$${DEST_LIBS}
CONFIG(debug, debug|release) {
LIBS += -llimereportd
} else {
LIBS += -llimereport
}
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
!contains(CONFIG, static_build){
contains(CONFIG,zint){
LIBS += -L$${DEST_LIBS}
CONFIG(debug, debug|release) {
LIBS += -lQtZintd
} else {
LIBS += -lQtZint
}
}
}
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 {
@ -56,11 +69,23 @@ win32 {
QMAKE_POST_LINK += $$QMAKE_COPY_DIR $$quote($$EXTRA_DIR\\*) $$quote($$REPORTS_DIR\\demo_reports) $$escape_expand(\\n\\t)
!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:{
LIBS += -L$${DEST_LIBS} -llimereport
!contains(CONFIG, static_build){
contains(CONFIG,zint){
LIBS += -L$${DEST_LIBS} -lQtZint
}
LIBS += -L$${DEST_LIBS}
CONFIG(debug, debug|release) {
LIBS += -llimereportd
} 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
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
}
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
}
@ -53,12 +63,23 @@ win32 {
DESTDIR = $$DEST_DIR
RC_FILE += mainicon.rc
!contains(CONFIG, static_build){
contains(CONFIG,zint){
LIBS += -L$${DEST_LIBS} -lQtZint
}
}
LIBS += -L$${DEST_LIBS} -llimereport
contains(CONFIG,zint){
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
}
QMAKE_POST_LINK += $$QMAKE_COPY_DIR \"$$EXTRA_DIR\" \"$$REPORTS_DIR\\demo_reports\" $$escape_expand(\\n\\t)
}

View File

@ -17,12 +17,22 @@ macx{
}
unix:{
LIBS += -L$${DEST_LIBS} -llimereport
!contains(CONFIG, static_build){
contains(CONFIG,zint){
LIBS += -L$${DEST_LIBS} -lQtZint
}
LIBS += -L$${DEST_LIBS}
CONFIG(debug, debug|release) {
LIBS += -llimereportd
} 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
linux{
#Link share lib to ../lib rpath
@ -43,10 +53,21 @@ win32 {
DESTDIR = $$DEST_DIR
RC_FILE += mainicon.rc
!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}
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 center READ center WRITE setCenter)
Q_PROPERTY(QString resourcePath READ resourcePath WRITE setResourcePath)
Q_PROPERTY(bool watermark READ isWatermark WRITE setWatermark)
public:
enum Format {
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){
object()->setProperty(propertyName().toLatin1(),stringToLocation(qobject_cast<ComboBoxEditor*>(propertyEditor)->text()));
model->setData(index,object()->property(propertyName().toLatin1()));
setValueToObject(propertyName(), propertyValue());
}
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){
if ( locationToString(object()->property(propertyName().toLatin1()).toInt())!=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
{

View File

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

View File

@ -1,4 +1,13 @@
TARGET = limereport
#TARGET = limereport
CONFIG(debug, debug|release) {
TARGET = limereportd
} else {
TARGET = limereport
}
TEMPLATE = lib
contains(CONFIG, static_build){
@ -73,7 +82,14 @@ contains(CONFIG,zint){
message(zint)
INCLUDEPATH += $$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)
{
if ( !(backgroundColor() == Qt::white && backgroundBrushStyle() == SolidPattern) ) {
QBrush brush(backgroundColor(), static_cast<Qt::BrushStyle>(backgroundBrushStyle()));
brush.setTransform(painter->worldTransform().inverted());
painter->fillRect(rect(), brush);
}
prepareRect(painter, option, widget);
if (itemMode() & DesignMode){
painter->save();
@ -585,7 +598,7 @@ BaseDesignIntf *BandDesignIntf::cloneBottomPart(int height, QObject *owner, QGra
BaseDesignIntf* tmpItem = item->cloneItem(item->itemMode(),bottomPart,bottomPart);
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();
if (item->isSplittable() && item->canBeSplitted(sliceHeight)) {
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);
}
} else {
if ((item->geometry().bottom()-height)>height){
if ((item->geometry().bottom()-height)>=height){
BaseDesignIntf* tmpItem = item->cloneItem(item->itemMode(),bottomPart,bottomPart);
tmpItem->setPos(tmpItem->pos().x(),borderLineSize());
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(BrushStyle backgroundBrushStyle READ backgroundBrushStyle WRITE setBackgroundBrushStyle)
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)
friend class BandMarker;
friend class BandNameLabel;
@ -235,6 +237,8 @@ public:
QColor alternateBackgroundColor() const;
void setAlternateBackgroundColor(const QColor &alternateBackgroundColor);
qreal bottomSpace() const;
void setBackgroundModeProperty(BGMode value);
void setBackgroundOpacity(int value);
signals:
void bandRendered(BandDesignIntf* band);
protected:

View File

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

View File

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

View File

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

View File

@ -640,7 +640,10 @@ void ReportRender::renderPageItems(PageItemDesignIntf* patternPage)
m_renderPageItem->restoreLinks();
m_renderPageItem->updateSubItemsSize(FirstPass,m_datasources);
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* footer, subBand->childrenByType(BandDesignIntf::GroupFooter)){
renderBand(footer, 0);
closeDataGroup(subBand);
}
closeDataGroup(subBand);
}
foreach (BandDesignIntf* footer, band->childrenByType(BandDesignIntf::GroupFooter)) {

View File

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

View File

@ -67,23 +67,39 @@ void BoolPropItem::setModelData(QWidget *propertyEditor, QAbstractItemModel *mod
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)
{
QStyle* style = option.widget ? option.widget->style() : QApplication::style();
if (index.column()==1){
QStyleOptionButton so;
int border = (option.rect.height() - QApplication::style()->pixelMetric(QStyle::PM_IndicatorWidth))/2;
so.rect = option.rect.adjusted(border,border,0,-border);
so.rect.setWidth(QApplication::style()->pixelMetric(QStyle::PM_IndicatorWidth));
if (!isValueReadonly())
so.state = QStyle::State_Enabled;
else
so.state &= ~QStyle::State_Enabled;
so.state |= propertyValue().toBool() ? QStyle::State_On : QStyle::State_Off;
option.widget->style()->drawPrimitive(QStyle::PE_IndicatorCheckBox,&so,painter);
int border = (option.rect.height() - style->pixelMetric(QStyle::PM_IndicatorWidth))/2;
// QStyleOptionButton so;
// so.rect = option.rect.adjusted(border,border,0,-border);
// so.rect.setWidth(style->pixelMetric(QStyle::PM_IndicatorWidth));
// so.rect.setHeight(style->pixelMetric(QStyle::PM_IndicatorHeight));
// so.state |= propertyValue().toBool() ? QStyle::State_On : QStyle::State_Off;
// style->drawPrimitive(QStyle::PE_IndicatorItemViewItemCheck,&so,painter);
painter->drawPixmap(option.rect.x()+border,option.rect.y()+border, getIndicatorImage(option));
return true;
} else return false;
}

View File

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

View File

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

View File

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

View File

@ -587,6 +587,10 @@ p, li { white-space: pre-wrap; }
<source> already exists! </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Port</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LimeReport::ContentItemDesignIntf</name>
@ -1891,11 +1895,11 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Hide left panel</source>
<translation>إخفاء المقطع الأيسر</translation>
<translation type="vanished">إخفاء المقطع الأيسر</translation>
</message>
<message>
<source>Hide right panel</source>
<translation>إخفاء المقطع الأيمن</translation>
<translation type="vanished">إخفاء المقطع الأيمن</translation>
</message>
<message>
<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>
<translation type="unfinished"></translation>
</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>
<name>LimeReport::ReportEnginePrivate</name>
@ -2347,6 +2359,10 @@ This preview is no longer valid.</source>
<source>GENERAL</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Seconds</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LimeReport::SettingDialog</name>

Binary file not shown.

View File

@ -454,6 +454,10 @@ p, li { white-space: pre-wrap; }
<source> already exists! </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Port</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LimeReport::ContentItemDesignIntf</name>
@ -1710,14 +1714,6 @@ p, li { white-space: pre-wrap; }
<source>Horizontal layout</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Hide left panel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Hide right panel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Report Tools</source>
<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>
<translation type="unfinished"></translation>
</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>
<name>LimeReport::ReportEnginePrivate</name>
@ -2132,6 +2136,10 @@ This preview is no longer valid.</source>
<source>GENERAL</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Seconds</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LimeReport::SettingDialog</name>

View File

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

Binary file not shown.

View File

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