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

Updated GCSControl configuration page for button input support.

Saving and recalling of settings now works.
Functionality not implemented yet

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2096 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
andrew 2010-11-09 03:55:04 +00:00 committed by andrew
parent fab0e6247a
commit 8e3813327c
4 changed files with 435 additions and 295 deletions

View File

@ -38,6 +38,13 @@ GCSControlGadgetConfiguration::GCSControlGadgetConfiguration(QString classId, QS
yawChannel(-1),
throttleChannel(-1)
{
int i;
for (i=0;i<8;i++)
{
buttonSettings[i].ActionID=0;
buttonSettings[i].FunctionID=0;
buttonSettings[i].Amount=0;
}
//if a saved configuration exists load it
if(qSettings != 0) {
controlsMode = qSettings->value("controlsMode").toInt();
@ -45,6 +52,14 @@ GCSControlGadgetConfiguration::GCSControlGadgetConfiguration(QString classId, QS
pitchChannel = qSettings->value("pitchChannel").toInt();
yawChannel = qSettings->value("yawChannel").toInt();
throttleChannel = qSettings->value("throttleChannel").toInt();
int i;
for (i=0;i<8;i++)
{
buttonSettings[i].ActionID = qSettings->value(QString().sprintf("button%dAction",i)).toInt();
buttonSettings[i].FunctionID = qSettings->value(QString().sprintf("button%dFunction",i)).toInt();
buttonSettings[i].Amount = qSettings->value(QString().sprintf("button%dAmount",i)).toDouble();
}
}
}
@ -91,4 +106,13 @@ void GCSControlGadgetConfiguration::saveConfig(QSettings* settings) const {
settings->setValue("pitchChannel", pitchChannel);
settings->setValue("yawChannel", yawChannel);
settings->setValue("throttleChannel", throttleChannel);
int i;
for (i=0;i<8;i++)
{
settings->setValue(QString().sprintf("button%dAction",i), buttonSettings[i].ActionID);
settings->setValue(QString().sprintf("button%dFunction",i), buttonSettings[i].FunctionID);
settings->setValue(QString().sprintf("button%dAmount",i), buttonSettings[i].Amount);
}
}

View File

@ -30,8 +30,17 @@
#include <coreplugin/iuavgadgetconfiguration.h>
typedef struct{
int ActionID;
int FunctionID;
double Amount;
}buttonSettingsStruct;
using namespace Core;
class GCSControlGadgetConfiguration : public IUAVGadgetConfiguration
{
Q_OBJECT
@ -43,7 +52,10 @@ class GCSControlGadgetConfiguration : public IUAVGadgetConfiguration
int getControlsMode() { return controlsMode; }
QList<int> getChannelsMapping();
buttonSettingsStruct getbuttonSettings(int i){return buttonSettings[i];}
void setbuttonSettingsAction(int i, int ActionID ){buttonSettings[i].ActionID=ActionID;return;}
void setbuttonSettingsFunction(int i, int FunctionID ){buttonSettings[i].FunctionID=FunctionID;return;}
void setbuttonSettingsAmount(int i, double Amount ){buttonSettings[i].Amount=Amount;return;}
void saveConfig(QSettings* settings) const;
@ -56,6 +68,8 @@ class GCSControlGadgetConfiguration : public IUAVGadgetConfiguration
int pitchChannel;
int yawChannel;
int throttleChannel;
buttonSettingsStruct buttonSettings[8];
};

View File

@ -113,14 +113,15 @@ 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;
QList<QComboBox*> buttonFunctionList;
buttonFunctionList << options_page->buttonFunction0 << options_page->buttonFunction1 <<
options_page->buttonFunction2 << options_page->buttonFunction3 <<
options_page->buttonFunction4 << options_page->buttonFunction5 <<
options_page->buttonFunction6 << options_page->buttonFunction7;
QStringList buttonOptions;
buttonOptions << "None" << "Roll" << "Pitch" << "Yaw" << "Throttle" << "Armed" << "GCS Control";
foreach (QComboBox* qb, buttonList) {
buttonOptions <<"-" << "Roll" << "Pitch" << "Yaw" << "Throttle" << "Armed" << "GCS Control" ;
foreach (QComboBox* qb, buttonFunctionList) {
qb->addItems(buttonOptions);
}
QList<QComboBox*> buttonActionList;
@ -129,7 +130,7 @@ QWidget *GCSControlGadgetOptionsPage::createPage(QWidget *parent)
options_page->buttonAction4 << options_page->buttonAction5 <<
options_page->buttonAction6 << options_page->buttonAction7;
QStringList buttonActionOptions;
buttonActionOptions << "None" << "Increase" << "Decrease" << "Toggle";
buttonActionOptions << "Does nothing" << "Increases" << "Decreases" << "Toggles";
foreach (QComboBox* qb, buttonActionList) {
qb->addItems(buttonActionOptions);
}
@ -141,33 +142,14 @@ QWidget *GCSControlGadgetOptionsPage::createPage(QWidget *parent)
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()));
buttonActionList.at(i)->setCurrentIndex(m_config->getbuttonSettings(i).ActionID);
buttonFunctionList.at(i)->setCurrentIndex(m_config->getbuttonSettings(i).FunctionID);
buttonValueList.at(i)->setValue(m_config->getbuttonSettings(i).Amount);
connect(buttonFunctionList.at(i),SIGNAL(currentIndexChanged(int)),this,SLOT(updateButtonFunction()));
connect(buttonActionList.at(i),SIGNAL(currentIndexChanged(int)),this,SLOT(updateButtonFunction()));
}
updateButtonFunction();
// Controls mode are from 1 to 4.
@ -202,6 +184,23 @@ void GCSControlGadgetOptionsPage::apply()
options_page->channel2 << options_page->channel3 <<
options_page->channel4 << options_page->channel5 <<
options_page->channel6 << options_page->channel7;
QList<QComboBox*> buttonFunctionList;
buttonFunctionList << options_page->buttonFunction0 << options_page->buttonFunction1 <<
options_page->buttonFunction2 << options_page->buttonFunction3 <<
options_page->buttonFunction4 << options_page->buttonFunction5 <<
options_page->buttonFunction6 << options_page->buttonFunction7;
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;
int roll=-1 , pitch=-1, yaw=-1, throttle=-1;
for (int i=0; i<chList.length(); i++) {
switch (chList.at(i)->currentIndex()) {
@ -221,6 +220,14 @@ void GCSControlGadgetOptionsPage::apply()
}
m_config->setRPYTchannels(roll,pitch,yaw,throttle);
int j;
for (j=0;j<8;j++)
{
m_config->setbuttonSettingsAction(j,buttonActionList.at(j)->currentIndex());
m_config->setbuttonSettingsFunction(j,buttonFunctionList.at(j)->currentIndex());
m_config->setbuttonSettingsAmount(j,buttonValueList.at(j)->value());
}
}
void GCSControlGadgetOptionsPage::finish()
@ -234,11 +241,11 @@ void GCSControlGadgetOptionsPage::finish()
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*> buttonFunctionList;
buttonFunctionList << options_page->buttonFunction0 << options_page->buttonFunction1 <<
options_page->buttonFunction2 << options_page->buttonFunction3 <<
options_page->buttonFunction4 << options_page->buttonFunction5 <<
options_page->buttonFunction6 << options_page->buttonFunction7;
QList<QComboBox*> buttonActionList;
buttonActionList << options_page->buttonAction0 << options_page->buttonAction1 <<
options_page->buttonAction2 << options_page->buttonAction3 <<
@ -249,31 +256,32 @@ void GCSControlGadgetOptionsPage::updateButtonFunction()
options_page->buttonAmount2 << options_page->buttonAmount3 <<
options_page->buttonAmount4 << options_page->buttonAmount5 <<
options_page->buttonAmount6 << options_page->buttonAmount7;
QList<QLabel*> buttonLabelList;
buttonLabelList << options_page->buttonLabel0 << options_page->buttonLabel1 <<
options_page->buttonLabel2 << options_page->buttonLabel3 <<
options_page->buttonLabel4 << options_page->buttonLabel5 <<
options_page->buttonLabel6 << options_page->buttonLabel7;
for (i=0;i<8;i++)
{
if (buttonList.at(i)->currentText().compare("None")==0)
if (buttonActionList.at(i)->currentText().compare("Does nothing")==0)
{
buttonActionList.at(i)->setVisible(0);
buttonFunctionList.at(i)->setVisible(0);
buttonLabelList.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))
else
if (buttonActionList.at(i)->currentText().compare("Toggles")==0)
{
buttonActionList.at(i)->setVisible(1);
buttonFunctionList.at(i)->setVisible(1);
buttonLabelList.at(i)->setVisible(0);
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);
}
buttonFunctionList.at(i)->setVisible(1);
buttonLabelList.at(i)->setVisible(1);
buttonValueList.at(i)->setVisible(1);
}
}

