getCapability(FlightPhases); i++) {
@@ -694,7 +694,7 @@ void compareDialog::printExpos()
}
}
str.append("");
- str.append(""+getStickStr(i)+" ");
+ str.append(""+getInputStr(*g_model2, i)+" ");
str.append("");
str.append("");
for (int j=0; jDialog
-
- :/images/print.png :/images/print.png
+
+ :/icon.png :/icon.png
-
@@ -129,7 +129,7 @@
-
+
diff --git a/companion/src/contributorsdialog.cpp b/companion/src/contributorsdialog.cpp
index 02eb30041..54d32f9f7 100644
--- a/companion/src/contributorsdialog.cpp
+++ b/companion/src/contributorsdialog.cpp
@@ -1,7 +1,6 @@
#include "contributorsdialog.h"
#include "ui_contributorsdialog.h"
#include
-#define CLINESEP "=====================================================\n"
contributorsDialog::contributorsDialog(QWidget *parent, int contest, QString rnurl) :
QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint),
@@ -9,44 +8,88 @@ contributorsDialog::contributorsDialog(QWidget *parent, int contest, QString rnu
{
ui->setupUi(this);
switch (contest) {
- case 0: {
- ui->textBrowser->insertPlainText(CLINESEP);
- ui->textBrowser->insertPlainText(tr("People who have contributed to this project")+"\n");
- ui->textBrowser->insertPlainText(CLINESEP);
- QFile file(":/contributors");
- if(file.open( QIODevice::ReadOnly | QIODevice::Text ) ) {
- ui->textBrowser->insertPlainText(file.readAll());
+ case 0:
+ {
+ QFile file(":/DONATIONS.txt");
+ QString str;
+ str.append("");
+ str.append("\n");
+ str.append(""+tr("People who have contributed to this project")+" ");
+ str.append("
");
+ str.append("");
+ if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
+ int columns=6;
+ float cwidth=100.0/columns;
+ while (!file.atEnd()) {
+ str.append("");
+ for (int i=0; i");
+ } else {
+ str.append("class=\"mycss\">");
+ }
+ str.append(line.trimmed()+"");
+ } else {
+ str.append("class=\"mycss\"> ");
+ }
+ }
+ str.append(" ");
+ }
}
- ui->textBrowser->insertPlainText("\n");
- ui->textBrowser->insertPlainText(CLINESEP);
- ui->textBrowser->insertPlainText(tr("Coders")+"\n");
- ui->textBrowser->insertPlainText(CLINESEP);
- QFile file2(":/coders");
+ str.append("
");
+ QFile file2(":/CREDITS.txt");
+ str.append("");
+ str.append(" ");
+ str.append(""+tr("Coders")+" ");
+ str.append("
");
+ str.append("");
if(file2.open( QIODevice::ReadOnly | QIODevice::Text ) ) {
- ui->textBrowser->insertPlainText(file2.readAll());
- }
- ui->textBrowser->insertPlainText("\n\n\n");
- ui->textBrowser->insertPlainText(tr(
-"Honors go to Rafal Tomczak (RadioClone) and Thomas Husterer (th9x) \nof course. Also to Erez Raviv (er9x) and the fantastic eePe program \nwhich was the staring point for OpenTX Companion."));
- ui->textBrowser->insertPlainText("\n\n");
- ui->textBrowser->insertPlainText(tr("Thank you all !!!"));
- ui->textBrowser->setReadOnly(true);
- ui->textBrowser->verticalScrollBar()->setValue(0);
- this->setWindowTitle(tr("Contributors"));
+ while (!file2.atEnd()) {
+ str.append("");
+ for (int i=0; i<3; i++) {
+ str.append("");
+ if (!file2.atEnd()) {
+ QByteArray line = file2.readLine();
+ str.append(line.trimmed());
+ } else {
+ str.append(" ");
+ }
+ str.append(" ");
+ }
+ str.append(" ");
+ }
}
+ str.append(" ");
+ str.append("" + tr("Honors go to Rafal Tomczak (RadioClone), Thomas Husterer (th9x) and Erez Raviv (er9x and eePe)") + " ");
+ str.append("" + tr("Thank you all !!!") + " ");
+ str.append("
");
+ str.append("");
+ ui->textEditor->setHtml(str);
+ ui->textEditor->scroll(0, 0);
+ setWindowTitle(tr("Contributors"));
break;
+ }
- case 1:{
- QFile file(":/releasenotes");
+ case 1:
+ {
+ QFile file(":/releasenotes.txt");
if(file.open( QIODevice::ReadOnly | QIODevice::Text ) ) {
- ui->textBrowser->insertHtml(file.readAll());
- }
- ui->textBrowser->setReadOnly(true);
- ui->textBrowser->verticalScrollBar()->setValue(0);
- this->setWindowTitle(tr("Companion Release Notes"));
+ ui->textEditor->setHtml(file.readAll());
}
+ ui->textEditor->scroll(0,0);
+ setWindowTitle(tr("Companion Release Notes"));
break;
- case 2:{
+ }
+
+ case 2:
+ {
if (!rnurl.isEmpty()) {
this->setWindowTitle(tr("OpenTX Release Notes"));
manager = new QNetworkAccessManager(this);
@@ -55,7 +98,8 @@ contributorsDialog::contributorsDialog(QWidget *parent, int contest, QString rnu
QNetworkRequest request(url);
request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork);
manager->get(request);
- } else {
+ }
+ else {
QTimer::singleShot(0, this, SLOT(forceClose()));
}
break;
@@ -65,7 +109,7 @@ contributorsDialog::contributorsDialog(QWidget *parent, int contest, QString rnu
void contributorsDialog::showEvent ( QShowEvent * )
{
- ui->textBrowser->verticalScrollBar()->setValue(0);
+ ui->textEditor->scroll(0, 0);
}
contributorsDialog::~contributorsDialog()
@@ -75,9 +119,10 @@ contributorsDialog::~contributorsDialog()
void contributorsDialog::replyFinished(QNetworkReply * reply)
{
- ui->textBrowser->insertHtml(reply->readAll());
+ ui->textEditor->setHtml(reply->readAll());
}
-void contributorsDialog::forceClose() {
+void contributorsDialog::forceClose()
+{
accept();;
}
diff --git a/companion/src/contributorsdialog.ui b/companion/src/contributorsdialog.ui
index 1c09ba66d..6ae7866c8 100644
--- a/companion/src/contributorsdialog.ui
+++ b/companion/src/contributorsdialog.ui
@@ -6,25 +6,25 @@
0
0
- 926
- 333
+ 788
+ 528
Dialog
-
+
:/icon.png :/icon.png
-
-
+
-
+
diff --git a/companion/src/customizesplashdialog.cpp b/companion/src/customizesplashdialog.cpp
index 2358e1c7a..30762142f 100644
--- a/companion/src/customizesplashdialog.cpp
+++ b/companion/src/customizesplashdialog.cpp
@@ -8,56 +8,60 @@
#include "flashinterface.h"
customizeSplashDialog::customizeSplashDialog(QWidget *parent) :
-QDialog(parent),
-ui(new Ui::customizeSplashDialog) {
+ QDialog(parent),
+ ui(new Ui::customizeSplashDialog)
+{
ui->setupUi(this);
+ ui->libraryButton->setIcon(CompanionIcon("library.png"));
ui->HowToLabel->clear();
ui->HowToLabel->append("" + tr("Select an original firmware file") + " ");
}
-customizeSplashDialog::~customizeSplashDialog() {
+customizeSplashDialog::~customizeSplashDialog()
+{
delete ui;
}
void customizeSplashDialog::on_FlashLoadButton_clicked()
{
- QString fileName;
- QSettings settings("companion9x", "companion9x");
- ui->ImageLoadButton->setDisabled(true);
- ui->libraryButton->setDisabled(true);
- ui->SaveFlashButton->setDisabled(true);
- ui->SaveImageButton->setDisabled(true);
- ui->ImageFileName->clear();
- ui->imageLabel->clear();
- ui->HowToLabel->clear();
- ui->HowToLabel->setStyleSheet("background:rgb(255, 255, 0)");
- fileName = QFileDialog::getOpenFileName(this, tr("Open"), settings.value("lastFlashDir").toString(), FLASH_FILES_FILTER);
- QFile file(fileName);
- if (!file.exists()) {
- ui->FWFileName->clear();
- ui->HowToLabel->append("" + tr("Select an original firmware file") + " ");
- return;
- }
- if (fileName.isEmpty()) {
- ui->FWFileName->clear();
- ui->HowToLabel->append("" + tr("Select an original firmware file") + " ");
- return;
- }
+ QSettings settings;
+ QString fileName = QFileDialog::getOpenFileName(this, tr("Open"), settings.value("lastFlashDir").toString(), FLASH_FILES_FILTER);
+ if (!fileName.isEmpty()) {
+ ui->ImageLoadButton->setDisabled(true);
+ ui->libraryButton->setDisabled(true);
+ ui->SaveFlashButton->setDisabled(true);
+ ui->SaveImageButton->setDisabled(true);
+ ui->ImageFileName->clear();
+ ui->imageLabel->clear();
+ ui->HowToLabel->clear();
+ ui->HowToLabel->setStyleSheet("background:rgb(255, 255, 0)");
+ QFile file(fileName);
+ if (!file.exists()) {
+ ui->FWFileName->clear();
+ ui->HowToLabel->append("" + tr("Select an original firmware file") + " ");
+ return;
+ }
+ if (fileName.isEmpty()) {
+ ui->FWFileName->clear();
+ ui->HowToLabel->append("" + tr("Select an original firmware file") + " ");
+ return;
+ }
- ui->FWFileName->setText(fileName);
- FlashInterface flash(fileName);
- if (flash.hasSplash()) {
- ui->HowToLabel->append("" + tr("Select an image to customize your splash or save actual firmware splash") + " ");
- ui->ImageLoadButton->setEnabled(true);
- ui->libraryButton->setEnabled(true);
- ui->SaveImageButton->setEnabled(true);
- ui->imageLabel->setPixmap(QPixmap::fromImage(flash.getSplash()));
- ui->imageLabel->setFixedSize(flash.getSplashWidth()*2,flash.getSplashHeight()*2);
- } else {
- QMessageBox::information(this, tr("Error"), tr("Could not find bitmap to replace in file"));
- return;
+ ui->FWFileName->setText(fileName);
+ FlashInterface flash(fileName);
+ if (flash.hasSplash()) {
+ ui->HowToLabel->append("" + tr("Select an image to customize your splash or save actual firmware splash") + " ");
+ ui->ImageLoadButton->setEnabled(true);
+ ui->libraryButton->setEnabled(true);
+ ui->SaveImageButton->setEnabled(true);
+ ui->imageLabel->setPixmap(QPixmap::fromImage(flash.getSplash()));
+ ui->imageLabel->setFixedSize(flash.getSplashWidth()*2,flash.getSplashHeight()*2);
+ } else {
+ QMessageBox::information(this, tr("Error"), tr("Could not find bitmap to replace in file"));
+ return;
+ }
+ settings.setValue("lastFlashDir", QFileInfo(fileName).dir().absolutePath());
}
- settings.setValue("lastFlashDir", QFileInfo(fileName).dir().absolutePath());
}
void customizeSplashDialog::on_ImageLoadButton_clicked() {
@@ -66,7 +70,7 @@ void customizeSplashDialog::on_ImageLoadButton_clicked() {
supportedImageFormats += QLatin1String(" *.") + QImageReader::supportedImageFormats()[formatIndex];
}
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString fileName = QFileDialog::getOpenFileName(this,
tr("Open Image to load"), settings.value("lastImagesDir").toString(), tr("Images (%1)").arg(supportedImageFormats));
@@ -143,7 +147,7 @@ void customizeSplashDialog::on_libraryButton_clicked() {
void customizeSplashDialog::on_SaveFlashButton_clicked()
{
QString fileName;
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
ui->HowToLabel->clear();
fileName = QFileDialog::getSaveFileName(this, tr("Write to file"), settings.value("lastFlashDir").toString(), FLASH_FILES_FILTER, 0, QFileDialog::DontConfirmOverwrite);
if (fileName.isEmpty()) {
@@ -176,7 +180,7 @@ void customizeSplashDialog::on_InvertColorButton_clicked()
void customizeSplashDialog::on_SaveImageButton_clicked()
{
QString fileName;
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
fileName = QFileDialog::getSaveFileName(this, tr("Write to file"), settings.value("lastImagesDir").toString(), tr("PNG images (*.png);;"), 0, QFileDialog::DontConfirmOverwrite);
if (!fileName.isEmpty()) {
diff --git a/companion/src/customizesplashdialog.ui b/companion/src/customizesplashdialog.ui
index 69762f1ba..15a803656 100644
--- a/companion/src/customizesplashdialog.ui
+++ b/companion/src/customizesplashdialog.ui
@@ -20,8 +20,8 @@
Customize Splash
-
- :/images/c_home.png :/images/c_home.png
+
+ :/icon.png :/icon.png
-
@@ -71,7 +71,7 @@
- :/images/customize.png
+ :/images/customize.png
true
@@ -211,10 +211,6 @@ p, li { white-space: pre-wrap; }
...
-
-
- :/images/library.png :/images/library.png
-
16
@@ -264,7 +260,7 @@ p, li { white-space: pre-wrap; }
-
+
diff --git a/companion/src/downloaddialog.ui b/companion/src/downloaddialog.ui
index 9f5681542..dcd05c405 100644
--- a/companion/src/downloaddialog.ui
+++ b/companion/src/downloaddialog.ui
@@ -14,7 +14,7 @@
Downloading:
-
+
:/icon.png :/icon.png
@@ -51,7 +51,7 @@
-
+
diff --git a/companion/src/eeprominterface.cpp b/companion/src/eeprominterface.cpp
index 998e8d9bf..34bc92ac8 100644
--- a/companion/src/eeprominterface.cpp
+++ b/companion/src/eeprominterface.cpp
@@ -287,7 +287,12 @@ QString RawSource::toString()
if (index<0) {
return QObject::tr("----");
}
- switch(type) {
+ switch (type) {
+ case SOURCE_TYPE_VIRTUAL_INPUT:
+ if (model && strlen(model->inputNames[index]) > 0)
+ return QString(model->inputNames[index]);
+ else
+ return QObject::tr("Virtual Input %1").arg(index+1);
case SOURCE_TYPE_STICK:
return AnalogString(index);
case SOURCE_TYPE_TRIM:
@@ -438,7 +443,7 @@ GeneralSettings::GeneralSettings()
calibSpanNeg[i] = 0x180;
calibSpanPos[i] = 0x180;
}
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
templateSetup = settings.value("default_channel_order", 0).toInt();
stickMode = settings.value("default_mode", 1).toInt();
int profile_id = settings.value("ActiveProfile", 0).toInt();
@@ -659,7 +664,7 @@ ModelData ModelData::removeGlobalVars()
QList eepromInterfaces;
void RegisterEepromInterfaces()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
int rev4a = settings.value("rev4asupport",0).toInt();
eepromInterfaces.push_back(new Open9xInterface(BOARD_STOCK));
eepromInterfaces.push_back(new Open9xInterface(BOARD_M128));
@@ -697,7 +702,7 @@ void RegisterFirmwares()
#ifndef __APPLE__
firmwares.push_back(new FirmwareInfo("ersky9x", QObject::tr("ersky9x"), new Ersky9xInterface(), "http://ersky9x.googlecode.com/svn/trunk/ersky9x_rom.bin", ERSKY9X_STAMP));
#endif
- default_firmware_variant = GetFirmwareVariant("opentx-stock-heli-templates-en");
+ default_firmware_variant = GetFirmwareVariant("opentx-9x-heli-templates-en");
RegisterEepromInterfaces();
}
diff --git a/companion/src/eeprominterface.h b/companion/src/eeprominterface.h
index 222bdf6f1..eab2588d3 100644
--- a/companion/src/eeprominterface.h
+++ b/companion/src/eeprominterface.h
@@ -66,6 +66,7 @@ const uint8_t modn12x3[4][4]= {
#define C9X_MAX_MODELS 60
#define C9X_MAX_PHASES 9
#define C9X_MAX_MIXERS 64
+#define C9X_MAX_INPUTS 32
#define C9X_MAX_EXPOS 64
#define C9X_MAX_CURVES 32
#define C9X_MAX_POINTS 17
@@ -286,19 +287,22 @@ class RawSource {
public:
RawSource():
type(SOURCE_TYPE_NONE),
- index(0)
+ index(0),
+ model(NULL)
{
}
- RawSource(int value):
+ RawSource(int value, const ModelData * model=NULL):
type(RawSourceType(abs(value)/65536)),
- index(value >= 0 ? abs(value)%65536 : -(abs(value)%65536))
+ index(value >= 0 ? abs(value)%65536 : -(abs(value)%65536)),
+ model(model)
{
}
- RawSource(RawSourceType type, int index=0):
+ RawSource(RawSourceType type, int index=0, const ModelData * model=NULL):
type(type),
- index(index)
+ index(index),
+ model(model)
{
}
@@ -322,6 +326,7 @@ class RawSource {
RawSourceType type;
int index;
+ const ModelData * model;
};
enum RawSwitchType {
@@ -553,7 +558,7 @@ class LimitData {
bool symetrical;
char name[6+1];
CurveReference curve;
- void clear() { memset(this, 0, sizeof(LimitData)); min = -100; max = +100; }
+ void clear() { memset(this, 0, sizeof(LimitData)); min = -1000; max = +1000; }
};
enum MltpxValue {
@@ -642,7 +647,7 @@ class FuncSwData { // Function Switches data
char paramarm[10];
unsigned int enabled; // TODO perhaps not any more the right name
unsigned int adjustMode;
- unsigned int repeatParam;
+ int repeatParam;
void clear() { memset(this, 0, sizeof(FuncSwData)); }
};
@@ -787,14 +792,13 @@ enum TimerMode {
class TimerData {
public:
TimerData() { clear(); }
- TimerMode mode; // timer trigger source -> off, abs, THs, TH%, THt, sw/!sw, !m_sw/!m_sw
- int8_t modeB;
- bool minuteBeep;
- bool countdownBeep;
- bool dir; // 0=>Count Down, 1=>Count Up
+ TimerMode mode; // timer trigger source -> off, abs, THs, TH%, THt, sw/!sw, !m_sw/!m_sw
+ bool minuteBeep;
+ unsigned int countdownBeep;
+ bool dir; // 0=>Count Down, 1=>Count Up
unsigned int val;
- bool persistent;
- int pvalue;
+ bool persistent;
+ int pvalue;
void clear() { memset(this, 0, sizeof(TimerData)); }
};
@@ -851,7 +855,10 @@ class ModelData {
PhaseData phaseData[C9X_MAX_PHASES];
MixData mixData[C9X_MAX_MIXERS];
LimitData limitData[C9X_NUM_CHNOUT];
+
+ char inputNames[C9X_MAX_INPUTS][4+1];
ExpoData expoData[C9X_MAX_EXPOS];
+
CurveData curves[C9X_MAX_CURVES];
CustomSwData customSw[C9X_NUM_CSW];
FuncSwData funcSw[C9X_MAX_CUSTOM_FUNCTIONS];
@@ -911,8 +918,6 @@ enum Capability {
MixesWithoutExpo,
Timers,
TimeDivisions,
- minuteBeep,
- countdownBeep,
CustomFunctions,
VoicesAsNumbers,
VoicesMaxLength,
@@ -931,7 +936,6 @@ enum Capability {
ChannelsName,
ExtraChannels,
ExtraInputs,
- ExtraTrims,
ExtendedTrims,
HasInputFilter,
NumCurves,
@@ -997,7 +1001,6 @@ enum Capability {
HasStickScroll,
HasSoundMixer,
NumModules,
- FSSwitch,
PPMCenter,
SYMLimits,
HasCurrentCalibration,
diff --git a/companion/src/firmwares/er9x/er9xeeprom.cpp b/companion/src/firmwares/er9x/er9xeeprom.cpp
index f07716e72..4fa122677 100644
--- a/companion/src/firmwares/er9x/er9xeeprom.cpp
+++ b/companion/src/firmwares/er9x/er9xeeprom.cpp
@@ -366,9 +366,7 @@ t_Er9xModelData::operator ModelData ()
c9x.timers[0].mode = getEr9xTimerMode(tmrMode);
c9x.timers[0].dir = tmrDir;
c9x.timers[0].val = tmrVal;
- c9x.timers[0].modeB = tmrModeB;
-
- switch(protocol) {
+ switch(protocol) {
case 1:
c9x.moduleData[0].protocol = PXX_DJT;
break;
diff --git a/companion/src/firmwares/er9x/er9xinterface.cpp b/companion/src/firmwares/er9x/er9xinterface.cpp
index f2eed4608..72b5acab9 100644
--- a/companion/src/firmwares/er9x/er9xinterface.cpp
+++ b/companion/src/firmwares/er9x/er9xinterface.cpp
@@ -44,7 +44,7 @@ const char * Er9xInterface::getName()
const int Er9xInterface::getEEpromSize()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString avrMCU = settings.value("mcu", QString("m64")).toString();
if (avrMCU==QString("m128")) {
return 2*EESIZE_STOCK;
diff --git a/companion/src/firmwares/ersky9x/ersky9xeeprom.cpp b/companion/src/firmwares/ersky9x/ersky9xeeprom.cpp
index 1247c795a..994a75d7d 100644
--- a/companion/src/firmwares/ersky9x/ersky9xeeprom.cpp
+++ b/companion/src/firmwares/ersky9x/ersky9xeeprom.cpp
@@ -508,7 +508,6 @@ t_Ersky9xModelData_v10::operator ModelData ()
getEEPROMString(c9x.name, name, sizeof(name));
for (int i=0; i<2; i++) {
c9x.timers[i].mode = getErSky9xTimerMode(timer[i].tmrModeA);
- c9x.timers[i].modeB = timer[i].tmrModeB;
c9x.timers[i].dir = timer[i].tmrDir;
c9x.timers[i].val = timer[i].tmrVal;
}
@@ -630,7 +629,6 @@ t_Ersky9xModelData_v11::operator ModelData ()
getEEPROMString(c9x.name, name, sizeof(name));
for (int i=0; i<2; i++) {
c9x.timers[i].mode = getErSky9xTimerMode(timer[i].tmrModeA);
- c9x.timers[i].modeB = timer[i].tmrModeB;
c9x.timers[i].dir = timer[i].tmrDir;
c9x.timers[i].val = timer[i].tmrVal;
}
diff --git a/companion/src/firmwares/gruvin9x/gruvin9xinterface.cpp b/companion/src/firmwares/gruvin9x/gruvin9xinterface.cpp
index cdb6d4124..3e60d61be 100644
--- a/companion/src/firmwares/gruvin9x/gruvin9xinterface.cpp
+++ b/companion/src/firmwares/gruvin9x/gruvin9xinterface.cpp
@@ -47,7 +47,7 @@ const char * Gruvin9xInterface::getName()
const int Gruvin9xInterface::getEEpromSize()
{
if (board == BOARD_STOCK) {
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString avrMCU = settings.value("mcu", QString("m64")).toString();
if (avrMCU==QString("m128")) {
return EESIZE_STOCK*2;
diff --git a/companion/src/firmwares/opentx/open9xStockeeprom.cpp b/companion/src/firmwares/opentx/open9xStockeeprom.cpp
index 0fc602e04..8529f78f8 100644
--- a/companion/src/firmwares/opentx/open9xStockeeprom.cpp
+++ b/companion/src/firmwares/opentx/open9xStockeeprom.cpp
@@ -593,7 +593,7 @@ enum Functions {
#endif
FUNC_BACKLIGHT,
#if defined(DEBUG)
- FUNC_TEST, // should remain the last before MAX as not added in companion9x
+ FUNC_TEST, // should remain the last before MAX as not added in companion
#endif
FUNC_MAX
};
diff --git a/companion/src/firmwares/opentx/opentxSky9xsimulator.cpp b/companion/src/firmwares/opentx/opentxSky9xsimulator.cpp
index 9f444c808..b9f5f294e 100644
--- a/companion/src/firmwares/opentx/opentxSky9xsimulator.cpp
+++ b/companion/src/firmwares/opentx/opentxSky9xsimulator.cpp
@@ -135,7 +135,7 @@ using namespace Open9xSky9x;
Open9xSky9xSimulator::Open9xSky9xSimulator(Open9xInterface * open9xInterface):
open9xInterface(open9xInterface)
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString path=settings.value("sdPath", ".").toString()+"/";
int i=0;
for (i=0; i< std::min(path.length(),1022); i++) {
diff --git a/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp b/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp
index ae4424797..47b8fb04a 100644
--- a/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp
+++ b/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp
@@ -35,6 +35,8 @@
#define AUDIO
#define VOICE
#define PXX
+#define DSM2
+#define DSM2_PPM
#define DBLKEYS
#define AUTOSWITCH
#define GRAPHICS
@@ -47,6 +49,7 @@
#define PPM_CENTER_ADJUSTABLE
#define PPM_LIMITS_SYMETRICAL
#define FAI_CHOICE
+
#define EEPROM_VARIANT 3
#undef min
@@ -65,6 +68,7 @@ inline int geteepromsize() {
#include "radio/src/targets/taranis/board_taranis.cpp"
#include "radio/src/protocols/ppm_arm.cpp"
#include "radio/src/protocols/pxx_arm.cpp"
+#include "radio/src/protocols/dsm2_arm.cpp"
#include "radio/src/targets/taranis/pwr_driver.cpp"
#include "radio/src/eeprom_common.cpp"
#include "radio/src/eeprom_conversions.cpp"
@@ -145,7 +149,7 @@ OpentxTaranisSimulator::OpentxTaranisSimulator(Open9xInterface * open9xInterface
open9xInterface(open9xInterface)
{
taranisSimulatorBoard = GetEepromInterface()->getBoard();
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString path=settings.value("sdPath", ".").toString()+"/";
int i=0;
for (i=0; i< std::min(path.length(),1022); i++) {
diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp
index c72b0a4b5..005ebe684 100644
--- a/companion/src/firmwares/opentx/opentxeeprom.cpp
+++ b/companion/src/firmwares/opentx/opentxeeprom.cpp
@@ -1338,10 +1338,10 @@ class CustomFunctionField: public TransformedField {
internalField.Append(new CharField<6>(_arm_param));
if (version >= 214) {
internalField.Append(new UnsignedField<2>(_mode));
- internalField.Append(new UnsignedField<6>(_delay));
+ internalField.Append(new SignedField<6>(_delay));
}
else {
- internalField.Append(new UnsignedField<8>(_delay));
+ internalField.Append(new UnsignedField<8>((unsigned int &)_delay));
}
if (version < 214)
internalField.Append(new SpareBitsField<8>());
@@ -1364,7 +1364,7 @@ class CustomFunctionField: public TransformedField {
if (IS_ARM(board)) {
_mode = 0;
if (fn.func == FuncPlaySound || fn.func == FuncPlayPrompt || fn.func == FuncPlayValue)
- _delay = fn.repeatParam / 5;
+ _delay = (version >= 216 ? fn.repeatParam : (fn.repeatParam/5));
else
_delay = (fn.enabled ? 1 : 0);
if (fn.func <= FuncInstantTrim) {
@@ -1439,7 +1439,7 @@ class CustomFunctionField: public TransformedField {
{
if (IS_ARM(board)) {
if (fn.func == FuncPlaySound || fn.func == FuncPlayPrompt || fn.func == FuncPlayValue)
- fn.repeatParam = _delay * 5;
+ fn.repeatParam = (version >= 216 ? _delay : (_delay*5));
else
fn.enabled = (_delay & 0x01);
@@ -1529,7 +1529,7 @@ class CustomFunctionField: public TransformedField {
SourcesConversionTable * sourcesConversionTable;
char _arm_param[10];
unsigned int _param;
- unsigned int _delay;
+ int _delay;
unsigned int _mode;
unsigned int _union_param;
};
@@ -1810,7 +1810,7 @@ Open9xModelDataNew::Open9xModelDataNew(ModelData & modelData, BoardEnum board, u
internalField.Append(new TimerModeField(modelData.timers[i].mode, board, version));
if ((IS_ARM(board) || IS_2560(board)) && version >= 216) {
internalField.Append(new UnsignedField<16>(modelData.timers[i].val));
- internalField.Append(new BoolField<2>(modelData.timers[i].countdownBeep));
+ internalField.Append(new UnsignedField<2>(modelData.timers[i].countdownBeep));
internalField.Append(new BoolField<1>(modelData.timers[i].minuteBeep));
internalField.Append(new BoolField<1>(modelData.timers[i].persistent));
internalField.Append(new SpareBitsField<4>());
@@ -1818,7 +1818,7 @@ Open9xModelDataNew::Open9xModelDataNew(ModelData & modelData, BoardEnum board, u
}
else if (release21March2013) {
internalField.Append(new UnsignedField<12>(modelData.timers[i].val));
- internalField.Append(new BoolField<1>(modelData.timers[i].countdownBeep));
+ internalField.Append(new BoolField<1>((bool &)modelData.timers[i].countdownBeep));
internalField.Append(new BoolField<1>(modelData.timers[i].minuteBeep));
if (HAS_PERSISTENT_TIMERS(board)) {
internalField.Append(new BoolField<1>(modelData.timers[i].persistent));
@@ -1960,8 +1960,8 @@ Open9xModelDataNew::Open9xModelDataNew(ModelData & modelData, BoardEnum board, u
if (IS_TARANIS(board) && version >= 216) {
// TODO ScriptData scriptsData[MAX_SCRIPTS];
internalField.Append(new SpareBitsField<720>());
- // TODO char inputNames[MAX_INPUTS][4];
- internalField.Append(new SpareBitsField<1024>());
+ for (int i=0; i<32; i++)
+ internalField.Append(new ZCharField<4>(modelData.inputNames[i]));
}
}
@@ -1972,8 +1972,10 @@ void Open9xModelDataNew::beforeExport()
for (int module=0; module<3; module++) {
if (modelData.moduleData[module].protocol >= PXX_XJT_X16 && modelData.moduleData[module].protocol <= PXX_XJT_LR12)
subprotocols[module] = modelData.moduleData[module].protocol - PXX_XJT_X16;
+ else if (modelData.moduleData[module].protocol >= LP45 && modelData.moduleData[module].protocol <= DSMX)
+ subprotocols[module] = modelData.moduleData[module].protocol - LP45;
else
- subprotocols[module] = (module==0 ? -1:0);
+ subprotocols[module] = (module==0 ? -1 : 0);
}
}
@@ -1982,9 +1984,9 @@ void Open9xModelDataNew::afterImport()
// qDebug() << QString("after import model") << modelData.name ;
for (int module=0; module<3; module++) {
- if (modelData.moduleData[module].protocol == PXX_XJT_X16) {
- if (subprotocols[module]>=0)
- modelData.moduleData[module].protocol = PXX_XJT_X16 + subprotocols[module];
+ if (modelData.moduleData[module].protocol == PXX_XJT_X16 || modelData.moduleData[module].protocol == LP45) {
+ if (subprotocols[module] >= 0)
+ modelData.moduleData[module].protocol += subprotocols[module];
else
modelData.moduleData[module].protocol = OFF;
}
diff --git a/companion/src/firmwares/opentx/opentxeeprom.h b/companion/src/firmwares/opentx/opentxeeprom.h
index 363c46677..67d051663 100644
--- a/companion/src/firmwares/opentx/opentxeeprom.h
+++ b/companion/src/firmwares/opentx/opentxeeprom.h
@@ -74,8 +74,9 @@ class ProtocolsConversionTable: public ConversionTable
ProtocolsConversionTable(BoardEnum board)
{
int val = 0;
- if (IS_TARANIS(board))
+ if (IS_TARANIS(board)) {
addConversion(OFF, val++);
+ }
addConversion(PPM, val++);
if (!IS_ARM(board)) {
addConversion(PPM16, val++);
@@ -86,9 +87,13 @@ class ProtocolsConversionTable: public ConversionTable
addConversion(PXX_XJT_D8, val);
addConversion(PXX_XJT_LR12, val++);
}
- addConversion(PXX_DJT, val++);
+ else {
+ addConversion(PXX_DJT, val++);
+ }
if (IS_TARANIS(board)) {
- addConversion(DSM2, val++);
+ addConversion(LP45, val);
+ addConversion(DSM2, val);
+ addConversion(DSMX, val++);
}
else {
addConversion(LP45, val++);
@@ -126,7 +131,7 @@ class Open9xModelDataNew: public TransformedField {
private:
char name[256];
- signed int subprotocols[C9X_NUM_MODULES+1/*trainer*/];
+ int subprotocols[C9X_NUM_MODULES+1/*trainer*/];
ProtocolsConversionTable protocolsConversionTable;
ChannelsConversionTable channelsConversionTable;
};
diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp
index c24a1e471..392a062b4 100644
--- a/companion/src/firmwares/opentx/opentxinterface.cpp
+++ b/companion/src/firmwares/opentx/opentxinterface.cpp
@@ -42,14 +42,10 @@ size_t SizeOfArray( T(&)[ N ] )
return N;
}
-QStringList o9xservers;
-
Open9xInterface::Open9xInterface(BoardEnum board):
EEPROMInterface(board),
efile(new EFile())
{
- o9xservers.clear();
- o9xservers << "93.51.182.154" << "open9x.9xforums.com";
}
Open9xInterface::~Open9xInterface()
@@ -309,7 +305,7 @@ bool Open9xInterface::load(RadioData &radioData, uint8_t *eeprom, int size)
std::cout << " wrong size (" << size << ")\n";
return false;
} else {
- QMessageBox::warning(NULL,"companion9x", QObject::tr("Your radio probably uses a wrong firmware,\n eeprom size is 4096 but only the first 2048 are used"));
+ QMessageBox::warning(NULL, "companion", QObject::tr("Your radio probably uses a wrong firmware,\n eeprom size is 4096 but only the first 2048 are used"));
size=2048;
}
} else {
@@ -517,10 +513,6 @@ int Open9xInterface::getCapability(const Capability capability)
return 1;
else
return 0;
- case minuteBeep:
- return 1;
- case countdownBeep:
- return 1;
case Pots:
return (IS_TARANIS(board) ? 4 : 3);
case Switches:
@@ -598,14 +590,10 @@ int Open9xInterface::getCapability(const Capability capability)
return 1;
case ExtendedTrims:
return 500;
- case ExtraTrims:
- return 1;
case Simulation:
return 1;
case DSM2Indexes:
return 1;
- case FSSwitch:
- return 1;
case MixesWithoutExpo:
return 1;
case NumCurves:
@@ -696,6 +684,7 @@ int Open9xInterface::getCapability(const Capability capability)
case GetThrSwitch:
return (IS_TARANIS(board) ? DSW_SF1 : DSW_THR) ;
case VirtualInputs:
+ return IS_TARANIS(board) ? 32 : 0;
case LuaInputs:
case LimitsPer1000:
case EnhancedCurves:
@@ -951,14 +940,9 @@ bool Open9xInterface::loadBackup(RadioData &radioData, uint8_t *eeprom, int esiz
QString geturl( int board)
{
- QString url="http://";
- QSettings settings("companion9x", "companion9x");
- int server = settings.value("fwserver", 0).toInt();
- if (server >= o9xservers.count()) {
- server = 0;
- settings.setValue("fwserver",server);
- }
- url.append(o9xservers.at(server));
+ QSettings settings;
+ QString url = settings.value("compilation-server", OPENTX_FIRMWARE_DOWNLOADS).toString();
+
switch(board) {
case BOARD_STOCK:
case BOARD_M128:
@@ -979,27 +963,21 @@ QString geturl( int board)
QString getstamp( int board)
{
- QString url="http://";
- QSettings settings("companion9x", "companion9x");
- int server = settings.value("fwserver",0).toInt();
- if (server >=o9xservers.count()) {
- server=0;
- settings.setValue("fwserver",server);
- }
- url.append(o9xservers.at(server));
- url.append("/binaries/stamp-opentx-");
+ QSettings settings;
+ QString url = settings.value("compilation-server", OPENTX_FIRMWARE_DOWNLOADS).toString();
+ url.append("/stamp-opentx-");
switch(board) {
case BOARD_STOCK:
- url.append("stock.txt");
+ url.append("9x.txt");
break;
case BOARD_M128:
- url.append("stock128.txt");
+ url.append("9x128.txt");
break;
case BOARD_GRUVIN9X:
- url.append("v4.txt");
+ url.append("gruvin9x.txt");
break;
case BOARD_SKY9X:
- url.append("arm.txt");
+ url.append("sky9x.txt");
break;
case BOARD_TARANIS:
case BOARD_TARANIS_REV4a:
@@ -1014,16 +992,10 @@ QString getstamp( int board)
QString getrnurl( int board)
{
- QString url="http://";
- QSettings settings("companion9x", "companion9x");
- int server = settings.value("fwserver",0).toInt();
- if (server >=o9xservers.count()) {
- server=0;
- settings.setValue("fwserver",server);
- }
- url.append(o9xservers.at(server));
- url.append("/docs/releasenotes-");
- switch(board) {
+ QSettings settings;
+ QString url = settings.value("compilation-server", OPENTX_FIRMWARE_DOWNLOADS).toString();
+ url.append("/releasenotes-");
+ switch(board) {
case BOARD_STOCK:
case BOARD_M128:
case BOARD_GRUVIN9X:
@@ -1050,7 +1022,7 @@ void RegisterOpen9xFirmwares()
Option extr_options[] = { { "frsky", QObject::tr("Support for frsky telemetry mod"), FRSKY_VARIANT }, { "jeti", QObject::tr("Support for jeti telemetry mod"), 0 }, { "ardupilot", QObject::tr("Support for receiving ardupilot data"), 0 }, { "nmea", QObject::tr("Support for receiving NMEA data"), 0 }, { "mavlink", QObject::tr("Support for MAVLINK devices"), MAVLINK_VARIANT }, { NULL } };
Option fai_options[] = { { "faichoice", QObject::tr("Possibility to enable FAI MODE at field") }, { "faimode", QObject::tr("FAI MODE always enabled") }, { NULL } };
/* 9x board */
- open9x = new Open9xFirmware("opentx-stock", QObject::tr("openTx for 9X board"), new Open9xInterface(BOARD_STOCK), geturl(BOARD_STOCK), getstamp(BOARD_STOCK), getrnurl(BOARD_STOCK), false);
+ open9x = new Open9xFirmware("opentx-9x", QObject::tr("openTx for 9X board"), new Open9xInterface(BOARD_STOCK), geturl(BOARD_STOCK), getstamp(BOARD_STOCK), getrnurl(BOARD_STOCK), false);
open9x->addOptions(ext_options);
open9x->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support"));
open9x->addOption("templates", QObject::tr("Enable TEMPLATES menu"));
@@ -1087,7 +1059,7 @@ void RegisterOpen9xFirmwares()
firmwares.push_back(open9x);
/* 9x board with M128 chip */
- open9x = new Open9xFirmware("opentx-stock128", QObject::tr("openTx for M128 / 9X board"), new Open9xInterface(BOARD_M128), geturl(BOARD_M128), getstamp(BOARD_M128),getrnurl(BOARD_M128), false);
+ open9x = new Open9xFirmware("opentx-9x128", QObject::tr("openTx for M128 / 9X board"), new Open9xInterface(BOARD_M128), geturl(BOARD_M128), getstamp(BOARD_M128),getrnurl(BOARD_M128), false);
open9x->addOptions(ext_options);
open9x->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support"));
open9x->addOption("templates", QObject::tr("Enable TEMPLATES menu"));
@@ -1183,7 +1155,7 @@ void RegisterOpen9xFirmwares()
firmwares.push_back(open9x);
/* Gruvin9x board */
- open9x = new Open9xFirmware("opentx-v4", QObject::tr("openTx for Gruvin9x board / 9X"), new Open9xInterface(BOARD_GRUVIN9X), geturl(BOARD_GRUVIN9X), getstamp(BOARD_GRUVIN9X),getrnurl(BOARD_GRUVIN9X), false);
+ open9x = new Open9xFirmware("opentx-gruvin9x", QObject::tr("openTx for Gruvin9x board / 9X"), new Open9xInterface(BOARD_GRUVIN9X), geturl(BOARD_GRUVIN9X), getstamp(BOARD_GRUVIN9X),getrnurl(BOARD_GRUVIN9X), false);
open9x->setVariantBase(FRSKY_VARIANT);
open9x->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support"));
open9x->addOption("templates", QObject::tr("Enable TEMPLATES menu"));
@@ -1247,7 +1219,7 @@ void RegisterOpen9xFirmwares()
open9x->addOptions(fai_options);
firmwares.push_back(open9x);
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
int rev4a = settings.value("rev4asupport",0).toInt();
if (rev4a) {
open9x = new Open9xFirmware("opentx-taranisrev4a", QObject::tr("openTx for FrSky Taranis Rev4a"), new Open9xInterface(BOARD_TARANIS_REV4a), geturl(BOARD_TARANIS_REV4a), getstamp(BOARD_TARANIS_REV4a),getrnurl(BOARD_TARANIS), true);
diff --git a/companion/src/firmwares/opentx/opentxinterface.h b/companion/src/firmwares/opentx/opentxinterface.h
index 82e8c7671..fb7f3df5c 100644
--- a/companion/src/firmwares/opentx/opentxinterface.h
+++ b/companion/src/firmwares/opentx/opentxinterface.h
@@ -18,6 +18,9 @@
#include "eeprominterface.h"
+#define OPENTX_COMPANION_DOWNLOADS "http://downloads.open-tx.org/companion"
+#define OPENTX_FIRMWARE_DOWNLOADS "http://downloads.open-tx.org/firmware"
+
class EFile;
class Open9xInterface : public EEPROMInterface
@@ -91,6 +94,7 @@ class Open9xFirmware: public FirmwareInfo {
addLanguage("se");
addLanguage("cz");
addLanguage("es");
+ addLanguage("pl");
addLanguage("pt");
addTTSLanguage("en");
@@ -100,6 +104,7 @@ class Open9xFirmware: public FirmwareInfo {
addTTSLanguage("se");
addTTSLanguage("cz");
addTTSLanguage("sk");
+ addTTSLanguage("pl");
addTTSLanguage("pt");
addTTSLanguage("es");
}
diff --git a/companion/src/firmwares/opentx/stamp-opentx.h.in b/companion/src/firmwares/opentx/stamp-opentx.h.in
index ad88df035..1b56589f5 100644
--- a/companion/src/firmwares/opentx/stamp-opentx.h.in
+++ b/companion/src/firmwares/opentx/stamp-opentx.h.in
@@ -1,6 +1,5 @@
// Automatically generated file (CMake) - do not edit
#define DATE_STR "@DATE@"
#define TIME_STR "@TIME@"
-#define VERS_STR "c9x"
-#define SVN_STR "@FIRMWARE@-r@G9X_WC_REVISION@"
+#define VERS_STR "@C9X_VERSION@"
#define MOD_STR "FH"
diff --git a/companion/src/firmwares/th9x/th9xinterface.cpp b/companion/src/firmwares/th9x/th9xinterface.cpp
index d86065ddb..9bd0cbc4a 100644
--- a/companion/src/firmwares/th9x/th9xinterface.cpp
+++ b/companion/src/firmwares/th9x/th9xinterface.cpp
@@ -44,7 +44,7 @@ const char * Th9xInterface::getName()
const int Th9xInterface::getEEpromSize()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString avrMCU = settings.value("mcu", QString("m64")).toString();
if (avrMCU==QString("m128")) {
return 2*EESIZE_STOCK;
diff --git a/companion/src/fusesdialog.ui b/companion/src/fusesdialog.ui
index e6b4acb92..1a32ff96c 100644
--- a/companion/src/fusesdialog.ui
+++ b/companion/src/fusesdialog.ui
@@ -14,8 +14,8 @@
Fuses
-
- :/images/fuses.png :/images/fuses.png
+
+ :/icon.png :/icon.png
-
@@ -116,7 +116,7 @@ p, li { white-space: pre-wrap; }
-
+
diff --git a/companion/src/generaledit.cpp b/companion/src/generaledit.cpp
index 0758f5e22..fdff37ae9 100644
--- a/companion/src/generaledit.cpp
+++ b/companion/src/generaledit.cpp
@@ -20,7 +20,7 @@ GeneralEdit::GeneralEdit(RadioData &radioData, QWidget *parent) :
ui->setupUi(this);
this->setWindowIcon(QIcon(":/icon.png"));
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString firmware_id = settings.value("firmware", default_firmware_variant.id).toString();
ui->tabWidget->setCurrentIndex(settings.value("generalEditTab", 0).toInt());
int profile_id=settings.value("profileId", 0).toInt();
@@ -946,7 +946,7 @@ void GeneralEdit::on_PPM4_editingFinished()
void GeneralEdit::on_tabWidget_currentChanged(int index)
{
// TODO why er9x here
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
settings.setValue("generalEditTab",index);//ui->tabWidget->currentIndex());
}
@@ -1195,7 +1195,7 @@ void GeneralEdit::on_swGEAChkB_stateChanged(int )
void GeneralEdit::on_calretrieve_PB_clicked()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
int profile_id=ui->profile_CB->itemData(ui->profile_CB->currentIndex()).toInt();
settings.beginGroup("Profiles");
QString profile=QString("profile%1").arg(profile_id);
@@ -1312,7 +1312,7 @@ void GeneralEdit::on_calretrieve_PB_clicked()
void GeneralEdit::on_calstore_PB_clicked()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
int profile_id=ui->profile_CB->itemData(ui->profile_CB->currentIndex()).toInt();
settings.beginGroup("Profiles");
QString profile=QString("profile%1").arg(profile_id);
diff --git a/companion/src/generaledit.ui b/companion/src/generaledit.ui
index d47781a69..48a7445b5 100644
--- a/companion/src/generaledit.ui
+++ b/companion/src/generaledit.ui
@@ -20,7 +20,7 @@
General Edit
-
+
:/icon.png :/icon.png
@@ -3555,7 +3555,7 @@ p, li { white-space: pre-wrap; }
PPM_MultiplierDSB
-
+
diff --git a/companion/src/helpers.cpp b/companion/src/helpers.cpp
index 7c5046b31..dc1046582 100644
--- a/companion/src/helpers.cpp
+++ b/companion/src/helpers.cpp
@@ -12,15 +12,28 @@ QString getPhaseName(int val, char * phasename)
phaseName.append(phasename);
if (phaseName.isEmpty()) {
return QString(val < 0 ? "!" : "") + QObject::tr("FM%1").arg(abs(val) - 1);
- } else {
+ }
+ else {
return QString(val < 0 ? "!" : "") + phaseName;
}
}
}
-QString getStickStr(int index)
+QString getInputStr(ModelData & model, int index)
{
- return RawSource(SOURCE_TYPE_STICK, index).toString();
+ QString result;
+
+ if (GetEepromInterface()->getCapability(VirtualInputs)) {
+ result = model.inputNames[index];
+ if (result.isEmpty()) {
+ result = QObject::tr("Input%1").arg(index+1, 2, 10, QChar('0'));
+ }
+ }
+ else {
+ result = RawSource(SOURCE_TYPE_STICK, index).toString();
+ }
+
+ return result;
}
void populateGvSourceCB(QComboBox *b, int value)
@@ -63,7 +76,7 @@ void populateTTraceCB(QComboBox *b, int value)
}
int channels=(IS_ARM(GetEepromInterface()->getBoard()) ? 32 : 16);
for (int i=1; i<= channels; i++) {
- b->addItem(QObject::tr("CH")+QString("%1").arg(i,2,10,QChar('0')));
+ b->addItem(QObject::tr("CH%1").arg(i, 2, 10, QChar('0')));
}
b->setCurrentIndex(value);
}
@@ -387,7 +400,7 @@ void populateFuncParamArmTCB(QComboBox *b, ModelData * g_model, char * value, QS
}
}
-void populateFuncParamCB(QComboBox *b, uint function, unsigned int value, unsigned int adjustmode)
+void populateFuncParamCB(QComboBox *b, const ModelData & model, uint function, unsigned int value, unsigned int adjustmode)
{
QStringList qs;
b->clear();
@@ -411,18 +424,18 @@ void populateFuncParamCB(QComboBox *b, uint function, unsigned int value, unsign
b->setCurrentIndex(value);
}
else if (function==FuncVolume) {
- populateSourceCB(b, RawSource(value), POPULATE_SOURCES|POPULATE_TRIMS);
+ populateSourceCB(b, RawSource(value), model, POPULATE_SOURCES|POPULATE_TRIMS);
}
else if (function==FuncPlayValue) {
- populateSourceCB(b, RawSource(value), POPULATE_SOURCES|POPULATE_SWITCHES|POPULATE_GVARS|POPULATE_TRIMS|POPULATE_TELEMETRYEXT);
+ populateSourceCB(b, RawSource(value), model, POPULATE_SOURCES|POPULATE_VIRTUAL_INPUTS|POPULATE_SWITCHES|POPULATE_GVARS|POPULATE_TRIMS|POPULATE_TELEMETRYEXT);
}
else if (function>=FuncAdjustGV1 && function<=FuncAdjustGVLast) {
switch (adjustmode) {
case 1:
- populateSourceCB(b, RawSource(value), POPULATE_SOURCES|POPULATE_TRIMS|POPULATE_SWITCHES);
+ populateSourceCB(b, RawSource(value), model, POPULATE_SOURCES|POPULATE_TRIMS|POPULATE_SWITCHES);
break;
case 2:
- populateSourceCB(b, RawSource(value), POPULATE_GVARS);
+ populateSourceCB(b, RawSource(value), model, POPULATE_GVARS);
break;
case 3:
b->clear();
@@ -437,17 +450,6 @@ void populateFuncParamCB(QComboBox *b, uint function, unsigned int value, unsign
}
}
-void populateRepeatCB(QComboBox *b, unsigned int value)
-{
- b->clear();
- b->addItem(QObject::tr("No repeat", 0));
- unsigned int step = IS_ARM(GetEepromInterface()->getBoard()) ? 5 : 10;
- for (unsigned int i=step; i<=60; i+=step) {
- b->addItem(QObject::tr("%1s").arg(i), i);
- if (i==value) b->setCurrentIndex(b->count()-1);
- }
-}
-
void populateGVmodeCB(QComboBox *b, unsigned int value)
{
b->clear();
@@ -471,6 +473,78 @@ void populatePhasesCB(QComboBox *b, int value)
b->setCurrentIndex(value + GetEepromInterface()->getCapability(FlightPhases));
}
+bool gvarsEnabled()
+{
+ int gvars=0;
+ if (GetEepromInterface()->getCapability(HasVariants)) {
+ if ((GetCurrentFirmwareVariant() & GVARS_VARIANT)) {
+ gvars=1;
+ }
+ }
+ else {
+ gvars=1;
+ }
+ return gvars;
+}
+
+GVarGroup::GVarGroup(QCheckBox *weightGV, QSpinBox *weightSB, QComboBox *weightCB, int & weight, const int deflt, const int mini, const int maxi, const unsigned int flags):
+ QObject(),
+ weightGV(weightGV),
+ weightSB(weightSB),
+ weightCB(weightCB),
+ weight(weight),
+ flags(flags),
+ lock(false)
+{
+ lock = true;
+
+ if (gvarsEnabled()) {
+ populateGVCB(weightCB, weight);
+ connect(weightGV, SIGNAL(stateChanged(int)), this, SLOT(gvarCBChanged(int)));
+ connect(weightCB, SIGNAL(currentIndexChanged(int)), this, SLOT(valuesChanged()));
+ }
+ else {
+ weightGV->hide();
+ if (weight > maxi || weight < -mini) {
+ weight = deflt;
+ }
+ }
+
+ weightSB->setMinimum(mini);
+ weightSB->setMaximum(maxi);
+
+ if (weight>maxi || weightsetChecked(true);
+ weightSB->hide();
+ weightCB->show();
+ }
+ else {
+ weightGV->setChecked(false);
+ weightSB->setValue(weight);
+ weightSB->show();
+ weightCB->hide();
+ }
+
+ connect(weightSB, SIGNAL(editingFinished()), this, SLOT(valuesChanged()));
+
+ lock = false;
+}
+
+void GVarGroup::gvarCBChanged(int state)
+{
+ weightCB->setVisible(state);
+ weightSB->setVisible(!state);
+ valuesChanged();
+}
+
+void GVarGroup::valuesChanged()
+{
+ if (weightGV->isChecked())
+ weight = weightCB->itemData(weightCB->currentIndex()).toInt();
+ else
+ weight = weightSB->value();
+}
+
CurveGroup::CurveGroup(QComboBox *curveTypeCB, QCheckBox *curveGVarCB, QComboBox *curveValueCB, QSpinBox *curveValueSB, CurveReference & curve, unsigned int flags):
QObject(),
curveTypeCB(curveTypeCB),
@@ -914,8 +988,7 @@ void populateGVCB(QComboBox *b, int value)
b->setCurrentIndex(nullitem);
}
-
-void populateSourceCB(QComboBox *b, const RawSource &source, unsigned int flags)
+void populateSourceCB(QComboBox *b, const RawSource & source, const ModelData & model, unsigned int flags)
{
RawSource item;
@@ -925,7 +998,18 @@ void populateSourceCB(QComboBox *b, const RawSource &source, unsigned int flags)
item = RawSource(SOURCE_TYPE_NONE);
b->addItem(item.toString(), item.toValue());
if (item == source) b->setCurrentIndex(b->count()-1);
+ }
+ if (flags & POPULATE_VIRTUAL_INPUTS) {
+ int virtualInputs = GetEepromInterface()->getCapability(VirtualInputs);
+ for (int i=0; iaddItem(item.toString(), item.toValue());
+ if (item == source) b->setCurrentIndex(b->count()-1);
+ }
+ }
+
+ if (flags & POPULATE_SOURCES) {
for (int i=0; i<4+GetEepromInterface()->getCapability(Pots); i++) {
item = RawSource(SOURCE_TYPE_STICK, i);
b->addItem(item.toString(), item.toValue());
@@ -1400,3 +1484,35 @@ QString getCenterBeep(ModelData * g_model)
if(g_model->beepANACenter & 0x80) strl << "LS";
return strl.join(", ");
}
+
+QString getTheme()
+{
+ QSettings settings;
+ int theme_set = settings.value("theme", 1).toInt();
+ QString Theme;
+ switch(theme_set) {
+ case 0:
+ Theme="classic";
+ break;
+ case 2:
+ Theme="monowhite";
+ break;
+ case 3:
+ Theme="monoblue";
+ break;
+ default:
+ Theme="monochrome";
+ break;
+ }
+ return Theme;
+}
+
+CompanionIcon::CompanionIcon(QString baseimage)
+{
+ static QString theme = getTheme();
+ addFile(":/themes/"+theme+"/16/"+baseimage, QSize(16,16));
+ addFile(":/themes/"+theme+"/24/"+baseimage, QSize(24,24));
+ addFile(":/themes/"+theme+"/32/"+baseimage, QSize(32,32));
+ addFile(":/themes/"+theme+"/48/"+baseimage, QSize(48,48));
+}
+
diff --git a/companion/src/helpers.h b/companion/src/helpers.h
index bc61e2894..d3141083d 100644
--- a/companion/src/helpers.h
+++ b/companion/src/helpers.h
@@ -29,6 +29,33 @@ void populateTTraceCB(QComboBox *b, int value);
void populateRotEncCB(QComboBox *b, int value, int renumber);
void populateBacklightCB(QComboBox *b, const uint8_t value);
+QString getTheme();
+
+class CompanionIcon: public QIcon {
+ public:
+ CompanionIcon(QString baseimage);
+};
+
+class GVarGroup : public QObject {
+
+ Q_OBJECT
+
+ public:
+ GVarGroup(QCheckBox *weightGV, QSpinBox *weightSB, QComboBox *weightCB, int & weight, const int deflt, const int mini, const int maxi, const unsigned int flags=0);
+
+ protected slots:
+ void gvarCBChanged(int);
+ void valuesChanged();
+
+ protected:
+ QCheckBox *weightGV;
+ QSpinBox *weightSB;
+ QComboBox *weightCB;
+ int & weight;
+ const unsigned int flags;
+ bool lock;
+};
+
class CurveGroup : public QObject {
Q_OBJECT
@@ -57,10 +84,9 @@ class CurveGroup : public QObject {
#define POPULATE_AND_SWITCHES 0x04
void populateSwitchCB(QComboBox *b, const RawSwitch & value, unsigned long attr=0, UseContext context=DefaultContext);
void populateFuncCB(QComboBox *b, unsigned int value);
-void populateRepeatCB(QComboBox *b, unsigned int value);
void populateGVmodeCB(QComboBox *b, unsigned int value);
QString FuncParam(uint function, int value, QString paramT="",unsigned int adjustmode=0);
-void populateFuncParamCB(QComboBox *b, uint function, unsigned int value, unsigned int adjustmode=0);
+void populateFuncParamCB(QComboBox *b, const ModelData & model, uint function, unsigned int value, unsigned int adjustmode=0);
void populateFuncParamArmTCB(QComboBox *b, ModelData * g_model, char * value, QStringList & paramsList);
void populatePhasesCB(QComboBox *b, int value);
void populateTrimUseCB(QComboBox *b, unsigned int phase);
@@ -71,24 +97,25 @@ QString getCustomSwitchStr(CustomSwData * customSw, const ModelData & model);
QString getProtocolStr(const int proto);
QString getPhasesStr(unsigned int phases, ModelData & model);
-#define POPULATE_SOURCES 1
-#define POPULATE_TRIMS 2
-#define POPULATE_SWITCHES 4
-#define POPULATE_GVARS 8
-#define POPULATE_TELEMETRY 16
-#define POPULATE_TELEMETRYEXT 32
+#define POPULATE_SOURCES 1
+#define POPULATE_TRIMS 2
+#define POPULATE_SWITCHES 4
+#define POPULATE_GVARS 8
+#define POPULATE_TELEMETRY 16
+#define POPULATE_TELEMETRYEXT 32
+#define POPULATE_VIRTUAL_INPUTS 64
#define GVARS_VARIANT 0x0001
#define FRSKY_VARIANT 0x0002
// void populateGVarCB(QComboBox *b, int value, int min, int max,int pgvars=5); //TODO: Clean Up
void populateGVCB(QComboBox *b, int value);
-void populateSourceCB(QComboBox *b, const RawSource &source, unsigned int flags);
+void populateSourceCB(QComboBox *b, const RawSource &source, const ModelData & model, unsigned int flags);
void populateCSWCB(QComboBox *b, int value);
QString getTimerMode(int tm);
QString getTimerModeB(int tm);
QString getPhaseName(int val, char * phasename=NULL);
-QString getStickStr(int index);
+QString getInputStr(ModelData & model, int index);
QString getCSWFunc(int val);
QString getFuncName(unsigned int val);
QString getRepeatString(unsigned int val);
diff --git a/companion/src/icon.ico b/companion/src/icon.ico
index bb088b1ae..e81c703b7 100644
Binary files a/companion/src/icon.ico and b/companion/src/icon.ico differ
diff --git a/companion/src/icon.png b/companion/src/icon.png
index 6ceee4f23..2936917c7 100644
Binary files a/companion/src/icon.png and b/companion/src/icon.png differ
diff --git a/companion/src/images/companion-title.png b/companion/src/images/companion-title.png
index cbaa0d13b..05f3b8709 100644
Binary files a/companion/src/images/companion-title.png and b/companion/src/images/companion-title.png differ
diff --git a/companion/src/images/er9x_manual.png b/companion/src/images/er9x_manual.png
deleted file mode 100644
index 98f026c72..000000000
Binary files a/companion/src/images/er9x_manual.png and /dev/null differ
diff --git a/companion/src/images/iconmac.icns b/companion/src/images/iconmac.icns
index 0e20c9fe3..579b285c1 100644
Binary files a/companion/src/images/iconmac.icns and b/companion/src/images/iconmac.icns differ
diff --git a/companion/src/images/linuxicons/128x128/companion.png b/companion/src/images/linuxicons/128x128/companion.png
index 6f1616ca2..9b4ad31a2 100644
Binary files a/companion/src/images/linuxicons/128x128/companion.png and b/companion/src/images/linuxicons/128x128/companion.png differ
diff --git a/companion/src/images/linuxicons/256x256/companion.png b/companion/src/images/linuxicons/256x256/companion.png
index 684517666..1ed7a9ae9 100644
Binary files a/companion/src/images/linuxicons/256x256/companion.png and b/companion/src/images/linuxicons/256x256/companion.png differ
diff --git a/companion/src/images/linuxicons/32x32/companion.png b/companion/src/images/linuxicons/32x32/companion.png
index df79707a5..0b7375c0c 100644
Binary files a/companion/src/images/linuxicons/32x32/companion.png and b/companion/src/images/linuxicons/32x32/companion.png differ
diff --git a/companion/src/images/linuxicons/48x48/companion.png b/companion/src/images/linuxicons/48x48/companion.png
index 99357930d..d591f97d2 100644
Binary files a/companion/src/images/linuxicons/48x48/companion.png and b/companion/src/images/linuxicons/48x48/companion.png differ
diff --git a/companion/src/images/linuxicons/512x512/companion.png b/companion/src/images/linuxicons/512x512/companion.png
index 7e9078b2e..6938b2c42 100644
Binary files a/companion/src/images/linuxicons/512x512/companion.png and b/companion/src/images/linuxicons/512x512/companion.png differ
diff --git a/companion/src/images/linuxicons/scalable/companion.svg b/companion/src/images/linuxicons/scalable/companion.svg
index 40a99a3b0..95f040b15 100644
--- a/companion/src/images/linuxicons/scalable/companion.svg
+++ b/companion/src/images/linuxicons/scalable/companion.svg
@@ -1,104 +1,340 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- COMPANION
-
-
-
-
-
- O
-
-
-
-
- P
-
-
-
-
- E
-
-
-
-
- N
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+image/svg+xml
+O
+P
+E
+N
+
\ No newline at end of file
diff --git a/companion/src/images/add.png b/companion/src/images/originals/classical icons/add.png
similarity index 100%
rename from companion/src/images/add.png
rename to companion/src/images/originals/classical icons/add.png
diff --git a/companion/src/images/arrow-left.png b/companion/src/images/originals/classical icons/arrow-left.png
similarity index 100%
rename from companion/src/images/arrow-left.png
rename to companion/src/images/originals/classical icons/arrow-left.png
diff --git a/companion/src/images/arrow-right.png b/companion/src/images/originals/classical icons/arrow-right.png
similarity index 100%
rename from companion/src/images/arrow-right.png
rename to companion/src/images/originals/classical icons/arrow-right.png
diff --git a/companion/src/images/changelog.png b/companion/src/images/originals/classical icons/changelog.png
similarity index 100%
rename from companion/src/images/changelog.png
rename to companion/src/images/originals/classical icons/changelog.png
diff --git a/companion/src/images/clear.png b/companion/src/images/originals/classical icons/clear.png
similarity index 100%
rename from companion/src/images/clear.png
rename to companion/src/images/originals/classical icons/clear.png
diff --git a/companion/src/images/compare.png b/companion/src/images/originals/classical icons/compare.png
similarity index 100%
rename from companion/src/images/compare.png
rename to companion/src/images/originals/classical icons/compare.png
diff --git a/companion/src/images/configure.png b/companion/src/images/originals/classical icons/configure.png
similarity index 100%
rename from companion/src/images/configure.png
rename to companion/src/images/originals/classical icons/configure.png
diff --git a/companion/src/images/contributors.png b/companion/src/images/originals/classical icons/contributors.png
similarity index 100%
rename from companion/src/images/contributors.png
rename to companion/src/images/originals/classical icons/contributors.png
diff --git a/companion/src/images/copy.png b/companion/src/images/originals/classical icons/copy.png
similarity index 100%
rename from companion/src/images/copy.png
rename to companion/src/images/originals/classical icons/copy.png
diff --git a/companion/src/images/currentmodel.png b/companion/src/images/originals/classical icons/currentmodel.png
similarity index 100%
rename from companion/src/images/currentmodel.png
rename to companion/src/images/originals/classical icons/currentmodel.png
diff --git a/companion/src/images/originals/classical icons/customize.png b/companion/src/images/originals/classical icons/customize.png
new file mode 100644
index 000000000..96259b922
Binary files /dev/null and b/companion/src/images/originals/classical icons/customize.png differ
diff --git a/companion/src/images/cut.png b/companion/src/images/originals/classical icons/cut.png
similarity index 100%
rename from companion/src/images/cut.png
rename to companion/src/images/originals/classical icons/cut.png
diff --git a/companion/src/images/duplicate.png b/companion/src/images/originals/classical icons/duplicate.png
similarity index 100%
rename from companion/src/images/duplicate.png
rename to companion/src/images/originals/classical icons/duplicate.png
diff --git a/companion/src/images/edit.png b/companion/src/images/originals/classical icons/edit.png
similarity index 100%
rename from companion/src/images/edit.png
rename to companion/src/images/originals/classical icons/edit.png
diff --git a/companion/src/images/exit.png b/companion/src/images/originals/classical icons/exit.png
similarity index 100%
rename from companion/src/images/exit.png
rename to companion/src/images/originals/classical icons/exit.png
diff --git a/companion/src/images/fuses.png b/companion/src/images/originals/classical icons/fuses.png
similarity index 100%
rename from companion/src/images/fuses.png
rename to companion/src/images/originals/classical icons/fuses.png
diff --git a/companion/src/images/originals/classical icons/information.png b/companion/src/images/originals/classical icons/information.png
new file mode 100644
index 000000000..76b6d5966
Binary files /dev/null and b/companion/src/images/originals/classical icons/information.png differ
diff --git a/companion/src/images/library.png b/companion/src/images/originals/classical icons/library.png
similarity index 100%
rename from companion/src/images/library.png
rename to companion/src/images/originals/classical icons/library.png
diff --git a/companion/src/images/list.png b/companion/src/images/originals/classical icons/list.png
similarity index 100%
rename from companion/src/images/list.png
rename to companion/src/images/originals/classical icons/list.png
diff --git a/companion/src/images/logs.png b/companion/src/images/originals/classical icons/logs.png
similarity index 100%
rename from companion/src/images/logs.png
rename to companion/src/images/originals/classical icons/logs.png
diff --git a/companion/src/images/movedown.png b/companion/src/images/originals/classical icons/movedown.png
similarity index 100%
rename from companion/src/images/movedown.png
rename to companion/src/images/originals/classical icons/movedown.png
diff --git a/companion/src/images/moveup.png b/companion/src/images/originals/classical icons/moveup.png
similarity index 100%
rename from companion/src/images/moveup.png
rename to companion/src/images/originals/classical icons/moveup.png
diff --git a/companion/src/images/new.png b/companion/src/images/originals/classical icons/new.png
similarity index 100%
rename from companion/src/images/new.png
rename to companion/src/images/originals/classical icons/new.png
diff --git a/companion/src/images/open.png b/companion/src/images/originals/classical icons/open.png
similarity index 100%
rename from companion/src/images/open.png
rename to companion/src/images/originals/classical icons/open.png
diff --git a/companion/src/images/originals/classical icons/paintbrush.png b/companion/src/images/originals/classical icons/paintbrush.png
new file mode 100644
index 000000000..814fdb47e
Binary files /dev/null and b/companion/src/images/originals/classical icons/paintbrush.png differ
diff --git a/companion/src/images/paste.png b/companion/src/images/originals/classical icons/paste.png
similarity index 100%
rename from companion/src/images/paste.png
rename to companion/src/images/originals/classical icons/paste.png
diff --git a/companion/src/images/play.png b/companion/src/images/originals/classical icons/play.png
similarity index 100%
rename from companion/src/images/play.png
rename to companion/src/images/originals/classical icons/play.png
diff --git a/companion/src/images/preferences.png b/companion/src/images/originals/classical icons/preferences.png
similarity index 100%
rename from companion/src/images/preferences.png
rename to companion/src/images/originals/classical icons/preferences.png
diff --git a/companion/src/images/print.png b/companion/src/images/originals/classical icons/print.png
similarity index 100%
rename from companion/src/images/print.png
rename to companion/src/images/originals/classical icons/print.png
diff --git a/companion/src/images/profiles.png b/companion/src/images/originals/classical icons/profiles.png
similarity index 100%
rename from companion/src/images/profiles.png
rename to companion/src/images/originals/classical icons/profiles.png
diff --git a/companion/src/images/read_eeprom.png b/companion/src/images/originals/classical icons/read_eeprom.png
similarity index 100%
rename from companion/src/images/read_eeprom.png
rename to companion/src/images/originals/classical icons/read_eeprom.png
diff --git a/companion/src/images/read_eeprom_file.png b/companion/src/images/originals/classical icons/read_eeprom_file.png
similarity index 100%
rename from companion/src/images/read_eeprom_file.png
rename to companion/src/images/originals/classical icons/read_eeprom_file.png
diff --git a/companion/src/images/read_flash.png b/companion/src/images/originals/classical icons/read_flash.png
similarity index 100%
rename from companion/src/images/read_flash.png
rename to companion/src/images/originals/classical icons/read_flash.png
diff --git a/companion/src/images/recentdocument.png b/companion/src/images/originals/classical icons/recentdocument.png
similarity index 100%
rename from companion/src/images/recentdocument.png
rename to companion/src/images/originals/classical icons/recentdocument.png
diff --git a/companion/src/images/save.png b/companion/src/images/originals/classical icons/save.png
similarity index 100%
rename from companion/src/images/save.png
rename to companion/src/images/originals/classical icons/save.png
diff --git a/companion/src/images/saveas.png b/companion/src/images/originals/classical icons/saveas.png
similarity index 100%
rename from companion/src/images/saveas.png
rename to companion/src/images/originals/classical icons/saveas.png
diff --git a/companion/src/images/simulate.png b/companion/src/images/originals/classical icons/simulate.png
similarity index 100%
rename from companion/src/images/simulate.png
rename to companion/src/images/originals/classical icons/simulate.png
diff --git a/companion/src/images/stop.png b/companion/src/images/originals/classical icons/stop.png
similarity index 100%
rename from companion/src/images/stop.png
rename to companion/src/images/originals/classical icons/stop.png
diff --git a/companion/src/images/switch_dir.png b/companion/src/images/originals/classical icons/switch_dir.png
similarity index 100%
rename from companion/src/images/switch_dir.png
rename to companion/src/images/originals/classical icons/switch_dir.png
diff --git a/companion/src/images/update.png b/companion/src/images/originals/classical icons/update.png
similarity index 100%
rename from companion/src/images/update.png
rename to companion/src/images/originals/classical icons/update.png
diff --git a/companion/src/images/wizard.png b/companion/src/images/originals/classical icons/wizard.png
similarity index 100%
rename from companion/src/images/wizard.png
rename to companion/src/images/originals/classical icons/wizard.png
diff --git a/companion/src/images/write_eeprom.png b/companion/src/images/originals/classical icons/write_eeprom.png
similarity index 100%
rename from companion/src/images/write_eeprom.png
rename to companion/src/images/originals/classical icons/write_eeprom.png
diff --git a/companion/src/images/write_eeprom_file.png b/companion/src/images/originals/classical icons/write_eeprom_file.png
similarity index 100%
rename from companion/src/images/write_eeprom_file.png
rename to companion/src/images/originals/classical icons/write_eeprom_file.png
diff --git a/companion/src/images/write_flash.png b/companion/src/images/originals/classical icons/write_flash.png
similarity index 100%
rename from companion/src/images/write_flash.png
rename to companion/src/images/originals/classical icons/write_flash.png
diff --git a/companion/src/images/originals/companion9x-title.xcf b/companion/src/images/originals/companion-title.xcf
similarity index 100%
rename from companion/src/images/originals/companion9x-title.xcf
rename to companion/src/images/originals/companion-title.xcf
diff --git a/companion/src/images/originals/vector-logo.odg b/companion/src/images/originals/logotypes/old_opentx_companion_logo.odg
similarity index 100%
rename from companion/src/images/originals/vector-logo.odg
rename to companion/src/images/originals/logotypes/old_opentx_companion_logo.odg
diff --git a/companion/src/images/originals/logotypes/opentx_2_logo.png b/companion/src/images/originals/logotypes/opentx_2_logo.png
new file mode 100644
index 000000000..aae169a8a
Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_2_logo.png differ
diff --git a/companion/src/images/originals/logotypes/opentx_2_logo.svg b/companion/src/images/originals/logotypes/opentx_2_logo.svg
new file mode 100644
index 000000000..41b597ebe
--- /dev/null
+++ b/companion/src/images/originals/logotypes/opentx_2_logo.svg
@@ -0,0 +1,361 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/companion/src/images/originals/logotypes/opentx_companion_logo.png b/companion/src/images/originals/logotypes/opentx_companion_logo.png
new file mode 100644
index 000000000..a7c3a9032
Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_companion_logo.png differ
diff --git a/companion/src/images/originals/logotypes/opentx_companion_logo.svg b/companion/src/images/originals/logotypes/opentx_companion_logo.svg
new file mode 100644
index 000000000..90a78b883
--- /dev/null
+++ b/companion/src/images/originals/logotypes/opentx_companion_logo.svg
@@ -0,0 +1,334 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/companion/src/images/originals/logotypes/opentx_logo.png b/companion/src/images/originals/logotypes/opentx_logo.png
new file mode 100644
index 000000000..f1af0cdb4
Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo.png differ
diff --git a/companion/src/images/originals/logotypes/opentx_logo.svg b/companion/src/images/originals/logotypes/opentx_logo.svg
new file mode 100644
index 000000000..95f040b15
--- /dev/null
+++ b/companion/src/images/originals/logotypes/opentx_logo.svg
@@ -0,0 +1,340 @@
+
+image/svg+xml
+O
+P
+E
+N
+
\ No newline at end of file
diff --git a/companion/src/images/originals/logotypes/opentx_logo_128x128.png b/companion/src/images/originals/logotypes/opentx_logo_128x128.png
new file mode 100644
index 000000000..9b4ad31a2
Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo_128x128.png differ
diff --git a/companion/src/images/originals/logotypes/opentx_logo_16x16.png b/companion/src/images/originals/logotypes/opentx_logo_16x16.png
new file mode 100644
index 000000000..7fa027e14
Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo_16x16.png differ
diff --git a/companion/src/images/originals/logotypes/opentx_logo_24x24.png b/companion/src/images/originals/logotypes/opentx_logo_24x24.png
new file mode 100644
index 000000000..0ae5ffe17
Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo_24x24.png differ
diff --git a/companion/src/images/originals/logotypes/opentx_logo_256x256.png b/companion/src/images/originals/logotypes/opentx_logo_256x256.png
new file mode 100644
index 000000000..1ed7a9ae9
Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo_256x256.png differ
diff --git a/companion/src/images/originals/logotypes/opentx_logo_32x32.png b/companion/src/images/originals/logotypes/opentx_logo_32x32.png
new file mode 100644
index 000000000..0b7375c0c
Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo_32x32.png differ
diff --git a/companion/src/images/originals/logotypes/opentx_logo_48x48.png b/companion/src/images/originals/logotypes/opentx_logo_48x48.png
new file mode 100644
index 000000000..d591f97d2
Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo_48x48.png differ
diff --git a/companion/src/images/originals/logotypes/opentx_logo_512x512.png b/companion/src/images/originals/logotypes/opentx_logo_512x512.png
new file mode 100644
index 000000000..6938b2c42
Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo_512x512.png differ
diff --git a/companion/src/images/originals/logotypes/opentx_logo_64x64.png b/companion/src/images/originals/logotypes/opentx_logo_64x64.png
new file mode 100644
index 000000000..0ae7c8682
Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo_64x64.png differ
diff --git a/companion/src/images/originals/logotypes/opentx_logo_96x96.png b/companion/src/images/originals/logotypes/opentx_logo_96x96.png
new file mode 100644
index 000000000..2936917c7
Binary files /dev/null and b/companion/src/images/originals/logotypes/opentx_logo_96x96.png differ
diff --git a/companion/src/images/originals/mhotar icons/read_eeprom.png b/companion/src/images/originals/mhotar icons/read_eeprom.png
new file mode 100644
index 000000000..01b340274
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/read_eeprom.png differ
diff --git a/companion/src/images/originals/mhotar icons/read_eeprom_64(mhotar).png b/companion/src/images/originals/mhotar icons/read_eeprom_64(mhotar).png
new file mode 100644
index 000000000..965025aba
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/read_eeprom_64(mhotar).png differ
diff --git a/companion/src/images/originals/mhotar icons/read_eeprom_file.png b/companion/src/images/originals/mhotar icons/read_eeprom_file.png
new file mode 100644
index 000000000..06cb2819a
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/read_eeprom_file.png differ
diff --git a/companion/src/images/originals/mhotar icons/read_eeprom_file_64(mhotar).png b/companion/src/images/originals/mhotar icons/read_eeprom_file_64(mhotar).png
new file mode 100644
index 000000000..9c575eb53
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/read_eeprom_file_64(mhotar).png differ
diff --git a/companion/src/images/originals/mhotar icons/read_eeprom_file_v2.png b/companion/src/images/originals/mhotar icons/read_eeprom_file_v2.png
new file mode 100644
index 000000000..fd6479993
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/read_eeprom_file_v2.png differ
diff --git a/companion/src/images/originals/mhotar icons/read_eeprom_file_v2_64(mhotar).png b/companion/src/images/originals/mhotar icons/read_eeprom_file_v2_64(mhotar).png
new file mode 100644
index 000000000..4a9ddb6e0
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/read_eeprom_file_v2_64(mhotar).png differ
diff --git a/companion/src/images/originals/mhotar icons/read_eeprom_v2.png b/companion/src/images/originals/mhotar icons/read_eeprom_v2.png
new file mode 100644
index 000000000..46a4dfd50
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/read_eeprom_v2.png differ
diff --git a/companion/src/images/originals/mhotar icons/read_eeprom_v2_64(mhotar).png b/companion/src/images/originals/mhotar icons/read_eeprom_v2_64(mhotar).png
new file mode 100644
index 000000000..cf7285047
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/read_eeprom_v2_64(mhotar).png differ
diff --git a/companion/src/images/originals/mhotar icons/read_flash.png b/companion/src/images/originals/mhotar icons/read_flash.png
new file mode 100644
index 000000000..dbba623d8
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/read_flash.png differ
diff --git a/companion/src/images/originals/mhotar icons/read_flash_64(mhotar).png b/companion/src/images/originals/mhotar icons/read_flash_64(mhotar).png
new file mode 100644
index 000000000..4f3367a08
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/read_flash_64(mhotar).png differ
diff --git a/companion/src/images/originals/mhotar icons/read_flash_v2.png b/companion/src/images/originals/mhotar icons/read_flash_v2.png
new file mode 100644
index 000000000..546400894
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/read_flash_v2.png differ
diff --git a/companion/src/images/originals/mhotar icons/read_flash_v2_64(mhotar).png b/companion/src/images/originals/mhotar icons/read_flash_v2_64(mhotar).png
new file mode 100644
index 000000000..afaeb0a72
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/read_flash_v2_64(mhotar).png differ
diff --git a/companion/src/images/originals/mhotar icons/txactionico.svg b/companion/src/images/originals/mhotar icons/txactionico.svg
new file mode 100644
index 000000000..2f7ef4085
--- /dev/null
+++ b/companion/src/images/originals/mhotar icons/txactionico.svg
@@ -0,0 +1,816 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/companion/src/images/originals/mhotar icons/write_eeprom.png b/companion/src/images/originals/mhotar icons/write_eeprom.png
new file mode 100644
index 000000000..194e00bde
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/write_eeprom.png differ
diff --git a/companion/src/images/originals/mhotar icons/write_eeprom_64(mhotar).png b/companion/src/images/originals/mhotar icons/write_eeprom_64(mhotar).png
new file mode 100644
index 000000000..7092df3ab
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/write_eeprom_64(mhotar).png differ
diff --git a/companion/src/images/originals/mhotar icons/write_eeprom_file.png b/companion/src/images/originals/mhotar icons/write_eeprom_file.png
new file mode 100644
index 000000000..dcdcc3577
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/write_eeprom_file.png differ
diff --git a/companion/src/images/originals/mhotar icons/write_eeprom_file_64(mhotar).png b/companion/src/images/originals/mhotar icons/write_eeprom_file_64(mhotar).png
new file mode 100644
index 000000000..7c924904f
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/write_eeprom_file_64(mhotar).png differ
diff --git a/companion/src/images/originals/mhotar icons/write_eeprom_file_v2.png b/companion/src/images/originals/mhotar icons/write_eeprom_file_v2.png
new file mode 100644
index 000000000..925fecf47
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/write_eeprom_file_v2.png differ
diff --git a/companion/src/images/originals/mhotar icons/write_eeprom_file_v2_64(mhotar).png b/companion/src/images/originals/mhotar icons/write_eeprom_file_v2_64(mhotar).png
new file mode 100644
index 000000000..f43584b91
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/write_eeprom_file_v2_64(mhotar).png differ
diff --git a/companion/src/images/originals/mhotar icons/write_eeprom_v2.png b/companion/src/images/originals/mhotar icons/write_eeprom_v2.png
new file mode 100644
index 000000000..deeec3b48
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/write_eeprom_v2.png differ
diff --git a/companion/src/images/originals/mhotar icons/write_eeprom_v2_64(mhotar).png b/companion/src/images/originals/mhotar icons/write_eeprom_v2_64(mhotar).png
new file mode 100644
index 000000000..aba6c6371
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/write_eeprom_v2_64(mhotar).png differ
diff --git a/companion/src/images/originals/mhotar icons/write_flash.png b/companion/src/images/originals/mhotar icons/write_flash.png
new file mode 100644
index 000000000..b83fc7d8a
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/write_flash.png differ
diff --git a/companion/src/images/originals/mhotar icons/write_flash_64(mhotar).png b/companion/src/images/originals/mhotar icons/write_flash_64(mhotar).png
new file mode 100644
index 000000000..e63f7cae5
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/write_flash_64(mhotar).png differ
diff --git a/companion/src/images/originals/mhotar icons/write_flash_v2.png b/companion/src/images/originals/mhotar icons/write_flash_v2.png
new file mode 100644
index 000000000..e5943a509
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/write_flash_v2.png differ
diff --git a/companion/src/images/originals/mhotar icons/write_flash_v2_64(mhotar).png b/companion/src/images/originals/mhotar icons/write_flash_v2_64(mhotar).png
new file mode 100644
index 000000000..b98ea4d19
Binary files /dev/null and b/companion/src/images/originals/mhotar icons/write_flash_v2_64(mhotar).png differ
diff --git a/companion/src/images/originals/monochrome icons/add.png b/companion/src/images/originals/monochrome icons/add.png
new file mode 100644
index 000000000..17697d5eb
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/add.png differ
diff --git a/companion/src/images/originals/monochrome icons/add64.png b/companion/src/images/originals/monochrome icons/add64.png
new file mode 100644
index 000000000..718fad0c8
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/add64.png differ
diff --git a/companion/src/images/originals/monochrome icons/arrow-left.png b/companion/src/images/originals/monochrome icons/arrow-left.png
new file mode 100644
index 000000000..9fb8a885d
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/arrow-left.png differ
diff --git a/companion/src/images/originals/monochrome icons/arrow-left64.png b/companion/src/images/originals/monochrome icons/arrow-left64.png
new file mode 100644
index 000000000..6fd004a19
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/arrow-left64.png differ
diff --git a/companion/src/images/originals/monochrome icons/arrow-right.png b/companion/src/images/originals/monochrome icons/arrow-right.png
new file mode 100644
index 000000000..ba8e1440d
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/arrow-right.png differ
diff --git a/companion/src/images/originals/monochrome icons/arrow-right64.png b/companion/src/images/originals/monochrome icons/arrow-right64.png
new file mode 100644
index 000000000..69a2e6e09
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/arrow-right64.png differ
diff --git a/companion/src/images/originals/monochrome icons/changelog.png b/companion/src/images/originals/monochrome icons/changelog.png
new file mode 100644
index 000000000..2e97b00a0
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/changelog.png differ
diff --git a/companion/src/images/originals/monochrome icons/changelog64.png b/companion/src/images/originals/monochrome icons/changelog64.png
new file mode 100644
index 000000000..dec43fe54
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/changelog64.png differ
diff --git a/companion/src/images/originals/monochrome icons/clear.png b/companion/src/images/originals/monochrome icons/clear.png
new file mode 100644
index 000000000..345e70b62
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/clear.png differ
diff --git a/companion/src/images/originals/monochrome icons/clear64.png b/companion/src/images/originals/monochrome icons/clear64.png
new file mode 100644
index 000000000..3e80f3ff9
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/clear64.png differ
diff --git a/companion/src/images/originals/monochrome icons/compare.png b/companion/src/images/originals/monochrome icons/compare.png
new file mode 100644
index 000000000..34e437850
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/compare.png differ
diff --git a/companion/src/images/originals/monochrome icons/compare64.png b/companion/src/images/originals/monochrome icons/compare64.png
new file mode 100644
index 000000000..d8bc1d69b
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/compare64.png differ
diff --git a/companion/src/images/originals/monochrome icons/configure.png b/companion/src/images/originals/monochrome icons/configure.png
new file mode 100644
index 000000000..8be5e988f
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/configure.png differ
diff --git a/companion/src/images/originals/monochrome icons/configure64.png b/companion/src/images/originals/monochrome icons/configure64.png
new file mode 100644
index 000000000..f0fd78cf1
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/configure64.png differ
diff --git a/companion/src/images/originals/monochrome icons/contributors.png b/companion/src/images/originals/monochrome icons/contributors.png
new file mode 100644
index 000000000..a51bc3c56
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/contributors.png differ
diff --git a/companion/src/images/originals/monochrome icons/contributors64.png b/companion/src/images/originals/monochrome icons/contributors64.png
new file mode 100644
index 000000000..53dd1a7b1
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/contributors64.png differ
diff --git a/companion/src/images/originals/monochrome icons/copy.png b/companion/src/images/originals/monochrome icons/copy.png
new file mode 100644
index 000000000..aae5f5302
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/copy.png differ
diff --git a/companion/src/images/originals/monochrome icons/copy64.png b/companion/src/images/originals/monochrome icons/copy64.png
new file mode 100644
index 000000000..c68e9211c
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/copy64.png differ
diff --git a/companion/src/images/originals/monochrome icons/currentmodel.png b/companion/src/images/originals/monochrome icons/currentmodel.png
new file mode 100644
index 000000000..816752faf
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/currentmodel.png differ
diff --git a/companion/src/images/originals/monochrome icons/currentmodel64.png b/companion/src/images/originals/monochrome icons/currentmodel64.png
new file mode 100644
index 000000000..c3f67e047
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/currentmodel64.png differ
diff --git a/companion/src/images/originals/monochrome icons/cut.png b/companion/src/images/originals/monochrome icons/cut.png
new file mode 100644
index 000000000..efbb2cd5d
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/cut.png differ
diff --git a/companion/src/images/originals/monochrome icons/cut64.png b/companion/src/images/originals/monochrome icons/cut64.png
new file mode 100644
index 000000000..fa78a545d
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/cut64.png differ
diff --git a/companion/src/images/originals/monochrome icons/duplicate.png b/companion/src/images/originals/monochrome icons/duplicate.png
new file mode 100644
index 000000000..43041429c
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/duplicate.png differ
diff --git a/companion/src/images/originals/monochrome icons/duplicate64.png b/companion/src/images/originals/monochrome icons/duplicate64.png
new file mode 100644
index 000000000..004a932a4
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/duplicate64.png differ
diff --git a/companion/src/images/originals/monochrome icons/edit.png b/companion/src/images/originals/monochrome icons/edit.png
new file mode 100644
index 000000000..cebabbd9f
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/edit.png differ
diff --git a/companion/src/images/originals/monochrome icons/edit64.png b/companion/src/images/originals/monochrome icons/edit64.png
new file mode 100644
index 000000000..68f2da48a
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/edit64.png differ
diff --git a/companion/src/images/originals/monochrome icons/exit.png b/companion/src/images/originals/monochrome icons/exit.png
new file mode 100644
index 000000000..8de0aade5
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/exit.png differ
diff --git a/companion/src/images/originals/monochrome icons/exit64.png b/companion/src/images/originals/monochrome icons/exit64.png
new file mode 100644
index 000000000..d414a0551
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/exit64.png differ
diff --git a/companion/src/images/originals/monochrome icons/fuses.png b/companion/src/images/originals/monochrome icons/fuses.png
new file mode 100644
index 000000000..fee85de8b
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/fuses.png differ
diff --git a/companion/src/images/originals/monochrome icons/fuses64.png b/companion/src/images/originals/monochrome icons/fuses64.png
new file mode 100644
index 000000000..82b77d669
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/fuses64.png differ
diff --git a/companion/src/images/originals/monochrome icons/information.png b/companion/src/images/originals/monochrome icons/information.png
new file mode 100644
index 000000000..2e9c398f6
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/information.png differ
diff --git a/companion/src/images/originals/monochrome icons/information64.png b/companion/src/images/originals/monochrome icons/information64.png
new file mode 100644
index 000000000..fb4dd298a
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/information64.png differ
diff --git a/companion/src/images/originals/monochrome icons/library.png b/companion/src/images/originals/monochrome icons/library.png
new file mode 100644
index 000000000..a3d112626
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/library.png differ
diff --git a/companion/src/images/originals/monochrome icons/library64.png b/companion/src/images/originals/monochrome icons/library64.png
new file mode 100644
index 000000000..1b749f913
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/library64.png differ
diff --git a/companion/src/images/originals/monochrome icons/list.png b/companion/src/images/originals/monochrome icons/list.png
new file mode 100644
index 000000000..f94bafb12
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/list.png differ
diff --git a/companion/src/images/originals/monochrome icons/list64.png b/companion/src/images/originals/monochrome icons/list64.png
new file mode 100644
index 000000000..6245f61cc
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/list64.png differ
diff --git a/companion/src/images/originals/monochrome icons/logs.png b/companion/src/images/originals/monochrome icons/logs.png
new file mode 100644
index 000000000..f8f96b505
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/logs.png differ
diff --git a/companion/src/images/originals/monochrome icons/logs64.png b/companion/src/images/originals/monochrome icons/logs64.png
new file mode 100644
index 000000000..6d0ee00ee
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/logs64.png differ
diff --git a/companion/src/images/originals/monochrome icons/movedown.png b/companion/src/images/originals/monochrome icons/movedown.png
new file mode 100644
index 000000000..0097679e1
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/movedown.png differ
diff --git a/companion/src/images/originals/monochrome icons/movedown64.png b/companion/src/images/originals/monochrome icons/movedown64.png
new file mode 100644
index 000000000..20613585f
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/movedown64.png differ
diff --git a/companion/src/images/originals/monochrome icons/moveup.png b/companion/src/images/originals/monochrome icons/moveup.png
new file mode 100644
index 000000000..ba68dcaa5
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/moveup.png differ
diff --git a/companion/src/images/originals/monochrome icons/moveup64.png b/companion/src/images/originals/monochrome icons/moveup64.png
new file mode 100644
index 000000000..c6fde0d86
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/moveup64.png differ
diff --git a/companion/src/images/originals/monochrome icons/new.png b/companion/src/images/originals/monochrome icons/new.png
new file mode 100644
index 000000000..e9531c78a
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/new.png differ
diff --git a/companion/src/images/originals/monochrome icons/new64.png b/companion/src/images/originals/monochrome icons/new64.png
new file mode 100644
index 000000000..6f346af10
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/new64.png differ
diff --git a/companion/src/images/originals/monochrome icons/open.png b/companion/src/images/originals/monochrome icons/open.png
new file mode 100644
index 000000000..6f437856c
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/open.png differ
diff --git a/companion/src/images/originals/monochrome icons/open64.png b/companion/src/images/originals/monochrome icons/open64.png
new file mode 100644
index 000000000..e4e1a7831
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/open64.png differ
diff --git a/companion/src/images/originals/monochrome icons/paintbrush.png b/companion/src/images/originals/monochrome icons/paintbrush.png
new file mode 100644
index 000000000..437655aee
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/paintbrush.png differ
diff --git a/companion/src/images/originals/monochrome icons/paste.png b/companion/src/images/originals/monochrome icons/paste.png
new file mode 100644
index 000000000..33948a231
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/paste.png differ
diff --git a/companion/src/images/originals/monochrome icons/paste64.png b/companion/src/images/originals/monochrome icons/paste64.png
new file mode 100644
index 000000000..4f0f2108c
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/paste64.png differ
diff --git a/companion/src/images/originals/monochrome icons/preferences.png b/companion/src/images/originals/monochrome icons/preferences.png
new file mode 100644
index 000000000..d2ba00eaa
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/preferences.png differ
diff --git a/companion/src/images/originals/monochrome icons/preferences64.png b/companion/src/images/originals/monochrome icons/preferences64.png
new file mode 100644
index 000000000..058607ea4
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/preferences64.png differ
diff --git a/companion/src/images/originals/monochrome icons/print.png b/companion/src/images/originals/monochrome icons/print.png
new file mode 100644
index 000000000..1495a1eac
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/print.png differ
diff --git a/companion/src/images/originals/monochrome icons/print64.png b/companion/src/images/originals/monochrome icons/print64.png
new file mode 100644
index 000000000..f3b8c3710
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/print64.png differ
diff --git a/companion/src/images/originals/monochrome icons/profiles.png b/companion/src/images/originals/monochrome icons/profiles.png
new file mode 100644
index 000000000..0d5c86a47
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/profiles.png differ
diff --git a/companion/src/images/originals/monochrome icons/profiles64.png b/companion/src/images/originals/monochrome icons/profiles64.png
new file mode 100644
index 000000000..27899ade0
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/profiles64.png differ
diff --git a/companion/src/images/originals/monochrome icons/read_eeprom.png b/companion/src/images/originals/monochrome icons/read_eeprom.png
new file mode 100644
index 000000000..a331b4af1
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/read_eeprom.png differ
diff --git a/companion/src/images/originals/monochrome icons/read_eeprom64.png b/companion/src/images/originals/monochrome icons/read_eeprom64.png
new file mode 100644
index 000000000..fd7d1176f
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/read_eeprom64.png differ
diff --git a/companion/src/images/originals/monochrome icons/read_eeprom_file.png b/companion/src/images/originals/monochrome icons/read_eeprom_file.png
new file mode 100644
index 000000000..4dc1fdb15
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/read_eeprom_file.png differ
diff --git a/companion/src/images/originals/monochrome icons/read_eeprom_file64.png b/companion/src/images/originals/monochrome icons/read_eeprom_file64.png
new file mode 100644
index 000000000..80688d301
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/read_eeprom_file64.png differ
diff --git a/companion/src/images/originals/monochrome icons/read_flash.png b/companion/src/images/originals/monochrome icons/read_flash.png
new file mode 100644
index 000000000..555161593
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/read_flash.png differ
diff --git a/companion/src/images/originals/monochrome icons/read_flash64.png b/companion/src/images/originals/monochrome icons/read_flash64.png
new file mode 100644
index 000000000..adfb05758
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/read_flash64.png differ
diff --git a/companion/src/images/originals/monochrome icons/recentdocument.png b/companion/src/images/originals/monochrome icons/recentdocument.png
new file mode 100644
index 000000000..1dfbadb5d
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/recentdocument.png differ
diff --git a/companion/src/images/originals/monochrome icons/recentdocument64.png b/companion/src/images/originals/monochrome icons/recentdocument64.png
new file mode 100644
index 000000000..d1356671e
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/recentdocument64.png differ
diff --git a/companion/src/images/originals/monochrome icons/save.png b/companion/src/images/originals/monochrome icons/save.png
new file mode 100644
index 000000000..6466d6528
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/save.png differ
diff --git a/companion/src/images/originals/monochrome icons/save64.png b/companion/src/images/originals/monochrome icons/save64.png
new file mode 100644
index 000000000..50c934166
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/save64.png differ
diff --git a/companion/src/images/originals/monochrome icons/saveas.png b/companion/src/images/originals/monochrome icons/saveas.png
new file mode 100644
index 000000000..9cc2a72ef
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/saveas.png differ
diff --git a/companion/src/images/originals/monochrome icons/saveas64.png b/companion/src/images/originals/monochrome icons/saveas64.png
new file mode 100644
index 000000000..df85fb89b
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/saveas64.png differ
diff --git a/companion/src/images/originals/monochrome icons/simulate.png b/companion/src/images/originals/monochrome icons/simulate.png
new file mode 100644
index 000000000..a7020777f
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/simulate.png differ
diff --git a/companion/src/images/originals/monochrome icons/simulate64.png b/companion/src/images/originals/monochrome icons/simulate64.png
new file mode 100644
index 000000000..be9e47bbc
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/simulate64.png differ
diff --git a/companion/src/images/originals/monochrome icons/switch_dir.png b/companion/src/images/originals/monochrome icons/switch_dir.png
new file mode 100644
index 000000000..36253c57e
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/switch_dir.png differ
diff --git a/companion/src/images/originals/monochrome icons/switch_dir64.png b/companion/src/images/originals/monochrome icons/switch_dir64.png
new file mode 100644
index 000000000..49155ffaf
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/switch_dir64.png differ
diff --git a/companion/src/images/originals/monochrome icons/update.png b/companion/src/images/originals/monochrome icons/update.png
new file mode 100644
index 000000000..be4c746b0
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/update.png differ
diff --git a/companion/src/images/originals/monochrome icons/update64.png b/companion/src/images/originals/monochrome icons/update64.png
new file mode 100644
index 000000000..acc8d9c43
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/update64.png differ
diff --git a/companion/src/images/originals/monochrome icons/wizard.png b/companion/src/images/originals/monochrome icons/wizard.png
new file mode 100644
index 000000000..edd01da61
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/wizard.png differ
diff --git a/companion/src/images/originals/monochrome icons/wizard64.png b/companion/src/images/originals/monochrome icons/wizard64.png
new file mode 100644
index 000000000..71f45dd16
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/wizard64.png differ
diff --git a/companion/src/images/originals/monochrome icons/write_eeprom.png b/companion/src/images/originals/monochrome icons/write_eeprom.png
new file mode 100644
index 000000000..4bd028f8b
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/write_eeprom.png differ
diff --git a/companion/src/images/originals/monochrome icons/write_eeprom64.png b/companion/src/images/originals/monochrome icons/write_eeprom64.png
new file mode 100644
index 000000000..9c3bff1f8
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/write_eeprom64.png differ
diff --git a/companion/src/images/originals/monochrome icons/write_eeprom_file.png b/companion/src/images/originals/monochrome icons/write_eeprom_file.png
new file mode 100644
index 000000000..b76c3050f
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/write_eeprom_file.png differ
diff --git a/companion/src/images/originals/monochrome icons/write_eeprom_file64.png b/companion/src/images/originals/monochrome icons/write_eeprom_file64.png
new file mode 100644
index 000000000..fccdc6802
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/write_eeprom_file64.png differ
diff --git a/companion/src/images/originals/monochrome icons/write_flash.png b/companion/src/images/originals/monochrome icons/write_flash.png
new file mode 100644
index 000000000..6af3c2950
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/write_flash.png differ
diff --git a/companion/src/images/originals/monochrome icons/write_flash64.png b/companion/src/images/originals/monochrome icons/write_flash64.png
new file mode 100644
index 000000000..c3d200d61
Binary files /dev/null and b/companion/src/images/originals/monochrome icons/write_flash64.png differ
diff --git a/companion/src/images/originals/scripts/makeblue.sh b/companion/src/images/originals/scripts/makeblue.sh
new file mode 100755
index 000000000..ab0c418fc
--- /dev/null
+++ b/companion/src/images/originals/scripts/makeblue.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+mogrify -modulate 100,100,70 *.png
+mogrify +level-colors "#000066","#0000cc" *.png
diff --git a/companion/src/images/originals/scripts/makewhite.sh b/companion/src/images/originals/scripts/makewhite.sh
new file mode 100755
index 000000000..7f274d057
--- /dev/null
+++ b/companion/src/images/originals/scripts/makewhite.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+mogrify -negate -level 0,0,0 *.png
+
diff --git a/companion/src/images/originals/vector-logo.svg b/companion/src/images/originals/vector-logo.svg
deleted file mode 100644
index 40a99a3b0..000000000
--- a/companion/src/images/originals/vector-logo.svg
+++ /dev/null
@@ -1,104 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- COMPANION
-
-
-
-
-
- O
-
-
-
-
- P
-
-
-
-
- E
-
-
-
-
- N
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/companion/src/images/splash.png b/companion/src/images/splash.png
index 8c55b1551..e9aa7e601 100644
Binary files a/companion/src/images/splash.png and b/companion/src/images/splash.png differ
diff --git a/companion/src/images/splasht.png b/companion/src/images/splasht.png
index 25cdc0871..22a942ac5 100644
Binary files a/companion/src/images/splasht.png and b/companion/src/images/splasht.png differ
diff --git a/companion/src/joystickdialog.cpp b/companion/src/joystickdialog.cpp
index 55b55c761..2c77359a8 100644
--- a/companion/src/joystickdialog.cpp
+++ b/companion/src/joystickdialog.cpp
@@ -130,7 +130,7 @@ void joystickDialog::on_okButton_clicked() {
return;
}
joystick->close();
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
settings.beginGroup("JsCalibration");
for (int i=0; i<8;i++) {
settings.remove(QString("stick%1_axe").arg(i));
diff --git a/companion/src/joystickdialog.ui b/companion/src/joystickdialog.ui
index 25a5fe2c9..2d18fdb0a 100644
--- a/companion/src/joystickdialog.ui
+++ b/companion/src/joystickdialog.ui
@@ -909,7 +909,7 @@
-
+
diff --git a/companion/src/lcdwidget.h b/companion/src/lcdwidget.h
index 52133d8cd..9f01a0b17 100644
--- a/companion/src/lcdwidget.h
+++ b/companion/src/lcdwidget.h
@@ -58,7 +58,7 @@ class lcdWidget : public QWidget {
QPixmap buffer(2*lcdWidth, 2*lcdHeight);
QPainter p(&buffer);
doPaint(p);
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
bool toclipboard=settings.value("snapshot_to_clipboard", false).toBool();
QApplication::clipboard()->setPixmap( buffer );
if (!toclipboard) {
diff --git a/companion/src/logsdialog.cpp b/companion/src/logsdialog.cpp
index e1b415ce9..0c9702239 100644
--- a/companion/src/logsdialog.cpp
+++ b/companion/src/logsdialog.cpp
@@ -38,7 +38,7 @@ logsDialog::logsDialog(QWidget *parent) :
ui->customPlot->legend->setSelectedFont(legendFont);
ui->customPlot->legend->setSelectable(QCPLegend::spItems); // legend box shall not be selectable, only legend items
ui->customPlot->legend->setVisible(false);
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString Path=settings.value("gePath", "").toString();
if (Path.isEmpty() || !QFile(Path).exists()) {
ui->mapsButton->hide();
@@ -202,7 +202,7 @@ void logsDialog::on_mapsButton_clicked() {
,F_F,F_F,F_F,F_F,I_F,I_F,I_F,I_F\
,I_F,I_F,I_F,I_F,I_F,I_F,I_F,I_F,I_F,I_F,I_F,I_F};
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString gePath=settings.value("gePath", "").toString();
if (gePath.isEmpty() || !QFile(gePath).exists()) {
ui->FieldsTW->setDisabled(false);
@@ -262,8 +262,8 @@ void logsDialog::on_mapsButton_clicked() {
QTextStream outputStream(&geFile);
outputStream << "\n\n";
outputStream << "\t\n\t\t" << logFilename << " \n";
- outputStream << "\t\t\n";
- outputStream << "\t\t\n";
+ outputStream << "\t\t\n";
+ outputStream << "\t\t\n";
outputStream << "\t\t\n\t\t\t\n\t\t\t\tnormal \n\t\t\t\t#multiTrack_n \n\t\t\t \n\t\t\t\n\t\t\t\thighlight \n\t\t\t\t#multiTrack_h \n\t\t\t \n\t\t \n";
outputStream << "\t\t\n";
outputStream << "\t\t\n";
@@ -295,10 +295,13 @@ void logsDialog::on_mapsButton_clicked() {
} else {
planeName=logFilename;
}
- outputStream << "\t\t\n\t\t\tLog Data \n\t\t\t\n\t\t\t\t" << planeName << " \n\t\t\t\t#multiTrack \n\t\t\t\t\n";
+ outputStream << "\t\t\n\t\t\tLog Data \n\t\t\t\n\t\t\t\t" << planeName << " ";
+ outputStream << "\n\t\t\t\t#multiTrack ";
+ outputStream << "\n\t\t\t\t\n";
+ outputStream << "\n\t\t\t\t\tabsolute \n";
for (int i=1; ilogTable->item(i-1,1)->isSelected() &&rangeSelected) || !rangeSelected) {
- QString tstamp=csvlog.at(i).at(0)+QString("T")+csvlog.at(i).at(1);
+ QString tstamp=csvlog.at(i).at(0)+QString("T")+csvlog.at(i).at(1)+QString("Z");
outputStream << "\t\t\t\t\t"<< tstamp <<" \n";
}
}
@@ -319,7 +322,7 @@ void logsDialog::on_mapsButton_clicked() {
}
latitude.sprintf("%3.8f", flatitude);
longitude.sprintf("%3.8f", flongitude);
- outputStream << "\t\t\t\t\t" << longitude << " " << latitude << " " << csvlog.at(i).at(altcol) << " \n" ;
+ outputStream << "\t\t\t\t\t" << longitude << " " << latitude << " " << csvlog.at(i).at(altcol).toFloat() << " \n" ;
}
}
outputStream << "\t\t\t\t\t\n\t\t\t\t\t\t\n";
@@ -341,10 +344,14 @@ void logsDialog::on_mapsButton_clicked() {
outputStream << "\t\t\t\t\t\t\t\n";
}
}
- outputStream << "\t\t\t\t\t\t \t\t\t\t\t \n\t\t\t\t \n\t\t\t \n\t\t \n\t \n ";
+ outputStream << "\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n";
geFile.close();
-
- QStringList parameters;
+ QStringList parameters;
+#ifdef __APPLE__
+ gePath = "/usr/bin/open";
+ parameters << "-a";
+ parameters << "Google\ Earth";
+#endif
parameters << geFilename;
QProcess *process = new QProcess(this);
process->start(gePath, parameters);
@@ -578,7 +585,7 @@ void logsDialog::moveLegend()
void logsDialog::on_fileOpen_BT_clicked()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString fileName = QFileDialog::getOpenFileName(this,tr("Select your log file"), settings.value("lastLogDir").toString());
if (!fileName.isEmpty()) {
settings.setValue("lastLogDir", fileName);
diff --git a/companion/src/logsdialog.ui b/companion/src/logsdialog.ui
index 4d0c91939..c645110d0 100644
--- a/companion/src/logsdialog.ui
+++ b/companion/src/logsdialog.ui
@@ -14,7 +14,7 @@
Companion Log Viewer
-
+
:/icon.png :/icon.png
@@ -262,7 +262,7 @@
-
+
:/images/maps.png :/images/maps.png
@@ -285,7 +285,7 @@
-
+
diff --git a/companion/src/main.cpp b/companion/src/main.cpp
index 06ae8167f..ffaea6801 100644
--- a/companion/src/main.cpp
+++ b/companion/src/main.cpp
@@ -76,55 +76,68 @@ class MyProxyStyle : public QProxyStyle
int main(int argc, char *argv[])
{
- Q_INIT_RESOURCE(companion9x);
- QApplication app(argc, argv);
- app.setApplicationName("OpenTX Companion");
+ Q_INIT_RESOURCE(companion);
+ QApplication app(argc, argv);
+ app.setApplicationName("OpenTX Companion");
+ app.setOrganizationName("OpenTX");
+ app.setOrganizationDomain("open-tx.org");
+
#ifdef __APPLE__
- app.setStyle(new MyProxyStyle);
+ app.setStyle(new MyProxyStyle);
#endif
- QString dir;
- if(argc) dir = QFileInfo(argv[0]).canonicalPath() + "/lang";
- QSettings settings("companion9x", "companion9x");
- QString locale = settings.value("locale",QLocale::system().name()).toString();
- bool showSplash = settings.value("show_splash", true).toBool();
+ // Start by borrowing any left over settings from companion9x
+ QSettings c9x_settings("companion9x", "companion9x");
+ QSettings settings;
- QTranslator companionTranslator;
- companionTranslator.load(":/companion_" + locale);
- QTranslator qtTranslator;
- qtTranslator.load((QString)"qt_" + locale.left(2), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
-// qDebug() << locale;
-// qtTranslator.load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
- app.installTranslator(&companionTranslator);
- app.installTranslator(&qtTranslator);
-
- QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
-
- QString firmware_id = settings.value("firmware", default_firmware_variant.id).toString();
- firmware_id.replace("open9x", "opentx");
- firmware_id.replace("x9da", "taranis");
- QPixmap pixmap;
- if (firmware_id.contains("taranis"))
- pixmap = QPixmap(":/images/splasht.png");
- else
- pixmap = QPixmap(":/images/splash.png");
- QSplashScreen *splash = new QSplashScreen(pixmap);
-
- RegisterFirmwares();
-
- settings.setValue("firmware", firmware_id);
- current_firmware_variant = GetFirmwareVariant(firmware_id);
- // qDebug() << current_firmware_variant;
-
- MainWindow mainWin;
-
- if (showSplash) {
- splash->show();
- QTimer::singleShot(1000*SPLASH_TIME, splash, SLOT(close()));
- QTimer::singleShot(1000*SPLASH_TIME, &mainWin, SLOT(show()));
+ if (!settings.contains("pos")) {
+ QStringList keys = c9x_settings.allKeys();
+ for (QStringList::iterator i=keys.begin(); i!=keys.end(); i++) {
+ settings.setValue(*i, c9x_settings.value(*i));
}
- else {
- mainWin.show();
- }
- return app.exec();
+ }
+
+ QString dir;
+ if (argc) dir = QFileInfo(argv[0]).canonicalPath() + "/lang";
+
+ QString locale = settings.value("locale",QLocale::system().name()).toString();
+ bool showSplash = settings.value("show_splash", true).toBool();
+
+ QTranslator companionTranslator;
+ companionTranslator.load(":/companion_" + locale);
+ QTranslator qtTranslator;
+ qtTranslator.load((QString)"qt_" + locale.left(2), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
+ app.installTranslator(&companionTranslator);
+ app.installTranslator(&qtTranslator);
+
+ QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
+
+ QString firmware_id = settings.value("firmware", default_firmware_variant.id).toString();
+ firmware_id.replace("open9x", "opentx");
+ firmware_id.replace("x9da", "taranis");
+
+ QPixmap pixmap = QPixmap(firmware_id.contains("taranis") ? ":/images/splasht.png" : ":/images/splash.png");
+ QSplashScreen *splash = new QSplashScreen(pixmap);
+
+ RegisterFirmwares();
+
+ settings.setValue("firmware", firmware_id);
+ current_firmware_variant = GetFirmwareVariant(firmware_id);
+
+ MainWindow *mainWin = new MainWindow();
+ if (showSplash) {
+ splash->show();
+ QTimer::singleShot(1000*SPLASH_TIME, splash, SLOT(close()));
+ QTimer::singleShot(1000*SPLASH_TIME, mainWin, SLOT(show()));
+ }
+ else {
+ mainWin->show();
+ }
+
+ int result = app.exec();
+
+ delete splash;
+ delete mainWin;
+
+ return result;
}
diff --git a/companion/src/mainwindow.cpp b/companion/src/mainwindow.cpp
index 5b0d0bd64..72a7d0c11 100644
--- a/companion/src/mainwindow.cpp
+++ b/companion/src/mainwindow.cpp
@@ -59,29 +59,29 @@
#include "burndialog.h"
#include "hexinterface.h"
#include "warnings.h"
+#include "helpers.h"
#include "firmwares/opentx/opentxinterface.h" // TODO get rid of this include
-#define DONATE_STR "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QUZ48K4SEXDP2"
+#define DONATE_STR "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QUZ48K4SEXDP2"
+
#ifdef __APPLE__
-#define C9X_STAMP "http://companion9x.googlecode.com/svn/trunk/companion9x-macosx.stamp"
-#define C9X_INSTALLER "/Companion9xMacUpdate.%1.pkg.zip"
-#define C9X_URL "http://companion9x.googlecode.com/files/Companion9xMacUpdate.%1.pkg.zip"
+ #define C9X_STAMP OPENTX_COMPANION_DOWNLOADS "/companion-macosx.stamp"
+ #define C9X_INSTALLER "/CompanionMacUpdate.%1.pkg.zip"
#else
-#define C9X_STAMP "http://companion9x.googlecode.com/svn/trunk/companion9x.stamp"
-#define C9X_INSTALLER "/companion9xInstall_v%1.exe"
-#define C9X_URL "http://companion9x.googlecode.com/files/companion9xInstall_v%1.exe"
+ #define C9X_STAMP OPENTX_COMPANION_DOWNLOADS "/companion-windows.stamp"
+ #define C9X_INSTALLER "/companionInstall_%1.exe"
#endif
#if defined WIN32 || !defined __GNUC__
-#include
-#define sleep(x) Sleep(x*1000)
+ #include
+ #define sleep(x) Sleep(x*1000)
#else
-#include
-#include "mountlist.h"
+ #include
+ #include "mountlist.h"
#endif
MainWindow::MainWindow():
-downloadDialog_forWait(NULL)
+ downloadDialog_forWait(NULL)
{
mdiArea = new QMdiArea;
mdiArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
@@ -94,6 +94,26 @@ downloadDialog_forWait(NULL)
this, SLOT(setActiveSubWindow(QWidget*)));
MaxRecentFiles=MAX_RECENT;
+ QSettings settings;
+ int icon_size=settings.value("icon_size", 1).toInt();
+ switch (icon_size) {
+ case 0:
+ ISize="16";
+ break;
+ case 1:
+ ISize="24";
+ break;
+ case 2:
+ ISize="32";
+ break;
+ case 3:
+ ISize="48";
+ break;
+ default:
+ ISize="24";
+ break;
+ }
+ restoreGeometry(settings.value("mainWindowGeometry").toByteArray());
createActions();
createMenus();
createToolBars();
@@ -109,15 +129,16 @@ downloadDialog_forWait(NULL)
}
setUnifiedTitleAndToolBarOnMac(true);
this->setWindowIcon(QIcon(":/icon.png"));
+ this->setIconSize(QSize(32,32));
QNetworkProxyFactory::setUseSystemConfiguration(true);
setAcceptDrops(true);
// give time to the splash to disappear and main window to open before starting updates
int updateDelay = 1000;
- QSettings settings("companion9x", "companion9x");
bool showSplash = settings.value("show_splash", true).toBool();
- if (showSplash)
- updateDelay += (SPLASH_TIME*1000);
+ if (showSplash) {
+ updateDelay += (SPLASH_TIME*1000);
+ }
QTimer::singleShot(updateDelay, this, SLOT(doAutoUpdates()));
QTimer::singleShot(updateDelay, this, SLOT(displayWarnings()));
@@ -167,7 +188,7 @@ downloadDialog_forWait(NULL)
void MainWindow::displayWarnings()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
int warnId=settings.value("warningId", 0 ).toInt();
if (warnIdstamp;
@@ -267,7 +288,7 @@ void MainWindow::checkForUpdateFinished(QNetworkReply * reply)
"Would you like to download it?").arg(version) ,
QMessageBox::Yes | QMessageBox::No);
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
if (ret == QMessageBox::Yes) {
#if defined __APPLE__
@@ -277,14 +298,14 @@ void MainWindow::checkForUpdateFinished(QNetworkReply * reply)
#endif
if (!fileName.isEmpty()) {
settings.setValue("lastUpdatesDir", QFileInfo(fileName).dir().absolutePath());
- downloadDialog * dd = new downloadDialog(this, QString(C9X_URL).arg(version), fileName);
+ downloadDialog * dd = new downloadDialog(this, QString(OPENTX_COMPANION_DOWNLOADS C9X_INSTALLER).arg(version), fileName);
installer_fileName = fileName;
connect(dd, SIGNAL(accepted()), this, SLOT(updateDownloaded()));
dd->show();
}
}
#else
- QMessageBox::warning(this, tr("New release available"), tr("A new release of Companion is available please check the repository"));
+ QMessageBox::warning(this, tr("New release available"), tr("A new release of Companion is available please check the OpenTX website!"));
#endif
} else {
if (showcheckForUpdatesResult && check1done && check2done)
@@ -309,7 +330,7 @@ void MainWindow::updateDownloaded()
void MainWindow::downloadLatestFW(FirmwareInfo * firmware, const QString & firmwareId)
{
QString url, ext, cpuid;
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
url = firmware->getUrl(firmwareId);
cpuid=settings.value("cpuid","").toString();
ext = url.mid(url.lastIndexOf("."));
@@ -332,7 +353,7 @@ void MainWindow::downloadLatestFW(FirmwareInfo * firmware, const QString & firmw
void MainWindow::reply1Accepted()
{
QString errormsg;
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
bool autoflash=settings.value("burnFirmware", true).toBool();
bool addversion=settings.value("rename_firmware_files", false).toBool();
settings.beginGroup("FwRevisions");
@@ -456,7 +477,7 @@ void MainWindow::reply1Finished(QNetworkReply * reply)
// TODO delete downloadDialog_forWait?
}
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
cpuid=settings.value("cpuid","").toString();
QByteArray qba = reply->readAll();
int i = qba.indexOf("SVN_VERS");
@@ -608,11 +629,14 @@ void MainWindow::reply1Finished(QNetworkReply * reply)
void MainWindow::closeEvent(QCloseEvent *event)
{
+ QSettings settings;
+ settings.setValue("mainWindowGeometry", saveGeometry());
+ settings.setValue("mainWindowState", saveState());
mdiArea->closeAllSubWindows();
if (mdiArea->currentSubWindow()) {
event->ignore();
- } else {
- writeSettings();
+ }
+ else {
event->accept();
}
}
@@ -626,7 +650,7 @@ void MainWindow::newFile()
void MainWindow::openFile()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString fileName = QFileDialog::getOpenFileName(this, tr("Open"), settings.value("lastDir").toString(),tr(EEPROM_FILES_FILTER));
if (!fileName.isEmpty()) {
settings.setValue("lastDir", QFileInfo(fileName).dir().absolutePath());
@@ -659,7 +683,7 @@ void MainWindow::saveAs()
void MainWindow::openRecentFile()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QAction *action = qobject_cast(sender());
if (action) {
QString fileName=action->data().toString();
@@ -681,14 +705,14 @@ void MainWindow::openRecentFile()
void MainWindow::loadProfile()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QAction *action = qobject_cast(sender());
int chord,defmod, burnfw;
bool renfw;
if (action) {
int profnum=action->data().toInt();
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
settings.setValue("ActiveProfile",profnum);
settings.beginGroup("Profiles");
QString profile=QString("profile%1").arg(profnum);
@@ -733,8 +757,8 @@ void MainWindow::unloadProfile()
{
ActiveProfile=0;
ActiveProfileName="";
- QSettings settings("companion9x", "companion9x");
- settings.setValue("ActiveProfile",0);
+ QSettings settings;
+ settings.setValue("ActiveProfile", 0);
FirmwareInfo *firmware = GetCurrentFirmware();
setWindowTitle(tr("Companion - Models and Settings Editor - %1").arg(firmware->name));
}
@@ -746,7 +770,8 @@ void MainWindow::preferences()
FirmwareInfo *firmware = GetCurrentFirmware();
if (ActiveProfile) {
setWindowTitle(tr("Companion - Models and Settings Editor - %1 - profile %2").arg(firmware->name).arg(ActiveProfileName));
- } else {
+ }
+ else {
setWindowTitle(tr("Companion - Models and Settings Editor - %1").arg(firmware->name));
}
@@ -1056,17 +1081,17 @@ void MainWindow::burnFrom()
QStringList str;
str << path << tempFile;
avrOutputDialog *ad = new avrOutputDialog(this,"", str, tr("Read Models and Settings From Tx")); //, AVR_DIALOG_KEEP_OPEN);
- ad->setWindowIcon(QIcon(":/images/read_eeprom.png"));
+ ad->setWindowIcon(CompanionIcon("read_eeprom.png"));
res = ad->exec();
sleep(1);
}
} else {
QStringList str = GetReceiveEEpromCommand(tempFile);
avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, tr("Read Models and Settings From Tx")); //, AVR_DIALOG_KEEP_OPEN);
- ad->setWindowIcon(QIcon(":/images/read_eeprom.png"));
+ ad->setWindowIcon(CompanionIcon("read_eeprom.png"));
res = ad->exec();
}
- if(QFileInfo(tempFile).exists() && res) {
+ if (QFileInfo(tempFile).exists() && res) {
MdiChild *child = createMdiChild();
child->newFile();
child->loadFile(tempFile, false);
@@ -1076,7 +1101,7 @@ void MainWindow::burnFrom()
void MainWindow::burnExtenalToEEPROM()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString fileName;
bool backup = false;
burnDialog *cd = new burnDialog(this, 1, &fileName, &backup);
@@ -1113,14 +1138,14 @@ void MainWindow::burnExtenalToEEPROM()
QStringList str;
str << path << backupFile;
avrOutputDialog *ad = new avrOutputDialog(this,"", str, tr("Backup Models and Settings From Tx")); //, AVR_DIALOG_KEEP_OPEN);
- ad->setWindowIcon(QIcon(":/images/read_eeprom.png"));
+ ad->setWindowIcon(CompanionIcon("read_eeprom.png"));
ad->exec();
sleep(1);
}
} else {
QStringList str = GetReceiveEEpromCommand(backupFile);
avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, tr("Backup Models and Settings From Tx"));
- ad->setWindowIcon(QIcon(":/images/read_eeprom.png"));
+ ad->setWindowIcon(CompanionIcon("read_eeprom.png"));
ad->exec();
sleep(1);
}
@@ -1130,7 +1155,7 @@ void MainWindow::burnExtenalToEEPROM()
QString tempFlash = tempDir + "/flash.bin";
QStringList str = GetReceiveFlashCommand(tempFlash);
avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, "Read Firmware From Tx");
- ad->setWindowIcon(QIcon(":/images/read_flash.png"));
+ ad->setWindowIcon(CompanionIcon("read_flash.png"));
ad->exec();
sleep(1);
QString restoreFile = tempDir + "/compat.bin";
@@ -1143,7 +1168,8 @@ void MainWindow::burnExtenalToEEPROM()
int rev = getEpromVersion(restoreFile);
if ((rev / 100) != (oldrev / 100)) {
QMessageBox::warning(this, tr("Warning"), tr("The transmitter firmware belongs to another product family, check file and preferences!"));
- } else if (rev < oldrev) {
+ }
+ else if (rev < oldrev) {
QMessageBox::warning(this, tr("Warning"), tr("The transmitter firmware is outdated, please upgrade!"));
}
fileName = restoreFile;
@@ -1163,15 +1189,18 @@ void MainWindow::burnExtenalToEEPROM()
QStringList str;
str << path << backupFile;
avrOutputDialog *ad = new avrOutputDialog(this,"", str, tr("Backup Models and Settings From Tx")); //, AVR_DIALOG_KEEP_OPEN);
- ad->setWindowIcon(QIcon(":/images/read_eeprom.png"));
+ ad->setWindowIcon(CompanionIcon("read_eeprom.png"));
ad->exec();
+ delete ad;
sleep(1);
}
- } else {
+ }
+ else {
QStringList str = ((MainWindow *)this->parent())->GetReceiveEEpromCommand(backupFile);
avrOutputDialog *ad = new avrOutputDialog(this, ((MainWindow *)this->parent())->GetAvrdudeLocation(), str, tr("Backup Models and Settings From Tx"));
- ad->setWindowIcon(QIcon(":/images/read_eeprom.png"));
+ ad->setWindowIcon(CompanionIcon("read_eeprom.png"));
ad->exec();
+ delete ad;
sleep(1);
}
}
@@ -1181,19 +1210,23 @@ void MainWindow::burnExtenalToEEPROM()
if (path.isEmpty()) {
QMessageBox::warning(this, tr("Taranis radio not found"), tr("Impossible to identify the radio on your system, please verify the eeprom disk is connected."));
return;
- } else {
+ }
+ else {
QStringList str;
str << fileName << path;
avrOutputDialog *ad = new avrOutputDialog(this,"", str, tr("Write Models and Settings To Tx")); //, AVR_DIALOG_KEEP_OPEN);
- ad->setWindowIcon(QIcon(":/images/read_eeprom.png"));
+ ad->setWindowIcon(CompanionIcon("read_eeprom.png"));
ad->exec();
+ delete ad;
sleep(1);
}
- } else {
+ }
+ else {
QStringList str = GetSendEEpromCommand(fileName);
avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, "Write Models and Settings To Tx", AVR_DIALOG_SHOW_DONE);
- ad->setWindowIcon(QIcon(":/images/write_eeprom.png"));
+ ad->setWindowIcon(CompanionIcon("write_eeprom.png"));
ad->exec();
+ delete ad;
}
}
}
@@ -1285,7 +1318,8 @@ bool MainWindow::convertEEPROM(QString backupFile, QString restoreFile, QString
} else {
version = fwBuild.toInt(); // TODO changer le nom de la variable
}
- } else {
+ }
+ else {
version = ((Open9xFirmware *)firmware)->getEepromVersion(revision);
}
}
@@ -1302,11 +1336,8 @@ bool MainWindow::convertEEPROM(QString backupFile, QString restoreFile, QString
long result = file.read((char*)eeprom, eeprom_size);
file.close();
- RadioData radioData;
- if (!LoadEeprom(radioData, eeprom, eeprom_size))
- return false;
-
- if (!firmware->saveEEPROM(eeprom, radioData, variant, version))
+ QSharedPointer radioData = QSharedPointer(new RadioData());
+ if (!LoadEeprom(*radioData, eeprom, eeprom_size) || !firmware->saveEEPROM(eeprom, *radioData, variant, version))
return false;
QFile file2(restoreFile);
@@ -1324,7 +1355,7 @@ bool MainWindow::convertEEPROM(QString backupFile, QString restoreFile, QString
void MainWindow::burnToFlash(QString fileToFlash)
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString fileName;
bool backup = settings.value("backupOnFlash", false).toBool();
if(!fileToFlash.isEmpty())
@@ -1357,14 +1388,17 @@ void MainWindow::burnToFlash(QString fileToFlash)
}
QStringList str = GetReceiveEEpromCommand(backupFile);
avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, tr("Backup Models and Settings From Tx"), AVR_DIALOG_CLOSE_IF_SUCCESSFUL);
- ad->setWindowIcon(QIcon(":/images/read_eeprom.png"));
+ ad->setWindowIcon(CompanionIcon("read_eeprom.png"));
int res = ad->exec();
+ delete ad;
if (QFileInfo(backupFile).exists() && res) {
sleep(1);
QStringList str = GetSendFlashCommand(fileName);
avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, tr("Write Firmware To Tx"), AVR_DIALOG_CLOSE_IF_SUCCESSFUL);
- ad->setWindowIcon(QIcon(":/images/write_flash.png"));
+ CompanionIcon iconw("write_eeprom.png");
+ ad->setWindowIcon(iconw);
int res = ad->exec();
+ delete ad;
if (res) {
QString restoreFile = tempDir + "/restore.bin";
if (!convertEEPROM(backupFile, restoreFile, fileName)) {
@@ -1374,18 +1408,22 @@ void MainWindow::burnToFlash(QString fileToFlash)
sleep(1);
QStringList str = GetSendEEpromCommand(restoreFile);
avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, tr("Restore Models and Settings To Tx"), AVR_DIALOG_CLOSE_IF_SUCCESSFUL);
- ad->setWindowIcon(QIcon(":/images/write_eeprom.png"));
- res=ad->exec();
+ ad->setWindowIcon(iconw);
+ res = ad->exec();
+ delete ad;
if (!res) {
QMessageBox::warning(this, tr("Restore failed"), tr("Could not restore Models and Settings to TX. The models and settings data file can be found at: %1").arg(backupFile));
}
- } else {
+ }
+ else {
QMessageBox::warning(this, tr("Firmware write failed"), tr("Could not write firmware to to transmitter. The models and settings data file can be found at: %1").arg(backupFile));
}
- } else {
+ }
+ else {
QMessageBox::warning(this, tr("Backup failed"), tr("Cannot backup existing Models and Settings from TX. Firmware write process aborted"));
}
- } else {
+ }
+ else {
bool backupEnable=settings.value("backupEnable", true).toBool();
QString backupPath=settings.value("backupPath", "").toString();
if (!QDir(backupPath).exists()) {
@@ -1399,22 +1437,24 @@ void MainWindow::burnToFlash(QString fileToFlash)
QString backupFile=backupPath+"/backup-"+QDateTime().currentDateTime().toString("yyyy-MM-dd-hhmmss")+".bin";
QStringList str = GetReceiveEEpromCommand(backupFile);
avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, tr("Backup Models and Settings From Tx"));
- ad->setWindowIcon(QIcon(":/images/read_eeprom.png"));
+ ad->setWindowIcon(CompanionIcon("read_eeprom.png"));
ad->exec();
+ delete ad;
sleep(1);
}
QStringList str = GetSendFlashCommand(fileName);
avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, tr("Write Firmware To Tx"), AVR_DIALOG_SHOW_DONE);
- ad->setWindowIcon(QIcon(":/images/write_flash.png"));
+ ad->setWindowIcon(CompanionIcon("write_flash.png"));
ad->exec();
+ delete ad;
}
}
}
void MainWindow::burnExtenalFromEEPROM()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString fileName = QFileDialog::getSaveFileName(this, tr("Save transmitter Models and Settings to File"), settings.value("lastDir").toString(), tr(EXTERNAL_EEPROM_FILES_FILTER));
if (!fileName.isEmpty()) {
EEPROMInterface *eepromInterface = GetEepromInterface();
@@ -1423,26 +1463,30 @@ void MainWindow::burnExtenalFromEEPROM()
if (path.isEmpty()) {
QMessageBox::warning(this, tr("Taranis radio not found"), tr("Impossible to identify the radio on your system, please verify that the eeprom disk is connected."));
return;
- } else {
+ }
+ else {
QStringList str;
str << path << fileName;
avrOutputDialog *ad = new avrOutputDialog(this,"", str, tr("Read Models and Settings From Tx")); //, AVR_DIALOG_KEEP_OPEN);
- ad->setWindowIcon(QIcon(":/images/read_eeprom.png"));
+ ad->setWindowIcon(CompanionIcon("read_eeprom.png"));
ad->exec();
+ delete ad;
}
- } else {
+ }
+ else {
settings.setValue("lastDir", QFileInfo(fileName).dir().absolutePath());
QStringList str = GetReceiveEEpromCommand(fileName);
avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, tr("Read Models and Settings From Tx"));
- ad->setWindowIcon(QIcon(":/images/read_eeprom.png"));
+ ad->setWindowIcon(CompanionIcon("read_eeprom.png"));
ad->exec();
+ delete ad;
}
}
}
void MainWindow::burnFromFlash()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString fileName = QFileDialog::getSaveFileName(this,tr("Read Tx Firmware to File"), settings.value("lastFlashDir").toString(),tr(FLASH_FILES_FILTER));
if (!fileName.isEmpty()) {
QFile file(fileName);
@@ -1452,10 +1496,10 @@ void MainWindow::burnFromFlash()
settings.setValue("lastFlashDir",QFileInfo(fileName).dir().absolutePath());
QStringList str = GetReceiveFlashCommand(fileName);
avrOutputDialog *ad = new avrOutputDialog(this, GetAvrdudeLocation(), str, "Read Firmware From Tx");
- ad->setWindowIcon(QIcon(":/images/read_flash.png"));
+ ad->setWindowIcon(CompanionIcon("read_flash.png"));
ad->exec();
+ delete ad;
}
-
}
void MainWindow::burnConfig()
@@ -1490,16 +1534,20 @@ void MainWindow::logFile()
void MainWindow::about()
{
- QString aboutStr = " ";
- aboutStr.append("OpenTX Home Page: http://open-tx.org ");
- aboutStr.append(tr("The Companion project was originally forked from eePe")+QString(" http://code.google.com/p/eepe "));
- aboutStr.append(tr("If you've found this program useful, please support by"));
- aboutStr.append(" ");
- aboutStr.append(tr("donating") + " ");
- aboutStr.append(tr("Version %1 (revision %2), %3").arg(C9X_VERSION).arg(C9X_REVISION).arg(__DATE__)+QString(" "));
- aboutStr.append(tr("Copyright") +" Bertrand Songis & Romolo Manfredini © 2011- 2014 ");
-
- QMessageBox::about(this, tr("About Companion"),aboutStr);
+ QString aboutStr = " ";
+ aboutStr.append(tr("OpenTX Home Page: %1 ").arg("http://www.open-tx.org"));
+ aboutStr.append(" ");
+ aboutStr.append(tr("The OpenTX Companion project was originally forked from eePe ").arg("http://code.google.com/p/eepe"));
+ aboutStr.append(" ");
+ aboutStr.append(tr("If you've found this program useful, please support by donating ").arg(DONATE_STR));
+ aboutStr.append(" ");
+ aboutStr.append(tr("Version %1, %3").arg(C9X_VERSION).arg(__DATE__));
+ aboutStr.append(" ");
+ aboutStr.append(tr("Copyright") + " Bertrand Songis & Romolo Manfredini © 2011-2014 ");
+ QMessageBox msgBox(this);
+ msgBox.setWindowTitle(tr("About Companion"));
+ msgBox.setText(aboutStr);
+ msgBox.exec();
}
void MainWindow::updateMenus()
@@ -1528,7 +1576,7 @@ void MainWindow::updateMenus()
updateRecentFileActions();
updateProfilesActions();
bool notfound=true;
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
settings.beginGroup("Profiles");
for (int i=0; isetShortcuts(QKeySequence::New);
newAct->setStatusTip(tr("Create a new file"));
connect(newAct, SIGNAL(triggered()), this, SLOT(newFile()));
- openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this);
+ openAct = new QAction(CompanionIcon("open.png"), tr("&Open..."), this);
openAct->setShortcuts(QKeySequence::Open);
openAct->setStatusTip(tr("Open an existing file"));
connect(openAct, SIGNAL(triggered()), this, SLOT(openFile()));
- loadbackupAct = new QAction(QIcon(":/images/open.png"), tr("&loadBackup..."), this);
+ loadbackupAct = new QAction(CompanionIcon("open.png"), tr("&loadBackup..."), this);
loadbackupAct->setStatusTip(tr("Load backup from file"));
connect(loadbackupAct, SIGNAL(triggered()), this, SLOT(loadBackup()));
- saveAct = new QAction(QIcon(":/images/save.png"), tr("&Save"), this);
+ saveAct = new QAction(CompanionIcon("save.png"), tr("&Save"), this);
saveAct->setShortcuts(QKeySequence::Save);
saveAct->setStatusTip(tr("Save the document to disk"));
connect(saveAct, SIGNAL(triggered()), this, SLOT(save()));
- saveAsAct = new QAction(QIcon(":/images/saveas.png"), tr("Save &As..."), this);
+ saveAsAct = new QAction(CompanionIcon("saveas.png"), tr("Save &As..."), this);
saveAsAct->setShortcuts(QKeySequence::SaveAs);
saveAsAct->setStatusTip(tr("Save the document under a new name"));
connect(saveAsAct, SIGNAL(triggered()), this, SLOT(saveAs()));
- logsAct = new QAction(QIcon(":/images/logs.png"), tr("Lo&gs"), this);
+ logsAct = new QAction(CompanionIcon("logs.png"), tr("Lo&gs"), this);
logsAct->setShortcut(tr("Ctrl+G"));
logsAct->setStatusTip(tr("Open log file"));
connect(logsAct, SIGNAL(triggered()), this, SLOT(logFile()));
- preferencesAct = new QAction(QIcon(":/images/preferences.png"), tr("&Preferences..."), this);
+ preferencesAct = new QAction(CompanionIcon("preferences.png"), tr("&Preferences..."), this);
preferencesAct->setStatusTip(tr("Edit general preferences"));
connect(preferencesAct, SIGNAL(triggered()), this, SLOT(preferences()));
- checkForUpdatesAct = new QAction(QIcon(":/images/update.png"), tr("&Check for updates..."), this);
+ checkForUpdatesAct = new QAction(CompanionIcon("update.png"), tr("&Check for updates..."), this);
checkForUpdatesAct->setStatusTip(tr("Check for new version of Companion"));
connect(checkForUpdatesAct, SIGNAL(triggered()), this, SLOT(doUpdates()));
- contributorsAct = new QAction(QIcon(":/images/contributors.png"), tr("Contributors &List..."), this);
+ contributorsAct = new QAction(CompanionIcon("contributors.png"), tr("Contributors &List..."), this);
contributorsAct->setStatusTip(tr("Show Companion contributors list"));
connect(contributorsAct, SIGNAL(triggered()), this, SLOT(contributors()));
- changelogAct = new QAction(QIcon(":/images/changelog.png"), tr("ChangeLog..."), this);
+ changelogAct = new QAction(CompanionIcon("changelog.png"), tr("ChangeLog..."), this);
changelogAct->setStatusTip(tr("Show Companion changelog"));
connect(changelogAct, SIGNAL(triggered()), this, SLOT(changelog()));
- fwchangelogAct = new QAction(QIcon(":/images/changelog.png"), tr("Firmware ChangeLog..."), this);
+ fwchangelogAct = new QAction(CompanionIcon("changelog.png"), tr("Firmware ChangeLog..."), this);
fwchangelogAct->setStatusTip(tr("Show firmware changelog"));
connect(fwchangelogAct, SIGNAL(triggered()), this, SLOT(fwchangelog()));
- compareAct = new QAction(QIcon(":/images/compare.png"), tr("Compare..."), this);
+ compareAct = new QAction(CompanionIcon("compare.png"), tr("Compare..."), this);
compareAct->setStatusTip(tr("Compare models"));
compareAct->setEnabled(false);
connect(compareAct, SIGNAL(triggered()), this, SLOT(compare()));
- customizeSplashAct = new QAction(QIcon(":/images/customize.png"), tr("Customize your &TX..."), this);
+ customizeSplashAct = new QAction(CompanionIcon("paintbrush.png"), tr("Customize your &TX..."), this);
customizeSplashAct->setStatusTip(tr("Customize the splash screen of your TX"));
connect(customizeSplashAct, SIGNAL(triggered()), this, SLOT(customizeSplash()));
-
-//! [0]
- exitAct = new QAction(QIcon(":/images/exit.png"), tr("E&xit"), this);
+ exitAct = new QAction(CompanionIcon("exit.png"), tr("E&xit"), this);
exitAct->setShortcuts(QKeySequence::Quit);
exitAct->setStatusTip(tr("Exit the application"));
connect(exitAct, SIGNAL(triggered()), qApp, SLOT(closeAllWindows()));
-//! [0]
- cutAct = new QAction(QIcon(":/images/cut.png"), tr("Cu&t"), this);
+ cutAct = new QAction(CompanionIcon("cut.png"), tr("Cu&t"), this);
cutAct->setShortcuts(QKeySequence::Cut);
cutAct->setStatusTip(tr("Cut the current selection's contents to the "
"clipboard"));
connect(cutAct, SIGNAL(triggered()), this, SLOT(cut()));
- copyAct = new QAction(QIcon(":/images/copy.png"), tr("&Copy"), this);
+ copyAct = new QAction(CompanionIcon("copy.png"), tr("&Copy"), this);
copyAct->setShortcuts(QKeySequence::Copy);
copyAct->setStatusTip(tr("Copy the current selection's contents to the "
"clipboard"));
connect(copyAct, SIGNAL(triggered()), this, SLOT(copy()));
- pasteAct = new QAction(QIcon(":/images/paste.png"), tr("&Paste"), this);
+ pasteAct = new QAction(CompanionIcon("paste.png"), tr("&Paste"), this);
pasteAct->setShortcuts(QKeySequence::Paste);
pasteAct->setStatusTip(tr("Paste the clipboard's contents into the current "
"selection"));
connect(pasteAct, SIGNAL(triggered()), this, SLOT(paste()));
-
- burnToAct = new QAction(QIcon(":/images/write_eeprom.png"), tr("&Write Models and Settings To Tx"), this);
+ burnToAct = new QAction(CompanionIcon("write_eeprom.png"), tr("&Write Models and Settings To Tx"), this);
burnToAct->setShortcut(tr("Ctrl+Alt+W"));
burnToAct->setStatusTip(tr("Write Models and Settings to transmitter"));
connect(burnToAct,SIGNAL(triggered()),this,SLOT(burnTo()));
- burnFromAct = new QAction(QIcon(":/images/read_eeprom.png"), tr("&Read Models and Settings From Tx"), this);
+ burnFromAct = new QAction(CompanionIcon("read_eeprom.png"), tr("&Read Models and Settings From Tx"), this);
burnFromAct->setShortcut(tr("Ctrl+Alt+R"));
burnFromAct->setStatusTip(tr("Read Models and Settings from transmitter"));
connect(burnFromAct,SIGNAL(triggered()),this,SLOT(burnFrom()));
- burnToFlashAct = new QAction(QIcon(":/images/write_flash.png"), tr("Write Firmware"), this);
+ burnToFlashAct = new QAction(CompanionIcon("write_flash.png"), tr("Write Firmware"), this);
burnToFlashAct->setStatusTip(tr("Write firmware to transmitter"));
connect(burnToFlashAct,SIGNAL(triggered()),this,SLOT(burnToFlash()));
- burnExtenalToEEPROMAct = new QAction(QIcon(":/images/write_eeprom_file.png"), tr("Write Models and Settings from file to Tx"), this);
+ burnExtenalToEEPROMAct = new QAction(CompanionIcon("write_eeprom_file.png"), tr("Write Models and Settings from file to Tx"), this);
burnExtenalToEEPROMAct->setStatusTip(tr("Write Models and Settings from file to transmitter"));
connect(burnExtenalToEEPROMAct,SIGNAL(triggered()),this,SLOT(burnExtenalToEEPROM()));
- burnExtenalFromEEPROMAct = new QAction(QIcon(":/images/read_eeprom_file.png"), tr("Save transmitter Models and Settings to file"), this);
+ burnExtenalFromEEPROMAct = new QAction(CompanionIcon("read_eeprom_file.png"), tr("Save transmitter Models and Settings to file"), this);
burnExtenalFromEEPROMAct->setStatusTip(tr("Save the Models and Settings from the transmitter to a file"));
connect(burnExtenalFromEEPROMAct,SIGNAL(triggered()),this,SLOT(burnExtenalFromEEPROM()));
- burnFromFlashAct = new QAction(QIcon(":/images/read_flash.png"), tr("Read Firmware"), this);
+ burnFromFlashAct = new QAction(CompanionIcon("read_flash.png"), tr("Read Firmware"), this);
burnFromFlashAct->setStatusTip(tr("Read firmware from transmitter"));
connect(burnFromFlashAct,SIGNAL(triggered()),this,SLOT(burnFromFlash()));
- burnConfigAct = new QAction(QIcon(":/images/configure.png"), tr("&Configure..."), this);
+ burnConfigAct = new QAction(CompanionIcon("configure.png"), tr("&Configure..."), this);
burnConfigAct->setStatusTip(tr("Configure software for reading from and writing to the transmitter"));
connect(burnConfigAct,SIGNAL(triggered()),this,SLOT(burnConfig()));
EEPROMInterface *eepromInterface = GetEepromInterface();
if (!IS_ARM(eepromInterface->getBoard())) {
- burnListAct = new QAction(QIcon(":/images/list.png"), tr("&List programmers"), this);
+ burnListAct = new QAction(CompanionIcon("list.png"), tr("&List programmers"), this);
burnListAct->setStatusTip(tr("List available programmers"));
connect(burnListAct,SIGNAL(triggered()),this,SLOT(burnList()));
- burnFusesAct = new QAction(QIcon(":/images/fuses.png"), tr("&Fuses..."), this);
+ burnFusesAct = new QAction(CompanionIcon("fuses.png"), tr("&Fuses..."), this);
burnFusesAct->setStatusTip(tr("Show fuses dialog"));
connect(burnFusesAct,SIGNAL(triggered()),this,SLOT(burnFuses()));
}
- simulateAct = new QAction(QIcon(":/images/simulate.png"), tr("&Simulate"), this);
+
+ simulateAct = new QAction(CompanionIcon("simulate.png"), tr("&Simulate"), this);
simulateAct->setShortcut(tr("Alt+S"));
simulateAct->setStatusTip(tr("Simulate selected model."));
simulateAct->setEnabled(false);
connect(simulateAct,SIGNAL(triggered()),this,SLOT(simulate()));
- printAct = new QAction(QIcon(":/images/print.png"), tr("&Print"), this);
+ printAct = new QAction(CompanionIcon("print.png"), tr("&Print"), this);
printAct->setShortcut(tr("Ctrl+P"));
printAct->setStatusTip(tr("Print current model."));
printAct->setEnabled(false);
@@ -1762,11 +1807,11 @@ void MainWindow::createActions()
separatorAct = new QAction(this);
separatorAct->setSeparator(true);
- aboutAct = new QAction(QIcon(":/icon.png"), tr("&About"), this);
+ aboutAct = new QAction(CompanionIcon("information.png"), tr("&About"), this);
aboutAct->setStatusTip(tr("Show the application's About box"));
connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));
- switchLayoutDirectionAct = new QAction(QIcon(":/images/switch_dir.png"), tr("Switch layout direction"), this);
+ switchLayoutDirectionAct = new QAction(CompanionIcon("switch_dir.png"), tr("Switch layout direction"), this);
switchLayoutDirectionAct->setStatusTip(tr("Switch layout Left/Right"));
connect(switchLayoutDirectionAct, SIGNAL(triggered()), this, SLOT(switchLayoutDirection()));
for (int i = 0; i < MaxRecentFiles; ++i) {
@@ -1796,8 +1841,8 @@ void MainWindow::createMenus()
fileMenu->addAction(saveAct);
fileMenu->addAction(saveAsAct);
fileMenu->addMenu(recentFileMenu);
- recentFileMenu->setIcon(QIcon(":/images/recentdocument.png"));
- for ( int i = 0; i < MaxRecentFiles; ++i)
+ recentFileMenu->setIcon(CompanionIcon("recentdocument.png"));
+ for (int i=0; iaddAction(recentFileActs[i]);
fileMenu->addSeparator();
fileMenu->addAction(logsAct);
@@ -1809,8 +1854,8 @@ void MainWindow::createMenus()
fileMenu->addAction(preferencesAct);
fileMenu->addMenu(profilesMenu);
- profilesMenu->setIcon(QIcon(":/images/profiles.png"));
- for ( int i = 0; i < MAX_PROFILES; ++i)
+ profilesMenu->setIcon(CompanionIcon("profiles.png"));
+ for (int i=0; iaddAction(profileActs[i]);
fileMenu->addAction(switchLayoutDirectionAct);
fileMenu->addAction(exitAct);
@@ -1846,10 +1891,10 @@ void MainWindow::createMenus()
helpMenu = menuBar()->addMenu(tr("&Help"));
helpMenu->addSeparator();
- helpMenu->addAction(aboutAct);
- helpMenu->addSeparator();
helpMenu->addAction(checkForUpdatesAct);
helpMenu->addSeparator();
+ helpMenu->addAction(aboutAct);
+ helpMenu->addSeparator();
helpMenu->addAction(changelogAct);
helpMenu->addAction(fwchangelogAct);
helpMenu->addSeparator();
@@ -1874,13 +1919,32 @@ QMenu *MainWindow::createProfilesMenu()
void MainWindow::createToolBars()
{
+ QSettings settings;
+ int icon_size=settings.value("icon_size",2 ).toInt();
+ QSize size;
+ switch(icon_size) {
+ case 0:
+ size=QSize(16,16);
+ break;
+ case 1:
+ size=QSize(24,24);
+ break;
+ case 3:
+ size=QSize(48,48);
+ break;
+ default:
+ size=QSize(32,32);
+ break;
+ }
fileToolBar = addToolBar(tr("File"));
+ fileToolBar->setIconSize(size);
+ fileToolBar->setObjectName("File");
fileToolBar->addAction(newAct);
fileToolBar->addAction(openAct);
QToolButton * recentToolButton = new QToolButton;
recentToolButton->setPopupMode(QToolButton::InstantPopup);
recentToolButton->setMenu(createRecentFileMenu());
- recentToolButton->setIcon(QIcon(":/images/recentdocument.png"));
+ recentToolButton->setIcon(CompanionIcon("recentdocument.png"));
recentToolButton->setToolTip(tr("Recent Files"));
fileToolBar->addWidget(recentToolButton);
fileToolBar->addAction(saveAct);
@@ -1890,11 +1954,10 @@ void MainWindow::createToolBars()
profileButton = new QToolButton;
profileButton->setPopupMode(QToolButton::InstantPopup);
profileButton->setMenu(createProfilesMenu());
- profileButton->setIcon(QIcon(":/images/profiles.png"));
+ profileButton->setIcon(CompanionIcon("profiles.png"));
profileButton->setToolTip(tr("Firmware Profiles"));
fileToolBar->addWidget(profileButton);
bool notfound=true;
- QSettings settings("companion9x", "companion9x");
settings.beginGroup("Profiles");
for (int i=0; iaddAction(compareAct);
editToolBar = addToolBar(tr("Edit"));
+ editToolBar->setIconSize(size);
+ editToolBar->setObjectName("Edit");
editToolBar->addAction(cutAct);
editToolBar->addAction(copyAct);
editToolBar->addAction(pasteAct);
- burnToolBar = addToolBar(tr("Write"));
+
+ burnToolBar = new QToolBar(tr("Write"));
+ addToolBar( Qt::LeftToolBarArea, burnToolBar );
+ burnToolBar->setIconSize(size);
+ burnToolBar->setObjectName("Write");
burnToolBar->addAction(burnToAct);
burnToolBar->addAction(burnFromAct);
burnToolBar->addSeparator();
@@ -1929,8 +1998,10 @@ void MainWindow::createToolBars()
burnToolBar->addAction(burnConfigAct);
helpToolBar = addToolBar(tr("Help"));
- helpToolBar->addAction(aboutAct);
+ helpToolBar->setIconSize(size);
+ helpToolBar->setObjectName("Help");
helpToolBar->addAction(checkForUpdatesAct);
+ helpToolBar->addAction(aboutAct);
}
void MainWindow::createStatusBar()
@@ -1940,12 +2011,9 @@ void MainWindow::createStatusBar()
void MainWindow::readSettings()
{
- QSettings settings("companion9x", "companion9x");
- bool maximized = settings.value("maximized", false).toBool();
- QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint();
- QSize size = settings.value("size", QSize(400, 400)).toSize();
-
- checkCompanion9x = settings.value("startup_check_companion9x", true).toBool();
+ QSettings settings;
+ restoreState(settings.value("mainWindowState").toByteArray());
+ checkCompanion9x = settings.value("startup_check_companion", true).toBool();
checkFW = settings.value("startup_check_fw", true).toBool();
MaxRecentFiles =settings.value("history_size",10).toInt();
ActiveProfile=settings.value("activeprofile",0).toInt();
@@ -1957,23 +2025,6 @@ void MainWindow::readSettings()
settings.endGroup();
settings.endGroup();
}
- if (maximized) {
- setWindowState(Qt::WindowMaximized);
- } else {
- move(pos);
- resize(size);
- }
-}
-
-void MainWindow::writeSettings()
-{
- QSettings settings("companion9x", "companion9x");
-
- settings.setValue("maximized", isMaximized());
- if(!isMaximized()) {
- settings.setValue("pos", pos());
- settings.setValue("size", size());
- }
}
MdiChild *MainWindow::activeMdiChild()
@@ -2013,7 +2064,7 @@ void MainWindow::setActiveSubWindow(QWidget *window)
void MainWindow::updateRecentFileActions()
{
int i,j, numRecentFiles;
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QStringList files = settings.value("recentFileList").toStringList();
numRecentFiles = qMin(files.size(), (int)MaxRecentFiles);
@@ -2033,7 +2084,7 @@ void MainWindow::updateRecentFileActions()
void MainWindow::updateProfilesActions()
{
int i;
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
settings.beginGroup("Profiles");
for (i=0; isetupUi(this);
-
+ ui->SimulateTxButton->setIcon(CompanionIcon("simulate.png"));
setAttribute(Qt::WA_DeleteOnClose);
eepromInterfaceChanged();
@@ -179,7 +179,7 @@ void MdiChild::OpenEditWindow(bool wizard=false)
}
if (isNew && !wizard) {
int ret;
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
bool wizardEnable=settings.value("wizardEnable", true).toBool();
if (wizardEnable) {
ret = QMessageBox::question(this, tr("Companion"), tr("Do you want to use model wizard? "), QMessageBox::Yes | QMessageBox::No);
@@ -346,7 +346,7 @@ bool MdiChild::save()
bool MdiChild::saveAs(bool isNew)
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString fileName;
if (GetEepromInterface()->getBoard() == BOARD_SKY9X) {
curFile.replace(".eepe", ".bin");
@@ -490,7 +490,7 @@ void MdiChild::setCurrentFile(const QString &fileName)
fileChanged = false;
setWindowModified(false);
updateTitle();
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
int MaxRecentFiles =settings.value("history_size",10).toInt();
QStringList files = settings.value("recentFileList").toStringList();
files.removeAll(fileName);
@@ -508,7 +508,7 @@ QString MdiChild::strippedName(const QString &fullFileName)
void MdiChild::burnTo() // write to Tx
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
bool backupEnable=settings.value("backupEnable", true).toBool();
QString backupPath=settings.value("backupPath", "").toString();
if (!backupPath.isEmpty()) {
@@ -553,15 +553,17 @@ void MdiChild::burnTo() // write to Tx
QStringList str;
str << path << backupFile;
avrOutputDialog *ad = new avrOutputDialog(this,"", str, tr("Backup EEPROM From Tx")); //, AVR_DIALOG_KEEP_OPEN);
- ad->setWindowIcon(QIcon(":/images/read_eeprom.png"));
+ ad->setWindowIcon(CompanionIcon("read_eeprom.png"));
ad->exec();
sleep(1);
}
- } else {
+ }
+ else {
QStringList str = ((MainWindow *)this->parent())->GetReceiveEEpromCommand(backupFile);
avrOutputDialog *ad = new avrOutputDialog(this, ((MainWindow *)this->parent())->GetAvrdudeLocation(), str, tr("Backup EEPROM From Tx"));
- ad->setWindowIcon(QIcon(":/images/read_eeprom.png"));
+ ad->setWindowIcon(CompanionIcon("read_eeprom.png"));
ad->exec();
+ delete ad;
sleep(1);
}
}
@@ -569,8 +571,9 @@ void MdiChild::burnTo() // write to Tx
QString tempFlash=tempDir + "/flash.bin";
QStringList str = ((MainWindow *)this->parent())->GetReceiveFlashCommand(tempFlash);
avrOutputDialog *ad = new avrOutputDialog(this, ((MainWindow *)this->parent())->GetAvrdudeLocation(), str, "Read Flash From Tx");
- ad->setWindowIcon(QIcon(":/images/read_flash.png"));
+ ad->setWindowIcon(CompanionIcon("read_flash.png"));
ad->exec();
+ delete ad;
sleep(1);
QString restoreFile = tempDir + "/compat.bin";
if (!((MainWindow *)this->parent())->convertEEPROM(tempFile, restoreFile, tempFlash)) {
@@ -578,7 +581,8 @@ void MdiChild::burnTo() // write to Tx
QMessageBox::Yes | QMessageBox::No);
if (ret==QMessageBox::No)
return;
- } else {
+ }
+ else {
int rev=((MainWindow *)this->parent())->getEpromVersion(restoreFile);
if ((rev/100)!=(oldrev/100)) {
QMessageBox::warning(this,tr("Warning"), tr("Firmware in radio is of a different family of eeprom written, check file and preferences!"));
@@ -591,7 +595,8 @@ void MdiChild::burnTo() // write to Tx
QByteArray ba = tempFlash.toLatin1();
char *name = ba.data();
unlink(name);
- } else {
+ }
+ else {
if (backupEnable) {
QString backupFile=backupPath+"/backup-"+QDateTime().currentDateTime().toString("yyyy-MM-dd-hhmmss")+".bin";
if (IS_TARANIS(eepromInterface->getBoard())) {
@@ -599,14 +604,17 @@ void MdiChild::burnTo() // write to Tx
if (path.isEmpty()) {
QMessageBox::warning(this, tr("Taranis radio not found"), tr("Impossible to identify the radio on your system, please verify the eeprom disk is connected."));
return;
- } else {
+ }
+ else {
QFile::copy(path,backupFile);
}
- } else {
+ }
+ else {
QStringList str = ((MainWindow *)this->parent())->GetReceiveEEpromCommand(backupFile);
avrOutputDialog *ad = new avrOutputDialog(this, ((MainWindow *)this->parent())->GetAvrdudeLocation(), str, tr("Backup EEPROM From Tx"));
- ad->setWindowIcon(QIcon(":/images/read_eeprom.png"));
+ ad->setWindowIcon(CompanionIcon("read_eeprom.png"));
ad->exec();
+ delete ad;
sleep(1);
}
}
@@ -616,19 +624,23 @@ void MdiChild::burnTo() // write to Tx
if (path.isEmpty()) {
QMessageBox::warning(this, tr("Taranis radio not found"), tr("Impossible to identify the radio on your system, please verify the eeprom disk is connected."));
return;
- } else {
+ }
+ else {
QStringList str;
str << tempFile << path;
avrOutputDialog *ad = new avrOutputDialog(this,"", str, tr("Write EEPROM To Tx"), AVR_DIALOG_SHOW_DONE); //, AVR_DIALOG_KEEP_OPEN);
- ad->setWindowIcon(QIcon(":/images/read_eeprom.png"));
+ ad->setWindowIcon(CompanionIcon("read_eeprom.png"));
ad->show();
+ delete ad;
sleep(1);
}
- } else {
+ }
+ else {
QStringList str = ((MainWindow *)this->parent())->GetSendEEpromCommand(tempFile);
avrOutputDialog *ad = new avrOutputDialog(this, ((MainWindow *)this->parent())->GetAvrdudeLocation(), str, "Write EEPROM To Tx", AVR_DIALOG_SHOW_DONE);
- ad->setWindowIcon(QIcon(":/images/write_eeprom.png"));
+ ad->setWindowIcon(CompanionIcon("write_eeprom.png"));
ad->show();
+ delete ad;
}
}
}
@@ -678,7 +690,7 @@ void MdiChild::setEEpromAvail(int eavail)
bool MdiChild::loadBackup()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString fileName = QFileDialog::getOpenFileName(this, tr("Open"), settings.value("lastDir").toString(),tr(EEPROM_FILES_FILTER));
if (fileName.isEmpty())
return false;
diff --git a/companion/src/mdichild.ui b/companion/src/mdichild.ui
index 00cf8af7d..b2fb21e2f 100644
--- a/companion/src/mdichild.ui
+++ b/companion/src/mdichild.ui
@@ -13,6 +13,10 @@
+
+
+ :/icon.png :/icon.png
+
-
@@ -22,10 +26,6 @@
Simulate Tx
-
-
- :/images/simulate.png :/images/simulate.png
-
@@ -38,7 +38,7 @@
-
+
diff --git a/companion/src/modelconfigdialog.ui b/companion/src/modelconfigdialog.ui
index bc36d6ac6..f9c7abba6 100644
--- a/companion/src/modelconfigdialog.ui
+++ b/companion/src/modelconfigdialog.ui
@@ -26,8 +26,8 @@
Model Configuration Wizard
-
- :/images/configure.png :/images/configure.png
+
+ :/icon.png :/icon.png
-
@@ -79,7 +79,7 @@
- :/images/mcw/aw0a0f.png
+ :/images/mcw/aw0a0f.png
false
@@ -113,7 +113,7 @@
- :/images/mcw/atailv.png
+ :/images/mcw/atailv.png
false
@@ -168,7 +168,7 @@
-
+
:/images/mcw/aicon.png :/images/mcw/aicon.png
@@ -200,7 +200,7 @@
-
+
:/images/mcw/hicon.png :/images/mcw/hicon.png
@@ -226,7 +226,7 @@
-
+
:/images/mcw/gicon.png :/images/mcw/gicon.png
@@ -1208,7 +1208,7 @@
-
+
:/images/mcw/dicon.png :/images/mcw/dicon.png
@@ -1262,7 +1262,7 @@
-
+
diff --git a/companion/src/modeledit/channels.cpp b/companion/src/modeledit/channels.cpp
index 09b6a367b..070a0fcdc 100644
--- a/companion/src/modeledit/channels.cpp
+++ b/companion/src/modeledit/channels.cpp
@@ -57,24 +57,26 @@ Channels::Channels(QWidget * parent, ModelData & model):
gridLayout->addWidget(offset, i+1, col++, 1, 1);
// Channel min
- QSpinBox * minSB = new QSpinBox(this);
+ QDoubleSpinBox * minSB = new QDoubleSpinBox(this);
minSB->setProperty("index", i);
minSB->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
minSB->setAccelerated(true);
+ minSB->setDecimals(1);
minSB->setMinimum(model.extendedLimits ? -125 : -100);
minSB->setMaximum(0);
- minSB->setValue(model.limitData[i].min);
+ minSB->setValue(float(model.limitData[i].min) / 10);
connect(minSB, SIGNAL(editingFinished()), this, SLOT(minEdited()));
gridLayout->addWidget(minSB, i+1, col++, 1, 1);
// Channel max
- QSpinBox * maxSB = new QSpinBox(this);
+ QDoubleSpinBox * maxSB = new QDoubleSpinBox(this);
maxSB->setProperty("index", i);
maxSB->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
maxSB->setAccelerated(true);
+ maxSB->setDecimals(1);
maxSB->setMinimum(0);
maxSB->setMaximum(model.extendedLimits ? 125 : 100);
- maxSB->setValue(model.limitData[i].max);
+ maxSB->setValue(float(model.limitData[i].max) / 10);
connect(maxSB, SIGNAL(editingFinished()), this, SLOT(maxEdited()));
gridLayout->addWidget(maxSB, i+1, col++, 1, 1);
@@ -108,9 +110,6 @@ Channels::Channels(QWidget * parent, ModelData & model):
gridLayout->addWidget(symlimits, i+1, col++, 1, 1);
}
}
-
- // setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- // setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
}
Channels::~Channels()
@@ -141,23 +140,23 @@ void Channels::offsetEdited()
{
QDoubleSpinBox *dsb = qobject_cast(sender());
int index = dsb->property("index").toInt();
- model.limitData[index].offset = round(dsb->value()*10);
+ model.limitData[index].offset = round(dsb->value() * 10);
emit modified();
}
void Channels::minEdited()
{
- QSpinBox *sb = qobject_cast(sender());
+ QDoubleSpinBox *sb = qobject_cast(sender());
int index = sb->property("index").toInt();
- model.limitData[index].min = sb->value();
+ model.limitData[index].min = round(sb->value() * 10);
emit modified();
}
void Channels::maxEdited()
{
- QSpinBox *sb = qobject_cast(sender());
+ QDoubleSpinBox *sb = qobject_cast(sender());
int index = sb->property("index").toInt();
- model.limitData[index].max = sb->value();
+ model.limitData[index].max = round(sb->value() * 10);
emit modified();
}
diff --git a/companion/src/modeledit/curves.cpp b/companion/src/modeledit/curves.cpp
index 2e52c54ea..fe54f3d7d 100644
--- a/companion/src/modeledit/curves.cpp
+++ b/companion/src/modeledit/curves.cpp
@@ -2,13 +2,12 @@
#include "ui_curves.h"
#include "node.h"
#include "edge.h"
+#include "helpers.h"
#include
#include
#include
#include
-// TODO Capability CustomCurves to be removed
-
#define GFX_MARGIN 16
static const QColor colors[C9X_MAX_CURVES] = {
@@ -75,18 +74,17 @@ Curves::Curves(QWidget * parent, ModelData & model):
{
ui->setupUi(this);
+ lock = true;
+
if (!GetEepromInterface()->getCapability(HasCvNames)) {
- ui->cname_LE->hide();
- ui->cname_label->hide();
+ ui->curveName->hide();
+ ui->curveNameLabel->hide();
}
QGraphicsScene *scene = new QGraphicsScene(ui->curvePreview);
scene->setItemIndexMethod(QGraphicsScene::NoIndex);
ui->curvePreview->setScene(scene);
- QIcon clearIcon;
- clearIcon.addFile(":/images/clear.png", QSize(), QIcon::Normal, QIcon::Off);
-
for (int i=0; igetCapability(NumCurves); i++) {
visibleCurves[i] = false;
@@ -94,7 +92,7 @@ Curves::Curves(QWidget * parent, ModelData & model):
QPushButton * reset = new QPushButton(this);
reset->setProperty("index", i);
reset->setMinimumSize(QSize(0, 0));
- reset->setIcon(clearIcon);
+ reset->setIcon(CompanionIcon("clear.png"));
reset->setIconSize(QSize(14, 14));
connect(reset, SIGNAL(clicked()), this, SLOT(resetCurve()));
ui->curvesLayout->addWidget(reset, i, 0, 1, 1);
@@ -134,7 +132,20 @@ Curves::Curves(QWidget * parent, ModelData & model):
spnx[i]->setAccelerated(true);
connect(spnx[i], SIGNAL(valueChanged(int)), this, SLOT(onPointEdited()));
ui->pointsLayout->addWidget(spnx[i], i, 1, 1, 1);
+
+ bool insert;
+ if (GetEepromInterface()->getCapability(EnhancedCurves)) {
+ insert = (i >= 1);
+ }
+ else {
+ insert = (i==2 || i==4 || i==8 || i==16);
+ }
+ if (insert) {
+ ui->curvePoints->addItem(tr("%1 points").arg(i+1), i+1);
+ }
}
+
+ lock = false;
}
Curves::~Curves()
@@ -154,7 +165,7 @@ void Curves::resetCurve()
{
QPushButton *button = (QPushButton *)sender();
int index = button->property("index").toInt();
- int res = QMessageBox::question(this, "companion9x", tr("Are you sure you want to reset curve %1 ?").arg(index+1), QMessageBox::Yes | QMessageBox::No);
+ int res = QMessageBox::question(this, "companion", tr("Are you sure you want to reset curve %1 ?").arg(index+1), QMessageBox::Yes | QMessageBox::No);
if (res == QMessageBox::Yes) {
model.curves[index].clear(5);
update();
@@ -175,7 +186,7 @@ void Curves::update()
lock = true;
if (GetEepromInterface()->getCapability(HasCvNames)) {
- ui->cname_LE->setText(model.curves[currentCurve].name);
+ ui->curveName->setText(model.curves[currentCurve].name);
}
int count = model.curves[currentCurve].count;
@@ -217,14 +228,27 @@ void Curves::setCurrentCurve(int index)
void Curves::updateCurveType()
{
- int index = (model.curves[currentCurve].type == CurveData::CURVE_TYPE_CUSTOM ? 1 : 0);
- if (model.curves[currentCurve].count==5)
- index += 2;
- else if (model.curves[currentCurve].count==9)
- index += 4;
- else if (model.curves[currentCurve].count==17)
- index += 6;
- ui->curvetype_CB->setCurrentIndex(index);
+ lock = true;
+
+ int index = 0;
+
+ if (GetEepromInterface()->getCapability(EnhancedCurves)) {
+ index = model.curves[currentCurve].count - 2;
+ }
+ else {
+ if (model.curves[currentCurve].count == 5)
+ index += 2;
+ else if (model.curves[currentCurve].count == 9)
+ index += 4;
+ else if (model.curves[currentCurve].count == 17)
+ index += 6;
+ }
+
+ ui->curvePoints->setCurrentIndex(index);
+ ui->curveCustom->setCurrentIndex(model.curves[currentCurve].type);
+ ui->curveSmooth->setCurrentIndex(model.curves[currentCurve].smooth);
+
+ lock = false;
}
void Curves::updateCurve()
@@ -335,61 +359,83 @@ void Curves::onNodeUnfocus()
updateCurve();
}
-void Curves::on_curvetype_CB_currentIndexChanged(int index)
+bool Curves::allowCurveType(int points, CurveData::CurveType type)
{
- static const int numpoint[] = {3,3,5,5,9,9,17,17};
- static const CurveData::CurveType types[] = {CurveData::CURVE_TYPE_STANDARD, CurveData::CURVE_TYPE_CUSTOM, CurveData::CURVE_TYPE_STANDARD, CurveData::CURVE_TYPE_CUSTOM, CurveData::CURVE_TYPE_STANDARD, CurveData::CURVE_TYPE_CUSTOM, CurveData::CURVE_TYPE_STANDARD, CurveData::CURVE_TYPE_CUSTOM};
+ int numcurves = GetEepromInterface()->getCapability(NumCurves);
- if (!lock) {
- lock = true;
+ int totalpoints = 0;
+ for (int i=0; igetCapability(NumCurves);
- // int currpoints = model.curves[currentCurve].count;
- // bool currcustom = model.curves[currentCurve].custom;
-
- int totalpoints=0;
- for (int i=0; igetCapability(NumCurvePoints);
- if (fwpoints!=0) {
- if (fwpoints < totalpoints) {
- QMessageBox::warning(this, "companion9x", tr("Not enough free points in EEPROM to store the curve."));
- updateCurveType();
- lock = false;
- return;
- }
- }
-
- model.curves[currentCurve].count = numpoint[index];
- model.curves[currentCurve].type = types[index];
-
- // TODO something better!
- for (int i=0; i= model.curves[currentCurve].count-1 ? +100 : -100 + (200*i)/(numpoint[index]-1));
- model.curves[currentCurve].points[i].y = 0;
- }
-
- update();
- emit modified();
- lock = false;
+ int fwpoints = GetEepromInterface()->getCapability(NumCurvePoints);
+ if (totalpoints > fwpoints) {
+ QMessageBox::warning(this, "companion", tr("Not enough free points in EEPROM to store the curve."));
+ return false;
+ }
+ else {
+ return true;
}
}
-void Curves::on_cname_LE_editingFinished()
+void Curves::on_curvePoints_currentIndexChanged(int index)
+{
+ if (!lock) {
+ int numpoints = ((QComboBox *)sender())->itemData(index).toInt();
+
+ if (allowCurveType(numpoints, model.curves[currentCurve].type)) {
+ model.curves[currentCurve].count = numpoints;
+
+ // TODO something better + reuse!
+ for (int i=0; i= model.curves[currentCurve].count-1 ? +100 : -100 + (200*i)/(numpoints-1));
+ model.curves[currentCurve].points[i].y = 0;
+ }
+
+ update();
+ emit modified();
+ }
+ else {
+ updateCurveType();
+ }
+ }
+}
+
+void Curves::on_curveCustom_currentIndexChanged(int index)
+{
+ if (!lock) {
+ CurveData::CurveType type = (CurveData::CurveType)index;
+ int numpoints = ui->curvePoints->itemData(ui->curvePoints->currentIndex()).toInt();
+ if (allowCurveType(model.curves[currentCurve].count, type)) {
+ model.curves[currentCurve].type = type;
+
+ // TODO something better + reuse!
+ for (int i=0; i= model.curves[currentCurve].count-1 ? +100 : -100 + (200*i)/(numpoints-1));
+ model.curves[currentCurve].points[i].y = 0;
+ }
+
+ update();
+ emit modified();
+ }
+ else {
+ updateCurveType();
+ }
+ }
+}
+
+void Curves::on_curveSmooth_currentIndexChanged(int index)
+{
+ model.curves[currentCurve].smooth = index;
+ update();
+}
+
+void Curves::on_curveName_editingFinished()
{
memset(model.curves[currentCurve].name, 0, sizeof(model.curves[currentCurve].name));
- strcpy(model.curves[currentCurve].name, ui->cname_LE->text().toAscii());
+ strcpy(model.curves[currentCurve].name, ui->curveName->text().toAscii());
emit modified();
}
@@ -600,9 +646,9 @@ void ModelEdit::on_ca_apply_PB_clicked()
void ModelEdit::clearCurves(bool ask)
{
- if(ask) {
- int res = QMessageBox::question(this,tr("Clear Curves?"),tr("Really clear all the curves?"),QMessageBox::Yes | QMessageBox::No);
- if(res!=QMessageBox::Yes) return;
+ if (ask) {
+ int res = QMessageBox::question(this, tr("Clear Curves?"), tr("Really clear all the curves?"), QMessageBox::Yes | QMessageBox::No);
+ if (res!=QMessageBox::Yes) return;
}
curvesLock=true;
for (int j=0; j<16; j++) {
@@ -623,47 +669,11 @@ void ModelEdit::clearCurves(bool ask)
currentCurve=0;
curvesLock=false;
ui->curvetype_CB->setCurrentIndex(2);
- ui->cname_LE->clear();
+ ui->curveName->clear();
updateSettings();
drawCurve();
}
-void ModelEdit::setCurve(uint8_t c, int8_t ar[])
-{
- int len=sizeof(ar)/sizeof(int8_t);
- if (GetEepromInterface()->getCapability(CustomCurves)) {
- if (GetEepromInterface()->getCapability(NumCurves)>c) {
- if (len<9) {
- model.curves[c].count=5;
- model.curves[c].custom=false;
- for (int i=0; i< 5; i++) {
- model.curves[c].points[i].y=ar[i];
- }
- } else {
- model.curves[c].count=5;
- model.curves[c].custom=false;
- for (int i=0; i< 5; i++) {
- model.curves[c].points[i].y=ar[i];
- }
- }
- }
- } else {
- if (len<9) {
- model.curves[c].count=5;
- model.curves[c].custom=false;
- for (int i=0; i< 5; i++) {
- model.curves[c].points[i].y=ar[i];
- }
- } else {
- model.curves[c+8].count=5;
- model.curves[c+8].custom=false;
- for (int i=0; i< 5; i++) {
- model.curves[c+8].points[i].y=ar[i];
- }
- }
- }
-}
-
void ModelEdit::ControlCurveSignal(bool flag)
{
foreach(QSpinBox *sb, findChildren(QRegExp("curvePt[0-9]+"))) {
diff --git a/companion/src/modeledit/curves.h b/companion/src/modeledit/curves.h
index a1086dde0..e8915cf65 100644
--- a/companion/src/modeledit/curves.h
+++ b/companion/src/modeledit/curves.h
@@ -22,8 +22,10 @@ class Curves : public ModelPanel
void resetCurve();
void editCurve();
void plotCurve(bool checked);
- void on_cname_LE_editingFinished();
- void on_curvetype_CB_currentIndexChanged(int index);
+ void on_curveName_editingFinished();
+ void on_curvePoints_currentIndexChanged(int index);
+ void on_curveCustom_currentIndexChanged(int index);
+ void on_curveSmooth_currentIndexChanged(int index);
void onPointEdited();
void onNodeMoved(int x, int y);
void onNodeFocus();
@@ -41,6 +43,7 @@ class Curves : public ModelPanel
void setCurrentCurve(int index);
void updateCurve();
void updateCurveType();
+ bool allowCurveType(int points, CurveData::CurveType type);
};
diff --git a/companion/src/modeledit/curves.ui b/companion/src/modeledit/curves.ui
index 17ad1d39a..ed9800e89 100644
--- a/companion/src/modeledit/curves.ui
+++ b/companion/src/modeledit/curves.ui
@@ -20,9 +20,47 @@
-
-
+
+ -
+
+
+ 0
+
+ -
+
+
+ -
+
+ -
+
+ Standard
+
+
+ -
+
+ Custom
+
+
+
+
+ -
+
+ -
+
+ Lines
+
+
+ -
+
+ Smooth
+
+
+
+
+
+
-
-
+
Curve type
@@ -31,52 +69,8 @@
- -
-
- -
-
- 3 points
-
-
- -
-
- 3 points custom
-
-
- -
-
- 5 points
-
-
- -
-
- 5 points custom
-
-
- -
-
- 9 points
-
-
- -
-
- 9 points custom
-
-
- -
-
- 17 points
-
-
- -
-
- 17 points custom
-
-
-
-
-
-
+
Curve name
@@ -86,7 +80,7 @@
-
-
+
6
@@ -129,7 +123,7 @@
- -
+
-
Qt::Vertical
diff --git a/companion/src/modeledit/customfunctions.cpp b/companion/src/modeledit/customfunctions.cpp
index e6c883ee6..0f2466b4b 100644
--- a/companion/src/modeledit/customfunctions.cpp
+++ b/companion/src/modeledit/customfunctions.cpp
@@ -7,6 +7,35 @@
#include
#include "helpers.h"
+RepeatComboBox::RepeatComboBox(QWidget *parent, int & repeatParam):
+ QComboBox(parent),
+ repeatParam(repeatParam)
+{
+ unsigned int step = IS_ARM(GetEepromInterface()->getBoard()) ? 1 : 10;
+ int value = repeatParam/step;
+
+ if (step == 1) {
+ addItem(QObject::tr("Played once, not during startup"), -1);
+ value++;
+ }
+
+ addItem(QObject::tr("No repeat"), 0);
+
+ for (unsigned int i=step; i<=60; i+=step) {
+ addItem(QObject::tr("%1s").arg(i), i);
+ }
+
+ setCurrentIndex(value);
+
+ connect(this, SIGNAL(currentIndexChanged(int)), this, SLOT(onIndexChanged(int)));
+}
+
+void RepeatComboBox::onIndexChanged(int index)
+{
+ repeatParam = itemData(index).toInt();
+ emit modified();
+}
+
CustomFunctionsPanel::CustomFunctionsPanel(QWidget * parent, ModelData & model, GeneralSettings & generalSettings):
ModelPanel(parent, model),
generalSettings(generalSettings),
@@ -36,7 +65,7 @@ CustomFunctionsPanel::CustomFunctionsPanel(QWidget * parent, ModelData & model,
}
}
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString path = settings.value("sdPath", ".").toString();
path.append("/SOUNDS/");
QString lang = generalSettings.ttsLanguage;
@@ -110,7 +139,7 @@ CustomFunctionsPanel::CustomFunctionsPanel(QWidget * parent, ModelData & model,
fswtchParamT[i] = new QComboBox(this);
fswtchParamT[i]->setProperty("index", i);
paramLayout->addWidget(fswtchParamT[i]);
- populateFuncParamCB(fswtchParamT[i], func, model.funcSw[i].param, model.funcSw[i].adjustMode);
+ populateFuncParamCB(fswtchParamT[i], model, func, model.funcSw[i].param, model.funcSw[i].adjustMode);
connect(fswtchParamT[i], SIGNAL(currentIndexChanged(int)), this, SLOT(customFunctionEdited()));
fswtchParamArmT[i] = new QComboBox(this);
@@ -125,19 +154,16 @@ CustomFunctionsPanel::CustomFunctionsPanel(QWidget * parent, ModelData & model,
#ifdef PHONON
playBT[i] = new QPushButton(this);
playBT[i]->setObjectName(QString("play_%1").arg(i));
- playBT[i]->setIcon(QIcon(":/images/play.png"));
+ playBT[i]->setIcon(CompanionIcon("play.png"));
paramLayout->addWidget(playBT[i]);
connect(playBT[i], SIGNAL(pressed()), this, SLOT(playMusic()));
#endif
QHBoxLayout *repeatLayout = new QHBoxLayout();
gridLayout->addLayout(repeatLayout, i+1, 4);
-
- fswtchRepeat[i] = new QComboBox(this);
- fswtchRepeat[i]->setProperty("index", i);
- connect(fswtchRepeat[i], SIGNAL(currentIndexChanged(int)), this, SLOT(customFunctionEdited()));
+ fswtchRepeat[i] = new RepeatComboBox(this, model.funcSw[i].repeatParam);
repeatLayout->addWidget(fswtchRepeat[i], i+1);
- populateRepeatCB(fswtchRepeat[i], model.funcSw[i].repeatParam);
+ connect(fswtchRepeat[i], SIGNAL(modified()), this, SLOT(onChildModified()));
fswtchEnable[i] = new QCheckBox(this);
fswtchEnable[i]->setProperty("index", i);
@@ -160,6 +186,7 @@ void CustomFunctionsPanel::mediaPlayer_state(Phonon::State newState, Phonon::Sta
{
if (phononLock)
return;
+
phononLock=true;
if ((newState==Phonon::StoppedState || newState==Phonon::PausedState) && oldState==Phonon::PlayingState) {
clickObject->stop();
@@ -167,7 +194,7 @@ void CustomFunctionsPanel::mediaPlayer_state(Phonon::State newState, Phonon::Sta
clickObject->clear();
for (int i=0; igetCapability(CustomFunctions); i++) {
playBT[i]->setObjectName(QString("play_%1").arg(i));
- playBT[i]->setIcon(QIcon(":/images/play.png"));
+ playBT[i]->setIcon(CompanionIcon("play.png"));
}
}
if (newState==Phonon::ErrorState) {
@@ -176,7 +203,7 @@ void CustomFunctionsPanel::mediaPlayer_state(Phonon::State newState, Phonon::Sta
clickObject->clear();
for (int i=0; igetCapability(CustomFunctions); i++) {
playBT[i]->setObjectName(QString("play_%1").arg(i));
- playBT[i]->setIcon(QIcon(":/images/play.png"));
+ playBT[i]->setIcon(CompanionIcon("play.png"));
}
}
@@ -189,14 +216,15 @@ void CustomFunctionsPanel::playMusic()
QPushButton *playButton = qobject_cast(sender());
int index=playButton->objectName().mid(5,2).toInt();
QString function=playButton->objectName().left(4);
- QSettings settings("companion9x", "companion9x");
- QString path=settings.value("sdPath", ".").toString();
+ QSettings settings;
+ QString path = settings.value("sdPath", ".").toString();
QDir qd(path);
QString track;
if (qd.exists()) {
if (GetEepromInterface()->getCapability(VoicesAsNumbers)) {
track=path+QString("/%1.wav").arg(int(fswtchParam[index]->value()),4,10,(const QChar)'0');
- } else {
+ }
+ else {
path.append("/SOUNDS/");
QString lang = generalSettings.ttsLanguage;
if (lang.isEmpty())
@@ -217,12 +245,12 @@ void CustomFunctionsPanel::playMusic()
clickObject->setCurrentSource(Phonon::MediaSource(track));
clickObject->play();
playBT[index]->setObjectName(QString("stop_%1").arg(index));
- playBT[index]->setIcon(QIcon(":/images/stop.png"));
+ playBT[index]->setIcon(CompanionIcon("stop.png"));
} else {
clickObject->stop();
clickObject->clear();
playBT[index]->setObjectName(QString("play_%1").arg(index));
- playBT[index]->setIcon(QIcon(":/images/play.png"));
+ playBT[index]->setIcon(CompanionIcon("play.png"));
}
#endif
}
@@ -250,14 +278,18 @@ void CustomFunctionsPanel::customFunctionEdited()
}
}
+void CustomFunctionsPanel::onChildModified()
+{
+ emit modified();
+}
+
void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified)
{
unsigned int widgetsMask = 0;
if (modified) {
model.funcSw[i].swtch = RawSwitch(fswtchSwtch[i]->itemData(fswtchSwtch[i]->currentIndex()).toInt());
model.funcSw[i].func = (AssignFunc)fswtchFunc[i]->currentIndex();
- model.funcSw[i].enabled =fswtchEnable[i]->isChecked();
- model.funcSw[i].repeatParam = (AssignFunc)fswtchRepeat[i]->currentIndex();
+ model.funcSw[i].enabled = fswtchEnable[i]->isChecked();
model.funcSw[i].adjustMode = (AssignFunc)fswtchGVmode[i]->currentIndex();
}
@@ -273,14 +305,15 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified)
}
fswtchParam[i]->setValue(model.funcSw[i].param);
widgetsMask |= CUSTOM_FUNCTION_NUMERIC_PARAM + CUSTOM_FUNCTION_ENABLE;
- } else if (index==FuncLogs) {
+ }
+ else if (index==FuncLogs) {
fswtchParam[i]->setDecimals(1);
fswtchParam[i]->setMinimum(0);
fswtchParam[i]->setMaximum(25.5);
fswtchParam[i]->setSingleStep(0.1);
if (modified) model.funcSw[i].param = fswtchParam[i]->value()*10.0;
fswtchParam[i]->setValue(model.funcSw[i].param/10.0);
- widgetsMask |= CUSTOM_FUNCTION_NUMERIC_PARAM + CUSTOM_FUNCTION_ENABLE;
+ widgetsMask |= CUSTOM_FUNCTION_NUMERIC_PARAM;
}
else if (index>=FuncAdjustGV1 && index<=FuncAdjustGVLast) {
if (modified) model.funcSw[i].adjustMode = fswtchGVmode[i]->currentIndex();
@@ -293,38 +326,41 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified)
fswtchParam[i]->setMaximum(125);
fswtchParam[i]->setValue(model.funcSw[i].param);
widgetsMask |= CUSTOM_FUNCTION_NUMERIC_PARAM;
- } else {
+ }
+ else {
if (modified) model.funcSw[i].param = fswtchParamT[i]->itemData(fswtchParamT[i]->currentIndex()).toInt();
- populateFuncParamCB(fswtchParamT[i], index, model.funcSw[i].param, model.funcSw[i].adjustMode);
+ populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param, model.funcSw[i].adjustMode);
widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM;
}
- } else if (index==FuncReset) {
+ }
+ else if (index==FuncReset) {
if (modified) model.funcSw[i].param = (uint8_t)fswtchParamT[i]->currentIndex();
- populateFuncParamCB(fswtchParamT[i], index, model.funcSw[i].param);
+ populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param);
widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM;
- } else if (index==FuncVolume) {
+ }
+ else if (index==FuncVolume) {
if (modified) model.funcSw[i].param = fswtchParamT[i]->itemData(fswtchParamT[i]->currentIndex()).toInt();
- populateFuncParamCB(fswtchParamT[i], index, model.funcSw[i].param);
+ populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param);
widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM + CUSTOM_FUNCTION_ENABLE;
- } else if (index==FuncPlaySound || index==FuncPlayHaptic || index==FuncPlayValue || index==FuncPlayPrompt || index==FuncPlayBoth || index==FuncBackgroundMusic) {
- if (modified) model.funcSw[i].repeatParam = fswtchRepeat[i]->itemData(fswtchRepeat[i]->currentIndex()).toInt();
- if (index != FuncBackgroundMusic) {
- if (GetEepromInterface()->getCapability(HasFuncRepeat)) {
- widgetsMask |= CUSTOM_FUNCTION_REPEAT;
- }
+ }
+ else if (index==FuncPlaySound || index==FuncPlayHaptic || index==FuncPlayValue || index==FuncPlayPrompt || index==FuncPlayBoth || index==FuncBackgroundMusic) {
+ if (index != FuncBackgroundMusic && GetEepromInterface()->getCapability(HasFuncRepeat)) {
+ widgetsMask |= CUSTOM_FUNCTION_REPEAT;
}
if (index==FuncPlayValue) {
if (modified) model.funcSw[i].param = fswtchParamT[i]->itemData(fswtchParamT[i]->currentIndex()).toInt();
- populateFuncParamCB(fswtchParamT[i], index, model.funcSw[i].param);
+ populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param);
widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM + CUSTOM_FUNCTION_REPEAT;
- } else if (index==FuncPlayPrompt || index==FuncPlayBoth) {
+ }
+ else if (index==FuncPlayPrompt || index==FuncPlayBoth) {
if (GetEepromInterface()->getCapability(VoicesAsNumbers)) {
fswtchParam[i]->setDecimals(0);
fswtchParam[i]->setSingleStep(1);
fswtchParam[i]->setMinimum(0);
if (index==FuncPlayPrompt) {
widgetsMask |= CUSTOM_FUNCTION_NUMERIC_PARAM + CUSTOM_FUNCTION_REPEAT + CUSTOM_FUNCTION_GV_TOOGLE;
- } else {
+ }
+ else {
widgetsMask |= CUSTOM_FUNCTION_NUMERIC_PARAM + CUSTOM_FUNCTION_REPEAT;
fswtchParamGV[i]->setChecked(false);
}
@@ -333,7 +369,8 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified)
if (fswtchParamGV[i]->isChecked()) {
fswtchParam[i]->setMinimum(1);
model.funcSw[i].param = std::min(fswtchParam[i]->value(),5.0)+(fswtchParamGV[i]->isChecked() ? 250 : 0);
- } else {
+ }
+ else {
model.funcSw[i].param = fswtchParam[i]->value();
}
}
@@ -341,13 +378,15 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified)
fswtchParamGV[i]->setChecked(true);
fswtchParam[i]->setValue(model.funcSw[i].param-250);
fswtchParam[i]->setMaximum(5);
- } else {
+ }
+ else {
fswtchParamGV[i]->setChecked(false);
fswtchParam[i]->setValue(model.funcSw[i].param);
}
if (model.funcSw[i].param < 251)
widgetsMask |= CUSTOM_FUNCTION_PLAY;
- } else {
+ }
+ else {
widgetsMask |= CUSTOM_FUNCTION_FILE_PARAM;
if (modified) {
memset(model.funcSw[i].paramarm, 0, sizeof(model.funcSw[i].paramarm));
@@ -360,7 +399,8 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified)
}
}
}
- } else if (index==FuncBackgroundMusic) {
+ }
+ else if (index==FuncBackgroundMusic) {
widgetsMask |= CUSTOM_FUNCTION_FILE_PARAM;
if (modified) {
memset(model.funcSw[i].paramarm, 0, sizeof(model.funcSw[i].paramarm));
@@ -372,21 +412,24 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified)
}
}
}
- } else if (index==FuncPlaySound) {
+ }
+ else if (index==FuncPlaySound) {
if (modified) model.funcSw[i].param = (uint8_t)fswtchParamT[i]->currentIndex();
- populateFuncParamCB(fswtchParamT[i], index, model.funcSw[i].param);
- widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM;
- } else if (index==FuncPlayHaptic) {
- if (modified) model.funcSw[i].param = (uint8_t)fswtchParamT[i]->currentIndex();
- populateFuncParamCB(fswtchParamT[i], index, model.funcSw[i].param);
+ populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param);
widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM;
}
- } else if (model.funcSw[i].swtch.type!=SWITCH_TYPE_NONE) {
+ else if (index==FuncPlayHaptic) {
+ if (modified) model.funcSw[i].param = (uint8_t)fswtchParamT[i]->currentIndex();
+ populateFuncParamCB(fswtchParamT[i], model, index, model.funcSw[i].param);
+ widgetsMask |= CUSTOM_FUNCTION_SOURCE_PARAM;
+ }
+ }
+ else {
if (modified) model.funcSw[i].param = fswtchParam[i]->value();
fswtchParam[i]->setDecimals(0);
fswtchParam[i]->setSingleStep(1);
fswtchParam[i]->setValue(model.funcSw[i].param);
- if (index<=FuncInstantTrim) {
+ if (index <= FuncInstantTrim) {
widgetsMask |= CUSTOM_FUNCTION_ENABLE;
}
}
@@ -406,17 +449,19 @@ void CustomFunctionsPanel::refreshCustomFunction(int i, bool modified)
void CustomFunctionsPanel::update()
{
+ lock = true;
for (int i=0; igetCapability(CustomFunctions); i++) {
refreshCustomFunction(i);
}
+ lock = false;
}
void CustomFunctionsPanel::fswPaste()
{
const QClipboard *clipboard = QApplication::clipboard();
const QMimeData *mimeData = clipboard->mimeData();
- if (mimeData->hasFormat("application/x-companion9x-fsw")) {
- QByteArray fswData = mimeData->data("application/x-companion9x-fsw");
+ if (mimeData->hasFormat("application/x-companion-fsw")) {
+ QByteArray fswData = mimeData->data("application/x-companion-fsw");
FuncSwData *fsw = &model.funcSw[selectedFunction];
memcpy(fsw, fswData.mid(0, sizeof(FuncSwData)).constData(), sizeof(FuncSwData));
@@ -443,7 +488,7 @@ void CustomFunctionsPanel::fswCopy()
QByteArray fswData;
fswData.append((char*)&model.funcSw[selectedFunction],sizeof(FuncSwData));
QMimeData *mimeData = new QMimeData;
- mimeData->setData("application/x-companion9x-fsw", fswData);
+ mimeData->setData("application/x-companion-fsw", fswData);
QApplication::clipboard()->setMimeData(mimeData,QClipboard::Clipboard);
}
@@ -462,13 +507,13 @@ void CustomFunctionsPanel::fsw_customContextMenuRequested(QPoint pos)
const QClipboard *clipboard = QApplication::clipboard();
const QMimeData *mimeData = clipboard->mimeData();
- bool hasData = mimeData->hasFormat("application/x-companion9x-fsw");
+ bool hasData = mimeData->hasFormat("application/x-companion-fsw");
QMenu contextMenu;
- contextMenu.addAction(QIcon(":/images/clear.png"), tr("&Delete"),this,SLOT(fswDelete()),tr("Delete"));
- contextMenu.addAction(QIcon(":/images/copy.png"), tr("&Copy"),this,SLOT(fswCopy()),tr("Ctrl+C"));
- contextMenu.addAction(QIcon(":/images/cut.png"), tr("&Cut"),this,SLOT(fswCut()),tr("Ctrl+X"));
- contextMenu.addAction(QIcon(":/images/paste.png"), tr("&Paste"),this,SLOT(fswPaste()),tr("Ctrl+V"))->setEnabled(hasData);
+ contextMenu.addAction(CompanionIcon("clear.png"), tr("&Delete"),this,SLOT(fswDelete()),tr("Delete"));
+ contextMenu.addAction(CompanionIcon("copy.png"), tr("&Copy"),this,SLOT(fswCopy()),tr("Ctrl+C"));
+ contextMenu.addAction(CompanionIcon("cut.png"), tr("&Cut"),this,SLOT(fswCut()),tr("Ctrl+X"));
+ contextMenu.addAction(CompanionIcon("paste.png"), tr("&Paste"),this,SLOT(fswPaste()),tr("Ctrl+V"))->setEnabled(hasData);
contextMenu.exec(globalPos);
}
diff --git a/companion/src/modeledit/customfunctions.h b/companion/src/modeledit/customfunctions.h
index e6729da6a..ccb73582e 100644
--- a/companion/src/modeledit/customfunctions.h
+++ b/companion/src/modeledit/customfunctions.h
@@ -13,6 +13,23 @@
#include
#endif
+class RepeatComboBox: public QComboBox
+{
+ Q_OBJECT
+
+ public:
+ RepeatComboBox(QWidget *parent, int & repeatParam);
+
+ signals:
+ void modified();
+
+ private slots:
+ void onIndexChanged(int);
+
+ protected:
+ int & repeatParam;
+};
+
class CustomFunctionsPanel : public ModelPanel
{
Q_OBJECT
@@ -28,6 +45,7 @@ class CustomFunctionsPanel : public ModelPanel
void fsw_customContextMenuRequested(QPoint pos);
void refreshCustomFunction(int index, bool modified=false);
void playMusic();
+ void onChildModified();
#ifdef PHONON
void mediaPlayer_state(Phonon::State newState, Phonon::State oldState);
#endif
diff --git a/companion/src/modeledit/customswitches.cpp b/companion/src/modeledit/customswitches.cpp
index b20cd1f68..008f5cfe8 100644
--- a/companion/src/modeledit/customswitches.cpp
+++ b/companion/src/modeledit/customswitches.cpp
@@ -254,7 +254,7 @@ void CustomSwitchesPanel::setSwitchWidgetVisibility(int i)
cswitchSource2[i]->setVisible(false);
cswitchValue[i]->setVisible(false);
cswitchOffset[i]->setVisible(true);
- populateSourceCB(cswitchSource1[i], source, POPULATE_SOURCES | (GetEepromInterface()->getCapability(ExtraTrims) ? POPULATE_TRIMS : 0) | POPULATE_SWITCHES | POPULATE_TELEMETRY | (GetEepromInterface()->getCapability(GvarsInCS) ? POPULATE_GVARS : 0));
+ populateSourceCB(cswitchSource1[i], source, model, POPULATE_SOURCES | POPULATE_VIRTUAL_INPUTS | POPULATE_TRIMS | POPULATE_SWITCHES | POPULATE_TELEMETRY | (GetEepromInterface()->getCapability(GvarsInCS) ? POPULATE_GVARS : 0));
cswitchOffset[i]->setDecimals(source.getDecimals(model));
cswitchOffset[i]->setSingleStep(source.getStep(model));
if (model.customSw[i].func>CS_FN_ELESS && model.customSw[i].funcsetVisible(true);
cswitchValue[i]->setVisible(false);
cswitchOffset[i]->setVisible(false);
- populateSourceCB(cswitchSource1[i], RawSource(model.customSw[i].val1), POPULATE_SOURCES | (GetEepromInterface()->getCapability(ExtraTrims) ? POPULATE_TRIMS : 0) | POPULATE_SWITCHES | POPULATE_TELEMETRY | (GetEepromInterface()->getCapability(GvarsInCS) ? POPULATE_GVARS : 0));
- populateSourceCB(cswitchSource2[i], RawSource(model.customSw[i].val2), POPULATE_SOURCES | (GetEepromInterface()->getCapability(ExtraTrims) ? POPULATE_TRIMS : 0) | POPULATE_SWITCHES | POPULATE_TELEMETRY | (GetEepromInterface()->getCapability(GvarsInCS) ? POPULATE_GVARS : 0));
+ populateSourceCB(cswitchSource1[i], RawSource(model.customSw[i].val1), model, POPULATE_SOURCES | POPULATE_VIRTUAL_INPUTS | POPULATE_TRIMS | POPULATE_SWITCHES | POPULATE_TELEMETRY | (GetEepromInterface()->getCapability(GvarsInCS) ? POPULATE_GVARS : 0));
+ populateSourceCB(cswitchSource2[i], RawSource(model.customSw[i].val2), model, POPULATE_SOURCES | POPULATE_TRIMS | POPULATE_VIRTUAL_INPUTS | POPULATE_SWITCHES | POPULATE_TELEMETRY | (GetEepromInterface()->getCapability(GvarsInCS) ? POPULATE_GVARS : 0));
break;
case CS_FAMILY_TIMERS:
cswitchSource1[i]->setVisible(false);
@@ -337,8 +337,8 @@ void CustomSwitchesPanel::cswPaste()
{
const QClipboard *clipboard = QApplication::clipboard();
const QMimeData *mimeData = clipboard->mimeData();
- if (mimeData->hasFormat("application/x-companion9x-csw")) {
- QByteArray cswData = mimeData->data("application/x-companion9x-csw");
+ if (mimeData->hasFormat("application/x-companion-csw")) {
+ QByteArray cswData = mimeData->data("application/x-companion-csw");
CustomSwData *csw = &model.customSw[selectedSwitch];
memcpy(csw, cswData.mid(0, sizeof(CustomSwData)).constData(), sizeof(CustomSwData));
@@ -359,7 +359,7 @@ void CustomSwitchesPanel::cswCopy()
QByteArray cswData;
cswData.append((char*)&model.customSw[selectedSwitch],sizeof(CustomSwData));
QMimeData *mimeData = new QMimeData;
- mimeData->setData("application/x-companion9x-csw", cswData);
+ mimeData->setData("application/x-companion-csw", cswData);
QApplication::clipboard()->setMimeData(mimeData,QClipboard::Clipboard);
}
@@ -387,13 +387,13 @@ void CustomSwitchesPanel::csw_customContextMenuRequested(QPoint pos)
const QClipboard *clipboard = QApplication::clipboard();
const QMimeData *mimeData = clipboard->mimeData();
- bool hasData = mimeData->hasFormat("application/x-companion9x-csw");
+ bool hasData = mimeData->hasFormat("application/x-companion-csw");
QMenu contextMenu;
- contextMenu.addAction(QIcon(":/images/clear.png"), tr("&Delete"),this,SLOT(cswDelete()),tr("Delete"));
- contextMenu.addAction(QIcon(":/images/copy.png"), tr("&Copy"),this,SLOT(cswCopy()),tr("Ctrl+C"));
- contextMenu.addAction(QIcon(":/images/cut.png"), tr("&Cut"),this,SLOT(cswCut()),tr("Ctrl+X"));
- contextMenu.addAction(QIcon(":/images/paste.png"), tr("&Paste"),this,SLOT(cswPaste()),tr("Ctrl+V"))->setEnabled(hasData);
+ contextMenu.addAction(CompanionIcon("clear.png"), tr("&Delete"),this,SLOT(cswDelete()),tr("Delete"));
+ contextMenu.addAction(CompanionIcon("copy.png"), tr("&Copy"),this,SLOT(cswCopy()),tr("Ctrl+C"));
+ contextMenu.addAction(CompanionIcon("cut.png"), tr("&Cut"),this,SLOT(cswCut()),tr("Ctrl+X"));
+ contextMenu.addAction(CompanionIcon("paste.png"), tr("&Paste"),this,SLOT(cswPaste()),tr("Ctrl+V"))->setEnabled(hasData);
contextMenu.exec(globalPos);
}
diff --git a/companion/src/modeledit/expodialog.cpp b/companion/src/modeledit/expodialog.cpp
index bb2df0c65..921e916bc 100644
--- a/companion/src/modeledit/expodialog.cpp
+++ b/companion/src/modeledit/expodialog.cpp
@@ -3,126 +3,104 @@
#include "eeprominterface.h"
#include "helpers.h"
-ExpoDialog::ExpoDialog(QWidget *parent, ExpoData *expoData, int stickMode) :
+ExpoDialog::ExpoDialog(QWidget *parent, ModelData & model, ExpoData *expoData, int stickMode) :
QDialog(parent),
ui(new Ui::ExpoDialog),
+ model(model),
ed(expoData)
{
- ui->setupUi(this);
- QLabel * lb_fp[] = {ui->lb_FP0,ui->lb_FP1,ui->lb_FP2,ui->lb_FP3,ui->lb_FP4,ui->lb_FP5,ui->lb_FP6,ui->lb_FP7,ui->lb_FP8 };
- QCheckBox * cb_fp[] = {ui->cb_FP0,ui->cb_FP1,ui->cb_FP2,ui->cb_FP3,ui->cb_FP4,ui->cb_FP5,ui->cb_FP6,ui->cb_FP7,ui->cb_FP8 };
+ ui->setupUi(this);
+ QLabel * lb_fp[] = {ui->lb_FP0,ui->lb_FP1,ui->lb_FP2,ui->lb_FP3,ui->lb_FP4,ui->lb_FP5,ui->lb_FP6,ui->lb_FP7,ui->lb_FP8 };
+ QCheckBox * cb_fp[] = {ui->cb_FP0,ui->cb_FP1,ui->cb_FP2,ui->cb_FP3,ui->cb_FP4,ui->cb_FP5,ui->cb_FP6,ui->cb_FP7,ui->cb_FP8 };
- setWindowTitle(tr("DEST -> %1").arg(getStickStr(ed->chn)));
- QRegExp rx(CHAR_FOR_NAMES_REGEX);
-
- int gvars=0;
- if (GetEepromInterface()->getCapability(HasVariants)) {
- if ((GetCurrentFirmwareVariant() & GVARS_VARIANT)) {
- gvars=1;
- }
- } else {
- gvars=1;
- }
+ setWindowTitle(tr("Edit %1").arg(getInputStr(model, ed->chn)));
+ QRegExp rx(CHAR_FOR_NAMES_REGEX);
- if (gvars==0) {
- ui->weightGV->setDisabled(true);
- ui->curveGVarCB->hide();
- if ((ed->curve.type == CurveReference::CURVE_REF_EXPO || ed->curve.type == CurveReference::CURVE_REF_DIFF) && ed->curve.value > 100) {
- ed->curve.value = 0;
- }
- if (ed->weight>100 || ed->weight<-100) {
- ed->weight = 100;
- }
- }
+ gvGroup = new GVarGroup(ui->weightGV, ui->weightSB, ui->weightCB, ed->weight, 100, 0, 100);
+ curveGroup = new CurveGroup(ui->curveTypeCB, ui->curveGVarCB, ui->curveValueCB, ui->curveValueSB, ed->curve);
- populateGVCB(ui->weightCB, ed->weight);
+ populateSwitchCB(ui->switchesCB,ed->swtch);
- ui->weightSB->setMinimum(0);
- ui->weightSB->setMaximum(100);
- if (ed->weight>100 || ed->weight<0) {
- ui->weightGV->setChecked(true);
- ui->weightSB->hide();
- ui->weightCB->show();
- } else {
- ui->weightGV->setChecked(false);
- ui->weightSB->setValue(ed->weight);
- ui->weightSB->show();
- ui->weightCB->hide();
- }
+ ui->sideCB->setCurrentIndex(ed->mode-1);
- populateSwitchCB(ui->switchesCB,ed->swtch);
-
- // TODO keep this group, same in MixerDialog
- CurveGroup * curveGroup = new CurveGroup(ui->curveTypeCB, ui->curveGVarCB, ui->curveValueCB, ui->curveValueSB, ed->curve);
-
- ui->sideCB->setCurrentIndex(ed->mode-1);
-
- if (!GetEepromInterface()->getCapability(FlightPhases)) {
- ui->label_phases->hide();
- for (int i=0; i<9; i++) {
- lb_fp[i]->hide();
- cb_fp[i]->hide();
- }
- } else {
- int mask=1;
- for (int i=0; i<9 ; i++) {
- if ((ed->phases & mask)==0) {
- cb_fp[i]->setChecked(true);
- }
- mask <<= 1;
- }
- for (int i=GetEepromInterface()->getCapability(FlightPhases); i<9;i++) {
- lb_fp[i]->hide();
- cb_fp[i]->hide();
- }
- }
-
- if (GetEepromInterface()->getCapability(VirtualInputs)) {
- ui->sideLabel->hide();
- ui->sideCB->hide();
- }
- else {
- ui->sourceLabel->hide();
- ui->sourceCB->hide();
- ui->scaleLabel->hide();
- ui->scaleSB->hide();
- ui->trimLabel->hide();
- ui->trimCB->hide();
- }
-
- int expolength=GetEepromInterface()->getCapability(HasExpoNames);
- if (!expolength) {
- ui->label_name->hide();
- ui->expoName->hide();
- } else {
- ui->expoName->setMaxLength(expolength);
- }
-
- ui->expoName->setValidator(new QRegExpValidator(rx, this));
- ui->expoName->setText(ed->name);
- valuesChanged();
-
- connect(ui->expoName,SIGNAL(editingFinished()),this,SLOT(valuesChanged()));
-
- connect(ui->curveTypeCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged()));
- connect(ui->curveGVarCB,SIGNAL(stateChanged(int)),this,SLOT(valuesChanged()));
- connect(ui->curveValueCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged()));
- connect(ui->curveValueSB,SIGNAL(editingFinished()),this,SLOT(valuesChanged()));
-
- connect(ui->weightCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged()));
- connect(ui->weightSB,SIGNAL(editingFinished()),this,SLOT(valuesChanged()));
- connect(ui->switchesCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged()));
- connect(ui->sideCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged()));
- connect(ui->weightGV,SIGNAL(stateChanged(int)),this,SLOT(widgetChanged()));
+ if (!GetEepromInterface()->getCapability(FlightPhases)) {
+ ui->label_phases->hide();
for (int i=0; i<9; i++) {
- connect(cb_fp[i],SIGNAL(toggled(bool)),this,SLOT(valuesChanged()));
+ lb_fp[i]->hide();
+ cb_fp[i]->hide();
}
- QTimer::singleShot(0, this, SLOT(shrink()));
+ }
+ else {
+ int mask=1;
+ for (int i=0; i<9 ; i++) {
+ if ((ed->phases & mask)==0) {
+ cb_fp[i]->setChecked(true);
+ }
+ mask <<= 1;
+ }
+ for (int i=GetEepromInterface()->getCapability(FlightPhases); i<9;i++) {
+ lb_fp[i]->hide();
+ cb_fp[i]->hide();
+ }
+ }
+
+ if (GetEepromInterface()->getCapability(VirtualInputs)) {
+ ui->sideLabel->hide();
+ ui->sideCB->hide();
+ ui->inputName->setMaxLength(4);
+ populateSourceCB(ui->sourceCB, ed->srcRaw, model, POPULATE_SOURCES | POPULATE_SWITCHES | POPULATE_TRIMS | (GetEepromInterface()->getCapability(GvarsAsSources) ? POPULATE_GVARS : 0));
+ ui->sourceCB->removeItem(0);
+ }
+ else {
+ ui->inputNameLabel->hide();
+ ui->inputName->hide();
+ ui->sourceLabel->hide();
+ ui->sourceCB->hide();
+ ui->scaleLabel->hide();
+ ui->scaleSB->hide();
+ ui->trimLabel->hide();
+ ui->trimCB->hide();
+ }
+
+ ui->trimCB->addItem(tr("Rud"), 1);
+ ui->trimCB->addItem(tr("Ele"), 2);
+ ui->trimCB->addItem(tr("Thr"), 3);
+ ui->trimCB->addItem(tr("Ail"), 4);
+ ui->trimCB->setCurrentIndex(1 - ed->carryTrim);
+
+ int expolength = GetEepromInterface()->getCapability(HasExpoNames);
+ if (!expolength) {
+ ui->lineNameLabel->hide();
+ ui->lineName->hide();
+ }
+ else {
+ ui->lineName->setMaxLength(expolength);
+ }
+
+ ui->inputName->setValidator(new QRegExpValidator(rx, this));
+ ui->inputName->setText(model.inputNames[ed->chn]);
+
+ ui->lineName->setValidator(new QRegExpValidator(rx, this));
+ ui->lineName->setText(ed->name);
+
+ valuesChanged();
+
+ connect(ui->lineName,SIGNAL(editingFinished()), this, SLOT(valuesChanged()));
+ connect(ui->sourceCB,SIGNAL(currentIndexChanged(int)), this, SLOT(valuesChanged()));
+ connect(ui->trimCB,SIGNAL(currentIndexChanged(int)), this, SLOT(valuesChanged()));
+ connect(ui->switchesCB,SIGNAL(currentIndexChanged(int)), this, SLOT(valuesChanged()));
+ connect(ui->sideCB,SIGNAL(currentIndexChanged(int)), this, SLOT(valuesChanged()));
+ for (int i=0; i<9; i++) {
+ connect(cb_fp[i], SIGNAL(toggled(bool)), this, SLOT(valuesChanged()));
+ }
+ QTimer::singleShot(0, this, SLOT(shrink()));
}
ExpoDialog::~ExpoDialog()
{
- delete ui;
+ delete gvGroup;
+ delete curveGroup;
+ delete ui;
}
void ExpoDialog::changeEvent(QEvent *e)
@@ -137,54 +115,18 @@ void ExpoDialog::changeEvent(QEvent *e)
}
}
-void ExpoDialog::widgetChanged()
-{
- // TODO so many times duplicated :(
- int gvars=0;
- if (GetEepromInterface()->getCapability(HasVariants)) {
- if ((GetCurrentFirmwareVariant() & GVARS_VARIANT)) {
- gvars=1;
- }
- } else {
- gvars=1;
- }
-
- /* TODO if (gvars==1) {
- if (ui->expoCurveGV->isChecked()) {
- ui->expoCurveCB->show();
- ui->expoCurveSB->hide();
- } else {
- ui->expoCurveCB->hide();
- ui->expoCurveSB->show();
- }
- if (ui->weightGV->isChecked()) {
- ui->weightCB->show();
- ui->weightSB->hide();
- } else {
- ui->weightCB->hide();
- ui->weightSB->show();
- }
- } */
- valuesChanged();
- QTimer::singleShot(0, this, SLOT(shrink()));
-}
-
void ExpoDialog::valuesChanged()
{
QCheckBox * cb_fp[] = {ui->cb_FP0,ui->cb_FP1,ui->cb_FP2,ui->cb_FP3,ui->cb_FP4,ui->cb_FP5,ui->cb_FP6,ui->cb_FP7,ui->cb_FP8 };
- if (ui->weightGV->isChecked()) {
- ed->weight = ui->weightCB->itemData(ui->weightCB->currentIndex()).toInt();
- } else {
- ed->weight = ui->weightSB->value();
- }
+ ed->srcRaw = RawSource(ui->sourceCB->itemData(ui->sourceCB->currentIndex()).toInt());
+ ed->carryTrim = 1 - ui->trimCB->currentIndex();
ed->swtch = RawSwitch(ui->switchesCB->itemData(ui->switchesCB->currentIndex()).toInt());
ed->mode = ui->sideCB->currentIndex() + 1;
- int i=0;
- for (i=0; iexpoName->text().toAscii().length(); i++) {
- ed->name[i]=ui->expoName->text().toAscii().at(i);
- }
- ed->name[i]=0;
+
+ strcpy(ed->name, ui->lineName->text().toAscii().data());
+ strcpy(model.inputNames[ed->chn], ui->inputName->text().toAscii().data());
+
ed->phases=0;
for (int i=8; i>=0 ; i--) {
if (!cb_fp[i]->checkState()) {
@@ -231,5 +173,5 @@ void ExpoDialog::valuesChanged()
void ExpoDialog::shrink()
{
- resize(0,0);
+ resize(0,0);
}
diff --git a/companion/src/modeledit/expodialog.h b/companion/src/modeledit/expodialog.h
index a7630cc87..5281e4c29 100644
--- a/companion/src/modeledit/expodialog.h
+++ b/companion/src/modeledit/expodialog.h
@@ -4,27 +4,32 @@
#include
#include "eeprominterface.h"
+class GVarGroup;
+class CurveGroup;
+
namespace Ui {
- class ExpoDialog;
+ class ExpoDialog;
}
class ExpoDialog : public QDialog {
Q_OBJECT
-public:
- ExpoDialog(QWidget *parent, ExpoData *mixdata, int stickMode);
+ public:
+ ExpoDialog(QWidget *parent, ModelData & model, ExpoData *expodata, int stickMode);
~ExpoDialog();
-protected:
+ protected:
void changeEvent(QEvent *e);
-private slots:
+ private slots:
void valuesChanged();
- void widgetChanged();
void shrink();
-private:
- Ui::ExpoDialog *ui;
- ExpoData *ed;
+ private:
+ Ui::ExpoDialog * ui;
+ ModelData & model;
+ ExpoData * ed;
+ GVarGroup * gvGroup;
+ CurveGroup * curveGroup;
};
#endif // EXPODIALOG_H
diff --git a/companion/src/modeledit/expodialog.ui b/companion/src/modeledit/expodialog.ui
index baf7c6b14..67f8f92ce 100644
--- a/companion/src/modeledit/expodialog.ui
+++ b/companion/src/modeledit/expodialog.ui
@@ -7,7 +7,7 @@
0
0
370
- 331
+ 356
@@ -26,32 +26,39 @@
-
+
:/icon.png :/icon.png
+ -
+
+
+ The source for the mixer
+
+
+
-
-
+
- Name
+ Input name
-
-
+
6
- -
+
-
Weight
- -
+
-
-
@@ -85,14 +92,14 @@
- -
+
-
Flight modes
- -
+
-
-
@@ -249,14 +256,14 @@
- -
+
-
Switch
- -
+
-
Switch used by the expo.
@@ -264,14 +271,14 @@ If blank then the expo is considered to be "ON" all the time.
- -
+
-
Stick Side
- -
+
-
-
@@ -290,7 +297,7 @@ If blank then the expo is considered to be "ON" all the time.
- -
+
-
@@ -309,7 +316,7 @@ If blank then the expo is considered to be "ON" all the time.
- -
+
-
Qt::Vertical
@@ -322,14 +329,7 @@ If blank then the expo is considered to be "ON" all the time.
- -
-
-
- The source for the mixer
-
-
-
- -
+
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
@@ -352,28 +352,21 @@ p, li { white-space: pre-wrap; }
- -
+
-
Scale
- -
+
-
Include Trim
- -
-
-
- Source
-
-
-
- -
+
-
-
@@ -387,14 +380,14 @@ p, li { white-space: pre-wrap; }
- -
+
-
Curve
- -
+
-
-
@@ -425,10 +418,31 @@ p, li { white-space: pre-wrap; }
+ -
+
+
+ Source
+
+
+
+ -
+
+
+ Line name
+
+
+
+ -
+
+
+ 6
+
+
+
-
+
diff --git a/companion/src/modeledit/heli.cpp b/companion/src/modeledit/heli.cpp
index 6c584658a..a6a97a1b9 100644
--- a/companion/src/modeledit/heli.cpp
+++ b/companion/src/modeledit/heli.cpp
@@ -26,7 +26,7 @@ void HeliPanel::update()
lock = true;
ui->swashTypeCB->setCurrentIndex(model.swashRingData.type);
- populateSourceCB(ui->swashCollectiveCB, model.swashRingData.collectiveSource, POPULATE_SOURCES | POPULATE_SWITCHES | POPULATE_TRIMS);
+ populateSourceCB(ui->swashCollectiveCB, model.swashRingData.collectiveSource, model, POPULATE_SOURCES | POPULATE_SWITCHES | POPULATE_TRIMS);
ui->swashRingValSB->setValue(model.swashRingData.value);
ui->swashInvertELE->setChecked(model.swashRingData.invertELE);
ui->swashInvertAIL->setChecked(model.swashRingData.invertAIL);
diff --git a/companion/src/modeledit/inputs.cpp b/companion/src/modeledit/inputs.cpp
index d8882f01b..1376abb68 100644
--- a/companion/src/modeledit/inputs.cpp
+++ b/companion/src/modeledit/inputs.cpp
@@ -14,15 +14,15 @@ InputsPanel::InputsPanel(QWidget *parent, ModelData & model, GeneralSettings & g
QPushButton * qbUp = new QPushButton(this);
QPushButton * qbDown = new QPushButton(this);
QPushButton * qbClear = new QPushButton(this);
-
+
qbUp->setText(tr("Move Up"));
- qbUp->setIcon(QIcon(":/images/moveup.png"));
+ qbUp->setIcon(CompanionIcon("moveup.png"));
qbUp->setShortcut(QKeySequence(tr("Ctrl+Up")));
qbDown->setText(tr("Move Down"));
- qbDown->setIcon(QIcon(":/images/movedown.png"));
+ qbDown->setIcon(CompanionIcon("movedown.png"));
qbDown->setShortcut(QKeySequence(tr("Ctrl+Down")));
qbClear->setText(tr("Clear Expo Settings"));
- qbClear->setIcon(QIcon(":/images/clear.png"));
+ qbClear->setIcon(CompanionIcon("clear.png"));
exposLayout->addWidget(ExposlistWidget,1,1,1,3);
exposLayout->addWidget(qbUp,2,1);
@@ -48,6 +48,10 @@ void InputsPanel::update()
{
lock = true;
+ int inputsCount = GetEepromInterface()->getCapability(VirtualInputs);
+ if (inputsCount == 0)
+ inputsCount = NUM_STICKS;
+
// curDest -> destination channel
// i -> mixer number
QByteArray qba;
@@ -58,10 +62,12 @@ void InputsPanel::update()
ExpoData *md = &model.expoData[i];
if (md->mode==0) break;
- QString str = "";
- while(curDest<(int)md->chn-1) {
+
+ QString str;
+
+ while (curDest<(int)md->chn-1) {
curDest++;
- str = getStickStr(curDest);
+ str = getInputStr(model, curDest);
qba.clear();
qba.append((quint8)-curDest-1);
QListWidgetItem *itm = new QListWidgetItem(str);
@@ -69,14 +75,27 @@ void InputsPanel::update()
ExposlistWidget->addItem(itm);
}
- if(curDest!=(int)md->chn) {
- str = getStickStr(md->chn);
+ if (curDest!=(int)md->chn) {
+ if (GetEepromInterface()->getCapability(VirtualInputs))
+ str = QString("%1").arg(getInputStr(model, md->chn), -8, ' ');
+ else
+ str = getInputStr(model, md->chn);
curDest = md->chn;
- } else {
+ }
+ else {
str = " ";
}
- if (!GetEepromInterface()->getCapability(VirtualInputs)) {
+ if (GetEepromInterface()->getCapability(VirtualInputs)) {
+ str += " " + tr("Source(%1)").arg(md->srcRaw.toString());
+ if (md->carryTrim>0) {
+ str += " " + tr("No Trim");
+ }
+ else if (md->carryTrim<0) {
+ str += " " + RawSource(SOURCE_TYPE_TRIM, (-(md->carryTrim)-1)).toString();
+ }
+ }
+ else {
switch (md->mode) {
case (1): str += " <-"; break;
case (2): str += " ->"; break;
@@ -94,12 +113,10 @@ void InputsPanel::update()
if (md->swtch.type != SWITCH_TYPE_NONE) str += " " + tr("Switch(%1)").arg(md->swtch.toString());
if (GetEepromInterface()->getCapability(HasExpoNames)) {
- QString ExpoName;
- ExpoName.append(md->name);
- if (!ExpoName.isEmpty()) {
- str+=QString("(%1)").arg(ExpoName);
- }
+ QString expoName = md->name;
+ if (!expoName.isEmpty()) str += QString(" [%1]").arg(expoName);
}
+
qba.clear();
qba.append((quint8)i);
qba.append((const char*)md, sizeof(ExpoData));
@@ -108,9 +125,9 @@ void InputsPanel::update()
ExposlistWidget->addItem(itm); //(str);
}
- while(curDest=C9X_MAX_EXPOS || model.expoData[C9X_MAX_EXPOS-1].mode > 0) {
- QMessageBox::information(this, "companion9x", tr("Not enough available expos!"));
+ QMessageBox::information(this, "companion", tr("Not enough available expos!"));
return false;
}
@@ -154,12 +171,13 @@ void InputsPanel::gm_openExpo(int index)
emit modified();
update();
- ExpoDialog *g = new ExpoDialog(this, &mixd, generalSettings.stickMode);
- if(g->exec()) {
+ ExpoDialog *g = new ExpoDialog(this, model, &mixd, generalSettings.stickMode);
+ if (g->exec()) {
model.expoData[index] = mixd;
emit modified();
update();
- } else {
+ }
+ else {
if (expoInserted) {
gm_deleteExpo(index);
}
@@ -203,7 +221,7 @@ void InputsPanel::exposDelete(bool ask)
QMessageBox::StandardButton ret = QMessageBox::No;
if(ask)
- ret = QMessageBox::warning(this, "companion9x",
+ ret = QMessageBox::warning(this, "companion",
tr("Delete Selected Expos?"),
QMessageBox::Yes | QMessageBox::No);
@@ -231,7 +249,7 @@ void InputsPanel::exposCopy()
}
QMimeData *mimeData = new QMimeData;
- mimeData->setData("application/x-companion9x-expo", mxData);
+ mimeData->setData("application/x-companion-expo", mxData);
QApplication::clipboard()->setMimeData(mimeData,QClipboard::Clipboard);
}
@@ -245,7 +263,7 @@ void InputsPanel::mimeExpoDropped(int index, const QMimeData *data, Qt::DropActi
#include
void InputsPanel::pasteExpoMimeData(const QMimeData * mimeData, int destIdx)
{
- if (mimeData->hasFormat("application/x-companion9x-expo")) {
+ if (mimeData->hasFormat("application/x-companion-expo")) {
int idx; // mixer index
int dch;
@@ -257,7 +275,7 @@ void InputsPanel::pasteExpoMimeData(const QMimeData * mimeData, int destIdx)
dch = model.expoData[idx].chn;
}
- QByteArray mxData = mimeData->data("application/x-companion9x-expo");
+ QByteArray mxData = mimeData->data("application/x-companion-expo");
int i = 0;
while (i < mxData.size()) {
@@ -333,20 +351,20 @@ void InputsPanel::expolistWidget_customContextMenuRequested(QPoint pos)
const QClipboard *clipboard = QApplication::clipboard();
const QMimeData *mimeData = clipboard->mimeData();
- bool hasData = mimeData->hasFormat("application/x-companion9x-expo");
+ bool hasData = mimeData->hasFormat("application/x-companion-expo");
QMenu contextMenu;
- contextMenu.addAction(QIcon(":/images/add.png"), tr("&Add"),this,SLOT(expoAdd()),tr("Ctrl+A"));
- contextMenu.addAction(QIcon(":/images/edit.png"), tr("&Edit"),this,SLOT(expoOpen()),tr("Enter"));
+ contextMenu.addAction(CompanionIcon("add.png"), tr("&Add"),this,SLOT(expoAdd()),tr("Ctrl+A"));
+ contextMenu.addAction(CompanionIcon("edit.png"), tr("&Edit"),this,SLOT(expoOpen()),tr("Enter"));
contextMenu.addSeparator();
- contextMenu.addAction(QIcon(":/images/clear.png"), tr("&Delete"),this,SLOT(exposDelete()),tr("Delete"));
- contextMenu.addAction(QIcon(":/images/copy.png"), tr("&Copy"),this,SLOT(exposCopy()),tr("Ctrl+C"));
- contextMenu.addAction(QIcon(":/images/cut.png"), tr("&Cut"),this,SLOT(exposCut()),tr("Ctrl+X"));
- contextMenu.addAction(QIcon(":/images/paste.png"), tr("&Paste"),this,SLOT(exposPaste()),tr("Ctrl+V"))->setEnabled(hasData);
- contextMenu.addAction(QIcon(":/images/duplicate.png"), tr("Du&plicate"),this,SLOT(exposDuplicate()),tr("Ctrl+U"));
+ contextMenu.addAction(CompanionIcon("clear.png"), tr("&Delete"),this,SLOT(exposDelete()),tr("Delete"));
+ contextMenu.addAction(CompanionIcon("copy.png"), tr("&Copy"),this,SLOT(exposCopy()),tr("Ctrl+C"));
+ contextMenu.addAction(CompanionIcon("cut.png"), tr("&Cut"),this,SLOT(exposCut()),tr("Ctrl+X"));
+ contextMenu.addAction(CompanionIcon("paste.png"), tr("&Paste"),this,SLOT(exposPaste()),tr("Ctrl+V"))->setEnabled(hasData);
+ contextMenu.addAction(CompanionIcon("duplicate.png"), tr("Du&plicate"),this,SLOT(exposDuplicate()),tr("Ctrl+U"));
contextMenu.addSeparator();
- contextMenu.addAction(QIcon(":/images/moveup.png"), tr("Move Up"),this,SLOT(moveExpoUp()),tr("Ctrl+Up"));
- contextMenu.addAction(QIcon(":/images/movedown.png"), tr("Move Down"),this,SLOT(moveExpoDown()),tr("Ctrl+Down"));
+ contextMenu.addAction(CompanionIcon("moveup.png"), tr("Move Up"),this,SLOT(moveExpoUp()),tr("Ctrl+Up"));
+ contextMenu.addAction(CompanionIcon("movedown.png"), tr("Move Down"),this,SLOT(moveExpoDown()),tr("Ctrl+Down"));
contextMenu.exec(globalPos);
}
diff --git a/companion/src/modeledit/mixerdialog.cpp b/companion/src/modeledit/mixerdialog.cpp
index d0d4c3560..4dc69cd12 100644
--- a/companion/src/modeledit/mixerdialog.cpp
+++ b/companion/src/modeledit/mixerdialog.cpp
@@ -3,9 +3,10 @@
#include "eeprominterface.h"
#include "helpers.h"
-MixerDialog::MixerDialog(QWidget *parent, MixData *mixdata, int stickMode) :
+MixerDialog::MixerDialog(QWidget *parent, ModelData & model, MixData *mixdata, int stickMode) :
QDialog(parent),
ui(new Ui::MixerDialog),
+ model(model),
md(mixdata),
lock(false)
{
@@ -19,84 +20,44 @@ MixerDialog::MixerDialog(QWidget *parent, MixData *mixdata, int stickMode) :
else
this->setWindowTitle(tr("DEST -> CH%1%2").arg(md->destCh/10).arg(md->destCh%10));
- populateSourceCB(ui->sourceCB, md->srcRaw, POPULATE_SOURCES | POPULATE_SWITCHES | (GetEepromInterface()->getCapability(ExtraTrims) ? POPULATE_TRIMS : 0) | (GetEepromInterface()->getCapability(GvarsAsSources) ? POPULATE_GVARS : 0));
-
+ populateSourceCB(ui->sourceCB, md->srcRaw, model, POPULATE_SOURCES | POPULATE_VIRTUAL_INPUTS | POPULATE_SWITCHES | POPULATE_TRIMS | (GetEepromInterface()->getCapability(GvarsAsSources) ? POPULATE_GVARS : 0));
ui->sourceCB->removeItem(0);
- int limit=GetEepromInterface()->getCapability(OffsetWeight);
- int gvars=0;
- if (GetEepromInterface()->getCapability(HasVariants)) {
- if ((GetCurrentFirmwareVariant() & GVARS_VARIANT)) {
- gvars=1;
- }
- } else {
- gvars=1;
- }
- if (gvars==0) {
- ui->offsetGV->setDisabled(true);
- ui->weightGV->setDisabled(true);
- if (md->weight>limit || md->weight<-limit) {
- md->weight=100;
- }
- if (md->sOffset>limit || md->sOffset<-limit) {
- md->sOffset=0;
- }
- }
- populateGVCB(ui->offsetCB,md->sOffset);
- populateGVCB(ui->weightCB,md->weight);
- ui->weightSB->setMinimum(-limit);
- ui->weightSB->setMaximum(limit);
- if (md->weight>limit || md->weight<-limit) {
- ui->weightGV->setChecked(true);
- ui->weightSB->hide();
- ui->weightCB->show();
- }
- else {
- ui->weightGV->setChecked(false);
- ui->weightSB->setValue(md->weight);
- ui->weightSB->show();
- ui->weightCB->hide();
- }
- ui->offsetSB->setMinimum(-limit);
- ui->offsetSB->setMaximum(limit);
- if (md->sOffset>limit || md->sOffset<-limit) {
- ui->offsetGV->setChecked(true);
- ui->offsetSB->hide();
- ui->offsetCB->show();
- }
- else {
- ui->offsetGV->setChecked(false);
- ui->offsetSB->setValue(md->sOffset);
- ui->offsetSB->show();
- ui->offsetCB->hide();
- }
+ int limit = GetEepromInterface()->getCapability(OffsetWeight);
+
+ gvWeightGroup = new GVarGroup(ui->weightGV, ui->weightSB, ui->weightCB, md->weight, 100, -limit, limit);
+ gvOffsetGroup = new GVarGroup(ui->offsetGV, ui->offsetSB, ui->offsetCB, md->sOffset, 0, -limit, limit);
if (GetEepromInterface()->getCapability(VirtualInputs)) {
ui->trimLabel->hide();
ui->trimCB->hide();
}
- CurveGroup * curveGroup = new CurveGroup(ui->curveTypeCB, ui->curveGVarCB, ui->curveValueCB, ui->curveValueSB, md->curve);
+ curveGroup = new CurveGroup(ui->curveTypeCB, ui->curveGVarCB, ui->curveValueCB, ui->curveValueSB, md->curve);
ui->MixDR_CB->setChecked(md->noExpo==0);
if (!GetEepromInterface()->getCapability(MixesWithoutExpo)) {
ui->MixDR_CB->hide();
ui->label_MixDR->hide();
}
- if (GetEepromInterface()->getCapability(ExtraTrims)) {
- ui->trimCB->addItem(tr("Rud"),1);
- ui->trimCB->addItem(tr("Ele"),2);
- ui->trimCB->addItem(tr("Thr"),3);
- ui->trimCB->addItem(tr("Ail"),4);
- }
- ui->trimCB->setCurrentIndex((-md->carryTrim)+1);
- int namelength=GetEepromInterface()->getCapability(HasMixerNames);
+
+ ui->trimCB->addItem(tr("Rud"), 1);
+ ui->trimCB->addItem(tr("Ele"), 2);
+ ui->trimCB->addItem(tr("Thr"), 3);
+ ui->trimCB->addItem(tr("Ail"), 4);
+ ui->trimCB->setCurrentIndex(1 - md->carryTrim);
+
+ int namelength = GetEepromInterface()->getCapability(HasMixerNames);
if (!namelength) {
ui->label_name->hide();
ui->mixerName->hide();
- } else {
+ }
+ else {
ui->mixerName->setMaxLength(namelength);
}
+ ui->mixerName->setValidator(new QRegExpValidator(rx, this));
+ ui->mixerName->setText(md->name);
+
if (!GetEepromInterface()->getCapability(FlightPhases)) {
ui->label_phases->hide();
for (int i=0; i<9; i++) {
@@ -118,9 +79,6 @@ MixerDialog::MixerDialog(QWidget *parent, MixData *mixdata, int stickMode) :
}
}
- ui->mixerName->setValidator(new QRegExpValidator(rx, this));
- ui->mixerName->setText(md->name);
-
populateSwitchCB(ui->switchesCB,md->swtch);
ui->warningCB->setCurrentIndex(md->mixWarn);
ui->mltpxCB->setCurrentIndex(md->mltpx);
@@ -147,12 +105,6 @@ MixerDialog::MixerDialog(QWidget *parent, MixData *mixdata, int stickMode) :
valuesChanged();
connect(ui->mixerName,SIGNAL(editingFinished()),this,SLOT(valuesChanged()));
connect(ui->sourceCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged()));
- connect(ui->weightCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged()));
- connect(ui->offsetCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged()));
- connect(ui->weightSB,SIGNAL(editingFinished()),this,SLOT(valuesChanged()));
- connect(ui->offsetSB,SIGNAL(editingFinished()),this,SLOT(valuesChanged()));
- connect(ui->weightGV,SIGNAL(stateChanged(int)),this,SLOT(widgetChanged())); // TODO why the same slot?
- connect(ui->offsetGV,SIGNAL(stateChanged(int)),this,SLOT(widgetChanged()));
connect(ui->trimCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged()));
connect(ui->MixDR_CB,SIGNAL(toggled(bool)),this,SLOT(valuesChanged()));
connect(ui->switchesCB,SIGNAL(currentIndexChanged(int)),this,SLOT(valuesChanged()));
@@ -169,54 +121,23 @@ MixerDialog::MixerDialog(QWidget *parent, MixData *mixdata, int stickMode) :
MixerDialog::~MixerDialog()
{
- delete ui;
+ delete gvWeightGroup;
+ delete gvOffsetGroup;
+ delete curveGroup;
+ delete ui;
}
void MixerDialog::changeEvent(QEvent *e)
{
- QDialog::changeEvent(e);
- switch (e->type()) {
+ QDialog::changeEvent(e);
+
+ switch (e->type()) {
case QEvent::LanguageChange:
- ui->retranslateUi(this);
- break;
+ ui->retranslateUi(this);
+ break;
default:
- break;
- }
-}
-
-void MixerDialog::widgetChanged()
-{
- int gvars = 0;
- if (GetEepromInterface()->getCapability(HasVariants)) {
- if ((GetCurrentFirmwareVariant() & GVARS_VARIANT)) {
- gvars = 1;
- }
+ break;
}
- else {
- gvars = 1;
- }
-
- if (gvars == 1) {
- if (ui->weightGV->isChecked()) {
- ui->weightCB->show();
- ui->weightSB->hide();
- }
- else {
- ui->weightCB->hide();
- ui->weightSB->show();
- }
- if (ui->offsetGV->isChecked()) {
- ui->offsetCB->show();
- ui->offsetSB->hide();
- }
- else {
- ui->offsetCB->hide();
- ui->offsetSB->show();
- }
- }
-
- valuesChanged();
- QTimer::singleShot(0, this, SLOT(shrink()));
}
void MixerDialog::valuesChanged()
@@ -224,29 +145,21 @@ void MixerDialog::valuesChanged()
if (!lock) {
lock = true;
QCheckBox * cb_fp[] = {ui->cb_FP0,ui->cb_FP1,ui->cb_FP2,ui->cb_FP3,ui->cb_FP4,ui->cb_FP5,ui->cb_FP6,ui->cb_FP7,ui->cb_FP8 };
- md->srcRaw = RawSource(ui->sourceCB->itemData(ui->sourceCB->currentIndex()).toInt());
+ md->srcRaw = RawSource(ui->sourceCB->itemData(ui->sourceCB->currentIndex()).toInt(), &model);
if ((ui->sourceCB->itemData(ui->sourceCB->currentIndex()).toInt()-65536)<4) {
if (!GetEepromInterface()->getCapability(MixesWithoutExpo)) {
ui->MixDR_CB->hide();
ui->label_MixDR->hide();
- } else {
+ }
+ else {
ui->MixDR_CB->setVisible(true);
ui->label_MixDR->setVisible(true);
}
- } else {
+ }
+ else {
ui->MixDR_CB->setHidden(true);
ui->label_MixDR->setHidden(true);
}
- if (ui->weightGV->isChecked()) {
- md->weight = ui->weightCB->itemData(ui->weightCB->currentIndex()).toInt();
- } else {
- md->weight = ui->weightSB->value();
- }
- if (ui->offsetGV->isChecked()) {
- md->sOffset = ui->offsetCB->itemData(ui->offsetCB->currentIndex()).toInt();
- } else {
- md->sOffset = ui->offsetSB->value();
- }
md->carryTrim = -(ui->trimCB->currentIndex()-1);
md->noExpo = ui->MixDR_CB->checkState() ? 0 : 1;
md->swtch = RawSwitch(ui->switchesCB->itemData(ui->switchesCB->currentIndex()).toInt());
@@ -276,6 +189,7 @@ void MixerDialog::valuesChanged()
}
}
-void MixerDialog::shrink() {
- resize(0,0);
+void MixerDialog::shrink()
+{
+ resize(0, 0);
}
diff --git a/companion/src/modeledit/mixerdialog.h b/companion/src/modeledit/mixerdialog.h
index 9435e1892..437d9ca21 100644
--- a/companion/src/modeledit/mixerdialog.h
+++ b/companion/src/modeledit/mixerdialog.h
@@ -4,29 +4,34 @@
#include
#include "eeprominterface.h"
+class GVarGroup;
+class CurveGroup;
+
namespace Ui {
- class MixerDialog;
+ class MixerDialog;
}
class MixerDialog : public QDialog {
Q_OBJECT
-public:
- MixerDialog(QWidget *parent, MixData *mixdata, int stickMode);
+ public:
+ MixerDialog(QWidget *parent, ModelData & model, MixData *mixdata, int stickMode);
~MixerDialog();
-protected:
+ protected:
void changeEvent(QEvent *e);
-private slots:
- void widgetChanged();
+ private slots:
void valuesChanged();
void shrink();
-
-private:
+ private:
Ui::MixerDialog *ui;
+ ModelData & model;
MixData *md;
bool lock;
+ GVarGroup * gvWeightGroup;
+ GVarGroup * gvOffsetGroup;
+ CurveGroup * curveGroup;
};
#endif // MIXERDIALOG_H
diff --git a/companion/src/modeledit/mixerdialog.ui b/companion/src/modeledit/mixerdialog.ui
index ed14a05b9..04d876b80 100644
--- a/companion/src/modeledit/mixerdialog.ui
+++ b/companion/src/modeledit/mixerdialog.ui
@@ -6,7 +6,7 @@
0
0
- 342
+ 364
434
@@ -20,7 +20,7 @@
Dialog
-
+
:/icon.png :/icon.png
@@ -612,7 +612,7 @@ If blank then the mix is considered to be "ON" all the time.
-
+
diff --git a/companion/src/modeledit/mixerslist.cpp b/companion/src/modeledit/mixerslist.cpp
index 4d2f90320..06d8cd3f5 100644
--- a/companion/src/modeledit/mixerslist.cpp
+++ b/companion/src/modeledit/mixerslist.cpp
@@ -40,9 +40,9 @@ bool MixersList::dropMimeData( int index, const QMimeData * data, Qt::DropAction
{
QMimeData *mimeData = new QMimeData;
if (expo)
- mimeData->setData("application/x-companion9x-expo", qba);
+ mimeData->setData("application/x-companion-expo", qba);
else
- mimeData->setData("application/x-companion9x-mix", qba);
+ mimeData->setData("application/x-companion-mix", qba);
emit mimeDropped(index, mimeData, action);
}
diff --git a/companion/src/modeledit/mixes.cpp b/companion/src/modeledit/mixes.cpp
index 63a4bcb9c..ed6016e57 100644
--- a/companion/src/modeledit/mixes.cpp
+++ b/companion/src/modeledit/mixes.cpp
@@ -14,15 +14,14 @@ MixesPanel::MixesPanel(QWidget *parent, ModelData & model, GeneralSettings & gen
QPushButton * qbUp = new QPushButton(this);
QPushButton * qbDown = new QPushButton(this);
QPushButton * qbClear = new QPushButton(this);
-
qbUp->setText(tr("Move Up"));
- qbUp->setIcon(QIcon(":/images/moveup.png"));
+ qbUp->setIcon(CompanionIcon("moveup.png"));
qbUp->setShortcut(QKeySequence(tr("Ctrl+Up")));
qbDown->setText(tr("Move Down"));
- qbDown->setIcon(QIcon(":/images/movedown.png"));
+ qbDown->setIcon(CompanionIcon("movedown.png"));
qbDown->setShortcut(QKeySequence(tr("Ctrl+Down")));
qbClear->setText(tr("Clear Mixes"));
- qbClear->setIcon(QIcon(":/images/clear.png"));
+ qbClear->setIcon(CompanionIcon("clear.png"));
mixesLayout->addWidget(MixerlistWidget,1,1,1,3);
mixesLayout->addWidget(qbUp,2,1);
@@ -113,11 +112,13 @@ void MixesPanel::update()
if (md->swtch.type != SWITCH_TYPE_NONE) str += " " + tr("Switch(%1)").arg(md->swtch.toString());
- if (md->carryTrim>0) {
- str += " " + tr("No Trim");
- }
- else if (md->carryTrim<0) {
- str += " " + RawSource(SOURCE_TYPE_TRIM, (-(md->carryTrim)-1)).toString();
+ if (!GetEepromInterface()->getCapability(VirtualInputs)) {
+ if (md->carryTrim>0) {
+ str += " " + tr("No Trim");
+ }
+ else if (md->carryTrim<0) {
+ str += " " + RawSource(SOURCE_TYPE_TRIM, (-(md->carryTrim)-1)).toString();
+ }
}
if (md->noExpo) str += " " + tr("No DR/Expo");
@@ -176,7 +177,7 @@ void MixesPanel::update()
bool MixesPanel::gm_insertMix(int idx)
{
if (idx<0 || idx>=GetEepromInterface()->getCapability(Mixes) || model.mixData[GetEepromInterface()->getCapability(Mixes)-1].destCh > 0) {
- QMessageBox::information(this, "companion9x", tr("Not enough available mixers!"));
+ QMessageBox::information(this, "companion", tr("Not enough available mixers!"));
return false;
}
@@ -205,7 +206,7 @@ void MixesPanel::gm_openMix(int index)
emit modified();
update();
- MixerDialog *g = new MixerDialog(this, &mixd, generalSettings.stickMode);
+ MixerDialog *g = new MixerDialog(this, model, &mixd, generalSettings.stickMode);
if(g->exec()) {
model.mixData[index] = mixd;
emit modified();
@@ -281,7 +282,7 @@ void MixesPanel::mixersDelete(bool ask)
QMessageBox::StandardButton ret = QMessageBox::No;
if(ask)
- ret = QMessageBox::warning(this, "companion9x",
+ ret = QMessageBox::warning(this, "companion",
tr("Delete Selected Mixes?"),
QMessageBox::Yes | QMessageBox::No);
@@ -310,13 +311,13 @@ void MixesPanel::mixersCopy()
}
QMimeData *mimeData = new QMimeData;
- mimeData->setData("application/x-companion9x-mix", mxData);
+ mimeData->setData("application/x-companion-mix", mxData);
QApplication::clipboard()->setMimeData(mimeData,QClipboard::Clipboard);
}
void MixesPanel::pasteMixerMimeData(const QMimeData * mimeData, int destIdx)
{
- if(mimeData->hasFormat("application/x-companion9x-mix")) {
+ if(mimeData->hasFormat("application/x-companion-mix")) {
int idx; // mixer index
int dch;
@@ -328,7 +329,7 @@ void MixesPanel::pasteMixerMimeData(const QMimeData * mimeData, int destIdx)
dch = model.mixData[idx].destCh;
}
- QByteArray mxData = mimeData->data("application/x-companion9x-mix");
+ QByteArray mxData = mimeData->data("application/x-companion-mix");
int i = 0;
while(imimeData();
- bool hasData = mimeData->hasFormat("application/x-companion9x-mix");
+ bool hasData = mimeData->hasFormat("application/x-companion-mix");
QMenu contextMenu;
- contextMenu.addAction(QIcon(":/images/add.png"), tr("&Add"),this,SLOT(mixerAdd()),tr("Ctrl+A"));
- contextMenu.addAction(QIcon(":/images/edit.png"), tr("&Edit"),this,SLOT(mixerOpen()),tr("Enter"));
+ contextMenu.addAction(CompanionIcon("add.png"), tr("&Add"),this,SLOT(mixerAdd()),tr("Ctrl+A"));
+ contextMenu.addAction(CompanionIcon("edit.png"), tr("&Edit"),this,SLOT(mixerOpen()),tr("Enter"));
contextMenu.addSeparator();
- contextMenu.addAction(QIcon(":/images/clear.png"), tr("&Delete"),this,SLOT(mixersDelete()),tr("Delete"));
- contextMenu.addAction(QIcon(":/images/copy.png"), tr("&Copy"),this,SLOT(mixersCopy()),tr("Ctrl+C"));
- contextMenu.addAction(QIcon(":/images/cut.png"), tr("&Cut"),this,SLOT(mixersCut()),tr("Ctrl+X"));
- contextMenu.addAction(QIcon(":/images/paste.png"), tr("&Paste"),this,SLOT(mixersPaste()),tr("Ctrl+V"))->setEnabled(hasData);
- contextMenu.addAction(QIcon(":/images/duplicate.png"), tr("Du&plicate"),this,SLOT(mixersDuplicate()),tr("Ctrl+U"));
+ contextMenu.addAction(CompanionIcon("clear.png"), tr("&Delete"),this,SLOT(mixersDelete()),tr("Delete"));
+ contextMenu.addAction(CompanionIcon("copy.png"), tr("&Copy"),this,SLOT(mixersCopy()),tr("Ctrl+C"));
+ contextMenu.addAction(CompanionIcon("cut.png"), tr("&Cut"),this,SLOT(mixersCut()),tr("Ctrl+X"));
+ contextMenu.addAction(CompanionIcon("paste.png"), tr("&Paste"),this,SLOT(mixersPaste()),tr("Ctrl+V"))->setEnabled(hasData);
+ contextMenu.addAction(CompanionIcon("duplicate.png"), tr("Du&plicate"),this,SLOT(mixersDuplicate()),tr("Ctrl+U"));
contextMenu.addSeparator();
- contextMenu.addAction(QIcon(":/images/moveup.png"), tr("Move Up"),this,SLOT(moveMixUp()),tr("Ctrl+Up"));
- contextMenu.addAction(QIcon(":/images/movedown.png"), tr("Move Down"),this,SLOT(moveMixDown()),tr("Ctrl+Down"));
+ contextMenu.addAction(CompanionIcon("moveup.png"), tr("Move Up"),this,SLOT(moveMixUp()),tr("Ctrl+Up"));
+ contextMenu.addAction(CompanionIcon("movedown.png"), tr("Move Down"),this,SLOT(moveMixDown()),tr("Ctrl+Down"));
contextMenu.exec(globalPos);
}
diff --git a/companion/src/modeledit/modeledit.cpp b/companion/src/modeledit/modeledit.cpp
index fcdc68108..8a22cbc54 100644
--- a/companion/src/modeledit/modeledit.cpp
+++ b/companion/src/modeledit/modeledit.cpp
@@ -7,6 +7,7 @@
#include "mixes.h"
#include "channels.h"
#include "curves.h"
+#include "../helpers.h"
#include "customswitches.h"
#include "customfunctions.h"
#include "telemetry.h"
@@ -17,9 +18,12 @@ ModelEdit::ModelEdit(RadioData & radioData, int modelId, bool openWizard, bool i
ui(new Ui::ModelEdit),
modelId(modelId),
model(radioData.models[modelId]),
- generalSettings(generalSettings)
+ generalSettings(radioData.generalSettings)
{
ui->setupUi(this);
+ QSettings settings;
+ restoreGeometry(settings.value("modelEditGeometry").toByteArray());
+ ui->pushButton->setIcon(CompanionIcon("simulate.png"));
addTab(new Setup(this, model), tr("Setup"));
addTab(new HeliPanel(this, model), tr("Heli"));
addTab(new FlightModes(this, model, radioData.generalSettings), tr("Flight Modes"));
@@ -30,7 +34,6 @@ ModelEdit::ModelEdit(RadioData & radioData, int modelId, bool openWizard, bool i
if (GetEepromInterface()->getCapability(CustomFunctions))
addTab(new CustomFunctionsPanel(this, model, radioData.generalSettings), tr("Assignable Functions"));
addTab(new Curves(this, model), tr("Curves"));
- // TODO remove this capability if (!GetEepromInterface()->getCapability(FSSwitch))
if (GetEepromInterface()->getCapability(Telemetry) & TM_HASTELEMETRY)
addTab(new TelemetryPanel(this, model), tr("Telemetry"));
}
@@ -40,6 +43,12 @@ ModelEdit::~ModelEdit()
delete ui;
}
+void ModelEdit::closeEvent(QCloseEvent *event)
+{
+ QSettings settings;
+ settings.setValue("modelEditGeometry", saveGeometry());
+}
+
class VerticalScrollArea : public QScrollArea
{
public:
diff --git a/companion/src/modeledit/modeledit.h b/companion/src/modeledit/modeledit.h
index 4208a7190..9450d90d4 100644
--- a/companion/src/modeledit/modeledit.h
+++ b/companion/src/modeledit/modeledit.h
@@ -15,6 +15,9 @@ class ModelEdit : public QDialog
public:
explicit ModelEdit(RadioData & radioData, int modelId , bool openWizard =false, bool inNew =false, QWidget *parent = 0);
~ModelEdit();
+
+ protected:
+ void closeEvent(QCloseEvent *event);
signals:
void modified();
diff --git a/companion/src/modeledit/modeledit.ui b/companion/src/modeledit/modeledit.ui
index a4ac2fa1e..9002e383b 100644
--- a/companion/src/modeledit/modeledit.ui
+++ b/companion/src/modeledit/modeledit.ui
@@ -20,7 +20,7 @@
Dialog
-
+
:/icon.png :/icon.png
@@ -50,10 +50,6 @@
Simulate
-
-
- :/images/simulate.png :/images/simulate.png
-
@@ -61,7 +57,7 @@
-
+
diff --git a/companion/src/modeledit/setup.cpp b/companion/src/modeledit/setup.cpp
index 0302d367e..2a27bb7cf 100644
--- a/companion/src/modeledit/setup.cpp
+++ b/companion/src/modeledit/setup.cpp
@@ -19,13 +19,10 @@ TimerPanel::TimerPanel(QWidget *parent, ModelData & model, TimerData & timer):
ui->persistentValue->hide();
}
- if (!GetEepromInterface()->getCapability(minuteBeep)) {
- ui->minuteBeep->hide();
- }
-
- if (!GetEepromInterface()->getCapability(countdownBeep)) {
- ui->countdownBeep->hide();
- }
+ ui->countdownBeep->addItem(tr("None"));
+ ui->countdownBeep->addItem(tr("Beeps"));
+ if (IS_ARM(GetEepromInterface()->getBoard()) || IS_2560(GetEepromInterface()->getBoard()))
+ ui->countdownBeep->addItem(tr("Countdown"));
}
TimerPanel::~TimerPanel()
@@ -54,13 +51,8 @@ void TimerPanel::update()
ui->persistentValue->setText(QString(" %1(%2:%3:%4)").arg(sign<0 ? "-" :" ").arg(hours, 2, 10, QLatin1Char('0')).arg(minutes, 2, 10, QLatin1Char('0')).arg(seconds, 2, 10, QLatin1Char('0')));
}
- if (GetEepromInterface()->getCapability(minuteBeep)) {
- ui->minuteBeep->setChecked(timer.minuteBeep);
- }
-
- if (GetEepromInterface()->getCapability(countdownBeep)) {
- ui->countdownBeep->setChecked(timer.countdownBeep);
- }
+ ui->countdownBeep->setCurrentIndex(timer.countdownBeep);
+ ui->minuteBeep->setChecked(timer.minuteBeep);
}
void TimerPanel::on_value_editingFinished()
@@ -81,15 +73,15 @@ void TimerPanel::on_persistent_toggled(bool checked)
emit modified();
}
-void TimerPanel::on_minuteBeep_toggled(bool checked)
+void TimerPanel::on_countdownBeep_currentIndexChanged(int index)
{
- timer.minuteBeep = checked;
+ timer.countdownBeep = index;
emit modified();
}
-void TimerPanel::on_countdownBeep_toggled(bool checked)
+void TimerPanel::on_minuteBeep_toggled(bool checked)
{
- timer.countdownBeep = checked;
+ timer.minuteBeep = checked;
emit modified();
}
@@ -224,14 +216,18 @@ void ModulePanel::update()
ui->label_failsafeMode->setVisible(mask & MASK_FAILSAFES);
ui->failsafeMode->setVisible(mask & MASK_FAILSAFES);
ui->failsafeMode->setCurrentIndex(module.failsafeMode);
- ui->label_failsafeFrame->setVisible(mask & MASK_FAILSAFES);
- ui->failsafesFrame->setVisible(mask & MASK_FAILSAFES);
ui->failsafesFrame->setEnabled(module.failsafeMode == 1);
for (int i=0; isetValue(module.failsafeChannels[i]);
failsafeSpins[i]->setValue(module.failsafeChannels[i]);
}
}
+ else {
+ mask = 0;
+ }
+
+ ui->failsafesLayoutLabel->setVisible(mask & MASK_FAILSAFES);
+ ui->failsafesFrame->setVisible(mask & MASK_FAILSAFES);
}
void ModulePanel::on_trainerMode_currentIndexChanged(int index)
@@ -353,7 +349,7 @@ Setup::Setup(QWidget *parent, ModelData & model):
if (GetEepromInterface()->getCapability(ModelImage)) {
QStringList items;
items.append("");
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString path = settings.value("sdPath", ".").toString();
path.append("/BMP/");
QDir qd(path);
@@ -497,7 +493,7 @@ void Setup::on_image_currentIndexChanged(int index)
{
if (!lock) {
strncpy(model.bitmap, ui->image->currentText().toAscii(), GetEepromInterface()->getCapability(VoicesMaxLength));
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString path=settings.value("sdPath", ".").toString();
path.append("/BMP/");
QDir qd(path);
diff --git a/companion/src/modeledit/setup.h b/companion/src/modeledit/setup.h
index 7b33ffe5a..d1392e1dd 100644
--- a/companion/src/modeledit/setup.h
+++ b/companion/src/modeledit/setup.h
@@ -28,7 +28,7 @@ class TimerPanel : public ModelPanel
void on_value_editingFinished();
void on_persistent_toggled(bool checked);
void on_minuteBeep_toggled(bool checked);
- void on_countdownBeep_toggled(bool checked);
+ void on_countdownBeep_currentIndexChanged(int index);
private:
TimerData & timer;
diff --git a/companion/src/modeledit/setup_module.ui b/companion/src/modeledit/setup_module.ui
index 500ea2fe8..406488f96 100644
--- a/companion/src/modeledit/setup_module.ui
+++ b/companion/src/modeledit/setup_module.ui
@@ -443,7 +443,7 @@
-
-
+
16777215
diff --git a/companion/src/modeledit/setup_timer.ui b/companion/src/modeledit/setup_timer.ui
index 96ed9370f..e87ed86b8 100644
--- a/companion/src/modeledit/setup_timer.ui
+++ b/companion/src/modeledit/setup_timer.ui
@@ -6,8 +6,8 @@
0
0
- 726
- 54
+ 586
+ 38
@@ -33,6 +33,23 @@
-
+ -
+
+
+ Countdown
+
+
+
+ -
+
+
+ -
+
+
+ MinuteBeep
+
+
+
-
@@ -47,20 +64,6 @@
- -
-
-
- MinuteBeep
-
-
-
- -
-
-
- CountDownBeep
-
-
-
-
diff --git a/companion/src/modeledit/telemetry.cpp b/companion/src/modeledit/telemetry.cpp
index 8b286f281..fe6241015 100644
--- a/companion/src/modeledit/telemetry.cpp
+++ b/companion/src/modeledit/telemetry.cpp
@@ -342,7 +342,7 @@ TelemetryPanel::~TelemetryPanel()
void TelemetryPanel::setup()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString firmware_id = settings.value("firmware", default_firmware_variant.id).toString();
lock=true;
@@ -371,15 +371,19 @@ void TelemetryPanel::setup()
if (!GetEepromInterface()->getCapability(HasAltitudeSel)) {
ui->AltitudeGPS_ChkB->hide();
- } else {
+ }
+ else {
ui->AltitudeGPS_ChkB->setChecked(model.frsky.FrSkyGpsAlt);
}
- int varioCap=GetEepromInterface()->getCapability(HasVario);
+
if (IS_TARANIS(GetEepromInterface()->getBoard())) {
ui->AltitudeToolbar_ChkB->setChecked(model.frsky.altitudeDisplayed);
- } else {
+ }
+ else {
ui->AltitudeToolbar_ChkB->hide();
}
+
+ int varioCap = GetEepromInterface()->getCapability(HasVario);
if (!varioCap) {
ui->varioLimitMax_DSB->hide();
ui->varioLimitMinOff_ChkB->hide();
@@ -485,7 +489,8 @@ void TelemetryPanel::setup()
if (!(GetEepromInterface()->getCapability(HasFasOffset)) && !(firmware_id.contains("fasoffset"))) {
ui->fasOffset_label->hide();
ui->fasOffset_DSB->hide();
- } else {
+ }
+ else {
ui->fasOffset_DSB->setValue(model.frsky.fasOffset/10.0);
ui->variousGB->show();
}
@@ -494,11 +499,13 @@ void TelemetryPanel::setup()
ui->mahCount_label->hide();
ui->mahCount_SB->hide();
ui->mahCount_ChkB->hide();
- } else {
+ }
+ else {
if (model.frsky.mAhPersistent) {
ui->mahCount_ChkB->setChecked(true);
ui->mahCount_SB->setValue(model.frsky.storedMah);
- } else {
+ }
+ else {
ui->mahCount_SB->setDisabled(true);
}
ui->variousGB->show();
@@ -671,7 +678,6 @@ void TelemetryPanel::on_AltitudeGPS_ChkB_toggled(bool checked)
if (lock) return;
model.frsky.FrSkyGpsAlt = checked;
emit modified();
- //AltitudeGPS_CB
}
void TelemetryPanel::on_AltitudeToolbar_ChkB_toggled(bool checked)
diff --git a/companion/src/modeledit/templates.cpp b/companion/src/modeledit/templates.cpp
index c45b920bf..6bfb52247 100644
--- a/companion/src/modeledit/templates.cpp
+++ b/companion/src/modeledit/templates.cpp
@@ -2,6 +2,28 @@
#include
#include
+void ModelEdit::setCurve(uint8_t c, int8_t ar[])
+{
+ int len=sizeof(ar)/sizeof(int8_t);
+
+ if (GetEepromInterface()->getCapability(NumCurves)>c) {
+ if (len<9) {
+ model.curves[c].count=5;
+ model.curves[c].custom=false;
+ for (int i=0; i< 5; i++) {
+ model.curves[c].points[i].y=ar[i];
+ }
+ }
+ else {
+ model.curves[c].count=5;
+ model.curves[c].custom=false;
+ for (int i=0; i< 5; i++) {
+ model.curves[c].points[i].y=ar[i];
+ }
+ }
+ }
+}
+
Templates::Templates(QWidget * parent, ModelData & model):
QWidget(parent),
model(model)
diff --git a/companion/src/modelslist.cpp b/companion/src/modelslist.cpp
index 4f3b3eb02..088945f12 100644
--- a/companion/src/modelslist.cpp
+++ b/companion/src/modelslist.cpp
@@ -41,6 +41,7 @@
#include "modelslist.h"
#include "mdichild.h"
+#include "helpers.h"
class DragDropHeader {
public:
@@ -81,24 +82,24 @@ void ModelsListWidget::ShowContextMenu(const QPoint& pos)
const QClipboard *clipboard = QApplication::clipboard();
const QMimeData *mimeData = clipboard->mimeData();
- bool hasData = mimeData->hasFormat("application/x-companion9x");
+ bool hasData = mimeData->hasFormat("application/x-companion");
QMenu contextMenu;
- contextMenu.addAction(QIcon(":/images/edit.png"), tr("&Edit"),this,SLOT(OpenEditWindow()));
- contextMenu.addAction(QIcon(":/images/open.png"), tr("&Restore from backup"),this,SLOT(LoadBackup()));
- contextMenu.addAction(QIcon(":/images/wizard.png"), tr("&Model Wizard"),this,SLOT(OpenWizard()));
+ contextMenu.addAction(CompanionIcon("edit.png"), tr("&Edit"),this,SLOT(OpenEditWindow()));
+ contextMenu.addAction(CompanionIcon("open.png"), tr("&Restore from backup"),this,SLOT(LoadBackup()));
+ contextMenu.addAction(CompanionIcon("wizard.png"), tr("&Model Wizard"),this,SLOT(OpenWizard()));
contextMenu.addSeparator();
- contextMenu.addAction(QIcon(":/images/clear.png"), tr("&Delete"),this,SLOT(confirmDelete()),tr("Delete"));
- contextMenu.addAction(QIcon(":/images/copy.png"), tr("&Copy"),this,SLOT(copy()),tr("Ctrl+C"));
- contextMenu.addAction(QIcon(":/images/cut.png"), tr("&Cut"),this,SLOT(cut()),tr("Ctrl+X"));
- contextMenu.addAction(QIcon(":/images/paste.png"), tr("&Paste"),this,SLOT(paste()),tr("Ctrl+V"))->setEnabled(hasData);
- contextMenu.addAction(QIcon(":/images/duplicate.png"), tr("D&uplicate"),this,SLOT(duplicate()),tr("Ctrl+U"));
+ contextMenu.addAction(CompanionIcon("clear.png"), tr("&Delete"),this,SLOT(confirmDelete()),tr("Delete"));
+ contextMenu.addAction(CompanionIcon("copy.png"), tr("&Copy"),this,SLOT(copy()),tr("Ctrl+C"));
+ contextMenu.addAction(CompanionIcon("cut.png"), tr("&Cut"),this,SLOT(cut()),tr("Ctrl+X"));
+ contextMenu.addAction(CompanionIcon("paste.png"), tr("&Paste"),this,SLOT(paste()),tr("Ctrl+V"))->setEnabled(hasData);
+ contextMenu.addAction(CompanionIcon("duplicate.png"), tr("D&uplicate"),this,SLOT(duplicate()),tr("Ctrl+U"));
contextMenu.addSeparator();
- contextMenu.addAction(QIcon(":/images/currentmodel.png"), tr("&Use as default"),this,SLOT(setdefault()));
+ contextMenu.addAction(CompanionIcon("currentmodel.png"), tr("&Use as default"),this,SLOT(setdefault()));
contextMenu.addSeparator();
- contextMenu.addAction(QIcon(":/images/print.png"), tr("P&rint model"),this, SLOT(print()),tr("Alt+R"));
+ contextMenu.addAction(CompanionIcon("print.png"), tr("P&rint model"),this, SLOT(print()),tr("Alt+R"));
contextMenu.addSeparator();
- contextMenu.addAction(QIcon(":/images/simulate.png"), tr("&Simulate model"),this, SLOT(simulate()),tr("Alt+S"));
+ contextMenu.addAction(CompanionIcon("simulate.png"), tr("&Simulate model"),this, SLOT(simulate()),tr("Alt+S"));
contextMenu.exec(globalPos);
}
@@ -161,7 +162,7 @@ void ModelsListWidget::mouseMoveEvent(QMouseEvent *event)
doCopy(&gmData);
QMimeData *mimeData = new QMimeData;
- mimeData->setData("application/x-companion9x", gmData);
+ mimeData->setData("application/x-companion", gmData);
drag->setMimeData(mimeData);
@@ -189,7 +190,7 @@ void ModelsListWidget::restoreSelection()
void ModelsListWidget::dragEnterEvent(QDragEnterEvent *event)
{
- if (event->mimeData()->hasFormat("application/x-companion9x"))
+ if (event->mimeData()->hasFormat("application/x-companion"))
{
event->acceptProposedAction();
saveSelection();
@@ -205,9 +206,9 @@ void ModelsListWidget::dragMoveEvent(QDragMoveEvent *event)
{
int row=this->indexAt(event->pos()).row();
const QMimeData *mimeData = event->mimeData();
- if (mimeData->hasFormat("application/x-companion9x"))
+ if (mimeData->hasFormat("application/x-companion"))
{
- QByteArray gmData = mimeData->data("application/x-companion9x");
+ QByteArray gmData = mimeData->data("application/x-companion");
event->acceptProposedAction();
clearSelection();
DragDropHeader *header = (DragDropHeader *)gmData.data();
@@ -228,9 +229,9 @@ void ModelsListWidget::dropEvent(QDropEvent *event)
// QMessageBox::warning(this, tr("Companion"),tr("Index :%1").arg(row));
const QMimeData *mimeData = event->mimeData();
- if(mimeData->hasFormat("application/x-companion9x"))
+ if(mimeData->hasFormat("application/x-companion"))
{
- QByteArray gmData = mimeData->data("application/x-companion9x");
+ QByteArray gmData = mimeData->data("application/x-companion");
if (event->source() && event->dropAction() == Qt::MoveAction)
((ModelsListWidget*)event->source())->doCut(&gmData);
doPaste(&gmData, row);
@@ -425,7 +426,7 @@ void ModelsListWidget::copy()
doCopy(&gmData);
QMimeData *mimeData = new QMimeData;
- mimeData->setData("application/x-companion9x", gmData);
+ mimeData->setData("application/x-companion", gmData);
QClipboard *clipboard = QApplication::clipboard();
clipboard->setMimeData(mimeData,QClipboard::Clipboard);
@@ -433,7 +434,7 @@ void ModelsListWidget::copy()
void ModelsListWidget::doPaste(QByteArray *gmData, int index)
{
- //QByteArray gmData = mimeD->data("application/x-companion9x");
+ //QByteArray gmData = mimeD->data("application/x-companion");
char *gData = gmData->data()+sizeof(DragDropHeader);//new char[gmData.size() + 1];
int i = sizeof(DragDropHeader);
int id = index;
@@ -490,7 +491,7 @@ bool ModelsListWidget::hasPasteData()
const QClipboard *clipboard = QApplication::clipboard();
const QMimeData *mimeData = clipboard->mimeData();
- return mimeData->hasFormat("application/x-companion9x");
+ return mimeData->hasFormat("application/x-companion");
}
void ModelsListWidget::paste()
@@ -499,7 +500,7 @@ void ModelsListWidget::paste()
const QClipboard *clipboard = QApplication::clipboard();
const QMimeData *mimeData = clipboard->mimeData();
- QByteArray gmData = mimeData->data("application/x-companion9x");
+ QByteArray gmData = mimeData->data("application/x-companion");
doPaste(&gmData,this->currentRow());
}
}
diff --git a/companion/src/preferencesdialog.cpp b/companion/src/preferencesdialog.cpp
index 1d98d55ac..a8c50452c 100644
--- a/companion/src/preferencesdialog.cpp
+++ b/companion/src/preferencesdialog.cpp
@@ -17,7 +17,9 @@ preferencesDialog::preferencesDialog(QWidget *parent) :
updateLock(false)
{
ui->setupUi(this);
-
+ setWindowIcon(CompanionIcon("preferences.png"));
+ ui->splashLibraryButton->setIcon(CompanionIcon("library.png"));
+ ui->clearImageButton->setIcon(CompanionIcon("clear.png"));
QCheckBox * OptionCheckBox[]= {
ui->optionCheckBox_1, ui->optionCheckBox_2, ui->optionCheckBox_3, ui->optionCheckBox_4, ui->optionCheckBox_5, ui->optionCheckBox_6, ui->optionCheckBox_7,
@@ -225,7 +227,7 @@ void preferencesDialog::firmwareChanged()
ui->CPU_ID_LE->hide();
ui->CPU_ID_LABEL->hide();
}
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
settings.beginGroup("FwRevisions");
int fwrev = settings.value(variant.id, -1).toInt();
settings.endGroup();
@@ -251,7 +253,7 @@ void preferencesDialog::firmwareChanged()
void preferencesDialog::writeValues()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
if (ui->locale_QB->currentIndex() > 0)
settings.setValue("locale", ui->locale_QB->itemData(ui->locale_QB->currentIndex()));
else
@@ -260,11 +262,13 @@ void preferencesDialog::writeValues()
settings.setValue("default_channel_order", ui->channelorderCB->currentIndex());
settings.setValue("default_mode", ui->stickmodeCB->currentIndex());
settings.setValue("cpu_id", ui->CPU_ID_LE->text());
- settings.setValue("startup_check_companion9x", ui->startupCheck_companion9x->isChecked());
+ settings.setValue("startup_check_companion", ui->startupCheck_companion9x->isChecked());
settings.setValue("startup_check_fw", ui->startupCheck_fw->isChecked());
settings.setValue("rename_firmware_files", ui->renameFirmware->isChecked());
settings.setValue("wizardEnable", ui->wizardEnable_ChkB->isChecked());
settings.setValue("show_splash", ui->showSplash->isChecked());
+ settings.setValue("theme", ui->theme_CB->currentIndex());
+ settings.setValue("icon_size", ui->iconSize_CB->currentIndex());
settings.setValue("simuSW", ui->simuSW->isChecked());
settings.setValue("history_size", ui->historySize->value());
settings.setValue("burnFirmware", ui->burnFirmware->isChecked());
@@ -382,7 +386,7 @@ void preferencesDialog::populateFirmwareOptions(const FirmwareInfo * firmware)
void preferencesDialog::initSettings()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
int i = ui->locale_QB->findData(settings.value("locale"));
if (i < 0) i = 0;
ui->locale_QB->setCurrentIndex(i);
@@ -400,10 +404,12 @@ void preferencesDialog::initSettings()
}
ui->channelorderCB->setCurrentIndex(settings.value("default_channel_order", 0).toInt());
ui->stickmodeCB->setCurrentIndex(settings.value("default_mode", 1).toInt());
- ui->startupCheck_companion9x->setChecked(settings.value("startup_check_companion9x", true).toBool());
+ ui->startupCheck_companion9x->setChecked(settings.value("startup_check_companion", true).toBool());
ui->renameFirmware->setChecked(settings.value("rename_firmware_files", false).toBool());
ui->wizardEnable_ChkB->setChecked(settings.value("wizardEnable", true).toBool());
ui->showSplash->setChecked(settings.value("show_splash", true).toBool());
+ ui->theme_CB->setCurrentIndex(settings.value("theme", 1).toInt());
+ ui->iconSize_CB->setCurrentIndex(settings.value("icon_size", 2).toInt());
ui->historySize->setValue(settings.value("history_size", 10).toInt());
ui->backLightColor->setCurrentIndex(settings.value("backLight", 0).toInt());
ui->startupCheck_fw->setChecked(settings.value("startup_check_fw", true).toBool());
@@ -521,7 +527,7 @@ void preferencesDialog::on_fw_dnld_clicked()
writeValues();
if (!variant.firmware->getUrl(variant.id).isNull()) {
if (ui->burnFirmware->isChecked()) {
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
current_firmware_variant = getFirmwareVariant();
settings.setValue("firmware", current_firmware_variant.id);
}
@@ -542,7 +548,7 @@ void preferencesDialog::on_voice_dnld_clicked()
void preferencesDialog::on_libraryPathButton_clicked()
{
ui->ProfSave_PB->setEnabled(true);
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString fileName = QFileDialog::getExistingDirectory(this,tr("Select your library folder"), settings.value("libraryPath").toString());
if (!fileName.isEmpty()) {
settings.setValue("libraryPath", fileName);
@@ -552,7 +558,7 @@ void preferencesDialog::on_libraryPathButton_clicked()
void preferencesDialog::on_snapshotPathButton_clicked()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString fileName = QFileDialog::getExistingDirectory(this,tr("Select your snapshot folder"), settings.value("snapshotPath").toString());
if (!fileName.isEmpty()) {
settings.setValue("snapshotpath", fileName);
@@ -563,7 +569,7 @@ void preferencesDialog::on_snapshotPathButton_clicked()
void preferencesDialog::on_snapshotClipboardCKB_clicked()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
if (ui->snapshotClipboardCKB->isChecked()) {
ui->snapshotPath->setDisabled(true);
ui->snapshotPathButton->setDisabled(true);
@@ -579,7 +585,7 @@ void preferencesDialog::on_snapshotClipboardCKB_clicked()
void preferencesDialog::on_backupPathButton_clicked()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString fileName = QFileDialog::getExistingDirectory(this,tr("Select your Models and Settings backup folder"), settings.value("backupPath").toString());
if (!fileName.isEmpty()) {
settings.setValue("backupPath", fileName);
@@ -590,7 +596,7 @@ void preferencesDialog::on_backupPathButton_clicked()
void preferencesDialog::on_ge_pathButton_clicked()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString fileName = QFileDialog::getOpenFileName(this, tr("Select Google Earth executable"),ui->ge_lineedit->text());
if (!fileName.isEmpty()) {
ui->ge_lineedit->setText(fileName);
@@ -616,7 +622,7 @@ void preferencesDialog::on_splashLibraryButton_clicked()
void preferencesDialog::on_sdPathButton_clicked()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString fileName = QFileDialog::getExistingDirectory(this,tr("Select the folder replicating your SD structure"), settings.value("sdPath").toString());
if (!fileName.isEmpty()) {
ui->sdPath->setText(fileName);
@@ -626,7 +632,7 @@ void preferencesDialog::on_sdPathButton_clicked()
void preferencesDialog::on_ProfSlot_SB_valueChanged()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
settings.beginGroup("Profiles");
QString profile=QString("profile%1").arg(ui->ProfSlot_SB->value());
settings.beginGroup(profile);
@@ -655,7 +661,7 @@ void preferencesDialog::on_ProfSlot_SB_valueChanged()
void preferencesDialog::on_ProfSave_PB_clicked()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
settings.beginGroup("Profiles");
QString profile=QString("profile%1").arg(ui->ProfSlot_SB->value());
QString name=ui->ProfName_LE->text();
@@ -694,7 +700,7 @@ void preferencesDialog::on_ProfSave_PB_clicked()
void preferencesDialog::on_export_PB_clicked()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString profile=QString("profile%1").arg(ui->ProfSlot_SB->value());
QString name=ui->ProfName_LE->text();
if (!name.isEmpty()) {
@@ -715,7 +721,7 @@ void preferencesDialog::on_export_PB_clicked()
void preferencesDialog::on_import_PB_clicked()
{
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString profile=QString("profile%1").arg(ui->ProfSlot_SB->value());
QString name=ui->ProfName_LE->text();
if (!name.isEmpty()) {
@@ -748,7 +754,7 @@ void preferencesDialog::on_SplashSelect_clicked()
supportedImageFormats += QLatin1String(" *.") + QImageReader::supportedImageFormats()[formatIndex];
}
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
QString fileName = QFileDialog::getOpenFileName(this,
tr("Open Image to load"), settings.value("lastImagesDir").toString(), tr("Images (%1)").arg(supportedImageFormats));
@@ -825,7 +831,7 @@ void preferencesDialog::on_joystickChkB_clicked() {
}
void preferencesDialog::on_joystickcalButton_clicked() {
- //QSettings settings("companion9x", "companion9x");
+ //QSettings settings;
//settings.setValue("joystick-name",ui->joystickCB->currentText());
joystickDialog * jd=new joystickDialog(this, ui->joystickCB->currentIndex());
jd->exec();
@@ -837,7 +843,7 @@ void preferencesDialog::on_checkFWUpdates_clicked()
{
FirmwareVariant variant = getFirmwareVariant();
if (ui->burnFirmware->isChecked()) {
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
current_firmware_variant = variant;
settings.setValue("firmware", variant.id);
}
diff --git a/companion/src/preferencesdialog.ui b/companion/src/preferencesdialog.ui
index b52060211..31acbd438 100644
--- a/companion/src/preferencesdialog.ui
+++ b/companion/src/preferencesdialog.ui
@@ -7,7 +7,7 @@
0
0
685
- 710
+ 838
@@ -25,10 +25,6 @@
Preferences
-
-
- :/images/preferences.png :/images/preferences.png
-
QLayout::SetMinimumSize
@@ -39,7 +35,32 @@
4
- -
+
-
+
+ -
+
+
+ true
+
+
+
+ -
+
+
+ Open Folder
+
+
+
+ -
+
+
+ auto backup before write
+
+
+
+
+
+ -
@@ -48,18 +69,96 @@
- Show Splash Screen
+ Show Splash At Start
- -
+
-
+
+ -
+
+
+ Enable
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ -
+
+
+ Calibrate
+
+
+
+
+
+ -
+
+
+ Automatic Backup Folder
+
+
+
+ -
+
+ -
+
+
+
+ 40
+ 0
+
+
+
+ 15
+
+
+ 10
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ Ask use of wizard for new models
+
+
+ true
+
+
+
+
+
+ -
Qt::Horizontal
- -
+
-
@@ -75,41 +174,7 @@
- -
-
- -
-
-
- Check for updates on startup
-
-
- true
-
-
-
- -
-
-
- Check for selected Fw updates
-
-
- true
-
-
-
-
-
- -
-
-
- Ask use of wizard for new models
-
-
- true
-
-
-
- -
+
-
-
@@ -160,25 +225,18 @@
...
-
-
- :/images/clear.png :/images/clear.png
-
- -
-
-
- -
+
-
Remember switches in simulator
- -
+
-
-
@@ -207,7 +265,7 @@
- -
+
-
6
@@ -227,10 +285,6 @@
...
-
-
- :/images/library.png :/images/library.png
-
-
@@ -248,33 +302,27 @@
- -
-
+ -
+
-
-
-
- true
+ Simulator capture folder
- -
-
+ -
+
-
- 40
+
+ 0
0
-
- 15
-
-
- 10
+
+ Language (requires restart)
- -
+
-
@@ -418,7 +466,7 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
@@ -431,35 +479,7 @@ This is used by the templated to determine which channel goes to what number out
- -
-
- -
-
-
- Enable
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- -
-
-
- Calibrate
-
-
-
-
-
- -
+
-
1
@@ -483,7 +503,7 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
-
@@ -507,7 +527,7 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
@@ -520,7 +540,7 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
-
@@ -563,7 +583,7 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
-
@@ -590,7 +610,7 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
-
@@ -638,20 +658,7 @@ This is used by the templated to determine which channel goes to what number out
- -
-
-
-
- 0
- 0
-
-
-
- Language (requires restart)
-
-
-
- -
+
-
1
@@ -682,7 +689,7 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
@@ -695,7 +702,7 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
@@ -711,7 +718,7 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
Mode selection:
@@ -759,95 +766,14 @@ Mode 4:
- -
-
-
-
- 0
- 0
-
-
-
- Joystick
-
-
-
- -
-
-
-
- 0
- 0
-
-
- -
-
- Include companion splashes
-
-
- -
-
- Only user defined splashes
-
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- Splash library behaviour
-
-
- Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
-
-
-
- -
+
-
Profile slot
- -
-
-
- Automatic Backup Folder
-
-
-
- -
-
- -
-
-
- true
-
-
-
- -
-
-
- Open Folder
-
-
-
- -
-
-
- auto backup before write
-
-
-
-
-
- -
+
-
Qt::Vertical
@@ -863,7 +789,7 @@ Mode 4:
- -
+
-
-
@@ -890,7 +816,7 @@ Mode 4:
- -
+
-
QLayout::SetMaximumSize
@@ -981,7 +907,7 @@ May be different from firmware language
- -
+
-
-
@@ -1021,13 +947,6 @@ May be different from firmware language
- -
-
-
- Simulator capture folder
-
-
-
-
@@ -1041,14 +960,14 @@ May be different from firmware language
- -
+
-
Qt::Horizontal
- -
+
-
QLayout::SetMaximumSize
@@ -1601,7 +1520,217 @@ May be different from firmware language
- -
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Splash library behaviour
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+ -
+
+ Include companion splashes
+
+
+ -
+
+ Only user defined splashes
+
+
+
+
+ -
+
+ -
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+
+
+ Theme
+
+
+
+ -
+
+
+ Requires restart
+
+ -
+
+ Classic
+
+
+ -
+
+ Monochrome
+
+
+ -
+
+ MonoWhite
+
+
+ -
+
+ MonoBlue
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Fixed
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+
+
+ Icon size
+
+
+
+ -
+
+
+ Requires restart
+
+ -
+
+ Small
+
+
+ -
+
+ Normal
+
+
+ -
+
+ Big
+
+
+ -
+
+ Huge
+
+
+
+
+
+
+ -
+
+ -
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ Check for updates on startup
+
+
+ true
+
+
+
+ -
+
+
+ Check for selected Fw updates
+
+
+ true
+
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Joystick
+
+
+
+ -
+
+
+ Google Earth Executable
+
+
+
+ -
-
@@ -1619,17 +1748,9 @@ May be different from firmware language
- -
-
-
- Google Earth Executable
-
-
-
- locale_QB
InvertPixels
clearImageButton
SplashFileName
@@ -1649,7 +1770,7 @@ May be different from firmware language
buttonBox
-
+
diff --git a/companion/src/printdialog.cpp b/companion/src/printdialog.cpp
index ac1cc9feb..e952e3ee3 100644
--- a/companion/src/printdialog.cpp
+++ b/companion/src/printdialog.cpp
@@ -176,7 +176,7 @@ QString printDialog::printPhases()
str.append(""+tr("Switch")+" "+tr("Flight mode name"));
str.append(" "+tr("IN")+" "+tr("OUT")+" ");
for (int i=0; i<4; i++) {
- str.append(QString("%1 ").arg(getStickStr(i)));
+ str.append(QString("%1 ").arg(getInputStr(*g_model, i)));
}
if (gvars==1) {
for (int i=0; i");
if(lastCHN!=ed->chn) {
lastCHN=ed->chn;
- str.append(""+getStickStr(ed->chn)+" ");
+ str.append(""+getInputStr(*g_model, ed->chn)+" ");
}
else
str.append(" ");
diff --git a/companion/src/printdialog.ui b/companion/src/printdialog.ui
index 3cff71f1b..169c33103 100644
--- a/companion/src/printdialog.ui
+++ b/companion/src/printdialog.ui
@@ -26,8 +26,8 @@
Dialog
-
- :/images/print.png :/images/print.png
+
+ :/icon.png :/icon.png
-
@@ -78,7 +78,7 @@
-
+
diff --git a/companion/src/simulatordialog.cpp b/companion/src/simulatordialog.cpp
index 0e3d2a688..1bbddf4ef 100644
--- a/companion/src/simulatordialog.cpp
+++ b/companion/src/simulatordialog.cpp
@@ -32,7 +32,7 @@ simulatorDialog::simulatorDialog(QWidget *parent) :
beepVal = 0;
beepShow = 0;
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
backLight = settings.value("backLight",0).toInt();
bool simuSW=settings.value("simuSW",false).toBool();
switch (backLight) {
@@ -211,7 +211,7 @@ void simulatorDialog::setupTimer()
void simulatorDialog::onButtonPressed(int value)
{
if (value==Qt::Key_Print) {
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
bool toclipboard=settings.value("snapshot_to_clipboard", false).toBool();
QString fileName ="";
if (!toclipboard) {
diff --git a/companion/src/simulatordialog.ui b/companion/src/simulatordialog.ui
index 004da67c6..de9a3a43a 100644
--- a/companion/src/simulatordialog.ui
+++ b/companion/src/simulatordialog.ui
@@ -26,8 +26,8 @@
Companion Simulator
-
- :/images/simulate.png :/images/simulate.png
+
+ :/icon.png :/icon.png
@@ -1092,7 +1092,6 @@ QPushButton:checked {
-
-
-
-
0
@@ -3711,7 +3708,7 @@ border-radius: 4px;
-
+
diff --git a/companion/src/splashlibrary.cpp b/companion/src/splashlibrary.cpp
index 0c2b431b6..49aef10e4 100644
--- a/companion/src/splashlibrary.cpp
+++ b/companion/src/splashlibrary.cpp
@@ -9,6 +9,8 @@
splashLibrary::splashLibrary(QWidget *parent, QString * fileName) : QDialog(parent), ui(new Ui::splashLibrary) {
splashFileName = fileName;
ui->setupUi(this);
+ ui->nextPage->setIcon(CompanionIcon("arrow-right.png"));
+ ui->prevPage->setIcon(CompanionIcon("arrow-left.png"));
page = 0;
getFileList();
if (imageList.size() > 20) {
@@ -59,7 +61,7 @@ void splashLibrary::setupPage(int page) {
}
void splashLibrary::getFileList() {
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
imageList.clear();
if (settings.value("embedded_splashes", 0).toInt() == 0) {
QDir myRes(":/images/library");
@@ -144,4 +146,4 @@ void splashLibrary::on_prevPage_clicked() {
ui->nextPage->setEnabled(true);
}
setupPage(page);
-}
\ No newline at end of file
+}
diff --git a/companion/src/splashlibrary.ui b/companion/src/splashlibrary.ui
index e5e8c5de6..9507a2d08 100644
--- a/companion/src/splashlibrary.ui
+++ b/companion/src/splashlibrary.ui
@@ -25,6 +25,10 @@
+
+
+ :/icon.png :/icon.png
+
-
@@ -46,10 +50,6 @@
...
-
-
- :/images/arrow-left.png :/images/arrow-left.png
-
50
@@ -945,10 +945,6 @@
...
-
-
- :/images/arrow-right.png :/images/arrow-right.png
-
50
@@ -967,7 +963,7 @@
-
+
diff --git a/companion/src/themes/classic/16/add.png b/companion/src/themes/classic/16/add.png
new file mode 100644
index 000000000..7976174fd
Binary files /dev/null and b/companion/src/themes/classic/16/add.png differ
diff --git a/companion/src/themes/classic/16/arrow-left.png b/companion/src/themes/classic/16/arrow-left.png
new file mode 100644
index 000000000..a1b3d0964
Binary files /dev/null and b/companion/src/themes/classic/16/arrow-left.png differ
diff --git a/companion/src/themes/classic/16/arrow-right.png b/companion/src/themes/classic/16/arrow-right.png
new file mode 100644
index 000000000..1311fb52f
Binary files /dev/null and b/companion/src/themes/classic/16/arrow-right.png differ
diff --git a/companion/src/themes/classic/16/changelog.png b/companion/src/themes/classic/16/changelog.png
new file mode 100644
index 000000000..9e4e6ae57
Binary files /dev/null and b/companion/src/themes/classic/16/changelog.png differ
diff --git a/companion/src/themes/classic/16/clear.png b/companion/src/themes/classic/16/clear.png
new file mode 100644
index 000000000..12c465218
Binary files /dev/null and b/companion/src/themes/classic/16/clear.png differ
diff --git a/companion/src/themes/classic/16/compare.png b/companion/src/themes/classic/16/compare.png
new file mode 100644
index 000000000..eda5f13b9
Binary files /dev/null and b/companion/src/themes/classic/16/compare.png differ
diff --git a/companion/src/themes/classic/16/configure.png b/companion/src/themes/classic/16/configure.png
new file mode 100644
index 000000000..a627160f9
Binary files /dev/null and b/companion/src/themes/classic/16/configure.png differ
diff --git a/companion/src/themes/classic/16/contributors.png b/companion/src/themes/classic/16/contributors.png
new file mode 100644
index 000000000..439d2bcb8
Binary files /dev/null and b/companion/src/themes/classic/16/contributors.png differ
diff --git a/companion/src/themes/classic/16/copy.png b/companion/src/themes/classic/16/copy.png
new file mode 100644
index 000000000..0d016ee10
Binary files /dev/null and b/companion/src/themes/classic/16/copy.png differ
diff --git a/companion/src/themes/classic/16/currentmodel.png b/companion/src/themes/classic/16/currentmodel.png
new file mode 100644
index 000000000..691f8f92d
Binary files /dev/null and b/companion/src/themes/classic/16/currentmodel.png differ
diff --git a/companion/src/themes/classic/16/customize.png b/companion/src/themes/classic/16/customize.png
new file mode 100644
index 000000000..878a614b5
Binary files /dev/null and b/companion/src/themes/classic/16/customize.png differ
diff --git a/companion/src/themes/classic/16/cut.png b/companion/src/themes/classic/16/cut.png
new file mode 100644
index 000000000..600e320c6
Binary files /dev/null and b/companion/src/themes/classic/16/cut.png differ
diff --git a/companion/src/themes/classic/16/duplicate.png b/companion/src/themes/classic/16/duplicate.png
new file mode 100644
index 000000000..90c7319e5
Binary files /dev/null and b/companion/src/themes/classic/16/duplicate.png differ
diff --git a/companion/src/themes/classic/16/edit.png b/companion/src/themes/classic/16/edit.png
new file mode 100644
index 000000000..5358d50bb
Binary files /dev/null and b/companion/src/themes/classic/16/edit.png differ
diff --git a/companion/src/themes/classic/16/exit.png b/companion/src/themes/classic/16/exit.png
new file mode 100644
index 000000000..c188d80d8
Binary files /dev/null and b/companion/src/themes/classic/16/exit.png differ
diff --git a/companion/src/themes/classic/16/fuses.png b/companion/src/themes/classic/16/fuses.png
new file mode 100644
index 000000000..512a067ed
Binary files /dev/null and b/companion/src/themes/classic/16/fuses.png differ
diff --git a/companion/src/themes/classic/16/information.png b/companion/src/themes/classic/16/information.png
new file mode 100644
index 000000000..aca1565dd
Binary files /dev/null and b/companion/src/themes/classic/16/information.png differ
diff --git a/companion/src/themes/classic/16/library.png b/companion/src/themes/classic/16/library.png
new file mode 100644
index 000000000..2a4df7457
Binary files /dev/null and b/companion/src/themes/classic/16/library.png differ
diff --git a/companion/src/themes/classic/16/list.png b/companion/src/themes/classic/16/list.png
new file mode 100644
index 000000000..6bac38a45
Binary files /dev/null and b/companion/src/themes/classic/16/list.png differ
diff --git a/companion/src/themes/classic/16/logs.png b/companion/src/themes/classic/16/logs.png
new file mode 100644
index 000000000..880923fb6
Binary files /dev/null and b/companion/src/themes/classic/16/logs.png differ
diff --git a/companion/src/themes/classic/16/movedown.png b/companion/src/themes/classic/16/movedown.png
new file mode 100644
index 000000000..f609f5581
Binary files /dev/null and b/companion/src/themes/classic/16/movedown.png differ
diff --git a/companion/src/themes/classic/16/moveup.png b/companion/src/themes/classic/16/moveup.png
new file mode 100644
index 000000000..f44bf8b64
Binary files /dev/null and b/companion/src/themes/classic/16/moveup.png differ
diff --git a/companion/src/themes/classic/16/new.png b/companion/src/themes/classic/16/new.png
new file mode 100644
index 000000000..b40281b64
Binary files /dev/null and b/companion/src/themes/classic/16/new.png differ
diff --git a/companion/src/themes/classic/16/open.png b/companion/src/themes/classic/16/open.png
new file mode 100644
index 000000000..48509ab56
Binary files /dev/null and b/companion/src/themes/classic/16/open.png differ
diff --git a/companion/src/themes/classic/16/paintbrush.png b/companion/src/themes/classic/16/paintbrush.png
new file mode 100644
index 000000000..fc99fd5f2
Binary files /dev/null and b/companion/src/themes/classic/16/paintbrush.png differ
diff --git a/companion/src/themes/classic/16/paste.png b/companion/src/themes/classic/16/paste.png
new file mode 100644
index 000000000..7f1b0a7a8
Binary files /dev/null and b/companion/src/themes/classic/16/paste.png differ
diff --git a/companion/src/themes/classic/16/play.png b/companion/src/themes/classic/16/play.png
new file mode 100644
index 000000000..d4720f2d8
Binary files /dev/null and b/companion/src/themes/classic/16/play.png differ
diff --git a/companion/src/themes/classic/16/preferences.png b/companion/src/themes/classic/16/preferences.png
new file mode 100644
index 000000000..dae98ee8a
Binary files /dev/null and b/companion/src/themes/classic/16/preferences.png differ
diff --git a/companion/src/themes/classic/16/print.png b/companion/src/themes/classic/16/print.png
new file mode 100644
index 000000000..9f1d39eee
Binary files /dev/null and b/companion/src/themes/classic/16/print.png differ
diff --git a/companion/src/themes/classic/16/profiles.png b/companion/src/themes/classic/16/profiles.png
new file mode 100644
index 000000000..8343cc5c1
Binary files /dev/null and b/companion/src/themes/classic/16/profiles.png differ
diff --git a/companion/src/themes/classic/16/read_eeprom.png b/companion/src/themes/classic/16/read_eeprom.png
new file mode 100644
index 000000000..c9ef59ca4
Binary files /dev/null and b/companion/src/themes/classic/16/read_eeprom.png differ
diff --git a/companion/src/themes/classic/16/read_eeprom_file.png b/companion/src/themes/classic/16/read_eeprom_file.png
new file mode 100644
index 000000000..7617c17ba
Binary files /dev/null and b/companion/src/themes/classic/16/read_eeprom_file.png differ
diff --git a/companion/src/themes/classic/16/read_flash.png b/companion/src/themes/classic/16/read_flash.png
new file mode 100644
index 000000000..3591516de
Binary files /dev/null and b/companion/src/themes/classic/16/read_flash.png differ
diff --git a/companion/src/themes/classic/16/recentdocument.png b/companion/src/themes/classic/16/recentdocument.png
new file mode 100644
index 000000000..965e45f2d
Binary files /dev/null and b/companion/src/themes/classic/16/recentdocument.png differ
diff --git a/companion/src/themes/classic/16/save.png b/companion/src/themes/classic/16/save.png
new file mode 100644
index 000000000..fbcbc53a4
Binary files /dev/null and b/companion/src/themes/classic/16/save.png differ
diff --git a/companion/src/themes/classic/16/saveas.png b/companion/src/themes/classic/16/saveas.png
new file mode 100644
index 000000000..2e4ba2b82
Binary files /dev/null and b/companion/src/themes/classic/16/saveas.png differ
diff --git a/companion/src/themes/classic/16/simulate.png b/companion/src/themes/classic/16/simulate.png
new file mode 100644
index 000000000..94a8a4003
Binary files /dev/null and b/companion/src/themes/classic/16/simulate.png differ
diff --git a/companion/src/themes/classic/16/stop.png b/companion/src/themes/classic/16/stop.png
new file mode 100644
index 000000000..f2bb8792b
Binary files /dev/null and b/companion/src/themes/classic/16/stop.png differ
diff --git a/companion/src/themes/classic/16/switch_dir.png b/companion/src/themes/classic/16/switch_dir.png
new file mode 100644
index 000000000..006788cc0
Binary files /dev/null and b/companion/src/themes/classic/16/switch_dir.png differ
diff --git a/companion/src/themes/classic/16/update.png b/companion/src/themes/classic/16/update.png
new file mode 100644
index 000000000..0af079b3f
Binary files /dev/null and b/companion/src/themes/classic/16/update.png differ
diff --git a/companion/src/themes/classic/16/wizard.png b/companion/src/themes/classic/16/wizard.png
new file mode 100644
index 000000000..6bb4d070b
Binary files /dev/null and b/companion/src/themes/classic/16/wizard.png differ
diff --git a/companion/src/themes/classic/16/write_eeprom.png b/companion/src/themes/classic/16/write_eeprom.png
new file mode 100644
index 000000000..3dd15566a
Binary files /dev/null and b/companion/src/themes/classic/16/write_eeprom.png differ
diff --git a/companion/src/themes/classic/16/write_eeprom_file.png b/companion/src/themes/classic/16/write_eeprom_file.png
new file mode 100644
index 000000000..efbce2843
Binary files /dev/null and b/companion/src/themes/classic/16/write_eeprom_file.png differ
diff --git a/companion/src/themes/classic/16/write_flash.png b/companion/src/themes/classic/16/write_flash.png
new file mode 100644
index 000000000..c82b8c9e8
Binary files /dev/null and b/companion/src/themes/classic/16/write_flash.png differ
diff --git a/companion/src/themes/classic/24/add.png b/companion/src/themes/classic/24/add.png
new file mode 100644
index 000000000..073c0b2f1
Binary files /dev/null and b/companion/src/themes/classic/24/add.png differ
diff --git a/companion/src/themes/classic/24/arrow-left.png b/companion/src/themes/classic/24/arrow-left.png
new file mode 100644
index 000000000..9ad670cce
Binary files /dev/null and b/companion/src/themes/classic/24/arrow-left.png differ
diff --git a/companion/src/themes/classic/24/arrow-right.png b/companion/src/themes/classic/24/arrow-right.png
new file mode 100644
index 000000000..084d6597c
Binary files /dev/null and b/companion/src/themes/classic/24/arrow-right.png differ
diff --git a/companion/src/themes/classic/24/changelog.png b/companion/src/themes/classic/24/changelog.png
new file mode 100644
index 000000000..7f26eafcc
Binary files /dev/null and b/companion/src/themes/classic/24/changelog.png differ
diff --git a/companion/src/themes/classic/24/clear.png b/companion/src/themes/classic/24/clear.png
new file mode 100644
index 000000000..5a2f16f23
Binary files /dev/null and b/companion/src/themes/classic/24/clear.png differ
diff --git a/companion/src/themes/classic/24/compare.png b/companion/src/themes/classic/24/compare.png
new file mode 100644
index 000000000..2d9e035d8
Binary files /dev/null and b/companion/src/themes/classic/24/compare.png differ
diff --git a/companion/src/themes/classic/24/configure.png b/companion/src/themes/classic/24/configure.png
new file mode 100644
index 000000000..f3972b18f
Binary files /dev/null and b/companion/src/themes/classic/24/configure.png differ
diff --git a/companion/src/themes/classic/24/contributors.png b/companion/src/themes/classic/24/contributors.png
new file mode 100644
index 000000000..c35d8737e
Binary files /dev/null and b/companion/src/themes/classic/24/contributors.png differ
diff --git a/companion/src/themes/classic/24/copy.png b/companion/src/themes/classic/24/copy.png
new file mode 100644
index 000000000..714a0d590
Binary files /dev/null and b/companion/src/themes/classic/24/copy.png differ
diff --git a/companion/src/themes/classic/24/currentmodel.png b/companion/src/themes/classic/24/currentmodel.png
new file mode 100644
index 000000000..192a227fe
Binary files /dev/null and b/companion/src/themes/classic/24/currentmodel.png differ
diff --git a/companion/src/themes/classic/24/customize.png b/companion/src/themes/classic/24/customize.png
new file mode 100644
index 000000000..922d0b64d
Binary files /dev/null and b/companion/src/themes/classic/24/customize.png differ
diff --git a/companion/src/themes/classic/24/cut.png b/companion/src/themes/classic/24/cut.png
new file mode 100644
index 000000000..33b947198
Binary files /dev/null and b/companion/src/themes/classic/24/cut.png differ
diff --git a/companion/src/themes/classic/24/duplicate.png b/companion/src/themes/classic/24/duplicate.png
new file mode 100644
index 000000000..8ff23def9
Binary files /dev/null and b/companion/src/themes/classic/24/duplicate.png differ
diff --git a/companion/src/themes/classic/24/edit.png b/companion/src/themes/classic/24/edit.png
new file mode 100644
index 000000000..259e39bd3
Binary files /dev/null and b/companion/src/themes/classic/24/edit.png differ
diff --git a/companion/src/themes/classic/24/exit.png b/companion/src/themes/classic/24/exit.png
new file mode 100644
index 000000000..ba91c7bfc
Binary files /dev/null and b/companion/src/themes/classic/24/exit.png differ
diff --git a/companion/src/themes/classic/24/fuses.png b/companion/src/themes/classic/24/fuses.png
new file mode 100644
index 000000000..38ce749a1
Binary files /dev/null and b/companion/src/themes/classic/24/fuses.png differ
diff --git a/companion/src/themes/classic/24/information.png b/companion/src/themes/classic/24/information.png
new file mode 100644
index 000000000..ccf17132b
Binary files /dev/null and b/companion/src/themes/classic/24/information.png differ
diff --git a/companion/src/themes/classic/24/library.png b/companion/src/themes/classic/24/library.png
new file mode 100644
index 000000000..97e9bf596
Binary files /dev/null and b/companion/src/themes/classic/24/library.png differ
diff --git a/companion/src/themes/classic/24/list.png b/companion/src/themes/classic/24/list.png
new file mode 100644
index 000000000..5eeb66474
Binary files /dev/null and b/companion/src/themes/classic/24/list.png differ
diff --git a/companion/src/themes/classic/24/logs.png b/companion/src/themes/classic/24/logs.png
new file mode 100644
index 000000000..a9c247b27
Binary files /dev/null and b/companion/src/themes/classic/24/logs.png differ
diff --git a/companion/src/themes/classic/24/movedown.png b/companion/src/themes/classic/24/movedown.png
new file mode 100644
index 000000000..47f210256
Binary files /dev/null and b/companion/src/themes/classic/24/movedown.png differ
diff --git a/companion/src/themes/classic/24/moveup.png b/companion/src/themes/classic/24/moveup.png
new file mode 100644
index 000000000..1bf02bdff
Binary files /dev/null and b/companion/src/themes/classic/24/moveup.png differ
diff --git a/companion/src/themes/classic/24/new.png b/companion/src/themes/classic/24/new.png
new file mode 100644
index 000000000..0181a1ca2
Binary files /dev/null and b/companion/src/themes/classic/24/new.png differ
diff --git a/companion/src/themes/classic/24/open.png b/companion/src/themes/classic/24/open.png
new file mode 100644
index 000000000..45e64135a
Binary files /dev/null and b/companion/src/themes/classic/24/open.png differ
diff --git a/companion/src/themes/classic/24/paintbrush.png b/companion/src/themes/classic/24/paintbrush.png
new file mode 100644
index 000000000..de9e1806f
Binary files /dev/null and b/companion/src/themes/classic/24/paintbrush.png differ
diff --git a/companion/src/themes/classic/24/paste.png b/companion/src/themes/classic/24/paste.png
new file mode 100644
index 000000000..2a762fbfb
Binary files /dev/null and b/companion/src/themes/classic/24/paste.png differ
diff --git a/companion/src/themes/classic/24/play.png b/companion/src/themes/classic/24/play.png
new file mode 100644
index 000000000..7e1b547d9
Binary files /dev/null and b/companion/src/themes/classic/24/play.png differ
diff --git a/companion/src/themes/classic/24/preferences.png b/companion/src/themes/classic/24/preferences.png
new file mode 100644
index 000000000..ebca2028c
Binary files /dev/null and b/companion/src/themes/classic/24/preferences.png differ
diff --git a/companion/src/themes/classic/24/print.png b/companion/src/themes/classic/24/print.png
new file mode 100644
index 000000000..edb7bcfb1
Binary files /dev/null and b/companion/src/themes/classic/24/print.png differ
diff --git a/companion/src/themes/classic/24/profiles.png b/companion/src/themes/classic/24/profiles.png
new file mode 100644
index 000000000..394e8079f
Binary files /dev/null and b/companion/src/themes/classic/24/profiles.png differ
diff --git a/companion/src/themes/classic/24/read_eeprom.png b/companion/src/themes/classic/24/read_eeprom.png
new file mode 100644
index 000000000..9a0bbd6b7
Binary files /dev/null and b/companion/src/themes/classic/24/read_eeprom.png differ
diff --git a/companion/src/themes/classic/24/read_eeprom_file.png b/companion/src/themes/classic/24/read_eeprom_file.png
new file mode 100644
index 000000000..9f557a3c7
Binary files /dev/null and b/companion/src/themes/classic/24/read_eeprom_file.png differ
diff --git a/companion/src/themes/classic/24/read_flash.png b/companion/src/themes/classic/24/read_flash.png
new file mode 100644
index 000000000..ed77ff739
Binary files /dev/null and b/companion/src/themes/classic/24/read_flash.png differ
diff --git a/companion/src/themes/classic/24/recentdocument.png b/companion/src/themes/classic/24/recentdocument.png
new file mode 100644
index 000000000..1e3d9266b
Binary files /dev/null and b/companion/src/themes/classic/24/recentdocument.png differ
diff --git a/companion/src/themes/classic/24/save.png b/companion/src/themes/classic/24/save.png
new file mode 100644
index 000000000..bec9b6c13
Binary files /dev/null and b/companion/src/themes/classic/24/save.png differ
diff --git a/companion/src/themes/classic/24/saveas.png b/companion/src/themes/classic/24/saveas.png
new file mode 100644
index 000000000..83df4c639
Binary files /dev/null and b/companion/src/themes/classic/24/saveas.png differ
diff --git a/companion/src/themes/classic/24/simulate.png b/companion/src/themes/classic/24/simulate.png
new file mode 100644
index 000000000..8bc4db398
Binary files /dev/null and b/companion/src/themes/classic/24/simulate.png differ
diff --git a/companion/src/themes/classic/24/stop.png b/companion/src/themes/classic/24/stop.png
new file mode 100644
index 000000000..00f4ab1c1
Binary files /dev/null and b/companion/src/themes/classic/24/stop.png differ
diff --git a/companion/src/themes/classic/24/switch_dir.png b/companion/src/themes/classic/24/switch_dir.png
new file mode 100644
index 000000000..798b94926
Binary files /dev/null and b/companion/src/themes/classic/24/switch_dir.png differ
diff --git a/companion/src/themes/classic/24/update.png b/companion/src/themes/classic/24/update.png
new file mode 100644
index 000000000..f50b423b9
Binary files /dev/null and b/companion/src/themes/classic/24/update.png differ
diff --git a/companion/src/themes/classic/24/wizard.png b/companion/src/themes/classic/24/wizard.png
new file mode 100644
index 000000000..63879342f
Binary files /dev/null and b/companion/src/themes/classic/24/wizard.png differ
diff --git a/companion/src/themes/classic/24/write_eeprom.png b/companion/src/themes/classic/24/write_eeprom.png
new file mode 100644
index 000000000..8591f6f70
Binary files /dev/null and b/companion/src/themes/classic/24/write_eeprom.png differ
diff --git a/companion/src/themes/classic/24/write_eeprom_file.png b/companion/src/themes/classic/24/write_eeprom_file.png
new file mode 100644
index 000000000..a3cd7898c
Binary files /dev/null and b/companion/src/themes/classic/24/write_eeprom_file.png differ
diff --git a/companion/src/themes/classic/24/write_flash.png b/companion/src/themes/classic/24/write_flash.png
new file mode 100644
index 000000000..8ef65965f
Binary files /dev/null and b/companion/src/themes/classic/24/write_flash.png differ
diff --git a/companion/src/themes/classic/32/add.png b/companion/src/themes/classic/32/add.png
new file mode 100644
index 000000000..9b1e2ebf3
Binary files /dev/null and b/companion/src/themes/classic/32/add.png differ
diff --git a/companion/src/themes/classic/32/arrow-left.png b/companion/src/themes/classic/32/arrow-left.png
new file mode 100644
index 000000000..94f5afcb4
Binary files /dev/null and b/companion/src/themes/classic/32/arrow-left.png differ
diff --git a/companion/src/themes/classic/32/arrow-right.png b/companion/src/themes/classic/32/arrow-right.png
new file mode 100644
index 000000000..5b26520c7
Binary files /dev/null and b/companion/src/themes/classic/32/arrow-right.png differ
diff --git a/companion/src/themes/classic/32/changelog.png b/companion/src/themes/classic/32/changelog.png
new file mode 100644
index 000000000..952a231dd
Binary files /dev/null and b/companion/src/themes/classic/32/changelog.png differ
diff --git a/companion/src/themes/classic/32/clear.png b/companion/src/themes/classic/32/clear.png
new file mode 100644
index 000000000..e1d481f35
Binary files /dev/null and b/companion/src/themes/classic/32/clear.png differ
diff --git a/companion/src/themes/classic/32/compare.png b/companion/src/themes/classic/32/compare.png
new file mode 100644
index 000000000..4cf84e940
Binary files /dev/null and b/companion/src/themes/classic/32/compare.png differ
diff --git a/companion/src/themes/classic/32/configure.png b/companion/src/themes/classic/32/configure.png
new file mode 100644
index 000000000..9fd4c2cd9
Binary files /dev/null and b/companion/src/themes/classic/32/configure.png differ
diff --git a/companion/src/themes/classic/32/contributors.png b/companion/src/themes/classic/32/contributors.png
new file mode 100644
index 000000000..d90cc70de
Binary files /dev/null and b/companion/src/themes/classic/32/contributors.png differ
diff --git a/companion/src/themes/classic/32/copy.png b/companion/src/themes/classic/32/copy.png
new file mode 100644
index 000000000..a24bb4b1d
Binary files /dev/null and b/companion/src/themes/classic/32/copy.png differ
diff --git a/companion/src/themes/classic/32/currentmodel.png b/companion/src/themes/classic/32/currentmodel.png
new file mode 100644
index 000000000..6fde618ef
Binary files /dev/null and b/companion/src/themes/classic/32/currentmodel.png differ
diff --git a/companion/src/themes/classic/32/customize.png b/companion/src/themes/classic/32/customize.png
new file mode 100644
index 000000000..1f924d2bf
Binary files /dev/null and b/companion/src/themes/classic/32/customize.png differ
diff --git a/companion/src/themes/classic/32/cut.png b/companion/src/themes/classic/32/cut.png
new file mode 100644
index 000000000..d68161089
Binary files /dev/null and b/companion/src/themes/classic/32/cut.png differ
diff --git a/companion/src/themes/classic/32/duplicate.png b/companion/src/themes/classic/32/duplicate.png
new file mode 100644
index 000000000..a6c66b117
Binary files /dev/null and b/companion/src/themes/classic/32/duplicate.png differ
diff --git a/companion/src/themes/classic/32/edit.png b/companion/src/themes/classic/32/edit.png
new file mode 100644
index 000000000..a00693407
Binary files /dev/null and b/companion/src/themes/classic/32/edit.png differ
diff --git a/companion/src/themes/classic/32/exit.png b/companion/src/themes/classic/32/exit.png
new file mode 100644
index 000000000..7eb24a666
Binary files /dev/null and b/companion/src/themes/classic/32/exit.png differ
diff --git a/companion/src/themes/classic/32/fuses.png b/companion/src/themes/classic/32/fuses.png
new file mode 100644
index 000000000..c0bb8bf4c
Binary files /dev/null and b/companion/src/themes/classic/32/fuses.png differ
diff --git a/companion/src/themes/classic/32/information.png b/companion/src/themes/classic/32/information.png
new file mode 100644
index 000000000..47fa8f3fe
Binary files /dev/null and b/companion/src/themes/classic/32/information.png differ
diff --git a/companion/src/themes/classic/32/library.png b/companion/src/themes/classic/32/library.png
new file mode 100644
index 000000000..763983830
Binary files /dev/null and b/companion/src/themes/classic/32/library.png differ
diff --git a/companion/src/themes/classic/32/list.png b/companion/src/themes/classic/32/list.png
new file mode 100644
index 000000000..3b6f45e45
Binary files /dev/null and b/companion/src/themes/classic/32/list.png differ
diff --git a/companion/src/themes/classic/32/logs.png b/companion/src/themes/classic/32/logs.png
new file mode 100644
index 000000000..11af72b25
Binary files /dev/null and b/companion/src/themes/classic/32/logs.png differ
diff --git a/companion/src/themes/classic/32/movedown.png b/companion/src/themes/classic/32/movedown.png
new file mode 100644
index 000000000..8d2671cc1
Binary files /dev/null and b/companion/src/themes/classic/32/movedown.png differ
diff --git a/companion/src/themes/classic/32/moveup.png b/companion/src/themes/classic/32/moveup.png
new file mode 100644
index 000000000..7d52059e2
Binary files /dev/null and b/companion/src/themes/classic/32/moveup.png differ
diff --git a/companion/src/themes/classic/32/new.png b/companion/src/themes/classic/32/new.png
new file mode 100644
index 000000000..3c79b7994
Binary files /dev/null and b/companion/src/themes/classic/32/new.png differ
diff --git a/companion/src/themes/classic/32/open.png b/companion/src/themes/classic/32/open.png
new file mode 100644
index 000000000..516ad06c0
Binary files /dev/null and b/companion/src/themes/classic/32/open.png differ
diff --git a/companion/src/themes/classic/32/paintbrush.png b/companion/src/themes/classic/32/paintbrush.png
new file mode 100644
index 000000000..33d2249c0
Binary files /dev/null and b/companion/src/themes/classic/32/paintbrush.png differ
diff --git a/companion/src/themes/classic/32/paste.png b/companion/src/themes/classic/32/paste.png
new file mode 100644
index 000000000..17c82102a
Binary files /dev/null and b/companion/src/themes/classic/32/paste.png differ
diff --git a/companion/src/themes/classic/32/play.png b/companion/src/themes/classic/32/play.png
new file mode 100644
index 000000000..d47a3040e
Binary files /dev/null and b/companion/src/themes/classic/32/play.png differ
diff --git a/companion/src/themes/classic/32/preferences.png b/companion/src/themes/classic/32/preferences.png
new file mode 100644
index 000000000..a9cee976b
Binary files /dev/null and b/companion/src/themes/classic/32/preferences.png differ
diff --git a/companion/src/themes/classic/32/print.png b/companion/src/themes/classic/32/print.png
new file mode 100644
index 000000000..6c27107b5
Binary files /dev/null and b/companion/src/themes/classic/32/print.png differ
diff --git a/companion/src/themes/classic/32/profiles.png b/companion/src/themes/classic/32/profiles.png
new file mode 100644
index 000000000..03fab9601
Binary files /dev/null and b/companion/src/themes/classic/32/profiles.png differ
diff --git a/companion/src/themes/classic/32/read_eeprom.png b/companion/src/themes/classic/32/read_eeprom.png
new file mode 100644
index 000000000..9e1aa0e2a
Binary files /dev/null and b/companion/src/themes/classic/32/read_eeprom.png differ
diff --git a/companion/src/themes/classic/32/read_eeprom_file.png b/companion/src/themes/classic/32/read_eeprom_file.png
new file mode 100644
index 000000000..6c6997046
Binary files /dev/null and b/companion/src/themes/classic/32/read_eeprom_file.png differ
diff --git a/companion/src/themes/classic/32/read_flash.png b/companion/src/themes/classic/32/read_flash.png
new file mode 100644
index 000000000..2ebd0f34b
Binary files /dev/null and b/companion/src/themes/classic/32/read_flash.png differ
diff --git a/companion/src/themes/classic/32/recentdocument.png b/companion/src/themes/classic/32/recentdocument.png
new file mode 100644
index 000000000..e4bdc52da
Binary files /dev/null and b/companion/src/themes/classic/32/recentdocument.png differ
diff --git a/companion/src/themes/classic/32/save.png b/companion/src/themes/classic/32/save.png
new file mode 100644
index 000000000..380fb7264
Binary files /dev/null and b/companion/src/themes/classic/32/save.png differ
diff --git a/companion/src/themes/classic/32/saveas.png b/companion/src/themes/classic/32/saveas.png
new file mode 100644
index 000000000..e2af8d1fa
Binary files /dev/null and b/companion/src/themes/classic/32/saveas.png differ
diff --git a/companion/src/themes/classic/32/simulate.png b/companion/src/themes/classic/32/simulate.png
new file mode 100644
index 000000000..c67e7cb99
Binary files /dev/null and b/companion/src/themes/classic/32/simulate.png differ
diff --git a/companion/src/themes/classic/32/stop.png b/companion/src/themes/classic/32/stop.png
new file mode 100644
index 000000000..a0338d139
Binary files /dev/null and b/companion/src/themes/classic/32/stop.png differ
diff --git a/companion/src/themes/classic/32/switch_dir.png b/companion/src/themes/classic/32/switch_dir.png
new file mode 100644
index 000000000..6e297dd3a
Binary files /dev/null and b/companion/src/themes/classic/32/switch_dir.png differ
diff --git a/companion/src/themes/classic/32/update.png b/companion/src/themes/classic/32/update.png
new file mode 100644
index 000000000..9f57be2d7
Binary files /dev/null and b/companion/src/themes/classic/32/update.png differ
diff --git a/companion/src/themes/classic/32/wizard.png b/companion/src/themes/classic/32/wizard.png
new file mode 100644
index 000000000..ff5161498
Binary files /dev/null and b/companion/src/themes/classic/32/wizard.png differ
diff --git a/companion/src/themes/classic/32/write_eeprom.png b/companion/src/themes/classic/32/write_eeprom.png
new file mode 100644
index 000000000..005766b0b
Binary files /dev/null and b/companion/src/themes/classic/32/write_eeprom.png differ
diff --git a/companion/src/themes/classic/32/write_eeprom_file.png b/companion/src/themes/classic/32/write_eeprom_file.png
new file mode 100644
index 000000000..1ead1095b
Binary files /dev/null and b/companion/src/themes/classic/32/write_eeprom_file.png differ
diff --git a/companion/src/themes/classic/32/write_flash.png b/companion/src/themes/classic/32/write_flash.png
new file mode 100644
index 000000000..231b72041
Binary files /dev/null and b/companion/src/themes/classic/32/write_flash.png differ
diff --git a/companion/src/themes/classic/48/add.png b/companion/src/themes/classic/48/add.png
new file mode 100644
index 000000000..fe8a28097
Binary files /dev/null and b/companion/src/themes/classic/48/add.png differ
diff --git a/companion/src/themes/classic/48/arrow-left.png b/companion/src/themes/classic/48/arrow-left.png
new file mode 100644
index 000000000..f6bb5eb08
Binary files /dev/null and b/companion/src/themes/classic/48/arrow-left.png differ
diff --git a/companion/src/themes/classic/48/arrow-right.png b/companion/src/themes/classic/48/arrow-right.png
new file mode 100644
index 000000000..25dfe0dab
Binary files /dev/null and b/companion/src/themes/classic/48/arrow-right.png differ
diff --git a/companion/src/themes/classic/48/changelog.png b/companion/src/themes/classic/48/changelog.png
new file mode 100644
index 000000000..bf3ed7459
Binary files /dev/null and b/companion/src/themes/classic/48/changelog.png differ
diff --git a/companion/src/themes/classic/48/clear.png b/companion/src/themes/classic/48/clear.png
new file mode 100644
index 000000000..4cc914074
Binary files /dev/null and b/companion/src/themes/classic/48/clear.png differ
diff --git a/companion/src/themes/classic/48/compare.png b/companion/src/themes/classic/48/compare.png
new file mode 100644
index 000000000..499c40192
Binary files /dev/null and b/companion/src/themes/classic/48/compare.png differ
diff --git a/companion/src/themes/classic/48/configure.png b/companion/src/themes/classic/48/configure.png
new file mode 100644
index 000000000..9b0506ed5
Binary files /dev/null and b/companion/src/themes/classic/48/configure.png differ
diff --git a/companion/src/themes/classic/48/contributors.png b/companion/src/themes/classic/48/contributors.png
new file mode 100644
index 000000000..98bc58202
Binary files /dev/null and b/companion/src/themes/classic/48/contributors.png differ
diff --git a/companion/src/themes/classic/48/copy.png b/companion/src/themes/classic/48/copy.png
new file mode 100644
index 000000000..9bc5c654c
Binary files /dev/null and b/companion/src/themes/classic/48/copy.png differ
diff --git a/companion/src/themes/classic/48/currentmodel.png b/companion/src/themes/classic/48/currentmodel.png
new file mode 100644
index 000000000..860941f75
Binary files /dev/null and b/companion/src/themes/classic/48/currentmodel.png differ
diff --git a/companion/src/themes/classic/48/customize.png b/companion/src/themes/classic/48/customize.png
new file mode 100644
index 000000000..a64ea0a35
Binary files /dev/null and b/companion/src/themes/classic/48/customize.png differ
diff --git a/companion/src/themes/classic/48/cut.png b/companion/src/themes/classic/48/cut.png
new file mode 100644
index 000000000..45d111adf
Binary files /dev/null and b/companion/src/themes/classic/48/cut.png differ
diff --git a/companion/src/themes/classic/48/duplicate.png b/companion/src/themes/classic/48/duplicate.png
new file mode 100644
index 000000000..903afdd6c
Binary files /dev/null and b/companion/src/themes/classic/48/duplicate.png differ
diff --git a/companion/src/themes/classic/48/edit.png b/companion/src/themes/classic/48/edit.png
new file mode 100644
index 000000000..2869e5bbd
Binary files /dev/null and b/companion/src/themes/classic/48/edit.png differ
diff --git a/companion/src/themes/classic/48/exit.png b/companion/src/themes/classic/48/exit.png
new file mode 100644
index 000000000..159dccb93
Binary files /dev/null and b/companion/src/themes/classic/48/exit.png differ
diff --git a/companion/src/themes/classic/48/fuses.png b/companion/src/themes/classic/48/fuses.png
new file mode 100644
index 000000000..d7fb789c4
Binary files /dev/null and b/companion/src/themes/classic/48/fuses.png differ
diff --git a/companion/src/themes/classic/48/information.png b/companion/src/themes/classic/48/information.png
new file mode 100644
index 000000000..e62f8ee19
Binary files /dev/null and b/companion/src/themes/classic/48/information.png differ
diff --git a/companion/src/themes/classic/48/library.png b/companion/src/themes/classic/48/library.png
new file mode 100644
index 000000000..df4cf1e0c
Binary files /dev/null and b/companion/src/themes/classic/48/library.png differ
diff --git a/companion/src/themes/classic/48/list.png b/companion/src/themes/classic/48/list.png
new file mode 100644
index 000000000..564d76118
Binary files /dev/null and b/companion/src/themes/classic/48/list.png differ
diff --git a/companion/src/themes/classic/48/logs.png b/companion/src/themes/classic/48/logs.png
new file mode 100644
index 000000000..55c6f8d0b
Binary files /dev/null and b/companion/src/themes/classic/48/logs.png differ
diff --git a/companion/src/themes/classic/48/movedown.png b/companion/src/themes/classic/48/movedown.png
new file mode 100644
index 000000000..7f6cb094d
Binary files /dev/null and b/companion/src/themes/classic/48/movedown.png differ
diff --git a/companion/src/themes/classic/48/moveup.png b/companion/src/themes/classic/48/moveup.png
new file mode 100644
index 000000000..62f818d20
Binary files /dev/null and b/companion/src/themes/classic/48/moveup.png differ
diff --git a/companion/src/themes/classic/48/new.png b/companion/src/themes/classic/48/new.png
new file mode 100644
index 000000000..35ba8e361
Binary files /dev/null and b/companion/src/themes/classic/48/new.png differ
diff --git a/companion/src/themes/classic/48/open.png b/companion/src/themes/classic/48/open.png
new file mode 100644
index 000000000..04aebb09f
Binary files /dev/null and b/companion/src/themes/classic/48/open.png differ
diff --git a/companion/src/themes/classic/48/paintbrush.png b/companion/src/themes/classic/48/paintbrush.png
new file mode 100644
index 000000000..8f90906c7
Binary files /dev/null and b/companion/src/themes/classic/48/paintbrush.png differ
diff --git a/companion/src/themes/classic/48/paste.png b/companion/src/themes/classic/48/paste.png
new file mode 100644
index 000000000..bbc349158
Binary files /dev/null and b/companion/src/themes/classic/48/paste.png differ
diff --git a/companion/src/themes/classic/48/play.png b/companion/src/themes/classic/48/play.png
new file mode 100644
index 000000000..740f36842
Binary files /dev/null and b/companion/src/themes/classic/48/play.png differ
diff --git a/companion/src/themes/classic/48/preferences.png b/companion/src/themes/classic/48/preferences.png
new file mode 100644
index 000000000..713e2cbeb
Binary files /dev/null and b/companion/src/themes/classic/48/preferences.png differ
diff --git a/companion/src/themes/classic/48/print.png b/companion/src/themes/classic/48/print.png
new file mode 100644
index 000000000..5bafa08d8
Binary files /dev/null and b/companion/src/themes/classic/48/print.png differ
diff --git a/companion/src/themes/classic/48/profiles.png b/companion/src/themes/classic/48/profiles.png
new file mode 100644
index 000000000..52721bd5f
Binary files /dev/null and b/companion/src/themes/classic/48/profiles.png differ
diff --git a/companion/src/themes/classic/48/read_eeprom.png b/companion/src/themes/classic/48/read_eeprom.png
new file mode 100644
index 000000000..a7ef5d2c0
Binary files /dev/null and b/companion/src/themes/classic/48/read_eeprom.png differ
diff --git a/companion/src/themes/classic/48/read_eeprom_file.png b/companion/src/themes/classic/48/read_eeprom_file.png
new file mode 100644
index 000000000..fdd2e5588
Binary files /dev/null and b/companion/src/themes/classic/48/read_eeprom_file.png differ
diff --git a/companion/src/themes/classic/48/read_flash.png b/companion/src/themes/classic/48/read_flash.png
new file mode 100644
index 000000000..0b5440588
Binary files /dev/null and b/companion/src/themes/classic/48/read_flash.png differ
diff --git a/companion/src/themes/classic/48/recentdocument.png b/companion/src/themes/classic/48/recentdocument.png
new file mode 100644
index 000000000..2f8eb1ba9
Binary files /dev/null and b/companion/src/themes/classic/48/recentdocument.png differ
diff --git a/companion/src/themes/classic/48/save.png b/companion/src/themes/classic/48/save.png
new file mode 100644
index 000000000..9153bd84c
Binary files /dev/null and b/companion/src/themes/classic/48/save.png differ
diff --git a/companion/src/themes/classic/48/saveas.png b/companion/src/themes/classic/48/saveas.png
new file mode 100644
index 000000000..1bb79a525
Binary files /dev/null and b/companion/src/themes/classic/48/saveas.png differ
diff --git a/companion/src/themes/classic/48/simulate.png b/companion/src/themes/classic/48/simulate.png
new file mode 100644
index 000000000..e9c338619
Binary files /dev/null and b/companion/src/themes/classic/48/simulate.png differ
diff --git a/companion/src/themes/classic/48/stop.png b/companion/src/themes/classic/48/stop.png
new file mode 100644
index 000000000..c513babaa
Binary files /dev/null and b/companion/src/themes/classic/48/stop.png differ
diff --git a/companion/src/themes/classic/48/switch_dir.png b/companion/src/themes/classic/48/switch_dir.png
new file mode 100644
index 000000000..179d5a07f
Binary files /dev/null and b/companion/src/themes/classic/48/switch_dir.png differ
diff --git a/companion/src/themes/classic/48/update.png b/companion/src/themes/classic/48/update.png
new file mode 100644
index 000000000..27112e871
Binary files /dev/null and b/companion/src/themes/classic/48/update.png differ
diff --git a/companion/src/themes/classic/48/wizard.png b/companion/src/themes/classic/48/wizard.png
new file mode 100644
index 000000000..3fbd7d780
Binary files /dev/null and b/companion/src/themes/classic/48/wizard.png differ
diff --git a/companion/src/themes/classic/48/write_eeprom.png b/companion/src/themes/classic/48/write_eeprom.png
new file mode 100644
index 000000000..1c873f8e0
Binary files /dev/null and b/companion/src/themes/classic/48/write_eeprom.png differ
diff --git a/companion/src/themes/classic/48/write_eeprom_file.png b/companion/src/themes/classic/48/write_eeprom_file.png
new file mode 100644
index 000000000..57804bd68
Binary files /dev/null and b/companion/src/themes/classic/48/write_eeprom_file.png differ
diff --git a/companion/src/themes/classic/48/write_flash.png b/companion/src/themes/classic/48/write_flash.png
new file mode 100644
index 000000000..3600b5e37
Binary files /dev/null and b/companion/src/themes/classic/48/write_flash.png differ
diff --git a/companion/src/themes/classic/add.png b/companion/src/themes/classic/add.png
new file mode 100644
index 000000000..24cc027da
Binary files /dev/null and b/companion/src/themes/classic/add.png differ
diff --git a/companion/src/themes/classic/arrow-left.png b/companion/src/themes/classic/arrow-left.png
new file mode 100644
index 000000000..759e58950
Binary files /dev/null and b/companion/src/themes/classic/arrow-left.png differ
diff --git a/companion/src/themes/classic/arrow-right.png b/companion/src/themes/classic/arrow-right.png
new file mode 100644
index 000000000..1d056715f
Binary files /dev/null and b/companion/src/themes/classic/arrow-right.png differ
diff --git a/companion/src/themes/classic/changelog.png b/companion/src/themes/classic/changelog.png
new file mode 100644
index 000000000..3c60e6745
Binary files /dev/null and b/companion/src/themes/classic/changelog.png differ
diff --git a/companion/src/themes/classic/clear.png b/companion/src/themes/classic/clear.png
new file mode 100644
index 000000000..a599c0332
Binary files /dev/null and b/companion/src/themes/classic/clear.png differ
diff --git a/companion/src/themes/classic/compare.png b/companion/src/themes/classic/compare.png
new file mode 100644
index 000000000..5b7e41c4f
Binary files /dev/null and b/companion/src/themes/classic/compare.png differ
diff --git a/companion/src/themes/classic/configure.png b/companion/src/themes/classic/configure.png
new file mode 100644
index 000000000..ec6fad759
Binary files /dev/null and b/companion/src/themes/classic/configure.png differ
diff --git a/companion/src/themes/classic/contributors.png b/companion/src/themes/classic/contributors.png
new file mode 100644
index 000000000..276949198
Binary files /dev/null and b/companion/src/themes/classic/contributors.png differ
diff --git a/companion/src/themes/classic/copy.png b/companion/src/themes/classic/copy.png
new file mode 100644
index 000000000..2aeb28288
Binary files /dev/null and b/companion/src/themes/classic/copy.png differ
diff --git a/companion/src/themes/classic/currentmodel.png b/companion/src/themes/classic/currentmodel.png
new file mode 100644
index 000000000..35a37b766
Binary files /dev/null and b/companion/src/themes/classic/currentmodel.png differ
diff --git a/companion/src/themes/classic/cut.png b/companion/src/themes/classic/cut.png
new file mode 100644
index 000000000..54638e938
Binary files /dev/null and b/companion/src/themes/classic/cut.png differ
diff --git a/companion/src/themes/classic/duplicate.png b/companion/src/themes/classic/duplicate.png
new file mode 100644
index 000000000..811691d98
Binary files /dev/null and b/companion/src/themes/classic/duplicate.png differ
diff --git a/companion/src/themes/classic/edit.png b/companion/src/themes/classic/edit.png
new file mode 100644
index 000000000..106709cae
Binary files /dev/null and b/companion/src/themes/classic/edit.png differ
diff --git a/companion/src/themes/classic/exit.png b/companion/src/themes/classic/exit.png
new file mode 100644
index 000000000..5319a9480
Binary files /dev/null and b/companion/src/themes/classic/exit.png differ
diff --git a/companion/src/themes/classic/fuses.png b/companion/src/themes/classic/fuses.png
new file mode 100644
index 000000000..4354cdcb2
Binary files /dev/null and b/companion/src/themes/classic/fuses.png differ
diff --git a/companion/src/themes/classic/information.png b/companion/src/themes/classic/information.png
new file mode 100644
index 000000000..76b6d5966
Binary files /dev/null and b/companion/src/themes/classic/information.png differ
diff --git a/companion/src/themes/classic/library.png b/companion/src/themes/classic/library.png
new file mode 100644
index 000000000..16bfde4b9
Binary files /dev/null and b/companion/src/themes/classic/library.png differ
diff --git a/companion/src/themes/classic/list.png b/companion/src/themes/classic/list.png
new file mode 100644
index 000000000..fd4db26dc
Binary files /dev/null and b/companion/src/themes/classic/list.png differ
diff --git a/companion/src/themes/classic/logs.png b/companion/src/themes/classic/logs.png
new file mode 100644
index 000000000..8dc7ce194
Binary files /dev/null and b/companion/src/themes/classic/logs.png differ
diff --git a/companion/src/themes/classic/movedown.png b/companion/src/themes/classic/movedown.png
new file mode 100644
index 000000000..2632877c1
Binary files /dev/null and b/companion/src/themes/classic/movedown.png differ
diff --git a/companion/src/themes/classic/moveup.png b/companion/src/themes/classic/moveup.png
new file mode 100644
index 000000000..447f087cc
Binary files /dev/null and b/companion/src/themes/classic/moveup.png differ
diff --git a/companion/src/themes/classic/new.png b/companion/src/themes/classic/new.png
new file mode 100644
index 000000000..12131b010
Binary files /dev/null and b/companion/src/themes/classic/new.png differ
diff --git a/companion/src/themes/classic/open.png b/companion/src/themes/classic/open.png
new file mode 100644
index 000000000..45fa2883a
Binary files /dev/null and b/companion/src/themes/classic/open.png differ
diff --git a/companion/src/themes/classic/paintbrush.png b/companion/src/themes/classic/paintbrush.png
new file mode 100644
index 000000000..814fdb47e
Binary files /dev/null and b/companion/src/themes/classic/paintbrush.png differ
diff --git a/companion/src/themes/classic/paste.png b/companion/src/themes/classic/paste.png
new file mode 100644
index 000000000..c14425cad
Binary files /dev/null and b/companion/src/themes/classic/paste.png differ
diff --git a/companion/src/themes/classic/play.png b/companion/src/themes/classic/play.png
new file mode 100644
index 000000000..8501a8b58
Binary files /dev/null and b/companion/src/themes/classic/play.png differ
diff --git a/companion/src/themes/classic/preferences.png b/companion/src/themes/classic/preferences.png
new file mode 100644
index 000000000..1f6613e40
Binary files /dev/null and b/companion/src/themes/classic/preferences.png differ
diff --git a/companion/src/themes/classic/print.png b/companion/src/themes/classic/print.png
new file mode 100644
index 000000000..578980db7
Binary files /dev/null and b/companion/src/themes/classic/print.png differ
diff --git a/companion/src/themes/classic/profiles.png b/companion/src/themes/classic/profiles.png
new file mode 100644
index 000000000..bfa571cff
Binary files /dev/null and b/companion/src/themes/classic/profiles.png differ
diff --git a/companion/src/themes/classic/read_eeprom.png b/companion/src/themes/classic/read_eeprom.png
new file mode 100644
index 000000000..08e861b31
Binary files /dev/null and b/companion/src/themes/classic/read_eeprom.png differ
diff --git a/companion/src/themes/classic/read_eeprom_file.png b/companion/src/themes/classic/read_eeprom_file.png
new file mode 100644
index 000000000..67a41176b
Binary files /dev/null and b/companion/src/themes/classic/read_eeprom_file.png differ
diff --git a/companion/src/themes/classic/read_flash.png b/companion/src/themes/classic/read_flash.png
new file mode 100644
index 000000000..c9065819b
Binary files /dev/null and b/companion/src/themes/classic/read_flash.png differ
diff --git a/companion/src/themes/classic/recentdocument.png b/companion/src/themes/classic/recentdocument.png
new file mode 100644
index 000000000..567494905
Binary files /dev/null and b/companion/src/themes/classic/recentdocument.png differ
diff --git a/companion/src/themes/classic/save.png b/companion/src/themes/classic/save.png
new file mode 100644
index 000000000..651b2a41f
Binary files /dev/null and b/companion/src/themes/classic/save.png differ
diff --git a/companion/src/themes/classic/saveas.png b/companion/src/themes/classic/saveas.png
new file mode 100644
index 000000000..d5d3176b8
Binary files /dev/null and b/companion/src/themes/classic/saveas.png differ
diff --git a/companion/src/themes/classic/simulate.png b/companion/src/themes/classic/simulate.png
new file mode 100644
index 000000000..429e12b9a
Binary files /dev/null and b/companion/src/themes/classic/simulate.png differ
diff --git a/companion/src/themes/classic/stop.png b/companion/src/themes/classic/stop.png
new file mode 100644
index 000000000..3bf2af6e9
Binary files /dev/null and b/companion/src/themes/classic/stop.png differ
diff --git a/companion/src/themes/classic/switch_dir.png b/companion/src/themes/classic/switch_dir.png
new file mode 100644
index 000000000..a9ba5f47a
Binary files /dev/null and b/companion/src/themes/classic/switch_dir.png differ
diff --git a/companion/src/themes/classic/update.png b/companion/src/themes/classic/update.png
new file mode 100644
index 000000000..034ee58e8
Binary files /dev/null and b/companion/src/themes/classic/update.png differ
diff --git a/companion/src/themes/classic/wizard.png b/companion/src/themes/classic/wizard.png
new file mode 100644
index 000000000..ccd964e1d
Binary files /dev/null and b/companion/src/themes/classic/wizard.png differ
diff --git a/companion/src/themes/classic/write_eeprom.png b/companion/src/themes/classic/write_eeprom.png
new file mode 100644
index 000000000..15e58d0a3
Binary files /dev/null and b/companion/src/themes/classic/write_eeprom.png differ
diff --git a/companion/src/themes/classic/write_eeprom_file.png b/companion/src/themes/classic/write_eeprom_file.png
new file mode 100644
index 000000000..60d7c312e
Binary files /dev/null and b/companion/src/themes/classic/write_eeprom_file.png differ
diff --git a/companion/src/themes/classic/write_flash.png b/companion/src/themes/classic/write_flash.png
new file mode 100644
index 000000000..1664cb228
Binary files /dev/null and b/companion/src/themes/classic/write_flash.png differ
diff --git a/companion/src/themes/monoblue/16/add.png b/companion/src/themes/monoblue/16/add.png
new file mode 100644
index 000000000..e32bf3125
Binary files /dev/null and b/companion/src/themes/monoblue/16/add.png differ
diff --git a/companion/src/themes/monoblue/16/arrow-left.png b/companion/src/themes/monoblue/16/arrow-left.png
new file mode 100644
index 000000000..1c12f9092
Binary files /dev/null and b/companion/src/themes/monoblue/16/arrow-left.png differ
diff --git a/companion/src/themes/monoblue/16/arrow-right.png b/companion/src/themes/monoblue/16/arrow-right.png
new file mode 100644
index 000000000..7f9439bc5
Binary files /dev/null and b/companion/src/themes/monoblue/16/arrow-right.png differ
diff --git a/companion/src/themes/monoblue/16/changelog.png b/companion/src/themes/monoblue/16/changelog.png
new file mode 100644
index 000000000..365ffefc9
Binary files /dev/null and b/companion/src/themes/monoblue/16/changelog.png differ
diff --git a/companion/src/themes/monoblue/16/clear.png b/companion/src/themes/monoblue/16/clear.png
new file mode 100644
index 000000000..5155fc2a1
Binary files /dev/null and b/companion/src/themes/monoblue/16/clear.png differ
diff --git a/companion/src/themes/monoblue/16/compare.png b/companion/src/themes/monoblue/16/compare.png
new file mode 100644
index 000000000..5fdf190e8
Binary files /dev/null and b/companion/src/themes/monoblue/16/compare.png differ
diff --git a/companion/src/themes/monoblue/16/configure.png b/companion/src/themes/monoblue/16/configure.png
new file mode 100644
index 000000000..24bd80d23
Binary files /dev/null and b/companion/src/themes/monoblue/16/configure.png differ
diff --git a/companion/src/themes/monoblue/16/contributors.png b/companion/src/themes/monoblue/16/contributors.png
new file mode 100644
index 000000000..ad4b1de94
Binary files /dev/null and b/companion/src/themes/monoblue/16/contributors.png differ
diff --git a/companion/src/themes/monoblue/16/copy.png b/companion/src/themes/monoblue/16/copy.png
new file mode 100644
index 000000000..645f0db88
Binary files /dev/null and b/companion/src/themes/monoblue/16/copy.png differ
diff --git a/companion/src/themes/monoblue/16/currentmodel.png b/companion/src/themes/monoblue/16/currentmodel.png
new file mode 100644
index 000000000..c1c0044ec
Binary files /dev/null and b/companion/src/themes/monoblue/16/currentmodel.png differ
diff --git a/companion/src/themes/monoblue/16/customize.png b/companion/src/themes/monoblue/16/customize.png
new file mode 100644
index 000000000..c50af24f1
Binary files /dev/null and b/companion/src/themes/monoblue/16/customize.png differ
diff --git a/companion/src/themes/monoblue/16/cut.png b/companion/src/themes/monoblue/16/cut.png
new file mode 100644
index 000000000..a8856cd42
Binary files /dev/null and b/companion/src/themes/monoblue/16/cut.png differ
diff --git a/companion/src/themes/monoblue/16/duplicate.png b/companion/src/themes/monoblue/16/duplicate.png
new file mode 100644
index 000000000..73ac9991a
Binary files /dev/null and b/companion/src/themes/monoblue/16/duplicate.png differ
diff --git a/companion/src/themes/monoblue/16/edit.png b/companion/src/themes/monoblue/16/edit.png
new file mode 100644
index 000000000..22700f801
Binary files /dev/null and b/companion/src/themes/monoblue/16/edit.png differ
diff --git a/companion/src/themes/monoblue/16/exit.png b/companion/src/themes/monoblue/16/exit.png
new file mode 100644
index 000000000..faf9a2a33
Binary files /dev/null and b/companion/src/themes/monoblue/16/exit.png differ
diff --git a/companion/src/themes/monoblue/16/fuses.png b/companion/src/themes/monoblue/16/fuses.png
new file mode 100644
index 000000000..f410bdd74
Binary files /dev/null and b/companion/src/themes/monoblue/16/fuses.png differ
diff --git a/companion/src/themes/monoblue/16/information.png b/companion/src/themes/monoblue/16/information.png
new file mode 100644
index 000000000..59a6656b7
Binary files /dev/null and b/companion/src/themes/monoblue/16/information.png differ
diff --git a/companion/src/themes/monoblue/16/library.png b/companion/src/themes/monoblue/16/library.png
new file mode 100644
index 000000000..ad16a4dde
Binary files /dev/null and b/companion/src/themes/monoblue/16/library.png differ
diff --git a/companion/src/themes/monoblue/16/list.png b/companion/src/themes/monoblue/16/list.png
new file mode 100644
index 000000000..e2a17ae45
Binary files /dev/null and b/companion/src/themes/monoblue/16/list.png differ
diff --git a/companion/src/themes/monoblue/16/logs.png b/companion/src/themes/monoblue/16/logs.png
new file mode 100644
index 000000000..826c381b6
Binary files /dev/null and b/companion/src/themes/monoblue/16/logs.png differ
diff --git a/companion/src/themes/monoblue/16/movedown.png b/companion/src/themes/monoblue/16/movedown.png
new file mode 100644
index 000000000..5b8e08e30
Binary files /dev/null and b/companion/src/themes/monoblue/16/movedown.png differ
diff --git a/companion/src/themes/monoblue/16/moveup.png b/companion/src/themes/monoblue/16/moveup.png
new file mode 100644
index 000000000..ae8cce685
Binary files /dev/null and b/companion/src/themes/monoblue/16/moveup.png differ
diff --git a/companion/src/themes/monoblue/16/new.png b/companion/src/themes/monoblue/16/new.png
new file mode 100644
index 000000000..a0a7fc42e
Binary files /dev/null and b/companion/src/themes/monoblue/16/new.png differ
diff --git a/companion/src/themes/monoblue/16/open.png b/companion/src/themes/monoblue/16/open.png
new file mode 100644
index 000000000..88f568b7c
Binary files /dev/null and b/companion/src/themes/monoblue/16/open.png differ
diff --git a/companion/src/themes/monoblue/16/paintbrush.png b/companion/src/themes/monoblue/16/paintbrush.png
new file mode 100644
index 000000000..5a2457812
Binary files /dev/null and b/companion/src/themes/monoblue/16/paintbrush.png differ
diff --git a/companion/src/themes/monoblue/16/paste.png b/companion/src/themes/monoblue/16/paste.png
new file mode 100644
index 000000000..c56332f76
Binary files /dev/null and b/companion/src/themes/monoblue/16/paste.png differ
diff --git a/companion/src/themes/monoblue/16/play.png b/companion/src/themes/monoblue/16/play.png
new file mode 100644
index 000000000..d237ba0c9
Binary files /dev/null and b/companion/src/themes/monoblue/16/play.png differ
diff --git a/companion/src/themes/monoblue/16/preferences.png b/companion/src/themes/monoblue/16/preferences.png
new file mode 100644
index 000000000..87b7bff5e
Binary files /dev/null and b/companion/src/themes/monoblue/16/preferences.png differ
diff --git a/companion/src/themes/monoblue/16/print.png b/companion/src/themes/monoblue/16/print.png
new file mode 100644
index 000000000..bb3733f49
Binary files /dev/null and b/companion/src/themes/monoblue/16/print.png differ
diff --git a/companion/src/themes/monoblue/16/profiles.png b/companion/src/themes/monoblue/16/profiles.png
new file mode 100644
index 000000000..24b3572e0
Binary files /dev/null and b/companion/src/themes/monoblue/16/profiles.png differ
diff --git a/companion/src/themes/monoblue/16/read_eeprom.png b/companion/src/themes/monoblue/16/read_eeprom.png
new file mode 100644
index 000000000..e8dade393
Binary files /dev/null and b/companion/src/themes/monoblue/16/read_eeprom.png differ
diff --git a/companion/src/themes/monoblue/16/read_eeprom_file.png b/companion/src/themes/monoblue/16/read_eeprom_file.png
new file mode 100644
index 000000000..fc1c0d001
Binary files /dev/null and b/companion/src/themes/monoblue/16/read_eeprom_file.png differ
diff --git a/companion/src/themes/monoblue/16/read_flash.png b/companion/src/themes/monoblue/16/read_flash.png
new file mode 100644
index 000000000..c384e0e0b
Binary files /dev/null and b/companion/src/themes/monoblue/16/read_flash.png differ
diff --git a/companion/src/themes/monoblue/16/recentdocument.png b/companion/src/themes/monoblue/16/recentdocument.png
new file mode 100644
index 000000000..20a7d7443
Binary files /dev/null and b/companion/src/themes/monoblue/16/recentdocument.png differ
diff --git a/companion/src/themes/monoblue/16/save.png b/companion/src/themes/monoblue/16/save.png
new file mode 100644
index 000000000..b21e96e7e
Binary files /dev/null and b/companion/src/themes/monoblue/16/save.png differ
diff --git a/companion/src/themes/monoblue/16/saveas.png b/companion/src/themes/monoblue/16/saveas.png
new file mode 100644
index 000000000..9bd9a3574
Binary files /dev/null and b/companion/src/themes/monoblue/16/saveas.png differ
diff --git a/companion/src/themes/monoblue/16/simulate.png b/companion/src/themes/monoblue/16/simulate.png
new file mode 100644
index 000000000..a473f43d2
Binary files /dev/null and b/companion/src/themes/monoblue/16/simulate.png differ
diff --git a/companion/src/themes/monoblue/16/stop.png b/companion/src/themes/monoblue/16/stop.png
new file mode 100644
index 000000000..a28a8cd9d
Binary files /dev/null and b/companion/src/themes/monoblue/16/stop.png differ
diff --git a/companion/src/themes/monoblue/16/switch_dir.png b/companion/src/themes/monoblue/16/switch_dir.png
new file mode 100644
index 000000000..0ce35b6a1
Binary files /dev/null and b/companion/src/themes/monoblue/16/switch_dir.png differ
diff --git a/companion/src/themes/monoblue/16/update.png b/companion/src/themes/monoblue/16/update.png
new file mode 100644
index 000000000..834ec85f0
Binary files /dev/null and b/companion/src/themes/monoblue/16/update.png differ
diff --git a/companion/src/themes/monoblue/16/wizard.png b/companion/src/themes/monoblue/16/wizard.png
new file mode 100644
index 000000000..60754717d
Binary files /dev/null and b/companion/src/themes/monoblue/16/wizard.png differ
diff --git a/companion/src/themes/monoblue/16/write_eeprom.png b/companion/src/themes/monoblue/16/write_eeprom.png
new file mode 100644
index 000000000..c0eccd580
Binary files /dev/null and b/companion/src/themes/monoblue/16/write_eeprom.png differ
diff --git a/companion/src/themes/monoblue/16/write_eeprom_file.png b/companion/src/themes/monoblue/16/write_eeprom_file.png
new file mode 100644
index 000000000..1a837e83e
Binary files /dev/null and b/companion/src/themes/monoblue/16/write_eeprom_file.png differ
diff --git a/companion/src/themes/monoblue/16/write_flash.png b/companion/src/themes/monoblue/16/write_flash.png
new file mode 100644
index 000000000..17c392fbb
Binary files /dev/null and b/companion/src/themes/monoblue/16/write_flash.png differ
diff --git a/companion/src/themes/monoblue/24/add.png b/companion/src/themes/monoblue/24/add.png
new file mode 100644
index 000000000..6d2a8087a
Binary files /dev/null and b/companion/src/themes/monoblue/24/add.png differ
diff --git a/companion/src/themes/monoblue/24/arrow-left.png b/companion/src/themes/monoblue/24/arrow-left.png
new file mode 100644
index 000000000..efed765fb
Binary files /dev/null and b/companion/src/themes/monoblue/24/arrow-left.png differ
diff --git a/companion/src/themes/monoblue/24/arrow-right.png b/companion/src/themes/monoblue/24/arrow-right.png
new file mode 100644
index 000000000..7b6c42cb2
Binary files /dev/null and b/companion/src/themes/monoblue/24/arrow-right.png differ
diff --git a/companion/src/themes/monoblue/24/changelog.png b/companion/src/themes/monoblue/24/changelog.png
new file mode 100644
index 000000000..6ae1efff4
Binary files /dev/null and b/companion/src/themes/monoblue/24/changelog.png differ
diff --git a/companion/src/themes/monoblue/24/clear.png b/companion/src/themes/monoblue/24/clear.png
new file mode 100644
index 000000000..cfec2713e
Binary files /dev/null and b/companion/src/themes/monoblue/24/clear.png differ
diff --git a/companion/src/themes/monoblue/24/compare.png b/companion/src/themes/monoblue/24/compare.png
new file mode 100644
index 000000000..83fdaca7a
Binary files /dev/null and b/companion/src/themes/monoblue/24/compare.png differ
diff --git a/companion/src/themes/monoblue/24/configure.png b/companion/src/themes/monoblue/24/configure.png
new file mode 100644
index 000000000..e75305484
Binary files /dev/null and b/companion/src/themes/monoblue/24/configure.png differ
diff --git a/companion/src/themes/monoblue/24/contributors.png b/companion/src/themes/monoblue/24/contributors.png
new file mode 100644
index 000000000..eb0e1706d
Binary files /dev/null and b/companion/src/themes/monoblue/24/contributors.png differ
diff --git a/companion/src/themes/monoblue/24/copy.png b/companion/src/themes/monoblue/24/copy.png
new file mode 100644
index 000000000..362bae325
Binary files /dev/null and b/companion/src/themes/monoblue/24/copy.png differ
diff --git a/companion/src/themes/monoblue/24/currentmodel.png b/companion/src/themes/monoblue/24/currentmodel.png
new file mode 100644
index 000000000..adccc58db
Binary files /dev/null and b/companion/src/themes/monoblue/24/currentmodel.png differ
diff --git a/companion/src/themes/monoblue/24/customize.png b/companion/src/themes/monoblue/24/customize.png
new file mode 100644
index 000000000..247195799
Binary files /dev/null and b/companion/src/themes/monoblue/24/customize.png differ
diff --git a/companion/src/themes/monoblue/24/cut.png b/companion/src/themes/monoblue/24/cut.png
new file mode 100644
index 000000000..110401318
Binary files /dev/null and b/companion/src/themes/monoblue/24/cut.png differ
diff --git a/companion/src/themes/monoblue/24/duplicate.png b/companion/src/themes/monoblue/24/duplicate.png
new file mode 100644
index 000000000..5d34b9c61
Binary files /dev/null and b/companion/src/themes/monoblue/24/duplicate.png differ
diff --git a/companion/src/themes/monoblue/24/edit.png b/companion/src/themes/monoblue/24/edit.png
new file mode 100644
index 000000000..8b1db1290
Binary files /dev/null and b/companion/src/themes/monoblue/24/edit.png differ
diff --git a/companion/src/themes/monoblue/24/exit.png b/companion/src/themes/monoblue/24/exit.png
new file mode 100644
index 000000000..0608e79ce
Binary files /dev/null and b/companion/src/themes/monoblue/24/exit.png differ
diff --git a/companion/src/themes/monoblue/24/fuses.png b/companion/src/themes/monoblue/24/fuses.png
new file mode 100644
index 000000000..1f78b345f
Binary files /dev/null and b/companion/src/themes/monoblue/24/fuses.png differ
diff --git a/companion/src/themes/monoblue/24/information.png b/companion/src/themes/monoblue/24/information.png
new file mode 100644
index 000000000..b89731c50
Binary files /dev/null and b/companion/src/themes/monoblue/24/information.png differ
diff --git a/companion/src/themes/monoblue/24/library.png b/companion/src/themes/monoblue/24/library.png
new file mode 100644
index 000000000..ffb41e32c
Binary files /dev/null and b/companion/src/themes/monoblue/24/library.png differ
diff --git a/companion/src/themes/monoblue/24/list.png b/companion/src/themes/monoblue/24/list.png
new file mode 100644
index 000000000..5d6638bbd
Binary files /dev/null and b/companion/src/themes/monoblue/24/list.png differ
diff --git a/companion/src/themes/monoblue/24/logs.png b/companion/src/themes/monoblue/24/logs.png
new file mode 100644
index 000000000..08b4f5576
Binary files /dev/null and b/companion/src/themes/monoblue/24/logs.png differ
diff --git a/companion/src/themes/monoblue/24/movedown.png b/companion/src/themes/monoblue/24/movedown.png
new file mode 100644
index 000000000..316f63386
Binary files /dev/null and b/companion/src/themes/monoblue/24/movedown.png differ
diff --git a/companion/src/themes/monoblue/24/moveup.png b/companion/src/themes/monoblue/24/moveup.png
new file mode 100644
index 000000000..8db80fc33
Binary files /dev/null and b/companion/src/themes/monoblue/24/moveup.png differ
diff --git a/companion/src/themes/monoblue/24/new.png b/companion/src/themes/monoblue/24/new.png
new file mode 100644
index 000000000..6d2329c27
Binary files /dev/null and b/companion/src/themes/monoblue/24/new.png differ
diff --git a/companion/src/themes/monoblue/24/open.png b/companion/src/themes/monoblue/24/open.png
new file mode 100644
index 000000000..dfe696898
Binary files /dev/null and b/companion/src/themes/monoblue/24/open.png differ
diff --git a/companion/src/themes/monoblue/24/paintbrush.png b/companion/src/themes/monoblue/24/paintbrush.png
new file mode 100644
index 000000000..146155656
Binary files /dev/null and b/companion/src/themes/monoblue/24/paintbrush.png differ
diff --git a/companion/src/themes/monoblue/24/paste.png b/companion/src/themes/monoblue/24/paste.png
new file mode 100644
index 000000000..0e9f92bcb
Binary files /dev/null and b/companion/src/themes/monoblue/24/paste.png differ
diff --git a/companion/src/themes/monoblue/24/play.png b/companion/src/themes/monoblue/24/play.png
new file mode 100644
index 000000000..5daf39767
Binary files /dev/null and b/companion/src/themes/monoblue/24/play.png differ
diff --git a/companion/src/themes/monoblue/24/preferences.png b/companion/src/themes/monoblue/24/preferences.png
new file mode 100644
index 000000000..28d29d0c0
Binary files /dev/null and b/companion/src/themes/monoblue/24/preferences.png differ
diff --git a/companion/src/themes/monoblue/24/print.png b/companion/src/themes/monoblue/24/print.png
new file mode 100644
index 000000000..12fdee5f8
Binary files /dev/null and b/companion/src/themes/monoblue/24/print.png differ
diff --git a/companion/src/themes/monoblue/24/profiles.png b/companion/src/themes/monoblue/24/profiles.png
new file mode 100644
index 000000000..174c9c16a
Binary files /dev/null and b/companion/src/themes/monoblue/24/profiles.png differ
diff --git a/companion/src/themes/monoblue/24/read_eeprom.png b/companion/src/themes/monoblue/24/read_eeprom.png
new file mode 100644
index 000000000..15566ec09
Binary files /dev/null and b/companion/src/themes/monoblue/24/read_eeprom.png differ
diff --git a/companion/src/themes/monoblue/24/read_eeprom_file.png b/companion/src/themes/monoblue/24/read_eeprom_file.png
new file mode 100644
index 000000000..0458de41f
Binary files /dev/null and b/companion/src/themes/monoblue/24/read_eeprom_file.png differ
diff --git a/companion/src/themes/monoblue/24/read_flash.png b/companion/src/themes/monoblue/24/read_flash.png
new file mode 100644
index 000000000..8bcc4a932
Binary files /dev/null and b/companion/src/themes/monoblue/24/read_flash.png differ
diff --git a/companion/src/themes/monoblue/24/recentdocument.png b/companion/src/themes/monoblue/24/recentdocument.png
new file mode 100644
index 000000000..3d5b3dda3
Binary files /dev/null and b/companion/src/themes/monoblue/24/recentdocument.png differ
diff --git a/companion/src/themes/monoblue/24/save.png b/companion/src/themes/monoblue/24/save.png
new file mode 100644
index 000000000..125512d7b
Binary files /dev/null and b/companion/src/themes/monoblue/24/save.png differ
diff --git a/companion/src/themes/monoblue/24/saveas.png b/companion/src/themes/monoblue/24/saveas.png
new file mode 100644
index 000000000..fdcb5be98
Binary files /dev/null and b/companion/src/themes/monoblue/24/saveas.png differ
diff --git a/companion/src/themes/monoblue/24/simulate.png b/companion/src/themes/monoblue/24/simulate.png
new file mode 100644
index 000000000..ae68435e9
Binary files /dev/null and b/companion/src/themes/monoblue/24/simulate.png differ
diff --git a/companion/src/themes/monoblue/24/stop.png b/companion/src/themes/monoblue/24/stop.png
new file mode 100644
index 000000000..5711d764e
Binary files /dev/null and b/companion/src/themes/monoblue/24/stop.png differ
diff --git a/companion/src/themes/monoblue/24/switch_dir.png b/companion/src/themes/monoblue/24/switch_dir.png
new file mode 100644
index 000000000..5a915d89f
Binary files /dev/null and b/companion/src/themes/monoblue/24/switch_dir.png differ
diff --git a/companion/src/themes/monoblue/24/update.png b/companion/src/themes/monoblue/24/update.png
new file mode 100644
index 000000000..14fc9e2fd
Binary files /dev/null and b/companion/src/themes/monoblue/24/update.png differ
diff --git a/companion/src/themes/monoblue/24/wizard.png b/companion/src/themes/monoblue/24/wizard.png
new file mode 100644
index 000000000..c2883401e
Binary files /dev/null and b/companion/src/themes/monoblue/24/wizard.png differ
diff --git a/companion/src/themes/monoblue/24/write_eeprom.png b/companion/src/themes/monoblue/24/write_eeprom.png
new file mode 100644
index 000000000..5d2641f73
Binary files /dev/null and b/companion/src/themes/monoblue/24/write_eeprom.png differ
diff --git a/companion/src/themes/monoblue/24/write_eeprom_file.png b/companion/src/themes/monoblue/24/write_eeprom_file.png
new file mode 100644
index 000000000..184cbf2bb
Binary files /dev/null and b/companion/src/themes/monoblue/24/write_eeprom_file.png differ
diff --git a/companion/src/themes/monoblue/24/write_flash.png b/companion/src/themes/monoblue/24/write_flash.png
new file mode 100644
index 000000000..38246924d
Binary files /dev/null and b/companion/src/themes/monoblue/24/write_flash.png differ
diff --git a/companion/src/themes/monoblue/32/add.png b/companion/src/themes/monoblue/32/add.png
new file mode 100644
index 000000000..526d2ebd8
Binary files /dev/null and b/companion/src/themes/monoblue/32/add.png differ
diff --git a/companion/src/themes/monoblue/32/arrow-left.png b/companion/src/themes/monoblue/32/arrow-left.png
new file mode 100644
index 000000000..1c51f3977
Binary files /dev/null and b/companion/src/themes/monoblue/32/arrow-left.png differ
diff --git a/companion/src/themes/monoblue/32/arrow-right.png b/companion/src/themes/monoblue/32/arrow-right.png
new file mode 100644
index 000000000..9bbc927e2
Binary files /dev/null and b/companion/src/themes/monoblue/32/arrow-right.png differ
diff --git a/companion/src/themes/monoblue/32/changelog.png b/companion/src/themes/monoblue/32/changelog.png
new file mode 100644
index 000000000..a47a28a33
Binary files /dev/null and b/companion/src/themes/monoblue/32/changelog.png differ
diff --git a/companion/src/themes/monoblue/32/clear.png b/companion/src/themes/monoblue/32/clear.png
new file mode 100644
index 000000000..57b07f2ca
Binary files /dev/null and b/companion/src/themes/monoblue/32/clear.png differ
diff --git a/companion/src/themes/monoblue/32/compare.png b/companion/src/themes/monoblue/32/compare.png
new file mode 100644
index 000000000..78bf27cbc
Binary files /dev/null and b/companion/src/themes/monoblue/32/compare.png differ
diff --git a/companion/src/themes/monoblue/32/configure.png b/companion/src/themes/monoblue/32/configure.png
new file mode 100644
index 000000000..c701b52be
Binary files /dev/null and b/companion/src/themes/monoblue/32/configure.png differ
diff --git a/companion/src/themes/monoblue/32/contributors.png b/companion/src/themes/monoblue/32/contributors.png
new file mode 100644
index 000000000..aa8f130b5
Binary files /dev/null and b/companion/src/themes/monoblue/32/contributors.png differ
diff --git a/companion/src/themes/monoblue/32/copy.png b/companion/src/themes/monoblue/32/copy.png
new file mode 100644
index 000000000..e16499332
Binary files /dev/null and b/companion/src/themes/monoblue/32/copy.png differ
diff --git a/companion/src/themes/monoblue/32/currentmodel.png b/companion/src/themes/monoblue/32/currentmodel.png
new file mode 100644
index 000000000..ba8d29bf5
Binary files /dev/null and b/companion/src/themes/monoblue/32/currentmodel.png differ
diff --git a/companion/src/themes/monoblue/32/customize.png b/companion/src/themes/monoblue/32/customize.png
new file mode 100644
index 000000000..a3e3469bc
Binary files /dev/null and b/companion/src/themes/monoblue/32/customize.png differ
diff --git a/companion/src/themes/monoblue/32/cut.png b/companion/src/themes/monoblue/32/cut.png
new file mode 100644
index 000000000..98083340e
Binary files /dev/null and b/companion/src/themes/monoblue/32/cut.png differ
diff --git a/companion/src/themes/monoblue/32/duplicate.png b/companion/src/themes/monoblue/32/duplicate.png
new file mode 100644
index 000000000..1053d8c2f
Binary files /dev/null and b/companion/src/themes/monoblue/32/duplicate.png differ
diff --git a/companion/src/themes/monoblue/32/edit.png b/companion/src/themes/monoblue/32/edit.png
new file mode 100644
index 000000000..56fc6bd72
Binary files /dev/null and b/companion/src/themes/monoblue/32/edit.png differ
diff --git a/companion/src/themes/monoblue/32/exit.png b/companion/src/themes/monoblue/32/exit.png
new file mode 100644
index 000000000..e24a7e034
Binary files /dev/null and b/companion/src/themes/monoblue/32/exit.png differ
diff --git a/companion/src/themes/monoblue/32/fuses.png b/companion/src/themes/monoblue/32/fuses.png
new file mode 100644
index 000000000..813fa99fd
Binary files /dev/null and b/companion/src/themes/monoblue/32/fuses.png differ
diff --git a/companion/src/themes/monoblue/32/information.png b/companion/src/themes/monoblue/32/information.png
new file mode 100644
index 000000000..896c7c3c6
Binary files /dev/null and b/companion/src/themes/monoblue/32/information.png differ
diff --git a/companion/src/themes/monoblue/32/library.png b/companion/src/themes/monoblue/32/library.png
new file mode 100644
index 000000000..6f7ee85dd
Binary files /dev/null and b/companion/src/themes/monoblue/32/library.png differ
diff --git a/companion/src/themes/monoblue/32/list.png b/companion/src/themes/monoblue/32/list.png
new file mode 100644
index 000000000..b0d0cd20d
Binary files /dev/null and b/companion/src/themes/monoblue/32/list.png differ
diff --git a/companion/src/themes/monoblue/32/logs.png b/companion/src/themes/monoblue/32/logs.png
new file mode 100644
index 000000000..dc676c68e
Binary files /dev/null and b/companion/src/themes/monoblue/32/logs.png differ
diff --git a/companion/src/themes/monoblue/32/movedown.png b/companion/src/themes/monoblue/32/movedown.png
new file mode 100644
index 000000000..ada0c6685
Binary files /dev/null and b/companion/src/themes/monoblue/32/movedown.png differ
diff --git a/companion/src/themes/monoblue/32/moveup.png b/companion/src/themes/monoblue/32/moveup.png
new file mode 100644
index 000000000..7748b9a42
Binary files /dev/null and b/companion/src/themes/monoblue/32/moveup.png differ
diff --git a/companion/src/themes/monoblue/32/new.png b/companion/src/themes/monoblue/32/new.png
new file mode 100644
index 000000000..123d49588
Binary files /dev/null and b/companion/src/themes/monoblue/32/new.png differ
diff --git a/companion/src/themes/monoblue/32/open.png b/companion/src/themes/monoblue/32/open.png
new file mode 100644
index 000000000..eaf97c2c2
Binary files /dev/null and b/companion/src/themes/monoblue/32/open.png differ
diff --git a/companion/src/themes/monoblue/32/paintbrush.png b/companion/src/themes/monoblue/32/paintbrush.png
new file mode 100644
index 000000000..648687ca8
Binary files /dev/null and b/companion/src/themes/monoblue/32/paintbrush.png differ
diff --git a/companion/src/themes/monoblue/32/paste.png b/companion/src/themes/monoblue/32/paste.png
new file mode 100644
index 000000000..f8a34a8d4
Binary files /dev/null and b/companion/src/themes/monoblue/32/paste.png differ
diff --git a/companion/src/themes/monoblue/32/play.png b/companion/src/themes/monoblue/32/play.png
new file mode 100644
index 000000000..744992697
Binary files /dev/null and b/companion/src/themes/monoblue/32/play.png differ
diff --git a/companion/src/themes/monoblue/32/preferences.png b/companion/src/themes/monoblue/32/preferences.png
new file mode 100644
index 000000000..dbeafbc37
Binary files /dev/null and b/companion/src/themes/monoblue/32/preferences.png differ
diff --git a/companion/src/themes/monoblue/32/print.png b/companion/src/themes/monoblue/32/print.png
new file mode 100644
index 000000000..9ff0f7e2d
Binary files /dev/null and b/companion/src/themes/monoblue/32/print.png differ
diff --git a/companion/src/themes/monoblue/32/profiles.png b/companion/src/themes/monoblue/32/profiles.png
new file mode 100644
index 000000000..fda77416f
Binary files /dev/null and b/companion/src/themes/monoblue/32/profiles.png differ
diff --git a/companion/src/themes/monoblue/32/read_eeprom.png b/companion/src/themes/monoblue/32/read_eeprom.png
new file mode 100644
index 000000000..407584ed7
Binary files /dev/null and b/companion/src/themes/monoblue/32/read_eeprom.png differ
diff --git a/companion/src/themes/monoblue/32/read_eeprom_file.png b/companion/src/themes/monoblue/32/read_eeprom_file.png
new file mode 100644
index 000000000..b6e3f6347
Binary files /dev/null and b/companion/src/themes/monoblue/32/read_eeprom_file.png differ
diff --git a/companion/src/themes/monoblue/32/read_flash.png b/companion/src/themes/monoblue/32/read_flash.png
new file mode 100644
index 000000000..d07532291
Binary files /dev/null and b/companion/src/themes/monoblue/32/read_flash.png differ
diff --git a/companion/src/themes/monoblue/32/recentdocument.png b/companion/src/themes/monoblue/32/recentdocument.png
new file mode 100644
index 000000000..0dade16b4
Binary files /dev/null and b/companion/src/themes/monoblue/32/recentdocument.png differ
diff --git a/companion/src/themes/monoblue/32/save.png b/companion/src/themes/monoblue/32/save.png
new file mode 100644
index 000000000..b96b8a51a
Binary files /dev/null and b/companion/src/themes/monoblue/32/save.png differ
diff --git a/companion/src/themes/monoblue/32/saveas.png b/companion/src/themes/monoblue/32/saveas.png
new file mode 100644
index 000000000..031468408
Binary files /dev/null and b/companion/src/themes/monoblue/32/saveas.png differ
diff --git a/companion/src/themes/monoblue/32/simulate.png b/companion/src/themes/monoblue/32/simulate.png
new file mode 100644
index 000000000..9a6e2ec74
Binary files /dev/null and b/companion/src/themes/monoblue/32/simulate.png differ
diff --git a/companion/src/themes/monoblue/32/stop.png b/companion/src/themes/monoblue/32/stop.png
new file mode 100644
index 000000000..e2892797d
Binary files /dev/null and b/companion/src/themes/monoblue/32/stop.png differ
diff --git a/companion/src/themes/monoblue/32/switch_dir.png b/companion/src/themes/monoblue/32/switch_dir.png
new file mode 100644
index 000000000..3c0d6dddc
Binary files /dev/null and b/companion/src/themes/monoblue/32/switch_dir.png differ
diff --git a/companion/src/themes/monoblue/32/update.png b/companion/src/themes/monoblue/32/update.png
new file mode 100644
index 000000000..250147a57
Binary files /dev/null and b/companion/src/themes/monoblue/32/update.png differ
diff --git a/companion/src/themes/monoblue/32/wizard.png b/companion/src/themes/monoblue/32/wizard.png
new file mode 100644
index 000000000..41999d5b6
Binary files /dev/null and b/companion/src/themes/monoblue/32/wizard.png differ
diff --git a/companion/src/themes/monoblue/32/write_eeprom.png b/companion/src/themes/monoblue/32/write_eeprom.png
new file mode 100644
index 000000000..b4ec61822
Binary files /dev/null and b/companion/src/themes/monoblue/32/write_eeprom.png differ
diff --git a/companion/src/themes/monoblue/32/write_eeprom_file.png b/companion/src/themes/monoblue/32/write_eeprom_file.png
new file mode 100644
index 000000000..6042ddf03
Binary files /dev/null and b/companion/src/themes/monoblue/32/write_eeprom_file.png differ
diff --git a/companion/src/themes/monoblue/32/write_flash.png b/companion/src/themes/monoblue/32/write_flash.png
new file mode 100644
index 000000000..ec5397d7a
Binary files /dev/null and b/companion/src/themes/monoblue/32/write_flash.png differ
diff --git a/companion/src/themes/monoblue/48/add.png b/companion/src/themes/monoblue/48/add.png
new file mode 100644
index 000000000..b398f4584
Binary files /dev/null and b/companion/src/themes/monoblue/48/add.png differ
diff --git a/companion/src/themes/monoblue/48/arrow-left.png b/companion/src/themes/monoblue/48/arrow-left.png
new file mode 100644
index 000000000..86f02dea9
Binary files /dev/null and b/companion/src/themes/monoblue/48/arrow-left.png differ
diff --git a/companion/src/themes/monoblue/48/arrow-right.png b/companion/src/themes/monoblue/48/arrow-right.png
new file mode 100644
index 000000000..45ea123d5
Binary files /dev/null and b/companion/src/themes/monoblue/48/arrow-right.png differ
diff --git a/companion/src/themes/monoblue/48/changelog.png b/companion/src/themes/monoblue/48/changelog.png
new file mode 100644
index 000000000..f63510e0c
Binary files /dev/null and b/companion/src/themes/monoblue/48/changelog.png differ
diff --git a/companion/src/themes/monoblue/48/clear.png b/companion/src/themes/monoblue/48/clear.png
new file mode 100644
index 000000000..11c9979b9
Binary files /dev/null and b/companion/src/themes/monoblue/48/clear.png differ
diff --git a/companion/src/themes/monoblue/48/compare.png b/companion/src/themes/monoblue/48/compare.png
new file mode 100644
index 000000000..ba3870011
Binary files /dev/null and b/companion/src/themes/monoblue/48/compare.png differ
diff --git a/companion/src/themes/monoblue/48/configure.png b/companion/src/themes/monoblue/48/configure.png
new file mode 100644
index 000000000..ea1e7009a
Binary files /dev/null and b/companion/src/themes/monoblue/48/configure.png differ
diff --git a/companion/src/themes/monoblue/48/contributors.png b/companion/src/themes/monoblue/48/contributors.png
new file mode 100644
index 000000000..c8b3c2cba
Binary files /dev/null and b/companion/src/themes/monoblue/48/contributors.png differ
diff --git a/companion/src/themes/monoblue/48/copy.png b/companion/src/themes/monoblue/48/copy.png
new file mode 100644
index 000000000..4918af9f7
Binary files /dev/null and b/companion/src/themes/monoblue/48/copy.png differ
diff --git a/companion/src/themes/monoblue/48/currentmodel.png b/companion/src/themes/monoblue/48/currentmodel.png
new file mode 100644
index 000000000..865fae91f
Binary files /dev/null and b/companion/src/themes/monoblue/48/currentmodel.png differ
diff --git a/companion/src/themes/monoblue/48/customize.png b/companion/src/themes/monoblue/48/customize.png
new file mode 100644
index 000000000..27da28b6d
Binary files /dev/null and b/companion/src/themes/monoblue/48/customize.png differ
diff --git a/companion/src/themes/monoblue/48/cut.png b/companion/src/themes/monoblue/48/cut.png
new file mode 100644
index 000000000..a6bfe6361
Binary files /dev/null and b/companion/src/themes/monoblue/48/cut.png differ
diff --git a/companion/src/themes/monoblue/48/duplicate.png b/companion/src/themes/monoblue/48/duplicate.png
new file mode 100644
index 000000000..7222708f4
Binary files /dev/null and b/companion/src/themes/monoblue/48/duplicate.png differ
diff --git a/companion/src/themes/monoblue/48/edit.png b/companion/src/themes/monoblue/48/edit.png
new file mode 100644
index 000000000..ec4fa326f
Binary files /dev/null and b/companion/src/themes/monoblue/48/edit.png differ
diff --git a/companion/src/themes/monoblue/48/exit.png b/companion/src/themes/monoblue/48/exit.png
new file mode 100644
index 000000000..8e3d37ff5
Binary files /dev/null and b/companion/src/themes/monoblue/48/exit.png differ
diff --git a/companion/src/themes/monoblue/48/fuses.png b/companion/src/themes/monoblue/48/fuses.png
new file mode 100644
index 000000000..47d3e7025
Binary files /dev/null and b/companion/src/themes/monoblue/48/fuses.png differ
diff --git a/companion/src/themes/monoblue/48/information.png b/companion/src/themes/monoblue/48/information.png
new file mode 100644
index 000000000..e63138475
Binary files /dev/null and b/companion/src/themes/monoblue/48/information.png differ
diff --git a/companion/src/themes/monoblue/48/library.png b/companion/src/themes/monoblue/48/library.png
new file mode 100644
index 000000000..354bca34a
Binary files /dev/null and b/companion/src/themes/monoblue/48/library.png differ
diff --git a/companion/src/themes/monoblue/48/list.png b/companion/src/themes/monoblue/48/list.png
new file mode 100644
index 000000000..043c4d42a
Binary files /dev/null and b/companion/src/themes/monoblue/48/list.png differ
diff --git a/companion/src/themes/monoblue/48/logs.png b/companion/src/themes/monoblue/48/logs.png
new file mode 100644
index 000000000..092b19e61
Binary files /dev/null and b/companion/src/themes/monoblue/48/logs.png differ
diff --git a/companion/src/themes/monoblue/48/movedown.png b/companion/src/themes/monoblue/48/movedown.png
new file mode 100644
index 000000000..dc6db146e
Binary files /dev/null and b/companion/src/themes/monoblue/48/movedown.png differ
diff --git a/companion/src/themes/monoblue/48/moveup.png b/companion/src/themes/monoblue/48/moveup.png
new file mode 100644
index 000000000..c68fc663d
Binary files /dev/null and b/companion/src/themes/monoblue/48/moveup.png differ
diff --git a/companion/src/themes/monoblue/48/new.png b/companion/src/themes/monoblue/48/new.png
new file mode 100644
index 000000000..838cd9ff9
Binary files /dev/null and b/companion/src/themes/monoblue/48/new.png differ
diff --git a/companion/src/themes/monoblue/48/open.png b/companion/src/themes/monoblue/48/open.png
new file mode 100644
index 000000000..d1e79c283
Binary files /dev/null and b/companion/src/themes/monoblue/48/open.png differ
diff --git a/companion/src/themes/monoblue/48/paintbrush.png b/companion/src/themes/monoblue/48/paintbrush.png
new file mode 100644
index 000000000..660bf62c7
Binary files /dev/null and b/companion/src/themes/monoblue/48/paintbrush.png differ
diff --git a/companion/src/themes/monoblue/48/paste.png b/companion/src/themes/monoblue/48/paste.png
new file mode 100644
index 000000000..79954699b
Binary files /dev/null and b/companion/src/themes/monoblue/48/paste.png differ
diff --git a/companion/src/themes/monoblue/48/play.png b/companion/src/themes/monoblue/48/play.png
new file mode 100644
index 000000000..cfa51872d
Binary files /dev/null and b/companion/src/themes/monoblue/48/play.png differ
diff --git a/companion/src/themes/monoblue/48/preferences.png b/companion/src/themes/monoblue/48/preferences.png
new file mode 100644
index 000000000..3b4d91a3b
Binary files /dev/null and b/companion/src/themes/monoblue/48/preferences.png differ
diff --git a/companion/src/themes/monoblue/48/print.png b/companion/src/themes/monoblue/48/print.png
new file mode 100644
index 000000000..bd9eac8b8
Binary files /dev/null and b/companion/src/themes/monoblue/48/print.png differ
diff --git a/companion/src/themes/monoblue/48/profiles.png b/companion/src/themes/monoblue/48/profiles.png
new file mode 100644
index 000000000..20722810e
Binary files /dev/null and b/companion/src/themes/monoblue/48/profiles.png differ
diff --git a/companion/src/themes/monoblue/48/read_eeprom.png b/companion/src/themes/monoblue/48/read_eeprom.png
new file mode 100644
index 000000000..6f545247f
Binary files /dev/null and b/companion/src/themes/monoblue/48/read_eeprom.png differ
diff --git a/companion/src/themes/monoblue/48/read_eeprom_file.png b/companion/src/themes/monoblue/48/read_eeprom_file.png
new file mode 100644
index 000000000..d8476f45d
Binary files /dev/null and b/companion/src/themes/monoblue/48/read_eeprom_file.png differ
diff --git a/companion/src/themes/monoblue/48/read_flash.png b/companion/src/themes/monoblue/48/read_flash.png
new file mode 100644
index 000000000..3af289f1a
Binary files /dev/null and b/companion/src/themes/monoblue/48/read_flash.png differ
diff --git a/companion/src/themes/monoblue/48/recentdocument.png b/companion/src/themes/monoblue/48/recentdocument.png
new file mode 100644
index 000000000..795883872
Binary files /dev/null and b/companion/src/themes/monoblue/48/recentdocument.png differ
diff --git a/companion/src/themes/monoblue/48/save.png b/companion/src/themes/monoblue/48/save.png
new file mode 100644
index 000000000..d05062e95
Binary files /dev/null and b/companion/src/themes/monoblue/48/save.png differ
diff --git a/companion/src/themes/monoblue/48/saveas.png b/companion/src/themes/monoblue/48/saveas.png
new file mode 100644
index 000000000..cf57499c9
Binary files /dev/null and b/companion/src/themes/monoblue/48/saveas.png differ
diff --git a/companion/src/themes/monoblue/48/simulate.png b/companion/src/themes/monoblue/48/simulate.png
new file mode 100644
index 000000000..f33c8bf0d
Binary files /dev/null and b/companion/src/themes/monoblue/48/simulate.png differ
diff --git a/companion/src/themes/monoblue/48/stop.png b/companion/src/themes/monoblue/48/stop.png
new file mode 100644
index 000000000..3b56a803f
Binary files /dev/null and b/companion/src/themes/monoblue/48/stop.png differ
diff --git a/companion/src/themes/monoblue/48/switch_dir.png b/companion/src/themes/monoblue/48/switch_dir.png
new file mode 100644
index 000000000..f31c11dee
Binary files /dev/null and b/companion/src/themes/monoblue/48/switch_dir.png differ
diff --git a/companion/src/themes/monoblue/48/update.png b/companion/src/themes/monoblue/48/update.png
new file mode 100644
index 000000000..9b64290cf
Binary files /dev/null and b/companion/src/themes/monoblue/48/update.png differ
diff --git a/companion/src/themes/monoblue/48/wizard.png b/companion/src/themes/monoblue/48/wizard.png
new file mode 100644
index 000000000..d7f879798
Binary files /dev/null and b/companion/src/themes/monoblue/48/wizard.png differ
diff --git a/companion/src/themes/monoblue/48/write_eeprom.png b/companion/src/themes/monoblue/48/write_eeprom.png
new file mode 100644
index 000000000..fb32ada8d
Binary files /dev/null and b/companion/src/themes/monoblue/48/write_eeprom.png differ
diff --git a/companion/src/themes/monoblue/48/write_eeprom_file.png b/companion/src/themes/monoblue/48/write_eeprom_file.png
new file mode 100644
index 000000000..bfd3c46af
Binary files /dev/null and b/companion/src/themes/monoblue/48/write_eeprom_file.png differ
diff --git a/companion/src/themes/monoblue/48/write_flash.png b/companion/src/themes/monoblue/48/write_flash.png
new file mode 100644
index 000000000..7c5167a70
Binary files /dev/null and b/companion/src/themes/monoblue/48/write_flash.png differ
diff --git a/companion/src/themes/monoblue/add.png b/companion/src/themes/monoblue/add.png
new file mode 100644
index 000000000..a9d655f3f
Binary files /dev/null and b/companion/src/themes/monoblue/add.png differ
diff --git a/companion/src/themes/monoblue/arrow-left.png b/companion/src/themes/monoblue/arrow-left.png
new file mode 100644
index 000000000..2a93554df
Binary files /dev/null and b/companion/src/themes/monoblue/arrow-left.png differ
diff --git a/companion/src/themes/monoblue/arrow-right.png b/companion/src/themes/monoblue/arrow-right.png
new file mode 100644
index 000000000..4f8d53d58
Binary files /dev/null and b/companion/src/themes/monoblue/arrow-right.png differ
diff --git a/companion/src/themes/monoblue/changelog.png b/companion/src/themes/monoblue/changelog.png
new file mode 100644
index 000000000..c97984a40
Binary files /dev/null and b/companion/src/themes/monoblue/changelog.png differ
diff --git a/companion/src/themes/monoblue/clear.png b/companion/src/themes/monoblue/clear.png
new file mode 100644
index 000000000..e37cf1aba
Binary files /dev/null and b/companion/src/themes/monoblue/clear.png differ
diff --git a/companion/src/themes/monoblue/compare.png b/companion/src/themes/monoblue/compare.png
new file mode 100644
index 000000000..f645f0385
Binary files /dev/null and b/companion/src/themes/monoblue/compare.png differ
diff --git a/companion/src/themes/monoblue/configure.png b/companion/src/themes/monoblue/configure.png
new file mode 100644
index 000000000..3beb434c5
Binary files /dev/null and b/companion/src/themes/monoblue/configure.png differ
diff --git a/companion/src/themes/monoblue/contributors.png b/companion/src/themes/monoblue/contributors.png
new file mode 100644
index 000000000..b37877e68
Binary files /dev/null and b/companion/src/themes/monoblue/contributors.png differ
diff --git a/companion/src/themes/monoblue/copy.png b/companion/src/themes/monoblue/copy.png
new file mode 100644
index 000000000..d02edac1d
Binary files /dev/null and b/companion/src/themes/monoblue/copy.png differ
diff --git a/companion/src/themes/monoblue/currentmodel.png b/companion/src/themes/monoblue/currentmodel.png
new file mode 100644
index 000000000..26ee8d6d0
Binary files /dev/null and b/companion/src/themes/monoblue/currentmodel.png differ
diff --git a/companion/src/themes/monoblue/cut.png b/companion/src/themes/monoblue/cut.png
new file mode 100644
index 000000000..8a67666ee
Binary files /dev/null and b/companion/src/themes/monoblue/cut.png differ
diff --git a/companion/src/themes/monoblue/duplicate.png b/companion/src/themes/monoblue/duplicate.png
new file mode 100644
index 000000000..7b8ffa22c
Binary files /dev/null and b/companion/src/themes/monoblue/duplicate.png differ
diff --git a/companion/src/themes/monoblue/edit.png b/companion/src/themes/monoblue/edit.png
new file mode 100644
index 000000000..5569461bc
Binary files /dev/null and b/companion/src/themes/monoblue/edit.png differ
diff --git a/companion/src/themes/monoblue/exit.png b/companion/src/themes/monoblue/exit.png
new file mode 100644
index 000000000..86898dc68
Binary files /dev/null and b/companion/src/themes/monoblue/exit.png differ
diff --git a/companion/src/themes/monoblue/fuses.png b/companion/src/themes/monoblue/fuses.png
new file mode 100644
index 000000000..f8069a08f
Binary files /dev/null and b/companion/src/themes/monoblue/fuses.png differ
diff --git a/companion/src/themes/monoblue/information.png b/companion/src/themes/monoblue/information.png
new file mode 100644
index 000000000..d6f5e3224
Binary files /dev/null and b/companion/src/themes/monoblue/information.png differ
diff --git a/companion/src/themes/monoblue/library.png b/companion/src/themes/monoblue/library.png
new file mode 100644
index 000000000..e70e564a6
Binary files /dev/null and b/companion/src/themes/monoblue/library.png differ
diff --git a/companion/src/themes/monoblue/list.png b/companion/src/themes/monoblue/list.png
new file mode 100644
index 000000000..893d6f95e
Binary files /dev/null and b/companion/src/themes/monoblue/list.png differ
diff --git a/companion/src/themes/monoblue/logs.png b/companion/src/themes/monoblue/logs.png
new file mode 100644
index 000000000..46a00c203
Binary files /dev/null and b/companion/src/themes/monoblue/logs.png differ
diff --git a/companion/src/themes/monoblue/movedown.png b/companion/src/themes/monoblue/movedown.png
new file mode 100644
index 000000000..084ec4191
Binary files /dev/null and b/companion/src/themes/monoblue/movedown.png differ
diff --git a/companion/src/themes/monoblue/moveup.png b/companion/src/themes/monoblue/moveup.png
new file mode 100644
index 000000000..e42bcb016
Binary files /dev/null and b/companion/src/themes/monoblue/moveup.png differ
diff --git a/companion/src/themes/monoblue/new.png b/companion/src/themes/monoblue/new.png
new file mode 100644
index 000000000..803e78002
Binary files /dev/null and b/companion/src/themes/monoblue/new.png differ
diff --git a/companion/src/themes/monoblue/open.png b/companion/src/themes/monoblue/open.png
new file mode 100644
index 000000000..f39d8f66a
Binary files /dev/null and b/companion/src/themes/monoblue/open.png differ
diff --git a/companion/src/themes/monoblue/paintbrush.png b/companion/src/themes/monoblue/paintbrush.png
new file mode 100644
index 000000000..1b590b706
Binary files /dev/null and b/companion/src/themes/monoblue/paintbrush.png differ
diff --git a/companion/src/themes/monoblue/paste.png b/companion/src/themes/monoblue/paste.png
new file mode 100644
index 000000000..7c0042a5f
Binary files /dev/null and b/companion/src/themes/monoblue/paste.png differ
diff --git a/companion/src/themes/monoblue/play.png b/companion/src/themes/monoblue/play.png
new file mode 100644
index 000000000..2bcf00df2
Binary files /dev/null and b/companion/src/themes/monoblue/play.png differ
diff --git a/companion/src/themes/monoblue/preferences.png b/companion/src/themes/monoblue/preferences.png
new file mode 100644
index 000000000..479c80d9e
Binary files /dev/null and b/companion/src/themes/monoblue/preferences.png differ
diff --git a/companion/src/themes/monoblue/print.png b/companion/src/themes/monoblue/print.png
new file mode 100644
index 000000000..12bf81699
Binary files /dev/null and b/companion/src/themes/monoblue/print.png differ
diff --git a/companion/src/themes/monoblue/profiles.png b/companion/src/themes/monoblue/profiles.png
new file mode 100644
index 000000000..c4dccce71
Binary files /dev/null and b/companion/src/themes/monoblue/profiles.png differ
diff --git a/companion/src/themes/monoblue/read_eeprom.png b/companion/src/themes/monoblue/read_eeprom.png
new file mode 100644
index 000000000..f60dec22a
Binary files /dev/null and b/companion/src/themes/monoblue/read_eeprom.png differ
diff --git a/companion/src/themes/monoblue/read_eeprom_file.png b/companion/src/themes/monoblue/read_eeprom_file.png
new file mode 100644
index 000000000..465d633d0
Binary files /dev/null and b/companion/src/themes/monoblue/read_eeprom_file.png differ
diff --git a/companion/src/themes/monoblue/read_flash.png b/companion/src/themes/monoblue/read_flash.png
new file mode 100644
index 000000000..327f24f0b
Binary files /dev/null and b/companion/src/themes/monoblue/read_flash.png differ
diff --git a/companion/src/themes/monoblue/recentdocument.png b/companion/src/themes/monoblue/recentdocument.png
new file mode 100644
index 000000000..91ca42f65
Binary files /dev/null and b/companion/src/themes/monoblue/recentdocument.png differ
diff --git a/companion/src/themes/monoblue/save.png b/companion/src/themes/monoblue/save.png
new file mode 100644
index 000000000..0b0554a92
Binary files /dev/null and b/companion/src/themes/monoblue/save.png differ
diff --git a/companion/src/themes/monoblue/saveas.png b/companion/src/themes/monoblue/saveas.png
new file mode 100644
index 000000000..2d628c912
Binary files /dev/null and b/companion/src/themes/monoblue/saveas.png differ
diff --git a/companion/src/themes/monoblue/simulate.png b/companion/src/themes/monoblue/simulate.png
new file mode 100644
index 000000000..b397abf9b
Binary files /dev/null and b/companion/src/themes/monoblue/simulate.png differ
diff --git a/companion/src/themes/monoblue/stop.png b/companion/src/themes/monoblue/stop.png
new file mode 100644
index 000000000..34910ac76
Binary files /dev/null and b/companion/src/themes/monoblue/stop.png differ
diff --git a/companion/src/themes/monoblue/switch_dir.png b/companion/src/themes/monoblue/switch_dir.png
new file mode 100644
index 000000000..9a12134d5
Binary files /dev/null and b/companion/src/themes/monoblue/switch_dir.png differ
diff --git a/companion/src/themes/monoblue/update.png b/companion/src/themes/monoblue/update.png
new file mode 100644
index 000000000..9b8d95d22
Binary files /dev/null and b/companion/src/themes/monoblue/update.png differ
diff --git a/companion/src/themes/monoblue/wizard.png b/companion/src/themes/monoblue/wizard.png
new file mode 100644
index 000000000..83ab65022
Binary files /dev/null and b/companion/src/themes/monoblue/wizard.png differ
diff --git a/companion/src/themes/monoblue/write_eeprom.png b/companion/src/themes/monoblue/write_eeprom.png
new file mode 100644
index 000000000..b3f30accc
Binary files /dev/null and b/companion/src/themes/monoblue/write_eeprom.png differ
diff --git a/companion/src/themes/monoblue/write_eeprom_file.png b/companion/src/themes/monoblue/write_eeprom_file.png
new file mode 100644
index 000000000..35a667926
Binary files /dev/null and b/companion/src/themes/monoblue/write_eeprom_file.png differ
diff --git a/companion/src/themes/monoblue/write_flash.png b/companion/src/themes/monoblue/write_flash.png
new file mode 100644
index 000000000..d0ca9ede3
Binary files /dev/null and b/companion/src/themes/monoblue/write_flash.png differ
diff --git a/companion/src/themes/monochrome/16/add.png b/companion/src/themes/monochrome/16/add.png
new file mode 100644
index 000000000..7d853823c
Binary files /dev/null and b/companion/src/themes/monochrome/16/add.png differ
diff --git a/companion/src/themes/monochrome/16/arrow-left.png b/companion/src/themes/monochrome/16/arrow-left.png
new file mode 100644
index 000000000..4b7498f99
Binary files /dev/null and b/companion/src/themes/monochrome/16/arrow-left.png differ
diff --git a/companion/src/themes/monochrome/16/arrow-right.png b/companion/src/themes/monochrome/16/arrow-right.png
new file mode 100644
index 000000000..ed95c8a80
Binary files /dev/null and b/companion/src/themes/monochrome/16/arrow-right.png differ
diff --git a/companion/src/themes/monochrome/16/changelog.png b/companion/src/themes/monochrome/16/changelog.png
new file mode 100644
index 000000000..744544da6
Binary files /dev/null and b/companion/src/themes/monochrome/16/changelog.png differ
diff --git a/companion/src/themes/monochrome/16/clear.png b/companion/src/themes/monochrome/16/clear.png
new file mode 100644
index 000000000..b81ae9232
Binary files /dev/null and b/companion/src/themes/monochrome/16/clear.png differ
diff --git a/companion/src/themes/monochrome/16/compare.png b/companion/src/themes/monochrome/16/compare.png
new file mode 100644
index 000000000..a12be8ad2
Binary files /dev/null and b/companion/src/themes/monochrome/16/compare.png differ
diff --git a/companion/src/themes/monochrome/16/configure.png b/companion/src/themes/monochrome/16/configure.png
new file mode 100644
index 000000000..6a3295aab
Binary files /dev/null and b/companion/src/themes/monochrome/16/configure.png differ
diff --git a/companion/src/themes/monochrome/16/contributors.png b/companion/src/themes/monochrome/16/contributors.png
new file mode 100644
index 000000000..ca7664737
Binary files /dev/null and b/companion/src/themes/monochrome/16/contributors.png differ
diff --git a/companion/src/themes/monochrome/16/copy.png b/companion/src/themes/monochrome/16/copy.png
new file mode 100644
index 000000000..0b02d7b12
Binary files /dev/null and b/companion/src/themes/monochrome/16/copy.png differ
diff --git a/companion/src/themes/monochrome/16/currentmodel.png b/companion/src/themes/monochrome/16/currentmodel.png
new file mode 100644
index 000000000..2f9d72888
Binary files /dev/null and b/companion/src/themes/monochrome/16/currentmodel.png differ
diff --git a/companion/src/themes/monochrome/16/customize.png b/companion/src/themes/monochrome/16/customize.png
new file mode 100644
index 000000000..078d0af75
Binary files /dev/null and b/companion/src/themes/monochrome/16/customize.png differ
diff --git a/companion/src/themes/monochrome/16/cut.png b/companion/src/themes/monochrome/16/cut.png
new file mode 100644
index 000000000..b590d2f13
Binary files /dev/null and b/companion/src/themes/monochrome/16/cut.png differ
diff --git a/companion/src/themes/monochrome/16/duplicate.png b/companion/src/themes/monochrome/16/duplicate.png
new file mode 100644
index 000000000..4e994a70f
Binary files /dev/null and b/companion/src/themes/monochrome/16/duplicate.png differ
diff --git a/companion/src/themes/monochrome/16/edit.png b/companion/src/themes/monochrome/16/edit.png
new file mode 100644
index 000000000..9b7e2f76b
Binary files /dev/null and b/companion/src/themes/monochrome/16/edit.png differ
diff --git a/companion/src/themes/monochrome/16/exit.png b/companion/src/themes/monochrome/16/exit.png
new file mode 100644
index 000000000..fa1be5f77
Binary files /dev/null and b/companion/src/themes/monochrome/16/exit.png differ
diff --git a/companion/src/themes/monochrome/16/fuses.png b/companion/src/themes/monochrome/16/fuses.png
new file mode 100644
index 000000000..521de6d3a
Binary files /dev/null and b/companion/src/themes/monochrome/16/fuses.png differ
diff --git a/companion/src/themes/monochrome/16/information.png b/companion/src/themes/monochrome/16/information.png
new file mode 100644
index 000000000..d7016086e
Binary files /dev/null and b/companion/src/themes/monochrome/16/information.png differ
diff --git a/companion/src/themes/monochrome/16/library.png b/companion/src/themes/monochrome/16/library.png
new file mode 100644
index 000000000..01240a613
Binary files /dev/null and b/companion/src/themes/monochrome/16/library.png differ
diff --git a/companion/src/themes/monochrome/16/list.png b/companion/src/themes/monochrome/16/list.png
new file mode 100644
index 000000000..01a4b47d6
Binary files /dev/null and b/companion/src/themes/monochrome/16/list.png differ
diff --git a/companion/src/themes/monochrome/16/logs.png b/companion/src/themes/monochrome/16/logs.png
new file mode 100644
index 000000000..1d955dfa1
Binary files /dev/null and b/companion/src/themes/monochrome/16/logs.png differ
diff --git a/companion/src/themes/monochrome/16/movedown.png b/companion/src/themes/monochrome/16/movedown.png
new file mode 100644
index 000000000..5a0abec1f
Binary files /dev/null and b/companion/src/themes/monochrome/16/movedown.png differ
diff --git a/companion/src/themes/monochrome/16/moveup.png b/companion/src/themes/monochrome/16/moveup.png
new file mode 100644
index 000000000..d7ffb1302
Binary files /dev/null and b/companion/src/themes/monochrome/16/moveup.png differ
diff --git a/companion/src/themes/monochrome/16/new.png b/companion/src/themes/monochrome/16/new.png
new file mode 100644
index 000000000..1f593fe07
Binary files /dev/null and b/companion/src/themes/monochrome/16/new.png differ
diff --git a/companion/src/themes/monochrome/16/open.png b/companion/src/themes/monochrome/16/open.png
new file mode 100644
index 000000000..ba55851c5
Binary files /dev/null and b/companion/src/themes/monochrome/16/open.png differ
diff --git a/companion/src/themes/monochrome/16/paintbrush.png b/companion/src/themes/monochrome/16/paintbrush.png
new file mode 100644
index 000000000..b95ec57aa
Binary files /dev/null and b/companion/src/themes/monochrome/16/paintbrush.png differ
diff --git a/companion/src/themes/monochrome/16/paste.png b/companion/src/themes/monochrome/16/paste.png
new file mode 100644
index 000000000..9970502c6
Binary files /dev/null and b/companion/src/themes/monochrome/16/paste.png differ
diff --git a/companion/src/themes/monochrome/16/play.png b/companion/src/themes/monochrome/16/play.png
new file mode 100644
index 000000000..8501a8b58
Binary files /dev/null and b/companion/src/themes/monochrome/16/play.png differ
diff --git a/companion/src/themes/monochrome/16/preferences.png b/companion/src/themes/monochrome/16/preferences.png
new file mode 100644
index 000000000..1e0904a08
Binary files /dev/null and b/companion/src/themes/monochrome/16/preferences.png differ
diff --git a/companion/src/themes/monochrome/16/print.png b/companion/src/themes/monochrome/16/print.png
new file mode 100644
index 000000000..cc8459980
Binary files /dev/null and b/companion/src/themes/monochrome/16/print.png differ
diff --git a/companion/src/themes/monochrome/16/profiles.png b/companion/src/themes/monochrome/16/profiles.png
new file mode 100644
index 000000000..01b13e3c7
Binary files /dev/null and b/companion/src/themes/monochrome/16/profiles.png differ
diff --git a/companion/src/themes/monochrome/16/read_eeprom.png b/companion/src/themes/monochrome/16/read_eeprom.png
new file mode 100644
index 000000000..36c0ca8c6
Binary files /dev/null and b/companion/src/themes/monochrome/16/read_eeprom.png differ
diff --git a/companion/src/themes/monochrome/16/read_eeprom_file.png b/companion/src/themes/monochrome/16/read_eeprom_file.png
new file mode 100644
index 000000000..4f9b4eef7
Binary files /dev/null and b/companion/src/themes/monochrome/16/read_eeprom_file.png differ
diff --git a/companion/src/themes/monochrome/16/read_flash.png b/companion/src/themes/monochrome/16/read_flash.png
new file mode 100644
index 000000000..8a70d655e
Binary files /dev/null and b/companion/src/themes/monochrome/16/read_flash.png differ
diff --git a/companion/src/themes/monochrome/16/recentdocument.png b/companion/src/themes/monochrome/16/recentdocument.png
new file mode 100644
index 000000000..b7d7eb86b
Binary files /dev/null and b/companion/src/themes/monochrome/16/recentdocument.png differ
diff --git a/companion/src/themes/monochrome/16/save.png b/companion/src/themes/monochrome/16/save.png
new file mode 100644
index 000000000..728de38cd
Binary files /dev/null and b/companion/src/themes/monochrome/16/save.png differ
diff --git a/companion/src/themes/monochrome/16/saveas.png b/companion/src/themes/monochrome/16/saveas.png
new file mode 100644
index 000000000..71de2f887
Binary files /dev/null and b/companion/src/themes/monochrome/16/saveas.png differ
diff --git a/companion/src/themes/monochrome/16/simulate.png b/companion/src/themes/monochrome/16/simulate.png
new file mode 100644
index 000000000..6ae265ea6
Binary files /dev/null and b/companion/src/themes/monochrome/16/simulate.png differ
diff --git a/companion/src/themes/monochrome/16/stop.png b/companion/src/themes/monochrome/16/stop.png
new file mode 100644
index 000000000..3bf2af6e9
Binary files /dev/null and b/companion/src/themes/monochrome/16/stop.png differ
diff --git a/companion/src/themes/monochrome/16/switch_dir.png b/companion/src/themes/monochrome/16/switch_dir.png
new file mode 100644
index 000000000..fbbb2a841
Binary files /dev/null and b/companion/src/themes/monochrome/16/switch_dir.png differ
diff --git a/companion/src/themes/monochrome/16/update.png b/companion/src/themes/monochrome/16/update.png
new file mode 100644
index 000000000..31b90cf36
Binary files /dev/null and b/companion/src/themes/monochrome/16/update.png differ
diff --git a/companion/src/themes/monochrome/16/wizard.png b/companion/src/themes/monochrome/16/wizard.png
new file mode 100644
index 000000000..e047a1bf9
Binary files /dev/null and b/companion/src/themes/monochrome/16/wizard.png differ
diff --git a/companion/src/themes/monochrome/16/write_eeprom.png b/companion/src/themes/monochrome/16/write_eeprom.png
new file mode 100644
index 000000000..6ff3e7a42
Binary files /dev/null and b/companion/src/themes/monochrome/16/write_eeprom.png differ
diff --git a/companion/src/themes/monochrome/16/write_eeprom_file.png b/companion/src/themes/monochrome/16/write_eeprom_file.png
new file mode 100644
index 000000000..4c78f00c7
Binary files /dev/null and b/companion/src/themes/monochrome/16/write_eeprom_file.png differ
diff --git a/companion/src/themes/monochrome/16/write_flash.png b/companion/src/themes/monochrome/16/write_flash.png
new file mode 100644
index 000000000..91ae4ee62
Binary files /dev/null and b/companion/src/themes/monochrome/16/write_flash.png differ
diff --git a/companion/src/themes/monochrome/24/add.png b/companion/src/themes/monochrome/24/add.png
new file mode 100644
index 000000000..fc50fa563
Binary files /dev/null and b/companion/src/themes/monochrome/24/add.png differ
diff --git a/companion/src/themes/monochrome/24/arrow-left.png b/companion/src/themes/monochrome/24/arrow-left.png
new file mode 100644
index 000000000..3e93c4017
Binary files /dev/null and b/companion/src/themes/monochrome/24/arrow-left.png differ
diff --git a/companion/src/themes/monochrome/24/arrow-right.png b/companion/src/themes/monochrome/24/arrow-right.png
new file mode 100644
index 000000000..be45fe369
Binary files /dev/null and b/companion/src/themes/monochrome/24/arrow-right.png differ
diff --git a/companion/src/themes/monochrome/24/changelog.png b/companion/src/themes/monochrome/24/changelog.png
new file mode 100644
index 000000000..c0b9d00a0
Binary files /dev/null and b/companion/src/themes/monochrome/24/changelog.png differ
diff --git a/companion/src/themes/monochrome/24/clear.png b/companion/src/themes/monochrome/24/clear.png
new file mode 100644
index 000000000..e8eac19c2
Binary files /dev/null and b/companion/src/themes/monochrome/24/clear.png differ
diff --git a/companion/src/themes/monochrome/24/compare.png b/companion/src/themes/monochrome/24/compare.png
new file mode 100644
index 000000000..72aaf933c
Binary files /dev/null and b/companion/src/themes/monochrome/24/compare.png differ
diff --git a/companion/src/themes/monochrome/24/configure.png b/companion/src/themes/monochrome/24/configure.png
new file mode 100644
index 000000000..9d959229a
Binary files /dev/null and b/companion/src/themes/monochrome/24/configure.png differ
diff --git a/companion/src/themes/monochrome/24/contributors.png b/companion/src/themes/monochrome/24/contributors.png
new file mode 100644
index 000000000..57692d732
Binary files /dev/null and b/companion/src/themes/monochrome/24/contributors.png differ
diff --git a/companion/src/themes/monochrome/24/copy.png b/companion/src/themes/monochrome/24/copy.png
new file mode 100644
index 000000000..7aab0f96a
Binary files /dev/null and b/companion/src/themes/monochrome/24/copy.png differ
diff --git a/companion/src/themes/monochrome/24/currentmodel.png b/companion/src/themes/monochrome/24/currentmodel.png
new file mode 100644
index 000000000..4bb610c08
Binary files /dev/null and b/companion/src/themes/monochrome/24/currentmodel.png differ
diff --git a/companion/src/themes/monochrome/24/customize.png b/companion/src/themes/monochrome/24/customize.png
new file mode 100644
index 000000000..078d0af75
Binary files /dev/null and b/companion/src/themes/monochrome/24/customize.png differ
diff --git a/companion/src/themes/monochrome/24/cut.png b/companion/src/themes/monochrome/24/cut.png
new file mode 100644
index 000000000..1e5e3def3
Binary files /dev/null and b/companion/src/themes/monochrome/24/cut.png differ
diff --git a/companion/src/themes/monochrome/24/duplicate.png b/companion/src/themes/monochrome/24/duplicate.png
new file mode 100644
index 000000000..d2bdebf91
Binary files /dev/null and b/companion/src/themes/monochrome/24/duplicate.png differ
diff --git a/companion/src/themes/monochrome/24/edit.png b/companion/src/themes/monochrome/24/edit.png
new file mode 100644
index 000000000..4ea6a9d5d
Binary files /dev/null and b/companion/src/themes/monochrome/24/edit.png differ
diff --git a/companion/src/themes/monochrome/24/exit.png b/companion/src/themes/monochrome/24/exit.png
new file mode 100644
index 000000000..c59387463
Binary files /dev/null and b/companion/src/themes/monochrome/24/exit.png differ
diff --git a/companion/src/themes/monochrome/24/fuses.png b/companion/src/themes/monochrome/24/fuses.png
new file mode 100644
index 000000000..c73efbb28
Binary files /dev/null and b/companion/src/themes/monochrome/24/fuses.png differ
diff --git a/companion/src/themes/monochrome/24/information.png b/companion/src/themes/monochrome/24/information.png
new file mode 100644
index 000000000..92b5c038c
Binary files /dev/null and b/companion/src/themes/monochrome/24/information.png differ
diff --git a/companion/src/themes/monochrome/24/library.png b/companion/src/themes/monochrome/24/library.png
new file mode 100644
index 000000000..fd04c52d5
Binary files /dev/null and b/companion/src/themes/monochrome/24/library.png differ
diff --git a/companion/src/themes/monochrome/24/list.png b/companion/src/themes/monochrome/24/list.png
new file mode 100644
index 000000000..cb8b7d88d
Binary files /dev/null and b/companion/src/themes/monochrome/24/list.png differ
diff --git a/companion/src/themes/monochrome/24/logs.png b/companion/src/themes/monochrome/24/logs.png
new file mode 100644
index 000000000..228951a95
Binary files /dev/null and b/companion/src/themes/monochrome/24/logs.png differ
diff --git a/companion/src/themes/monochrome/24/movedown.png b/companion/src/themes/monochrome/24/movedown.png
new file mode 100644
index 000000000..1f8c99746
Binary files /dev/null and b/companion/src/themes/monochrome/24/movedown.png differ
diff --git a/companion/src/themes/monochrome/24/moveup.png b/companion/src/themes/monochrome/24/moveup.png
new file mode 100644
index 000000000..828dc5de2
Binary files /dev/null and b/companion/src/themes/monochrome/24/moveup.png differ
diff --git a/companion/src/themes/monochrome/24/new.png b/companion/src/themes/monochrome/24/new.png
new file mode 100644
index 000000000..7b834e6e8
Binary files /dev/null and b/companion/src/themes/monochrome/24/new.png differ
diff --git a/companion/src/themes/monochrome/24/open.png b/companion/src/themes/monochrome/24/open.png
new file mode 100644
index 000000000..9fc1f9441
Binary files /dev/null and b/companion/src/themes/monochrome/24/open.png differ
diff --git a/companion/src/themes/monochrome/24/paintbrush.png b/companion/src/themes/monochrome/24/paintbrush.png
new file mode 100644
index 000000000..98ae20c4a
Binary files /dev/null and b/companion/src/themes/monochrome/24/paintbrush.png differ
diff --git a/companion/src/themes/monochrome/24/paste.png b/companion/src/themes/monochrome/24/paste.png
new file mode 100644
index 000000000..849d6b790
Binary files /dev/null and b/companion/src/themes/monochrome/24/paste.png differ
diff --git a/companion/src/themes/monochrome/24/play.png b/companion/src/themes/monochrome/24/play.png
new file mode 100644
index 000000000..8501a8b58
Binary files /dev/null and b/companion/src/themes/monochrome/24/play.png differ
diff --git a/companion/src/themes/monochrome/24/preferences.png b/companion/src/themes/monochrome/24/preferences.png
new file mode 100644
index 000000000..ad6dfa543
Binary files /dev/null and b/companion/src/themes/monochrome/24/preferences.png differ
diff --git a/companion/src/themes/monochrome/24/print.png b/companion/src/themes/monochrome/24/print.png
new file mode 100644
index 000000000..ae11c5082
Binary files /dev/null and b/companion/src/themes/monochrome/24/print.png differ
diff --git a/companion/src/themes/monochrome/24/profiles.png b/companion/src/themes/monochrome/24/profiles.png
new file mode 100644
index 000000000..4725bef43
Binary files /dev/null and b/companion/src/themes/monochrome/24/profiles.png differ
diff --git a/companion/src/themes/monochrome/24/read_eeprom.png b/companion/src/themes/monochrome/24/read_eeprom.png
new file mode 100644
index 000000000..c701d1104
Binary files /dev/null and b/companion/src/themes/monochrome/24/read_eeprom.png differ
diff --git a/companion/src/themes/monochrome/24/read_eeprom_file.png b/companion/src/themes/monochrome/24/read_eeprom_file.png
new file mode 100644
index 000000000..4fa26bf07
Binary files /dev/null and b/companion/src/themes/monochrome/24/read_eeprom_file.png differ
diff --git a/companion/src/themes/monochrome/24/read_flash.png b/companion/src/themes/monochrome/24/read_flash.png
new file mode 100644
index 000000000..49c6312d4
Binary files /dev/null and b/companion/src/themes/monochrome/24/read_flash.png differ
diff --git a/companion/src/themes/monochrome/24/recentdocument.png b/companion/src/themes/monochrome/24/recentdocument.png
new file mode 100644
index 000000000..a69798ce1
Binary files /dev/null and b/companion/src/themes/monochrome/24/recentdocument.png differ
diff --git a/companion/src/themes/monochrome/24/save.png b/companion/src/themes/monochrome/24/save.png
new file mode 100644
index 000000000..a2c2cbb95
Binary files /dev/null and b/companion/src/themes/monochrome/24/save.png differ
diff --git a/companion/src/themes/monochrome/24/saveas.png b/companion/src/themes/monochrome/24/saveas.png
new file mode 100644
index 000000000..f18ad7783
Binary files /dev/null and b/companion/src/themes/monochrome/24/saveas.png differ
diff --git a/companion/src/themes/monochrome/24/simulate.png b/companion/src/themes/monochrome/24/simulate.png
new file mode 100644
index 000000000..b344c419a
Binary files /dev/null and b/companion/src/themes/monochrome/24/simulate.png differ
diff --git a/companion/src/themes/monochrome/24/stop.png b/companion/src/themes/monochrome/24/stop.png
new file mode 100644
index 000000000..3bf2af6e9
Binary files /dev/null and b/companion/src/themes/monochrome/24/stop.png differ
diff --git a/companion/src/themes/monochrome/24/switch_dir.png b/companion/src/themes/monochrome/24/switch_dir.png
new file mode 100644
index 000000000..8d6879e2f
Binary files /dev/null and b/companion/src/themes/monochrome/24/switch_dir.png differ
diff --git a/companion/src/themes/monochrome/24/update.png b/companion/src/themes/monochrome/24/update.png
new file mode 100644
index 000000000..9ed1124cc
Binary files /dev/null and b/companion/src/themes/monochrome/24/update.png differ
diff --git a/companion/src/themes/monochrome/24/wizard.png b/companion/src/themes/monochrome/24/wizard.png
new file mode 100644
index 000000000..6185d56c5
Binary files /dev/null and b/companion/src/themes/monochrome/24/wizard.png differ
diff --git a/companion/src/themes/monochrome/24/write_eeprom.png b/companion/src/themes/monochrome/24/write_eeprom.png
new file mode 100644
index 000000000..d6d540f5b
Binary files /dev/null and b/companion/src/themes/monochrome/24/write_eeprom.png differ
diff --git a/companion/src/themes/monochrome/24/write_eeprom_file.png b/companion/src/themes/monochrome/24/write_eeprom_file.png
new file mode 100644
index 000000000..7291a074c
Binary files /dev/null and b/companion/src/themes/monochrome/24/write_eeprom_file.png differ
diff --git a/companion/src/themes/monochrome/24/write_flash.png b/companion/src/themes/monochrome/24/write_flash.png
new file mode 100644
index 000000000..55305cd3d
Binary files /dev/null and b/companion/src/themes/monochrome/24/write_flash.png differ
diff --git a/companion/src/themes/monochrome/32/add.png b/companion/src/themes/monochrome/32/add.png
new file mode 100644
index 000000000..17697d5eb
Binary files /dev/null and b/companion/src/themes/monochrome/32/add.png differ
diff --git a/companion/src/themes/monochrome/32/arrow-left.png b/companion/src/themes/monochrome/32/arrow-left.png
new file mode 100644
index 000000000..9fb8a885d
Binary files /dev/null and b/companion/src/themes/monochrome/32/arrow-left.png differ
diff --git a/companion/src/themes/monochrome/32/arrow-right.png b/companion/src/themes/monochrome/32/arrow-right.png
new file mode 100644
index 000000000..ba8e1440d
Binary files /dev/null and b/companion/src/themes/monochrome/32/arrow-right.png differ
diff --git a/companion/src/themes/monochrome/32/changelog.png b/companion/src/themes/monochrome/32/changelog.png
new file mode 100644
index 000000000..2e97b00a0
Binary files /dev/null and b/companion/src/themes/monochrome/32/changelog.png differ
diff --git a/companion/src/themes/monochrome/32/clear.png b/companion/src/themes/monochrome/32/clear.png
new file mode 100644
index 000000000..345e70b62
Binary files /dev/null and b/companion/src/themes/monochrome/32/clear.png differ
diff --git a/companion/src/themes/monochrome/32/compare.png b/companion/src/themes/monochrome/32/compare.png
new file mode 100644
index 000000000..34e437850
Binary files /dev/null and b/companion/src/themes/monochrome/32/compare.png differ
diff --git a/companion/src/themes/monochrome/32/configure.png b/companion/src/themes/monochrome/32/configure.png
new file mode 100644
index 000000000..8be5e988f
Binary files /dev/null and b/companion/src/themes/monochrome/32/configure.png differ
diff --git a/companion/src/themes/monochrome/32/contributors.png b/companion/src/themes/monochrome/32/contributors.png
new file mode 100644
index 000000000..a51bc3c56
Binary files /dev/null and b/companion/src/themes/monochrome/32/contributors.png differ
diff --git a/companion/src/themes/monochrome/32/copy.png b/companion/src/themes/monochrome/32/copy.png
new file mode 100644
index 000000000..aae5f5302
Binary files /dev/null and b/companion/src/themes/monochrome/32/copy.png differ
diff --git a/companion/src/themes/monochrome/32/currentmodel.png b/companion/src/themes/monochrome/32/currentmodel.png
new file mode 100644
index 000000000..816752faf
Binary files /dev/null and b/companion/src/themes/monochrome/32/currentmodel.png differ
diff --git a/companion/src/themes/monochrome/32/customize.png b/companion/src/themes/monochrome/32/customize.png
new file mode 100644
index 000000000..078d0af75
Binary files /dev/null and b/companion/src/themes/monochrome/32/customize.png differ
diff --git a/companion/src/themes/monochrome/32/cut.png b/companion/src/themes/monochrome/32/cut.png
new file mode 100644
index 000000000..efbb2cd5d
Binary files /dev/null and b/companion/src/themes/monochrome/32/cut.png differ
diff --git a/companion/src/themes/monochrome/32/duplicate.png b/companion/src/themes/monochrome/32/duplicate.png
new file mode 100644
index 000000000..43041429c
Binary files /dev/null and b/companion/src/themes/monochrome/32/duplicate.png differ
diff --git a/companion/src/themes/monochrome/32/edit.png b/companion/src/themes/monochrome/32/edit.png
new file mode 100644
index 000000000..cebabbd9f
Binary files /dev/null and b/companion/src/themes/monochrome/32/edit.png differ
diff --git a/companion/src/themes/monochrome/32/exit.png b/companion/src/themes/monochrome/32/exit.png
new file mode 100644
index 000000000..8de0aade5
Binary files /dev/null and b/companion/src/themes/monochrome/32/exit.png differ
diff --git a/companion/src/themes/monochrome/32/fuses.png b/companion/src/themes/monochrome/32/fuses.png
new file mode 100644
index 000000000..fee85de8b
Binary files /dev/null and b/companion/src/themes/monochrome/32/fuses.png differ
diff --git a/companion/src/themes/monochrome/32/information.png b/companion/src/themes/monochrome/32/information.png
new file mode 100644
index 000000000..2e9c398f6
Binary files /dev/null and b/companion/src/themes/monochrome/32/information.png differ
diff --git a/companion/src/themes/monochrome/32/library.png b/companion/src/themes/monochrome/32/library.png
new file mode 100644
index 000000000..a3d112626
Binary files /dev/null and b/companion/src/themes/monochrome/32/library.png differ
diff --git a/companion/src/themes/monochrome/32/list.png b/companion/src/themes/monochrome/32/list.png
new file mode 100644
index 000000000..f94bafb12
Binary files /dev/null and b/companion/src/themes/monochrome/32/list.png differ
diff --git a/companion/src/themes/monochrome/32/logs.png b/companion/src/themes/monochrome/32/logs.png
new file mode 100644
index 000000000..f8f96b505
Binary files /dev/null and b/companion/src/themes/monochrome/32/logs.png differ
diff --git a/companion/src/themes/monochrome/32/movedown.png b/companion/src/themes/monochrome/32/movedown.png
new file mode 100644
index 000000000..0097679e1
Binary files /dev/null and b/companion/src/themes/monochrome/32/movedown.png differ
diff --git a/companion/src/themes/monochrome/32/moveup.png b/companion/src/themes/monochrome/32/moveup.png
new file mode 100644
index 000000000..ba68dcaa5
Binary files /dev/null and b/companion/src/themes/monochrome/32/moveup.png differ
diff --git a/companion/src/themes/monochrome/32/new.png b/companion/src/themes/monochrome/32/new.png
new file mode 100644
index 000000000..e9531c78a
Binary files /dev/null and b/companion/src/themes/monochrome/32/new.png differ
diff --git a/companion/src/themes/monochrome/32/open.png b/companion/src/themes/monochrome/32/open.png
new file mode 100644
index 000000000..6f437856c
Binary files /dev/null and b/companion/src/themes/monochrome/32/open.png differ
diff --git a/companion/src/themes/monochrome/32/paintbrush.png b/companion/src/themes/monochrome/32/paintbrush.png
new file mode 100644
index 000000000..34e25a170
Binary files /dev/null and b/companion/src/themes/monochrome/32/paintbrush.png differ
diff --git a/companion/src/themes/monochrome/32/paste.png b/companion/src/themes/monochrome/32/paste.png
new file mode 100644
index 000000000..33948a231
Binary files /dev/null and b/companion/src/themes/monochrome/32/paste.png differ
diff --git a/companion/src/themes/monochrome/32/play.png b/companion/src/themes/monochrome/32/play.png
new file mode 100644
index 000000000..8501a8b58
Binary files /dev/null and b/companion/src/themes/monochrome/32/play.png differ
diff --git a/companion/src/themes/monochrome/32/preferences.png b/companion/src/themes/monochrome/32/preferences.png
new file mode 100644
index 000000000..d2ba00eaa
Binary files /dev/null and b/companion/src/themes/monochrome/32/preferences.png differ
diff --git a/companion/src/themes/monochrome/32/print.png b/companion/src/themes/monochrome/32/print.png
new file mode 100644
index 000000000..1495a1eac
Binary files /dev/null and b/companion/src/themes/monochrome/32/print.png differ
diff --git a/companion/src/themes/monochrome/32/profiles.png b/companion/src/themes/monochrome/32/profiles.png
new file mode 100644
index 000000000..0d5c86a47
Binary files /dev/null and b/companion/src/themes/monochrome/32/profiles.png differ
diff --git a/companion/src/themes/monochrome/32/read_eeprom.png b/companion/src/themes/monochrome/32/read_eeprom.png
new file mode 100644
index 000000000..46a4dfd50
Binary files /dev/null and b/companion/src/themes/monochrome/32/read_eeprom.png differ
diff --git a/companion/src/themes/monochrome/32/read_eeprom_file.png b/companion/src/themes/monochrome/32/read_eeprom_file.png
new file mode 100644
index 000000000..fd6479993
Binary files /dev/null and b/companion/src/themes/monochrome/32/read_eeprom_file.png differ
diff --git a/companion/src/themes/monochrome/32/read_flash.png b/companion/src/themes/monochrome/32/read_flash.png
new file mode 100644
index 000000000..546400894
Binary files /dev/null and b/companion/src/themes/monochrome/32/read_flash.png differ
diff --git a/companion/src/themes/monochrome/32/recentdocument.png b/companion/src/themes/monochrome/32/recentdocument.png
new file mode 100644
index 000000000..1dfbadb5d
Binary files /dev/null and b/companion/src/themes/monochrome/32/recentdocument.png differ
diff --git a/companion/src/themes/monochrome/32/save.png b/companion/src/themes/monochrome/32/save.png
new file mode 100644
index 000000000..6466d6528
Binary files /dev/null and b/companion/src/themes/monochrome/32/save.png differ
diff --git a/companion/src/themes/monochrome/32/saveas.png b/companion/src/themes/monochrome/32/saveas.png
new file mode 100644
index 000000000..9cc2a72ef
Binary files /dev/null and b/companion/src/themes/monochrome/32/saveas.png differ
diff --git a/companion/src/themes/monochrome/32/simulate.png b/companion/src/themes/monochrome/32/simulate.png
new file mode 100644
index 000000000..a7020777f
Binary files /dev/null and b/companion/src/themes/monochrome/32/simulate.png differ
diff --git a/companion/src/themes/monochrome/32/stop.png b/companion/src/themes/monochrome/32/stop.png
new file mode 100644
index 000000000..3bf2af6e9
Binary files /dev/null and b/companion/src/themes/monochrome/32/stop.png differ
diff --git a/companion/src/themes/monochrome/32/switch_dir.png b/companion/src/themes/monochrome/32/switch_dir.png
new file mode 100644
index 000000000..36253c57e
Binary files /dev/null and b/companion/src/themes/monochrome/32/switch_dir.png differ
diff --git a/companion/src/themes/monochrome/32/update.png b/companion/src/themes/monochrome/32/update.png
new file mode 100644
index 000000000..be4c746b0
Binary files /dev/null and b/companion/src/themes/monochrome/32/update.png differ
diff --git a/companion/src/themes/monochrome/32/wizard.png b/companion/src/themes/monochrome/32/wizard.png
new file mode 100644
index 000000000..edd01da61
Binary files /dev/null and b/companion/src/themes/monochrome/32/wizard.png differ
diff --git a/companion/src/themes/monochrome/32/write_eeprom.png b/companion/src/themes/monochrome/32/write_eeprom.png
new file mode 100644
index 000000000..deeec3b48
Binary files /dev/null and b/companion/src/themes/monochrome/32/write_eeprom.png differ
diff --git a/companion/src/themes/monochrome/32/write_eeprom_file.png b/companion/src/themes/monochrome/32/write_eeprom_file.png
new file mode 100644
index 000000000..925fecf47
Binary files /dev/null and b/companion/src/themes/monochrome/32/write_eeprom_file.png differ
diff --git a/companion/src/themes/monochrome/32/write_flash.png b/companion/src/themes/monochrome/32/write_flash.png
new file mode 100644
index 000000000..e5943a509
Binary files /dev/null and b/companion/src/themes/monochrome/32/write_flash.png differ
diff --git a/companion/src/themes/monochrome/48/add.png b/companion/src/themes/monochrome/48/add.png
new file mode 100644
index 000000000..023cdc45d
Binary files /dev/null and b/companion/src/themes/monochrome/48/add.png differ
diff --git a/companion/src/themes/monochrome/48/arrow-left.png b/companion/src/themes/monochrome/48/arrow-left.png
new file mode 100644
index 000000000..c48e48c8e
Binary files /dev/null and b/companion/src/themes/monochrome/48/arrow-left.png differ
diff --git a/companion/src/themes/monochrome/48/arrow-right.png b/companion/src/themes/monochrome/48/arrow-right.png
new file mode 100644
index 000000000..5264359aa
Binary files /dev/null and b/companion/src/themes/monochrome/48/arrow-right.png differ
diff --git a/companion/src/themes/monochrome/48/changelog.png b/companion/src/themes/monochrome/48/changelog.png
new file mode 100644
index 000000000..28d60390d
Binary files /dev/null and b/companion/src/themes/monochrome/48/changelog.png differ
diff --git a/companion/src/themes/monochrome/48/clear.png b/companion/src/themes/monochrome/48/clear.png
new file mode 100644
index 000000000..881bd0353
Binary files /dev/null and b/companion/src/themes/monochrome/48/clear.png differ
diff --git a/companion/src/themes/monochrome/48/compare.png b/companion/src/themes/monochrome/48/compare.png
new file mode 100644
index 000000000..993f6cf3f
Binary files /dev/null and b/companion/src/themes/monochrome/48/compare.png differ
diff --git a/companion/src/themes/monochrome/48/configure.png b/companion/src/themes/monochrome/48/configure.png
new file mode 100644
index 000000000..fc799d600
Binary files /dev/null and b/companion/src/themes/monochrome/48/configure.png differ
diff --git a/companion/src/themes/monochrome/48/contributors.png b/companion/src/themes/monochrome/48/contributors.png
new file mode 100644
index 000000000..5c14d9e6b
Binary files /dev/null and b/companion/src/themes/monochrome/48/contributors.png differ
diff --git a/companion/src/themes/monochrome/48/copy.png b/companion/src/themes/monochrome/48/copy.png
new file mode 100644
index 000000000..71cd70edc
Binary files /dev/null and b/companion/src/themes/monochrome/48/copy.png differ
diff --git a/companion/src/themes/monochrome/48/currentmodel.png b/companion/src/themes/monochrome/48/currentmodel.png
new file mode 100644
index 000000000..d316a2b7b
Binary files /dev/null and b/companion/src/themes/monochrome/48/currentmodel.png differ
diff --git a/companion/src/themes/monochrome/48/customize.png b/companion/src/themes/monochrome/48/customize.png
new file mode 100644
index 000000000..078d0af75
Binary files /dev/null and b/companion/src/themes/monochrome/48/customize.png differ
diff --git a/companion/src/themes/monochrome/48/cut.png b/companion/src/themes/monochrome/48/cut.png
new file mode 100644
index 000000000..765a1b82c
Binary files /dev/null and b/companion/src/themes/monochrome/48/cut.png differ
diff --git a/companion/src/themes/monochrome/48/duplicate.png b/companion/src/themes/monochrome/48/duplicate.png
new file mode 100644
index 000000000..0fa780134
Binary files /dev/null and b/companion/src/themes/monochrome/48/duplicate.png differ
diff --git a/companion/src/themes/monochrome/48/edit.png b/companion/src/themes/monochrome/48/edit.png
new file mode 100644
index 000000000..41975a687
Binary files /dev/null and b/companion/src/themes/monochrome/48/edit.png differ
diff --git a/companion/src/themes/monochrome/48/exit.png b/companion/src/themes/monochrome/48/exit.png
new file mode 100644
index 000000000..45707ae3e
Binary files /dev/null and b/companion/src/themes/monochrome/48/exit.png differ
diff --git a/companion/src/themes/monochrome/48/fuses.png b/companion/src/themes/monochrome/48/fuses.png
new file mode 100644
index 000000000..b239abd99
Binary files /dev/null and b/companion/src/themes/monochrome/48/fuses.png differ
diff --git a/companion/src/themes/monochrome/48/information.png b/companion/src/themes/monochrome/48/information.png
new file mode 100644
index 000000000..4c4bea488
Binary files /dev/null and b/companion/src/themes/monochrome/48/information.png differ
diff --git a/companion/src/themes/monochrome/48/library.png b/companion/src/themes/monochrome/48/library.png
new file mode 100644
index 000000000..9a8e06146
Binary files /dev/null and b/companion/src/themes/monochrome/48/library.png differ
diff --git a/companion/src/themes/monochrome/48/list.png b/companion/src/themes/monochrome/48/list.png
new file mode 100644
index 000000000..7c0f3b575
Binary files /dev/null and b/companion/src/themes/monochrome/48/list.png differ
diff --git a/companion/src/themes/monochrome/48/logs.png b/companion/src/themes/monochrome/48/logs.png
new file mode 100644
index 000000000..0817b2f88
Binary files /dev/null and b/companion/src/themes/monochrome/48/logs.png differ
diff --git a/companion/src/themes/monochrome/48/movedown.png b/companion/src/themes/monochrome/48/movedown.png
new file mode 100644
index 000000000..9200c09c9
Binary files /dev/null and b/companion/src/themes/monochrome/48/movedown.png differ
diff --git a/companion/src/themes/monochrome/48/moveup.png b/companion/src/themes/monochrome/48/moveup.png
new file mode 100644
index 000000000..eff5c6e8b
Binary files /dev/null and b/companion/src/themes/monochrome/48/moveup.png differ
diff --git a/companion/src/themes/monochrome/48/new.png b/companion/src/themes/monochrome/48/new.png
new file mode 100644
index 000000000..b4a0993ef
Binary files /dev/null and b/companion/src/themes/monochrome/48/new.png differ
diff --git a/companion/src/themes/monochrome/48/open.png b/companion/src/themes/monochrome/48/open.png
new file mode 100644
index 000000000..5a151c74d
Binary files /dev/null and b/companion/src/themes/monochrome/48/open.png differ
diff --git a/companion/src/themes/monochrome/48/paintbrush.png b/companion/src/themes/monochrome/48/paintbrush.png
new file mode 100644
index 000000000..cc15507e6
Binary files /dev/null and b/companion/src/themes/monochrome/48/paintbrush.png differ
diff --git a/companion/src/themes/monochrome/48/paste.png b/companion/src/themes/monochrome/48/paste.png
new file mode 100644
index 000000000..377ace021
Binary files /dev/null and b/companion/src/themes/monochrome/48/paste.png differ
diff --git a/companion/src/themes/monochrome/48/play.png b/companion/src/themes/monochrome/48/play.png
new file mode 100644
index 000000000..8501a8b58
Binary files /dev/null and b/companion/src/themes/monochrome/48/play.png differ
diff --git a/companion/src/themes/monochrome/48/preferences.png b/companion/src/themes/monochrome/48/preferences.png
new file mode 100644
index 000000000..8f1199953
Binary files /dev/null and b/companion/src/themes/monochrome/48/preferences.png differ
diff --git a/companion/src/themes/monochrome/48/print.png b/companion/src/themes/monochrome/48/print.png
new file mode 100644
index 000000000..c830db3ea
Binary files /dev/null and b/companion/src/themes/monochrome/48/print.png differ
diff --git a/companion/src/themes/monochrome/48/profiles.png b/companion/src/themes/monochrome/48/profiles.png
new file mode 100644
index 000000000..0489ffaa6
Binary files /dev/null and b/companion/src/themes/monochrome/48/profiles.png differ
diff --git a/companion/src/themes/monochrome/48/read_eeprom.png b/companion/src/themes/monochrome/48/read_eeprom.png
new file mode 100644
index 000000000..c5d3a1167
Binary files /dev/null and b/companion/src/themes/monochrome/48/read_eeprom.png differ
diff --git a/companion/src/themes/monochrome/48/read_eeprom_file.png b/companion/src/themes/monochrome/48/read_eeprom_file.png
new file mode 100644
index 000000000..48396fbfe
Binary files /dev/null and b/companion/src/themes/monochrome/48/read_eeprom_file.png differ
diff --git a/companion/src/themes/monochrome/48/read_flash.png b/companion/src/themes/monochrome/48/read_flash.png
new file mode 100644
index 000000000..356a6f9ad
Binary files /dev/null and b/companion/src/themes/monochrome/48/read_flash.png differ
diff --git a/companion/src/themes/monochrome/48/recentdocument.png b/companion/src/themes/monochrome/48/recentdocument.png
new file mode 100644
index 000000000..aed0796fe
Binary files /dev/null and b/companion/src/themes/monochrome/48/recentdocument.png differ
diff --git a/companion/src/themes/monochrome/48/save.png b/companion/src/themes/monochrome/48/save.png
new file mode 100644
index 000000000..0b9663106
Binary files /dev/null and b/companion/src/themes/monochrome/48/save.png differ
diff --git a/companion/src/themes/monochrome/48/saveas.png b/companion/src/themes/monochrome/48/saveas.png
new file mode 100644
index 000000000..496e95e6c
Binary files /dev/null and b/companion/src/themes/monochrome/48/saveas.png differ
diff --git a/companion/src/themes/monochrome/48/simulate.png b/companion/src/themes/monochrome/48/simulate.png
new file mode 100644
index 000000000..7c05d5604
Binary files /dev/null and b/companion/src/themes/monochrome/48/simulate.png differ
diff --git a/companion/src/themes/monochrome/48/stop.png b/companion/src/themes/monochrome/48/stop.png
new file mode 100644
index 000000000..3bf2af6e9
Binary files /dev/null and b/companion/src/themes/monochrome/48/stop.png differ
diff --git a/companion/src/themes/monochrome/48/switch_dir.png b/companion/src/themes/monochrome/48/switch_dir.png
new file mode 100644
index 000000000..1039325c4
Binary files /dev/null and b/companion/src/themes/monochrome/48/switch_dir.png differ
diff --git a/companion/src/themes/monochrome/48/update.png b/companion/src/themes/monochrome/48/update.png
new file mode 100644
index 000000000..6128f49d7
Binary files /dev/null and b/companion/src/themes/monochrome/48/update.png differ
diff --git a/companion/src/themes/monochrome/48/wizard.png b/companion/src/themes/monochrome/48/wizard.png
new file mode 100644
index 000000000..4d1a67729
Binary files /dev/null and b/companion/src/themes/monochrome/48/wizard.png differ
diff --git a/companion/src/themes/monochrome/48/write_eeprom.png b/companion/src/themes/monochrome/48/write_eeprom.png
new file mode 100644
index 000000000..0318d748a
Binary files /dev/null and b/companion/src/themes/monochrome/48/write_eeprom.png differ
diff --git a/companion/src/themes/monochrome/48/write_eeprom_file.png b/companion/src/themes/monochrome/48/write_eeprom_file.png
new file mode 100644
index 000000000..2d9d43eaa
Binary files /dev/null and b/companion/src/themes/monochrome/48/write_eeprom_file.png differ
diff --git a/companion/src/themes/monochrome/48/write_flash.png b/companion/src/themes/monochrome/48/write_flash.png
new file mode 100644
index 000000000..d20eb763a
Binary files /dev/null and b/companion/src/themes/monochrome/48/write_flash.png differ
diff --git a/companion/src/themes/monochrome/add.png b/companion/src/themes/monochrome/add.png
new file mode 100644
index 000000000..17697d5eb
Binary files /dev/null and b/companion/src/themes/monochrome/add.png differ
diff --git a/companion/src/themes/monochrome/arrow-left.png b/companion/src/themes/monochrome/arrow-left.png
new file mode 100644
index 000000000..9fb8a885d
Binary files /dev/null and b/companion/src/themes/monochrome/arrow-left.png differ
diff --git a/companion/src/themes/monochrome/arrow-right.png b/companion/src/themes/monochrome/arrow-right.png
new file mode 100644
index 000000000..ba8e1440d
Binary files /dev/null and b/companion/src/themes/monochrome/arrow-right.png differ
diff --git a/companion/src/themes/monochrome/changelog.png b/companion/src/themes/monochrome/changelog.png
new file mode 100644
index 000000000..2e97b00a0
Binary files /dev/null and b/companion/src/themes/monochrome/changelog.png differ
diff --git a/companion/src/themes/monochrome/clear.png b/companion/src/themes/monochrome/clear.png
new file mode 100644
index 000000000..345e70b62
Binary files /dev/null and b/companion/src/themes/monochrome/clear.png differ
diff --git a/companion/src/themes/monochrome/compare.png b/companion/src/themes/monochrome/compare.png
new file mode 100644
index 000000000..34e437850
Binary files /dev/null and b/companion/src/themes/monochrome/compare.png differ
diff --git a/companion/src/themes/monochrome/configure.png b/companion/src/themes/monochrome/configure.png
new file mode 100644
index 000000000..8be5e988f
Binary files /dev/null and b/companion/src/themes/monochrome/configure.png differ
diff --git a/companion/src/themes/monochrome/contributors.png b/companion/src/themes/monochrome/contributors.png
new file mode 100644
index 000000000..a51bc3c56
Binary files /dev/null and b/companion/src/themes/monochrome/contributors.png differ
diff --git a/companion/src/themes/monochrome/copy.png b/companion/src/themes/monochrome/copy.png
new file mode 100644
index 000000000..aae5f5302
Binary files /dev/null and b/companion/src/themes/monochrome/copy.png differ
diff --git a/companion/src/themes/monochrome/currentmodel.png b/companion/src/themes/monochrome/currentmodel.png
new file mode 100644
index 000000000..816752faf
Binary files /dev/null and b/companion/src/themes/monochrome/currentmodel.png differ
diff --git a/companion/src/themes/monochrome/cut.png b/companion/src/themes/monochrome/cut.png
new file mode 100644
index 000000000..efbb2cd5d
Binary files /dev/null and b/companion/src/themes/monochrome/cut.png differ
diff --git a/companion/src/themes/monochrome/duplicate.png b/companion/src/themes/monochrome/duplicate.png
new file mode 100644
index 000000000..43041429c
Binary files /dev/null and b/companion/src/themes/monochrome/duplicate.png differ
diff --git a/companion/src/themes/monochrome/edit.png b/companion/src/themes/monochrome/edit.png
new file mode 100644
index 000000000..cebabbd9f
Binary files /dev/null and b/companion/src/themes/monochrome/edit.png differ
diff --git a/companion/src/themes/monochrome/exit.png b/companion/src/themes/monochrome/exit.png
new file mode 100644
index 000000000..8de0aade5
Binary files /dev/null and b/companion/src/themes/monochrome/exit.png differ
diff --git a/companion/src/themes/monochrome/fuses.png b/companion/src/themes/monochrome/fuses.png
new file mode 100644
index 000000000..fee85de8b
Binary files /dev/null and b/companion/src/themes/monochrome/fuses.png differ
diff --git a/companion/src/themes/monochrome/information.png b/companion/src/themes/monochrome/information.png
new file mode 100644
index 000000000..2e9c398f6
Binary files /dev/null and b/companion/src/themes/monochrome/information.png differ
diff --git a/companion/src/themes/monochrome/library.png b/companion/src/themes/monochrome/library.png
new file mode 100644
index 000000000..a3d112626
Binary files /dev/null and b/companion/src/themes/monochrome/library.png differ
diff --git a/companion/src/themes/monochrome/list.png b/companion/src/themes/monochrome/list.png
new file mode 100644
index 000000000..f94bafb12
Binary files /dev/null and b/companion/src/themes/monochrome/list.png differ
diff --git a/companion/src/themes/monochrome/logs.png b/companion/src/themes/monochrome/logs.png
new file mode 100644
index 000000000..f8f96b505
Binary files /dev/null and b/companion/src/themes/monochrome/logs.png differ
diff --git a/companion/src/themes/monochrome/movedown.png b/companion/src/themes/monochrome/movedown.png
new file mode 100644
index 000000000..0097679e1
Binary files /dev/null and b/companion/src/themes/monochrome/movedown.png differ
diff --git a/companion/src/themes/monochrome/moveup.png b/companion/src/themes/monochrome/moveup.png
new file mode 100644
index 000000000..ba68dcaa5
Binary files /dev/null and b/companion/src/themes/monochrome/moveup.png differ
diff --git a/companion/src/themes/monochrome/new.png b/companion/src/themes/monochrome/new.png
new file mode 100644
index 000000000..e9531c78a
Binary files /dev/null and b/companion/src/themes/monochrome/new.png differ
diff --git a/companion/src/themes/monochrome/open.png b/companion/src/themes/monochrome/open.png
new file mode 100644
index 000000000..6f437856c
Binary files /dev/null and b/companion/src/themes/monochrome/open.png differ
diff --git a/companion/src/themes/monochrome/paintbrush.png b/companion/src/themes/monochrome/paintbrush.png
new file mode 100644
index 000000000..34e25a170
Binary files /dev/null and b/companion/src/themes/monochrome/paintbrush.png differ
diff --git a/companion/src/themes/monochrome/paste.png b/companion/src/themes/monochrome/paste.png
new file mode 100644
index 000000000..33948a231
Binary files /dev/null and b/companion/src/themes/monochrome/paste.png differ
diff --git a/companion/src/themes/monochrome/play.png b/companion/src/themes/monochrome/play.png
new file mode 100644
index 000000000..8501a8b58
Binary files /dev/null and b/companion/src/themes/monochrome/play.png differ
diff --git a/companion/src/themes/monochrome/preferences.png b/companion/src/themes/monochrome/preferences.png
new file mode 100644
index 000000000..d2ba00eaa
Binary files /dev/null and b/companion/src/themes/monochrome/preferences.png differ
diff --git a/companion/src/themes/monochrome/print.png b/companion/src/themes/monochrome/print.png
new file mode 100644
index 000000000..1495a1eac
Binary files /dev/null and b/companion/src/themes/monochrome/print.png differ
diff --git a/companion/src/themes/monochrome/profiles.png b/companion/src/themes/monochrome/profiles.png
new file mode 100644
index 000000000..0d5c86a47
Binary files /dev/null and b/companion/src/themes/monochrome/profiles.png differ
diff --git a/companion/src/themes/monochrome/read_eeprom.png b/companion/src/themes/monochrome/read_eeprom.png
new file mode 100644
index 000000000..46a4dfd50
Binary files /dev/null and b/companion/src/themes/monochrome/read_eeprom.png differ
diff --git a/companion/src/themes/monochrome/read_eeprom_file.png b/companion/src/themes/monochrome/read_eeprom_file.png
new file mode 100644
index 000000000..fd6479993
Binary files /dev/null and b/companion/src/themes/monochrome/read_eeprom_file.png differ
diff --git a/companion/src/themes/monochrome/read_flash.png b/companion/src/themes/monochrome/read_flash.png
new file mode 100644
index 000000000..546400894
Binary files /dev/null and b/companion/src/themes/monochrome/read_flash.png differ
diff --git a/companion/src/themes/monochrome/recentdocument.png b/companion/src/themes/monochrome/recentdocument.png
new file mode 100644
index 000000000..1dfbadb5d
Binary files /dev/null and b/companion/src/themes/monochrome/recentdocument.png differ
diff --git a/companion/src/themes/monochrome/save.png b/companion/src/themes/monochrome/save.png
new file mode 100644
index 000000000..6466d6528
Binary files /dev/null and b/companion/src/themes/monochrome/save.png differ
diff --git a/companion/src/themes/monochrome/saveas.png b/companion/src/themes/monochrome/saveas.png
new file mode 100644
index 000000000..9cc2a72ef
Binary files /dev/null and b/companion/src/themes/monochrome/saveas.png differ
diff --git a/companion/src/themes/monochrome/simulate.png b/companion/src/themes/monochrome/simulate.png
new file mode 100644
index 000000000..a7020777f
Binary files /dev/null and b/companion/src/themes/monochrome/simulate.png differ
diff --git a/companion/src/themes/monochrome/stop.png b/companion/src/themes/monochrome/stop.png
new file mode 100644
index 000000000..3bf2af6e9
Binary files /dev/null and b/companion/src/themes/monochrome/stop.png differ
diff --git a/companion/src/themes/monochrome/switch_dir.png b/companion/src/themes/monochrome/switch_dir.png
new file mode 100644
index 000000000..36253c57e
Binary files /dev/null and b/companion/src/themes/monochrome/switch_dir.png differ
diff --git a/companion/src/themes/monochrome/update.png b/companion/src/themes/monochrome/update.png
new file mode 100644
index 000000000..be4c746b0
Binary files /dev/null and b/companion/src/themes/monochrome/update.png differ
diff --git a/companion/src/themes/monochrome/wizard.png b/companion/src/themes/monochrome/wizard.png
new file mode 100644
index 000000000..edd01da61
Binary files /dev/null and b/companion/src/themes/monochrome/wizard.png differ
diff --git a/companion/src/themes/monochrome/write_eeprom.png b/companion/src/themes/monochrome/write_eeprom.png
new file mode 100644
index 000000000..deeec3b48
Binary files /dev/null and b/companion/src/themes/monochrome/write_eeprom.png differ
diff --git a/companion/src/themes/monochrome/write_eeprom_file.png b/companion/src/themes/monochrome/write_eeprom_file.png
new file mode 100644
index 000000000..925fecf47
Binary files /dev/null and b/companion/src/themes/monochrome/write_eeprom_file.png differ
diff --git a/companion/src/themes/monochrome/write_flash.png b/companion/src/themes/monochrome/write_flash.png
new file mode 100644
index 000000000..e5943a509
Binary files /dev/null and b/companion/src/themes/monochrome/write_flash.png differ
diff --git a/companion/src/themes/monowhite/16/add.png b/companion/src/themes/monowhite/16/add.png
new file mode 100644
index 000000000..c6d052b9c
Binary files /dev/null and b/companion/src/themes/monowhite/16/add.png differ
diff --git a/companion/src/themes/monowhite/16/arrow-left.png b/companion/src/themes/monowhite/16/arrow-left.png
new file mode 100644
index 000000000..fc59e09a6
Binary files /dev/null and b/companion/src/themes/monowhite/16/arrow-left.png differ
diff --git a/companion/src/themes/monowhite/16/arrow-right.png b/companion/src/themes/monowhite/16/arrow-right.png
new file mode 100644
index 000000000..9d6585951
Binary files /dev/null and b/companion/src/themes/monowhite/16/arrow-right.png differ
diff --git a/companion/src/themes/monowhite/16/changelog.png b/companion/src/themes/monowhite/16/changelog.png
new file mode 100644
index 000000000..d9ecbad27
Binary files /dev/null and b/companion/src/themes/monowhite/16/changelog.png differ
diff --git a/companion/src/themes/monowhite/16/clear.png b/companion/src/themes/monowhite/16/clear.png
new file mode 100644
index 000000000..db9f95920
Binary files /dev/null and b/companion/src/themes/monowhite/16/clear.png differ
diff --git a/companion/src/themes/monowhite/16/compare.png b/companion/src/themes/monowhite/16/compare.png
new file mode 100644
index 000000000..8b6008c8d
Binary files /dev/null and b/companion/src/themes/monowhite/16/compare.png differ
diff --git a/companion/src/themes/monowhite/16/configure.png b/companion/src/themes/monowhite/16/configure.png
new file mode 100644
index 000000000..ddbef9d85
Binary files /dev/null and b/companion/src/themes/monowhite/16/configure.png differ
diff --git a/companion/src/themes/monowhite/16/contributors.png b/companion/src/themes/monowhite/16/contributors.png
new file mode 100644
index 000000000..f4aaa352e
Binary files /dev/null and b/companion/src/themes/monowhite/16/contributors.png differ
diff --git a/companion/src/themes/monowhite/16/copy.png b/companion/src/themes/monowhite/16/copy.png
new file mode 100644
index 000000000..fe1d3d67d
Binary files /dev/null and b/companion/src/themes/monowhite/16/copy.png differ
diff --git a/companion/src/themes/monowhite/16/currentmodel.png b/companion/src/themes/monowhite/16/currentmodel.png
new file mode 100644
index 000000000..73fe58665
Binary files /dev/null and b/companion/src/themes/monowhite/16/currentmodel.png differ
diff --git a/companion/src/themes/monowhite/16/customize.png b/companion/src/themes/monowhite/16/customize.png
new file mode 100644
index 000000000..1382ed169
Binary files /dev/null and b/companion/src/themes/monowhite/16/customize.png differ
diff --git a/companion/src/themes/monowhite/16/cut.png b/companion/src/themes/monowhite/16/cut.png
new file mode 100644
index 000000000..771f58973
Binary files /dev/null and b/companion/src/themes/monowhite/16/cut.png differ
diff --git a/companion/src/themes/monowhite/16/duplicate.png b/companion/src/themes/monowhite/16/duplicate.png
new file mode 100644
index 000000000..613620f8a
Binary files /dev/null and b/companion/src/themes/monowhite/16/duplicate.png differ
diff --git a/companion/src/themes/monowhite/16/edit.png b/companion/src/themes/monowhite/16/edit.png
new file mode 100644
index 000000000..0b37d95a1
Binary files /dev/null and b/companion/src/themes/monowhite/16/edit.png differ
diff --git a/companion/src/themes/monowhite/16/exit.png b/companion/src/themes/monowhite/16/exit.png
new file mode 100644
index 000000000..ce5012efb
Binary files /dev/null and b/companion/src/themes/monowhite/16/exit.png differ
diff --git a/companion/src/themes/monowhite/16/fuses.png b/companion/src/themes/monowhite/16/fuses.png
new file mode 100644
index 000000000..014d20831
Binary files /dev/null and b/companion/src/themes/monowhite/16/fuses.png differ
diff --git a/companion/src/themes/monowhite/16/information.png b/companion/src/themes/monowhite/16/information.png
new file mode 100644
index 000000000..abfa63963
Binary files /dev/null and b/companion/src/themes/monowhite/16/information.png differ
diff --git a/companion/src/themes/monowhite/16/library.png b/companion/src/themes/monowhite/16/library.png
new file mode 100644
index 000000000..bdaf1e809
Binary files /dev/null and b/companion/src/themes/monowhite/16/library.png differ
diff --git a/companion/src/themes/monowhite/16/list.png b/companion/src/themes/monowhite/16/list.png
new file mode 100644
index 000000000..647d4b8eb
Binary files /dev/null and b/companion/src/themes/monowhite/16/list.png differ
diff --git a/companion/src/themes/monowhite/16/logs.png b/companion/src/themes/monowhite/16/logs.png
new file mode 100644
index 000000000..15a7ec01a
Binary files /dev/null and b/companion/src/themes/monowhite/16/logs.png differ
diff --git a/companion/src/themes/monowhite/16/movedown.png b/companion/src/themes/monowhite/16/movedown.png
new file mode 100644
index 000000000..b6e046183
Binary files /dev/null and b/companion/src/themes/monowhite/16/movedown.png differ
diff --git a/companion/src/themes/monowhite/16/moveup.png b/companion/src/themes/monowhite/16/moveup.png
new file mode 100644
index 000000000..22debbc13
Binary files /dev/null and b/companion/src/themes/monowhite/16/moveup.png differ
diff --git a/companion/src/themes/monowhite/16/new.png b/companion/src/themes/monowhite/16/new.png
new file mode 100644
index 000000000..fad723600
Binary files /dev/null and b/companion/src/themes/monowhite/16/new.png differ
diff --git a/companion/src/themes/monowhite/16/open.png b/companion/src/themes/monowhite/16/open.png
new file mode 100644
index 000000000..8ef3df891
Binary files /dev/null and b/companion/src/themes/monowhite/16/open.png differ
diff --git a/companion/src/themes/monowhite/16/paintbrush.png b/companion/src/themes/monowhite/16/paintbrush.png
new file mode 100644
index 000000000..5cd7832e6
Binary files /dev/null and b/companion/src/themes/monowhite/16/paintbrush.png differ
diff --git a/companion/src/themes/monowhite/16/paste.png b/companion/src/themes/monowhite/16/paste.png
new file mode 100644
index 000000000..52ec45a6c
Binary files /dev/null and b/companion/src/themes/monowhite/16/paste.png differ
diff --git a/companion/src/themes/monowhite/16/play.png b/companion/src/themes/monowhite/16/play.png
new file mode 100644
index 000000000..2df15672f
Binary files /dev/null and b/companion/src/themes/monowhite/16/play.png differ
diff --git a/companion/src/themes/monowhite/16/preferences.png b/companion/src/themes/monowhite/16/preferences.png
new file mode 100644
index 000000000..4d4ed1457
Binary files /dev/null and b/companion/src/themes/monowhite/16/preferences.png differ
diff --git a/companion/src/themes/monowhite/16/print.png b/companion/src/themes/monowhite/16/print.png
new file mode 100644
index 000000000..8287ed5c3
Binary files /dev/null and b/companion/src/themes/monowhite/16/print.png differ
diff --git a/companion/src/themes/monowhite/16/profiles.png b/companion/src/themes/monowhite/16/profiles.png
new file mode 100644
index 000000000..d006099c0
Binary files /dev/null and b/companion/src/themes/monowhite/16/profiles.png differ
diff --git a/companion/src/themes/monowhite/16/read_eeprom.png b/companion/src/themes/monowhite/16/read_eeprom.png
new file mode 100644
index 000000000..c3910d3a8
Binary files /dev/null and b/companion/src/themes/monowhite/16/read_eeprom.png differ
diff --git a/companion/src/themes/monowhite/16/read_eeprom_file.png b/companion/src/themes/monowhite/16/read_eeprom_file.png
new file mode 100644
index 000000000..051991f05
Binary files /dev/null and b/companion/src/themes/monowhite/16/read_eeprom_file.png differ
diff --git a/companion/src/themes/monowhite/16/read_flash.png b/companion/src/themes/monowhite/16/read_flash.png
new file mode 100644
index 000000000..e9c446ca6
Binary files /dev/null and b/companion/src/themes/monowhite/16/read_flash.png differ
diff --git a/companion/src/themes/monowhite/16/recentdocument.png b/companion/src/themes/monowhite/16/recentdocument.png
new file mode 100644
index 000000000..fa346fe2a
Binary files /dev/null and b/companion/src/themes/monowhite/16/recentdocument.png differ
diff --git a/companion/src/themes/monowhite/16/save.png b/companion/src/themes/monowhite/16/save.png
new file mode 100644
index 000000000..ac0b8a0cc
Binary files /dev/null and b/companion/src/themes/monowhite/16/save.png differ
diff --git a/companion/src/themes/monowhite/16/saveas.png b/companion/src/themes/monowhite/16/saveas.png
new file mode 100644
index 000000000..5ca5d7657
Binary files /dev/null and b/companion/src/themes/monowhite/16/saveas.png differ
diff --git a/companion/src/themes/monowhite/16/simulate.png b/companion/src/themes/monowhite/16/simulate.png
new file mode 100644
index 000000000..f0d951795
Binary files /dev/null and b/companion/src/themes/monowhite/16/simulate.png differ
diff --git a/companion/src/themes/monowhite/16/stop.png b/companion/src/themes/monowhite/16/stop.png
new file mode 100644
index 000000000..dd8e90450
Binary files /dev/null and b/companion/src/themes/monowhite/16/stop.png differ
diff --git a/companion/src/themes/monowhite/16/switch_dir.png b/companion/src/themes/monowhite/16/switch_dir.png
new file mode 100644
index 000000000..803b35927
Binary files /dev/null and b/companion/src/themes/monowhite/16/switch_dir.png differ
diff --git a/companion/src/themes/monowhite/16/update.png b/companion/src/themes/monowhite/16/update.png
new file mode 100644
index 000000000..ea09cb966
Binary files /dev/null and b/companion/src/themes/monowhite/16/update.png differ
diff --git a/companion/src/themes/monowhite/16/wizard.png b/companion/src/themes/monowhite/16/wizard.png
new file mode 100644
index 000000000..b47deb615
Binary files /dev/null and b/companion/src/themes/monowhite/16/wizard.png differ
diff --git a/companion/src/themes/monowhite/16/write_eeprom.png b/companion/src/themes/monowhite/16/write_eeprom.png
new file mode 100644
index 000000000..bfd1f398f
Binary files /dev/null and b/companion/src/themes/monowhite/16/write_eeprom.png differ
diff --git a/companion/src/themes/monowhite/16/write_eeprom_file.png b/companion/src/themes/monowhite/16/write_eeprom_file.png
new file mode 100644
index 000000000..d2b0d1f50
Binary files /dev/null and b/companion/src/themes/monowhite/16/write_eeprom_file.png differ
diff --git a/companion/src/themes/monowhite/16/write_flash.png b/companion/src/themes/monowhite/16/write_flash.png
new file mode 100644
index 000000000..6b80a90bc
Binary files /dev/null and b/companion/src/themes/monowhite/16/write_flash.png differ
diff --git a/companion/src/themes/monowhite/24/add.png b/companion/src/themes/monowhite/24/add.png
new file mode 100644
index 000000000..337a3d68b
Binary files /dev/null and b/companion/src/themes/monowhite/24/add.png differ
diff --git a/companion/src/themes/monowhite/24/arrow-left.png b/companion/src/themes/monowhite/24/arrow-left.png
new file mode 100644
index 000000000..b8de8b3fd
Binary files /dev/null and b/companion/src/themes/monowhite/24/arrow-left.png differ
diff --git a/companion/src/themes/monowhite/24/arrow-right.png b/companion/src/themes/monowhite/24/arrow-right.png
new file mode 100644
index 000000000..9b2064ed9
Binary files /dev/null and b/companion/src/themes/monowhite/24/arrow-right.png differ
diff --git a/companion/src/themes/monowhite/24/changelog.png b/companion/src/themes/monowhite/24/changelog.png
new file mode 100644
index 000000000..e43e38430
Binary files /dev/null and b/companion/src/themes/monowhite/24/changelog.png differ
diff --git a/companion/src/themes/monowhite/24/clear.png b/companion/src/themes/monowhite/24/clear.png
new file mode 100644
index 000000000..024273d46
Binary files /dev/null and b/companion/src/themes/monowhite/24/clear.png differ
diff --git a/companion/src/themes/monowhite/24/compare.png b/companion/src/themes/monowhite/24/compare.png
new file mode 100644
index 000000000..dcb84085a
Binary files /dev/null and b/companion/src/themes/monowhite/24/compare.png differ
diff --git a/companion/src/themes/monowhite/24/configure.png b/companion/src/themes/monowhite/24/configure.png
new file mode 100644
index 000000000..53b1c72b2
Binary files /dev/null and b/companion/src/themes/monowhite/24/configure.png differ
diff --git a/companion/src/themes/monowhite/24/contributors.png b/companion/src/themes/monowhite/24/contributors.png
new file mode 100644
index 000000000..f795f2efa
Binary files /dev/null and b/companion/src/themes/monowhite/24/contributors.png differ
diff --git a/companion/src/themes/monowhite/24/copy.png b/companion/src/themes/monowhite/24/copy.png
new file mode 100644
index 000000000..de532c320
Binary files /dev/null and b/companion/src/themes/monowhite/24/copy.png differ
diff --git a/companion/src/themes/monowhite/24/currentmodel.png b/companion/src/themes/monowhite/24/currentmodel.png
new file mode 100644
index 000000000..f571c2ea8
Binary files /dev/null and b/companion/src/themes/monowhite/24/currentmodel.png differ
diff --git a/companion/src/themes/monowhite/24/customize.png b/companion/src/themes/monowhite/24/customize.png
new file mode 100644
index 000000000..1382ed169
Binary files /dev/null and b/companion/src/themes/monowhite/24/customize.png differ
diff --git a/companion/src/themes/monowhite/24/cut.png b/companion/src/themes/monowhite/24/cut.png
new file mode 100644
index 000000000..2fb90f4de
Binary files /dev/null and b/companion/src/themes/monowhite/24/cut.png differ
diff --git a/companion/src/themes/monowhite/24/duplicate.png b/companion/src/themes/monowhite/24/duplicate.png
new file mode 100644
index 000000000..cf25aaf82
Binary files /dev/null and b/companion/src/themes/monowhite/24/duplicate.png differ
diff --git a/companion/src/themes/monowhite/24/edit.png b/companion/src/themes/monowhite/24/edit.png
new file mode 100644
index 000000000..8e4790d9d
Binary files /dev/null and b/companion/src/themes/monowhite/24/edit.png differ
diff --git a/companion/src/themes/monowhite/24/exit.png b/companion/src/themes/monowhite/24/exit.png
new file mode 100644
index 000000000..3c264e5e9
Binary files /dev/null and b/companion/src/themes/monowhite/24/exit.png differ
diff --git a/companion/src/themes/monowhite/24/fuses.png b/companion/src/themes/monowhite/24/fuses.png
new file mode 100644
index 000000000..689f13d80
Binary files /dev/null and b/companion/src/themes/monowhite/24/fuses.png differ
diff --git a/companion/src/themes/monowhite/24/information.png b/companion/src/themes/monowhite/24/information.png
new file mode 100644
index 000000000..ced19f760
Binary files /dev/null and b/companion/src/themes/monowhite/24/information.png differ
diff --git a/companion/src/themes/monowhite/24/library.png b/companion/src/themes/monowhite/24/library.png
new file mode 100644
index 000000000..6df67c7fc
Binary files /dev/null and b/companion/src/themes/monowhite/24/library.png differ
diff --git a/companion/src/themes/monowhite/24/list.png b/companion/src/themes/monowhite/24/list.png
new file mode 100644
index 000000000..db7a54b7b
Binary files /dev/null and b/companion/src/themes/monowhite/24/list.png differ
diff --git a/companion/src/themes/monowhite/24/logs.png b/companion/src/themes/monowhite/24/logs.png
new file mode 100644
index 000000000..13d257672
Binary files /dev/null and b/companion/src/themes/monowhite/24/logs.png differ
diff --git a/companion/src/themes/monowhite/24/movedown.png b/companion/src/themes/monowhite/24/movedown.png
new file mode 100644
index 000000000..598a774b8
Binary files /dev/null and b/companion/src/themes/monowhite/24/movedown.png differ
diff --git a/companion/src/themes/monowhite/24/moveup.png b/companion/src/themes/monowhite/24/moveup.png
new file mode 100644
index 000000000..63ca20521
Binary files /dev/null and b/companion/src/themes/monowhite/24/moveup.png differ
diff --git a/companion/src/themes/monowhite/24/new.png b/companion/src/themes/monowhite/24/new.png
new file mode 100644
index 000000000..a46b28514
Binary files /dev/null and b/companion/src/themes/monowhite/24/new.png differ
diff --git a/companion/src/themes/monowhite/24/open.png b/companion/src/themes/monowhite/24/open.png
new file mode 100644
index 000000000..212920807
Binary files /dev/null and b/companion/src/themes/monowhite/24/open.png differ
diff --git a/companion/src/themes/monowhite/24/paintbrush.png b/companion/src/themes/monowhite/24/paintbrush.png
new file mode 100644
index 000000000..14bd9dce9
Binary files /dev/null and b/companion/src/themes/monowhite/24/paintbrush.png differ
diff --git a/companion/src/themes/monowhite/24/paste.png b/companion/src/themes/monowhite/24/paste.png
new file mode 100644
index 000000000..2dfff1606
Binary files /dev/null and b/companion/src/themes/monowhite/24/paste.png differ
diff --git a/companion/src/themes/monowhite/24/play.png b/companion/src/themes/monowhite/24/play.png
new file mode 100644
index 000000000..2df15672f
Binary files /dev/null and b/companion/src/themes/monowhite/24/play.png differ
diff --git a/companion/src/themes/monowhite/24/preferences.png b/companion/src/themes/monowhite/24/preferences.png
new file mode 100644
index 000000000..2e0a6502e
Binary files /dev/null and b/companion/src/themes/monowhite/24/preferences.png differ
diff --git a/companion/src/themes/monowhite/24/print.png b/companion/src/themes/monowhite/24/print.png
new file mode 100644
index 000000000..c7640dcb1
Binary files /dev/null and b/companion/src/themes/monowhite/24/print.png differ
diff --git a/companion/src/themes/monowhite/24/profiles.png b/companion/src/themes/monowhite/24/profiles.png
new file mode 100644
index 000000000..e647a08c6
Binary files /dev/null and b/companion/src/themes/monowhite/24/profiles.png differ
diff --git a/companion/src/themes/monowhite/24/read_eeprom.png b/companion/src/themes/monowhite/24/read_eeprom.png
new file mode 100644
index 000000000..f5bc50b3e
Binary files /dev/null and b/companion/src/themes/monowhite/24/read_eeprom.png differ
diff --git a/companion/src/themes/monowhite/24/read_eeprom_file.png b/companion/src/themes/monowhite/24/read_eeprom_file.png
new file mode 100644
index 000000000..4f15861bb
Binary files /dev/null and b/companion/src/themes/monowhite/24/read_eeprom_file.png differ
diff --git a/companion/src/themes/monowhite/24/read_flash.png b/companion/src/themes/monowhite/24/read_flash.png
new file mode 100644
index 000000000..5768a805a
Binary files /dev/null and b/companion/src/themes/monowhite/24/read_flash.png differ
diff --git a/companion/src/themes/monowhite/24/recentdocument.png b/companion/src/themes/monowhite/24/recentdocument.png
new file mode 100644
index 000000000..5dd78bca1
Binary files /dev/null and b/companion/src/themes/monowhite/24/recentdocument.png differ
diff --git a/companion/src/themes/monowhite/24/save.png b/companion/src/themes/monowhite/24/save.png
new file mode 100644
index 000000000..d4e895d54
Binary files /dev/null and b/companion/src/themes/monowhite/24/save.png differ
diff --git a/companion/src/themes/monowhite/24/saveas.png b/companion/src/themes/monowhite/24/saveas.png
new file mode 100644
index 000000000..65941e374
Binary files /dev/null and b/companion/src/themes/monowhite/24/saveas.png differ
diff --git a/companion/src/themes/monowhite/24/simulate.png b/companion/src/themes/monowhite/24/simulate.png
new file mode 100644
index 000000000..6eb9c6a63
Binary files /dev/null and b/companion/src/themes/monowhite/24/simulate.png differ
diff --git a/companion/src/themes/monowhite/24/stop.png b/companion/src/themes/monowhite/24/stop.png
new file mode 100644
index 000000000..dd8e90450
Binary files /dev/null and b/companion/src/themes/monowhite/24/stop.png differ
diff --git a/companion/src/themes/monowhite/24/switch_dir.png b/companion/src/themes/monowhite/24/switch_dir.png
new file mode 100644
index 000000000..384ec6997
Binary files /dev/null and b/companion/src/themes/monowhite/24/switch_dir.png differ
diff --git a/companion/src/themes/monowhite/24/update.png b/companion/src/themes/monowhite/24/update.png
new file mode 100644
index 000000000..3d71395a3
Binary files /dev/null and b/companion/src/themes/monowhite/24/update.png differ
diff --git a/companion/src/themes/monowhite/24/wizard.png b/companion/src/themes/monowhite/24/wizard.png
new file mode 100644
index 000000000..337dcef52
Binary files /dev/null and b/companion/src/themes/monowhite/24/wizard.png differ
diff --git a/companion/src/themes/monowhite/24/write_eeprom.png b/companion/src/themes/monowhite/24/write_eeprom.png
new file mode 100644
index 000000000..0a5878824
Binary files /dev/null and b/companion/src/themes/monowhite/24/write_eeprom.png differ
diff --git a/companion/src/themes/monowhite/24/write_eeprom_file.png b/companion/src/themes/monowhite/24/write_eeprom_file.png
new file mode 100644
index 000000000..b96f1c4a2
Binary files /dev/null and b/companion/src/themes/monowhite/24/write_eeprom_file.png differ
diff --git a/companion/src/themes/monowhite/24/write_flash.png b/companion/src/themes/monowhite/24/write_flash.png
new file mode 100644
index 000000000..762f956d9
Binary files /dev/null and b/companion/src/themes/monowhite/24/write_flash.png differ
diff --git a/companion/src/themes/monowhite/32/add.png b/companion/src/themes/monowhite/32/add.png
new file mode 100644
index 000000000..cea176a31
Binary files /dev/null and b/companion/src/themes/monowhite/32/add.png differ
diff --git a/companion/src/themes/monowhite/32/arrow-left.png b/companion/src/themes/monowhite/32/arrow-left.png
new file mode 100644
index 000000000..48deb7182
Binary files /dev/null and b/companion/src/themes/monowhite/32/arrow-left.png differ
diff --git a/companion/src/themes/monowhite/32/arrow-right.png b/companion/src/themes/monowhite/32/arrow-right.png
new file mode 100644
index 000000000..3e6566edb
Binary files /dev/null and b/companion/src/themes/monowhite/32/arrow-right.png differ
diff --git a/companion/src/themes/monowhite/32/changelog.png b/companion/src/themes/monowhite/32/changelog.png
new file mode 100644
index 000000000..397a99c2c
Binary files /dev/null and b/companion/src/themes/monowhite/32/changelog.png differ
diff --git a/companion/src/themes/monowhite/32/clear.png b/companion/src/themes/monowhite/32/clear.png
new file mode 100644
index 000000000..ac0931302
Binary files /dev/null and b/companion/src/themes/monowhite/32/clear.png differ
diff --git a/companion/src/themes/monowhite/32/compare.png b/companion/src/themes/monowhite/32/compare.png
new file mode 100644
index 000000000..415091a75
Binary files /dev/null and b/companion/src/themes/monowhite/32/compare.png differ
diff --git a/companion/src/themes/monowhite/32/configure.png b/companion/src/themes/monowhite/32/configure.png
new file mode 100644
index 000000000..9f32d1d02
Binary files /dev/null and b/companion/src/themes/monowhite/32/configure.png differ
diff --git a/companion/src/themes/monowhite/32/contributors.png b/companion/src/themes/monowhite/32/contributors.png
new file mode 100644
index 000000000..89fbf7950
Binary files /dev/null and b/companion/src/themes/monowhite/32/contributors.png differ
diff --git a/companion/src/themes/monowhite/32/copy.png b/companion/src/themes/monowhite/32/copy.png
new file mode 100644
index 000000000..837b2365d
Binary files /dev/null and b/companion/src/themes/monowhite/32/copy.png differ
diff --git a/companion/src/themes/monowhite/32/currentmodel.png b/companion/src/themes/monowhite/32/currentmodel.png
new file mode 100644
index 000000000..89af84e37
Binary files /dev/null and b/companion/src/themes/monowhite/32/currentmodel.png differ
diff --git a/companion/src/themes/monowhite/32/customize.png b/companion/src/themes/monowhite/32/customize.png
new file mode 100644
index 000000000..1382ed169
Binary files /dev/null and b/companion/src/themes/monowhite/32/customize.png differ
diff --git a/companion/src/themes/monowhite/32/cut.png b/companion/src/themes/monowhite/32/cut.png
new file mode 100644
index 000000000..c67cdbc05
Binary files /dev/null and b/companion/src/themes/monowhite/32/cut.png differ
diff --git a/companion/src/themes/monowhite/32/duplicate.png b/companion/src/themes/monowhite/32/duplicate.png
new file mode 100644
index 000000000..5bbda5fa9
Binary files /dev/null and b/companion/src/themes/monowhite/32/duplicate.png differ
diff --git a/companion/src/themes/monowhite/32/edit.png b/companion/src/themes/monowhite/32/edit.png
new file mode 100644
index 000000000..8076a8794
Binary files /dev/null and b/companion/src/themes/monowhite/32/edit.png differ
diff --git a/companion/src/themes/monowhite/32/exit.png b/companion/src/themes/monowhite/32/exit.png
new file mode 100644
index 000000000..47e97403a
Binary files /dev/null and b/companion/src/themes/monowhite/32/exit.png differ
diff --git a/companion/src/themes/monowhite/32/fuses.png b/companion/src/themes/monowhite/32/fuses.png
new file mode 100644
index 000000000..9df1d5ff4
Binary files /dev/null and b/companion/src/themes/monowhite/32/fuses.png differ
diff --git a/companion/src/themes/monowhite/32/information.png b/companion/src/themes/monowhite/32/information.png
new file mode 100644
index 000000000..04344bd26
Binary files /dev/null and b/companion/src/themes/monowhite/32/information.png differ
diff --git a/companion/src/themes/monowhite/32/library.png b/companion/src/themes/monowhite/32/library.png
new file mode 100644
index 000000000..a7b1a1e61
Binary files /dev/null and b/companion/src/themes/monowhite/32/library.png differ
diff --git a/companion/src/themes/monowhite/32/list.png b/companion/src/themes/monowhite/32/list.png
new file mode 100644
index 000000000..b88fb9322
Binary files /dev/null and b/companion/src/themes/monowhite/32/list.png differ
diff --git a/companion/src/themes/monowhite/32/logs.png b/companion/src/themes/monowhite/32/logs.png
new file mode 100644
index 000000000..6a67d1060
Binary files /dev/null and b/companion/src/themes/monowhite/32/logs.png differ
diff --git a/companion/src/themes/monowhite/32/movedown.png b/companion/src/themes/monowhite/32/movedown.png
new file mode 100644
index 000000000..89429747d
Binary files /dev/null and b/companion/src/themes/monowhite/32/movedown.png differ
diff --git a/companion/src/themes/monowhite/32/moveup.png b/companion/src/themes/monowhite/32/moveup.png
new file mode 100644
index 000000000..a241f0d7f
Binary files /dev/null and b/companion/src/themes/monowhite/32/moveup.png differ
diff --git a/companion/src/themes/monowhite/32/new.png b/companion/src/themes/monowhite/32/new.png
new file mode 100644
index 000000000..5f70d2256
Binary files /dev/null and b/companion/src/themes/monowhite/32/new.png differ
diff --git a/companion/src/themes/monowhite/32/open.png b/companion/src/themes/monowhite/32/open.png
new file mode 100644
index 000000000..36416d017
Binary files /dev/null and b/companion/src/themes/monowhite/32/open.png differ
diff --git a/companion/src/themes/monowhite/32/paintbrush.png b/companion/src/themes/monowhite/32/paintbrush.png
new file mode 100644
index 000000000..62cefc607
Binary files /dev/null and b/companion/src/themes/monowhite/32/paintbrush.png differ
diff --git a/companion/src/themes/monowhite/32/paste.png b/companion/src/themes/monowhite/32/paste.png
new file mode 100644
index 000000000..1a38652de
Binary files /dev/null and b/companion/src/themes/monowhite/32/paste.png differ
diff --git a/companion/src/themes/monowhite/32/play.png b/companion/src/themes/monowhite/32/play.png
new file mode 100644
index 000000000..2df15672f
Binary files /dev/null and b/companion/src/themes/monowhite/32/play.png differ
diff --git a/companion/src/themes/monowhite/32/preferences.png b/companion/src/themes/monowhite/32/preferences.png
new file mode 100644
index 000000000..2fc0fcada
Binary files /dev/null and b/companion/src/themes/monowhite/32/preferences.png differ
diff --git a/companion/src/themes/monowhite/32/print.png b/companion/src/themes/monowhite/32/print.png
new file mode 100644
index 000000000..95a8e23bd
Binary files /dev/null and b/companion/src/themes/monowhite/32/print.png differ
diff --git a/companion/src/themes/monowhite/32/profiles.png b/companion/src/themes/monowhite/32/profiles.png
new file mode 100644
index 000000000..1a2317540
Binary files /dev/null and b/companion/src/themes/monowhite/32/profiles.png differ
diff --git a/companion/src/themes/monowhite/32/read_eeprom.png b/companion/src/themes/monowhite/32/read_eeprom.png
new file mode 100644
index 000000000..b5f4060f1
Binary files /dev/null and b/companion/src/themes/monowhite/32/read_eeprom.png differ
diff --git a/companion/src/themes/monowhite/32/read_eeprom_file.png b/companion/src/themes/monowhite/32/read_eeprom_file.png
new file mode 100644
index 000000000..85d75a31d
Binary files /dev/null and b/companion/src/themes/monowhite/32/read_eeprom_file.png differ
diff --git a/companion/src/themes/monowhite/32/read_flash.png b/companion/src/themes/monowhite/32/read_flash.png
new file mode 100644
index 000000000..af4186962
Binary files /dev/null and b/companion/src/themes/monowhite/32/read_flash.png differ
diff --git a/companion/src/themes/monowhite/32/recentdocument.png b/companion/src/themes/monowhite/32/recentdocument.png
new file mode 100644
index 000000000..4a4f21252
Binary files /dev/null and b/companion/src/themes/monowhite/32/recentdocument.png differ
diff --git a/companion/src/themes/monowhite/32/save.png b/companion/src/themes/monowhite/32/save.png
new file mode 100644
index 000000000..461af833d
Binary files /dev/null and b/companion/src/themes/monowhite/32/save.png differ
diff --git a/companion/src/themes/monowhite/32/saveas.png b/companion/src/themes/monowhite/32/saveas.png
new file mode 100644
index 000000000..cf56da9b6
Binary files /dev/null and b/companion/src/themes/monowhite/32/saveas.png differ
diff --git a/companion/src/themes/monowhite/32/simulate.png b/companion/src/themes/monowhite/32/simulate.png
new file mode 100644
index 000000000..9fe222a8a
Binary files /dev/null and b/companion/src/themes/monowhite/32/simulate.png differ
diff --git a/companion/src/themes/monowhite/32/stop.png b/companion/src/themes/monowhite/32/stop.png
new file mode 100644
index 000000000..dd8e90450
Binary files /dev/null and b/companion/src/themes/monowhite/32/stop.png differ
diff --git a/companion/src/themes/monowhite/32/switch_dir.png b/companion/src/themes/monowhite/32/switch_dir.png
new file mode 100644
index 000000000..39cd0a7bf
Binary files /dev/null and b/companion/src/themes/monowhite/32/switch_dir.png differ
diff --git a/companion/src/themes/monowhite/32/update.png b/companion/src/themes/monowhite/32/update.png
new file mode 100644
index 000000000..88e4c4638
Binary files /dev/null and b/companion/src/themes/monowhite/32/update.png differ
diff --git a/companion/src/themes/monowhite/32/wizard.png b/companion/src/themes/monowhite/32/wizard.png
new file mode 100644
index 000000000..a9cfa82e9
Binary files /dev/null and b/companion/src/themes/monowhite/32/wizard.png differ
diff --git a/companion/src/themes/monowhite/32/write_eeprom.png b/companion/src/themes/monowhite/32/write_eeprom.png
new file mode 100644
index 000000000..0dc5c1f57
Binary files /dev/null and b/companion/src/themes/monowhite/32/write_eeprom.png differ
diff --git a/companion/src/themes/monowhite/32/write_eeprom_file.png b/companion/src/themes/monowhite/32/write_eeprom_file.png
new file mode 100644
index 000000000..9dfe9a116
Binary files /dev/null and b/companion/src/themes/monowhite/32/write_eeprom_file.png differ
diff --git a/companion/src/themes/monowhite/32/write_flash.png b/companion/src/themes/monowhite/32/write_flash.png
new file mode 100644
index 000000000..4d8d752ea
Binary files /dev/null and b/companion/src/themes/monowhite/32/write_flash.png differ
diff --git a/companion/src/themes/monowhite/48/add.png b/companion/src/themes/monowhite/48/add.png
new file mode 100644
index 000000000..827d7b244
Binary files /dev/null and b/companion/src/themes/monowhite/48/add.png differ
diff --git a/companion/src/themes/monowhite/48/arrow-left.png b/companion/src/themes/monowhite/48/arrow-left.png
new file mode 100644
index 000000000..e4220b5dd
Binary files /dev/null and b/companion/src/themes/monowhite/48/arrow-left.png differ
diff --git a/companion/src/themes/monowhite/48/arrow-right.png b/companion/src/themes/monowhite/48/arrow-right.png
new file mode 100644
index 000000000..52b41558c
Binary files /dev/null and b/companion/src/themes/monowhite/48/arrow-right.png differ
diff --git a/companion/src/themes/monowhite/48/changelog.png b/companion/src/themes/monowhite/48/changelog.png
new file mode 100644
index 000000000..c9e897edb
Binary files /dev/null and b/companion/src/themes/monowhite/48/changelog.png differ
diff --git a/companion/src/themes/monowhite/48/clear.png b/companion/src/themes/monowhite/48/clear.png
new file mode 100644
index 000000000..5ff3688e2
Binary files /dev/null and b/companion/src/themes/monowhite/48/clear.png differ
diff --git a/companion/src/themes/monowhite/48/compare.png b/companion/src/themes/monowhite/48/compare.png
new file mode 100644
index 000000000..87e99c8c5
Binary files /dev/null and b/companion/src/themes/monowhite/48/compare.png differ
diff --git a/companion/src/themes/monowhite/48/configure.png b/companion/src/themes/monowhite/48/configure.png
new file mode 100644
index 000000000..6ace3af19
Binary files /dev/null and b/companion/src/themes/monowhite/48/configure.png differ
diff --git a/companion/src/themes/monowhite/48/contributors.png b/companion/src/themes/monowhite/48/contributors.png
new file mode 100644
index 000000000..ab347bfb7
Binary files /dev/null and b/companion/src/themes/monowhite/48/contributors.png differ
diff --git a/companion/src/themes/monowhite/48/copy.png b/companion/src/themes/monowhite/48/copy.png
new file mode 100644
index 000000000..dd08c322b
Binary files /dev/null and b/companion/src/themes/monowhite/48/copy.png differ
diff --git a/companion/src/themes/monowhite/48/currentmodel.png b/companion/src/themes/monowhite/48/currentmodel.png
new file mode 100644
index 000000000..9c5e3a5ee
Binary files /dev/null and b/companion/src/themes/monowhite/48/currentmodel.png differ
diff --git a/companion/src/themes/monowhite/48/customize.png b/companion/src/themes/monowhite/48/customize.png
new file mode 100644
index 000000000..1382ed169
Binary files /dev/null and b/companion/src/themes/monowhite/48/customize.png differ
diff --git a/companion/src/themes/monowhite/48/cut.png b/companion/src/themes/monowhite/48/cut.png
new file mode 100644
index 000000000..b81fb0d9d
Binary files /dev/null and b/companion/src/themes/monowhite/48/cut.png differ
diff --git a/companion/src/themes/monowhite/48/duplicate.png b/companion/src/themes/monowhite/48/duplicate.png
new file mode 100644
index 000000000..a5f716f82
Binary files /dev/null and b/companion/src/themes/monowhite/48/duplicate.png differ
diff --git a/companion/src/themes/monowhite/48/edit.png b/companion/src/themes/monowhite/48/edit.png
new file mode 100644
index 000000000..c318f72b6
Binary files /dev/null and b/companion/src/themes/monowhite/48/edit.png differ
diff --git a/companion/src/themes/monowhite/48/exit.png b/companion/src/themes/monowhite/48/exit.png
new file mode 100644
index 000000000..e0f7e38fe
Binary files /dev/null and b/companion/src/themes/monowhite/48/exit.png differ
diff --git a/companion/src/themes/monowhite/48/fuses.png b/companion/src/themes/monowhite/48/fuses.png
new file mode 100644
index 000000000..37ad3a434
Binary files /dev/null and b/companion/src/themes/monowhite/48/fuses.png differ
diff --git a/companion/src/themes/monowhite/48/information.png b/companion/src/themes/monowhite/48/information.png
new file mode 100644
index 000000000..dfc2f154f
Binary files /dev/null and b/companion/src/themes/monowhite/48/information.png differ
diff --git a/companion/src/themes/monowhite/48/library.png b/companion/src/themes/monowhite/48/library.png
new file mode 100644
index 000000000..5d363913a
Binary files /dev/null and b/companion/src/themes/monowhite/48/library.png differ
diff --git a/companion/src/themes/monowhite/48/list.png b/companion/src/themes/monowhite/48/list.png
new file mode 100644
index 000000000..1f516f5fd
Binary files /dev/null and b/companion/src/themes/monowhite/48/list.png differ
diff --git a/companion/src/themes/monowhite/48/logs.png b/companion/src/themes/monowhite/48/logs.png
new file mode 100644
index 000000000..12e4dad65
Binary files /dev/null and b/companion/src/themes/monowhite/48/logs.png differ
diff --git a/companion/src/themes/monowhite/48/movedown.png b/companion/src/themes/monowhite/48/movedown.png
new file mode 100644
index 000000000..fcf443163
Binary files /dev/null and b/companion/src/themes/monowhite/48/movedown.png differ
diff --git a/companion/src/themes/monowhite/48/moveup.png b/companion/src/themes/monowhite/48/moveup.png
new file mode 100644
index 000000000..937bb7d5e
Binary files /dev/null and b/companion/src/themes/monowhite/48/moveup.png differ
diff --git a/companion/src/themes/monowhite/48/new.png b/companion/src/themes/monowhite/48/new.png
new file mode 100644
index 000000000..f5ddb9077
Binary files /dev/null and b/companion/src/themes/monowhite/48/new.png differ
diff --git a/companion/src/themes/monowhite/48/open.png b/companion/src/themes/monowhite/48/open.png
new file mode 100644
index 000000000..2e705e8f0
Binary files /dev/null and b/companion/src/themes/monowhite/48/open.png differ
diff --git a/companion/src/themes/monowhite/48/paintbrush.png b/companion/src/themes/monowhite/48/paintbrush.png
new file mode 100644
index 000000000..8d73a2df3
Binary files /dev/null and b/companion/src/themes/monowhite/48/paintbrush.png differ
diff --git a/companion/src/themes/monowhite/48/paste.png b/companion/src/themes/monowhite/48/paste.png
new file mode 100644
index 000000000..f10703657
Binary files /dev/null and b/companion/src/themes/monowhite/48/paste.png differ
diff --git a/companion/src/themes/monowhite/48/play.png b/companion/src/themes/monowhite/48/play.png
new file mode 100644
index 000000000..2df15672f
Binary files /dev/null and b/companion/src/themes/monowhite/48/play.png differ
diff --git a/companion/src/themes/monowhite/48/preferences.png b/companion/src/themes/monowhite/48/preferences.png
new file mode 100644
index 000000000..67221199e
Binary files /dev/null and b/companion/src/themes/monowhite/48/preferences.png differ
diff --git a/companion/src/themes/monowhite/48/print.png b/companion/src/themes/monowhite/48/print.png
new file mode 100644
index 000000000..0a82c819b
Binary files /dev/null and b/companion/src/themes/monowhite/48/print.png differ
diff --git a/companion/src/themes/monowhite/48/profiles.png b/companion/src/themes/monowhite/48/profiles.png
new file mode 100644
index 000000000..520c7def6
Binary files /dev/null and b/companion/src/themes/monowhite/48/profiles.png differ
diff --git a/companion/src/themes/monowhite/48/read_eeprom.png b/companion/src/themes/monowhite/48/read_eeprom.png
new file mode 100644
index 000000000..2c919f049
Binary files /dev/null and b/companion/src/themes/monowhite/48/read_eeprom.png differ
diff --git a/companion/src/themes/monowhite/48/read_eeprom_file.png b/companion/src/themes/monowhite/48/read_eeprom_file.png
new file mode 100644
index 000000000..dc05a30e3
Binary files /dev/null and b/companion/src/themes/monowhite/48/read_eeprom_file.png differ
diff --git a/companion/src/themes/monowhite/48/read_flash.png b/companion/src/themes/monowhite/48/read_flash.png
new file mode 100644
index 000000000..39ffc14fa
Binary files /dev/null and b/companion/src/themes/monowhite/48/read_flash.png differ
diff --git a/companion/src/themes/monowhite/48/recentdocument.png b/companion/src/themes/monowhite/48/recentdocument.png
new file mode 100644
index 000000000..4390a48a7
Binary files /dev/null and b/companion/src/themes/monowhite/48/recentdocument.png differ
diff --git a/companion/src/themes/monowhite/48/save.png b/companion/src/themes/monowhite/48/save.png
new file mode 100644
index 000000000..b6d380085
Binary files /dev/null and b/companion/src/themes/monowhite/48/save.png differ
diff --git a/companion/src/themes/monowhite/48/saveas.png b/companion/src/themes/monowhite/48/saveas.png
new file mode 100644
index 000000000..94fccbe10
Binary files /dev/null and b/companion/src/themes/monowhite/48/saveas.png differ
diff --git a/companion/src/themes/monowhite/48/simulate.png b/companion/src/themes/monowhite/48/simulate.png
new file mode 100644
index 000000000..9f448daef
Binary files /dev/null and b/companion/src/themes/monowhite/48/simulate.png differ
diff --git a/companion/src/themes/monowhite/48/stop.png b/companion/src/themes/monowhite/48/stop.png
new file mode 100644
index 000000000..dd8e90450
Binary files /dev/null and b/companion/src/themes/monowhite/48/stop.png differ
diff --git a/companion/src/themes/monowhite/48/switch_dir.png b/companion/src/themes/monowhite/48/switch_dir.png
new file mode 100644
index 000000000..701f3c8e3
Binary files /dev/null and b/companion/src/themes/monowhite/48/switch_dir.png differ
diff --git a/companion/src/themes/monowhite/48/update.png b/companion/src/themes/monowhite/48/update.png
new file mode 100644
index 000000000..29eacea07
Binary files /dev/null and b/companion/src/themes/monowhite/48/update.png differ
diff --git a/companion/src/themes/monowhite/48/wizard.png b/companion/src/themes/monowhite/48/wizard.png
new file mode 100644
index 000000000..7a61ffae7
Binary files /dev/null and b/companion/src/themes/monowhite/48/wizard.png differ
diff --git a/companion/src/themes/monowhite/48/write_eeprom.png b/companion/src/themes/monowhite/48/write_eeprom.png
new file mode 100644
index 000000000..1563c9de3
Binary files /dev/null and b/companion/src/themes/monowhite/48/write_eeprom.png differ
diff --git a/companion/src/themes/monowhite/48/write_eeprom_file.png b/companion/src/themes/monowhite/48/write_eeprom_file.png
new file mode 100644
index 000000000..9ae0c19c7
Binary files /dev/null and b/companion/src/themes/monowhite/48/write_eeprom_file.png differ
diff --git a/companion/src/themes/monowhite/48/write_flash.png b/companion/src/themes/monowhite/48/write_flash.png
new file mode 100644
index 000000000..d66faf613
Binary files /dev/null and b/companion/src/themes/monowhite/48/write_flash.png differ
diff --git a/companion/src/themes/monowhite/add.png b/companion/src/themes/monowhite/add.png
new file mode 100644
index 000000000..0a19376c4
Binary files /dev/null and b/companion/src/themes/monowhite/add.png differ
diff --git a/companion/src/themes/monowhite/arrow-left.png b/companion/src/themes/monowhite/arrow-left.png
new file mode 100644
index 000000000..4c5209acc
Binary files /dev/null and b/companion/src/themes/monowhite/arrow-left.png differ
diff --git a/companion/src/themes/monowhite/arrow-right.png b/companion/src/themes/monowhite/arrow-right.png
new file mode 100644
index 000000000..d4a4a489f
Binary files /dev/null and b/companion/src/themes/monowhite/arrow-right.png differ
diff --git a/companion/src/themes/monowhite/changelog.png b/companion/src/themes/monowhite/changelog.png
new file mode 100644
index 000000000..a0a65c481
Binary files /dev/null and b/companion/src/themes/monowhite/changelog.png differ
diff --git a/companion/src/themes/monowhite/clear.png b/companion/src/themes/monowhite/clear.png
new file mode 100644
index 000000000..b5b408ccb
Binary files /dev/null and b/companion/src/themes/monowhite/clear.png differ
diff --git a/companion/src/themes/monowhite/compare.png b/companion/src/themes/monowhite/compare.png
new file mode 100644
index 000000000..010410b87
Binary files /dev/null and b/companion/src/themes/monowhite/compare.png differ
diff --git a/companion/src/themes/monowhite/configure.png b/companion/src/themes/monowhite/configure.png
new file mode 100644
index 000000000..fcb408174
Binary files /dev/null and b/companion/src/themes/monowhite/configure.png differ
diff --git a/companion/src/themes/monowhite/contributors.png b/companion/src/themes/monowhite/contributors.png
new file mode 100644
index 000000000..6b9996a36
Binary files /dev/null and b/companion/src/themes/monowhite/contributors.png differ
diff --git a/companion/src/themes/monowhite/copy.png b/companion/src/themes/monowhite/copy.png
new file mode 100644
index 000000000..b61153ae6
Binary files /dev/null and b/companion/src/themes/monowhite/copy.png differ
diff --git a/companion/src/themes/monowhite/currentmodel.png b/companion/src/themes/monowhite/currentmodel.png
new file mode 100644
index 000000000..5723daf2c
Binary files /dev/null and b/companion/src/themes/monowhite/currentmodel.png differ
diff --git a/companion/src/themes/monowhite/cut.png b/companion/src/themes/monowhite/cut.png
new file mode 100644
index 000000000..35d32c64f
Binary files /dev/null and b/companion/src/themes/monowhite/cut.png differ
diff --git a/companion/src/themes/monowhite/duplicate.png b/companion/src/themes/monowhite/duplicate.png
new file mode 100644
index 000000000..24709dde3
Binary files /dev/null and b/companion/src/themes/monowhite/duplicate.png differ
diff --git a/companion/src/themes/monowhite/edit.png b/companion/src/themes/monowhite/edit.png
new file mode 100644
index 000000000..96e5056e8
Binary files /dev/null and b/companion/src/themes/monowhite/edit.png differ
diff --git a/companion/src/themes/monowhite/exit.png b/companion/src/themes/monowhite/exit.png
new file mode 100644
index 000000000..1af3ff6f2
Binary files /dev/null and b/companion/src/themes/monowhite/exit.png differ
diff --git a/companion/src/themes/monowhite/fuses.png b/companion/src/themes/monowhite/fuses.png
new file mode 100644
index 000000000..f4b9cc345
Binary files /dev/null and b/companion/src/themes/monowhite/fuses.png differ
diff --git a/companion/src/themes/monowhite/information.png b/companion/src/themes/monowhite/information.png
new file mode 100644
index 000000000..4ca1e9c2d
Binary files /dev/null and b/companion/src/themes/monowhite/information.png differ
diff --git a/companion/src/themes/monowhite/library.png b/companion/src/themes/monowhite/library.png
new file mode 100644
index 000000000..0931fc726
Binary files /dev/null and b/companion/src/themes/monowhite/library.png differ
diff --git a/companion/src/themes/monowhite/list.png b/companion/src/themes/monowhite/list.png
new file mode 100644
index 000000000..e8a0222b8
Binary files /dev/null and b/companion/src/themes/monowhite/list.png differ
diff --git a/companion/src/themes/monowhite/logs.png b/companion/src/themes/monowhite/logs.png
new file mode 100644
index 000000000..af9946fd7
Binary files /dev/null and b/companion/src/themes/monowhite/logs.png differ
diff --git a/companion/src/themes/monowhite/movedown.png b/companion/src/themes/monowhite/movedown.png
new file mode 100644
index 000000000..ee5f9df11
Binary files /dev/null and b/companion/src/themes/monowhite/movedown.png differ
diff --git a/companion/src/themes/monowhite/moveup.png b/companion/src/themes/monowhite/moveup.png
new file mode 100644
index 000000000..c8237f6f4
Binary files /dev/null and b/companion/src/themes/monowhite/moveup.png differ
diff --git a/companion/src/themes/monowhite/new.png b/companion/src/themes/monowhite/new.png
new file mode 100644
index 000000000..46f0a0097
Binary files /dev/null and b/companion/src/themes/monowhite/new.png differ
diff --git a/companion/src/themes/monowhite/open.png b/companion/src/themes/monowhite/open.png
new file mode 100644
index 000000000..b0a95a7c9
Binary files /dev/null and b/companion/src/themes/monowhite/open.png differ
diff --git a/companion/src/themes/monowhite/paintbrush.png b/companion/src/themes/monowhite/paintbrush.png
new file mode 100644
index 000000000..74d7ecb87
Binary files /dev/null and b/companion/src/themes/monowhite/paintbrush.png differ
diff --git a/companion/src/themes/monowhite/paste.png b/companion/src/themes/monowhite/paste.png
new file mode 100644
index 000000000..cf2f59bce
Binary files /dev/null and b/companion/src/themes/monowhite/paste.png differ
diff --git a/companion/src/themes/monowhite/play.png b/companion/src/themes/monowhite/play.png
new file mode 100644
index 000000000..6a917d287
Binary files /dev/null and b/companion/src/themes/monowhite/play.png differ
diff --git a/companion/src/themes/monowhite/preferences.png b/companion/src/themes/monowhite/preferences.png
new file mode 100644
index 000000000..617f42019
Binary files /dev/null and b/companion/src/themes/monowhite/preferences.png differ
diff --git a/companion/src/themes/monowhite/print.png b/companion/src/themes/monowhite/print.png
new file mode 100644
index 000000000..5226d4c89
Binary files /dev/null and b/companion/src/themes/monowhite/print.png differ
diff --git a/companion/src/themes/monowhite/profiles.png b/companion/src/themes/monowhite/profiles.png
new file mode 100644
index 000000000..3bf348b1f
Binary files /dev/null and b/companion/src/themes/monowhite/profiles.png differ
diff --git a/companion/src/themes/monowhite/read_eeprom.png b/companion/src/themes/monowhite/read_eeprom.png
new file mode 100644
index 000000000..b480a711c
Binary files /dev/null and b/companion/src/themes/monowhite/read_eeprom.png differ
diff --git a/companion/src/themes/monowhite/read_eeprom_file.png b/companion/src/themes/monowhite/read_eeprom_file.png
new file mode 100644
index 000000000..f047d1e0e
Binary files /dev/null and b/companion/src/themes/monowhite/read_eeprom_file.png differ
diff --git a/companion/src/themes/monowhite/read_flash.png b/companion/src/themes/monowhite/read_flash.png
new file mode 100644
index 000000000..3339aab08
Binary files /dev/null and b/companion/src/themes/monowhite/read_flash.png differ
diff --git a/companion/src/themes/monowhite/recentdocument.png b/companion/src/themes/monowhite/recentdocument.png
new file mode 100644
index 000000000..92ad2ccaa
Binary files /dev/null and b/companion/src/themes/monowhite/recentdocument.png differ
diff --git a/companion/src/themes/monowhite/save.png b/companion/src/themes/monowhite/save.png
new file mode 100644
index 000000000..5e2cf2684
Binary files /dev/null and b/companion/src/themes/monowhite/save.png differ
diff --git a/companion/src/themes/monowhite/saveas.png b/companion/src/themes/monowhite/saveas.png
new file mode 100644
index 000000000..1ce4bfb4a
Binary files /dev/null and b/companion/src/themes/monowhite/saveas.png differ
diff --git a/companion/src/themes/monowhite/simulate.png b/companion/src/themes/monowhite/simulate.png
new file mode 100644
index 000000000..18d6620bb
Binary files /dev/null and b/companion/src/themes/monowhite/simulate.png differ
diff --git a/companion/src/themes/monowhite/stop.png b/companion/src/themes/monowhite/stop.png
new file mode 100644
index 000000000..a15817027
Binary files /dev/null and b/companion/src/themes/monowhite/stop.png differ
diff --git a/companion/src/themes/monowhite/switch_dir.png b/companion/src/themes/monowhite/switch_dir.png
new file mode 100644
index 000000000..ed255c235
Binary files /dev/null and b/companion/src/themes/monowhite/switch_dir.png differ
diff --git a/companion/src/themes/monowhite/update.png b/companion/src/themes/monowhite/update.png
new file mode 100644
index 000000000..a5ee4ed1c
Binary files /dev/null and b/companion/src/themes/monowhite/update.png differ
diff --git a/companion/src/themes/monowhite/wizard.png b/companion/src/themes/monowhite/wizard.png
new file mode 100644
index 000000000..59b7b3caf
Binary files /dev/null and b/companion/src/themes/monowhite/wizard.png differ
diff --git a/companion/src/themes/monowhite/write_eeprom.png b/companion/src/themes/monowhite/write_eeprom.png
new file mode 100644
index 000000000..65d7d6ab2
Binary files /dev/null and b/companion/src/themes/monowhite/write_eeprom.png differ
diff --git a/companion/src/themes/monowhite/write_eeprom_file.png b/companion/src/themes/monowhite/write_eeprom_file.png
new file mode 100644
index 000000000..31dd8dcce
Binary files /dev/null and b/companion/src/themes/monowhite/write_eeprom_file.png differ
diff --git a/companion/src/themes/monowhite/write_flash.png b/companion/src/themes/monowhite/write_flash.png
new file mode 100644
index 000000000..3a8623dd3
Binary files /dev/null and b/companion/src/themes/monowhite/write_flash.png differ
diff --git a/companion/src/version.h.in b/companion/src/version.h.in
index cbd6b87f2..e0770040e 100644
--- a/companion/src/version.h.in
+++ b/companion/src/version.h.in
@@ -1,3 +1,2 @@
#define C9X_VERSION "@C9X_VERSION@"
-#define C9X_REVISION @C9X_WC_REVISION@
diff --git a/companion/src/xsimulatordialog.cpp b/companion/src/xsimulatordialog.cpp
index d2200e9bf..488439715 100644
--- a/companion/src/xsimulatordialog.cpp
+++ b/companion/src/xsimulatordialog.cpp
@@ -30,7 +30,7 @@ xsimulatorDialog::xsimulatorDialog(QWidget *parent) :
ui->setupUi(this);
ui->lcd->setFocus();
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
ui->lcd->setBackgroundColor(47, 123, 227);
setupSticks();
resize(0, 0); // to force min height, min width
@@ -179,7 +179,7 @@ void xsimulatorDialog::setupTimer()
void xsimulatorDialog::onButtonPressed(int value)
{
if (value==Qt::Key_Print) {
- QSettings settings("companion9x", "companion9x");
+ QSettings settings;
bool toclipboard=settings.value("snapshot_to_clipboard", false).toBool();
QString fileName ="";
if (!toclipboard) {
diff --git a/companion/src/xsimulatordialog.ui b/companion/src/xsimulatordialog.ui
index 2ddd8f310..4a5454c5d 100644
--- a/companion/src/xsimulatordialog.ui
+++ b/companion/src/xsimulatordialog.ui
@@ -26,8 +26,8 @@
Companion Simulator
-
- :/images/simulate.png :/images/simulate.png
+
+ :/icon.png :/icon.png
@@ -2053,7 +2053,6 @@ border-radius: 4px;
16777215
18
-
QSlider::sub-page:horizontal:disabled {
@@ -3901,7 +3900,7 @@ border-radius: 4px;
-
+
diff --git a/radio/src/Makefile b/radio/src/Makefile
index 9eab0f81a..7765bcbdb 100644
--- a/radio/src/Makefile
+++ b/radio/src/Makefile
@@ -260,7 +260,7 @@ MENUS_LOCK == NO
SHELL = sh
IMG2LBM = -python ../util/img2lbm.py
TRANSLATE = -python ../util/translate.py
-SVNREV = $(shell sh -c "svnversion | egrep -o '[[:digit:]]+[[:alpha:]]*$$'")
+VERSION = 2.0
SRC =
CPPSRC =
@@ -1071,43 +1071,43 @@ stamp_header:
@echo "//Automatically generated file (Makefile) - do not edit" > stamp-opentx.h
@echo "#define DATE_STR \"`date +%Y-%m-%d | tr -d '\r\n'`\"" >> stamp-opentx.h
@echo "#define TIME_STR \"`date +%H:%M:%S | tr -d '\r\n'`\"" >> stamp-opentx.h
- @echo "#define SVN_STR \"opentx-r$(SVNREV)\"" >> stamp-opentx.h
+ @echo "#define VERS_STR \"$(VERSION)\"" >> stamp-opentx.h
@cat stamp-opentx.h
-stock-stamp:
- @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-stock.txt
- @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-stock.txt
- @echo "#define SVN_VERS \"opentx-r$(SVNREV)\"" >> stamp-opentx-stock.txt
- @cat stamp-opentx-stock.txt
+9x-stamp:
+ @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-9x.txt
+ @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-9x.txt
+ @echo "#define VERS_STR \"$(VERSION)\"" >> stamp-opentx-9x.txt
+ @cat stamp-opentx-9x.txt
-stock128-stamp:
- @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-stock128.txt
- @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-stock128.txt
- @echo "#define SVN_VERS \"opentx-r$(SVNREV)\"" >> stamp-opentx-stock128.txt
- @cat stamp-opentx-stock128.txt
+9x128-stamp:
+ @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-9x128.txt
+ @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-9x128.txt
+ @echo "#define VERS_STR \"$(VERSION)\"" >> stamp-opentx-9x128.txt
+ @cat stamp-opentx-9x128.txt
-stock2561-stamp:
- @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-stock2561.txt
- @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-stock2561.txt
- @echo "#define SVN_VERS \"opentx-r$(SVNREV)\"" >> stamp-opentx-stock2561.txt
- @cat stamp-opentx-stock2561.txt
+9x2561-stamp:
+ @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-9x2561.txt
+ @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-9x2561.txt
+ @echo "#define VERS_STR \"$(VERSION)\"" >> stamp-opentx-9x2561.txt
+ @cat stamp-opentx-9x2561.txt
-v4-stamp:
- @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-v4.txt
- @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-v4.txt
- @echo "#define SVN_VERS \"opentx-r$(SVNREV)\"" >> stamp-opentx-v4.txt
- @cat stamp-opentx-v4.txt
+gruvin9x-stamp:
+ @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-gruvin9x.txt
+ @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-gruvin9x.txt
+ @echo "#define VERS_STR \"$(VERSION)\"" >> stamp-opentx-gruvin9x.txt
+ @cat stamp-opentx-9x.txt
-arm-stamp:
- @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-arm.txt
- @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-arm.txt
- @echo "#define SVN_VERS \"opentx-r$(SVNREV)\"" >> stamp-opentx-arm.txt
- @cat stamp-opentx-arm.txt
+sky9x-stamp:
+ @echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-sky9x.txt
+ @echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-sky9x.txt
+ @echo "#define VERS_STR \"$(VERSION)\"" >> stamp-opentx-sky9x.txt
+ @cat stamp-opentx-sky9x.txt
taranis-stamp:
@echo "#define DATE_STR \"`date +%Y-%m-%d`\"" > stamp-opentx-taranis.txt
@echo "#define TIME_STR \"`date +%H:%M:%S`\"" >> stamp-opentx-taranis.txt
- @echo "#define SVN_VERS \"opentx-r$(SVNREV)\"" >> stamp-opentx-taranis.txt
+ @echo "#define VERS_STR \"$(VERSION)\"" >> stamp-opentx-taranis.txt
@cat stamp-opentx-taranis.txt
translations/cz.h: translations/cz.h.txt
@@ -1371,11 +1371,11 @@ GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS)
# conservative and not optimized. This is fine as Google Test
# compiles fast and for ordinary users its source rarely changes.
gtest-all.o : $(GTEST_SRCS_)
- $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) -c \
+ $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) -I$(GTEST_DIR)/include -c \
$(GTEST_DIR)/src/gtest-all.cc
gtest_main.o : $(GTEST_SRCS_)
- $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) -c \
+ $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) -I$(GTEST_DIR)/include -c \
$(GTEST_DIR)/src/gtest_main.cc
gtest.a : gtest-all.o
@@ -1389,4 +1389,4 @@ gtest_main.a : gtest-all.o gtest_main.o
# function.
gtests: $(BOARDSRC) $(CPPSRC) gtests.cpp simpgmspace.cpp *.h gtest_main.a
- g++ -std=gnu++0x $(CPPFLAGS) $(BOARDSRC) $(CPPSRC) gtests.cpp simpgmspace.cpp -I$(GTEST_DIR) -o gtests -lpthread -MD -DSIMU gtest_main.a
+ g++ -std=gnu++0x $(CPPFLAGS) $(BOARDSRC) $(CPPSRC) gtests.cpp simpgmspace.cpp -I$(GTEST_DIR) ${INCFLAGS} -I$(GTEST_DIR)/include -o gtests -lpthread -MD -DSIMU gtest_main.a
diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp
index 9e01ae6df..dcab928a7 100644
--- a/radio/src/gui/menu_model.cpp
+++ b/radio/src/gui/menu_model.cpp
@@ -3746,7 +3746,7 @@ enum LimitsItems {
#undef MIN_MAX_ATTR
#define MIN_MAX_ATTR attr
#else
- #define MIN_MAX_DISPLAY(x) (x)
+ #define MIN_MAX_DISPLAY(x) ((int8_t)(x))
#endif
#if defined(PCBTARANIS)
diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp
index ee634a7d2..4f2b04e0c 100644
--- a/radio/src/opentx.cpp
+++ b/radio/src/opentx.cpp
@@ -509,6 +509,12 @@ uint16_t evalChkSum()
return sum;
}
+#if defined(TEMPLATES)
+inline void applyDefaultTemplate()
+{
+ applyTemplate(TMPL_SIMPLE_4CH);
+}
+#else
void applyDefaultTemplate()
{
for (int i=0; isrcRaw == 0) break;
+ uint8_t stickIndex = md->srcRaw - MIXSRC_Rud;
+
if (!(dirtyChannels & ((bitfield_channels_t)1 << md->destCh))) continue;
// if this is the first calculation for the destination channel, initialize it with 0 (otherwise would be random)
@@ -3415,7 +3424,6 @@ void perOut(uint8_t mode, uint8_t tick10ms)
delayval_t mixEnabled = !(md->phases & (1 << s_perout_flight_phase)) && getSwitch(md->swtch);
//========== VALUE ===============
- uint8_t stickIndex = md->srcRaw - MIXSRC_Rud;
getvalue_t v = 0;
if (mode > e_perout_mode_inactive_phase) {
if (!mixEnabled || stickIndex >= NUM_STICKS || (stickIndex == THR_STICK && g_model.thrTrim)) {
@@ -3433,12 +3441,14 @@ void perOut(uint8_t mode, uint8_t tick10ms)
else
#endif
{
- v = getValue(md->srcRaw);
- if (md->srcRaw>=MIXSRC_CH1 && md->srcRaw<=MIXSRC_LAST_CH && md->destCh != md->srcRaw-MIXSRC_CH1) {
- if (dirtyChannels & ((bitfield_channels_t)1 << (md->srcRaw-MIXSRC_CH1)) & (passDirtyChannels|~(((bitfield_channels_t) 1 << md->destCh)-1)))
+ int8_t srcRaw = MIXSRC_Rud + stickIndex;
+ v = getValue(srcRaw);
+ srcRaw -= MIXSRC_CH1;
+ if (srcRaw>=0 && srcRaw<=MIXSRC_LAST_CH-MIXSRC_CH1 && md->destCh != srcRaw) {
+ if (dirtyChannels & ((bitfield_channels_t)1 << srcRaw) & (passDirtyChannels|~(((bitfield_channels_t) 1 << md->destCh)-1)))
passDirtyChannels |= (bitfield_channels_t) 1 << md->destCh;
- if (md->srcRaw-MIXSRC_CH1 < md->destCh || pass > 0)
- v = chans[md->srcRaw-MIXSRC_CH1] >> 8;
+ if (srcRaw < md->destCh || pass > 0)
+ v = chans[srcRaw] >> 8;
}
}
if (!mixCondition) {
diff --git a/radio/src/simpgmspace.h b/radio/src/simpgmspace.h
index cda058487..b177d82a0 100644
--- a/radio/src/simpgmspace.h
+++ b/radio/src/simpgmspace.h
@@ -359,6 +359,8 @@ void eeprom_read_block (void *pointer_ram, const void *pointer_eeprom, size_t si
#define boardInit()
#define OS_MutexID pthread_mutex_t
+extern OS_MutexID audioMutex;
+
#define OS_FlagID int
#define OS_TID int
#define OS_TCID int
diff --git a/radio/src/stamp.cpp b/radio/src/stamp.cpp
index 7200b60b9..72e1208bd 100644
--- a/radio/src/stamp.cpp
+++ b/radio/src/stamp.cpp
@@ -40,7 +40,7 @@
#define STR2(s) #s
#define DEFNUMSTR(s) STR2(s)
-const pm_char stamp1[] PROGMEM = " SVN: " SVN_STR;
+const pm_char stamp1[] PROGMEM = "VERS: " VERS_STR;
const pm_char stamp2[] PROGMEM = "DATE: " DATE_STR;
const pm_char stamp3[] PROGMEM = "TIME: " TIME_STR;
#if defined(PCBSTD)
diff --git a/radio/src/targets/taranis/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Source/Templates/system_stm32f2xx.c b/radio/src/targets/taranis/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Source/Templates/system_stm32f2xx.c
index e1d39a223..654bb5fcf 100644
--- a/radio/src/targets/taranis/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Source/Templates/system_stm32f2xx.c
+++ b/radio/src/targets/taranis/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Source/Templates/system_stm32f2xx.c
@@ -3,7 +3,7 @@
* @file system_stm32f2xx.c
* @author MCD Application Team
* @version V1.1.0
- * @date 09-January-2013
+ * @date 05-January-2014
* @brief CMSIS Cortex-M3 Device Peripheral Access Layer System Source File.
* This file contains the system clock configuration for STM32F2xx devices,
* and is generated by the clock configuration tool
@@ -46,15 +46,15 @@
*-----------------------------------------------------------------------------
* System Clock source | PLL (HSE)
*-----------------------------------------------------------------------------
- * SYSCLK(Hz) | 60000000
+ * SYSCLK(Hz) | 120000000
*-----------------------------------------------------------------------------
- * HCLK(Hz) | 60000000
+ * HCLK(Hz) | 120000000
*-----------------------------------------------------------------------------
* AHB Prescaler | 1
*-----------------------------------------------------------------------------
- * APB1 Prescaler | 2
+ * APB1 Prescaler | 4
*-----------------------------------------------------------------------------
- * APB2 Prescaler | 1
+ * APB2 Prescaler | 2
*-----------------------------------------------------------------------------
* HSE Frequency(Hz) | 12000000
*-----------------------------------------------------------------------------
@@ -62,7 +62,7 @@
*-----------------------------------------------------------------------------
* PLL_N | 240
*-----------------------------------------------------------------------------
- * PLL_P | 4
+ * PLL_P | 2
*-----------------------------------------------------------------------------
* PLL_Q | 5
*-----------------------------------------------------------------------------
@@ -74,7 +74,7 @@
*-----------------------------------------------------------------------------
* VDD(V) | 3.3
*-----------------------------------------------------------------------------
- * Flash Latency(WS) | 2
+ * Flash Latency(WS) | 3
*-----------------------------------------------------------------------------
* Prefetch Buffer | ON
*-----------------------------------------------------------------------------
@@ -146,7 +146,7 @@
#define PLL_N 240
/* SYSCLK = PLL_VCO / PLL_P */
-#define PLL_P 4
+#define PLL_P 2
/* USB OTG FS, SDIO and RNG Clock = PLL_VCO / PLLQ */
#define PLL_Q 5
@@ -167,7 +167,7 @@
* @{
*/
- uint32_t SystemCoreClock = 60000000;
+ uint32_t SystemCoreClock = 120000000;
__I uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9};
@@ -359,11 +359,11 @@ static void SetSysClock(void)
/* HCLK = SYSCLK / 1*/
RCC->CFGR |= RCC_CFGR_HPRE_DIV1;
- /* PCLK2 = HCLK / 1*/
- RCC->CFGR |= RCC_CFGR_PPRE2_DIV1;
+ /* PCLK2 = HCLK / 2*/
+ RCC->CFGR |= RCC_CFGR_PPRE2_DIV2;
- /* PCLK1 = HCLK / 2*/
- RCC->CFGR |= RCC_CFGR_PPRE1_DIV2;
+ /* PCLK1 = HCLK / 4*/
+ RCC->CFGR |= RCC_CFGR_PPRE1_DIV4;
/* Configure the main PLL */
RCC->PLLCFGR = PLL_M | (PLL_N << 6) | (((PLL_P >> 1) -1) << 16) |
@@ -378,7 +378,7 @@ static void SetSysClock(void)
}
/* Configure Flash prefetch, Instruction cache, Data cache and wait state */
- FLASH->ACR = FLASH_ACR_PRFTEN |FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_2WS;
+ FLASH->ACR = FLASH_ACR_PRFTEN |FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_3WS;
/* Select the main PLL as system clock source */
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
diff --git a/radio/src/targets/taranis/board_taranis.h b/radio/src/targets/taranis/board_taranis.h
index 9c492c32d..1de2f354d 100644
--- a/radio/src/targets/taranis/board_taranis.h
+++ b/radio/src/targets/taranis/board_taranis.h
@@ -60,7 +60,7 @@ extern "C" {
#define PERI1_FREQUENCY 30000000
#define PERI2_FREQUENCY 60000000
#define TIMER_MULT_APB1 2
-#define TIMER_MULT_APB2 1
+#define TIMER_MULT_APB2 2
#define JACK_PPM_OUT()
#define JACK_PPM_IN()
diff --git a/radio/src/telemetry/mavlink.cpp b/radio/src/telemetry/mavlink.cpp
index eb7166dbc..094c94ec3 100644
--- a/radio/src/telemetry/mavlink.cpp
+++ b/radio/src/telemetry/mavlink.cpp
@@ -113,7 +113,7 @@ void MAVLINK_reset(uint8_t warm_reset) {
memset(&telemetry_data, 0, sizeof(telemetry_data));
telemetry_data.rcv_control_mode = ERROR_NUM_MODES;
telemetry_data.req_mode = ERROR_NUM_MODES;
-
+
telemetry_data.type = MAV_TYPE_ENUM_END;
telemetry_data.autopilot = MAV_AUTOPILOT_ENUM_END;
telemetry_data.type_autopilot = MAVLINK_INVALID_TYPE;
@@ -139,7 +139,7 @@ void MAVLINK_Init(void) {
* characters are used. To get the full message you can use the commented
* funtion below.
*/
-
+
static inline void REC_MAVLINK_MSG_ID_STATUSTEXT(const mavlink_message_t* msg) {
_MAV_RETURN_char_array(msg, mav_statustext, LEN_STATUSTEXT, 1);
}
@@ -152,7 +152,7 @@ static inline void REC_MAVLINK_MSG_ID_STATUSTEXT(const mavlink_message_t* msg) {
* \todo Add battery remaining variable in telemetry_data struct for estimated
* remaining battery. Decoding funtion allready in place.
*/
-
+
static inline void REC_MAVLINK_MSG_ID_SYS_STATUS(const mavlink_message_t* msg) {
telemetry_data.vbat = mavlink_msg_sys_status_get_voltage_battery(msg) / 100; // Voltage * 10
telemetry_data.ibat = mavlink_msg_sys_status_get_current_battery(msg) / 10;
@@ -204,48 +204,48 @@ static inline void REC_MAVLINK_MSG_ID_VFR_HUD(const mavlink_message_t* msg) {
/*! \brief Heartbeat message
* \details Heartbeat message is used for the following information:
- * type and autopilot is used to determain if the UAV is a ArduPlane or Arducopter
+ * type and autopilot is used to determine if the UAV is an ArduPlane or Arducopter
*/
-static inline void REC_MAVLINK_MSG_ID_HEARTBEAT(const mavlink_message_t* msg) {
+static inline void REC_MAVLINK_MSG_ID_HEARTBEAT(const mavlink_message_t* msg) {
telemetry_data.mode = mavlink_msg_heartbeat_get_base_mode(msg);
- telemetry_data.custom_mode = mavlink_msg_heartbeat_get_custom_mode(msg);
+ telemetry_data.custom_mode = mavlink_msg_heartbeat_get_custom_mode(msg);
telemetry_data.status = mavlink_msg_heartbeat_get_system_status(msg);
telemetry_data.mav_sysid = msg->sysid;
telemetry_data.mav_compid = msg->compid;
uint8_t type = mavlink_msg_heartbeat_get_type(msg);
uint8_t autopilot = mavlink_msg_heartbeat_get_autopilot(msg);
- if ((type != telemetry_data.type) || (autopilot != telemetry_data.autopilot))
- {
+ if (type != telemetry_data.type || autopilot != telemetry_data.autopilot) {
telemetry_data.type = mavlink_msg_heartbeat_get_type(msg);
telemetry_data.autopilot = mavlink_msg_heartbeat_get_autopilot(msg);
- if (autopilot == MAV_AUTOPILOT_ARDUPILOTMEGA)
- {
- if ((type == MAV_TYPE_QUADROTOR) ||
- (type == MAV_TYPE_COAXIAL) ||
- (type == MAV_TYPE_HELICOPTER) ||
- (type == MAV_TYPE_HEXAROTOR) ||
- (type == MAV_TYPE_OCTOROTOR) ||
- (type == MAV_TYPE_TRICOPTER))
- {
- telemetry_data.type_autopilot = MAVLINK_ARDUCOPTER;
- }
- else if (type == MAV_TYPE_FIXED_WING)
- {
- telemetry_data.type_autopilot = MAVLINK_ARDUPLANE;
- }
- else
+ if (autopilot == MAV_AUTOPILOT_ARDUPILOTMEGA) {
+ if (type == MAV_TYPE_QUADROTOR ||
+ type == MAV_TYPE_COAXIAL ||
+ type == MAV_TYPE_HELICOPTER ||
+ type == MAV_TYPE_HEXAROTOR ||
+ type == MAV_TYPE_OCTOROTOR ||
+ type == MAV_TYPE_TRICOPTER) {
+ telemetry_data.type_autopilot = MAVLINK_ARDUCOPTER;
+ }
+ else if (type == MAV_TYPE_FIXED_WING) {
+ telemetry_data.type_autopilot = MAVLINK_ARDUPLANE;
+ }
+ else {
telemetry_data.type_autopilot = MAVLINK_INVALID_TYPE;
+ }
}
- else
+ else {
telemetry_data.type_autopilot = MAVLINK_INVALID_TYPE;
+ }
}
- telemetry_data.active = (telemetry_data.mode & MAV_MODE_FLAG_SAFETY_ARMED) ? true : false;
+ telemetry_data.active = (telemetry_data.mode & MAV_MODE_FLAG_SAFETY_ARMED) ? true : false;
mav_heartbeat = 3; // 450ms display '*'
mav_heartbeat_recv = 1;
}
+
static inline void REC_MAVLINK_MSG_ID_HIL_CONTROLS(const mavlink_message_t* msg) {
telemetry_data.nav_mode = mavlink_msg_hil_controls_get_mode(msg);
}
+
/*! \brief Process GPS raw intger message
* \details This message contains the following data:
* - fix type: 0-1: no fix, 2: 2D fix, 3: 3D fix.
@@ -257,7 +257,7 @@ static inline void REC_MAVLINK_MSG_ID_HIL_CONTROLS(const mavlink_message_t* msg)
*/
static inline void REC_MAVLINK_MSG_ID_GPS_RAW_INT(const mavlink_message_t* msg) {
telemetry_data.fix_type = mavlink_msg_gps_raw_int_get_fix_type(msg);
- telemetry_data.loc_current.lat = mavlink_msg_gps_raw_int_get_lat(msg) / 1E7;
+ telemetry_data.loc_current.lat = mavlink_msg_gps_raw_int_get_lat(msg) / 1E7;
telemetry_data.loc_current.lon = mavlink_msg_gps_raw_int_get_lon(msg) / 1E7;
telemetry_data.loc_current.gps_alt = mavlink_msg_gps_raw_int_get_alt(msg) / 1E3;
telemetry_data.eph = mavlink_msg_gps_raw_int_get_eph(msg) / 100.0;
@@ -266,26 +266,25 @@ static inline void REC_MAVLINK_MSG_ID_GPS_RAW_INT(const mavlink_message_t* msg)
telemetry_data.satellites_visible = mavlink_msg_gps_raw_int_get_satellites_visible(msg);
}
-
#ifdef MAVLINK_PARAMS
-const pm_char * getParamId(uint8_t idx) {
- const pm_char *mav_params_id [((NB_PID_PARAMS / 2) + 4)] = { //
- //
- PSTR("RATE_YAW"), // Rate Yaw
- PSTR("STB_YAW"), // Stabilize Yaw
- PSTR("RATE_PIT"), // Rate Pitch
- PSTR("STB_PIT"), // Stabilize Pitch
- PSTR("RATE_RLL"), // Rate Roll
- PSTR("STB_RLL"), // Stabilize Roll
- PSTR("THR_ALT"), // PSTR("THR_BAR"), // Altitude Hold
- PSTR("HLD_LON"), // Loiter
- PSTR("HLD_LAT"), // Loiter
- PSTR("NAV_LON"), // Nav WP
- PSTR("NAV_LAT"), // Nav WP
- PSTR("LOW_VOLT"), // Battery low voltage
- PSTR("VOLT_DIVIDER"), //
- PSTR("BATT_MONITOR"), //
- PSTR("BATT_CAPACITY") };
+const pm_char *getParamId(uint8_t idx) {
+ const pm_char *mav_params_id [((NB_PID_PARAMS / 2) + 4)] = {
+ PSTR("RATE_YAW"), // Rate Yaw
+ PSTR("STB_YAW"), // Stabilize Yaw
+ PSTR("RATE_PIT"), // Rate Pitch
+ PSTR("STB_PIT"), // Stabilize Pitch
+ PSTR("RATE_RLL"), // Rate Roll
+ PSTR("STB_RLL"), // Stabilize Roll
+ PSTR("THR_ALT"), // PSTR("THR_BAR"), // Altitude Hold
+ PSTR("HLD_LON"), // Loiter
+ PSTR("HLD_LAT"), // Loiter
+ PSTR("NAV_LON"), // Nav WP
+ PSTR("NAV_LAT"), // Nav WP
+ PSTR("LOW_VOLT"), // Battery low voltage
+ PSTR("VOLT_DIVIDER"), //
+ PSTR("BATT_MONITOR"), //
+ PSTR("BATT_CAPACITY")
+ };
uint8_t i;
if (idx < NB_PID_PARAMS) {
i = idx / 2;
@@ -433,7 +432,7 @@ static inline void handleMessage(mavlink_message_t* p_rxmsg) {
break;
case MAVLINK_MSG_ID_VFR_HUD:
REC_MAVLINK_MSG_ID_VFR_HUD(p_rxmsg);
- break;
+ break;
case MAVLINK_MSG_ID_HIL_CONTROLS:
REC_MAVLINK_MSG_ID_HIL_CONTROLS(p_rxmsg);
break;
@@ -453,8 +452,8 @@ static inline void handleMessage(mavlink_message_t* p_rxmsg) {
/*! \brief Mavlink message parser
* \details Parses the characters in to a mavlink message.
- * Case statement parses each character as it is recieved.
- * \attention One big change form the 0.9 to 1.0 version is the
+ * Case statement parses each character as it is recieved.
+ * \attention One big change form the 0.9 to 1.0 version is the
* MAVLINK_CRC_EXTRA. This requires the mavlink_message_crcs array of 256 bytes.
* \todo create dot for the statemachine
*/
@@ -464,9 +463,9 @@ static void MAVLINK_parse_char(uint8_t c) {
//! The currently decoded message
static mavlink_message_t* p_rxmsg = &m_mavlink_message;
//! The current decode status
- mavlink_status_t* p_status = mavlink_get_channel_status(MAVLINK_COMM_0);
-
-
+ mavlink_status_t* p_status = mavlink_get_channel_status(MAVLINK_COMM_0);
+
+
#if MAVLINK_CRC_EXTRA
static const uint8_t mavlink_message_crcs[256] PROGMEM = MAVLINK_MESSAGE_CRCS;
#define MAVLINK_MESSAGE_CRC(msgid) mavlink_message_crcs[msgid]
@@ -715,7 +714,7 @@ static inline void MAVLINK_msg_set_mode_send(uint8_t mode) {
#endif
/*! \brief Telemetry monitoring, calls \link MAVLINK10mspoll.
* \todo Reimplemnt \link MAVLINK10mspoll
- *
+ *
*/
void telemetryWakeup() {
uint16_t tmr10ms = get_tmr10ms();
diff --git a/radio/src/templates.cpp b/radio/src/templates.cpp
index e5b10dad1..a4cd243a5 100644
--- a/radio/src/templates.cpp
+++ b/radio/src/templates.cpp
@@ -178,7 +178,13 @@ void applyTemplate(uint8_t idx)
// Simple 4-Ch
case TMPL_SIMPLE_4CH:
clearInputs();
- applyDefaultTemplate();
+#if defined(PCBTARANIS)
+ #pragma message("Templates with virtual inputs (FrSky Taranis) are not implemented!")
+#endif
+ setDest(ICC(STK_RUD), MIXSRC_Rud);
+ setDest(ICC(STK_ELE), MIXSRC_Ele);
+ setDest(ICC(STK_THR), MIXSRC_Thr);
+ setDest(ICC(STK_AIL), MIXSRC_Ail);
break;
// Sticky-T-Cut
@@ -203,9 +209,6 @@ void applyTemplate(uint8_t idx)
// Elevon\\Delta
case TMPL_ELEVON_DELTA:
defaultInputs();
-#if defined(PCBTARANIS)
- #pragma message("Templates below are not implemented (only V-TAIL has been done). Feel free to help!")
-#endif
setDest(ICC(STK_ELE), MIXSRC_Ele, true);
setDest(ICC(STK_ELE), MIXSRC_Ail);
setDest(ICC(STK_AIL), MIXSRC_Ele, true);