You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
2.8 KiB

#include "connectionsettingsengine.h"
#include "generalsettingstab.h"
#include "ui_generalsettingstab.h"
#include <NetworkManagerQt/Connection>
#include <NetworkManagerQt/ConnectionSettings>
GeneralSettingsTab::GeneralSettingsTab(QWidget *parent) :
QWidget(parent),
ui(new Ui::GeneralSettingsTab)
{
ui->setupUi(this);
ui->meteredConnectionComboBox->addItems(QStringList() << tr("Automatic") << tr("Yes") << tr("No"));
}
GeneralSettingsTab::~GeneralSettingsTab()
{
delete ui;
}
// Refer to connectionsettingsengine.cpp for configuration map details
QVariantMap GeneralSettingsTab::readSettings()
{
QVariantMap output;
output.insert("autoconnectEnabled", QVariant(ui->autoconnectCheckBox->isChecked()));
output.insert("autoconnectPriority", QVariant(ui->autoconnectPrioritySpinBox->value()));
output.insert("allUsersMayConnect", QVariant(ui->allUsersMayConnectCheckBox->isChecked()));
output.insert("vpnAutoconnectEnabled", QVariant(ui->vpnAutoconnectCheckBox->isChecked()));
output.insert("autoconnectVpn", QVariant(ui->vpnSelectComboBox->currentText()));
switch (ui->meteredConnectionComboBox->currentIndex()) {
case 0:
output.insert("meteredConnection", ConnectionSettingsEngine::MeteredAutomatic);
break;
case 1:
output.insert("meteredConnection", ConnectionSettingsEngine::MeteredYes);
break;
case 2:
output.insert("meteredConnection", ConnectionSettingsEngine::MeteredNo);
break;
}
return output;
}
void GeneralSettingsTab::loadSettings(QVariantMap settings)
{
if (settings["autoconnectEnabled"].isValid()) {
ui->autoconnectCheckBox->setChecked(settings["autoconnectEnabled"].toBool());
}
if (settings["autoconnectPriority"].isValid()) {
ui->autoconnectPrioritySpinBox->setValue(settings["autoconnectPriority"].toInt());
}
if (settings["allUsersMayConnect"].isValid()) {
ui->allUsersMayConnectCheckBox->setChecked(settings["allUsersMayConnect"].toBool());
}
if (settings["vpnAutoconnectEnabled"].isValid()) {
ui->vpnAutoconnectCheckBox->setChecked(settings["vpnAutoconnectEnabled"].toBool());
}
if (settings["autoconnectVpn"].isValid()) {
ui->vpnSelectComboBox->setCurrentText(settings["autoconnectVpn"].toString());
}
if (settings["meteredConnection"].isValid()) {
switch(settings["meteredConnection"].toInt()) {
case ConnectionSettingsEngine::MeteredAutomatic:
ui->meteredConnectionComboBox->setCurrentIndex(0);
break;
case ConnectionSettingsEngine::MeteredYes:
ui->meteredConnectionComboBox->setCurrentIndex(1);
break;
case ConnectionSettingsEngine::MeteredNo:
ui->meteredConnectionComboBox->setCurrentIndex(2);
break;
}
}
}