From e3d01f1451c77692ae58a5c808ac85e723cee769 Mon Sep 17 00:00:00 2001 From: Arin Alexander Date: Thu, 29 Jun 2017 02:32:42 +0300 Subject: [PATCH] Band names translation has been added --- limereport/lrbanddesignintf.cpp | 34 +++++++++++++-- limereport/lrbanddesignintf.h | 2 + limereport/lrreportdesignwindow.cpp | 2 + translations/limereport_ru.ts | 68 +++++++++++++++++++++++++++++ 4 files changed, 102 insertions(+), 4 deletions(-) diff --git a/limereport/lrbanddesignintf.cpp b/limereport/lrbanddesignintf.cpp index 05412cb..61bb5cf 100644 --- a/limereport/lrbanddesignintf.cpp +++ b/limereport/lrbanddesignintf.cpp @@ -159,6 +159,16 @@ BandDesignIntf::~BandDesignIntf() delete m_bandNameLabel; } +int extractItemIndex(const BaseDesignIntf* item){ + QString objectName = extractClassName(item->metaObject()->className()); + QString value = item->objectName().right(item->objectName().size() - objectName.size()); + return value.toInt(); +} + +QString BandDesignIntf::translateBandName(const BaseDesignIntf* item) const{ + return tr(extractClassName(item->metaObject()->className()).toLatin1())+QString::number(extractItemIndex(item)); +} + void BandDesignIntf::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { @@ -170,8 +180,7 @@ void BandDesignIntf::paint(QPainter *painter, const QStyleOptionGraphicsItem *op if (itemMode() & DesignMode){ painter->save(); - QString bandText = objectName(); - if (parentBand()) bandText+=tr(" connected to ")+parentBand()->objectName(); + QString bandText = bandTitle(); QFont font("Arial", 7 * Const::fontFACTOR, -1, true); QFontMetrics fontMetrics(font); @@ -202,6 +211,23 @@ void BandDesignIntf::paint(QPainter *painter, const QStyleOptionGraphicsItem *op BaseDesignIntf::paint(painter,option,widget); } +void BandDesignIntf::translateBandsName() +{ + tr("DataBand"); + tr("DataHeaderBand"); + tr("DataFooterBand"); + tr("ReportHeader"); + tr("ReportFooter"); + tr("PageHeader"); + tr("PageFooter"); + tr("SubDetailBand"); + tr("SubDetailHeaderBand"); + tr("SubDetailFooterBand"); + tr("GroupBandHeader"); + tr("GroupBandFooter"); + tr("TearOffBand"); +} + BandDesignIntf::BandsType BandDesignIntf::bandType() const { return m_bandType; @@ -209,8 +235,8 @@ BandDesignIntf::BandsType BandDesignIntf::bandType() const QString BandDesignIntf::bandTitle() const { - QString result = objectName(); - if (parentBand()) result +=tr(" connected to ")+parentBand()->objectName(); + QString result = translateBandName(this); + if (parentBand()) result +=tr(" connected to ") + translateBandName(parentBand()); return result; } diff --git a/limereport/lrbanddesignintf.h b/limereport/lrbanddesignintf.h index eab3d90..e306742 100644 --- a/limereport/lrbanddesignintf.h +++ b/limereport/lrbanddesignintf.h @@ -121,6 +121,7 @@ public: ~BandDesignIntf(); void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); + void translateBandsName(); virtual BandsType bandType() const; virtual QString bandTitle() const; virtual QIcon bandIcon() const; @@ -241,6 +242,7 @@ protected: void moveItemsDown(qreal startPos, qreal offset); void preparePopUpMenu(QMenu &menu); void processPopUpAction(QAction *action); + QString translateBandName(const BaseDesignIntf *item) const; private slots: void childBandDeleted(QObject* band); private: diff --git a/limereport/lrreportdesignwindow.cpp b/limereport/lrreportdesignwindow.cpp index 68e44fd..b2c882b 100644 --- a/limereport/lrreportdesignwindow.cpp +++ b/limereport/lrreportdesignwindow.cpp @@ -1058,8 +1058,10 @@ void ReportDesignWindow::slotBandAdded(PageDesignIntf *, BandDesignIntf * band) break; case BandDesignIntf::ReportFooter: m_newReportFooter->setDisabled(true); + break; case BandDesignIntf::TearOffBand: m_newTearOffBand->setDisabled(true); + break; default: break; } diff --git a/translations/limereport_ru.ts b/translations/limereport_ru.ts index 96d6602..d2bd7e0 100644 --- a/translations/limereport_ru.ts +++ b/translations/limereport_ru.ts @@ -255,6 +255,74 @@ p, li { white-space: pre-wrap; } Splittable Разбивать содержимое на части + + DataBand + Данные + + + ReportHeader + Заголовок отчета + + + ReportFooter + Завершение отчета + + + PageHeader + Верхний колонтитул + + + PageFooter + Нижний колонтитул + + + Subdetail + Подчиненный + + + DataHeaderBand + Заголовок данных + + + DataFooterBand + Завершение данных + + + SubdetailBand + Подчиненные данные + + + SubdetailHeaderBand + Заголовок подчиненных данных + + + SubdetailFooterBand + Завершение подчиненных данных + + + GroupBandHeader + Заголовок группы + + + GroupBandFooter + Завершение группы + + + TearOffBand + Полоса для отрывания + + + SubDetailBand + Подчиненные данные + + + SubDetailHeaderBand + Заголовок подчиненных данных + + + SubDetailFooterBand + Завершение подчиненных данных + LimeReport::BaseDesignIntf