Pārlūkot izejas kodu

work around config file loading too late for settings ui getting correct default values and refactor some to clean up

Isak Andersson 12 gadi atpakaļ
vecāks
revīzija
b2bdba6433

+ 1 - 0
IDE/Contents/Include/SettingsWindow.h

@@ -39,6 +39,7 @@ class SettingsWindow : public UIWindow {
         ~SettingsWindow();
 
         void handleEvent(Event *event);
+        void updateUI();
 
         UICheckBox *useExternalTextEditorBox;
         UITextInput *externalTextEditorCommand;

+ 2 - 2
IDE/Contents/Source/PolycodeIDEApp.cpp

@@ -833,8 +833,7 @@ void PolycodeIDEApp::handleEvent(Event *event) {
                 frame->hideModal();
             }
             if(event->getEventCode() == UIEvent::CLOSE_EVENT) {
-                settingsWindow->useExternalTextEditorBox->setChecked(config->getStringValue("Polycode", "useExternalTextEditor") == "true");
-                settingsWindow->externalTextEditorCommand->setText(config->getStringValue("Polycode", "externalTextEditorCommand"));
+                settingsWindow->updateUI();
             }
         }
     }
@@ -974,6 +973,7 @@ void PolycodeIDEApp::loadConfigFile() {
         config->setStringValue("Polycode","useExternalTextEditor", "false");
         config->setStringValue("Polycode", "externalTextEditorCommand", "");
     }
+    frame->settingsWindow->updateUI();
 }
 
 

+ 9 - 4
IDE/Contents/Source/SettingsWindow.cpp

@@ -19,8 +19,7 @@
 #include "SettingsWindow.h"
 
 SettingsWindow::SettingsWindow() : UIWindow(L"Settings", SETTINGS_WINDOW_WIDTH, SETTINGS_WINDOW_HEIGHT) {
-    Config *config = CoreServices::getInstance()->getConfig();
-    
+
     closeOnEscape = true;
 
 
@@ -30,7 +29,7 @@ SettingsWindow::SettingsWindow() : UIWindow(L"Settings", SETTINGS_WINDOW_WIDTH,
     label->setPosition(padding, 50);
 
 
-    useExternalTextEditorBox = new UICheckBox("Use external text editor?", config->getStringValue("Polycode", "useExternalTextEditor") == "true");
+    useExternalTextEditorBox = new UICheckBox("Use external text editor?", false);
     addChild(useExternalTextEditorBox); 
     useExternalTextEditorBox->setPosition(padding, 85);
 
@@ -41,7 +40,6 @@ SettingsWindow::SettingsWindow() : UIWindow(L"Settings", SETTINGS_WINDOW_WIDTH,
 
     externalTextEditorCommand = new UITextInput(false, SETTINGS_WINDOW_WIDTH - (padding*2 + BUTTON_WIDTH + BUTTON_PADDING/2), TEXTBOX_HEIGHT);
     addChild(externalTextEditorCommand);
-    externalTextEditorCommand->setText(config->getStringValue("Polycode", "externalTextEditorCommand"));
     externalTextEditorCommand->setPosition(padding, EDITOR_BROWSE_POS);
 
     browseButton = new UIButton("Browse...", BUTTON_WIDTH);
@@ -90,6 +88,13 @@ void SettingsWindow::handleEvent(Event *event) {
 
     UIWindow::handleEvent(event); 
 } 
+
+void SettingsWindow::updateUI() {
+    Config *config = CoreServices::getInstance()->getConfig();
+    
+    useExternalTextEditorBox->setChecked(config->getStringValue("Polycode", "useExternalTextEditor") == "true");
+    externalTextEditorCommand->setText(config->getStringValue("Polycode", "externalTextEditorCommand"));
+}
     
 SettingsWindow::~SettingsWindow() {
 }