mirror of
https://github.com/python-LimeReport/LimeReport.git
synced 2024-12-24 12:34:39 +03:00
Merge branch 'develop' into feature/pdf-signal
This commit is contained in:
commit
50de5dddd7
@ -952,6 +952,7 @@ QDockWidget {
|
|||||||
QDockWidget::title{
|
QDockWidget::title{
|
||||||
background: #383838;
|
background: #383838;
|
||||||
padding-left: 5px;
|
padding-left: 5px;
|
||||||
|
margin-top: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,7 +8,8 @@ contains(CONFIG,release) {
|
|||||||
}
|
}
|
||||||
TEMPLATE = app
|
TEMPLATE = app
|
||||||
|
|
||||||
SOURCES += main.cpp
|
SOURCES += main.cpp \
|
||||||
|
designersettingmanager.cpp
|
||||||
|
|
||||||
INCLUDEPATH += $$PWD/../include
|
INCLUDEPATH += $$PWD/../include
|
||||||
DEPENDPATH += $$PWD/../include
|
DEPENDPATH += $$PWD/../include
|
||||||
@ -61,3 +62,6 @@ win32 {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
designersettingmanager.h
|
||||||
|
|
||||||
|
37
designer/designersettingmanager.cpp
Normal file
37
designer/designersettingmanager.cpp
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#include "designersettingmanager.h"
|
||||||
|
|
||||||
|
DesignerSettingManager::DesignerSettingManager(QObject *parent) : QObject(parent)
|
||||||
|
{
|
||||||
|
m_setting = new QSettings("LimeReport",QCoreApplication::applicationName());
|
||||||
|
}
|
||||||
|
|
||||||
|
DesignerSettingManager::~DesignerSettingManager()
|
||||||
|
{
|
||||||
|
delete m_setting;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DesignerSettingManager::getAviableLanguages(QList<QLocale::Language>* languages)
|
||||||
|
{
|
||||||
|
languages->append(QLocale::Russian);
|
||||||
|
languages->append(QLocale::English);
|
||||||
|
languages->append(QLocale::Arabic);
|
||||||
|
}
|
||||||
|
|
||||||
|
QLocale::Language DesignerSettingManager::getCurrentDefaultLanguage()
|
||||||
|
{
|
||||||
|
m_setting->beginGroup("ReportDesigner");
|
||||||
|
QVariant v = m_setting->value("DesignerLanguage");
|
||||||
|
m_setting->endGroup();
|
||||||
|
if (v.isValid()){
|
||||||
|
return static_cast<QLocale::Language>(v.toInt()) ;
|
||||||
|
} else {
|
||||||
|
return QLocale::system().language();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DesignerSettingManager::currentDefaulLanguageChanged(QLocale::Language language)
|
||||||
|
{
|
||||||
|
m_setting->beginGroup("ReportDesigner");
|
||||||
|
m_setting->setValue("DesignerLanguage", (int)language);
|
||||||
|
m_setting->endGroup();
|
||||||
|
}
|
27
designer/designersettingmanager.h
Normal file
27
designer/designersettingmanager.h
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#ifndef DESIGNERSETTINGMANAGER_H
|
||||||
|
#define DESIGNERSETTINGMANAGER_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QLocale>
|
||||||
|
#include <QApplication>
|
||||||
|
#include <QSettings>
|
||||||
|
|
||||||
|
class DesignerSettingManager : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
explicit DesignerSettingManager(QObject *parent = 0);
|
||||||
|
~DesignerSettingManager();
|
||||||
|
void setApplicationInstance(QApplication* application);
|
||||||
|
signals:
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void getAviableLanguages(QList<QLocale::Language>* languages);
|
||||||
|
QLocale::Language getCurrentDefaultLanguage();
|
||||||
|
void currentDefaulLanguageChanged(QLocale::Language language);
|
||||||
|
private:
|
||||||
|
QApplication* m_app;
|
||||||
|
QSettings* m_setting;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // DESIGNERSETTINGMANAGER_H
|
@ -1,25 +1,46 @@
|
|||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <LimeReport>
|
#include <LimeReport>
|
||||||
#include <QTranslator>
|
#include <QTranslator>
|
||||||
|
#include <QDebug>
|
||||||
|
#include "designersettingmanager.h"
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
QApplication a(argc, argv);
|
QApplication a(argc, argv);
|
||||||
|
DesignerSettingManager manager;
|
||||||
|
|
||||||
QTranslator limeReportTranslator;
|
QTranslator limeReportTranslator;
|
||||||
QString translationPath = QApplication::applicationDirPath();
|
QString translationPath = QApplication::applicationDirPath();
|
||||||
translationPath.append("/languages");
|
translationPath.append("/languages");
|
||||||
limeReportTranslator.load("limereport_"+QLocale::system().name(),translationPath);
|
|
||||||
|
QString designerTranslation = QLocale(manager.getCurrentDefaultLanguage()).name();
|
||||||
|
|
||||||
|
limeReportTranslator.load("limereport_"+designerTranslation, translationPath);
|
||||||
a.installTranslator(&limeReportTranslator);
|
a.installTranslator(&limeReportTranslator);
|
||||||
|
|
||||||
QTranslator qtTranslator;
|
QTranslator qtTranslator;
|
||||||
qtTranslator.load("qt_" + QLocale::system().name(),translationPath);
|
qtTranslator.load("qt_" + designerTranslation, translationPath);
|
||||||
a.installTranslator(&qtTranslator);
|
a.installTranslator(&qtTranslator);
|
||||||
|
|
||||||
|
Qt::LayoutDirection layoutDirection = QLocale(manager.getCurrentDefaultLanguage()).textDirection();
|
||||||
|
|
||||||
LimeReport::ReportEngine report;
|
LimeReport::ReportEngine report;
|
||||||
|
a.setLayoutDirection(layoutDirection);
|
||||||
|
report.setPreviewLayoutDirection(layoutDirection);
|
||||||
|
|
||||||
if (a.arguments().count()>1){
|
if (a.arguments().count()>1){
|
||||||
report.loadFromFile(a.arguments().at(1));
|
report.loadFromFile(a.arguments().at(1));
|
||||||
}
|
}
|
||||||
|
QObject::connect(&report, SIGNAL(getAviableLanguages(QList<QLocale::Language>*)),
|
||||||
|
&manager, SLOT(getAviableLanguages(QList<QLocale::Language>*)));
|
||||||
|
|
||||||
|
QObject::connect(&report, SIGNAL(getCurrentDefaultLanguage()),
|
||||||
|
&manager, SLOT(getCurrentDefaultLanguage()));
|
||||||
|
|
||||||
|
QObject::connect(&report, SIGNAL(currentDefaulLanguageChanged(QLocale::Language)),
|
||||||
|
&manager, SLOT(currentDefaulLanguageChanged(QLocale::Language)));
|
||||||
|
|
||||||
report.designReport();
|
report.designReport();
|
||||||
return a.exec();
|
return a.exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,6 +113,8 @@ public:
|
|||||||
bool setReportLanguage(QLocale::Language language);
|
bool setReportLanguage(QLocale::Language language);
|
||||||
Qt::LayoutDirection previewLayoutDirection();
|
Qt::LayoutDirection previewLayoutDirection();
|
||||||
void setPreviewLayoutDirection(const Qt::LayoutDirection& previewLayoutDirection);
|
void setPreviewLayoutDirection(const Qt::LayoutDirection& previewLayoutDirection);
|
||||||
|
QList<QLocale::Language> designerLanguages();
|
||||||
|
QLocale::Language currentDesignerLanguage();
|
||||||
signals:
|
signals:
|
||||||
void renderStarted();
|
void renderStarted();
|
||||||
void renderFinished();
|
void renderFinished();
|
||||||
@ -120,6 +122,10 @@ signals:
|
|||||||
void onLoad(bool& loaded);
|
void onLoad(bool& loaded);
|
||||||
void onSave();
|
void onSave();
|
||||||
void saveFinished();
|
void saveFinished();
|
||||||
|
void loaded();
|
||||||
|
void getAviableLanguages(QList<QLocale::Language>* languages);
|
||||||
|
void currentDefaulLanguageChanged(QLocale::Language);
|
||||||
|
QLocale::Language getCurrentDefaultLanguage();
|
||||||
public slots:
|
public slots:
|
||||||
void cancelRender();
|
void cancelRender();
|
||||||
protected:
|
protected:
|
||||||
|
@ -96,31 +96,10 @@ void DataBrowser::slotAddConnection()
|
|||||||
void DataBrowser::slotSQLEditingFinished(SQLEditResult result)
|
void DataBrowser::slotSQLEditingFinished(SQLEditResult result)
|
||||||
{
|
{
|
||||||
if (result.dialogMode==SQLEditDialog::AddMode) {
|
if (result.dialogMode==SQLEditDialog::AddMode) {
|
||||||
switch (result.resultMode) {
|
addDatasource(result);
|
||||||
case SQLEditResult::Query:
|
|
||||||
addQuery(result);
|
|
||||||
break;
|
|
||||||
case SQLEditResult::SubQuery:
|
|
||||||
addSubQuery(result);
|
|
||||||
break;
|
|
||||||
case SQLEditResult::SubProxy:
|
|
||||||
addProxy(result);
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
switch(result.resultMode){
|
applyChanges(result);
|
||||||
case SQLEditResult::Query:
|
|
||||||
changeQuery(result);
|
|
||||||
break;
|
|
||||||
case SQLEditResult::SubQuery:
|
|
||||||
changeSubQuery(result);
|
|
||||||
break;
|
|
||||||
case SQLEditResult::SubProxy:
|
|
||||||
changeProxy(result);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
updateDataTree();
|
updateDataTree();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -661,6 +640,50 @@ void DataBrowser::changeProxy(SQLEditResult result)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SQLEditResult::ResultMode DataBrowser::currentDatasourceType(const QString& datasourceName)
|
||||||
|
{
|
||||||
|
if (m_report->dataManager()->isQuery(datasourceName)) return SQLEditResult::Query;
|
||||||
|
if (m_report->dataManager()->isSubQuery(datasourceName)) return SQLEditResult::SubQuery;
|
||||||
|
if (m_report->dataManager()->isProxy(datasourceName)) return SQLEditResult::SubProxy;
|
||||||
|
return SQLEditResult::Undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DataBrowser::applyChanges(SQLEditResult result)
|
||||||
|
{
|
||||||
|
if (result.resultMode == currentDatasourceType(result.datasourceName)){
|
||||||
|
switch(result.resultMode){
|
||||||
|
case SQLEditResult::Query:
|
||||||
|
changeQuery(result);
|
||||||
|
break;
|
||||||
|
case SQLEditResult::SubQuery:
|
||||||
|
changeSubQuery(result);
|
||||||
|
break;
|
||||||
|
case SQLEditResult::SubProxy:
|
||||||
|
changeProxy(result);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
removeDatasource(result.datasourceName);
|
||||||
|
addDatasource(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DataBrowser::addDatasource(SQLEditResult result)
|
||||||
|
{
|
||||||
|
switch (result.resultMode) {
|
||||||
|
case SQLEditResult::Query:
|
||||||
|
addQuery(result);
|
||||||
|
break;
|
||||||
|
case SQLEditResult::SubQuery:
|
||||||
|
addSubQuery(result);
|
||||||
|
break;
|
||||||
|
case SQLEditResult::SubProxy:
|
||||||
|
addProxy(result);
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void DataBrowser::addConnectionDesc(ConnectionDesc *connection)
|
void DataBrowser::addConnectionDesc(ConnectionDesc *connection)
|
||||||
{
|
{
|
||||||
m_report->dataManager()->addConnectionDesc(connection);
|
m_report->dataManager()->addConnectionDesc(connection);
|
||||||
|
@ -106,6 +106,11 @@ private:
|
|||||||
void addProxy(SQLEditResult result);
|
void addProxy(SQLEditResult result);
|
||||||
void changeProxy(SQLEditResult result);
|
void changeProxy(SQLEditResult result);
|
||||||
|
|
||||||
|
|
||||||
|
SQLEditResult::ResultMode currentDatasourceType(const QString& datasourceName);
|
||||||
|
void applyChanges(SQLEditResult result);
|
||||||
|
void addDatasource(SQLEditResult result);
|
||||||
|
|
||||||
void addConnectionDesc(ConnectionDesc *connection);
|
void addConnectionDesc(ConnectionDesc *connection);
|
||||||
void changeConnectionDesc(ConnectionDesc *connection);
|
void changeConnectionDesc(ConnectionDesc *connection);
|
||||||
bool checkConnectionDesc(ConnectionDesc *connection);
|
bool checkConnectionDesc(ConnectionDesc *connection);
|
||||||
|
@ -179,7 +179,7 @@ void SQLEditDialog::setDataSources(LimeReport::DataSourceManager *dataSources, Q
|
|||||||
{
|
{
|
||||||
m_datasources=dataSources;
|
m_datasources=dataSources;
|
||||||
if (!datasourceName.isEmpty()){
|
if (!datasourceName.isEmpty()){
|
||||||
ui->cbSubdetail->setEnabled(false);
|
ui->cbSubdetail->setEnabled(true);
|
||||||
initQueryMode();
|
initQueryMode();
|
||||||
m_oldDatasourceName=datasourceName;
|
m_oldDatasourceName=datasourceName;
|
||||||
ui->leDatasourceName->setText(datasourceName);
|
ui->leDatasourceName->setText(datasourceName);
|
||||||
@ -278,7 +278,6 @@ void SQLEditDialog::initSubQueryMode()
|
|||||||
ui->leMaster->setVisible(true);
|
ui->leMaster->setVisible(true);
|
||||||
ui->leMaster->setEnabled(true);
|
ui->leMaster->setEnabled(true);
|
||||||
ui->lbMaster->setVisible(true);
|
ui->lbMaster->setVisible(true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SQLEditDialog::initProxyMode()
|
void SQLEditDialog::initProxyMode()
|
||||||
|
@ -95,7 +95,7 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct SQLEditResult{
|
struct SQLEditResult{
|
||||||
enum ResultMode{Query,SubQuery,SubProxy};
|
enum ResultMode{Query, SubQuery, SubProxy, Undefined};
|
||||||
QString connectionName;
|
QString connectionName;
|
||||||
QString datasourceName;
|
QString datasourceName;
|
||||||
QString oldDatasourceName;
|
QString oldDatasourceName;
|
||||||
|
@ -106,9 +106,9 @@ bool FontEditorWidget::ignoreSlots() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void FontEditorWidget::slotFontChanged(const QFont /*&font*/)
|
void FontEditorWidget::slotFontChanged(const QFont& /*font*/)
|
||||||
{
|
{
|
||||||
// if (page()) page()->setFont(font);
|
//if (page()) page()->setFont(font);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FontEditorWidget::slotFontSizeChanged(const QString &value)
|
void FontEditorWidget::slotFontSizeChanged(const QString &value)
|
||||||
|
@ -53,7 +53,7 @@ protected:
|
|||||||
QFontComboBox* fontNameEditor(){return m_fontNameEditor;}
|
QFontComboBox* fontNameEditor(){return m_fontNameEditor;}
|
||||||
virtual void initEditor();
|
virtual void initEditor();
|
||||||
protected slots:
|
protected slots:
|
||||||
virtual void slotFontChanged(const QFont);
|
virtual void slotFontChanged(const QFont&);
|
||||||
virtual void slotFontSizeChanged(const QString& value);
|
virtual void slotFontSizeChanged(const QString& value);
|
||||||
virtual void slotFontAttribsChanged(bool);
|
virtual void slotFontAttribsChanged(bool);
|
||||||
void slotPropertyChanged(const QString& objectName, const QString& property, const QVariant &oldValue, const QVariant &newValue);
|
void slotPropertyChanged(const QString& objectName, const QString& property, const QVariant &oldValue, const QVariant &newValue);
|
||||||
|
@ -707,6 +707,7 @@ void ReportDesignWidget::editSetting()
|
|||||||
setting.setDefaultFont(m_defaultFont);
|
setting.setDefaultFont(m_defaultFont);
|
||||||
setting.setSuppressAbsentFieldsAndVarsWarnings(m_report->suppressFieldAndVarError());
|
setting.setSuppressAbsentFieldsAndVarsWarnings(m_report->suppressFieldAndVarError());
|
||||||
setting.setUseDarkTheme(m_useDarkTheme);
|
setting.setUseDarkTheme(m_useDarkTheme);
|
||||||
|
setting.setDesignerLanguages(m_report->designerLanguages(), m_report->currentDesignerLanguage());
|
||||||
|
|
||||||
if (setting.exec()){
|
if (setting.exec()){
|
||||||
m_horizontalGridStep = setting.horizontalGridStep();
|
m_horizontalGridStep = setting.horizontalGridStep();
|
||||||
@ -714,6 +715,9 @@ void ReportDesignWidget::editSetting()
|
|||||||
m_defaultFont = setting.defaultFont();
|
m_defaultFont = setting.defaultFont();
|
||||||
m_useDarkTheme = setting.userDarkTheme();
|
m_useDarkTheme = setting.userDarkTheme();
|
||||||
m_report->setSuppressFieldAndVarError(setting.suppressAbsentFieldsAndVarsWarnings());
|
m_report->setSuppressFieldAndVarError(setting.suppressAbsentFieldsAndVarsWarnings());
|
||||||
|
if (m_report->currentDesignerLanguage() != setting.designerLanguage() ){
|
||||||
|
m_report->setCurrentDesignerLanguage(setting.designerLanguage());
|
||||||
|
}
|
||||||
applySettings();
|
applySettings();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,6 @@ public:
|
|||||||
QSettings* settings();
|
QSettings* settings();
|
||||||
void restoreSetting();
|
void restoreSetting();
|
||||||
void setShowProgressDialog(bool value){m_showProgressDialog = value;}
|
void setShowProgressDialog(bool value){m_showProgressDialog = value;}
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void slotNewReport();
|
void slotNewReport();
|
||||||
void slotNewPage();
|
void slotNewPage();
|
||||||
|
@ -964,6 +964,27 @@ void ReportEnginePrivate::activateLanguage(QLocale::Language language)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QList<QLocale::Language> ReportEnginePrivate::designerLanguages()
|
||||||
|
{
|
||||||
|
|
||||||
|
QList<QLocale::Language> result;
|
||||||
|
emit getAviableLanguages(&result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
QLocale::Language ReportEnginePrivate::currentDesignerLanguage()
|
||||||
|
{
|
||||||
|
QLocale::Language result = emit getCurrentDefaultLanguage();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ReportEnginePrivate::setCurrentDesignerLanguage(QLocale::Language language)
|
||||||
|
{
|
||||||
|
m_currentDesignerLanguage = language;
|
||||||
|
QMessageBox::information(m_designerWindow, tr("Warning") ,tr("The language will change after the application is restarted"));
|
||||||
|
emit currentDefaulLanguageChanged(language);
|
||||||
|
}
|
||||||
|
|
||||||
QString ReportEnginePrivate::styleSheet() const
|
QString ReportEnginePrivate::styleSheet() const
|
||||||
{
|
{
|
||||||
return m_styleSheet;
|
return m_styleSheet;
|
||||||
@ -1145,8 +1166,17 @@ ReportEngine::ReportEngine(QObject *parent)
|
|||||||
connect(d, SIGNAL(onSave()), this, SIGNAL(onSave()));
|
connect(d, SIGNAL(onSave()), this, SIGNAL(onSave()));
|
||||||
connect(d, SIGNAL(onLoad(bool&)), this, SIGNAL(onLoad(bool&)));
|
connect(d, SIGNAL(onLoad(bool&)), this, SIGNAL(onLoad(bool&)));
|
||||||
connect(d, SIGNAL(saveFinished()), this, SIGNAL(saveFinished()));
|
connect(d, SIGNAL(saveFinished()), this, SIGNAL(saveFinished()));
|
||||||
|
|
||||||
connect(d, SIGNAL(loaded()), this, SIGNAL(loaded()));
|
connect(d, SIGNAL(loaded()), this, SIGNAL(loaded()));
|
||||||
connect(d, SIGNAL(printedToPDF(QString)), this, SIGNAL(printedToPDF(QString)));
|
connect(d, SIGNAL(printedToPDF(QString)), this, SIGNAL(printedToPDF(QString)));
|
||||||
|
|
||||||
|
connect(d, SIGNAL(getAviableLanguages(QList<QLocale::Language>*)),
|
||||||
|
this, SIGNAL(getAviableLanguages(QList<QLocale::Language>*)));
|
||||||
|
connect(d, SIGNAL(currentDefaulLanguageChanged(QLocale::Language)),
|
||||||
|
this, SIGNAL(currentDefaulLanguageChanged(QLocale::Language)));
|
||||||
|
connect(d, SIGNAL(getCurrentDefaultLanguage()),
|
||||||
|
this, SIGNAL(getCurrentDefaultLanguage()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ReportEngine::~ReportEngine()
|
ReportEngine::~ReportEngine()
|
||||||
@ -1253,6 +1283,30 @@ bool ReportEngine::setReportLanguage(QLocale::Language language)
|
|||||||
return d->setReportLanguage(language);
|
return d->setReportLanguage(language);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Qt::LayoutDirection ReportEngine::previewLayoutDirection()
|
||||||
|
{
|
||||||
|
Q_D(ReportEngine);
|
||||||
|
return d->previewLayoutDirection();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ReportEngine::setPreviewLayoutDirection(const Qt::LayoutDirection& previewLayoutDirection)
|
||||||
|
{
|
||||||
|
Q_D(ReportEngine);
|
||||||
|
d->setPreviewLayoutDirection(previewLayoutDirection);
|
||||||
|
}
|
||||||
|
|
||||||
|
QList<QLocale::Language> ReportEngine::designerLanguages()
|
||||||
|
{
|
||||||
|
Q_D(ReportEngine);
|
||||||
|
return d->designerLanguages();
|
||||||
|
}
|
||||||
|
|
||||||
|
QLocale::Language ReportEngine::currentDesignerLanguage()
|
||||||
|
{
|
||||||
|
Q_D(ReportEngine);
|
||||||
|
return d->currentDesignerLanguage();
|
||||||
|
}
|
||||||
|
|
||||||
void ReportEngine::setShowProgressDialog(bool value)
|
void ReportEngine::setShowProgressDialog(bool value)
|
||||||
{
|
{
|
||||||
Q_D(ReportEngine);
|
Q_D(ReportEngine);
|
||||||
|
@ -113,6 +113,8 @@ public:
|
|||||||
bool setReportLanguage(QLocale::Language language);
|
bool setReportLanguage(QLocale::Language language);
|
||||||
Qt::LayoutDirection previewLayoutDirection();
|
Qt::LayoutDirection previewLayoutDirection();
|
||||||
void setPreviewLayoutDirection(const Qt::LayoutDirection& previewLayoutDirection);
|
void setPreviewLayoutDirection(const Qt::LayoutDirection& previewLayoutDirection);
|
||||||
|
QList<QLocale::Language> designerLanguages();
|
||||||
|
QLocale::Language currentDesignerLanguage();
|
||||||
signals:
|
signals:
|
||||||
void renderStarted();
|
void renderStarted();
|
||||||
void renderFinished();
|
void renderFinished();
|
||||||
@ -120,8 +122,14 @@ signals:
|
|||||||
void onLoad(bool& loaded);
|
void onLoad(bool& loaded);
|
||||||
void onSave();
|
void onSave();
|
||||||
void saveFinished();
|
void saveFinished();
|
||||||
|
|
||||||
void loaded();
|
void loaded();
|
||||||
void printedToPDF(QString fileName);
|
void printedToPDF(QString fileName);
|
||||||
|
|
||||||
|
void getAviableLanguages(QList<QLocale::Language>* languages);
|
||||||
|
void currentDefaulLanguageChanged(QLocale::Language);
|
||||||
|
QLocale::Language getCurrentDefaultLanguage();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void cancelRender();
|
void cancelRender();
|
||||||
protected:
|
protected:
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QSharedPointer>
|
#include <QSharedPointer>
|
||||||
#include <QMainWindow>
|
#include <QMainWindow>
|
||||||
|
#include <QLocale>
|
||||||
#include "lrreportengine.h"
|
#include "lrreportengine.h"
|
||||||
#include "lrcollection.h"
|
#include "lrcollection.h"
|
||||||
#include "lrglobal.h"
|
#include "lrglobal.h"
|
||||||
@ -83,6 +84,9 @@ public:
|
|||||||
virtual void setSuppressFieldAndVarError(bool suppressFieldAndVarError) = 0;
|
virtual void setSuppressFieldAndVarError(bool suppressFieldAndVarError) = 0;
|
||||||
virtual void setStyleSheet(const QString& styleSheet) = 0;
|
virtual void setStyleSheet(const QString& styleSheet) = 0;
|
||||||
virtual QString styleSheet() const = 0;
|
virtual QString styleSheet() const = 0;
|
||||||
|
virtual QList<QLocale::Language> designerLanguages() = 0;
|
||||||
|
virtual QLocale::Language currentDesignerLanguage() = 0;
|
||||||
|
virtual void setCurrentDesignerLanguage(QLocale::Language language) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
class ReportEnginePrivate : public QObject, public ICollectionContainer, public ITranslationContainer,
|
class ReportEnginePrivate : public QObject, public ICollectionContainer, public ITranslationContainer,
|
||||||
@ -179,7 +183,9 @@ public:
|
|||||||
void setPreviewLayoutDirection(const Qt::LayoutDirection& previewLayoutDirection);
|
void setPreviewLayoutDirection(const Qt::LayoutDirection& previewLayoutDirection);
|
||||||
QString styleSheet() const;
|
QString styleSheet() const;
|
||||||
void setStyleSheet(const QString &styleSheet);
|
void setStyleSheet(const QString &styleSheet);
|
||||||
|
QList<QLocale::Language> designerLanguages();
|
||||||
|
QLocale::Language currentDesignerLanguage();
|
||||||
|
void setCurrentDesignerLanguage(QLocale::Language language);
|
||||||
signals:
|
signals:
|
||||||
void pagesLoadFinished();
|
void pagesLoadFinished();
|
||||||
void datasourceCollectionLoadFinished(const QString& collectionName);
|
void datasourceCollectionLoadFinished(const QString& collectionName);
|
||||||
@ -190,8 +196,14 @@ signals:
|
|||||||
void onLoad(bool& loaded);
|
void onLoad(bool& loaded);
|
||||||
void onSave();
|
void onSave();
|
||||||
void saveFinished();
|
void saveFinished();
|
||||||
|
|
||||||
void loaded();
|
void loaded();
|
||||||
void printedToPDF(QString fileName);
|
void printedToPDF(QString fileName);
|
||||||
|
|
||||||
|
void getAviableLanguages(QList<QLocale::Language>* languages);
|
||||||
|
void currentDefaulLanguageChanged(QLocale::Language);
|
||||||
|
QLocale::Language getCurrentDefaultLanguage();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
bool slotLoadFromFile(const QString& fileName);
|
bool slotLoadFromFile(const QString& fileName);
|
||||||
void cancelRender();
|
void cancelRender();
|
||||||
@ -250,6 +262,7 @@ private:
|
|||||||
Qt::LayoutDirection m_previewLayoutDirection;
|
Qt::LayoutDirection m_previewLayoutDirection;
|
||||||
LimeReportPluginInterface* m_designerFactory;
|
LimeReportPluginInterface* m_designerFactory;
|
||||||
QString m_styleSheet;
|
QString m_styleSheet;
|
||||||
|
QLocale::Language m_currentDesignerLanguage;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -47,6 +47,15 @@ bool SettingDialog::suppressAbsentFieldsAndVarsWarnings()
|
|||||||
return ui->cbSuppressWarnings->isChecked();
|
return ui->cbSuppressWarnings->isChecked();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QLocale::Language SettingDialog::designerLanguage()
|
||||||
|
{
|
||||||
|
foreach (QLocale::Language language, m_aviableLanguages) {
|
||||||
|
if (ui->designerLanguage->currentText().compare(QLocale::languageToString(language)) == 0)
|
||||||
|
return language;
|
||||||
|
}
|
||||||
|
return QLocale().language();
|
||||||
|
}
|
||||||
|
|
||||||
void SettingDialog::setSuppressAbsentFieldsAndVarsWarnings(bool value){
|
void SettingDialog::setSuppressAbsentFieldsAndVarsWarnings(bool value){
|
||||||
ui->cbSuppressWarnings->setChecked(value);
|
ui->cbSuppressWarnings->setChecked(value);
|
||||||
}
|
}
|
||||||
@ -72,4 +81,22 @@ void SettingDialog::setUseDarkTheme(bool value)
|
|||||||
ui->cbbUseDarkTheme->setChecked(value);
|
ui->cbbUseDarkTheme->setChecked(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SettingDialog::setDesignerLanguages(QList<QLocale::Language> languages, QLocale::Language currentLanguage)
|
||||||
|
{
|
||||||
|
m_aviableLanguages = languages;
|
||||||
|
m_currentLanguage = currentLanguage;
|
||||||
|
|
||||||
|
if (languages.isEmpty()) {
|
||||||
|
ui->designerLanguage->setVisible(false);
|
||||||
|
ui->lblLanguage->setVisible(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ui->designerLanguage->addItem(QLocale::languageToString(currentLanguage));
|
||||||
|
foreach (QLocale::Language language, languages) {
|
||||||
|
if (language != currentLanguage)
|
||||||
|
ui->designerLanguage->addItem(QLocale::languageToString(language));
|
||||||
|
}
|
||||||
|
ui->designerLanguage->setCurrentText(QLocale::languageToString(currentLanguage));
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace LimeReport
|
} // namespace LimeReport
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
#define LRSETTINGDIALOG_H
|
#define LRSETTINGDIALOG_H
|
||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
#include <QLocale>
|
||||||
|
|
||||||
namespace LimeReport{
|
namespace LimeReport{
|
||||||
|
|
||||||
@ -21,13 +22,17 @@ public:
|
|||||||
QFont defaultFont();
|
QFont defaultFont();
|
||||||
bool userDarkTheme();
|
bool userDarkTheme();
|
||||||
bool suppressAbsentFieldsAndVarsWarnings();
|
bool suppressAbsentFieldsAndVarsWarnings();
|
||||||
|
QLocale::Language designerLanguage();
|
||||||
void setSuppressAbsentFieldsAndVarsWarnings(bool value);
|
void setSuppressAbsentFieldsAndVarsWarnings(bool value);
|
||||||
void setHorizontalGridStep(int value);
|
void setHorizontalGridStep(int value);
|
||||||
void setVerticalGridStep(int value);
|
void setVerticalGridStep(int value);
|
||||||
void setDefaultFont(const QFont& value);
|
void setDefaultFont(const QFont& value);
|
||||||
void setUseDarkTheme(bool value);
|
void setUseDarkTheme(bool value);
|
||||||
|
void setDesignerLanguages(QList<QLocale::Language> languages, QLocale::Language currentLanguage);
|
||||||
private:
|
private:
|
||||||
Ui::SettingDialog *ui;
|
Ui::SettingDialog *ui;
|
||||||
|
QList<QLocale::Language> m_aviableLanguages;
|
||||||
|
QLocale::Language m_currentLanguage;
|
||||||
};
|
};
|
||||||
} // namespace LimeReport
|
} // namespace LimeReport
|
||||||
|
|
||||||
|
@ -6,10 +6,16 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>351</width>
|
<width>397</width>
|
||||||
<height>318</height>
|
<height>378</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Designer setting</string>
|
<string>Designer setting</string>
|
||||||
</property>
|
</property>
|
||||||
@ -108,6 +114,27 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="hlLanguage">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="lblLanguage">
|
||||||
|
<property name="text">
|
||||||
|
<string>Language</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="designerLanguage">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="cbbUseDarkTheme">
|
<widget class="QCheckBox" name="cbbUseDarkTheme">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
@ -1,6 +1,60 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!DOCTYPE TS>
|
<!DOCTYPE TS>
|
||||||
<TS version="2.1" language="ru_RU">
|
<TS version="2.1" language="ru_RU">
|
||||||
|
<context>
|
||||||
|
<name>$ClassName$</name>
|
||||||
|
<message>
|
||||||
|
<source>$ClassName$</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ChartItemEditor</name>
|
||||||
|
<message>
|
||||||
|
<source>Series editor</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Series</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Add</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Delete</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Name</source>
|
||||||
|
<translation type="unfinished">Имя</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Values field</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Color</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Type</source>
|
||||||
|
<translation type="unfinished">Тип</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Labels field</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Ok</source>
|
||||||
|
<translation type="unfinished">Ок</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Series name</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LRVariableDialog</name>
|
<name>LRVariableDialog</name>
|
||||||
<message>
|
<message>
|
||||||
@ -23,6 +77,21 @@
|
|||||||
<source>Attention</source>
|
<source>Attention</source>
|
||||||
<translation>Внимание</translation>
|
<translation>Внимание</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mandatory</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>LanguageSelectDialog</name>
|
||||||
|
<message>
|
||||||
|
<source>Dialog</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Language</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::AboutDialog</name>
|
<name>LimeReport::AboutDialog</name>
|
||||||
@ -319,6 +388,10 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Start new page</source>
|
<source>Start new page</source>
|
||||||
<translation>Начинать новую страницу</translation>
|
<translation>Начинать новую страницу</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Keep top space</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::BaseDesignIntf</name>
|
<name>LimeReport::BaseDesignIntf</name>
|
||||||
@ -350,6 +423,10 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>All borders</source>
|
<source>All borders</source>
|
||||||
<translation>Внешние границы</translation>
|
<translation>Внешние границы</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Create Horizontal Layout</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ConnectionDesc</name>
|
<name>LimeReport::ConnectionDesc</name>
|
||||||
@ -440,6 +517,10 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source> already exists! </source>
|
<source> already exists! </source>
|
||||||
<translation> уже существует! </translation>
|
<translation> уже существует! </translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Port</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::DataBand</name>
|
<name>LimeReport::DataBand</name>
|
||||||
@ -447,6 +528,10 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Data</source>
|
<source>Data</source>
|
||||||
<translation>Данные</translation>
|
<translation>Данные</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Use alternate background color</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::DataBrowser</name>
|
<name>LimeReport::DataBrowser</name>
|
||||||
@ -595,6 +680,37 @@ p, li { white-space: pre-wrap; }
|
|||||||
<translation>Внешние переменные</translation>
|
<translation>Внешние переменные</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>LimeReport::DialogDesignerManager</name>
|
||||||
|
<message>
|
||||||
|
<source>Edit Widgets</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Widget Box</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Object Inspector</source>
|
||||||
|
<translation type="unfinished">Инспектор объектов</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Property Editor</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Signals && Slots Editor</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Resource Editor</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Action Editor</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::EnumPropItem</name>
|
<name>LimeReport::EnumPropItem</name>
|
||||||
<message>
|
<message>
|
||||||
@ -785,6 +901,42 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>VerticalUniform</source>
|
<source>VerticalUniform</source>
|
||||||
<translation>Вертикально равномерно</translation>
|
<translation>Вертикально равномерно</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Pie</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>VerticalBar</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>HorizontalBar</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>LegendAlignTop</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>LegendAlignCenter</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>LegendAlignBottom</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>TitleAlignLeft</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>TitleAlignRight</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>TitleAlignCenter</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::FlagsPropItem</name>
|
<name>LimeReport::FlagsPropItem</name>
|
||||||
@ -894,6 +1046,10 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Image</source>
|
<source>Image</source>
|
||||||
<translation>Изображение</translation>
|
<translation>Изображение</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Watermark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ItemLocationPropItem</name>
|
<name>LimeReport::ItemLocationPropItem</name>
|
||||||
@ -1007,6 +1163,14 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Page Footer</source>
|
<source>Page Footer</source>
|
||||||
<translation>Нижний колонтитул</translation>
|
<translation>Нижний колонтитул</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Print on first page</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Print on last page</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::PageHeader</name>
|
<name>LimeReport::PageHeader</name>
|
||||||
@ -1021,6 +1185,22 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Paste</source>
|
<source>Paste</source>
|
||||||
<translation>Вставить</translation>
|
<translation>Вставить</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Page is TOC</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reset page number</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Full page</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Set page size to printer</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::PreviewReportWidget</name>
|
<name>LimeReport::PreviewReportWidget</name>
|
||||||
@ -1553,6 +1733,66 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Property value</source>
|
<source>Property value</source>
|
||||||
<translation>Значение</translation>
|
<translation>Значение</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>endlessHeight</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>extendedHeight</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>isExtendedInDesignMode</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>pageIsTOC</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>setPageSizeToPrinter</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>fillInSecondPass</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>chartTitle</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>chartType</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>drawLegendBorder</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>labelsField</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>legendAlign</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>series</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>titleAlign</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>watermark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>keepTopSpace</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::RectMMPropItem</name>
|
<name>LimeReport::RectMMPropItem</name>
|
||||||
@ -1594,6 +1834,10 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Wrong file format</source>
|
<source>Wrong file format</source>
|
||||||
<translation>Неверный формат файла</translation>
|
<translation>Неверный формат файла</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Translations</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ReportDesignWindow</name>
|
<name>LimeReport::ReportDesignWindow</name>
|
||||||
@ -1687,11 +1931,11 @@ p, li { white-space: pre-wrap; }
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Hide left panel</source>
|
<source>Hide left panel</source>
|
||||||
<translation>Спрятать левую панель</translation>
|
<translation type="vanished">Спрятать левую панель</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Hide right panel</source>
|
<source>Hide right panel</source>
|
||||||
<translation>Спрятать правую панель</translation>
|
<translation type="vanished">Спрятать правую панель</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Report Tools</source>
|
<source>Report Tools</source>
|
||||||
@ -1837,6 +2081,46 @@ p, li { white-space: pre-wrap; }
|
|||||||
<source>Report has been modified! Do you want save the report?</source>
|
<source>Report has been modified! Do you want save the report?</source>
|
||||||
<translation>Отчет был изменен! Сохранить изменения?</translation>
|
<translation>Отчет был изменен! Сохранить изменения?</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Hide left panel | Alt+L</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Hide right panel | Alt+R</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Delete dialog</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Add new dialog</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Widget Box</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Property Editor</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Action Editor</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Resource Editor</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>SignalSlot Editor</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Dialog Designer Tools</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ReportEnginePrivate</name>
|
<name>LimeReport::ReportEnginePrivate</name>
|
||||||
@ -1858,6 +2142,22 @@ p, li { white-space: pre-wrap; }
|
|||||||
This preview is no longer valid.</source>
|
This preview is no longer valid.</source>
|
||||||
<translation>Файл отчета "%1" изменил имя или был удален.</translation>
|
<translation>Файл отчета "%1" изменил имя или был удален.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Designer not found!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Language %1 already exists</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Warning</source>
|
||||||
|
<translation type="unfinished">Предупреждение</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>The language will change after the application is restarted</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ReportFooter</name>
|
<name>LimeReport::ReportFooter</name>
|
||||||
@ -2042,12 +2342,31 @@ This preview is no longer valid.</source>
|
|||||||
<translation>Диалог %1 уже существует</translation>
|
<translation>Диалог %1 уже существует</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>LimeReport::ScriptEditor</name>
|
||||||
|
<message>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation type="unfinished">Форма</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Data</source>
|
||||||
|
<translation type="unfinished">Данные</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Functions</source>
|
||||||
|
<translation type="unfinished">Функции</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ScriptEngineContext</name>
|
<name>LimeReport::ScriptEngineContext</name>
|
||||||
<message>
|
<message>
|
||||||
<source>Dialog with name: %1 can`t be created</source>
|
<source>Dialog with name: %1 can`t be created</source>
|
||||||
<translation>Диалог %1 не может быть создан</translation>
|
<translation>Диалог %1 не может быть создан</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Error</source>
|
||||||
|
<translation type="unfinished">Ошибка</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::ScriptEngineManager</name>
|
<name>LimeReport::ScriptEngineManager</name>
|
||||||
@ -2103,6 +2422,50 @@ This preview is no longer valid.</source>
|
|||||||
<source>GENERAL</source>
|
<source>GENERAL</source>
|
||||||
<translation>ОБЩИЕ</translation>
|
<translation>ОБЩИЕ</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Function manger with name "%1" already exists!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>FieldName</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Field %1 not found in %2!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Datasource</source>
|
||||||
|
<translation type="unfinished">Источник данных</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>ValueField</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>KeyField</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>KeyFieldValue</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Unique identifier</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Content</source>
|
||||||
|
<translation type="unfinished">Содержимое</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Indent</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>datasourceName</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::SettingDialog</name>
|
<name>LimeReport::SettingDialog</name>
|
||||||
@ -2138,6 +2501,14 @@ This preview is no longer valid.</source>
|
|||||||
<source>Suppress absent fields and variables warning</source>
|
<source>Suppress absent fields and variables warning</source>
|
||||||
<translation>Не выводить сообщения об отсутствии полей или переменных</translation>
|
<translation>Не выводить сообщения об отсутствии полей или переменных</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Language</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Use dark theme</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::SubDetailBand</name>
|
<name>LimeReport::SubDetailBand</name>
|
||||||
@ -2221,6 +2592,14 @@ This preview is no longer valid.</source>
|
|||||||
<source>TextItem " %1 " not found!</source>
|
<source>TextItem " %1 " not found!</source>
|
||||||
<translation>Текстовый элемент %1 не найден!</translation>
|
<translation>Текстовый элемент %1 не найден!</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Transparent</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Watermark</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::TextItemEditor</name>
|
<name>LimeReport::TextItemEditor</name>
|
||||||
@ -2234,7 +2613,7 @@ This preview is no longer valid.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Functions</source>
|
<source>Functions</source>
|
||||||
<translation>Функции</translation>
|
<translation type="vanished">Функции</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Editor settings</source>
|
<source>Editor settings</source>
|
||||||
@ -2250,7 +2629,7 @@ This preview is no longer valid.</source>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Data</source>
|
<source>Data</source>
|
||||||
<translation>Данные</translation>
|
<translation type="vanished">Данные</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>...</source>
|
<source>...</source>
|
||||||
@ -2269,6 +2648,53 @@ This preview is no longer valid.</source>
|
|||||||
<translation></translation>
|
<translation></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>LimeReport::TranslationEditor</name>
|
||||||
|
<message>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation type="unfinished">Форма</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Languages</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>...</source>
|
||||||
|
<translation type="unfinished">...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Pages</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Strings</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Source Text</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Translation</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Checked</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Report Item</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Property</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Source text</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>LimeReport::VariablesHolder</name>
|
<name>LimeReport::VariablesHolder</name>
|
||||||
<message>
|
<message>
|
||||||
@ -2486,5 +2912,25 @@ This preview is no longer valid.</source>
|
|||||||
<source>Object with name %1 already exists!</source>
|
<source>Object with name %1 already exists!</source>
|
||||||
<translation>Объект %1 уже существует!</translation>
|
<translation>Объект %1 уже существует!</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Chart Item</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>First</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Second</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Thrid</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Datasource manager not found</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
Loading…
Reference in New Issue
Block a user