#include "ethernetsettingstab.h" #include "ui_ethernetsettingstab.h" EthernetSettingsTab::EthernetSettingsTab(QWidget *parent) : QWidget(parent), ui(new Ui::EthernetSettingsTab) { ui->setupUi(this); ui->speedComboBox->addItems(QStringList() << tr("10 Mb/s") << tr("100 Mb/s") << tr("1 Gb/s") << tr("2.5 Gb/s") << tr("10 Gb/s") << tr("40 Gb/s") << tr("100 Gb/s")); ui->linkNegotiationComboBox->addItems(QStringList() << tr("Ignore") << tr("Automatic") << tr("Manual")); } EthernetSettingsTab::~EthernetSettingsTab() { delete ui; } // Refer to connectionsettingsengine.cpp for configuration map details QVariantMap EthernetSettingsTab::readSettings() { QVariantMap output; output.insert("device", QVariant(ui->deviceComboBox->currentText())); output.insert("clonedMacAddress", QVariant(ui->clonedMacAddressComboBox->currentText())); output.insert("mtu", QVariant(ui->mtuSpinBox->value())); output.insert("linkNegotiation", QVariant(ui->linkNegotiationComboBox->currentText())); switch(ui->speedComboBox->currentIndex()) { case 0: output.insert("linkSpeed", ConnectionSettingsEngine::Speed10Mbps); break; case 1: output.insert("linkSpeed", ConnectionSettingsEngine::Speed100Mbps); break; case 2: output.insert("linkSpeed", ConnectionSettingsEngine::Speed1Gbps); break; case 3: output.insert("linkSpeed", ConnectionSettingsEngine::Speed2_5Gbps); break; case 4: output.insert("linkSpeed", ConnectionSettingsEngine::Speed5Gbps); break; case 5: output.insert("linkSpeed", ConnectionSettingsEngine::Speed10Gbps); break; case 6: output.insert("linkSpeed", ConnectionSettingsEngine::Speed40Gbps); break; case 7: output.insert("linkSpeed", ConnectionSettingsEngine::Speed100Gbps); break; } output.insert("speedMbps", QVariant(ui->speedComboBox->currentData())); output.insert("duplexMode", QVariant(ui->duplexComboBox->currentText())); return output; } void EthernetSettingsTab::loadSettings(QVariantMap settings) { if (settings["device"].isValid()) { ui->deviceComboBox->setCurrentText(settings["device"].toString()); } if (settings["clonedMacAddress"].isValid()) { ui->clonedMacAddressComboBox->setCurrentText(settings["clonedMacAddress"].toString()); } if (settings["mtu"].isValid()) { ui->mtuSpinBox->setValue(settings["mtu"].toInt()); } if (settings["linkNegotiation"].isValid()) { ui->linkNegotiationComboBox->setCurrentText(settings["linkNegotiation"].toString()); } if (settings["linkSpeed"].isValid()) { switch(settings["linkSpeed"].toInt()) { case ConnectionSettingsEngine::Speed10Mbps: ui->speedComboBox->setCurrentIndex(0); break; case ConnectionSettingsEngine::Speed100Mbps: ui->speedComboBox->setCurrentIndex(1); break; case ConnectionSettingsEngine::Speed1Gbps: ui->speedComboBox->setCurrentIndex(2); break; case ConnectionSettingsEngine::Speed2_5Gbps: ui->speedComboBox->setCurrentIndex(3); break; case ConnectionSettingsEngine::Speed5Gbps: ui->speedComboBox->setCurrentIndex(4); break; case ConnectionSettingsEngine::Speed10Gbps: ui->speedComboBox->setCurrentIndex(5); break; case ConnectionSettingsEngine::Speed40Gbps: ui->speedComboBox->setCurrentIndex(6); break; case ConnectionSettingsEngine::Speed100Gbps: ui->speedComboBox->setCurrentIndex(7); break; } } if (settings["duplexMode"].isValid()) { ui->duplexComboBox->setCurrentText(settings["duplexMode"].toString()); } }