Removed system function invocations and placed forked execl instead
[vlp.git] / src / kernel / options.cpp
index 2c4732f62373e76b8987c245435765b9652e40eb..1a0a294678a416216ba2fba86506fb7fb5b461e6 100644 (file)
@@ -3,7 +3,7 @@
 
 #include "options.h"
 
-OptionsDialog::OptionsDialog(QWidget * parent)
+OptionsDialog::OptionsDialog(QString configFilePath, QWidget * parent)
        : QDialog(parent)
 {
        setupUi(this);
@@ -11,7 +11,7 @@ OptionsDialog::OptionsDialog(QWidget * parent)
        connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
        connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
        
-       loadConfig("vlp.cfg");
+       loadConfig(configFilePath.toStdString().c_str());
 }
 
 OptionsDialog::~OptionsDialog()
@@ -66,11 +66,10 @@ void OptionsDialog::on_delConnectionButton_clicked()
  *
  * @param fname Filename of the configuration file.
  */
-void OptionsDialog::loadConfig(char * fname)
+void OptionsDialog::loadConfig(const char * fname)
 {
        config_t cfg;
        config_setting_t *setting;
-       const char *str;
 
        /* Hack for checking if file exists without using external libs.*/
        FILE * file = fopen(fname, "rt");
@@ -149,18 +148,16 @@ void OptionsDialog::loadConfig(char * fname)
                fprintf(stderr, "%s! In file %s, '%s' was not found.\n", "Warning", fname, "progdir");
        }
 
-       setting = config_lookup(&cfg, "homedir");
-       if (setting) {
-               homeDir = config_setting_get_string(setting);
-       } else {
-               fprintf(stderr, "%s! In file %s, '%s' was not found.\n", "Warning", fname, "homedir");
-       }
-
        config_destroy(&cfg);
        fclose(file);
 }
 
-void OptionsDialog::saveConfig(char * fname)
+void OptionsDialog::saveConfig(QString fname)
+{
+       saveConfig(fname.toStdString().c_str());
+}
+
+void OptionsDialog::saveConfig(const char * fname)
 {
        config_t cfg;
        config_setting_t *root;
@@ -175,9 +172,6 @@ void OptionsDialog::saveConfig(char * fname)
        setting = config_setting_add(root, "node_number", CONFIG_TYPE_INT);
        config_setting_set_int(setting, nodeNumber->value());
 
-       setting = config_setting_add(root, "homedir", CONFIG_TYPE_STRING);
-       config_setting_set_string(setting, homeDir);
-
        setting = config_setting_add(root, "type", CONFIG_TYPE_STRING);
        if (explicitConnectionMode->isChecked()) {
                config_setting_set_string(setting, "explicit");