Gui: Improve localization support in VarSet dialog (#17480)

* Gui: Improve localization support in VarSet dialog

* Gui: Adopt QObject translate

This is not the ideal implementation but for the 1.0 release this is
currently the better option.  A separate issue has been filed for post
1.0 in https://github.com/FreeCAD/FreeCAD/issues/17510 that also covers
the `DlgAddProperty`.
This commit is contained in:
Pieter Hijma
2024-11-22 18:00:19 +01:00
committed by GitHub
parent 2b4b8e4479
commit 6f47183b53
2 changed files with 17 additions and 3 deletions

View File

@@ -174,9 +174,7 @@ void DlgAddPropertyVarSet::initializeWidgets(ViewProviderVarSet* viewProvider)
connLineEditNameTextChanged = connect(ui->lineEditName, &QLineEdit::textChanged,
this, &DlgAddPropertyVarSet::onNamePropertyChanged);
std::string title = "Add a property to " + varSet->getFullName();
setWindowTitle(QString::fromStdString(title));
setTitle();
setOkEnabled(false);
ui->lineEditName->setFocus();
@@ -188,6 +186,11 @@ void DlgAddPropertyVarSet::initializeWidgets(ViewProviderVarSet* viewProvider)
// printFocusChain(ui->lineEditName);
}
void DlgAddPropertyVarSet::setTitle()
{
setWindowTitle(QObject::tr("Add a property to %1").arg(QString::fromStdString(varSet->getFullName())));
}
void DlgAddPropertyVarSet::setOkEnabled(bool enabled)
{
QPushButton *okButton = ui->buttonBox->button(QDialogButtonBox::Ok);
@@ -219,6 +222,15 @@ void DlgAddPropertyVarSet::removeEditor()
}
}
void DlgAddPropertyVarSet::changeEvent(QEvent* e)
{
if (e->type() == QEvent::LanguageChange) {
ui->retranslateUi(this);
setTitle();
}
QDialog::changeEvent(e);
}
static PropertyEditor::PropertyItem *createPropertyItem(App::Property *prop)
{
const char *editor = prop->getEditorName();

View File

@@ -74,6 +74,7 @@ public:
DlgAddPropertyVarSet(QWidget *parent, ViewProviderVarSet* viewProvider);
~DlgAddPropertyVarSet() override;
void changeEvent(QEvent* e) override;
void accept() override;
void reject() override;
@@ -85,6 +86,7 @@ private:
void initializeTypes();
void initializeWidgets(ViewProviderVarSet* viewProvider);
void setTitle();
void setOkEnabled(bool enabled);
void clearEditors(bool clearName = true);
void clearCurrentProperty();