1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-03-15 07:29:15 +01:00

Added new tab to GCSControl configuration page for button input support.

Only the framework for now.
Functionality to follow.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2095 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
andrew 2010-11-08 06:04:52 +00:00 committed by andrew
parent 1dae56ae3c
commit fab0e6247a
3 changed files with 1020 additions and 312 deletions

View File

@ -51,6 +51,19 @@ GCSControlGadgetOptionsPage::~GCSControlGadgetOptionsPage()
void GCSControlGadgetOptionsPage::buttonState(ButtonNumber number, bool pressed)
{
if (options_page) {
QList<QCheckBox*> rbList;
rbList << options_page->buttonInput0 <<
options_page->buttonInput1 << options_page->buttonInput2 <<
options_page->buttonInput3 << options_page->buttonInput4 <<
options_page->buttonInput5 << options_page->buttonInput6 <<
options_page->buttonInput7;
if (number<8) // We only support 8 buttons
{
rbList.at(number)->setChecked(pressed);
}
}
}
@ -84,6 +97,7 @@ void GCSControlGadgetOptionsPage::axesValues(QListInt16 values)
//creates options page widget (uses the UI file)
QWidget *GCSControlGadgetOptionsPage::createPage(QWidget *parent)
{
int i;
options_page = new Ui::GCSControlGadgetOptionsPage();
QWidget *optionsPageWidget = new QWidget;
options_page->setupUi(optionsPageWidget);
@ -99,6 +113,63 @@ QWidget *GCSControlGadgetOptionsPage::createPage(QWidget *parent)
qb->addItems(chOptions);
}
QList<QComboBox*> buttonList;
buttonList << options_page->button0 << options_page->button1 <<
options_page->button2 << options_page->button3 <<
options_page->button4 << options_page->button5 <<
options_page->button6 << options_page->button7;
QStringList buttonOptions;
buttonOptions << "None" << "Roll" << "Pitch" << "Yaw" << "Throttle" << "Armed" << "GCS Control";
foreach (QComboBox* qb, buttonList) {
qb->addItems(buttonOptions);
}
QList<QComboBox*> buttonActionList;
buttonActionList << options_page->buttonAction0 << options_page->buttonAction1 <<
options_page->buttonAction2 << options_page->buttonAction3 <<
options_page->buttonAction4 << options_page->buttonAction5 <<
options_page->buttonAction6 << options_page->buttonAction7;
QStringList buttonActionOptions;
buttonActionOptions << "None" << "Increase" << "Decrease" << "Toggle";
foreach (QComboBox* qb, buttonActionList) {
qb->addItems(buttonActionOptions);
}
QList<QDoubleSpinBox*> buttonValueList;
buttonValueList << options_page->buttonAmount0 << options_page->buttonAmount1 <<
options_page->buttonAmount2 << options_page->buttonAmount3 <<
options_page->buttonAmount4 << options_page->buttonAmount5 <<
options_page->buttonAmount6 << options_page->buttonAmount7;
for (i=0;i<8;i++)
{
if (buttonList.at(i)->currentText().compare("None")==0)
{
buttonActionList.at(i)->setVisible(0);
buttonValueList.at(i)->setVisible(0);
}
else if ((buttonList.at(i)->currentText().compare("Armed")==0)||
(buttonList.at(i)->currentText().compare("GCS Control")==0))
{
buttonActionList.at(i)->setVisible(1);
buttonValueList.at(i)->setVisible(0);
}
else
{
buttonActionList.at(i)->setVisible(1);
if (buttonActionList.at(i)->currentText().compare("Toggle")==0)
{
buttonValueList.at(i)->setVisible(0);
}
else
{
buttonValueList.at(i)->setVisible(1);
}
}
connect(buttonList.at(i),SIGNAL(currentIndexChanged(int)),this,SLOT(updateButtonFunction()));
}
// Controls mode are from 1 to 4.
if (m_config->getControlsMode()>0 && m_config->getControlsMode() < 5)
options_page->controlsMode->setCurrentIndex(m_config->getControlsMode()-1);
@ -112,6 +183,7 @@ QWidget *GCSControlGadgetOptionsPage::createPage(QWidget *parent)
}
connect(sdlGamepad,SIGNAL(axesValues(QListInt16)),this,SLOT(axesValues(QListInt16)));
connect(sdlGamepad,SIGNAL(buttonState(ButtonNumber,bool)),this,SLOT(buttonState(ButtonNumber,bool)));
return optionsPageWidget;
}
@ -157,3 +229,53 @@ void GCSControlGadgetOptionsPage::finish()
delete options_page;
options_page = NULL;
}
void GCSControlGadgetOptionsPage::updateButtonFunction()
{
int i;
QList<QComboBox*> buttonList;
buttonList << options_page->button0 << options_page->button1 <<
options_page->button2 << options_page->button3 <<
options_page->button4 << options_page->button5 <<
options_page->button6 << options_page->button7;
QList<QComboBox*> buttonActionList;
buttonActionList << options_page->buttonAction0 << options_page->buttonAction1 <<
options_page->buttonAction2 << options_page->buttonAction3 <<
options_page->buttonAction4 << options_page->buttonAction5 <<
options_page->buttonAction6 << options_page->buttonAction7;
QList<QDoubleSpinBox*> buttonValueList;
buttonValueList << options_page->buttonAmount0 << options_page->buttonAmount1 <<
options_page->buttonAmount2 << options_page->buttonAmount3 <<
options_page->buttonAmount4 << options_page->buttonAmount5 <<
options_page->buttonAmount6 << options_page->buttonAmount7;
for (i=0;i<8;i++)
{
if (buttonList.at(i)->currentText().compare("None")==0)
{
buttonActionList.at(i)->setVisible(0);
buttonValueList.at(i)->setVisible(0);
}
else if ((buttonList.at(i)->currentText().compare("Armed")==0)||
(buttonList.at(i)->currentText().compare("GCS Control")==0))
{
buttonActionList.at(i)->setVisible(1);
buttonValueList.at(i)->setVisible(0);
}
else
{
buttonActionList.at(i)->setVisible(1);
if (buttonActionList.at(i)->currentText().compare("Toggle")==0)
{
buttonValueList.at(i)->setVisible(0);
}
else
{
buttonValueList.at(i)->setVisible(1);
}
}
}
}

