Skip to content

Commit 4438096

Browse files
committed
Template dock widgets: Save/restore state
Turn these dock widget into regular MapEditorController/QMainWindow dock widgets for which state is saved and restored. Dock widgets need an object name in order to let QMainWindow properly save and restore the state. Fixes a runtime warning at the console.
1 parent d308c47 commit 4438096

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

src/gui/widgets/template_list_widget.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -870,9 +870,13 @@ void TemplateListWidget::adjustClicked(bool checked)
870870
{
871871
auto* activity = new TemplateAdjustActivity(currentTemplate(), &controller);
872872
controller.setEditorActivity(activity);
873-
connect(this, &TemplateListWidget::currentRowChanged, activity->getDockWidget(), &TemplateAdjustDockWidget::close);
874-
connect(activity->getDockWidget(), &TemplateAdjustDockWidget::closed,
873+
auto* dock_widget = activity->getDockWidget();
874+
dock_widget->show();
875+
dock_widget->raise();
876+
connect(this, &TemplateListWidget::currentRowChanged, dock_widget, &TemplateAdjustDockWidget::close);
877+
connect(dock_widget, &TemplateAdjustDockWidget::closed,
875878
adjust_button, [this]() { adjust_button->setChecked(false); });
879+
876880
}
877881
else
878882
{
@@ -893,6 +897,8 @@ void TemplateListWidget::positionClicked(bool checked)
893897
{
894898
auto* dock_widget = new TemplatePositionDockWidget(currentTemplate(), &controller, controller.getWindow());
895899
controller.addFloatingDockWidget(dock_widget);
900+
dock_widget->show();
901+
dock_widget->raise();
896902
connect(&controller, &MapEditorController::destroyed, dock_widget, &TemplateAdjustDockWidget::close);
897903
connect(this, &TemplateListWidget::currentRowChanged, dock_widget, &TemplateAdjustDockWidget::close);
898904
connect(this, &TemplateListWidget::closePositionDockWidget, dock_widget, &TemplateAdjustDockWidget::close);

src/templates/template_adjust.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,8 @@ void TemplateAdjustActivity::init()
6969
dock = new TemplateAdjustDockWidget(tr("Template adjustment"), controller, controller->getWindow());
7070
widget = new TemplateAdjustWidget(temp, controller, dock);
7171
dock->setWidget(widget);
72-
73-
// Show dock in floating state
74-
dock->setFloating(true);
75-
dock->show();
76-
dock->setGeometry(controller->getWindow()->geometry().left() + 40, controller->getWindow()->geometry().top() + 100, dock->width(), dock->height());
72+
dock->setObjectName(QStringLiteral("TemplateAdjust"));
73+
controller->addFloatingDockWidget(dock);
7774
}
7875

7976
void TemplateAdjustActivity::draw(QPainter* painter, MapWidget* widget)

src/templates/template_position_dock_widget.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ namespace OpenOrienteering {
3939
TemplatePositionDockWidget::TemplatePositionDockWidget(Template* temp, MapEditorController* controller, QWidget* parent)
4040
: QDockWidget(tr("Positioning"), parent), temp(temp), controller(controller)
4141
{
42+
setObjectName(QStringLiteral("TemplatePositioning"));
43+
4244
react_to_changes = true;
4345

4446
QLabel* x_label = new QLabel(tr("X:"));

0 commit comments

Comments
 (0)