NOISSUE fix up translation selection in settings and add OS/sys arch reporting
This commit is contained in:
@ -55,6 +55,7 @@ MultiMCPage::MultiMCPage(QWidget *parent) : QWidget(parent), ui(new Ui::MultiMCP
|
||||
|
||||
defaultFormat = new QTextCharFormat(ui->fontPreview->currentCharFormat());
|
||||
|
||||
m_languageModel = MMC->translations();
|
||||
loadSettings();
|
||||
|
||||
if(BuildConfig.UPDATER_ENABLED)
|
||||
@ -82,6 +83,7 @@ MultiMCPage::MultiMCPage(QWidget *parent) : QWidget(parent), ui(new Ui::MultiMCP
|
||||
}
|
||||
connect(ui->fontSizeBox, SIGNAL(valueChanged(int)), SLOT(refreshFontPreview()));
|
||||
connect(ui->consoleFont, SIGNAL(currentFontChanged(QFont)), SLOT(refreshFontPreview()));
|
||||
connect(ui->languageBox, SIGNAL(currentIndexChanged(int)), SLOT(languageIndexChanged(int)));
|
||||
}
|
||||
|
||||
MultiMCPage::~MultiMCPage()
|
||||
@ -190,6 +192,19 @@ void MultiMCPage::on_lwjglDirBrowseBtn_clicked()
|
||||
}
|
||||
}
|
||||
|
||||
void MultiMCPage::languageIndexChanged(int index)
|
||||
{
|
||||
auto languageCode = ui->languageBox->itemData(ui->languageBox->currentIndex()).toString();
|
||||
if(languageCode.isEmpty())
|
||||
{
|
||||
qWarning() << "Unknown language at index" << index;
|
||||
return;
|
||||
}
|
||||
auto translations = MMC->translations();
|
||||
translations->selectLanguage(languageCode);
|
||||
translations->updateLanguage(languageCode);
|
||||
}
|
||||
|
||||
void MultiMCPage::refreshUpdateChannelList()
|
||||
{
|
||||
// Stop listening for selection changes. It's going to change a lot while we update it and
|
||||
@ -363,29 +378,7 @@ void MultiMCPage::loadSettings()
|
||||
auto s = MMC->settings();
|
||||
// Language
|
||||
{
|
||||
using LanguageItem = std::pair<QString, QString>;
|
||||
std::vector<LanguageItem> items;
|
||||
|
||||
QLocale english("en");
|
||||
items.push_back(std::make_pair(english.nativeLanguageName(), "en"));
|
||||
for(QString lang: QDir("translations").entryList(QStringList() << "*.qm", QDir::Files))
|
||||
{
|
||||
lang.remove(".qm");
|
||||
lang.remove("mmc_");
|
||||
QLocale locale(lang);
|
||||
QString fullLangName = locale.nativeLanguageName();
|
||||
qDebug() << fullLangName << lang;
|
||||
items.push_back(std::make_pair(fullLangName, lang));
|
||||
}
|
||||
std::sort(items.begin(), items.end(), [](const LanguageItem & a, const LanguageItem & b)
|
||||
{
|
||||
return a.first.localeAwareCompare(b.first) < 0;
|
||||
});
|
||||
ui->languageBox->clear();
|
||||
for(auto & item: items)
|
||||
{
|
||||
ui->languageBox->addItem(item.first, item.second);
|
||||
}
|
||||
ui->languageBox->setModel(m_languageModel.get());
|
||||
ui->languageBox->setCurrentIndex(ui->languageBox->findData(s->get("Language").toString()));
|
||||
}
|
||||
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "pages/BasePage.h"
|
||||
#include <MultiMC.h>
|
||||
#include "ColorCache.h"
|
||||
#include <translations/TranslationsModel.h>
|
||||
|
||||
class QTextCharFormat;
|
||||
class SettingsObject;
|
||||
@ -71,6 +72,8 @@ slots:
|
||||
void on_lwjglDirBrowseBtn_clicked();
|
||||
void on_iconsDirBrowseBtn_clicked();
|
||||
|
||||
void languageIndexChanged(int index);
|
||||
|
||||
/*!
|
||||
* Updates the list of update channels in the combo box.
|
||||
*/
|
||||
@ -100,4 +103,6 @@ private:
|
||||
QTextCharFormat *defaultFormat;
|
||||
|
||||
std::unique_ptr<LogColorCache> m_colors;
|
||||
|
||||
std::shared_ptr<TranslationsModel> m_languageModel;
|
||||
};
|
||||
|
@ -6,7 +6,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>458</width>
|
||||
<width>467</width>
|
||||
<height>614</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -320,7 +320,7 @@
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>Language (needs restart):</string>
|
||||
<string>Language:</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
|
Reference in New Issue
Block a user