diff --git a/companion/src/companion.qrc b/companion/src/companion.qrc
index 6c8d9e4e9..568d6a66d 100644
--- a/companion/src/companion.qrc
+++ b/companion/src/companion.qrc
@@ -136,6 +136,18 @@
images/simulator/X9E/right.png
images/simulator/X9E/right_enter.png
images/simulator/X9E/top.png
+ images/simulator/XLITE/bottom.png
+ images/simulator/XLITE/left.png
+ images/simulator/XLITE/left_scrnshot.png
+ images/simulator/XLITE/right.png
+ images/simulator/XLITE/right_ent.png
+ images/simulator/XLITE/top.png
+ images/simulator/XLITE/right_exit.png
+ images/simulator/XLITE/right_shift.png
+ images/simulator/XLITE/right_right.png
+ images/simulator/XLITE/right_left.png
+ images/simulator/XLITE/right_up.png
+ images/simulator/XLITE/right_down.png
images/wizard/ailerons.png
images/wizard/airbrakes.png
images/wizard/elevons.png
diff --git a/companion/src/simulation/CMakeLists.txt b/companion/src/simulation/CMakeLists.txt
index dcbc819ff..20de5301d 100644
--- a/companion/src/simulation/CMakeLists.txt
+++ b/companion/src/simulation/CMakeLists.txt
@@ -6,6 +6,7 @@ set(simulation_SRCS
simulateduiwidget9X.cpp
simulateduiwidgetX7.cpp
simulateduiwidgetX9.cpp
+ simulateduiwidgetXLITE.cpp
simulateduiwidgetX9E.cpp
simulateduiwidgetX10.cpp
simulateduiwidgetX12.cpp
@@ -25,6 +26,7 @@ set(simulation_UIS
simulateduiwidget9X.ui
simulateduiwidgetX7.ui
simulateduiwidgetX9.ui
+ simulateduiwidgetXLITE.ui
simulateduiwidgetX9E.ui
simulateduiwidgetX10.ui
simulateduiwidgetX12.ui
diff --git a/companion/src/simulation/simulateduiwidget.h b/companion/src/simulation/simulateduiwidget.h
index 11ed5b39b..b02d73535 100644
--- a/companion/src/simulation/simulateduiwidget.h
+++ b/companion/src/simulation/simulateduiwidget.h
@@ -106,6 +106,7 @@ namespace Ui {
class SimulatedUIWidget9X;
class SimulatedUIWidgetX7;
class SimulatedUIWidgetX9;
+ class SimulatedUIWidgetXLITE;
class SimulatedUIWidgetX9E;
class SimulatedUIWidgetX10;
class SimulatedUIWidgetX12;
@@ -151,6 +152,18 @@ class SimulatedUIWidgetX9: public SimulatedUIWidget
Ui::SimulatedUIWidgetX9 * ui;
};
+class SimulatedUIWidgetXLITE: public SimulatedUIWidget
+{
+ Q_OBJECT
+
+ public:
+ explicit SimulatedUIWidgetXLITE(SimulatorInterface * simulator, QWidget * parent = NULL);
+ virtual ~SimulatedUIWidgetXLITE();
+
+ private:
+ Ui::SimulatedUIWidgetXLITE * ui;
+};
+
class SimulatedUIWidgetX9E: public SimulatedUIWidget
{
Q_OBJECT
diff --git a/companion/src/simulation/simulateduiwidgetXLITE.cpp b/companion/src/simulation/simulateduiwidgetXLITE.cpp
new file mode 100644
index 000000000..35d8abf79
--- /dev/null
+++ b/companion/src/simulation/simulateduiwidgetXLITE.cpp
@@ -0,0 +1,90 @@
+#include "simulateduiwidget.h"
+#include "ui_simulateduiwidgetXLITE.h"
+
+SimulatedUIWidgetXLITE::SimulatedUIWidgetXLITE(SimulatorInterface *simulator, QWidget * parent):
+ SimulatedUIWidget(simulator, parent),
+ ui(new Ui::SimulatedUIWidgetXLITE)
+{
+ RadioUiAction * act;
+ QPolygon polygon;
+
+ ui->setupUi(this);
+
+ // add actions in order of appearance on the help menu
+/*
+ act = new RadioUiAction(3, QList() << Qt::Key_PageUp << Qt::Key_Up, SIMU_STR_HLP_KEYS_GO_UP, SIMU_STR_HLP_ACT_PAGE);
+ addRadioWidget(ui->rightbuttons->addArea(QRect(9, 164, 25, 25), "XLITE/right_page.png", act));
+
+ act = new RadioUiAction(0, QList() << Qt::Key_PageDown << Qt::Key_Down, SIMU_STR_HLP_KEYS_GO_DN, SIMU_STR_HLP_ACT_MENU_ICN);
+ addRadioWidget(ui->leftbuttons->addArea(polyArc(ctr.x(), ctr.y(), 20), "XLITE/left_menu.png", act));
+
+ polygon.clear();
+ polygon << polyArc(ctr.x(), ctr.y(), 50, 90, 270) << polyArc(ctr.x(), ctr.y(), 22, 90, 270);
+ act = new RadioUiAction(1, QList() << Qt::Key_Delete << Qt::Key_Escape << Qt::Key_Backspace, SIMU_STR_HLP_KEYS_EXIT, SIMU_STR_HLP_ACT_EXIT);
+ addRadioWidget(ui->leftbuttons->addArea(polygon, "XLITE/left_exit.png", act));
+
+ m_scrollUpAction = new RadioUiAction(-1, QList() << Qt::Key_Minus << Qt::Key_Equal << Qt::Key_Left, SIMU_STR_HLP_KEYS_GO_LFT, SIMU_STR_HLP_ACT_ROT_LFT);
+ m_scrollDnAction = new RadioUiAction(-1, QList() << Qt::Key_Plus << Qt::Key_Right, SIMU_STR_HLP_KEYS_GO_RGT, SIMU_STR_HLP_ACT_ROT_RGT);
+ connectScrollActions();
+*/
+ int x = 49, y = 91, iR = 21, oR = 48;
+ polygon.clear();
+
+ polygon << polyArc(x, y, oR, -45, 45) << polyArc(x, y, iR, -45, 45);
+ act = new RadioUiAction(4, QList() << Qt::Key_Up << Qt::Key_PageUp, SIMU_STR_HLP_KEYS_GO_UP, SIMU_STR_HLP_ACT_UP);
+ addRadioWidget(ui->rightbuttons->addArea(polygon, "XLITE/right_up.png", act));
+
+ polygon.clear();
+ polygon << polyArc(x, y, oR, 135, 225) << polyArc(x, y, iR, 135, 225);
+ act = new RadioUiAction(3, QList() << Qt::Key_Down << Qt::Key_PageDown, SIMU_STR_HLP_KEYS_GO_DN, SIMU_STR_HLP_ACT_DN);
+ addRadioWidget(ui->rightbuttons->addArea(polygon, "XLITE/right_down.png", act));
+
+ polygon.clear();
+ polygon << polyArc(x, y, oR, 45, 135) << polyArc(x, y, iR, 45, 135);
+ act = new RadioUiAction(5, QList() << Qt::Key_Right << Qt::Key_Plus, SIMU_STR_HLP_KEY_RGT % "|" % SIMU_STR_HLP_KEY_PLS, SIMU_STR_HLP_ACT_PLS);
+ addRadioWidget(ui->rightbuttons->addArea(polygon, "XLITE/right_right.png", act));
+
+ polygon.clear();
+ polygon << polyArc(x, y, oR, 225, 315) << polyArc(x, y, iR, 225, 315);
+ act = new RadioUiAction(6, QList() << Qt::Key_Left << Qt::Key_Minus, SIMU_STR_HLP_KEY_LFT % "|" % SIMU_STR_HLP_KEY_MIN, SIMU_STR_HLP_ACT_MIN);
+ addRadioWidget(ui->rightbuttons->addArea(polygon, "XLITE/right_left.png", act));
+
+ m_mouseMidClickAction = new RadioUiAction(2, QList() << Qt::Key_Enter << Qt::Key_Return, SIMU_STR_HLP_KEYS_ACTIVATE, SIMU_STR_HLP_ACT_ENT);
+ addRadioWidget(ui->rightbuttons->addArea(QRect(37, 80, 25, 25), "XLITE/right_ent.png", m_mouseMidClickAction));
+
+ act = new RadioUiAction(1, QList() << Qt::Key_Delete << Qt::Key_Escape << Qt::Key_Backspace, SIMU_STR_HLP_KEYS_EXIT, SIMU_STR_HLP_ACT_EXIT);
+ addRadioWidget(ui->rightbuttons->addArea(QRect(36, 147, 27, 27), "XLITE/right_exit.png", act));
+
+ act = new RadioUiAction(7, QList() << Qt::Key_Shift, SIMU_STR_HLP_KEY_SHIFT, SIMU_STR_HLP_ACT_SHIFT);
+ addRadioWidget(ui->rightbuttons->addArea(QRect(73, 129, 27, 27), "XLITE/right_shift.png", act));
+
+ addRadioWidget(ui->leftbuttons->addArea(QRect(9, 152, 25, 25), "XLITE/left_scrnshot.png", m_screenshotAction));
+
+ m_backlightColors << QColor(215, 243, 255); // XLITE Blue
+ m_backlightColors << QColor(166,247,159);
+ m_backlightColors << QColor(247,159,166);
+ m_backlightColors << QColor(255,195,151);
+ m_backlightColors << QColor(247,242,159);
+
+ setLcd(ui->lcd);
+
+ QString css = "#radioUiWidget {"
+ "background-color: qlineargradient(spread:reflect, x1:0, y1:0, x2:0, y2:1,"
+ "stop:0 rgba(255, 255, 255, 255),"
+ "stop:0.757062 rgba(241, 238, 238, 255),"
+ "stop:1 rgba(247, 245, 245, 255));"
+ "}";
+
+ QTimer * tim = new QTimer(this);
+ tim->setSingleShot(true);
+ connect(tim, &QTimer::timeout, [this, css]() {
+ emit customStyleRequest(css);
+ });
+ tim->start(100);
+}
+
+SimulatedUIWidgetXLITE::~SimulatedUIWidgetXLITE()
+{
+ delete ui;
+}
+
diff --git a/companion/src/simulation/simulateduiwidgetXLITE.ui b/companion/src/simulation/simulateduiwidgetXLITE.ui
new file mode 100644
index 000000000..191626cc6
--- /dev/null
+++ b/companion/src/simulation/simulateduiwidgetXLITE.ui
@@ -0,0 +1,249 @@
+
+
+ SimulatedUIWidgetXLITE
+
+
+
+ 0
+ 0
+ 570
+ 208
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 570
+ 208
+
+
+
+
+ 570
+ 208
+
+
+
+ Taranis X-LITE Simulator
+
+
+ background-color: qlineargradient(spread:reflect, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(255, 255, 255, 255), stop:0.757062 rgba(241, 238, 238, 255), stop:1 rgba(247, 245, 245, 255));
+
+
+
+ 0
+
+
+ 0
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 157
+ 186
+
+
+
+
+ 157
+ 186
+
+
+
+ background:url(:/images/simulator/XLITE/left.png);
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 256
+ 128
+
+
+
+
+ 424
+ 128
+
+
+
+ background-color: rgb(215, 243, 255);
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 157
+ 186
+
+
+
+
+ 157
+ 186
+
+
+
+ background:url(:/images/simulator/XLITE/right.png)
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 256
+ 48
+
+
+
+
+ 256
+ 48
+
+
+
+ background:url(:/images/simulator/XLITE/top.png)
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 256
+ 10
+
+
+
+
+ 256
+ 10
+
+
+
+ background:url(:/images/simulator/XLITE/bottom.png)
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 10
+
+
+
+
+ 16777215
+ 12
+
+
+
+
+ 0
+ 12
+
+
+
+ background-color: rgb(255, 255, 255);
+
+
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 10
+
+
+
+
+ 16777215
+ 10
+
+
+
+ background-color: rgb(247, 245, 245);
+
+
+
+
+
+
+
+
+
+
+ LcdWidget
+ QWidget
+
+ 1
+
+
+ ButtonsWidget
+ QWidget
+
+ 1
+
+
+
+
+
diff --git a/companion/src/simulation/simulator_strings.h b/companion/src/simulation/simulator_strings.h
index 795901048..6e207c6b8 100644
--- a/companion/src/simulation/simulator_strings.h
+++ b/companion/src/simulation/simulator_strings.h
@@ -4,6 +4,7 @@
#include
#define SIMU_STR_HLP_KEY_ENTER QCoreApplication::translate("SimulatedUIWidget", "ENTER")
+#define SIMU_STR_HLP_KEY_SHIFT QCoreApplication::translate("SimulatedUIWidget", "SHIFT")
#define SIMU_STR_HLP_KEY_PGUP QCoreApplication::translate("SimulatedUIWidget", "PG-UP")
#define SIMU_STR_HLP_KEY_PGDN QCoreApplication::translate("SimulatedUIWidget", "PG-DN")
#define SIMU_STR_HLP_KEY_DEL QCoreApplication::translate("SimulatedUIWidget", "DEL")
@@ -39,6 +40,7 @@
#define SIMU_STR_HLP_ACT_PAGE QCoreApplication::translate("SimulatedUIWidget", "[ PAGE ]
")
#define SIMU_STR_HLP_ACT_EXIT QCoreApplication::translate("SimulatedUIWidget", "[ EXIT ]
")
#define SIMU_STR_HLP_ACT_ENT QCoreApplication::translate("SimulatedUIWidget", "[ ENT ]
")
+#define SIMU_STR_HLP_ACT_SHIFT QCoreApplication::translate("SimulatedUIWidget", "[ SHIFT ]
")
#define SIMU_STR_HLP_ACT_UP QCoreApplication::translate("SimulatedUIWidget", "[ UP ]
")
#define SIMU_STR_HLP_ACT_DN QCoreApplication::translate("SimulatedUIWidget", "[ DN ]
")
#define SIMU_STR_HLP_ACT_PLS QCoreApplication::translate("SimulatedUIWidget", "[ + ]
")
diff --git a/companion/src/simulation/simulatorwidget.cpp b/companion/src/simulation/simulatorwidget.cpp
index b329e1305..50b99cb4b 100644
--- a/companion/src/simulation/simulatorwidget.cpp
+++ b/companion/src/simulation/simulatorwidget.cpp
@@ -70,13 +70,15 @@ SimulatorWidget::SimulatorWidget(QWidget * parent, SimulatorInterface * simulato
switch(m_board) {
case Board::BOARD_TARANIS_X7:
- case Board::BOARD_TARANIS_XLITE:
radioUiWidget = new SimulatedUIWidgetX7(simulator, this);
break;
case Board::BOARD_TARANIS_X9D:
case Board::BOARD_TARANIS_X9DP:
radioUiWidget = new SimulatedUIWidgetX9(simulator, this);
break;
+ case Board::BOARD_TARANIS_XLITE:
+ radioUiWidget = new SimulatedUIWidgetXLITE(simulator, this);
+ break;
case Board::BOARD_TARANIS_X9E:
radioUiWidget = new SimulatedUIWidgetX9E(simulator, this);
break;