View File

@ -335,167 +335,7 @@
<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">
<item row="0" column="5">
<widget class="QDoubleSpinBox" name="buttonAmount0">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@ -520,65 +360,7 @@
</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">
<item row="1" column="5">
<widget class="QDoubleSpinBox" name="buttonAmount1">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@ -603,7 +385,7 @@
</property>
</widget>
</item>
<item row="3" column="3">
<item row="2" column="5">
<widget class="QDoubleSpinBox" name="buttonAmount2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@ -628,7 +410,7 @@
</property>
</widget>
</item>
<item row="4" column="3">
<item row="3" column="5">
<widget class="QDoubleSpinBox" name="buttonAmount3">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@ -653,7 +435,7 @@
</property>
</widget>
</item>
<item row="5" column="3">
<item row="4" column="5">
<widget class="QDoubleSpinBox" name="buttonAmount4">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@ -678,7 +460,7 @@
</property>
</widget>
</item>
<item row="6" column="3">
<item row="5" column="5">
<widget class="QDoubleSpinBox" name="buttonAmount5">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@ -703,7 +485,7 @@
</property>
</widget>
</item>
<item row="7" column="3">
<item row="6" column="5">
<widget class="QDoubleSpinBox" name="buttonAmount6">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@ -728,7 +510,7 @@
</property>
</widget>
</item>
<item row="8" column="3">
<item row="7" column="5">
<widget class="QDoubleSpinBox" name="buttonAmount7">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@ -753,7 +535,7 @@
</property>
</widget>
</item>
<item row="1" column="1">
<item row="0" column="1">
<widget class="QCheckBox" name="buttonInput0">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
@ -762,14 +544,14 @@
</sizepolicy>
</property>
<property name="text">
<string/>
<string>button 1</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="1">
<item row="1" column="1">
<widget class="QCheckBox" name="buttonInput1">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
@ -778,14 +560,14 @@
</sizepolicy>
</property>
<property name="text">
<string/>
<string>button 2</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="8" column="1">
<item row="7" column="1">
<widget class="QCheckBox" name="buttonInput7">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
@ -794,14 +576,14 @@
</sizepolicy>
</property>
<property name="text">
<string/>
<string>button 8</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="7" column="1">
<item row="6" column="1">
<widget class="QCheckBox" name="buttonInput6">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
@ -810,14 +592,14 @@
</sizepolicy>
</property>
<property name="text">
<string/>
<string>button 7</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="6" column="1">
<item row="5" column="1">
<widget class="QCheckBox" name="buttonInput5">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
@ -826,14 +608,14 @@
</sizepolicy>
</property>
<property name="text">
<string/>
<string>button 6</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="5" column="1">
<item row="4" column="1">
<widget class="QCheckBox" name="buttonInput4">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
@ -842,14 +624,14 @@
</sizepolicy>
</property>
<property name="text">
<string/>
<string>button 5</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="4" column="1">
<item row="3" column="1">
<widget class="QCheckBox" name="buttonInput3">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
@ -858,14 +640,14 @@
</sizepolicy>
</property>
<property name="text">
<string/>
<string>button 4</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="1">
<item row="2" column="1">
<widget class="QCheckBox" name="buttonInput2">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
@ -874,13 +656,325 @@
</sizepolicy>
</property>
<property name="text">
<string/>
<string>button 3</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QComboBox" name="buttonFunction0">
<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="QComboBox" name="buttonFunction1">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QComboBox" name="buttonFunction2">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QComboBox" name="buttonFunction3">
<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="buttonAction3">
<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="buttonAction2">
<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="buttonAction1">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="0" 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="4" 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="5" 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="6" 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="7" 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="4" column="3">
<widget class="QComboBox" name="buttonFunction4">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="5" column="3">
<widget class="QComboBox" name="buttonFunction5">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="6" column="3">
<widget class="QComboBox" name="buttonFunction6">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="7" column="4">
<widget class="QLabel" name="buttonLabel7">
<property name="minimumSize">
<size>
<width>15</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>15</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>by</string>
</property>
</widget>
</item>
<item row="7" column="3">
<widget class="QComboBox" name="buttonFunction7">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="6" column="4">
<widget class="QLabel" name="buttonLabel6">
<property name="minimumSize">
<size>
<width>15</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>15</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>by</string>
</property>
</widget>
</item>
<item row="5" column="4">
<widget class="QLabel" name="buttonLabel5">
<property name="minimumSize">
<size>
<width>15</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>15</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>by</string>
</property>
</widget>
</item>
<item row="4" column="4">
<widget class="QLabel" name="buttonLabel4">
<property name="minimumSize">
<size>
<width>15</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>15</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>by</string>
</property>
</widget>
</item>
<item row="3" column="4">
<widget class="QLabel" name="buttonLabel3">
<property name="minimumSize">
<size>
<width>15</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>15</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>by</string>
</property>
</widget>
</item>
<item row="2" column="4">
<widget class="QLabel" name="buttonLabel2">
<property name="minimumSize">
<size>
<width>15</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>15</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>by</string>
</property>
</widget>
</item>
<item row="1" column="4">
<widget class="QLabel" name="buttonLabel1">
<property name="minimumSize">
<size>
<width>15</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>15</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>by</string>
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="QLabel" name="buttonLabel0">
<property name="minimumSize">
<size>
<width>15</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>15</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>by</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>