1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
#include "FormSelectLanguage.h"
#include "ui_FormSelectLanguage.h"
#include <QDir>
#include <QDebug>
#include <QRegExp>
#include <QJsonObject>
#include <QJsonDocument>
#include <QJsonValue>
#include "config_ulcc.h"
#include "ManagerLanguage.h"
FormSelectLanguage::FormSelectLanguage(QWidget *parent) :
QDialog(parent),
ui(new Ui::FormSelectLanguage)
{
ui->setupUi(this);
this->setFixedSize(this->width(),this->height());
this->setWindowTitle(tr("Select language"));
this->setWindowIcon(QIcon(QString(GLOBAL_PATH_USERDATA)+"/images/icons/ulcc.png"));
ManagerLanguage mngLanguage;
// open ini user config
QDir dirConfig(QDir::homePath()+"/.ulcc/");
if (dirConfig.exists()==false) dirConfig.mkpath(QDir::homePath()+"/.ulcc/");
confSettings = new QSettings(dirConfig.absoluteFilePath("settings.ini"), QSettings::IniFormat);
confSettings->setPath(QSettings::IniFormat, QSettings::UserScope, QDir::currentPath());
ui->comboBox_2->clear();
QDir dirLang(QString(GLOBAL_PATH_USERDATA)+"/langs/");
dirLang.setFilter(QDir::Files | QDir::Hidden | QDir::NoDotAndDotDot);
QFileInfoList listLang = dirLang.entryInfoList();
for (int i = 0; i < listLang.size(); ++i) {
QFileInfo fileInfo = listLang.at(i);
QRegExp rx("(ulcc_)(.*)(.qm)");
if (rx.indexIn(fileInfo.fileName())!=-1){
QString lang_code = rx.cap(2);
QString languageName = mngLanguage.getNativeName(lang_code);
ui->comboBox_2->addItem(languageName,lang_code);
if (confSettings->value("ulcc/language",QLocale::system().bcp47Name()).toString()==lang_code){
ui->comboBox_2->setCurrentIndex(ui->comboBox_2->count()-1);
}
}
}
connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(close()));
connect(ui->pushButton_2,SIGNAL(clicked(bool)),this,SLOT(saveLanguageAbc()));
}
FormSelectLanguage::~FormSelectLanguage(){
delete ui;
}
void FormSelectLanguage::saveLanguageAbc(){
confSettings->setValue("ulcc/language",ui->comboBox_2->currentData());
accept();
}
|