Add a WiFi settings tab to the WiFi settings dialog
This commit is contained in:
parent
b9139483e1
commit
24d16bdf2d
@ -57,6 +57,9 @@ set(PROJECT_SOURCES
|
|||||||
ipv6settingstab.ui
|
ipv6settingstab.ui
|
||||||
wifisettings.h
|
wifisettings.h
|
||||||
wifisettings.cpp
|
wifisettings.cpp
|
||||||
|
wifisettingstab.h
|
||||||
|
wifisettingstab.cpp
|
||||||
|
wifisettingstab.ui
|
||||||
${TS_FILES}
|
${TS_FILES}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ QString ConnectionSettingsEngine::targetConnUuidStr = QString();
|
|||||||
* autoconnectVpn: QString
|
* autoconnectVpn: QString
|
||||||
* meteredConnection: ConnectionSettingsEngine::Metered
|
* meteredConnection: ConnectionSettingsEngine::Metered
|
||||||
* device: QString
|
* device: QString
|
||||||
* clonedMacAddress: QString
|
* clonedMacAddress: QString (mac address)
|
||||||
* mtu: int
|
* mtu: int
|
||||||
*
|
*
|
||||||
* All things IPv4:
|
* All things IPv4:
|
||||||
@ -82,6 +82,12 @@ QString ConnectionSettingsEngine::targetConnUuidStr = QString();
|
|||||||
* autoLinkNegotiation: ConnectionSettingsEngine::LinkNegotiation
|
* autoLinkNegotiation: ConnectionSettingsEngine::LinkNegotiation
|
||||||
* linkSpeed: ConnectionSettingsEngine::LinkSpeed
|
* linkSpeed: ConnectionSettingsEngine::LinkSpeed
|
||||||
* duplexMode: ConnectionSettingsEngine::DuplexMode
|
* duplexMode: ConnectionSettingsEngine::DuplexMode
|
||||||
|
*
|
||||||
|
* For WiFi devices only:
|
||||||
|
* ssid: QString
|
||||||
|
* wifiMode: ConnectionSettingsEngine::WifiMode
|
||||||
|
* bssid: QString (mac address)
|
||||||
|
* isWifiHidden: bool
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ConnectionSettingsEngine::ConnectionSettingsEngine()
|
ConnectionSettingsEngine::ConnectionSettingsEngine()
|
||||||
@ -146,6 +152,23 @@ QVariantMap ConnectionSettingsEngine::readConnectionSettings(QString connUuidStr
|
|||||||
|
|
||||||
result.insert("device", connSettings->interfaceName());
|
result.insert("device", connSettings->interfaceName());
|
||||||
|
|
||||||
|
if (!connWirelessSetting.isNull()) {
|
||||||
|
result.insert("ssid", QString(connWirelessSetting->ssid()));
|
||||||
|
switch (connWirelessSetting->mode()) {
|
||||||
|
case NetworkManager::WirelessSetting::Infrastructure:
|
||||||
|
result.insert("wifiMode", ConnectionSettingsEngine::WifiModeInfrastructure);
|
||||||
|
break;
|
||||||
|
case NetworkManager::WirelessSetting::Adhoc:
|
||||||
|
result.insert("wifiMode", ConnectionSettingsEngine::WifiModeAdhoc);
|
||||||
|
break;
|
||||||
|
case NetworkManager::WirelessSetting::Ap:
|
||||||
|
result.insert("wifiMode", ConnectionSettingsEngine::WifiModeAccessPoint);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
result.insert("bssid", NetworkManager::macAddressAsString(connWirelessSetting->bssid()));
|
||||||
|
result.insert("isWifiHidden", connWirelessSetting->hidden());
|
||||||
|
}
|
||||||
|
|
||||||
if (!connIpv4Setting.isNull()) {
|
if (!connIpv4Setting.isNull()) {
|
||||||
switch (connIpv4Setting->method()) {
|
switch (connIpv4Setting->method()) {
|
||||||
case NetworkManager::Ipv4Setting::Automatic:
|
case NetworkManager::Ipv4Setting::Automatic:
|
||||||
@ -480,6 +503,32 @@ void ConnectionSettingsEngine::modifyConnectionSettings(QString connUuidStr, QVa
|
|||||||
connSettings->setInterfaceName(settings["device"].toString());
|
connSettings->setInterfaceName(settings["device"].toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (settings["ssid"].isValid()) {
|
||||||
|
connWirelessSetting->setSsid(settings["ssid"].toString().toUtf8());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (settings["wifiMode"].isValid()) {
|
||||||
|
switch (settings["wifiMode"].toInt()) {
|
||||||
|
case ConnectionSettingsEngine::WifiModeInfrastructure:
|
||||||
|
connWirelessSetting->setMode(NetworkManager::WirelessSetting::Infrastructure);
|
||||||
|
break;
|
||||||
|
case ConnectionSettingsEngine::WifiModeAdhoc:
|
||||||
|
connWirelessSetting->setMode(NetworkManager::WirelessSetting::Adhoc);
|
||||||
|
break;
|
||||||
|
case ConnectionSettingsEngine::WifiModeAccessPoint:
|
||||||
|
connWirelessSetting->setMode(NetworkManager::WirelessSetting::Ap);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (settings["bssid"].isValid()) {
|
||||||
|
connWirelessSetting->setBssid(NetworkManager::macAddressFromString(settings["bssid"].toString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (settings["isWifiHidden"].isValid()) {
|
||||||
|
connWirelessSetting->setHidden(settings["isWifiPublic"].toBool());
|
||||||
|
}
|
||||||
|
|
||||||
if (settings["ipv4Method"].isValid()) {
|
if (settings["ipv4Method"].isValid()) {
|
||||||
switch (settings["ipv4Method"].toInt()) {
|
switch (settings["ipv4Method"].toInt()) {
|
||||||
case ConnectionSettingsEngine::Ipv4Automatic:
|
case ConnectionSettingsEngine::Ipv4Automatic:
|
||||||
|
@ -30,6 +30,12 @@ public:
|
|||||||
MeteredNo
|
MeteredNo
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum WifiMode {
|
||||||
|
WifiModeInfrastructure,
|
||||||
|
WifiModeAdhoc,
|
||||||
|
WifiModeAccessPoint
|
||||||
|
};
|
||||||
|
|
||||||
enum Ipv4Method {
|
enum Ipv4Method {
|
||||||
Ipv4Automatic,
|
Ipv4Automatic,
|
||||||
Ipv4AutomaticAddressOnly,
|
Ipv4AutomaticAddressOnly,
|
||||||
|
@ -11,12 +11,15 @@ WifiSettings::WifiSettings(QString connUuidStr, QWidget *parent) :
|
|||||||
this->setWindowTitle(connSettings["connName"].toString());
|
this->setWindowTitle(connSettings["connName"].toString());
|
||||||
ui->connectionNameLineEdit->setText(connSettings["connName"].toString());
|
ui->connectionNameLineEdit->setText(connSettings["connName"].toString());
|
||||||
generalSettingsTab = new GeneralSettingsTab();
|
generalSettingsTab = new GeneralSettingsTab();
|
||||||
|
wifiSettingsTab = new WifiSettingsTab();
|
||||||
ipv4SettingsTab = new Ipv4SettingsTab();
|
ipv4SettingsTab = new Ipv4SettingsTab();
|
||||||
ipv6SettingsTab = new Ipv6SettingsTab();
|
ipv6SettingsTab = new Ipv6SettingsTab();
|
||||||
ui->tabWidget->addTab(generalSettingsTab, tr("General"));
|
ui->tabWidget->addTab(generalSettingsTab, tr("General"));
|
||||||
|
ui->tabWidget->addTab(wifiSettingsTab, tr("WiFi"));
|
||||||
ui->tabWidget->addTab(ipv4SettingsTab, tr("IPv4"));
|
ui->tabWidget->addTab(ipv4SettingsTab, tr("IPv4"));
|
||||||
ui->tabWidget->addTab(ipv6SettingsTab, tr("IPv6"));
|
ui->tabWidget->addTab(ipv6SettingsTab, tr("IPv6"));
|
||||||
generalSettingsTab->loadSettings(connSettings);
|
generalSettingsTab->loadSettings(connSettings);
|
||||||
|
wifiSettingsTab->loadSettings(connSettings);
|
||||||
ipv4SettingsTab->loadSettings(connSettings);
|
ipv4SettingsTab->loadSettings(connSettings);
|
||||||
ipv6SettingsTab->loadSettings(connSettings);
|
ipv6SettingsTab->loadSettings(connSettings);
|
||||||
connect(ui->cancelButton, &QPushButton::clicked, this, &WifiSettings::onCancelButtonClicked);
|
connect(ui->cancelButton, &QPushButton::clicked, this, &WifiSettings::onCancelButtonClicked);
|
||||||
@ -27,6 +30,7 @@ WifiSettings::~WifiSettings()
|
|||||||
{
|
{
|
||||||
delete ui;
|
delete ui;
|
||||||
delete generalSettingsTab;
|
delete generalSettingsTab;
|
||||||
|
delete wifiSettingsTab;
|
||||||
delete ipv4SettingsTab;
|
delete ipv4SettingsTab;
|
||||||
delete ipv6SettingsTab;
|
delete ipv6SettingsTab;
|
||||||
}
|
}
|
||||||
@ -39,6 +43,7 @@ void WifiSettings::onCancelButtonClicked()
|
|||||||
void WifiSettings::onSaveButtonClicked()
|
void WifiSettings::onSaveButtonClicked()
|
||||||
{
|
{
|
||||||
QVariantMap settings = generalSettingsTab->readSettings();
|
QVariantMap settings = generalSettingsTab->readSettings();
|
||||||
|
settings.insert(wifiSettingsTab->readSettings());
|
||||||
settings.insert(ipv4SettingsTab->readSettings());
|
settings.insert(ipv4SettingsTab->readSettings());
|
||||||
settings.insert(ipv6SettingsTab->readSettings());
|
settings.insert(ipv6SettingsTab->readSettings());
|
||||||
settings.insert("connName", ui->connectionNameLineEdit->text());
|
settings.insert("connName", ui->connectionNameLineEdit->text());
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include "connectionsettingsengine.h"
|
#include "connectionsettingsengine.h"
|
||||||
#include "generalsettingstab.h"
|
#include "generalsettingstab.h"
|
||||||
|
#include "wifisettingstab.h"
|
||||||
#include "security802_1xtab.h"
|
#include "security802_1xtab.h"
|
||||||
#include "ipv4settingstab.h"
|
#include "ipv4settingstab.h"
|
||||||
#include "ipv6settingstab.h"
|
#include "ipv6settingstab.h"
|
||||||
@ -30,6 +31,7 @@ private:
|
|||||||
|
|
||||||
QString targetConnUuidStr;
|
QString targetConnUuidStr;
|
||||||
GeneralSettingsTab *generalSettingsTab;
|
GeneralSettingsTab *generalSettingsTab;
|
||||||
|
WifiSettingsTab *wifiSettingsTab;
|
||||||
Ipv4SettingsTab *ipv4SettingsTab;
|
Ipv4SettingsTab *ipv4SettingsTab;
|
||||||
Ipv6SettingsTab *ipv6SettingsTab;
|
Ipv6SettingsTab *ipv6SettingsTab;
|
||||||
};
|
};
|
||||||
|
80
wifisettingstab.cpp
Normal file
80
wifisettingstab.cpp
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
#include "wifisettingstab.h"
|
||||||
|
#include "ui_wifisettingstab.h"
|
||||||
|
|
||||||
|
WifiSettingsTab::WifiSettingsTab(QWidget *parent) :
|
||||||
|
QWidget(parent),
|
||||||
|
ui(new Ui::WifiSettingsTab)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
ui->modeComboBox->addItems(QStringList() << tr("Infrastructure") << tr("Adhoc") << tr("Access Point"));
|
||||||
|
}
|
||||||
|
|
||||||
|
WifiSettingsTab::~WifiSettingsTab()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
QVariantMap WifiSettingsTab::readSettings()
|
||||||
|
{
|
||||||
|
QVariantMap output;
|
||||||
|
output.insert("device", QVariant(ui->deviceComboBox->currentText()));
|
||||||
|
output.insert("clonedMacAddress", QVariant(ui->clonedMacAddressLineEdit->text()));
|
||||||
|
output.insert("ssid", ui->ssidComboBox->currentText());
|
||||||
|
switch (ui->modeComboBox->currentIndex()) {
|
||||||
|
case 0: // Infrastructure
|
||||||
|
output.insert("wifiMode", ConnectionSettingsEngine::WifiModeInfrastructure);
|
||||||
|
break;
|
||||||
|
case 1: // Adhoc
|
||||||
|
output.insert("wifiMode", ConnectionSettingsEngine::WifiModeAdhoc);
|
||||||
|
break;
|
||||||
|
case 2: // Access Point
|
||||||
|
output.insert("wifiMode", ConnectionSettingsEngine::WifiModeAccessPoint);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
output.insert("bssid", ui->bssidComboBox->currentText());
|
||||||
|
output.insert("clonedMacAddress", QVariant(ui->clonedMacAddressLineEdit->text()));
|
||||||
|
output.insert("mtu", QVariant(ui->mtuSpinBox->value()));
|
||||||
|
output.insert("isWifiHidden", ui->hiddenNetworkCheckbox->isChecked());
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
void WifiSettingsTab::loadSettings(QVariantMap settings)
|
||||||
|
{
|
||||||
|
if (settings["device"].isValid()) {
|
||||||
|
ui->deviceComboBox->setCurrentText(settings["device"].toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (settings["ssid"].isValid()) {
|
||||||
|
ui->ssidComboBox->setCurrentText(settings["ssid"].toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (settings["wifiMode"].isValid()) {
|
||||||
|
switch (settings["wifiMode"].toInt()) {
|
||||||
|
case ConnectionSettingsEngine::WifiModeInfrastructure:
|
||||||
|
ui->modeComboBox->setCurrentIndex(0);
|
||||||
|
break;
|
||||||
|
case ConnectionSettingsEngine::WifiModeAdhoc:
|
||||||
|
ui->modeComboBox->setCurrentIndex(1);
|
||||||
|
break;
|
||||||
|
case ConnectionSettingsEngine::WifiModeAccessPoint:
|
||||||
|
ui->modeComboBox->setCurrentIndex(2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (settings["bssid"].isValid()) {
|
||||||
|
ui->bssidComboBox->setCurrentText(settings["bssid"].toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (settings["clonedMacAddress"].isValid()) {
|
||||||
|
ui->clonedMacAddressLineEdit->setText(settings["clonedMacAddress"].toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (settings["mtu"].isValid()) {
|
||||||
|
ui->mtuSpinBox->setValue(settings["mtu"].toInt());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (settings["isWifiHidden"].isValid()) {
|
||||||
|
ui->hiddenNetworkCheckbox->setChecked(settings["isWifiHidden"].toBool());
|
||||||
|
}
|
||||||
|
}
|
27
wifisettingstab.h
Normal file
27
wifisettingstab.h
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#ifndef WIFISETTINGSTAB_H
|
||||||
|
#define WIFISETTINGSTAB_H
|
||||||
|
|
||||||
|
#include "connectionsettingsengine.h"
|
||||||
|
#include <QWidget>
|
||||||
|
#include <NetworkManagerQt/Utils>
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class WifiSettingsTab;
|
||||||
|
}
|
||||||
|
|
||||||
|
class WifiSettingsTab : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit WifiSettingsTab(QWidget *parent = nullptr);
|
||||||
|
~WifiSettingsTab();
|
||||||
|
|
||||||
|
QVariantMap readSettings();
|
||||||
|
void loadSettings(QVariantMap settings);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::WifiSettingsTab *ui;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // WIFISETTINGSTAB_H
|
178
wifisettingstab.ui
Normal file
178
wifisettingstab.ui
Normal file
@ -0,0 +1,178 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>WifiSettingsTab</class>
|
||||||
|
<widget class="QWidget" name="WifiSettingsTab">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>400</width>
|
||||||
|
<height>300</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Form</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
<item row="2" column="2">
|
||||||
|
<widget class="QComboBox" name="modeComboBox">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="0">
|
||||||
|
<widget class="QLabel" name="label_5">
|
||||||
|
<property name="text">
|
||||||
|
<string>Cloned MAC address</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLabel" name="label_3">
|
||||||
|
<property name="text">
|
||||||
|
<string>BSSID</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="label_2">
|
||||||
|
<property name="text">
|
||||||
|
<string>Mode</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="0">
|
||||||
|
<widget class="QLabel" name="label_7">
|
||||||
|
<property name="text">
|
||||||
|
<string>Visibility</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="2">
|
||||||
|
<widget class="QLineEdit" name="clonedMacAddressLineEdit"/>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="2">
|
||||||
|
<widget class="QCheckBox" name="hiddenNetworkCheckbox">
|
||||||
|
<property name="text">
|
||||||
|
<string>Hidden network</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="8" column="0">
|
||||||
|
<spacer name="verticalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string>SSID</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="2">
|
||||||
|
<widget class="QComboBox" name="ssidComboBox">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="editable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="0">
|
||||||
|
<widget class="QLabel" name="label_6">
|
||||||
|
<property name="text">
|
||||||
|
<string>MTU</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="2">
|
||||||
|
<widget class="QComboBox" name="bssidComboBox">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="editable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_4">
|
||||||
|
<property name="text">
|
||||||
|
<string>Device</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="2">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QSpinBox" name="mtuSpinBox">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_8">
|
||||||
|
<property name="text">
|
||||||
|
<string>bytes</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="2">
|
||||||
|
<widget class="QComboBox" name="deviceComboBox">
|
||||||
|
<property name="editable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
Loading…
x
Reference in New Issue
Block a user