Retranslate certain dialogs/widgets dynamically

This does not cover all details yet.
This commit is contained in:
Martchus 2023-07-03 00:07:01 +02:00
parent 147b08ecf8
commit b340ff819c
6 changed files with 42 additions and 1 deletions

View File

@ -125,6 +125,9 @@ bool AboutDialog::event(QEvent *event)
case QEvent::PaletteChange:
setStyleSheet(dialogStyleForPalette(palette()));
break;
case QEvent::LanguageChange:
m_ui->retranslateUi(this);
break;
default:;
}
return res;

View File

@ -223,6 +223,9 @@ bool EnterPasswordDialog::event(QEvent *event)
m_ui->capslockWarningWidget->setVisible(m_capslockPressed);
break;
}
case QEvent::LanguageChange:
m_ui->retranslateUi(this);
break;
default:;
}
return QDialog::event(event);

View File

@ -107,6 +107,18 @@ void PaletteEditor::setPalette(const QPalette &palette, const QPalette &parentPa
setPalette(palette);
}
bool PaletteEditor::event(QEvent *event)
{
switch(event->type()) {
case QEvent::LanguageChange:
m_ui->retranslateUi(this);
break;
default:
;
}
return QDialog::event(event);
}
void PaletteEditor::handleComputeRadioClicked()
{
if (m_compute) {

View File

@ -39,6 +39,9 @@ public:
void setPalette(const QPalette &palette);
void setPalette(const QPalette &palette, const QPalette &parentPalette);
protected:
bool event(QEvent *event) override;
private Q_SLOTS:
void buildPalette();
void paletteChanged(const QPalette &palette);

View File

@ -53,7 +53,7 @@ PathSelection::PathSelection(QWidget *parent)
m_lineEdit->installEventFilter(this);
m_lineEdit->setCompleter(s_completer);
m_button->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
m_button->setText(tr("Select ..."));
setTexts();
auto *const layout = new QHBoxLayout(this);
layout->setSpacing(3);
@ -65,6 +65,18 @@ PathSelection::PathSelection(QWidget *parent)
connect(m_button, &QPushButton::clicked, this, &PathSelection::showFileDialog);
}
bool PathSelection::event(QEvent *event)
{
switch(event->type()) {
case QEvent::LanguageChange:
setTexts();
break;
default:
;
}
return QWidget::event(event);
}
bool PathSelection::eventFilter(QObject *obj, QEvent *event)
{
#ifndef QT_NO_CONTEXTMENU
@ -127,4 +139,10 @@ void PathSelection::showFileDialog()
}
}
}
void PathSelection::setTexts()
{
m_button->setText(tr("Select ..."));
}
} // namespace QtUtilities

View File

@ -24,10 +24,12 @@ public:
void provideCustomFileDialog(QFileDialog *customFileDialog);
protected:
bool event(QEvent *event) override;
bool eventFilter(QObject *obj, QEvent *event) override;
private Q_SLOTS:
void showFileDialog();
void setTexts();
private:
ClearLineEdit *m_lineEdit;