emainwindow fixes

This commit is contained in:
2022-10-27 19:48:08 +03:00
parent 4e01ad4465
commit ba93ae2e48
5 changed files with 106 additions and 59 deletions

View File

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