diff --git a/settings.cpp b/settings.cpp index 88995b2..38b0161 100644 --- a/settings.cpp +++ b/settings.cpp @@ -97,6 +97,7 @@ void Settings::selectSettings(QSettings *selectedSettings){ } void Settings::checkConfig(){ + saveSetting(); ServerConnection *sc = new ServerConnection(this, mySettings); connect(sc->getNetworkManager(), SIGNAL(finished(QNetworkReply*)), this, SLOT(handleTestConnectionResult(QNetworkReply*))); sc->queryServerVersion(); @@ -134,6 +135,8 @@ void Settings::handleTestConnectionResult(QNetworkReply* reply){ auto cw = this->findChild("centralwidget"); QGridLayout *layout = static_cast(cw->layout()); + delete currentConfigCheckDisplay; //this removes it from the layout + currentConfigCheckDisplay = testResult; layout->addWidget(testResult, configOptions->length(), 1); } @@ -144,14 +147,18 @@ void Settings::cancleClose(){ this->close(); } -void Settings::okClose(){ +void Settings::saveSetting(){ QSettings mySettings; for(auto key : configLineEditMap->keys()){ - QString input = configLineEditMap->take(key)->text(); + QString input = configLineEditMap->value(key)->text(); if(input.compare("") != 0){ this->mySettings->setValue(key, input); } } +} + +void Settings::okClose(){ + saveSetting(); this->close(); } diff --git a/settings.h b/settings.h index 474ae27..af8d733 100644 --- a/settings.h +++ b/settings.h @@ -5,6 +5,7 @@ #include #include #include +#include namespace Ui { class settings; @@ -30,6 +31,8 @@ private: QHash *configLineEditMap; QStringList *configOptionsKeys; QStringList *configOptions; + void saveSetting(); + QLabel *currentConfigCheckDisplay; }; #endif // SETTINGS_H