diff --git a/CHANGELOG b/CHANGELOG index c0c8115..85064c4 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -8,6 +8,7 @@ Ver.1.2.0: + [lib] detached backend from frontend * [all] small changes in the project architecture * [gui] more debug information +* [gui] changed lineEdit_profile to comboBox * [plasmoid] edited configuration interface Ver.1.1.0 (netctl-1.7 update): diff --git a/sources/gui/src/bridgewidget.cpp b/sources/gui/src/bridgewidget.cpp index 2669d2a..7af5a1a 100644 --- a/sources/gui/src/bridgewidget.cpp +++ b/sources/gui/src/bridgewidget.cpp @@ -72,6 +72,7 @@ int BridgeWidget::isOk() void BridgeWidget::setSettings(const QMap settings) { + clear(); QMap bridgeSettings = settings; if (bridgeSettings.contains(QString("SkipForwardingDelay"))) diff --git a/sources/gui/src/ethernetwidget.cpp b/sources/gui/src/ethernetwidget.cpp index 19678ff..609b9fe 100644 --- a/sources/gui/src/ethernetwidget.cpp +++ b/sources/gui/src/ethernetwidget.cpp @@ -141,6 +141,7 @@ int EthernetWidget::isOk() void EthernetWidget::setSettings(const QMap settings) { + clear(); QMap ethernetSettings = settings; if (ethernetSettings.contains(QString("SkipNoCarrier"))) diff --git a/sources/gui/src/generalwidget.cpp b/sources/gui/src/generalwidget.cpp index 95570b9..0fc9d3d 100644 --- a/sources/gui/src/generalwidget.cpp +++ b/sources/gui/src/generalwidget.cpp @@ -175,6 +175,7 @@ int GeneralWidget::isOk() void GeneralWidget::setSettings(const QMap settings) { + clear(); QMap generalSettings = settings; if (generalSettings.contains(QString("Description"))) diff --git a/sources/gui/src/ipwidget.cpp b/sources/gui/src/ipwidget.cpp index 5baddce..580cc5a 100644 --- a/sources/gui/src/ipwidget.cpp +++ b/sources/gui/src/ipwidget.cpp @@ -488,6 +488,7 @@ int IpWidget::isOk() void IpWidget::setSettings(const QMap settings) { + clear(); QMap ipSettings = settings; if (ipSettings.contains(QString("IP"))) { diff --git a/sources/gui/src/macvlanwidget.cpp b/sources/gui/src/macvlanwidget.cpp index b01aa49..3f74fcc 100644 --- a/sources/gui/src/macvlanwidget.cpp +++ b/sources/gui/src/macvlanwidget.cpp @@ -82,6 +82,7 @@ int MacvlanWidget::isOk() void MacvlanWidget::setSettings(const QMap settings) { + clear(); QMap macvlanSettings = settings; if (macvlanSettings.contains(QString("Mode"))) diff --git a/sources/gui/src/mainwindow.cpp b/sources/gui/src/mainwindow.cpp index f1bea5f..4381e28 100644 --- a/sources/gui/src/mainwindow.cpp +++ b/sources/gui/src/mainwindow.cpp @@ -194,11 +194,9 @@ void MainWindow::createActions() connect(ui->tableWidget_main, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(mainTabContextualMenu(QPoint))); // profile tab events - connect(ui->lineEdit_profile, SIGNAL(returnPressed()), this, SLOT(profileTabLoadProfile())); - connect(ui->pushButton_profile, SIGNAL(clicked(bool)), this, SLOT(profileTabBrowseProfile())); + connect(ui->comboBox_profile, SIGNAL(currentIndexChanged(QString)), this, SLOT(profileTabLoadProfile())); connect(ui->pushButton_profileClear, SIGNAL(clicked(bool)), this, SLOT(profileTabClear())); connect(ui->pushButton_profileSave, SIGNAL(clicked(bool)), this, SLOT(profileTabCreateProfile())); - connect(ui->pushButton_profileLoad, SIGNAL(clicked(bool)), this, SLOT(profileTabLoadProfile())); connect(generalWid->connectionType, SIGNAL(currentIndexChanged(QString)), this, SLOT(profileTabChangeState(QString))); // wifi tab events @@ -210,6 +208,16 @@ void MainWindow::createActions() } +void MainWindow::keyPressEvent(QKeyEvent *pressedKey) +{ + if (debug) qDebug() << "[MainWindow]" << "[keyPressEvent]"; + + if (pressedKey->key() == Qt::Key_Return) + if (ui->comboBox_profile->hasFocus()) + profileTabLoadProfile(); +} + + void MainWindow::setIconsToButtons() { if (debug) qDebug() << "[MainWindow]" << "[setIconsToButtons]"; @@ -226,7 +234,6 @@ void MainWindow::setIconsToButtons() // profile tab ui->pushButton_profileClear->setIcon(QIcon::fromTheme("edit-clear")); ui->pushButton_profileSave->setIcon(QIcon::fromTheme("document-save")); - ui->pushButton_profileLoad->setIcon(QIcon::fromTheme("document-open")); // wifi tab @@ -384,7 +391,7 @@ void MainWindow::updateMenuProfile() if (debug) qDebug() << "[MainWindow]" << "[updateMenuProfile]"; ui->actionProfileClear->setVisible(true); - if (ui->lineEdit_profile->text().isEmpty()) { + if (ui->comboBox_profile->currentText().isEmpty()) { ui->actionProfileLoad->setVisible(false); ui->actionProfileRemove->setVisible(false); ui->actionProfileSave->setVisible(false); @@ -552,7 +559,7 @@ void MainWindow::mainTabEditProfile() ui->tabWidget->setDisabled(true); QString profile = ui->tableWidget_main->item(ui->tableWidget_main->currentItem()->row(), 0)->text(); ui->tabWidget->setCurrentIndex(1); - ui->lineEdit_profile->setText(profile); + ui->comboBox_profile->setCurrentIndex(ui->comboBox_profile->findText(profile)); profileTabLoadProfile(); } @@ -697,20 +704,6 @@ void MainWindow::mainTabRefreshButtons(QTableWidgetItem *current, QTableWidgetIt // profile tab slots -void MainWindow::profileTabBrowseProfile() -{ - if (debug) qDebug() << "[MainWindow]" << "[profileTabBrowseProfile]"; - - QString filename = QFileDialog::getSaveFileName( - this, - QApplication::translate("MainWindow", "Save profile as..."), - QString("/etc/netctl/"), - QApplication::translate("MainWindow", "Profile (*)")); - if (!filename.isEmpty()) - ui->lineEdit_profile->setText(filename); -} - - void MainWindow::profileTabChangeState(const QString current) { if (debug) qDebug() << "[MainWindow]" << "[profileTabChangeState]"; @@ -854,7 +847,11 @@ void MainWindow::profileTabClear() { if (debug) qDebug() << "[MainWindow]" << "[profileTabClear]"; - ui->lineEdit_profile->clear(); + ui->comboBox_profile->clear(); + QList profiles = netctlCommand->getProfileList(); + for (int i=0; icomboBox_profile->addItem(profiles[i][0]); + ui->comboBox_profile->setCurrentIndex(-1); generalWid->clear(); ipWid->clear(); @@ -877,7 +874,7 @@ void MainWindow::profileTabCreateProfile() if (debug) qDebug() << "[MainWindow]" << "[profileTabCreateProfile]"; // error checking - if (ui->lineEdit_profile->text().isEmpty()) { + if (ui->comboBox_profile->currentText().isEmpty()) { errorWin = new ErrorWindow(this, debug, 3); errorWin->show(); return; @@ -1013,7 +1010,7 @@ void MainWindow::profileTabCreateProfile() ui->tabWidget->setDisabled(true); // read settings - QString profile = netctlProfile->getNameByString(ui->lineEdit_profile->text()); + QString profile = netctlProfile->getNameByString(ui->comboBox_profile->currentText()); QMap settings; settings = generalWid->getSettings(); if (generalWid->connectionType->currentText() == QString("ethernet")) { @@ -1110,7 +1107,7 @@ void MainWindow::profileTabLoadProfile() { if (debug) qDebug() << "[MainWindow]" << "[profileTabLoadProfile]"; - QString profile = netctlProfile->getNameByString(ui->lineEdit_profile->text()); + QString profile = netctlProfile->getNameByString(ui->comboBox_profile->currentText()); QMap settings = netctlProfile->getSettingsFromProfile(profile); generalWid->setSettings(settings); @@ -1163,7 +1160,7 @@ void MainWindow::profileTabRemoveProfile() ui->tabWidget->setDisabled(true); // call netctlprofile - QString profile = netctlProfile->getNameByString(ui->lineEdit_profile->text()); + QString profile = netctlProfile->getNameByString(ui->comboBox_profile->currentText()); if (netctlProfile->removeProfile(profile)) ui->statusBar->showMessage(QApplication::translate("MainWindow", "Done")); else diff --git a/sources/gui/src/mainwindow.h b/sources/gui/src/mainwindow.h index 85c8ef0..39923a3 100644 --- a/sources/gui/src/mainwindow.h +++ b/sources/gui/src/mainwindow.h @@ -82,7 +82,6 @@ private slots: void mainTabStartProfile(); void mainTabRefreshButtons(QTableWidgetItem *current, QTableWidgetItem *previous); // profile tab slots - void profileTabBrowseProfile(); void profileTabChangeState(const QString current); void profileTabClear(); void profileTabCreateProfile(); @@ -118,6 +117,7 @@ private: bool checkExternalApps(const QString apps); bool checkState(const QString state, const QString item); void createActions(); + void keyPressEvent(QKeyEvent *pressedKey); void setIconsToButtons(); bool debug; // configuration diff --git a/sources/gui/src/mainwindow.ui b/sources/gui/src/mainwindow.ui index 4cf6155..1a16241 100644 --- a/sources/gui/src/mainwindow.ui +++ b/sources/gui/src/mainwindow.ui @@ -159,12 +159,12 @@ - - - - - - Browse + + + true + + + true @@ -203,13 +203,6 @@ - - - - Load - - - @@ -508,11 +501,8 @@ pushButton_mainRefresh pushButton_mainRestart pushButton_mainStart - lineEdit_profile - pushButton_profile scrollArea pushButton_profileClear - pushButton_profileLoad pushButton_profileSave tableWidget_wifi pushButton_wifiRefresh diff --git a/sources/gui/src/mobilewidget.cpp b/sources/gui/src/mobilewidget.cpp index 3446b25..453f14a 100644 --- a/sources/gui/src/mobilewidget.cpp +++ b/sources/gui/src/mobilewidget.cpp @@ -143,6 +143,7 @@ int MobileWidget::isOk() void MobileWidget::setSettings(const QMap settings) { + clear(); QMap mobileSettings = settings; if (mobileSettings.contains(QString("User"))) diff --git a/sources/gui/src/pppoewidget.cpp b/sources/gui/src/pppoewidget.cpp index 5018c68..030c60b 100644 --- a/sources/gui/src/pppoewidget.cpp +++ b/sources/gui/src/pppoewidget.cpp @@ -196,6 +196,7 @@ int PppoeWidget::isOk() void PppoeWidget::setSettings(const QMap settings) { + clear(); QMap pppoeSettings = settings; if (pppoeSettings.contains(QString("User"))) diff --git a/sources/gui/src/tunnelwidget.cpp b/sources/gui/src/tunnelwidget.cpp index 0c22459..bddcf1c 100644 --- a/sources/gui/src/tunnelwidget.cpp +++ b/sources/gui/src/tunnelwidget.cpp @@ -109,6 +109,7 @@ int TunnelWidget::isOk() void TunnelWidget::setSettings(const QMap settings) { + clear(); QMap tunnelSettings = settings; if (tunnelSettings.contains(QString("Mode"))) diff --git a/sources/gui/src/tuntapwidget.cpp b/sources/gui/src/tuntapwidget.cpp index 610084f..e19912e 100644 --- a/sources/gui/src/tuntapwidget.cpp +++ b/sources/gui/src/tuntapwidget.cpp @@ -81,6 +81,7 @@ int TuntapWidget::isOk() void TuntapWidget::setSettings(const QMap settings) { + clear(); QMap tuntapSettings = settings; if (tuntapSettings.contains(QString("Mode"))) diff --git a/sources/gui/src/vlanwidget.cpp b/sources/gui/src/vlanwidget.cpp index 8f1f740..5b03b26 100644 --- a/sources/gui/src/vlanwidget.cpp +++ b/sources/gui/src/vlanwidget.cpp @@ -71,6 +71,7 @@ int VlanWidget::isOk() void VlanWidget::setSettings(const QMap settings) { + clear(); QMap vlanSettings = settings; if (vlanSettings.contains(QString("VLANID"))) diff --git a/sources/gui/src/wirelesswidget.cpp b/sources/gui/src/wirelesswidget.cpp index c261cc1..19a4f94 100644 --- a/sources/gui/src/wirelesswidget.cpp +++ b/sources/gui/src/wirelesswidget.cpp @@ -298,6 +298,7 @@ int WirelessWidget::isOk() void WirelessWidget::setSettings(const QMap settings) { + clear(); QMap wirelessSettings = settings; if (wirelessSettings.contains(QString("Security")))