0
0
mirror of https://github.com/fralx/LimeReport.git synced 2025-09-23 08:29:07 +03:00

Language settings has been added to designer

This commit is contained in:
Arin Alexander
2018-05-15 22:14:17 +03:00
parent 3d8588316b
commit 8df8182875
13 changed files with 145 additions and 56 deletions

View File

@@ -8,7 +8,8 @@ contains(CONFIG,release) {
}
TEMPLATE = app
SOURCES += main.cpp
SOURCES += main.cpp \
designersettingmanager.cpp
INCLUDEPATH += $$PWD/../include
DEPENDPATH += $$PWD/../include
@@ -61,3 +62,6 @@ win32 {
}
}
HEADERS += \
designersettingmanager.h

View 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();
}

View 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

View File

@@ -1,25 +1,46 @@
#include <QApplication>
#include <LimeReport>
#include <QTranslator>
#include <QDebug>
#include "designersettingmanager.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
DesignerSettingManager manager;
QTranslator limeReportTranslator;
QString translationPath = QApplication::applicationDirPath();
translationPath.append("/languages");
limeReportTranslator.load("limereport_"+QLocale::system().name(),translationPath);
QString designerTranslation = QLocale(manager.getCurrentDefaultLanguage()).name();
limeReportTranslator.load("limereport_"+designerTranslation, translationPath);
a.installTranslator(&limeReportTranslator);
QTranslator qtTranslator;
qtTranslator.load("qt_" + QLocale::system().name(),translationPath);
qtTranslator.load("qt_" + designerTranslation, translationPath);
a.installTranslator(&qtTranslator);
Qt::LayoutDirection layoutDirection = QLocale(manager.getCurrentDefaultLanguage()).textDirection();
LimeReport::ReportEngine report;
a.setLayoutDirection(layoutDirection);
report.setPreviewLayoutDirection(layoutDirection);
if (a.arguments().count()>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();
return a.exec();
}