ServerDialog::ServerDialog(QWidget *parent) : ConfigPage(parent) { /* Invoke the Qt Designer generated object setup routine */ ui.setupUi(this); connect(ui.mixologyServer, SIGNAL(editingFinished()), this, SLOT(editedServer())); connect(ui.disableAutoConfig, SIGNAL(clicked(bool)), this, SLOT(autoConfigClicked(bool))); /* Setup display */ QSettings settings(*mainSettings, QSettings::IniFormat, this); /* Load up actual port number */ PeerDetails detail; if (peers->getPeerDetails(peers->getOwnLibraryMixerId(), detail)) { ui.portNumber->setValue(detail.localPort); } ui.portNumber->setMinimum(Peers::MIN_PORT); ui.portNumber->setMaximum(Peers::MAX_PORT); if (settings.value("Network/AutoOrPort", DEFAULT_NETWORK_AUTO_OR_PORT) == DEFAULT_NETWORK_AUTO_OR_PORT) { ui.disableAutoConfig->setChecked(false); autoConfigClicked(false); } else { ui.disableAutoConfig->setChecked(true); autoConfigClicked(true); } QSettings serverSettings(*startupSettings, QSettings::IniFormat, this); ui.mixologyServer->setText(serverSettings.value("MixologyServer", DEFAULT_MIXOLOGY_SERVER).toString()); showAdvanced(settings.value("Gui/ShowAdvanced", DEFAULT_SHOW_ADVANCED).toBool()); }
ServerConfiguration ServerConfiguration::fromFile(QString const& filename) { if (!QFile::exists(filename)) { throw IllegalArgumentException() << "Could not open ServerConfiguration file, file does not exist: " << filename.toStdString(); } QFile inputFile(filename); if (!inputFile.open(QFile::ReadOnly)) { throw IllegalArgumentException() << "Could not open ServerConfiguration file for reading: " << filename.toStdString(); } inputFile.close(); QSettings serverSettings(filename, QSettings::IniFormat); if (!serverSettings.contains("serverHost")) { throw IllegalArgumentException() << "Invalid ServerConfiguration: Missing serverHost in " << filename.toStdString(); } if (!serverSettings.contains("serverPort")) { throw IllegalArgumentException() << "Invalid ServerConfiguration: Missing serverPort in " << filename.toStdString(); } bool ok = false; int port = serverSettings.value("serverPort").toInt(&ok); if (!ok || (port < 1) || (port > 65535)) { throw IllegalArgumentException() << "Invalid ServerConfiguration: Invalid serverPort in " << filename.toStdString(); } if (!serverSettings.contains("serverLongTermPublicKey")) { throw IllegalArgumentException() << "Invalid ServerConfiguration: Missing serverLongTermPublicKey in " << filename.toStdString(); } if (!serverSettings.contains("identityRequestUrl")) { throw IllegalArgumentException() << "Invalid ServerConfiguration: Missing identityRequestUrl in " << filename.toStdString(); } if (!serverSettings.contains("identityRequestAgent")) { throw IllegalArgumentException() << "Invalid ServerConfiguration: Missing identityRequestAgent in " << filename.toStdString(); } if (!serverSettings.contains("identityServerCertificate")) { throw IllegalArgumentException() << "Invalid ServerConfiguration: Missing identityServerCertificate in " << filename.toStdString(); } if (!serverSettings.contains("imageRequestDownloadUrl")) { throw IllegalArgumentException() << "Invalid ServerConfiguration: Missing imageRequestDownloadUrl in " << filename.toStdString(); } if (!serverSettings.contains("imageRequestDownloadFinishedUrl")) { throw IllegalArgumentException() << "Invalid ServerConfiguration: Missing imageRequestDownloadFinishedUrl in " << filename.toStdString(); } if (!serverSettings.contains("imageRequestUploadUrl")) { throw IllegalArgumentException() << "Invalid ServerConfiguration: Missing imageRequestUploadUrl in " << filename.toStdString(); } if (!serverSettings.contains("imageRequestAgent")) { throw IllegalArgumentException() << "Invalid ServerConfiguration: Missing imageRequestAgent in " << filename.toStdString(); } if (!serverSettings.contains("imageServerCertificate")) { throw IllegalArgumentException() << "Invalid ServerConfiguration: Missing imageServerCertificate in " << filename.toStdString(); } return ServerConfiguration(serverSettings.value("serverHost").toString(), port, PublicKey::fromHexString(serverSettings.value("serverLongTermPublicKey").toString()), serverSettings.value("identityRequestUrl").toString(), serverSettings.value("identityRequestAgent").toString(), serverSettings.value("identityServerCertificate").toString(), serverSettings.value("imageRequestDownloadUrl").toString(), serverSettings.value("imageRequestDownloadFinishedUrl").toString(), serverSettings.value("imageRequestUploadUrl").toString(), serverSettings.value("imageRequestAgent").toString(), serverSettings.value("imageServerCertificate").toString()); }
bool ServerDialog::save() { QSettings settings(*mainSettings, QSettings::IniFormat, this); /* We'll need to restart the connection if auto-config has been disabled or enabled, or if it has remained disabled but the port number has changed. */ bool autoConfigEnabled = (settings.value("Network/AutoOrPort", DEFAULT_NETWORK_AUTO_OR_PORT) == DEFAULT_NETWORK_AUTO_OR_PORT); bool needConnectionRestart = ((ui.disableAutoConfig->isChecked() == autoConfigEnabled) || (!autoConfigEnabled && (ui.portNumber->value() != settings.value("Network/AutoOrPort", DEFAULT_NETWORK_AUTO_OR_PORT).toInt()))); if (ui.disableAutoConfig->isChecked()) { settings.setValue("Network/AutoOrPort", ui.portNumber->value()); } else { settings.setValue("Network/AutoOrPort", DEFAULT_NETWORK_AUTO_OR_PORT); } QSettings serverSettings(*startupSettings, QSettings::IniFormat, this); serverSettings.setValue("MixologyServer", ui.mixologyServer->text()); if (needConnectionRestart) peers->restartOwnConnection(); return true; }
void ProgramSettings::readSettings() { autoLaunchProgram = getIsStartingWhenComputerStarts(); QSettings settings; settings.beginGroup(APP_OPTION_GROUP); playSounds = settings.value(PLAY_SOUNDS_OPTION).toBool(); settings.endGroup(); settings.beginGroup(NETWORK_SETTINGS_GROUP); serverPort = settings.value(SERVER_PORT_OPTION, DEFAULT_SERVER_PORT).toInt(); if (serverPort != DEFAULT_SERVER_PORT && serverPort != ALTERNATE_SERVER_PORT) serverPort = DEFAULT_SERVER_PORT; settings.beginGroup(PROXY_SETTINGS_SUBGROUP); useProxy = settings.value(USE_PROXY_OPTION, false).toBool(); proxyType = (QNetworkProxy::ProxyType)settings.value(PROXY_TYPE_OPTION, QNetworkProxy::Socks5Proxy).toInt(); proxyHost = settings.value(PROXY_HOST_OPTION, QString()).toString(); proxyPortSocks = settings.value(PROXY_PORT_SOCKS_OPTION, getDefaultSocksProxyPort()).toString(); proxyPortHttp = settings.value(PROXY_PORT_HTTP_OPTION, getDefaultHttpProxyPort()).toString(); proxyRequiresAuthorization = settings.value(PROXY_REQUIRES_AUTHORIZATION_OPTION, false).toBool(); proxyUserName = settings.value(PROXY_USER_NAME_OPTION, QString()).toString(); proxyPassword = settings.value(PROXY_PASSWORD_OPTION, QString()).toString(); settings.endGroup(); settings.endGroup(); // Reading settings from ini file QSettings serverSettings(AppTools::getPathRelativeToExeDir(SERVER_SETTINGS_FILE), QSettings::IniFormat); serverSettings.beginGroup(PROXY_HOST_OPTION); serverUrl = serverSettings.value(PROXY_HOST_OPTION, DEFAULT_SERVER_URL).toString(); serverSettings.endGroup(); }
bool ServerConfiguration::toFile(QString const& filename) const { QFile outputFile(filename); if (!outputFile.open(QFile::ReadWrite)) { return false; } outputFile.close(); QSettings serverSettings(filename, QSettings::IniFormat); serverSettings.setValue("serverHost", serverHost); serverSettings.setValue("serverPort", serverPort); serverSettings.setValue("serverLongTermPublicKey", QString(serverLongTermPublicKey.getPublicKey().toHex())); serverSettings.setValue("identityRequestUrl", identityServerRequestUrl); serverSettings.setValue("identityRequestAgent", identityServerRequestAgent); serverSettings.setValue("identityServerCertificate", identityServerCertificate); serverSettings.setValue("imageRequestDownloadUrl", imageServerRequestDownloadUrl); serverSettings.setValue("imageRequestDownloadFinishedUrl", imageServerRequestDownloadFinishedUrl); serverSettings.setValue("imageRequestUploadUrl", imageServerRequestUploadUrl); serverSettings.setValue("imageRequestAgent", imageServerRequestAgent); serverSettings.setValue("imageServerCertificate", imageServerCertificate); serverSettings.sync(); return true; }