diff --git a/sources/conductorpropertieswidget.cpp b/sources/conductorpropertieswidget.cpp index a34eca5eb..96f0e7480 100644 --- a/sources/conductorpropertieswidget.cpp +++ b/sources/conductorpropertieswidget.cpp @@ -45,6 +45,7 @@ ConductorPropertiesWidget::ConductorPropertiesWidget(const ConductorProperties & /// construit l'interface du widget void ConductorPropertiesWidget::buildInterface() { + setFocusPolicy(Qt::StrongFocus); setMinimumSize(380, 350); QVBoxLayout *main_layout = new QVBoxLayout(this); @@ -291,3 +292,17 @@ void ConductorPropertiesWidget::setReadOnly(bool ro) { color_button -> setDisabled(ro); dashed_checkbox -> setDisabled(ro); } + +/** + Gere le focus de ce widget +*/ +void ConductorPropertiesWidget::focusInEvent(QFocusEvent *event) { + if (properties_.type == ConductorProperties::Multi) { + text_field -> setFocus(Qt::ActiveWindowFocusReason); + text_field -> selectAll(); + } else if (properties_.type == ConductorProperties::Single) { + phase_spinbox -> setFocus(Qt::ActiveWindowFocusReason); + phase_spinbox -> selectAll(); + } + QWidget::focusInEvent(event); +} diff --git a/sources/conductorpropertieswidget.h b/sources/conductorpropertieswidget.h index 289d6af6b..862c720f2 100644 --- a/sources/conductorpropertieswidget.h +++ b/sources/conductorpropertieswidget.h @@ -54,6 +54,9 @@ class ConductorPropertiesWidget : public QWidget { void updateDisplay(); void chooseColor(); + protected: + void focusInEvent(QFocusEvent *); + // attributs prives private: QButtonGroup *radio_buttons; diff --git a/sources/diagramview.cpp b/sources/diagramview.cpp index 3e18403b0..8124a0535 100644 --- a/sources/diagramview.cpp +++ b/sources/diagramview.cpp @@ -840,6 +840,7 @@ void DiagramView::editConductor(Conductor *edited_conductor) { dialog_layout -> addWidget(dbb); connect(dbb, SIGNAL(accepted()), &conductor_dialog, SLOT(accept())); connect(dbb, SIGNAL(rejected()), &conductor_dialog, SLOT(reject())); + cpw -> setFocus(Qt::ActiveWindowFocusReason); // execute le dialogue et met a jour le conducteur if (conductor_dialog.exec() == QDialog::Accepted) {