mirror of
https://github.com/arcan1s/netctl-gui.git
synced 2025-04-24 23:47:21 +00:00
add support of macvlan
add support of profile removal
This commit is contained in:
parent
8a031f2183
commit
4051d2f2c8
@ -1,3 +1,7 @@
|
|||||||
|
Ver.1.1.1:
|
||||||
|
+ [gui] added suppoort of macvlan
|
||||||
|
+ [gui] added ability to remove profile
|
||||||
|
|
||||||
Ver.1.1.0 (netctl-1.7 update):
|
Ver.1.1.0 (netctl-1.7 update):
|
||||||
+ [gui] added frequency
|
+ [gui] added frequency
|
||||||
+ [plasmoid] added menu title
|
+ [plasmoid] added menu title
|
||||||
|
@ -63,8 +63,6 @@ Additional information
|
|||||||
TODO (wish list)
|
TODO (wish list)
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
* update to upstream (add support of macvlan)
|
|
||||||
* add option to remove profile
|
|
||||||
* add contextual actions to tables
|
* add contextual actions to tables
|
||||||
|
|
||||||
Links
|
Links
|
||||||
|
@ -8,7 +8,7 @@ cmake_policy (SET CMP0015 NEW)
|
|||||||
project (netctl-gui)
|
project (netctl-gui)
|
||||||
set (PROJECT_VERSION_MAJOR 1)
|
set (PROJECT_VERSION_MAJOR 1)
|
||||||
set (PROJECT_VERSION_MINOR 1)
|
set (PROJECT_VERSION_MINOR 1)
|
||||||
set (PROJECT_VERSION_PATCH 0)
|
set (PROJECT_VERSION_PATCH 1)
|
||||||
set (PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
|
set (PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
|
||||||
configure_file (${CMAKE_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h)
|
configure_file (${CMAKE_SOURCE_DIR}/version.h.in ${CMAKE_CURRENT_BINARY_DIR}/version.h)
|
||||||
|
|
||||||
|
@ -484,6 +484,33 @@
|
|||||||
<translation>Maximum time, in seconds, to wait for IPv6’s Duplicate Address Detection to succeed</translation>
|
<translation>Maximum time, in seconds, to wait for IPv6’s Duplicate Address Detection to succeed</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MacvlanWidget</name>
|
||||||
|
<message>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Form</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>macvlan settings</source>
|
||||||
|
<translation>macvlan settings</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mode</source>
|
||||||
|
<translation>Mode</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>MAC address</source>
|
||||||
|
<translation>MAC address</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Only connect to specified MAC address</source>
|
||||||
|
<translation type="obsolete">Only connect to specified MAC address</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Optional static MAC address</source>
|
||||||
|
<translation>Optional static MAC address</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MainWindow</name>
|
<name>MainWindow</name>
|
||||||
<message>
|
<message>
|
||||||
@ -690,6 +717,10 @@
|
|||||||
<source>Name Description Status</source>
|
<source>Name Description Status</source>
|
||||||
<translation>Name Description Status</translation>
|
<translation>Name Description Status</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Remove</source>
|
||||||
|
<translation>Remove</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MobileWidget</name>
|
<name>MobileWidget</name>
|
||||||
|
@ -484,6 +484,33 @@
|
|||||||
<translation>Максимальное время в секундах для ожидания выполнения детектирования дубликации IPv6 адресов</translation>
|
<translation>Максимальное время в секундах для ожидания выполнения детектирования дубликации IPv6 адресов</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>MacvlanWidget</name>
|
||||||
|
<message>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Form</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>macvlan settings</source>
|
||||||
|
<translation>Опции macvlan</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Mode</source>
|
||||||
|
<translation>Режим</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>MAC address</source>
|
||||||
|
<translation>MAC адрес</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Only connect to specified MAC address</source>
|
||||||
|
<translation type="obsolete">Подключаться только к указанному MAC адресу</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Optional static MAC address</source>
|
||||||
|
<translation>Статический MAC адрес, если нужно</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MainWindow</name>
|
<name>MainWindow</name>
|
||||||
<message>
|
<message>
|
||||||
@ -690,6 +717,10 @@
|
|||||||
<source>Name Description Status</source>
|
<source>Name Description Status</source>
|
||||||
<translation>Имя Описание Статус</translation>
|
<translation>Имя Описание Статус</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Remove</source>
|
||||||
|
<translation>Удалить</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>MobileWidget</name>
|
<name>MobileWidget</name>
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>431</width>
|
<width>429</width>
|
||||||
<height>537</height>
|
<height>535</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
@ -118,6 +118,11 @@
|
|||||||
<string notr="true">vlan</string>
|
<string notr="true">vlan</string>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">macvlan</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
93
sources/gui/src/macvlanwidget.cpp
Normal file
93
sources/gui/src/macvlanwidget.cpp
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
/***************************************************************************
|
||||||
|
* This file is part of netctl-gui *
|
||||||
|
* *
|
||||||
|
* netctl-gui is free software: you can redistribute it and/or *
|
||||||
|
* modify it under the terms of the GNU General Public License as *
|
||||||
|
* published by the Free Software Foundation, either version 3 of the *
|
||||||
|
* License, or (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* netctl-gui is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
* GNU General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License *
|
||||||
|
* along with netctl-gui. If not, see http://www.gnu.org/licenses/ *
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
#include "macvlanwidget.h"
|
||||||
|
#include "ui_macvlanwidget.h"
|
||||||
|
|
||||||
|
|
||||||
|
MacvlanWidget::MacvlanWidget(QWidget *parent)
|
||||||
|
: QWidget(parent),
|
||||||
|
ui(new Ui::MacvlanWidget)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
createFilter();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
MacvlanWidget::~MacvlanWidget()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MacvlanWidget::clear()
|
||||||
|
{
|
||||||
|
ui->comboBox_mode->setCurrentIndex(0);
|
||||||
|
ui->lineEdit_mac->clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MacvlanWidget::setShown(const bool state)
|
||||||
|
{
|
||||||
|
if (state)
|
||||||
|
show();
|
||||||
|
else
|
||||||
|
hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MacvlanWidget::createFilter()
|
||||||
|
{
|
||||||
|
// mac
|
||||||
|
ui->lineEdit_mac->setInputMask(QString(">HH:HH:HH:HH:HH:HH"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QMap<QString, QString> MacvlanWidget::getSettings()
|
||||||
|
{
|
||||||
|
QMap<QString, QString> macvlanSettings;
|
||||||
|
|
||||||
|
if (isOk() != 0)
|
||||||
|
return macvlanSettings;
|
||||||
|
|
||||||
|
macvlanSettings[QString("Mode")] = ui->comboBox_mode->currentText();
|
||||||
|
if (!ui->lineEdit_mac->text().split(QString(":")).join(QString("")).remove(QString(" ")).isEmpty())
|
||||||
|
macvlanSettings[QString("MACAddress")] = ui->lineEdit_mac->text();
|
||||||
|
|
||||||
|
return macvlanSettings;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int MacvlanWidget::isOk()
|
||||||
|
{
|
||||||
|
// all fine
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MacvlanWidget::setSettings(const QMap<QString, QString> settings)
|
||||||
|
{
|
||||||
|
QMap<QString, QString> macvlanSettings = settings;
|
||||||
|
|
||||||
|
if (macvlanSettings.contains(QString("Mode")))
|
||||||
|
for (int i=0; i<ui->comboBox_mode->count(); i++)
|
||||||
|
if (macvlanSettings[QString("Mode")].remove(QString("'")) == ui->comboBox_mode->itemText(i))
|
||||||
|
ui->comboBox_mode->setCurrentIndex(i);
|
||||||
|
if (macvlanSettings.contains(QString("MACAddress")))
|
||||||
|
ui->lineEdit_mac->setText(macvlanSettings[QString("MACAddress")]);
|
||||||
|
}
|
49
sources/gui/src/macvlanwidget.h
Normal file
49
sources/gui/src/macvlanwidget.h
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/***************************************************************************
|
||||||
|
* This file is part of netctl-gui *
|
||||||
|
* *
|
||||||
|
* netctl-gui is free software: you can redistribute it and/or *
|
||||||
|
* modify it under the terms of the GNU General Public License as *
|
||||||
|
* published by the Free Software Foundation, either version 3 of the *
|
||||||
|
* License, or (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* netctl-gui is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
* GNU General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License *
|
||||||
|
* along with netctl-gui. If not, see http://www.gnu.org/licenses/ *
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#ifndef MACVLANWIDGET_H
|
||||||
|
#define MACVLANWIDGET_H
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class MacvlanWidget;
|
||||||
|
}
|
||||||
|
|
||||||
|
class MacvlanWidget : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit MacvlanWidget(QWidget *parent = 0);
|
||||||
|
~MacvlanWidget();
|
||||||
|
QMap<QString, QString> getSettings();
|
||||||
|
int isOk();
|
||||||
|
void setSettings(const QMap<QString, QString> settings);
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void clear();
|
||||||
|
void setShown(const bool state);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::MacvlanWidget *ui;
|
||||||
|
void createFilter();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* MACVLANWIDGET_H */
|
94
sources/gui/src/macvlanwidget.ui
Normal file
94
sources/gui/src/macvlanwidget.ui
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>MacvlanWidget</class>
|
||||||
|
<widget class="QWidget" name="MacvlanWidget">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>396</width>
|
||||||
|
<height>101</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Form</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QDockWidget" name="dockWidget_macvlan">
|
||||||
|
<property name="features">
|
||||||
|
<set>QDockWidget::NoDockWidgetFeatures</set>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>macvlan settings</string>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="dockWidgetContents_macvlan">
|
||||||
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<layout class="QHBoxLayout" name="layout_mode">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_mode">
|
||||||
|
<property name="text">
|
||||||
|
<string>Mode</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="comboBox_mode">
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">bridge</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">vepa</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">private</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true">passthru</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<layout class="QHBoxLayout" name="layout_mac">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_mac">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>150</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>MAC address</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="lineEdit_mac">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Optional static MAC address</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
@ -28,6 +28,7 @@
|
|||||||
#include "ethernetwidget.h"
|
#include "ethernetwidget.h"
|
||||||
#include "generalwidget.h"
|
#include "generalwidget.h"
|
||||||
#include "ipwidget.h"
|
#include "ipwidget.h"
|
||||||
|
#include "macvlanwidget.h"
|
||||||
#include "mobilewidget.h"
|
#include "mobilewidget.h"
|
||||||
#include "netctlinteract.h"
|
#include "netctlinteract.h"
|
||||||
#include "netctlprofile.h"
|
#include "netctlprofile.h"
|
||||||
@ -67,6 +68,8 @@ MainWindow::MainWindow(QWidget *parent, const bool defaultSettings, const int ta
|
|||||||
ui->scrollAreaWidgetContents->layout()->addWidget(bridgeWid);
|
ui->scrollAreaWidgetContents->layout()->addWidget(bridgeWid);
|
||||||
ethernetWid = new EthernetWidget(this);
|
ethernetWid = new EthernetWidget(this);
|
||||||
ui->scrollAreaWidgetContents->layout()->addWidget(ethernetWid);
|
ui->scrollAreaWidgetContents->layout()->addWidget(ethernetWid);
|
||||||
|
macvlanWid = new MacvlanWidget(this);
|
||||||
|
ui->scrollAreaWidgetContents->layout()->addWidget(macvlanWid);
|
||||||
mobileWid = new MobileWidget(this);
|
mobileWid = new MobileWidget(this);
|
||||||
ui->scrollAreaWidgetContents->layout()->addWidget(mobileWid);
|
ui->scrollAreaWidgetContents->layout()->addWidget(mobileWid);
|
||||||
pppoeWid = new PppoeWidget(this);
|
pppoeWid = new PppoeWidget(this);
|
||||||
@ -100,6 +103,7 @@ MainWindow::~MainWindow()
|
|||||||
delete ethernetWid;
|
delete ethernetWid;
|
||||||
delete generalWid;
|
delete generalWid;
|
||||||
delete ipWid;
|
delete ipWid;
|
||||||
|
delete macvlanWid;
|
||||||
delete mobileWid;
|
delete mobileWid;
|
||||||
delete pppoeWid;
|
delete pppoeWid;
|
||||||
delete tunnelWid;
|
delete tunnelWid;
|
||||||
@ -154,6 +158,7 @@ void MainWindow::createActions()
|
|||||||
|
|
||||||
// main page events
|
// main page events
|
||||||
connect(ui->pushButton_mainRefresh, SIGNAL(clicked(bool)), this, SLOT(updateMainTab()));
|
connect(ui->pushButton_mainRefresh, SIGNAL(clicked(bool)), this, SLOT(updateMainTab()));
|
||||||
|
connect(ui->pushButton_mainRemove, SIGNAL(clicked(bool)), this, SLOT(mainTabRemoveProfile()));
|
||||||
connect(ui->pushButton_mainEnable, SIGNAL(clicked(bool)), this, SLOT(mainTabEnableProfile()));
|
connect(ui->pushButton_mainEnable, SIGNAL(clicked(bool)), this, SLOT(mainTabEnableProfile()));
|
||||||
connect(ui->pushButton_mainRestart, SIGNAL(clicked(bool)), this, SLOT(mainTabRestartProfile()));
|
connect(ui->pushButton_mainRestart, SIGNAL(clicked(bool)), this, SLOT(mainTabRestartProfile()));
|
||||||
connect(ui->pushButton_mainStart, SIGNAL(clicked(bool)), this, SLOT(mainTabStartProfile()));
|
connect(ui->pushButton_mainStart, SIGNAL(clicked(bool)), this, SLOT(mainTabStartProfile()));
|
||||||
@ -301,6 +306,21 @@ void MainWindow::updateWifiTab()
|
|||||||
|
|
||||||
|
|
||||||
// main tab slots
|
// main tab slots
|
||||||
|
void MainWindow::mainTabRemoveProfile()
|
||||||
|
{
|
||||||
|
qDebug() << "[MainWindow]" << "[mainTabRemoveProfile]";
|
||||||
|
ui->tabWidget->setDisabled(true);
|
||||||
|
// call netctlprofile
|
||||||
|
QString profile = ui->tableWidget_main->item(ui->tableWidget_main->currentItem()->row(), 0)->text();
|
||||||
|
if (netctlProfile->removeProfile(profile))
|
||||||
|
ui->statusBar->showMessage(QApplication::translate("MainWindow", "Done"));
|
||||||
|
else
|
||||||
|
ui->statusBar->showMessage(QApplication::translate("MainWindow", "Error"));
|
||||||
|
|
||||||
|
updateMainTab();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void MainWindow::mainTabEnableProfile()
|
void MainWindow::mainTabEnableProfile()
|
||||||
{
|
{
|
||||||
if (!checkExternalApps(QString("netctl"))) {
|
if (!checkExternalApps(QString("netctl"))) {
|
||||||
@ -442,6 +462,7 @@ void MainWindow::profileTabChangeState(const QString current)
|
|||||||
ipWid->setShown(true);
|
ipWid->setShown(true);
|
||||||
bridgeWid->setShown(false);
|
bridgeWid->setShown(false);
|
||||||
ethernetWid->setShown(true);
|
ethernetWid->setShown(true);
|
||||||
|
macvlanWid->setShown(false);
|
||||||
mobileWid->setShown(false);
|
mobileWid->setShown(false);
|
||||||
pppoeWid->setShown(false);
|
pppoeWid->setShown(false);
|
||||||
tunnelWid->setShown(false);
|
tunnelWid->setShown(false);
|
||||||
@ -454,6 +475,7 @@ void MainWindow::profileTabChangeState(const QString current)
|
|||||||
ipWid->setShown(true);
|
ipWid->setShown(true);
|
||||||
bridgeWid->setShown(false);
|
bridgeWid->setShown(false);
|
||||||
ethernetWid->setShown(false);
|
ethernetWid->setShown(false);
|
||||||
|
macvlanWid->setShown(false);
|
||||||
mobileWid->setShown(false);
|
mobileWid->setShown(false);
|
||||||
pppoeWid->setShown(false);
|
pppoeWid->setShown(false);
|
||||||
tunnelWid->setShown(false);
|
tunnelWid->setShown(false);
|
||||||
@ -467,6 +489,7 @@ void MainWindow::profileTabChangeState(const QString current)
|
|||||||
ipWid->setShown(true);
|
ipWid->setShown(true);
|
||||||
bridgeWid->setShown(false);
|
bridgeWid->setShown(false);
|
||||||
ethernetWid->setShown(false);
|
ethernetWid->setShown(false);
|
||||||
|
macvlanWid->setShown(false);
|
||||||
mobileWid->setShown(false);
|
mobileWid->setShown(false);
|
||||||
pppoeWid->setShown(false);
|
pppoeWid->setShown(false);
|
||||||
tunnelWid->setShown(false);
|
tunnelWid->setShown(false);
|
||||||
@ -479,6 +502,7 @@ void MainWindow::profileTabChangeState(const QString current)
|
|||||||
ipWid->setShown(true);
|
ipWid->setShown(true);
|
||||||
bridgeWid->setShown(true);
|
bridgeWid->setShown(true);
|
||||||
ethernetWid->setShown(false);
|
ethernetWid->setShown(false);
|
||||||
|
macvlanWid->setShown(false);
|
||||||
mobileWid->setShown(false);
|
mobileWid->setShown(false);
|
||||||
pppoeWid->setShown(false);
|
pppoeWid->setShown(false);
|
||||||
tunnelWid->setShown(false);
|
tunnelWid->setShown(false);
|
||||||
@ -491,6 +515,7 @@ void MainWindow::profileTabChangeState(const QString current)
|
|||||||
ipWid->setShown(false);
|
ipWid->setShown(false);
|
||||||
bridgeWid->setShown(false);
|
bridgeWid->setShown(false);
|
||||||
ethernetWid->setShown(false);
|
ethernetWid->setShown(false);
|
||||||
|
macvlanWid->setShown(false);
|
||||||
mobileWid->setShown(false);
|
mobileWid->setShown(false);
|
||||||
pppoeWid->setShown(true);
|
pppoeWid->setShown(true);
|
||||||
tunnelWid->setShown(false);
|
tunnelWid->setShown(false);
|
||||||
@ -503,6 +528,7 @@ void MainWindow::profileTabChangeState(const QString current)
|
|||||||
ipWid->setShown(false);
|
ipWid->setShown(false);
|
||||||
bridgeWid->setShown(false);
|
bridgeWid->setShown(false);
|
||||||
ethernetWid->setShown(false);
|
ethernetWid->setShown(false);
|
||||||
|
macvlanWid->setShown(false);
|
||||||
mobileWid->setShown(true);
|
mobileWid->setShown(true);
|
||||||
pppoeWid->setShown(false);
|
pppoeWid->setShown(false);
|
||||||
tunnelWid->setShown(false);
|
tunnelWid->setShown(false);
|
||||||
@ -515,6 +541,7 @@ void MainWindow::profileTabChangeState(const QString current)
|
|||||||
ipWid->setShown(true);
|
ipWid->setShown(true);
|
||||||
bridgeWid->setShown(false);
|
bridgeWid->setShown(false);
|
||||||
ethernetWid->setShown(false);
|
ethernetWid->setShown(false);
|
||||||
|
macvlanWid->setShown(false);
|
||||||
mobileWid->setShown(false);
|
mobileWid->setShown(false);
|
||||||
pppoeWid->setShown(false);
|
pppoeWid->setShown(false);
|
||||||
tunnelWid->setShown(true);
|
tunnelWid->setShown(true);
|
||||||
@ -527,6 +554,7 @@ void MainWindow::profileTabChangeState(const QString current)
|
|||||||
ipWid->setShown(true);
|
ipWid->setShown(true);
|
||||||
bridgeWid->setShown(false);
|
bridgeWid->setShown(false);
|
||||||
ethernetWid->setShown(false);
|
ethernetWid->setShown(false);
|
||||||
|
macvlanWid->setShown(false);
|
||||||
mobileWid->setShown(false);
|
mobileWid->setShown(false);
|
||||||
pppoeWid->setShown(false);
|
pppoeWid->setShown(false);
|
||||||
tunnelWid->setShown(false);
|
tunnelWid->setShown(false);
|
||||||
@ -539,6 +567,7 @@ void MainWindow::profileTabChangeState(const QString current)
|
|||||||
ipWid->setShown(true);
|
ipWid->setShown(true);
|
||||||
bridgeWid->setShown(false);
|
bridgeWid->setShown(false);
|
||||||
ethernetWid->setShown(true);
|
ethernetWid->setShown(true);
|
||||||
|
macvlanWid->setShown(false);
|
||||||
mobileWid->setShown(false);
|
mobileWid->setShown(false);
|
||||||
pppoeWid->setShown(false);
|
pppoeWid->setShown(false);
|
||||||
tunnelWid->setShown(false);
|
tunnelWid->setShown(false);
|
||||||
@ -546,6 +575,19 @@ void MainWindow::profileTabChangeState(const QString current)
|
|||||||
vlanWid->setShown(true);
|
vlanWid->setShown(true);
|
||||||
wirelessWid->setShown(false);
|
wirelessWid->setShown(false);
|
||||||
}
|
}
|
||||||
|
else if (current == QString("macvlan")) {
|
||||||
|
generalWid->setShown(true);
|
||||||
|
ipWid->setShown(true);
|
||||||
|
bridgeWid->setShown(false);
|
||||||
|
ethernetWid->setShown(true);
|
||||||
|
macvlanWid->setShown(true);
|
||||||
|
mobileWid->setShown(false);
|
||||||
|
pppoeWid->setShown(false);
|
||||||
|
tunnelWid->setShown(false);
|
||||||
|
tuntapWid->setShown(false);
|
||||||
|
vlanWid->setShown(false);
|
||||||
|
wirelessWid->setShown(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -594,7 +636,8 @@ void MainWindow::profileTabCreateProfile()
|
|||||||
(generalWid->connectionType->currentText() == QString("bridge")) ||
|
(generalWid->connectionType->currentText() == QString("bridge")) ||
|
||||||
(generalWid->connectionType->currentText() == QString("tunnel")) ||
|
(generalWid->connectionType->currentText() == QString("tunnel")) ||
|
||||||
(generalWid->connectionType->currentText() == QString("tuntap")) ||
|
(generalWid->connectionType->currentText() == QString("tuntap")) ||
|
||||||
(generalWid->connectionType->currentText() == QString("vlan"))) {
|
(generalWid->connectionType->currentText() == QString("vlan")) ||
|
||||||
|
(generalWid->connectionType->currentText() == QString("macvlan"))) {
|
||||||
if (ipWid->isOk() == 1) {
|
if (ipWid->isOk() == 1) {
|
||||||
errorWin = new ErrorWindow(this, 6);
|
errorWin = new ErrorWindow(this, 6);
|
||||||
errorWin->show();
|
errorWin->show();
|
||||||
@ -697,6 +740,13 @@ void MainWindow::profileTabCreateProfile()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (generalWid->connectionType->currentText() == QString("macvlan")) {
|
||||||
|
if (ethernetWid->isOk() == 1) {
|
||||||
|
errorWin = new ErrorWindow(this, 7);
|
||||||
|
errorWin->show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
qDebug() << "[MainWindow]" << "[profileTabCreateProfile]";
|
qDebug() << "[MainWindow]" << "[profileTabCreateProfile]";
|
||||||
ui->tabWidget->setDisabled(true);
|
ui->tabWidget->setDisabled(true);
|
||||||
@ -771,6 +821,17 @@ void MainWindow::profileTabCreateProfile()
|
|||||||
for (int i=0; i<addSettings.keys().count(); i++)
|
for (int i=0; i<addSettings.keys().count(); i++)
|
||||||
settings.insert(addSettings.keys()[i], addSettings[addSettings.keys()[i]]);
|
settings.insert(addSettings.keys()[i], addSettings[addSettings.keys()[i]]);
|
||||||
}
|
}
|
||||||
|
else if (generalWid->connectionType->currentText() == QString("macvlan")) {
|
||||||
|
QMap<QString, QString> addSettings = ipWid->getSettings();
|
||||||
|
for (int i=0; i<addSettings.keys().count(); i++)
|
||||||
|
settings.insert(addSettings.keys()[i], addSettings[addSettings.keys()[i]]);
|
||||||
|
addSettings = ethernetWid->getSettings();
|
||||||
|
for (int i=0; i<addSettings.keys().count(); i++)
|
||||||
|
settings.insert(addSettings.keys()[i], addSettings[addSettings.keys()[i]]);
|
||||||
|
addSettings = macvlanWid->getSettings();
|
||||||
|
for (int i=0; i<addSettings.keys().count(); i++)
|
||||||
|
settings.insert(addSettings.keys()[i], addSettings[addSettings.keys()[i]]);
|
||||||
|
}
|
||||||
|
|
||||||
// call netctlprofile
|
// call netctlprofile
|
||||||
QString profileTempName = netctlProfile->createProfile(profile, settings);
|
QString profileTempName = netctlProfile->createProfile(profile, settings);
|
||||||
@ -825,6 +886,11 @@ void MainWindow::profileTabLoadProfile()
|
|||||||
ethernetWid->setSettings(settings);
|
ethernetWid->setSettings(settings);
|
||||||
vlanWid->setSettings(settings);
|
vlanWid->setSettings(settings);
|
||||||
}
|
}
|
||||||
|
else if (generalWid->connectionType->currentText() == QString("macvlan")) {
|
||||||
|
ipWid->setSettings(settings);
|
||||||
|
ethernetWid->setSettings(settings);
|
||||||
|
macvlanWid->setSettings(settings);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,6 +28,7 @@ class ErrorWindow;
|
|||||||
class EthernetWidget;
|
class EthernetWidget;
|
||||||
class GeneralWidget;
|
class GeneralWidget;
|
||||||
class IpWidget;
|
class IpWidget;
|
||||||
|
class MacvlanWidget;
|
||||||
class MobileWidget;
|
class MobileWidget;
|
||||||
class Netctl;
|
class Netctl;
|
||||||
class NetctlProfile;
|
class NetctlProfile;
|
||||||
@ -67,6 +68,7 @@ private slots:
|
|||||||
void updateProfileTab();
|
void updateProfileTab();
|
||||||
void updateWifiTab();
|
void updateWifiTab();
|
||||||
// main tab slots
|
// main tab slots
|
||||||
|
void mainTabRemoveProfile();
|
||||||
void mainTabEnableProfile();
|
void mainTabEnableProfile();
|
||||||
void mainTabRestartProfile();
|
void mainTabRestartProfile();
|
||||||
void mainTabStartProfile();
|
void mainTabStartProfile();
|
||||||
@ -89,6 +91,7 @@ private:
|
|||||||
EthernetWidget *ethernetWid;
|
EthernetWidget *ethernetWid;
|
||||||
GeneralWidget *generalWid;
|
GeneralWidget *generalWid;
|
||||||
IpWidget *ipWid;
|
IpWidget *ipWid;
|
||||||
|
MacvlanWidget *macvlanWid;
|
||||||
MobileWidget *mobileWid;
|
MobileWidget *mobileWid;
|
||||||
PppoeWidget *pppoeWid;
|
PppoeWidget *pppoeWid;
|
||||||
TunnelWidget *tunnelWid;
|
TunnelWidget *tunnelWid;
|
||||||
|
@ -86,6 +86,16 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="pushButton_mainRemove">
|
||||||
|
<property name="text">
|
||||||
|
<string>Remove</string>
|
||||||
|
</property>
|
||||||
|
<property name="autoDefault">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<spacer name="spacer_mainButtons">
|
<spacer name="spacer_mainButtons">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
@ -190,8 +200,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>98</width>
|
<width>96</width>
|
||||||
<height>28</height>
|
<height>26</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
@ -356,7 +366,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>491</width>
|
<width>491</width>
|
||||||
<height>20</height>
|
<height>22</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QMenu" name="menuMenu">
|
<widget class="QMenu" name="menuMenu">
|
||||||
@ -390,6 +400,7 @@
|
|||||||
<tabstop>tabWidget</tabstop>
|
<tabstop>tabWidget</tabstop>
|
||||||
<tabstop>tableWidget_main</tabstop>
|
<tabstop>tableWidget_main</tabstop>
|
||||||
<tabstop>pushButton_mainRefresh</tabstop>
|
<tabstop>pushButton_mainRefresh</tabstop>
|
||||||
|
<tabstop>pushButton_mainRemove</tabstop>
|
||||||
<tabstop>pushButton_mainEnable</tabstop>
|
<tabstop>pushButton_mainEnable</tabstop>
|
||||||
<tabstop>pushButton_mainRestart</tabstop>
|
<tabstop>pushButton_mainRestart</tabstop>
|
||||||
<tabstop>pushButton_mainStart</tabstop>
|
<tabstop>pushButton_mainStart</tabstop>
|
||||||
|
@ -55,6 +55,22 @@ bool NetctlProfile::copyProfile(const QString oldPath)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool NetctlProfile::removeProfile(const QString profile)
|
||||||
|
{
|
||||||
|
QString profilePath = profileDirectory->absolutePath() + QDir::separator() + profile;
|
||||||
|
QProcess command;
|
||||||
|
QString commandText = sudoCommand + QString(" /usr/bin/rm ") + profilePath;
|
||||||
|
qDebug() << "[NetctlProfile]" << "[removeProfile]" << ":" << "Run cmd" << commandText;
|
||||||
|
command.start(commandText);
|
||||||
|
command.waitForFinished(-1);
|
||||||
|
if (command.exitCode() == 0)
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
QString NetctlProfile::createProfile(const QString profile, const QMap<QString, QString> settings)
|
QString NetctlProfile::createProfile(const QString profile, const QMap<QString, QString> settings)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -34,6 +34,7 @@ public:
|
|||||||
const QMap<QString, QString> settings = QMap<QString, QString>());
|
const QMap<QString, QString> settings = QMap<QString, QString>());
|
||||||
~NetctlProfile();
|
~NetctlProfile();
|
||||||
bool copyProfile(const QString oldPath);
|
bool copyProfile(const QString oldPath);
|
||||||
|
bool removeProfile(const QString profile);
|
||||||
QString createProfile(const QString profile, const QMap<QString, QString> settings);
|
QString createProfile(const QString profile, const QMap<QString, QString> settings);
|
||||||
QMap<QString, QString> getSettingsFromProfile(const QString profile);
|
QMap<QString, QString> getSettingsFromProfile(const QString profile);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user