emainwindow fixes
This commit is contained in:
@@ -17,12 +17,13 @@
|
||||
|
||||
class __QADTranslators__ {
|
||||
public:
|
||||
static QList<QTranslator * > translators;
|
||||
static QList<QTranslator * > & translators() {
|
||||
static QList<QTranslator * > ret;
|
||||
return ret;
|
||||
}
|
||||
private:
|
||||
};
|
||||
|
||||
QList<QTranslator * > __QADTranslators__::translators = QList<QTranslator * >();
|
||||
|
||||
|
||||
QString QAD::userPath(QAD::LocationType loc, QString name) {
|
||||
QString dir, ext;
|
||||
@@ -68,16 +69,12 @@ QStringList QAD::resourcePaths(QString type) {
|
||||
|
||||
|
||||
void QAD::loadTranslations(QString lang) {
|
||||
foreach (QTranslator * t, __QADTranslators__::translators) {
|
||||
qApp->removeTranslator(t);
|
||||
delete t;
|
||||
}
|
||||
__QADTranslators__::translators.clear();
|
||||
unloadTranslations();
|
||||
if (lang.isEmpty())
|
||||
lang = QLocale().bcp47Name();
|
||||
QString short_lang = lang.left(2);
|
||||
QStringList dirs = resourcePaths("lang");
|
||||
foreach (const QString & d, dirs) {
|
||||
for (const QString & d: dirs) {
|
||||
QDirIterator dit(d);
|
||||
while (dit.hasNext()) {
|
||||
dit.next();
|
||||
@@ -87,7 +84,7 @@ void QAD::loadTranslations(QString lang) {
|
||||
QTranslator * tr = new QTranslator();
|
||||
if (tr->load(dit.filePath())) {
|
||||
qApp->installTranslator(tr);
|
||||
__QADTranslators__::translators << tr;
|
||||
__QADTranslators__::translators() << tr;
|
||||
//qDebug() << "Add tr" << dit.fileName();
|
||||
} else {
|
||||
qDebug() << "Can`t load translation" << dit.fileName();
|
||||
@@ -98,10 +95,22 @@ void QAD::loadTranslations(QString lang) {
|
||||
}
|
||||
|
||||
|
||||
void QAD::unloadTranslations() {
|
||||
//qDebug() << "removeTranslator ...";
|
||||
for (QTranslator * t: __QADTranslators__::translators()) {
|
||||
qApp->removeTranslator(t);
|
||||
delete t;
|
||||
}
|
||||
__QADTranslators__::translators().clear();
|
||||
//qDebug() << "removeTranslator done";
|
||||
|
||||
}
|
||||
|
||||
|
||||
QStringList QAD::availableTranslations() {
|
||||
QSet<QString> ret;
|
||||
QStringList dirs = resourcePaths("lang");
|
||||
foreach (const QString & d, dirs) {
|
||||
for (const QString & d: dirs) {
|
||||
QDirIterator dit(d);
|
||||
while (dit.hasNext()) {
|
||||
dit.next();
|
||||
@@ -129,4 +138,3 @@ QStringList QAD::availableTranslations() {
|
||||
}
|
||||
return ret.values();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user