View File

@ -66,6 +66,7 @@ protected slots:
void gamepads(quint8 count);
void buttonState(ButtonNumber number, bool pressed);
void axesValues(QListInt16 values);
void updateButtonFunction();
};

View File

@ -1,312 +1,897 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>GCSControlGadgetOptionsPage</class>
<widget class="QWidget" name="GCSControlGadgetOptionsPage">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>587</width>
<height>379</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="margin">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QWidget" name="widget" native="true">
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Control Mode:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="controlsMode">
<item>
<property name="text">
<string>Mode 1</string>
</property>
</item>
<item>
<property name="text">
<string>Mode 2</string>
</property>
</item>
<item>
<property name="text">
<string>Mode 3</string>
</property>
</item>
<item>
<property name="text">
<string>Mode 4</string>
</property>
</item>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>External input Device:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Only joystick is implemented at this stage, so this control is disabled.</string>
</property>
<item>
<property name="text">
<string>Joystick</string>
</property>
</item>
<item>
<property name="text">
<string>Audio</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tabWidgetPage2">
<attribute name="title">
<string>Joystick</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_3" stretch="1">
<property name="margin">
<number>0</number>
</property>
<item>
<layout class="QGridLayout" name="gridLayout_2">
<item row="2" column="0">
<widget class="QComboBox" name="channel0"/>
</item>
<item row="2" column="2">
<widget class="QCheckBox" name="checkBox">
<property name="text">
<string>Rev</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QCheckBox" name="checkBox_2">
<property name="text">
<string>Rev</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QComboBox" name="channel1"/>
</item>
<item row="4" column="0">
<widget class="QComboBox" name="channel2"/>
</item>
<item row="5" column="0">
<widget class="QComboBox" name="channel3"/>
</item>
<item row="6" column="0">
<widget class="QComboBox" name="channel4"/>
</item>
<item row="7" column="0">
<widget class="QComboBox" name="channel5"/>
</item>
<item row="8" column="0">
<widget class="QComboBox" name="channel6"/>
</item>
<item row="9" column="0">
<widget class="QComboBox" name="channel7"/>
</item>
<item row="3" column="1">
<widget class="QProgressBar" name="joyCh1">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QProgressBar" name="joyCh0">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QProgressBar" name="joyCh2">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QProgressBar" name="joyCh3">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QProgressBar" name="joyCh4">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QProgressBar" name="joyCh5">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
<item row="8" column="1">
<widget class="QProgressBar" name="joyCh6">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="QProgressBar" name="joyCh7">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QCheckBox" name="checkBox_3">
<property name="text">
<string>Rev</string>
</property>
</widget>
</item>
<item row="5" column="2">
<widget class="QCheckBox" name="checkBox_4">
<property name="text">
<string>Rev</string>
</property>
</widget>
</item>
<item row="6" column="2">
<widget class="QCheckBox" name="checkBox_5">
<property name="text">
<string>Rev</string>
</property>
</widget>
</item>
<item row="7" column="2">
<widget class="QCheckBox" name="checkBox_6">
<property name="text">
<string>Rev</string>
</property>
</widget>
</item>
<item row="8" column="2">
<widget class="QCheckBox" name="checkBox_7">
<property name="text">
<string>Rev</string>
</property>
</widget>
</item>
<item row="9" column="2">
<widget class="QCheckBox" name="checkBox_8">
<property name="text">
<string>Rev</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Move your joystick controls to identify channels</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="tabWidgetPage3">
<attribute name="title">
<string>Audio</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_5">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="telemetryLabel">
<property name="text">
<string>Audio: soundcard-based PPM decoding for trainer port. Not implemented yet.</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>276</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>GCSControlGadgetOptionsPage</class>
<widget class="QWidget" name="GCSControlGadgetOptionsPage">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>587</width>
<height>379</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QWidget" name="widget" native="true">
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Control Mode:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="controlsMode">
<item>
<property name="text">
<string>Mode 1</string>
</property>
</item>
<item>
<property name="text">
<string>Mode 2</string>
</property>
</item>
<item>
<property name="text">
<string>Mode 3</string>
</property>
</item>
<item>
<property name="text">
<string>Mode 4</string>
</property>
</item>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>External input Device:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Only joystick is implemented at this stage, so this control is disabled.</string>
</property>
<item>
<property name="text">
<string>Joystick</string>
</property>
</item>
<item>
<property name="text">
<string>Audio</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tabWidgetPage2">
<attribute name="title">
<string>Joystick</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_3" stretch="1">
<property name="margin">
<number>0</number>
</property>
<item>
<layout class="QGridLayout" name="gridLayout_2">
<item row="2" column="0">
<widget class="QComboBox" name="channel0"/>
</item>
<item row="2" column="2">
<widget class="QCheckBox" name="checkBox">
<property name="text">
<string>Rev</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QCheckBox" name="checkBox_2">
<property name="text">
<string>Rev</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QComboBox" name="channel1"/>
</item>
<item row="4" column="0">
<widget class="QComboBox" name="channel2"/>
</item>
<item row="5" column="0">
<widget class="QComboBox" name="channel3"/>
</item>
<item row="6" column="0">
<widget class="QComboBox" name="channel4"/>
</item>
<item row="7" column="0">
<widget class="QComboBox" name="channel5"/>
</item>
<item row="8" column="0">
<widget class="QComboBox" name="channel6"/>
</item>
<item row="9" column="0">
<widget class="QComboBox" name="channel7"/>
</item>
<item row="3" column="1">
<widget class="QProgressBar" name="joyCh1">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QProgressBar" name="joyCh0">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QProgressBar" name="joyCh2">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QProgressBar" name="joyCh3">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QProgressBar" name="joyCh4">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QProgressBar" name="joyCh5">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
<item row="8" column="1">
<widget class="QProgressBar" name="joyCh6">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="QProgressBar" name="joyCh7">
<property name="value">
<number>24</number>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QCheckBox" name="checkBox_3">
<property name="text">
<string>Rev</string>
</property>
</widget>
</item>
<item row="5" column="2">
<widget class="QCheckBox" name="checkBox_4">
<property name="text">
<string>Rev</string>
</property>
</widget>
</item>
<item row="6" column="2">
<widget class="QCheckBox" name="checkBox_5">
<property name="text">
<string>Rev</string>
</property>
</widget>
</item>
<item row="7" column="2">
<widget class="QCheckBox" name="checkBox_6">
<property name="text">
<string>Rev</string>
</property>
</widget>
</item>
<item row="8" column="2">
<widget class="QCheckBox" name="checkBox_7">
<property name="text">
<string>Rev</string>
</property>
</widget>
</item>
<item row="9" column="2">
<widget class="QCheckBox" name="checkBox_8">
<property name="text">
<string>Rev</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Move your joystick controls to identify channels</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="tabWidgetPage3">
<attribute name="title">
<string>Audio</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_5">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="telemetryLabel">
<property name="text">
<string>Audio: soundcard-based PPM decoding for trainer port. Not implemented yet.</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>276</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Buttons</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>2</number>
</property>
<property name="margin">
<number>3</number>
</property>
<item>
<widget class="QLabel" name="label_4">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Press buttons on controller to identify mappings</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_3">
<property name="horizontalSpacing">
<number>6</number>
</property>
<property name="verticalSpacing">
<number>4</number>
</property>
<item row="1" column="0">
<widget class="QComboBox" name="button0">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QComboBox" name="button1">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QComboBox" name="button2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QComboBox" name="button3">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QComboBox" name="button4">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QComboBox" name="button5">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QComboBox" name="button6">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QComboBox" name="button7">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QComboBox" name="buttonAction0">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QComboBox" name="buttonAction1">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QComboBox" name="buttonAction2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QComboBox" name="buttonAction3">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="5" column="2">
<widget class="QComboBox" name="buttonAction4">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="6" column="2">
<widget class="QComboBox" name="buttonAction5">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="7" column="2">
<widget class="QComboBox" name="buttonAction6">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="8" column="2">
<widget class="QComboBox" name="buttonAction7">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QDoubleSpinBox" name="buttonAmount0">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="decimals">
<number>2</number>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
<property name="maximum">
<double>1.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
<property name="value">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_5">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Function</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_6">
<property name="maximumSize">
<size>
<width>60</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>Current button state</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="margin">
<number>2</number>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLabel" name="label_7">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Action</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QLabel" name="label_8">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Inc/Dec amount</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QDoubleSpinBox" name="buttonAmount1">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="decimals">
<number>2</number>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
<property name="maximum">
<double>1.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
<property name="value">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QDoubleSpinBox" name="buttonAmount2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="decimals">
<number>2</number>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
<property name="maximum">
<double>1.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
<property name="value">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="4" column="3">
<widget class="QDoubleSpinBox" name="buttonAmount3">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="decimals">
<number>2</number>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
<property name="maximum">
<double>1.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
<property name="value">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="5" column="3">
<widget class="QDoubleSpinBox" name="buttonAmount4">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="decimals">
<number>2</number>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
<property name="maximum">
<double>1.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
<property name="value">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="6" column="3">
<widget class="QDoubleSpinBox" name="buttonAmount5">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="decimals">
<number>2</number>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
<property name="maximum">
<double>1.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
<property name="value">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="7" column="3">
<widget class="QDoubleSpinBox" name="buttonAmount6">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="decimals">
<number>2</number>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
<property name="maximum">
<double>1.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
<property name="value">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="8" column="3">
<widget class="QDoubleSpinBox" name="buttonAmount7">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="decimals">
<number>2</number>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
<property name="maximum">
<double>1.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
<property name="value">
<double>0.100000000000000</double>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QCheckBox" name="buttonInput0">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QCheckBox" name="buttonInput1">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="8" column="1">
<widget class="QCheckBox" name="buttonInput7">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QCheckBox" name="buttonInput6">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QCheckBox" name="buttonInput5">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QCheckBox" name="buttonInput4">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QCheckBox" name="buttonInput3">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QCheckBox" name="buttonInput2">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>