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:
@@ -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
|
||||
|
||||
|
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 <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();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user