[Simulator] Dyanamic Simulator virtual hardware generation and many other improvements (#4260)
* Move simulator widgets to subfolder (no code changes).
* [Simulator] Major Simulator re-structuring to reduce code redundancies and allow for fully dynamic simulated hardware setup:
SimulatorDialog is no longer sub-classed by individual radio UIs, instead a new class is added which handles just the "skin," LCD, and navigation controls (also makes setting up new models much quicker);
All radio switches/knobs/sliders are populated dynamically based on loaded hardware configuration data (eeprom/bin), including control types and names (in case of no hardware config data, reasonable "factory defaults" are loaded);
Starting Horus sim with alternate path for RADIO and MODEL data folders is now supported (.otx file is WIP);
6-way switch now works properly and various other inconsistencies addressed (eg. some Horus analogs were backwards).
* Add missing OpenTX headers to new files.
* [Simulator] Fix loading of Horus hardware settings from Companion simulation.
* Update Travis CI build environment to Qt 5.7.
* [Simulator] Fix 9X missing colored side LCD images, an #include fix, and some cleanup.
* [TravisCI] Set up for parallel Travis builds and use Qt5.7 (#4263)
* Fix starting Simulator with non-existing file/folder structure (now properly creates new ones as needed, including Horus directories with default radio/model); Temporarily remove option for using .otx file with Horus (until that feature is added).
* Load correct simulator skin for X7 when launching from Companion.
* X7 hardware defaults changed to match production hardware
* Fix minor compiler warning in mdichild.cpp, and some cleanup in eeprominterface.cpp.
* [Simulator] Centralize radio UI flavor determination.
* [Simulator] Updates:
Add X7 UI flavor;
Centralize LCD settings;
Simplify drawing curved UI widgets;
LCD color can be changed for any 1/4-bit display radio;
Slight change on default LCD "off" color;
Refactor LcdWidget to not use globals.
* [Companion] X7 EEPROM import fix
+ cosmetics
+ compilation error fixed on Manjaro
* [Companion] 9XR-PRO EEPROM import fix
+ cosmetics
+ compilation error fixed on Manjaro
* Navigation fix
French translations
* [X7] Main view cosmetics
* Fix switch/ana custom name import
* [Simulator] Add white border above/below X7 bezel, and use white-colored padding on sides; Adjust X7 default LCD color.
* Does this work? (#4269)
Read an Horus SD card produces a temporary .otx file now
* Bsongis/companion warning before automatic conversions (#4271)
* Does this work?
* Warning before automatic conversions
* Force different file name after conversion (#4272)
* Force different file name after conversion
* More detailed instructions
* [Companion] Files automatically named during XXX => Horus conversions
This commit is contained in:
committed by
Bertrand Songis
parent
b3f4870da7
commit
17a03e6c18
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
* Copyright (C) OpenTX
|
||||
*
|
||||
* Based on code named
|
||||
* th9x - http://code.google.com/p/th9x
|
||||
* er9x - http://code.google.com/p/er9x
|
||||
* gruvin9x - http://code.google.com/p/gruvin9x
|
||||
*
|
||||
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include "simulateduiwidget.h"
|
||||
#include "ui_simulateduiwidgetX9.h"
|
||||
|
||||
SimulatedUIWidgetX9::SimulatedUIWidgetX9(SimulatorInterface *simulator, SimulatorDialog * simuDialog, QWidget * parent):
|
||||
SimulatedUIWidget(simulator, simuDialog, parent),
|
||||
ui(new Ui::SimulatedUIWidgetX9)
|
||||
{
|
||||
RadioUiAction * act;
|
||||
QPolygon polygon;
|
||||
|
||||
ui->setupUi(this);
|
||||
|
||||
//getCurrentFirmware()->getCapability(Capability(RotaryEncoders)); // not working for X9E ?
|
||||
bool rotaryOnly = IS_TARANIS_X9E(m_board);
|
||||
|
||||
// add actions in order of appearance on the help menu
|
||||
|
||||
act = addRadioUiAction(0, QList<int>() << Qt::Key_PageUp, tr("PG-UP"), tr("[ MENU ]"));
|
||||
polygon.setPoints(6, 20, 59, 27, 50, 45, 52, 56, 59, 50, 71, 26, 72);
|
||||
ui->leftbuttons->addArea(polygon, "Taranis/x9l1.png", act);
|
||||
|
||||
act = addRadioUiAction(3, QList<int>() << Qt::Key_PageDown, tr("PG-DN"), tr("[ PAGE ]"));
|
||||
polygon.setPoints(6, 23, 107, 30, 99, 46, 100, 55, 106, 47, 117, 28, 117);
|
||||
ui->leftbuttons->addArea(polygon, "Taranis/x9l2.png", act);
|
||||
|
||||
act = addRadioUiAction(1, QList<int>() << Qt::Key_Delete << Qt::Key_Escape << Qt::Key_Backspace, tr("DEL/BKSP/ESC"), tr("[ EXIT ]"));
|
||||
polygon.setPoints(6, 24, 154, 32, 144, 46, 146, 57, 156, 46, 167, 29, 166);
|
||||
ui->leftbuttons->addArea(polygon, "Taranis/x9l3.png", act);
|
||||
|
||||
if (rotaryOnly) {
|
||||
m_keymapHelp.append(keymapHelp_t(tr("WHEEL/PAD SCRL"), tr("Rotary Selector")));
|
||||
m_scrollUpAction = addRadioUiAction(-1, QList<int>() << Qt::Key_Minus << Qt::Key_Equal << Qt::Key_Up, tr("-/UP"), tr("Rotary UP"));
|
||||
m_scrollDnAction = addRadioUiAction(-1, QList<int>() << Qt::Key_Plus << Qt::Key_Down, tr("+/DN"), tr("Rotary DOWN"));
|
||||
connectScrollActions();
|
||||
}
|
||||
else {
|
||||
m_scrollUpAction = addRadioUiAction(4, QList<int>() << Qt::Key_Plus << Qt::Key_Equal << Qt::Key_Up, tr("+/UP"), tr("[ + ]"));
|
||||
m_scrollDnAction = addRadioUiAction(5, QList<int>() << Qt::Key_Minus << Qt::Key_Down, tr("-/DN"), tr("[ - ]"));
|
||||
}
|
||||
|
||||
polygon.setPoints(6, 64, 60, 71, 50, 90, 50, 100, 60, 90, 73, 72, 73);
|
||||
ui->rightbuttons->addArea(polygon, "Taranis/x9r1.png", m_scrollUpAction);
|
||||
|
||||
polygon.setPoints(6, 63, 109, 73, 100, 88, 100, 98, 109, 88, 119, 72, 119);
|
||||
ui->rightbuttons->addArea(polygon, "Taranis/x9r2.png", m_scrollDnAction);
|
||||
|
||||
act = addRadioUiAction(2, QList<int>() << Qt::Key_Enter << Qt::Key_Return, tr("ENTER/MOUSE-MID"), (rotaryOnly ? tr("Selector Press") : tr("[ ENT ]")));
|
||||
polygon.setPoints(6, 63, 155, 72, 146, 90, 146, 98, 155, 88, 166, 72, 166);
|
||||
ui->rightbuttons->addArea(polygon, "Taranis/x9r3.png", act);
|
||||
|
||||
ui->leftbuttons->addArea(90, 177, 118, 197, "Taranis/x9l4.png", m_screenshotAction);
|
||||
|
||||
if (!rotaryOnly)
|
||||
m_keymapHelp.append(keymapHelp_t(tr("WHEEL/PAD SCRL"), tr("[ + ]/[ - ]")));
|
||||
|
||||
m_backlightColors << QColor(47, 123, 227); // Taranis 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);
|
||||
}
|
||||
|
||||
SimulatedUIWidgetX9::~SimulatedUIWidgetX9()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user