|
16 | 16 | #include <QPushButton>
|
17 | 17 | #include <QSignalMapper>
|
18 | 18 | #include <QVBoxLayout>
|
| 19 | +#include <QMessageBox> |
19 | 20 | #include <QSize>
|
20 | 21 |
|
21 | 22 | /**
|
@@ -538,10 +539,40 @@ void SettingsWidget::toggleScope( QWidget* qw ) {
|
538 | 539 | emit scopeChanged(name);
|
539 | 540 | }
|
540 | 541 |
|
| 542 | +// TODO: Implement real-time language switching |
541 | 543 | void SettingsWidget::updateUILanguage(int index) {
|
542 |
| - QString lang = available_languages[index]; |
543 |
| - std::cout << "Changed language to " << lang.toUtf8().constData() << std::endl; |
544 |
| - emit uiLanguageChanged(lang); |
| 544 | + QString lang = available_languages[index]; |
| 545 | + std::cout << "Changed language to " << lang.toUtf8().constData() << std::endl; |
| 546 | + if (lang != piSettings->language) { |
| 547 | + std::cout << "Current language: " << piSettings->language.toUtf8().constData() << std::endl; |
| 548 | + std::cout << "New language selected: " << lang.toUtf8().constData() << std::endl; |
| 549 | + QString old_lang = sonicPii18n->getNativeLanguageName(piSettings->language); |
| 550 | + QString new_lang = sonicPii18n->getNativeLanguageName(lang); |
| 551 | + |
| 552 | + // Load new language |
| 553 | + //QString language = sonicPii18n->determineUILanguage(lang); |
| 554 | + //sonicPii18n->loadTranslations(language); |
| 555 | + //QString title_new = tr("Updated the UI language from %s to %s").arg(); |
| 556 | + |
| 557 | + QMessageBox msgBox(this); |
| 558 | + msgBox.setText(QString(tr("You've selected a new language: %1")).arg(new_lang)); |
| 559 | + msgBox.setInformativeText(tr("Do you want to apply this language?\nApplying the new language will restart Sonic Pi.")); |
| 560 | + QPushButton *restartButton = msgBox.addButton(tr("Apply and Restart"), QMessageBox::ActionRole); |
| 561 | + QPushButton *dismissButton = msgBox.addButton(tr("Cancel"), QMessageBox::RejectRole); |
| 562 | + msgBox.setDefaultButton(restartButton); |
| 563 | + msgBox.setIcon(QMessageBox::Information); |
| 564 | + msgBox.exec(); |
| 565 | + |
| 566 | + if (msgBox.clickedButton() == (QAbstractButton*)restartButton) { |
| 567 | + piSettings->language = lang; |
| 568 | + emit restartApp(); |
| 569 | + //emit uiLanguageChanged(lang); |
| 570 | + } else if (msgBox.clickedButton() == (QAbstractButton*)dismissButton) { |
| 571 | + // Don't apply the new language settings |
| 572 | + updateSelectedUILanguage(piSettings->language); |
| 573 | + } |
| 574 | + |
| 575 | + } |
545 | 576 | }
|
546 | 577 |
|
547 | 578 | void SettingsWidget::update_mixer_invert_stereo() {
|
|
0 commit comments