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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
#include "FormSelectDictionary.h"
#include "ui_FormSelectDictionary.h"
#include <QDir>
#include <QFile>
#include <QRegExp>
#include <QDebug>
#include <QSettings>
#include "config_ulcc.h"
#include "ManagerDictionaries.h"
#include "ManagerLanguage.h"
FormSelectDictionary::FormSelectDictionary(QWidget *parent) : QDialog(parent), ui(new Ui::FormSelectDictionary){
ui->setupUi(this);
this->setFixedSize(this->width(),this->height());
this->setWindowTitle(tr("Select dictionary"));
this->setWindowIcon(QIcon(QString(GLOBAL_PATH_USERDATA)+"/images/icons/ulcc.png"));
// open ini user config
QDir dirConfig(QDir::homePath()+"/.ulcc/");
if (dirConfig.exists()==false) dirConfig.mkpath(QDir::homePath()+"/.ulcc/");
QSettings confSettings(dirConfig.absoluteFilePath("settings.ini"), QSettings::IniFormat);
confSettings.setPath(QSettings::IniFormat, QSettings::UserScope, QDir::currentPath());
QString selectDictionary = confSettings.value("Dictionary/Dictionary","").toString();
QDir dir(QString(GLOBAL_PATH_USERDATA)+"/dictionaries/");
dir.setFilter(QDir::Dirs | QDir::Hidden | QDir::NoDotAndDotDot);
QFileInfoList list = dir.entryInfoList();
for (QFileInfo fileInfo : list) {
DICTIONARY dictionary = ManagerDictionaries::loadDictionary(fileInfo.absoluteFilePath()+"/dictionary.json");
// default
QString dictionaryDescription = dictionary.description[""];
// find for en locale
if (dictionary.description.contains("en_EN")) dictionaryDescription = dictionary.description["en_EN"];
// find for current locale
if (dictionary.description.contains(QLocale::system().name())) dictionaryDescription = dictionary.description[QLocale::system().name()];
ui->comboBox->addItem(dictionaryDescription,fileInfo.fileName());
if (selectDictionary==fileInfo.fileName()){
ui->comboBox->setCurrentIndex(ui->comboBox->count()-1);
}
}
refreshLanguage();
connect(ui->comboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(comboBoxCurrentIndexChanged(int)));
connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(reject()));
connect(ui->pushButton_2,SIGNAL(clicked(bool)),this,SLOT(accept()));
}
FormSelectDictionary::~FormSelectDictionary(){
delete ui;
}
QString FormSelectDictionary::getDictionary(){
return ui->comboBox->currentData().toString();
}
QString FormSelectDictionary::getLanguage(){
return ui->comboBox_2->currentData().toString();
}
void FormSelectDictionary::refreshLanguage(){
QString selectLanguageDictionary = ui->comboBox_2->currentData().toString();
ui->comboBox_2->clear();
ManagerLanguage mngLanguage;
ui->comboBox_2->addItem(tr("System language"),"system");
QDir dir(QString(GLOBAL_PATH_USERDATA)+"/dictionaries/"+ui->comboBox->currentData().toString()+"/languages/");
dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoDotAndDotDot);
QRegExp rx("^(.*)(.lng)$");
QFileInfoList list = dir.entryInfoList();
for (QFileInfo fileInfo : list) {
if (rx.indexIn(fileInfo.fileName())!=-1){
QString string_lang = mngLanguage.getNativeName(rx.cap(1));
ui->comboBox_2->addItem(string_lang,rx.cap(1));
if (selectLanguageDictionary==rx.cap(1)){
ui->comboBox_2->setCurrentIndex(ui->comboBox_2->count()-1);
}
}
}
}
void FormSelectDictionary::comboBoxCurrentIndexChanged(int){
refreshLanguage();
}
|