@@ -771,7 +771,9 @@ void OptionsDialog::setUpDialog()
771771 mpButtonBox->addButton (mpCancelButton, QDialogButtonBox::ActionRole);
772772 QHBoxLayout *horizontalLayout = new QHBoxLayout;
773773 horizontalLayout->addWidget (mpOptionsList);
774- horizontalLayout->addWidget (mpPagesWidget, 1 );
774+ QScrollArea *pPagesWidgetScrollArea = new QScrollArea;
775+ pPagesWidgetScrollArea->setWidget (mpPagesWidget);
776+ horizontalLayout->addWidget (pPagesWidgetScrollArea, 1 );
775777 // Create a layout
776778 QGridLayout *mainLayout = new QGridLayout;
777779 mainLayout->addLayout (horizontalLayout, 0 , 0 , 1 , 2 );
@@ -842,6 +844,7 @@ void OptionsDialog::addListItems()
842844void OptionsDialog::createPages ()
843845{
844846 mpPagesWidget = new QStackedWidget;
847+ mpPagesWidget->setContentsMargins (5 , 2 , 5 , 2 );
845848 mpPagesWidget->addWidget (mpGeneralSettingsPage);
846849 mpPagesWidget->addWidget (mpLibrariesPage);
847850 mpPagesWidget->addWidget (mpModelicaTextEditorPage);
@@ -857,6 +860,29 @@ void OptionsDialog::createPages()
857860 mpPagesWidget->addWidget (mpFMIPage);
858861}
859862
863+ /* !
864+ Saves the OptionsDialog geometry to omedit.ini file.
865+ */
866+ void OptionsDialog::saveDialogGeometry ()
867+ {
868+ /* save the window geometry. */
869+ if (mpGeneralSettingsPage->getPreserveUserCustomizations ()) {
870+ mpSettings->setValue (" OptionsDialog/geometry" , saveGeometry ());
871+ }
872+ }
873+
874+ /* !
875+ Reimplementation of QDialog::show method.
876+ */
877+ void OptionsDialog::show ()
878+ {
879+ /* restore the window geometry. */
880+ if (mpGeneralSettingsPage->getPreserveUserCustomizations ()) {
881+ restoreGeometry (mpSettings->value (" OptionsDialog/geometry" ).toByteArray ());
882+ }
883+ setVisible (true );
884+ }
885+
860886// ! Change the page in Options Widget when the mpOptionsList currentItemChanged Signal is raised.
861887void OptionsDialog::changePage (QListWidgetItem *current, QListWidgetItem *previous)
862888{
@@ -871,6 +897,7 @@ void OptionsDialog::reject()
871897{
872898 // read the old settings from the file
873899 readSettings ();
900+ saveDialogGeometry ();
874901 QDialog::reject ();
875902}
876903
@@ -895,6 +922,7 @@ void OptionsDialog::saveSettings()
895922 saveDebuggerSettings ();
896923 saveFMISettings ();
897924 mpSettings->sync ();
925+ saveDialogGeometry ();
898926 accept ();
899927}
900928
0 commit comments