diff --git a/common.pri b/common.pri
index f0cd913..2cebc25 100644
--- a/common.pri
+++ b/common.pri
@@ -32,13 +32,12 @@ contains(CONFIG, easy_profiler){
!contains(CONFIG, qtscriptengine){
greaterThan(QT_MAJOR_VERSION, 4){
+greaterThan(QT_MINOR_VERSION, 5){
CONFIG *= qjsengine
-#greaterThan(QT_MINOR_VERSION, 5){
-# CONFIG *= qjsengine
-#}
-#lessThan(QT_MINOR_VERSION, 6){
-# CONFIG *= qtscriptengine
-#}
+}
+lessThan(QT_MINOR_VERSION, 6){
+ CONFIG *= qtscriptengine
+}
}
lessThan(QT_MAJOR_VERSION, 5){
CONFIG *= qtscriptengine
diff --git a/designer/main.cpp b/designer/main.cpp
index d36ee1d..413f33f 100644
--- a/designer/main.cpp
+++ b/designer/main.cpp
@@ -10,17 +10,24 @@ int main(int argc, char *argv[])
DesignerSettingManager manager;
QTranslator limeReportTranslator;
- QTranslator qtTranslator;
+ QTranslator qtBaseTranslator;
+ QTranslator qtDesignerTranslator;
+ QTranslator qtLinguistTranslator;
+
QString translationPath = QApplication::applicationDirPath();
- translationPath.append("/languages");
+ translationPath.append("/translations");
Qt::LayoutDirection layoutDirection = QLocale::system().textDirection();
QString designerTranslation = QLocale(manager.getCurrentDefaultLanguage()).name();
if (limeReportTranslator.load("limereport_"+designerTranslation, translationPath)){
- qtTranslator.load("qt_" + designerTranslation, translationPath);
- a.installTranslator(&qtTranslator);
+ qtBaseTranslator.load("qtbase_" + designerTranslation, translationPath);
+ qtDesignerTranslator.load("designer_"+designerTranslation,translationPath);
+
+ a.installTranslator(&qtBaseTranslator);
+ a.installTranslator(&qtDesignerTranslator);
a.installTranslator(&limeReportTranslator);
+
Qt::LayoutDirection layoutDirection = QLocale(manager.getCurrentDefaultLanguage()).textDirection();
a.setLayoutDirection(layoutDirection);
}
diff --git a/include/lrglobal.h b/include/lrglobal.h
index d1cb8b9..bf23065 100644
--- a/include/lrglobal.h
+++ b/include/lrglobal.h
@@ -95,6 +95,7 @@ namespace Const{
const int SCENE_MARGIN = 50;
const QString FUNCTION_MANAGER_NAME = "LimeReport";
const QString EOW("~!@#$%^&*()+{}|:\"<>?,/;'[]\\-=");
+ const int DEFAULT_TAB_INDENTION = 4;
}
QString extractClassName(QString className);
@@ -157,6 +158,7 @@ namespace Const{
static inline QJSValue getJSValue(QJSEngine &e, T *p)
{
QJSValue res = e.newQObject(p);
+ QQmlEngine::setObjectOwnership(p, QQmlEngine::CppOwnership);
return res;
}
#else
diff --git a/limereport/items/lrtextitemeditor.cpp b/limereport/items/lrtextitemeditor.cpp
index 8b2e28b..8299fbc 100644
--- a/limereport/items/lrtextitemeditor.cpp
+++ b/limereport/items/lrtextitemeditor.cpp
@@ -118,8 +118,6 @@ void TextItemEditor::initUI()
{
QStringList dataWords;
- ui->toolButton->setChecked(false);
- ui->gbSettings->setVisible(false);
LimeReport::DataSourceManager* dm = m_page->datasourceManager();
LimeReport::ScriptEngineManager& se = LimeReport::ScriptEngineManager::instance();
se.setDataManager(dm);
@@ -152,13 +150,19 @@ void TextItemEditor::readSetting()
if (v.isValid()){
ui->codeEditor->restoreState(v.toByteArray());
}
-
- QVariant fontName = settings()->value("FontName");
+ settings()->endGroup();
+ settings()->beginGroup("ScriptEditor");
+ QVariant fontName = settings()->value("DefaultFontName");
if (fontName.isValid()){
- QVariant fontSize = settings()->value("FontSize");
+ QVariant fontSize = settings()->value("DefaultFontSize");
ui->codeEditor->setEditorFont(QFont(fontName.toString(),fontSize.toInt()));
- ui->editorFont->setCurrentFont(ui->codeEditor->editorFont());
- ui->editorFontSize->setValue(fontSize.toInt());
+ }
+
+ QVariant tabIndention = settings()->value("TabIndention");
+ if (tabIndention.isValid()){
+ ui->codeEditor->setTabIndention(tabIndention.toInt());
+ } else {
+ ui->codeEditor->setTabIndention(LimeReport::Const::DEFAULT_TAB_INDENTION);
}
settings()->endGroup();
@@ -175,33 +179,6 @@ void TextItemEditor::writeSetting()
}
}
-void TextItemEditor::on_editorFont_currentFontChanged(const QFont &f)
-{
- if (m_isReadingSetting) return;
- QFont tmp = f;
- tmp.setPointSize(ui->editorFontSize->value());
- ui->codeEditor->setEditorFont(tmp);
- settings()->beginGroup("TextItemEditor");
- settings()->setValue("FontName",ui->codeEditor->editorFont().family());
- settings()->setValue("FontSize",ui->editorFontSize->value());
- settings()->endGroup();
-}
-
-void TextItemEditor::on_editorFontSize_valueChanged(int arg1)
-{
- if (m_isReadingSetting) return;
- ui->codeEditor->setEditorFont(QFont(ui->codeEditor->editorFont().family(),arg1));
- settings()->beginGroup("TextItemEditor");
- settings()->setValue("FontName",ui->codeEditor->editorFont().family());
- settings()->setValue("FontSize",ui->editorFontSize->value());
- settings()->endGroup();
-}
-
-void TextItemEditor::on_toolButton_clicked(bool checked)
-{
- ui->gbSettings->setVisible(checked);
-}
-
void TextItemEditor::slotSplitterMoved(int, int)
{
writeSetting();
diff --git a/limereport/items/lrtextitemeditor.h b/limereport/items/lrtextitemeditor.h
index 43b41ad..b9e2750 100644
--- a/limereport/items/lrtextitemeditor.h
+++ b/limereport/items/lrtextitemeditor.h
@@ -69,7 +69,7 @@ public:
QSettings* settings=0, QWidget *parent = 0);
~TextItemEditor();
void setSettings(QSettings* value);
- QSettings* settings();
+ QSettings* settings();
protected:
void resizeEvent(QResizeEvent *);
void moveEvent(QMoveEvent *);
@@ -78,9 +78,6 @@ protected:
private slots:
void on_pbOk_clicked();
void on_pbCancel_clicked();
- void on_editorFont_currentFontChanged(const QFont &f);
- void on_editorFontSize_valueChanged(int arg1);
- void on_toolButton_clicked(bool checked);
void slotSplitterMoved(int, int);
private:
void initUI();
diff --git a/limereport/items/lrtextitemeditor.ui b/limereport/items/lrtextitemeditor.ui
index f9d74e4..403ea63 100644
--- a/limereport/items/lrtextitemeditor.ui
+++ b/limereport/items/lrtextitemeditor.ui
@@ -17,7 +17,7 @@
Text Item Editor
-
+
:/items/images/insert-text_3.png:/items/images/insert-text_3.png
@@ -58,68 +58,8 @@
- -
-
-
- Editor settings
-
-
-
-
-
-
-
-
-
- Editor font
-
-
-
- -
-
-
- -
-
-
- 11
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ...
-
-
-
- :/items/images/settings.png:/items/images/settings.png
-
-
- true
-
-
- true
-
-
-
-
@@ -169,6 +109,9 @@
pbOk
pbCancel
-
+
+
+
+
diff --git a/limereport/lrglobal.h b/limereport/lrglobal.h
index d1cb8b9..bf23065 100644
--- a/limereport/lrglobal.h
+++ b/limereport/lrglobal.h
@@ -95,6 +95,7 @@ namespace Const{
const int SCENE_MARGIN = 50;
const QString FUNCTION_MANAGER_NAME = "LimeReport";
const QString EOW("~!@#$%^&*()+{}|:\"<>?,/;'[]\\-=");
+ const int DEFAULT_TAB_INDENTION = 4;
}
QString extractClassName(QString className);
@@ -157,6 +158,7 @@ namespace Const{
static inline QJSValue getJSValue(QJSEngine &e, T *p)
{
QJSValue res = e.newQObject(p);
+ QQmlEngine::setObjectOwnership(p, QQmlEngine::CppOwnership);
return res;
}
#else
diff --git a/limereport/lrpagedesignintf.h b/limereport/lrpagedesignintf.h
index 23627f0..dbf89f7 100644
--- a/limereport/lrpagedesignintf.h
+++ b/limereport/lrpagedesignintf.h
@@ -210,7 +210,10 @@ namespace LimeReport {
void multiItemsSelected(QList* objectsList);
void miltiItemsSelectionFinished();
void commandHistoryChanged();
- void itemPropertyChanged(const QString& objectName, const QString& propertyName, const QVariant& oldValue, const QVariant& newValue);
+ void itemPropertyChanged(const QString& objectName,
+ const QString& propertyName,
+ const QVariant& oldValue,
+ const QVariant& newValue);
void itemAdded(LimeReport::PageDesignIntf* page, LimeReport::BaseDesignIntf* item);
void itemRemoved(LimeReport::PageDesignIntf* page, LimeReport::BaseDesignIntf* item);
void bandAdded(LimeReport::PageDesignIntf* page, LimeReport::BandDesignIntf* band);
@@ -247,7 +250,9 @@ namespace LimeReport {
void setBorders(const BaseDesignIntf::BorderLines& border);
private slots:
void slotPageGeometryChanged(QObject*, QRectF, QRectF );
- void slotItemPropertyChanged(QString propertyName, const QVariant &oldValue, const QVariant &newValue);
+ void slotItemPropertyChanged(QString propertyName,
+ const QVariant &oldValue,
+ const QVariant &newValue);
void slotItemPropertyObjectNameChanged(const QString& oldName, const QString& newName);
void bandDeleted(QObject* band);
void slotPageItemLoaded(QObject *);
@@ -262,7 +267,10 @@ namespace LimeReport {
void checkSizeOrPosChanges();
CommandIf::Ptr createChangePosCommand();
CommandIf::Ptr createChangeSizeCommand();
- void saveChangeProppertyCommand(const QString& objectName, const QString& propertyName, const QVariant& oldPropertyValue, const QVariant& newPropertyValue);
+ void saveChangeProppertyCommand(const QString& objectName,
+ const QString& propertyName,
+ const QVariant& oldPropertyValue,
+ const QVariant& newPropertyValue);
void changeSelectedGroupProperty(const QString& name,const QVariant& value);
private:
diff --git a/limereport/lrpreviewreportwidget.cpp b/limereport/lrpreviewreportwidget.cpp
index c8c2378..fb24404 100644
--- a/limereport/lrpreviewreportwidget.cpp
+++ b/limereport/lrpreviewreportwidget.cpp
@@ -203,7 +203,11 @@ void PreviewReportWidget::print()
printer.setPrinterName(pi.defaultPrinter().printerName());
#endif
#ifdef HAVE_QT5
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 3, 0))
printer.setPrinterName(pi.defaultPrinterName());
+#else
+ printer.setPrinterName(pi.defaultPrinter().printerName());
+#endif
#endif
QPrintDialog dialog(&printer,QApplication::activeWindow());
if (dialog.exec()==QDialog::Accepted){
diff --git a/limereport/lrreportdesignwidget.cpp b/limereport/lrreportdesignwidget.cpp
index 64e04f6..750ae0a 100644
--- a/limereport/lrreportdesignwidget.cpp
+++ b/limereport/lrreportdesignwidget.cpp
@@ -51,12 +51,13 @@ namespace LimeReport {
// ReportDesignIntf
-ReportDesignWidget::ReportDesignWidget(ReportEnginePrivateInterface* report, QMainWindow *mainWindow, QWidget *parent) :
+ReportDesignWidget::ReportDesignWidget(ReportEnginePrivateInterface* report, QSettings* settings, QMainWindow *mainWindow, QWidget *parent) :
QWidget(parent),
#ifdef HAVE_QTDESIGNER_INTEGRATION
m_dialogDesignerManager(new DialogDesignerManager(this)),
#endif
- m_mainWindow(mainWindow), m_verticalGridStep(10), m_horizontalGridStep(10), m_useGrid(false), m_dialogChanged(false), m_useDarkTheme(false)
+ m_mainWindow(mainWindow), m_verticalGridStep(10), m_horizontalGridStep(10), m_useGrid(false),
+ m_dialogChanged(false), m_useDarkTheme(false), m_settings(settings)
{
#ifdef HAVE_QT4
m_tabWidget = new LimeReportTabWidget(this);
@@ -205,41 +206,55 @@ void ReportDesignWidget::applySettings()
parentWidget()->setStyleSheet("");
m_report->setStyleSheet("");
}
+
+ if (m_settings){
+ m_settings->beginGroup("ScriptEditor");
+ QVariant v = m_settings->value("DefaultFontName");
+ if (v.isValid()){
+ QVariant fontSize = m_settings->value("DefaultFontSize");
+ m_scriptEditor->setEditorFont(QFont(v.toString(),fontSize.toInt()));
+ }
+ v = m_settings->value("TabIndention");
+ if (v.isValid()){
+ m_scriptEditor->setTabIndention(v.toInt());
+ }
+ m_settings->endGroup();
+ }
}
-void ReportDesignWidget::loadState(QSettings* settings)
+void ReportDesignWidget::loadState()
{
- settings->beginGroup("DesignerWidget");
- QVariant v = settings->value("hGridStep");
+ m_settings->beginGroup("DesignerWidget");
+ QVariant v = m_settings->value("hGridStep");
if (v.isValid()){
m_horizontalGridStep = v.toInt();
}
- v = settings->value("vGridStep");
+ v = m_settings->value("vGridStep");
if (v.isValid()){
m_verticalGridStep = v.toInt();
}
- v = settings->value("defaultFont");
+ v = m_settings->value("defaultFont");
if (v.isValid()){
m_defaultFont = v.value();
}
- v = settings->value("useGrid");
+ v = m_settings->value("useGrid");
if (v.isValid()){
m_useGrid = v.toBool();
}
- v = settings->value("useDarkTheme");
+ v = m_settings->value("useDarkTheme");
if (v.isValid()){
m_useDarkTheme = v.toBool();
}
- v = settings->value("ScriptEditorState");
+ v = m_settings->value("ScriptEditorState");
if (v.isValid()){
m_scriptEditor->restoreState(v.toByteArray());
}
- settings->endGroup();
+ m_settings->endGroup();
applySettings();
}
@@ -720,6 +735,7 @@ void ReportDesignWidget::deleteCurrentPage()
void ReportDesignWidget::editSetting()
{
SettingDialog setting(this);
+ setting.setSettings(m_settings);
setting.setVerticalGridStep(m_verticalGridStep);
setting.setHorizontalGridStep(m_horizontalGridStep);
setting.setDefaultFont(m_defaultFont);
diff --git a/limereport/lrreportdesignwidget.h b/limereport/lrreportdesignwidget.h
index da9719f..0352158 100644
--- a/limereport/lrreportdesignwidget.h
+++ b/limereport/lrreportdesignwidget.h
@@ -84,7 +84,8 @@ public:
Translations,
TabTypeCount
};
- ReportDesignWidget(ReportEnginePrivateInterface* report, QMainWindow *mainWindow, QWidget *parent = 0);
+ ReportDesignWidget(ReportEnginePrivateInterface* report, QSettings* settings,
+ QMainWindow *mainWindow, QWidget *parent = 0);
~ReportDesignWidget();
void createStartPage();
void clear();
@@ -112,7 +113,7 @@ public:
bool emitSaveReportAs();
bool emitLoadReport();
void saveState(QSettings *settings);
- void loadState(QSettings *settings);
+ void loadState();
void applySettings();
void applyUseGrid();
bool useGrid(){ return m_useGrid;}
@@ -227,6 +228,7 @@ private:
bool m_useMagnet;
bool m_dialogChanged;
bool m_useDarkTheme;
+ QSettings* m_settings;
};
} // namespace LimeReport
diff --git a/limereport/lrreportdesignwindow.cpp b/limereport/lrreportdesignwindow.cpp
index 86f5863..416c6c8 100644
--- a/limereport/lrreportdesignwindow.cpp
+++ b/limereport/lrreportdesignwindow.cpp
@@ -472,7 +472,7 @@ void ReportDesignWindow::createMainMenu()
void ReportDesignWindow::initReportEditor(ReportEnginePrivateInterface* report)
{
- m_reportDesignWidget=new ReportDesignWidget(report,this,this);
+ m_reportDesignWidget=new ReportDesignWidget(report, m_settings, this,this);
setCentralWidget(m_reportDesignWidget);
connect(m_reportDesignWidget,SIGNAL(itemSelected(LimeReport::BaseDesignIntf*)),
this,SLOT(slotItemSelected(LimeReport::BaseDesignIntf*)));
@@ -822,7 +822,7 @@ void ReportDesignWindow::restoreSetting()
}
settings()->endGroup();
- m_reportDesignWidget->loadState(settings());
+ m_reportDesignWidget->loadState();
m_useGridAction->setChecked(m_reportDesignWidget->useGrid());
createRecentFilesMenu();
}
diff --git a/limereport/lrreportengine.cpp b/limereport/lrreportengine.cpp
index ab09828..dde790f 100644
--- a/limereport/lrreportengine.cpp
+++ b/limereport/lrreportengine.cpp
@@ -82,7 +82,7 @@ ReportEnginePrivate::ReportEnginePrivate(QObject *parent) :
m_reportRendering(false), m_resultIsEditable(true), m_passPhrase("HjccbzHjlbyfCkjy"),
m_fileWatcher( new QFileSystemWatcher( this ) ), m_reportLanguage(QLocale::AnyLanguage),
m_previewLayoutDirection(Qt::LayoutDirectionAuto), m_designerFactory(0),
- m_previewScaleType(FitWidth), m_previewScalePercent(0)
+ m_previewScaleType(FitWidth), m_previewScalePercent(0), m_startTOCPage(0)
{
#ifdef HAVE_STATIC_BUILD
initResources();
@@ -252,7 +252,6 @@ void ReportEnginePrivate::clearReport()
m_fileName="";
m_scriptEngineContext->clear();
m_reportSettings.setDefaultValues();
-
emit cleared();
}
@@ -404,7 +403,11 @@ bool ReportEnginePrivate::printReport(QPrinter* printer)
m_printer.data()->setPrinterName(pi.defaultPrinter().printerName());
#endif
#ifdef HAVE_QT5
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 3, 0))
m_printer.data()->setPrinterName(pi.defaultPrinterName());
+#else
+ m_printer.data()->setPrinterName(pi.defaultPrinter().printerName());
+#endif
#endif
QPrintDialog dialog(m_printer.data(),QApplication::activeWindow());
m_printerSelected = dialog.exec()!=QDialog::Rejected;
@@ -437,7 +440,11 @@ bool ReportEnginePrivate::printPages(ReportPages pages, QPrinter *printer)
m_printer.data()->setPrinterName(pi.defaultPrinter().printerName());
#endif
#ifdef HAVE_QT5
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 3, 0))
m_printer.data()->setPrinterName(pi.defaultPrinterName());
+#else
+ m_printer.data()->setPrinterName(pi.defaultPrinter().printerName());
+#endif
#endif
QPrintDialog dialog(m_printer.data(),QApplication::activeWindow());
m_printerSelected = dialog.exec()!=QDialog::Rejected;
@@ -1140,6 +1147,9 @@ void ReportEnginePrivate::paintByExternalPainter(const QString& objectName, QPai
ReportPages ReportEnginePrivate::renderToPages()
{
+ int startTOCPage = -1;
+ int pageAfterTOCIndex = -1;
+
if (m_reportRendering) return ReportPages();
initReport();
m_reportRender = ReportRender::Ptr(new ReportRender);
@@ -1176,10 +1186,15 @@ ReportPages ReportEnginePrivate::renderToPages()
activateLanguage(m_reportLanguage);
emit renderStarted();
- foreach(PageItemDesignIntf* page , m_renderingPages){
+ for(int i = 0; i < m_renderingPages.count(); ++i){
+ PageItemDesignIntf* page = m_renderingPages.at(i);
if (!page->isTOC() && page->isPrintable()){
page->setReportSettings(&m_reportSettings);
result.append(m_reportRender->renderPageToPages(page));
+ } else {
+ startTOCPage = result.count();
+ pageAfterTOCIndex = i+1;
+ m_reportRender->createTOCMarker(page->resetPageNumber());
}
}
@@ -1187,16 +1202,17 @@ ReportPages ReportEnginePrivate::renderToPages()
PageItemDesignIntf* page = m_renderingPages.at(i);
if (page->isTOC()){
page->setReportSettings(&m_reportSettings);
- if (i==0){
+ if (i < m_renderingPages.count()){
PageItemDesignIntf* secondPage = 0;
- if (m_pages.count()>1) secondPage = m_renderingPages.at(1);
+ if ( m_renderingPages.count() > (pageAfterTOCIndex))
+ secondPage = m_renderingPages.at(pageAfterTOCIndex);
ReportPages pages = m_reportRender->renderTOC(
page,
true,
secondPage && secondPage->resetPageNumber()
);
for (int j=0; j exporters;
ScaleType m_previewScaleType;
int m_previewScalePercent;
+ int m_startTOCPage;
};
}
diff --git a/limereport/lrreportrender.cpp b/limereport/lrreportrender.cpp
index a2d1c7f..6f01c71 100644
--- a/limereport/lrreportrender.cpp
+++ b/limereport/lrreportrender.cpp
@@ -148,7 +148,7 @@ void ReportRender::renameChildItems(BaseDesignIntf *item){
ReportRender::ReportRender(QObject *parent)
:QObject(parent), m_renderPageItem(0), m_pageCount(0),
- m_lastRenderedHeader(0), m_lastDataBand(0), m_lastRenderedFooter(0), m_currentColumn(0), m_newPageStarted(false), m_renderingFirstTOC(false)
+ m_lastRenderedHeader(0), m_lastDataBand(0), m_lastRenderedFooter(0), m_currentColumn(0), m_newPageStarted(false)
{
initColumns();
}
@@ -192,18 +192,13 @@ void ReportRender::renderPage(PageItemDesignIntf* patternPage, bool isTOC, bool
{
m_currentNameIndex = 0;
m_patternPageItem = patternPage;
- m_renderingFirstTOC = isTOC && isFirst;
if (m_patternPageItem->resetPageNumber() && m_pageCount>0 && !isTOC) {
resetPageNumber(PageReset);
}
- if (m_renderingFirstTOC && resetPageNumbers){
- PagesRange range;
- range.firstPage = 0;
- range.lastPage = 0;
- m_ranges.insert(0,range);
- m_pageCount = 0;
+ if (m_patternPageItem->resetPageNumber() && !isTOC && m_pageCount == 0){
+ m_pagesRanges.startNewRange();
}
m_renderCanceled = false;
@@ -248,11 +243,6 @@ void ReportRender::renderPage(PageItemDesignIntf* patternPage, bool isTOC, bool
savePage(true);
- if (m_renderingFirstTOC && resetPageNumbers && m_ranges.count()>1){
- m_ranges[1].firstPage = m_ranges.at(0).lastPage+1;
- m_ranges[1].lastPage += m_ranges.at(0).lastPage+1;
- }
-
#ifndef USE_QJSENGINE
ScriptEngineManager::instance().scriptEngine()->popContext();
#endif
@@ -1138,21 +1128,26 @@ void ReportRender::secondRenderPass(ReportPages renderedPages)
for(int i=0; ichildBaseItems()){
- updateTOC(item, findPageNumber(i));
+ updateTOC(item, m_pagesRanges.findPageNumber(i));
}
}
}
for(int i=0; isetReportVariable("#PAGE",findPageNumber(i));
- m_datasources->setReportVariable("#PAGE_COUNT",findLastPageNumber(i));
+ m_datasources->setReportVariable("#PAGE",m_pagesRanges.findPageNumber(i));
+ m_datasources->setReportVariable("#PAGE_COUNT",m_pagesRanges.findLastPageNumber(i));
foreach(BaseDesignIntf* item, page->childBaseItems()){
item->updateItemSize(m_datasources, SecondPass);
}
}
}
+void ReportRender::createTOCMarker(bool startNewRange)
+{
+ m_pagesRanges.addTOCMarker(startNewRange);
+}
+
BandDesignIntf *ReportRender::saveUppperPartReturnBottom(BandDesignIntf *band, int height, BandDesignIntf* patternBand)
{
int sliceHeight = height;
@@ -1256,37 +1251,11 @@ void ReportRender::startNewPage(bool isFirst)
void ReportRender::resetPageNumber(ResetPageNuberType resetType)
{
- PagesRange range;
- if (!m_ranges.isEmpty()){
- currentRange().lastPage = (resetType == BandReset)? m_pageCount : m_pageCount-1;
- range.firstPage = m_pageCount+((resetType == BandReset)? 1 : 0);
- } else {
- range.firstPage = m_pageCount;
- }
- range.lastPage = (resetType == BandReset)? 0 : m_pageCount;
- m_ranges.append(range);
+ m_pagesRanges.startNewRange();
if (resetType == PageReset)
m_datasources->setReportVariable("#PAGE",1);
}
-int ReportRender::findLastPageNumber(int currentPage)
-{
- foreach (PagesRange range, m_ranges) {
- if ( range.firstPage<= (currentPage) && range.lastPage>= (currentPage) )
- return (range.lastPage-(range.firstPage))+1;
- }
- return 0;
-}
-
-int ReportRender::findPageNumber(int currentPage)
-{
- foreach (PagesRange range, m_ranges) {
- if ( range.firstPage<= (currentPage) && range.lastPage>= (currentPage) )
- return (currentPage - range.firstPage)+1;
- }
- return 0;
-}
-
void ReportRender::cutGroups()
{
m_popupedExpression.clear();
@@ -1406,6 +1375,10 @@ void ReportRender::moveTearOffBand(){
void ReportRender::savePage(bool isLast)
{
+ if (m_renderPageItem->isTOC())
+ m_pagesRanges.addTOCPage();
+ else
+ m_pagesRanges.addPage();
m_datasources->setReportVariable("#IS_LAST_PAGEFOOTER",isLast);
m_datasources->setReportVariable("#IS_FIRST_PAGEFOOTER",m_datasources->variable("#PAGE").toInt()==1);
@@ -1427,14 +1400,12 @@ void ReportRender::savePage(bool isLast)
}
}
- if (currentRange(m_renderingFirstTOC).lastPage==0 && m_ranges.count()>1) {
+ if (m_pagesRanges.currentRange(m_patternPageItem->isTOC()).firstPage == 0) {
m_datasources->setReportVariable("#PAGE",1);
} else {
m_datasources->setReportVariable("#PAGE",m_datasources->variable("#PAGE").toInt()+1);
}
- currentRange(m_renderingFirstTOC).lastPage = m_pageCount;
-
BandDesignIntf* pageFooter = m_renderPageItem->bandByType(BandDesignIntf::PageFooter);
if (pageFooter) pageFooter->setBandIndex(++m_currentIndex);
m_renderedPages.append(PageItemDesignIntf::Ptr(m_renderPageItem));
@@ -1478,4 +1449,96 @@ void ReportRender::cancelRender(){
m_renderCanceled = true;
}
+int PagesRanges::findLastPageNumber(int index)
+{
+ index++;
+ foreach (PagesRange range, m_ranges) {
+ if ( range.firstPage <= (index) && range.lastPage>= (index) )
+ return (range.lastPage-(range.firstPage))+1;
+ }
+ return 0;
+}
+
+int PagesRanges::findPageNumber(int index)
+{
+ index++;
+ foreach (PagesRange range, m_ranges) {
+ if ( range.firstPage <= (index) && range.lastPage >= (index) )
+ return (index - range.firstPage)+1;
+ }
+ return 0;
+}
+
+PagesRange&PagesRanges::currentRange(bool isTOC)
+{
+ Q_ASSERT( (isTOC && m_TOCRangeIndex!=-1) || !isTOC);
+ if (isTOC && m_TOCRangeIndex !=-1) return m_ranges[m_TOCRangeIndex];
+ return m_ranges.last();
+}
+
+void PagesRanges::startNewRange(bool isTOC)
+{
+ PagesRange range;
+ if (!m_ranges.isEmpty()){
+ range.firstPage = 0;
+ range.lastPage = m_ranges.last().lastPage + 1;
+ } else {
+ range.firstPage = 0;
+ range.lastPage = 0;
+ }
+ range.isTOC = isTOC;
+ m_ranges.append(range);
+ if (isTOC) m_TOCRangeIndex = m_ranges.size()-1;
+}
+
+void PagesRanges::addTOCMarker(bool addNewRange)
+{
+ if ( addNewRange || m_ranges.isEmpty()){
+ startNewRange(true);
+ } else {
+ m_TOCRangeIndex = m_ranges.size()-1;
+ m_ranges.last().isTOC = true;
+ }
+}
+
+void PagesRanges::addPage()
+{
+ if (m_ranges.isEmpty()) startNewRange();
+ if (m_ranges.last().firstPage == 0){
+ m_ranges.last().firstPage = m_ranges.last().lastPage == 0 ? 1 : m_ranges.last().lastPage;
+ m_ranges.last().lastPage = m_ranges.last().lastPage == 0 ? 1 : m_ranges.last().lastPage;
+ } else {
+ m_ranges.last().lastPage++;
+ }
+}
+
+void PagesRanges::shiftRangesNextToTOC(){
+ for(int i = m_TOCRangeIndex+1; i < m_ranges.size(); ++i){
+ m_ranges[i].firstPage++;
+ m_ranges[i].lastPage++;
+ }
+}
+
+void PagesRanges::addTOCPage()
+{
+ Q_ASSERT(m_TOCRangeIndex != -1);
+ if (m_TOCRangeIndex != -1){
+ PagesRange& tocRange = m_ranges[m_TOCRangeIndex];
+ if (tocRange.firstPage == 0) {
+ tocRange.firstPage = tocRange.lastPage == 0 ? 1 : tocRange.lastPage;
+ tocRange.lastPage = tocRange.lastPage == 0 ? 1 : tocRange.lastPage;
+ if (tocRange.lastPage == 1 && tocRange.lastPage == 1)
+ shiftRangesNextToTOC();
+ } else {
+ tocRange.lastPage++;
+ shiftRangesNextToTOC();
+ }
+ }
+}
+
+void PagesRanges::clear()
+{
+ m_ranges.clear();
+}
+
} // namespace LimeReport
diff --git a/limereport/lrreportrender.h b/limereport/lrreportrender.h
index 6c14bda..8cbbc0f 100644
--- a/limereport/lrreportrender.h
+++ b/limereport/lrreportrender.h
@@ -61,6 +61,25 @@ private:
struct PagesRange{
int firstPage;
int lastPage;
+ bool isTOC;
+};
+
+class PagesRanges{
+public:
+ PagesRanges(): m_TOCRangeIndex(-1) {}
+ int findLastPageNumber(int index);
+ int findPageNumber(int index);
+ PagesRange& currentRange(bool isTOC);
+ void startNewRange(bool isTOC = false);
+ void addTOCMarker(bool addNewRange);
+ void addPage();
+ void addTOCPage();
+ void clear();
+private:
+ void shiftRangesNextToTOC();
+private:
+ QVector m_ranges;
+ int m_TOCRangeIndex;
};
class ReportRender: public QObject
@@ -84,6 +103,7 @@ public:
ReportPages renderPageToPages(PageItemDesignIntf *patternPage);
ReportPages renderTOC(PageItemDesignIntf *patternPage, bool first, bool resetPages);
void secondRenderPass(ReportPages renderedPages);
+ void createTOCMarker(bool startNewRange);
signals:
void pageRendered(int renderedPageCount);
public slots:
@@ -147,8 +167,8 @@ private:
void startNewColumn();
void startNewPage(bool isFirst = false);
void resetPageNumber(ResetPageNuberType resetType);
- int findLastPageNumber(int currentPage);
- int findPageNumber(int currentPage);
+ //int findLastPageNumber(int currentPage);
+ //int findPageNumber(int currentPage);
void savePage(bool isLast = false);
QString toString();
void initColumns();
@@ -161,7 +181,7 @@ private:
void renameChildItems(BaseDesignIntf *item);
void renderGroupFooterByHeader(BandDesignIntf *groupHeader);
void updateTOC(BaseDesignIntf* item, int pageNumber);
- PagesRange& currentRange(bool isTOC = false){ return (isTOC) ? m_ranges.first(): m_ranges.last();}
+ //PagesRange& currentRange(bool isTOC = false){ return (isTOC) ? m_ranges.first(): m_ranges.last();}
void placeBandOnPage(BandDesignIntf *band, int columnIndex);
private:
DataSourceManager* m_datasources;
@@ -190,11 +210,10 @@ private:
QVector m_maxHeightByColumn;
QVector m_currentStartDataPos;
int m_currentColumn;
- QList m_ranges;
+ PagesRanges m_pagesRanges;
QVector m_columnedBandItems;
unsigned long long m_currentNameIndex;
bool m_newPageStarted;
- bool m_renderingFirstTOC;
};
} // namespace LimeReport
diff --git a/limereport/lrsettingdialog.cpp b/limereport/lrsettingdialog.cpp
index 9040fb0..b7ad816 100644
--- a/limereport/lrsettingdialog.cpp
+++ b/limereport/lrsettingdialog.cpp
@@ -1,11 +1,12 @@
#include "lrsettingdialog.h"
#include "ui_lrsettingdialog.h"
+#include "lrglobal.h"
#include
namespace LimeReport{
SettingDialog::SettingDialog(QWidget *parent) :
- QDialog(parent),
+ QDialog(parent), m_settings(0),
ui(new Ui::SettingDialog)
{
ui->setupUi(this);
@@ -13,6 +14,7 @@ SettingDialog::SettingDialog(QWidget *parent) :
if (!theme.exists()){
ui->cbbUseDarkTheme->setVisible(false);
}
+ ui->indentSize->setRange(0,10);
}
SettingDialog::~SettingDialog()
@@ -37,6 +39,18 @@ QFont SettingDialog::defaultFont()
return result;
}
+QFont SettingDialog::scriptFont()
+{
+ QFont result = ui->scriptFont->currentFont();
+ result.setPointSize(ui->scriptFontSize->value());
+ return result;
+}
+
+int SettingDialog::tabIndention()
+{
+ return ui->indentSize->value();
+}
+
bool SettingDialog::userDarkTheme()
{
return ui->cbbUseDarkTheme->isChecked();
@@ -76,6 +90,17 @@ void SettingDialog::setDefaultFont(const QFont &value)
ui->defaultFontSize->setValue(value.pointSize());
}
+void SettingDialog::setScriptFont(const QFont& value)
+{
+ ui->scriptFont->setCurrentFont(value);
+ ui->scriptFontSize->setValue(value.pointSize());
+}
+
+void SettingDialog::setScritpTabIndention(int size)
+{
+ ui->indentSize->setValue(size);
+}
+
void SettingDialog::setUseDarkTheme(bool value)
{
ui->cbbUseDarkTheme->setChecked(value);
@@ -103,4 +128,37 @@ void SettingDialog::setDesignerLanguages(QList languages, QLo
#endif
}
+void SettingDialog::setSettings(QSettings* settings){
+ m_settings = settings;
+ if (m_settings){
+ m_settings->beginGroup("ScriptEditor");
+ QVariant fontName = m_settings->value("DefaultFontName");
+ if (fontName.isValid()){
+ QVariant fontSize = m_settings->value("DefaultFontSize");
+ ui->scriptFont->setCurrentFont(QFont(fontName.toString(),fontSize.toInt()));
+ ui->scriptFontSize->setValue(fontSize.toInt());
+ }
+ QVariant indentSize = m_settings->value("TabIndention");
+ if (indentSize.isValid()){
+ ui->indentSize->setValue(indentSize.toInt());
+ } else {
+ ui->indentSize->setValue(LimeReport::Const::DEFAULT_TAB_INDENTION);
+ }
+ m_settings->endGroup();
+ }
+}
+
+void SettingDialog::on_bbOkCancel_accepted()
+{
+ if (m_settings){
+ m_settings->beginGroup("ScriptEditor");
+ m_settings->setValue("DefaultFontName", ui->scriptFont->currentFont().family());
+ m_settings->setValue("DefaultFontSize", ui->scriptFontSize->value());
+ m_settings->setValue("TabIndention", ui->indentSize->value());
+ m_settings->endGroup();
+ }
+}
+
} // namespace LimeReport
+
+
diff --git a/limereport/lrsettingdialog.h b/limereport/lrsettingdialog.h
index d4c89e3..bc4e862 100644
--- a/limereport/lrsettingdialog.h
+++ b/limereport/lrsettingdialog.h
@@ -3,6 +3,7 @@
#include
#include
+#include
namespace LimeReport{
@@ -20,6 +21,8 @@ public:
int verticalGridStep();
int horizontalGridStep();
QFont defaultFont();
+ QFont scriptFont();
+ int tabIndention();
bool userDarkTheme();
bool suppressAbsentFieldsAndVarsWarnings();
QLocale::Language designerLanguage();
@@ -27,12 +30,19 @@ public:
void setHorizontalGridStep(int value);
void setVerticalGridStep(int value);
void setDefaultFont(const QFont& value);
+ void setScriptFont(const QFont& value);
+ void setScritpTabIndention(int size);
void setUseDarkTheme(bool value);
void setDesignerLanguages(QList languages, QLocale::Language currentLanguage);
+ void setSettings(QSettings* settings);
+private slots:
+ void on_bbOkCancel_accepted();
+
private:
Ui::SettingDialog *ui;
QList m_aviableLanguages;
QLocale::Language m_currentLanguage;
+ QSettings* m_settings;
};
} // namespace LimeReport
diff --git a/limereport/lrsettingdialog.ui b/limereport/lrsettingdialog.ui
index 19d27fe..12af083 100644
--- a/limereport/lrsettingdialog.ui
+++ b/limereport/lrsettingdialog.ui
@@ -6,8 +6,8 @@
0
0
- 397
- 345
+ 419
+ 362
@@ -19,164 +19,260 @@
Designer setting
-
-
- QLayout::SetDefaultConstraint
-
+
-
-
-
- Designer Setting
+
+
+ 0
-
-
-
-
-
-
-
-
- Default font
-
-
-
- -
-
-
- -
-
-
- 10
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
-
- -
-
-
- Grid
-
-
+
+
+
+ 0
+ 0
+ 401
+ 218
+
+
+
+ Designer settings
+
+
+
-
+
-
-
-
-
-
-
- Vertical grid step
-
-
-
- -
-
-
- 10
-
-
-
- -
-
-
- Horizontal grid step
-
-
-
- -
-
-
- 10
-
-
-
-
+
+
+ Default font
+
+
-
-
+
+
+ -
+
+
+ 10
+
+
+
+ -
+
Qt::Horizontal
- 73
+ 40
20
-
-
- -
-
-
-
-
-
- Language
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
-
-
- -
-
-
- Use dark theme
-
-
-
-
+
+ -
+
+
+ Grid
+
+
+
-
+
+
-
+
+
+ Vertical grid step
+
+
+
+ -
+
+
+ 10
+
+
+
+ -
+
+
+ Horizontal grid step
+
+
+
+ -
+
+
+ 10
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 73
+ 20
+
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Language
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+ -
+
+
+ Use dark theme
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 401
+ 218
+
+
+
+ Script editor settings
+
+
+ -
+
+
-
+
+
+ Font
+
+
+
+ -
+
+
+ -
+
+
+ 10
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Indent size
+
+
+
+ -
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 123
+
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 401
+ 218
+
+
+
+ Report settings
+
+
+
+
+ 10
+ 10
+ 280
+ 23
+
+
+
+ Suppress absent fields and variables warning
+
+
+
- -
-
-
- Report Setting
-
-
-
-
-
-
- Suppress absent fields and variables warning
-
-
-
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 4
-
-
-
-
-
-
diff --git a/limereport/objectinspector/lrobjectitemmodel.cpp b/limereport/objectinspector/lrobjectitemmodel.cpp
index b39c4d0..2addb1e 100644
--- a/limereport/objectinspector/lrobjectitemmodel.cpp
+++ b/limereport/objectinspector/lrobjectitemmodel.cpp
@@ -154,6 +154,7 @@ void QObjectPropertyModel::translatePropertyName()
tr("replaceCRwithBR");
tr("hideIfEmpty");
tr("hideEmptyItems");
+ tr("useExternalPainter");
}
void QObjectPropertyModel::clearObjectsList()
diff --git a/limereport/objectinspector/propertyItems/lrcontentpropitem.cpp b/limereport/objectinspector/propertyItems/lrcontentpropitem.cpp
index 53c9806..cc50ced 100644
--- a/limereport/objectinspector/propertyItems/lrcontentpropitem.cpp
+++ b/limereport/objectinspector/propertyItems/lrcontentpropitem.cpp
@@ -26,7 +26,6 @@ void ContentEditor::editButtonClicked()
dialog->setLayout(new QVBoxLayout());
dialog->layout()->setContentsMargins(1,1,1,1);
dialog->setAttribute(Qt::WA_DeleteOnClose);
- //dialog->setGeometry(QStyle::alignedRect(Qt::LeftToRight, Qt::AlignCenter, dialog->size(), QApplication::desktop()->availableGeometry()));
dialog->setWindowTitle(propertyName());
QWidget* editor = dynamic_cast(m_object)->defaultEditor();
dialog->layout()->addWidget(editor);
diff --git a/limereport/scripteditor/lrscripteditor.cpp b/limereport/scripteditor/lrscripteditor.cpp
index f40068a..c73a225 100644
--- a/limereport/scripteditor/lrscripteditor.cpp
+++ b/limereport/scripteditor/lrscripteditor.cpp
@@ -14,12 +14,13 @@ namespace LimeReport{
ScriptEditor::ScriptEditor(QWidget *parent) :
QWidget(parent),
- ui(new Ui::ScriptEditor), m_reportEngine(0), m_page(0)
+ ui(new Ui::ScriptEditor), m_reportEngine(0), m_page(0), m_tabIndention(4)
{
ui->setupUi(this);
setFocusProxy(ui->textEdit);
m_completer = new ReportStructureCompleater(this);
ui->textEdit->setCompleter(m_completer);
+ ui->textEdit->setTabStopWidth(ui->textEdit->fontMetrics().width("0")*m_tabIndention);
connect(ui->splitter, SIGNAL(splitterMoved(int,int)), this, SIGNAL(splitterMoved(int,int)));
}
@@ -79,58 +80,16 @@ void ScriptEditor::setPageBand(BandDesignIntf* band)
}
}
+void ScriptEditor::setTabIndention(int charCount)
+{
+ if (m_tabIndention != charCount){
+ ui->textEdit->setTabStopWidth(ui->textEdit->fontMetrics().width("W")*charCount);
+ m_tabIndention = charCount;
+ }
+}
+
void ScriptEditor::initCompleter()
{
-// QStringList dataWords;
-
-// DataSourceManager* dm = 0;
-// if (m_reportEngine)
-// dm = m_reportEngine->dataManager();
-// if (m_page)
-// dm = m_page->datasourceManager();
-
-//#ifdef USE_QJSENGINE
-// ScriptEngineManager& se = LimeReport::ScriptEngineManager::instance();
-// QJSValue globalObject = se.scriptEngine()->globalObject();
-// QJSValueIterator it(globalObject);
-// while (it.hasNext()){
-// it.next();
-// if (it.value().isCallable() ){
-// dataWords << it.name();
-// }
-// }
-//#endif
-// foreach(const QString &dsName,dm->dataSourceNames()){
-// dataWords << dsName;
-// foreach(const QString &field, dm->fieldNames(dsName)){
-// dataWords<variableNames()) {
-// dataWords << varName.remove("#");
-// }
-
-// if (m_reportEngine){
-// for ( int i = 0; i < m_reportEngine->pageCount(); ++i){
-// PageDesignIntf* page = m_reportEngine->pageAt(i);
-// dataWords << page->pageItem()->objectName();
-// QMetaObject const * mo = page->pageItem()->metaObject();
-// for(int i = mo->methodOffset(); i < mo->methodCount(); ++i)
-// {
-// if (mo->method(i).methodType() == QMetaMethod::Signal) {
-// dataWords << page->pageItem()->objectName() +"."+QString::fromLatin1(mo->method(i).name());
-// }
-// }
-// dataWords << page->pageItem()->objectName()+".beforeRender";
-// dataWords << page->pageItem()->objectName()+".afterRender";
-// foreach (BaseDesignIntf* item, page->pageItem()->childBaseItems()){
-// addItemToCompleater(page->pageItem()->objectName(), item, dataWords);
-// }
-// }
-// }
-
-// dataWords.sort();
if (m_reportEngine)
m_completer->updateCompleaterModel(m_reportEngine);
else
@@ -167,26 +126,26 @@ QString ScriptEditor::toPlainText()
return ui->textEdit->toPlainText();
}
-void ScriptEditor::addItemToCompleater(const QString& pageName, BaseDesignIntf* item, QStringList& dataWords)
-{
- BandDesignIntf* band = dynamic_cast(item);
- if (band){
- dataWords << band->objectName();
- dataWords << pageName+"_"+band->objectName();
- dataWords << pageName+"_"+band->objectName()+".beforeRender";
- dataWords << pageName+"_"+item->objectName()+".afterData";
- dataWords << pageName+"_"+band->objectName()+".afterRender";
- foreach (BaseDesignIntf* child, band->childBaseItems()){
- addItemToCompleater(pageName, child, dataWords);
- }
- } else {
- dataWords << item->objectName();
- dataWords << pageName+"_"+item->objectName();
- dataWords << pageName+"_"+item->objectName()+".beforeRender";
- dataWords << pageName+"_"+item->objectName()+".afterData";
- dataWords << pageName+"_"+item->objectName()+".afterRender";
- }
-}
+//void ScriptEditor::addItemToCompleater(const QString& pageName, BaseDesignIntf* item, QStringList& dataWords)
+//{
+// BandDesignIntf* band = dynamic_cast(item);
+// if (band){
+// dataWords << band->objectName();
+// dataWords << pageName+"_"+band->objectName();
+// dataWords << pageName+"_"+band->objectName()+".beforeRender";
+// dataWords << pageName+"_"+item->objectName()+".afterData";
+// dataWords << pageName+"_"+band->objectName()+".afterRender";
+// foreach (BaseDesignIntf* child, band->childBaseItems()){
+// addItemToCompleater(pageName, child, dataWords);
+// }
+// } else {
+// dataWords << item->objectName();
+// dataWords << pageName+"_"+item->objectName();
+// dataWords << pageName+"_"+item->objectName()+".beforeRender";
+// dataWords << pageName+"_"+item->objectName()+".afterData";
+// dataWords << pageName+"_"+item->objectName()+".afterRender";
+// }
+//}
void ScriptEditor::on_twData_doubleClicked(const QModelIndex &index)
{
diff --git a/limereport/scripteditor/lrscripteditor.h b/limereport/scripteditor/lrscripteditor.h
index e9e0aa6..8233d8e 100644
--- a/limereport/scripteditor/lrscripteditor.h
+++ b/limereport/scripteditor/lrscripteditor.h
@@ -52,6 +52,7 @@ public:
void setReportEngine(LimeReport::ReportEnginePrivateInterface* reportEngine);
void setReportPage(PageDesignIntf* page);
void setPageBand(BandDesignIntf* band);
+ void setTabIndention(int charCount);
void initCompleter();
QByteArray saveState();
void restoreState(QByteArray state);
@@ -68,13 +69,14 @@ private slots:
void on_twData_doubleClicked(const QModelIndex &index);
void on_twScriptEngine_doubleClicked(const QModelIndex &index);
void slotOnCurrentChanged(const QModelIndex& to, const QModelIndex&);
-private:
- void addItemToCompleater(const QString& pageName, BaseDesignIntf* item, QStringList& dataWords);
+//private:
+// void addItemToCompleater(const QString& pageName, BaseDesignIntf* item, QStringList& dataWords);
private:
Ui::ScriptEditor *ui;
ReportEnginePrivateInterface* m_reportEngine;
PageDesignIntf* m_page;
ReportStructureCompleater* m_completer;
+ int m_tabIndention;
};
} // namespace LimeReport
diff --git a/translations/limereport_ru.qm b/translations/limereport_ru.qm
index 0b912bd..aa82093 100644
Binary files a/translations/limereport_ru.qm and b/translations/limereport_ru.qm differ
diff --git a/translations/limereport_ru.ts b/translations/limereport_ru.ts
index cca8845..9d72224 100644
--- a/translations/limereport_ru.ts
+++ b/translations/limereport_ru.ts
@@ -384,6 +384,14 @@ p, li { white-space: pre-wrap; }
Печатать, если пустое
+
+
+ Вырезать
+
+
+
+ Копировать
+
LimeReport::BaseDesignIntf
@@ -1086,6 +1094,10 @@ p, li { white-space: pre-wrap; }
LimeReport::ImageItem
+
+
+ Внешний
+
Изображение
@@ -1864,6 +1876,10 @@ p, li { white-space: pre-wrap; }
Скрывать пустые элементы
+
+
+ Использовать внешний отрисовщик
+
LimeReport::RectMMPropItem