@@ -330,10 +330,7 @@ bool PreviousWidgetSelectionInfo::hasSameWidget(const WidgetHandle widget) const
330330
331331bool PreviousWidgetSelectionInfo::hasPreviousWidget () const
332332{
333- if (previousSelectedWidget_)
334- return true ;
335- else
336- return false ;
333+ return previousSelectedWidget_ != nullptr ;
337334}
338335
339336void PreviousWidgetSelectionInfo::deletePreviousWidget ()
@@ -441,6 +438,11 @@ ViewSceneDialog::ViewSceneDialog(const std::string& name, ModuleStateHandle stat
441438 state->connectSpecificStateChanged (Parameters::CameraDistance,[this ](){Q_EMIT cameraDistanceChangeForwarder ();});
442439 connect (this , &ViewSceneDialog::cameraDistanceChangeForwarder, this , &ViewSceneDialog::pullCameraDistance);
443440
441+ state_->connectSpecificStateChanged (Parameters::WindowSizeX, [this ]() { adjustSizeFromState (); });
442+ state_->connectSpecificStateChanged (Parameters::WindowSizeY, [this ]() { adjustSizeFromState (); });
443+ state_->connectSpecificStateChanged (Parameters::WindowPositionX, [this ]() { adjustPositionFromState (); });
444+ state_->connectSpecificStateChanged (Parameters::WindowPositionY, [this ]() { adjustPositionFromState (); });
445+
444446 lockMutex ();
445447
446448 const std::string filesystemRoot = Application::Instance ().executablePath ().string ();
@@ -1086,11 +1088,7 @@ void ViewSceneDialog::pullSpecial()
10861088 parentWidget ()->show ();
10871089 }
10881090
1089- if (parentWidget ())
1090- {
1091- const auto qs = QSize (state_->getValue (Parameters::WindowSizeX).toInt (), state_->getValue (Parameters::WindowSizeY).toInt ());
1092- parentWidget ()->resize (qs);
1093- }
1091+ adjustSizeFromState ();
10941092
10951093 if (parentWidget ())
10961094 {
@@ -1107,9 +1105,7 @@ void ViewSceneDialog::pullSpecial()
11071105 }
11081106 else
11091107 {
1110- const auto x = state_->getValue (Parameters::WindowPositionX).toInt ();
1111- const auto y = state_->getValue (Parameters::WindowPositionY).toInt ();
1112- parentWidget ()->move (x, y);
1108+ adjustPositionFromState ();
11131109 }
11141110 }
11151111 }
@@ -1122,6 +1118,25 @@ void ViewSceneDialog::pullSpecial()
11221118 }
11231119}
11241120
1121+ void ViewSceneDialog::adjustSizeFromState ()
1122+ {
1123+ if (parentWidget ())
1124+ {
1125+ const auto qs = QSize (state_->getValue (Parameters::WindowSizeX).toInt (), state_->getValue (Parameters::WindowSizeY).toInt ());
1126+ parentWidget ()->resize (qs);
1127+ }
1128+ }
1129+
1130+ void ViewSceneDialog::adjustPositionFromState ()
1131+ {
1132+ if (parentWidget () && state_->getValue (Parameters::IsFloating).toBool ())
1133+ {
1134+ const auto x = state_->getValue (Parameters::WindowPositionX).toInt ();
1135+ const auto y = state_->getValue (Parameters::WindowPositionY).toInt ();
1136+ parentWidget ()->move (x, y);
1137+ }
1138+ }
1139+
11251140void ViewSceneDialog::adjustToolbar (double factor)
11261141{
11271142 adjustToolbarForHighResolution (impl_->toolBar1_ , factor);
0 commit comments