UI improvements/fixes for Mac protocol
* Change count/step to IntEdit with suitable minimums * Change mac address to MacEdit Fixes #224 fixes #188
This commit is contained in:
parent
b3fb053cca
commit
e05fa5a690
@ -278,15 +278,13 @@ bool MacProtocol::setFieldData(int index, const QVariant &value,
|
|||||||
{
|
{
|
||||||
case mac_dstAddr:
|
case mac_dstAddr:
|
||||||
{
|
{
|
||||||
quint64 mac = value.toString().toULongLong(&isOk, BASE_HEX);
|
quint64 mac = value.toULongLong();
|
||||||
if (isOk)
|
|
||||||
data.set_dst_mac(mac);
|
data.set_dst_mac(mac);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case mac_srcAddr:
|
case mac_srcAddr:
|
||||||
{
|
{
|
||||||
quint64 mac = value.toString().toULongLong(&isOk, BASE_HEX);
|
quint64 mac = value.toULongLong();
|
||||||
if (isOk)
|
|
||||||
data.set_src_mac(mac);
|
data.set_src_mac(mac);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<class>mac</class>
|
<class>mac</class>
|
||||||
<widget class="QWidget" name="mac">
|
<widget class="QWidget" name="mac">
|
||||||
@ -49,19 +50,13 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="QLineEdit" name="leDstMac" >
|
<widget class="MacEdit" name="leDstMac">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>120</width>
|
<width>120</width>
|
||||||
<height>0</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="inputMask" >
|
|
||||||
<string>>HH HH HH HH HH HH; </string>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string> </string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="2">
|
<item row="1" column="2">
|
||||||
@ -89,29 +84,17 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="3">
|
<item row="1" column="3">
|
||||||
<widget class="QLineEdit" name="leDstMacCount" >
|
<widget class="IntEdit" name="leDstMacCount">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="text" >
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
<property name="cursorPosition" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="4">
|
<item row="1" column="4">
|
||||||
<widget class="QLineEdit" name="leDstMacStep" >
|
<widget class="IntEdit" name="leDstMacStep">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="text" >
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
<property name="cursorPosition" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
@ -122,14 +105,7 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="2" column="1">
|
||||||
<widget class="QLineEdit" name="leSrcMac" >
|
<widget class="MacEdit" name="leSrcMac"/>
|
||||||
<property name="inputMask" >
|
|
||||||
<string>>HH HH HH HH HH HH; </string>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string> </string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="2">
|
<item row="2" column="2">
|
||||||
<widget class="QComboBox" name="cmbSrcMacMode">
|
<widget class="QComboBox" name="cmbSrcMacMode">
|
||||||
@ -156,26 +132,17 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="3">
|
<item row="2" column="3">
|
||||||
<widget class="QLineEdit" name="leSrcMacCount" >
|
<widget class="IntEdit" name="leSrcMacCount">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="text" >
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="4">
|
<item row="2" column="4">
|
||||||
<widget class="QLineEdit" name="leSrcMacStep" >
|
<widget class="IntEdit" name="leSrcMacStep">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="text" >
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
<property name="cursorPosition" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0" colspan="5">
|
<item row="3" column="0" colspan="5">
|
||||||
@ -193,7 +160,7 @@
|
|||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" >
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
<width>20</width>
|
<width>20</width>
|
||||||
<height>40</height>
|
<height>40</height>
|
||||||
@ -203,6 +170,18 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
<customwidgets>
|
||||||
|
<customwidget>
|
||||||
|
<class>IntEdit</class>
|
||||||
|
<extends>QSpinBox</extends>
|
||||||
|
<header>intedit.h</header>
|
||||||
|
</customwidget>
|
||||||
|
<customwidget>
|
||||||
|
<class>MacEdit</class>
|
||||||
|
<extends>QLineEdit</extends>
|
||||||
|
<header>macedit.h</header>
|
||||||
|
</customwidget>
|
||||||
|
</customwidgets>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
@ -20,12 +20,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
|
|||||||
#include "macconfig.h"
|
#include "macconfig.h"
|
||||||
#include "mac.h"
|
#include "mac.h"
|
||||||
|
|
||||||
#define MAX_MAC_ITER_COUNT 256
|
|
||||||
|
|
||||||
MacConfigForm::MacConfigForm(QWidget *parent)
|
MacConfigForm::MacConfigForm(QWidget *parent)
|
||||||
: AbstractProtocolConfigForm(parent)
|
: AbstractProtocolConfigForm(parent)
|
||||||
{
|
{
|
||||||
QRegExp reMac("([0-9,a-f,A-F]{2,2}[:-]){5,5}[0-9,a-f,A-F]{2,2}");
|
|
||||||
|
|
||||||
setupUi(this);
|
setupUi(this);
|
||||||
resolveInfo->hide();
|
resolveInfo->hide();
|
||||||
@ -34,10 +31,10 @@ MacConfigForm::MacConfigForm(QWidget *parent)
|
|||||||
resolveInfo->setPixmap(resolveInfo->style()->standardIcon(
|
resolveInfo->setPixmap(resolveInfo->style()->standardIcon(
|
||||||
QStyle::SP_MessageBoxInformation).pixmap(128));
|
QStyle::SP_MessageBoxInformation).pixmap(128));
|
||||||
#endif
|
#endif
|
||||||
leDstMac->setValidator(new QRegExpValidator(reMac, this));
|
leDstMacCount->setMinimum(1);
|
||||||
leSrcMac->setValidator(new QRegExpValidator(reMac, this));
|
leSrcMacCount->setMinimum(1);
|
||||||
leDstMacCount->setValidator(new QIntValidator(1, MAX_MAC_ITER_COUNT, this));
|
leDstMacStep->setMinimum(0);
|
||||||
leSrcMacCount->setValidator(new QIntValidator(1, MAX_MAC_ITER_COUNT, this));
|
leSrcMacStep->setMinimum(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
MacConfigForm::~MacConfigForm()
|
MacConfigForm::~MacConfigForm()
|
||||||
@ -100,75 +97,75 @@ void MacConfigForm::on_cmbSrcMacMode_currentIndexChanged(int index)
|
|||||||
|
|
||||||
void MacConfigForm::loadWidget(AbstractProtocol *proto)
|
void MacConfigForm::loadWidget(AbstractProtocol *proto)
|
||||||
{
|
{
|
||||||
leDstMac->setText(
|
leDstMac->setValue(
|
||||||
proto->fieldData(
|
proto->fieldData(
|
||||||
MacProtocol::mac_dstAddr,
|
MacProtocol::mac_dstAddr,
|
||||||
AbstractProtocol::FieldTextValue
|
AbstractProtocol::FieldValue
|
||||||
).toString());
|
).toULongLong());
|
||||||
cmbDstMacMode->setCurrentIndex(
|
cmbDstMacMode->setCurrentIndex(
|
||||||
proto->fieldData(
|
proto->fieldData(
|
||||||
MacProtocol::mac_dstMacMode,
|
MacProtocol::mac_dstMacMode,
|
||||||
AbstractProtocol::FieldValue
|
AbstractProtocol::FieldValue
|
||||||
).toUInt());
|
).toUInt());
|
||||||
leDstMacCount->setText(
|
leDstMacCount->setValue(
|
||||||
proto->fieldData(
|
proto->fieldData(
|
||||||
MacProtocol::mac_dstMacCount,
|
MacProtocol::mac_dstMacCount,
|
||||||
AbstractProtocol::FieldValue
|
AbstractProtocol::FieldValue
|
||||||
).toString());
|
).toUInt());
|
||||||
leDstMacStep->setText(
|
leDstMacStep->setValue(
|
||||||
proto->fieldData(
|
proto->fieldData(
|
||||||
MacProtocol::mac_dstMacStep,
|
MacProtocol::mac_dstMacStep,
|
||||||
AbstractProtocol::FieldValue
|
AbstractProtocol::FieldValue
|
||||||
).toString());
|
).toUInt());
|
||||||
|
|
||||||
leSrcMac->setText(
|
leSrcMac->setValue(
|
||||||
proto->fieldData(
|
proto->fieldData(
|
||||||
MacProtocol::mac_srcAddr,
|
MacProtocol::mac_srcAddr,
|
||||||
AbstractProtocol::FieldTextValue
|
AbstractProtocol::FieldValue
|
||||||
).toString());
|
).toULongLong());
|
||||||
cmbSrcMacMode->setCurrentIndex(
|
cmbSrcMacMode->setCurrentIndex(
|
||||||
proto->fieldData(
|
proto->fieldData(
|
||||||
MacProtocol::mac_srcMacMode,
|
MacProtocol::mac_srcMacMode,
|
||||||
AbstractProtocol::FieldValue
|
AbstractProtocol::FieldValue
|
||||||
).toUInt());
|
).toUInt());
|
||||||
leSrcMacCount->setText(
|
leSrcMacCount->setValue(
|
||||||
proto->fieldData(
|
proto->fieldData(
|
||||||
MacProtocol::mac_srcMacCount,
|
MacProtocol::mac_srcMacCount,
|
||||||
AbstractProtocol::FieldValue
|
AbstractProtocol::FieldValue
|
||||||
).toString());
|
).toUInt());
|
||||||
leSrcMacStep->setText(
|
leSrcMacStep->setValue(
|
||||||
proto->fieldData(
|
proto->fieldData(
|
||||||
MacProtocol::mac_srcMacStep,
|
MacProtocol::mac_srcMacStep,
|
||||||
AbstractProtocol::FieldValue
|
AbstractProtocol::FieldValue
|
||||||
).toString());
|
).toUInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
void MacConfigForm::storeWidget(AbstractProtocol *proto)
|
void MacConfigForm::storeWidget(AbstractProtocol *proto)
|
||||||
{
|
{
|
||||||
proto->setFieldData(
|
proto->setFieldData(
|
||||||
MacProtocol::mac_dstAddr,
|
MacProtocol::mac_dstAddr,
|
||||||
leDstMac->text().remove(QChar(' ')));
|
leDstMac->value());
|
||||||
proto->setFieldData(
|
proto->setFieldData(
|
||||||
MacProtocol::mac_dstMacMode,
|
MacProtocol::mac_dstMacMode,
|
||||||
cmbDstMacMode->currentIndex());
|
cmbDstMacMode->currentIndex());
|
||||||
proto->setFieldData(
|
proto->setFieldData(
|
||||||
MacProtocol::mac_dstMacCount,
|
MacProtocol::mac_dstMacCount,
|
||||||
leDstMacCount->text());
|
leDstMacCount->value());
|
||||||
proto->setFieldData(
|
proto->setFieldData(
|
||||||
MacProtocol::mac_dstMacStep,
|
MacProtocol::mac_dstMacStep,
|
||||||
leDstMacStep->text());
|
leDstMacStep->value());
|
||||||
|
|
||||||
proto->setFieldData(
|
proto->setFieldData(
|
||||||
MacProtocol::mac_srcAddr,
|
MacProtocol::mac_srcAddr,
|
||||||
leSrcMac->text().remove(QChar(' ')));
|
leSrcMac->value());
|
||||||
proto->setFieldData(
|
proto->setFieldData(
|
||||||
MacProtocol::mac_srcMacMode,
|
MacProtocol::mac_srcMacMode,
|
||||||
cmbSrcMacMode->currentIndex());
|
cmbSrcMacMode->currentIndex());
|
||||||
proto->setFieldData(
|
proto->setFieldData(
|
||||||
MacProtocol::mac_srcMacCount,
|
MacProtocol::mac_srcMacCount,
|
||||||
leSrcMacCount->text());
|
leSrcMacCount->value());
|
||||||
proto->setFieldData(
|
proto->setFieldData(
|
||||||
MacProtocol::mac_srcMacStep,
|
MacProtocol::mac_srcMacStep,
|
||||||
leSrcMacStep->text());
|
leSrcMacStep->value());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user