diff --git a/DONATIONS.txt b/DONATIONS.txt index fef01b05d..4726c31f0 100644 --- a/DONATIONS.txt +++ b/DONATIONS.txt @@ -95,8 +95,8 @@ Heinrich Illig Michael Collins Michael Manning Craig Lorentz -Jonathan Modellismo - http://jonathan.it -Aviomotive - http://www.aviomotive.com +Jonathan Modellismo - jonathan.it +Aviomotive - www.aviomotive.com André Lasseret Felipe Alexandre de Oliveira Brian Harris @@ -126,7 +126,7 @@ Larisa Filocamo Alex Calderhead Hartmut Sahm Åke Brodin -Aloft Hobbies - http://www.alofthobbies.com +Aloft Hobbies - www.alofthobbies.com Ted Moss Filippos Tigarakis Chewytm @@ -288,3 +288,13 @@ Josep Clodas Sola Thierry Martin Peter Mauro Mitchell Brenner +Ulach Green +Lluis Bullich Rañe +Steffen Rohr +Eric Jacquin +Harvest Lane +Ville Kuvaja +DK-System +Heinz Vogel +Heung Jin Choi +MMJS van der Helm diff --git a/README.md b/README.md new file mode 100644 index 000000000..1b9c5331e --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +##OpenTX Next Branch + +You have found your way to the GitHub repository site for the OpenTX Next Branch. This code branch holds the source code for the ongoing development. + +The stable release code is not here, it is in the master branch. +Under no circumstances build and use software from this branch for real world application. At times you will be more or less guaranteed to crash your plane and destroy all your model settings. + +Refer to the opentx.wiki for information about setting up the tool chains for building OpenTX and OpenTX Companion as well as other development related issues. diff --git a/README.txt b/README.txt deleted file mode 100644 index 8f6415cbd..000000000 --- a/README.txt +++ /dev/null @@ -1 +0,0 @@ -[to be written] diff --git a/companion/src/CMakeLists.txt b/companion/src/CMakeLists.txt index 8ec853eaa..8e64805b7 100644 --- a/companion/src/CMakeLists.txt +++ b/companion/src/CMakeLists.txt @@ -1,7 +1,7 @@ PROJECT( companion ) SET( C9X_VERSION_MAJOR "1" ) -SET( C9X_VERSION_MINOR "51" ) +SET( C9X_VERSION_MINOR "52" ) SET( C9X_VERSION ${C9X_VERSION_MAJOR}.${C9X_VERSION_MINOR} ) CMAKE_MINIMUM_REQUIRED( VERSION 2.8 ) @@ -234,7 +234,7 @@ IF ( SDL_FOUND ) ENDIF( ) SET( companion_RCS - companion9x.qrc + companion.qrc ${CMAKE_CURRENT_BINARY_DIR}/translations.qrc ) diff --git a/companion/src/avroutputdialog.ui b/companion/src/avroutputdialog.ui index 54ecf8d74..ded09363e 100644 --- a/companion/src/avroutputdialog.ui +++ b/companion/src/avroutputdialog.ui @@ -32,7 +32,7 @@ Dialog - + :/icon.png:/icon.png @@ -109,7 +109,7 @@ - + diff --git a/companion/src/burnconfigdialog.cpp b/companion/src/burnconfigdialog.cpp index f4440b05f..e0ea4a63e 100644 --- a/companion/src/burnconfigdialog.cpp +++ b/companion/src/burnconfigdialog.cpp @@ -2,6 +2,7 @@ #include "ui_burnconfigdialog.h" #include "avroutputdialog.h" #include "eeprominterface.h" +#include "helpers.h" #include #if !defined WIN32 && defined __GNUC__ @@ -82,7 +83,7 @@ burnConfigDialog::~burnConfigDialog() void burnConfigDialog::getSettings() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; #if defined WIN32 || !defined __GNUC__ avrLoc = settings.value("avrdude_location", QFileInfo("avrdude.exe").absoluteFilePath()).toString(); sambaLoc = settings.value("samba_location", QFileInfo("sam-ba.exe").absoluteFilePath()).toString(); @@ -136,7 +137,7 @@ void burnConfigDialog::getSettings() void burnConfigDialog::putSettings() { - QSettings settings("companion9x", "companion9x"); + QSettings settings; settings.setValue("avrdude_location", avrLoc); settings.setValue("programmer", avrProgrammer); settings.setValue("mcu", avrMCU); @@ -278,8 +279,9 @@ void burnConfigDialog::listProgrammers() QStringList arguments; arguments << "-c?"; avrOutputDialog *ad = new avrOutputDialog(this, ui->avrdude_location->text(), arguments, "List available programmers", AVR_DIALOG_KEEP_OPEN, TRUE); - ad->setWindowIcon(QIcon(":/images/list.png")); + ad->setWindowIcon(CompanionIcon("list.png")); ad->show(); + delete ad; } void burnConfigDialog::on_pushButton_3_clicked() @@ -295,8 +297,9 @@ void burnConfigDialog::on_pushButton_4_clicked() arguments << "-?"; avrOutputDialog *ad = new avrOutputDialog(this, ui->avrdude_location->text(), arguments, "Show help", AVR_DIALOG_KEEP_OPEN,TRUE); - ad->setWindowIcon(QIcon(":/images/configure.png")); + ad->setWindowIcon(CompanionIcon("configure.png")); ad->show(); + delete ad; } @@ -312,8 +315,9 @@ void burnConfigDialog::readFuses() arguments << "-c" << avrProgrammer << "-p" << avrMCU << args << str; avrOutputDialog *ad = new avrOutputDialog(this, avrLoc, arguments, "Read Fuses",AVR_DIALOG_KEEP_OPEN,TRUE); - ad->setWindowIcon(QIcon(":/images/fuses.png")); + ad->setWindowIcon(CompanionIcon("fuses.png")); ad->show(); + delete ad; } void burnConfigDialog::restFuses(bool eeProtect) @@ -324,7 +328,6 @@ void burnConfigDialog::restFuses(bool eeProtect) //avrdude -c usbasp -p m64 -U efuse:w:<0xFF>:m QMessageBox::StandardButton ret = QMessageBox::No; - ret = QMessageBox::warning(this, tr("Companion"), tr("WARNING!
This will reset the fuses of %1 to the factory settings.
Writing fuses can mess up your radio.
Do this only if you are sure they are wrong!
Are you sure you want to continue?").arg(avrMCU), QMessageBox::Yes | QMessageBox::No); @@ -338,7 +341,8 @@ void burnConfigDialog::restFuses(bool eeProtect) QString erStr = eeProtect ? "hfuse:w:0x11:m" : "hfuse:w:0x19:m"; str << "-U" << "lfuse:w:0xD7:m" << "-U" << erStr << "-U" << "efuse:w:0xFC:m"; //use hfuse = 0x81 to prevent eeprom being erased with every flashing - } else { + } + else { QString tempDir = QDir::tempPath(); QString tempFile; QString lfuses; @@ -346,8 +350,9 @@ void burnConfigDialog::restFuses(bool eeProtect) QStringList argread; argread << "-c" << avrProgrammer << "-p" << avrMCU << args <<"-U" << "lfuse:r:"+tempFile+":r" ; avrOutputDialog *ad = new avrOutputDialog(this, avrLoc, argread, "Reset Fuses",AVR_DIALOG_CLOSE_IF_SUCCESSFUL,FALSE); - ad->setWindowIcon(QIcon(":/images/fuses.png")); + ad->setWindowIcon(CompanionIcon("fuses.png")); ad->exec(); + delete ad; QFile file(tempFile); if (file.exists() && file.size()==1) { file.open(QIODevice::ReadOnly); @@ -355,12 +360,14 @@ void burnConfigDialog::restFuses(bool eeProtect) file.read(bin_flash, 1); if (bin_flash[0]==0x0E) { lfuses="lfuse:w:0x0E:m"; - } else { + } + else { lfuses="lfuse:w:0x3F:m"; } file.close(); unlink(tempFile.toAscii()); - } else { + } + else { lfuses="lfuse:w:0x3F:m"; } @@ -371,12 +378,14 @@ void burnConfigDialog::restFuses(bool eeProtect) QStringList arguments; if (avrMCU=="m2560") { arguments << "-c" << avrProgrammer << "-p" << avrMCU << args << "-u" << str; - } else { + } + else { arguments << "-c" << avrProgrammer << "-p" << avrMCU << args << "-B" << "100" << "-u" << str; } avrOutputDialog *ad = new avrOutputDialog(this, avrLoc, arguments, "Reset Fuses",AVR_DIALOG_KEEP_OPEN,TRUE); - ad->setWindowIcon(QIcon(":/images/fuses.png")); + ad->setWindowIcon(CompanionIcon("fuses.png")); ad->show(); + delete ad; } } @@ -388,24 +397,29 @@ void burnConfigDialog::on_advCtrChkB_toggled(bool checked) if (IS_TARANIS(eepromInterface->getBoard())) { ui->label_dfu2->show(); ui->dfuArgs->show(); - } else if (eepromInterface->getBoard()==BOARD_SKY9X) { + } + else if (eepromInterface->getBoard()==BOARD_SKY9X) { ui->label_sb2->show(); ui->arm_mcu->show(); - } else { + } + else { ui->label_av3->show(); ui->avrdude_mcu->show(); QMessageBox::warning(this, tr("Companion"), tr("WARNING!
Normally CPU type is automatically selected according to the chosen firmware.
If you change the CPU type the resulting eeprom could be inconsistent."), QMessageBox::Ok); } - } else { + } + else { if (IS_TARANIS(eepromInterface->getBoard())) { ui->label_dfu2->hide(); ui->dfuArgs->hide(); - } else if (eepromInterface->getBoard()==BOARD_SKY9X) { + } + else if (eepromInterface->getBoard()==BOARD_SKY9X) { ui->label_sb2->hide(); ui->arm_mcu->hide(); - } else { + } + else { ui->label_av3->hide(); ui->avrdude_mcu->hide(); } diff --git a/companion/src/burnconfigdialog.ui b/companion/src/burnconfigdialog.ui index ba1adbf17..b5419d37f 100644 --- a/companion/src/burnconfigdialog.ui +++ b/companion/src/burnconfigdialog.ui @@ -26,8 +26,8 @@ Programmer Configuration - - :/images/configure.png:/images/configure.png + + :/icon.png:/icon.png @@ -760,7 +760,7 @@ Please only use this if you know what you are doing. There are no error checks buttonBox - + diff --git a/companion/src/burndialog.cpp b/companion/src/burndialog.cpp index c601b23cf..f1d7f5482 100644 --- a/companion/src/burndialog.cpp +++ b/companion/src/burndialog.cpp @@ -16,6 +16,7 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac hexType(Type) { ui->setupUi(this); + ui->libraryButton->setIcon(CompanionIcon("library.png")); ui->SplashFrame->hide(); ui->FramFWInfo->hide(); ui->EEbackupCB->hide(); @@ -26,11 +27,12 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac ui->patchcalib_CB->hide(); ui->patchhw_CB->hide(); ui->InvertColorButton->setDisabled(true); - this->setWindowTitle(tr("Write firmware to TX")); + setWindowTitle(tr("Write firmware to TX")); if (IS_TARANIS(GetEepromInterface()->getBoard())) { ui->EEbackupCB->hide(); } - } else { + } + else { ui->FlashLoadButton->setText(tr("Browse for file")); ui->profile_label->hide(); ui->patchcalib_CB->hide(); @@ -51,11 +53,12 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac ui->BurnFlashButton->setDisabled(true); ui->EEbackupCB->hide(); if (DocName.isEmpty()) { - this->setWindowTitle(tr("Write Models and Settings to TX")); - } else { - this->setWindowTitle(tr("Write Models and Settings in %1 to TX").arg(DocName)); + setWindowTitle(tr("Write Models and Settings to TX")); } - QSettings settings("companion9x", "companion9x"); + else { + setWindowTitle(tr("Write Models and Settings in %1 to TX").arg(DocName)); + } + QSettings settings; int profileid=settings.value("profileId", 1).toInt(); settings.beginGroup("Profiles"); QString profile=QString("profile%1").arg(profileid); @@ -69,10 +72,11 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac ui->FWFileName->setText(*hexfileName); if (Type==2) { checkFw(*hexfileName); - } else { + } + else { burnraw=false; if (checkeEprom(*hexfileName)) { - QSettings settings("companion9x", "companion9x"); + QSettings settings; int profileid=settings.value("profileId", 1).toInt(); settings.beginGroup("Profiles"); QString profile=QString("profile%1").arg(profileid); @@ -97,12 +101,14 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac if (!((DisplaySet.length()==6) && (BeeperSet.length()==4) && (HapticSet.length()==6) && (SpeakerSet.length()==6))) { ui->patchhw_CB->setDisabled(true); } - } else { + } + else { ui->profile_label->hide(); } if (!IS_TARANIS(GetEepromInterface()->getBoard())) { ui->EEpromCB->show(); - } else { + } + else { ui->EEpromCB->setChecked(false); } ui->BurnFlashButton->setEnabled(true); @@ -113,7 +119,7 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac hexfileName->clear(); } else if (Type==2) { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString FileName; FileName = settings.value("lastFw").toString(); QFile file(FileName); @@ -124,14 +130,15 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac resize(0, 0); } -burnDialog::~burnDialog() { +burnDialog::~burnDialog() +{ delete ui; } void burnDialog::on_FlashLoadButton_clicked() { QString fileName; - QSettings settings("companion9x", "companion9x"); + QSettings settings; ui->ImageLoadButton->setDisabled(true); ui->libraryButton->setDisabled(true); ui->InvertColorButton->setDisabled(true); @@ -150,7 +157,8 @@ void burnDialog::on_FlashLoadButton_clicked() if (hexType==2) { fileName = QFileDialog::getOpenFileName(this, tr("Open"), settings.value("lastFlashDir").toString(), FLASH_FILES_FILTER); checkFw(fileName); - } else { + } + else { QString fileName = QFileDialog::getOpenFileName(this,tr("Choose file to load Models and Settings from"), settings.value("lastDir").toString(), tr(EXTERNAL_EEPROM_FILES_FILTER)); if (checkeEprom(fileName)) { if (burnraw==false) { @@ -160,10 +168,12 @@ void burnDialog::on_FlashLoadButton_clicked() ui->patchhw_CB->show(); if (!IS_TARANIS(GetEepromInterface()->getBoard())) { ui->EEpromCB->show(); - } else { + } + else { ui->EEpromCB->setChecked(false); } - } else { + } + else { ui->BurnFlashButton->setEnabled(true); ui->profile_label->hide(); ui->patchcalib_CB->setChecked(false); @@ -181,10 +191,11 @@ void burnDialog::checkFw(QString fileName) if (fileName.isEmpty()) { return; } - QSettings settings("companion9x", "companion9x"); + QSettings settings; if (!IS_TARANIS(GetEepromInterface()->getBoard())) { ui->EEbackupCB->show(); - } else { + } + else { ui->EEbackupCB->setChecked(false); *backup=false; } @@ -223,23 +234,27 @@ void burnDialog::checkFw(QString fileName) ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height()).convertToFormat(flash.getSplashFormat()))); ui->PatchFWCB->setEnabled(true); ui->PatchFWCB->setChecked(PatchFwCB); - } else { + } + else { ui->PatchFWCB->setDisabled(true); ui->PatchFWCB->setChecked(false); ui->PreferredImageCB->setDisabled(true); } - } else { + } + else { ui->PatchFWCB->setDisabled(true); ui->PatchFWCB->setChecked(false); ui->PreferredImageCB->setDisabled(true); } } - } else { + } + else { ui->FwImage->hide(); ui->ImageFileName->setText(""); ui->SplashFrame->hide(); } - } else { + } + else { QMessageBox::warning(this, tr("Warning"), tr("%1 is not a known firmware").arg(fileName)); ui->BurnFlashButton->setText(tr("Burn anyway !")); ui->BurnFlashButton->setEnabled(true); @@ -267,7 +282,8 @@ bool burnDialog::checkeEprom(QString fileName) } QTextStream inputStream(&file); XmlInterface(inputStream).load(radioData); - } else if (fileType==FILE_TYPE_HEX || fileType==FILE_TYPE_EEPE) { //read HEX file + } + else if (fileType==FILE_TYPE_HEX || fileType==FILE_TYPE_EEPE) { //read HEX file if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { //reading HEX TEXT file QMessageBox::critical(this, tr("Error"),tr("Error opening file %1:\n%2.").arg(fileName).arg(file.errorString())); return false; @@ -310,7 +326,8 @@ bool burnDialog::checkeEprom(QString fileName) ui->FWFileName->setText(fileName); return true; } - } else if (fileType==FILE_TYPE_BIN) { //read binary + } + else if (fileType==FILE_TYPE_BIN) { //read binary int eeprom_size = file.size(); if (!file.open(QFile::ReadOnly)) { //reading binary file - TODO HEX support QMessageBox::critical(this, tr("Error"),tr("Error opening file %1:\n%2.").arg(fileName).arg(file.errorString())); @@ -343,7 +360,7 @@ void burnDialog::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)); @@ -365,17 +382,16 @@ void burnDialog::on_ImageLoadButton_clicked() int gray; int width = image.width(); int height = image.height(); - for (int i = 0; i < width; ++i) - { - for (int j = 0; j < height; ++j) - { - col = image.pixel(i, j); - gray = qGray(col); - image.setPixel(i, j, qRgb(gray, gray, gray)); - } + for (int i = 0; i < width; ++i) { + for (int j = 0; j < height; ++j) { + col = image.pixel(i, j); + gray = qGray(col); + image.setPixel(i, j, qRgb(gray, gray, gray)); + } } ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height()))); - } else { + } + else { ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height()).convertToFormat(QImage::Format_Mono))); } ui->PatchFWCB->setEnabled(true); @@ -426,7 +442,7 @@ void burnDialog::on_BurnFlashButton_clicked() if (hexType==2) { QString fileName=ui->FWFileName->text(); if (!fileName.isEmpty()) { - QSettings settings("companion9x", "companion9x"); + QSettings settings; settings.setValue("lastFlashDir", QFileInfo(fileName).dir().absolutePath()); settings.setValue("lastFw", fileName); if (ui->PatchFWCB->isChecked()) { @@ -463,7 +479,7 @@ void burnDialog::on_BurnFlashButton_clicked() } } if (hexType==1) { - QSettings settings("companion9x", "companion9x"); + QSettings settings; int profileid=settings.value("profileId", 1).toInt(); settings.beginGroup("Profiles"); QString profile=QString("profile%1").arg(profileid); @@ -640,7 +656,7 @@ void burnDialog::on_PreferredImageCB_toggled(bool checked) { QString tmpFileName; if (checked) { - QSettings settings("companion9x", "companion9x"); + QSettings settings; QString ImageStr = settings.value("SplashImage", "").toString(); if (!ImageStr.isEmpty()) { QImage Image = qstring2image(ImageStr); diff --git a/companion/src/burndialog.ui b/companion/src/burndialog.ui index 7c739d0a1..e86634e9a 100644 --- a/companion/src/burndialog.ui +++ b/companion/src/burndialog.ui @@ -26,8 +26,8 @@ Customize Splash - - :/images/c_home.png:/images/c_home.png + + :/icon.png:/icon.png @@ -455,10 +455,6 @@ ... - - - :/images/library.png:/images/library.png - 16 @@ -488,7 +484,7 @@ BurnFlashButton - + diff --git a/companion/src/companion.qrc b/companion/src/companion.qrc new file mode 100644 index 000000000..34831d7c6 --- /dev/null +++ b/companion/src/companion.qrc @@ -0,0 +1,1001 @@ + + + images/customize.png + icon.png + ../../CREDITS.txt + ../../DONATIONS.txt + ../releasenotes.txt + images/9xdb.png + images/9xdl.png + images/9xdr.png + images/9xdt.png + images/9xdb-bl.png + images/9xdl-bl.png + images/9xdr-bl.png + images/9xdt-bl.png + images/9xdb-gr.png + images/9xdl-gr.png + images/9xdr-gr.png + images/9xdt-gr.png + images/9xdb-or.png + images/9xdl-or.png + images/9xdr-or.png + images/9xdt-or.png + images/9xdb-yl.png + images/9xdl-yl.png + images/9xdr-yl.png + images/9xdt-yl.png + images/9xdb-rd.png + images/9xdl-rd.png + images/9xdr-rd.png + images/9xdt-rd.png + images/9xmenu.png + images/9xmenumenu.png + images/9xmenuexit.png + images/9xcurs.png + images/9xcursup.png + images/9xcursplus.png + images/9xcursmin.png + images/9xcursdown.png + images/9xcursphoto.png + images/screenshot.png + images/splash.png + images/splasht.png + images/companion-title.png + images/maps.png + images/track.png + images/track0.png + images/x9b0.png + images/x9l0.png + images/x9l1.png + images/x9l2.png + images/x9l3.png + images/x9l4.png + images/x9r0.png + images/x9r1.png + images/x9r2.png + images/x9r3.png + images/x9s0.png + images/x9t0.png + images/mcw/aicon.png + images/mcw/dicon.png + images/mcw/gicon.png + images/mcw/hicon.png + images/mcw/at1e1r.png + images/mcw/at2e1r.png + images/mcw/atailv.png + images/mcw/aw0a0f.png + images/mcw/aw1a0f.png + images/mcw/aw1a1f.png + images/mcw/aw1a2f.png + images/mcw/aw2a0f.png + images/mcw/aw2a1f.png + images/mcw/aw2a2f.png + images/mcw/h90.png + images/mcw/h120.png + images/mcw/h120x.png + images/mcw/h140.png + images/mcw/hfbl.png + images/mcw/htailg.png + images/mcw/htailng.png + images/mcw/htailfblg.png + images/mcw/htailfblng.png + images/mcw/gt1e1r.png + images/mcw/gt2e1r.png + images/mcw/gtailv.png + images/mcw/gw0t0a0f0s.png + images/mcw/gw0t1a0f0s.png + images/mcw/gw0t1a0f1s.png + images/mcw/gw0t1a0f2s.png + images/mcw/gw0t1a1f0s.png + images/mcw/gw0t1a1f1s.png + images/mcw/gw0t1a1f2s.png + images/mcw/gw0t1a2f0s.png + images/mcw/gw0t1a2f1s.png + images/mcw/gw0t1a2f2s.png + images/mcw/gw0t2a0f0s.png + images/mcw/gw0t2a0f1s.png + images/mcw/gw0t2a0f2s.png + images/mcw/gw0t2a1f0s.png + images/mcw/gw0t2a1f1s.png + images/mcw/gw0t2a1f2s.png + images/mcw/gw0t2a2f0s.png + images/mcw/gw0t2a2f1s.png + images/mcw/gw0t2a2f2s.png + images/mcw/gw1t0a0f0s.png + images/mcw/gw1t1a0f0s.png + images/mcw/gw1t1a0f1s.png + images/mcw/gw1t1a0f2s.png + images/mcw/gw1t1a1f0s.png + images/mcw/gw1t1a1f1s.png + images/mcw/gw1t1a1f2s.png + images/mcw/gw1t1a2f0s.png + images/mcw/gw1t1a2f1s.png + images/mcw/gw1t1a2f2s.png + images/mcw/gw1t2a0f0s.png + images/mcw/gw1t2a0f1s.png + images/mcw/gw1t2a0f2s.png + images/mcw/gw1t2a1f0s.png + images/mcw/gw1t2a1f1s.png + images/mcw/gw1t2a1f2s.png + images/mcw/gw1t2a2f0s.png + images/mcw/gw1t2a2f1s.png + images/mcw/gw1t2a2f2s.png + images/mcw/db0t2e0f0r.png + images/mcw/db0t2e0f1r.png + images/mcw/db0t2e0f2r.png + images/mcw/db0t2e1f0r.png + images/mcw/db0t2e1f1r.png + images/mcw/db0t2e1f2r.png + images/mcw/db0t2e2f0r.png + images/mcw/db0t2e2f1r.png + images/mcw/db0t2e2f2r.png + images/mcw/db1t2e0f0r.png + images/mcw/db1t2e0f1r.png + images/mcw/db1t2e0f2r.png + images/mcw/db1t2e1f0r.png + images/mcw/db1t2e1f1r.png + images/mcw/db1t2e1f2r.png + images/mcw/db1t2e2f0r.png + images/mcw/db1t2e2f1r.png + images/mcw/db1t2e2f2r.png + images/mcw/dt0t2e0f0r.png + images/mcw/dt0t2e0f1r.png + images/mcw/dt0t2e0f2r.png + images/mcw/dt0t2e1f0r.png + images/mcw/dt0t2e1f1r.png + images/mcw/dt0t2e1f2r.png + images/mcw/dt0t2e2f0r.png + images/mcw/dt0t2e2f1r.png + images/mcw/dt0t2e2f2r.png + images/mcw/dt1t2e0f0r.png + images/mcw/dt1t2e0f1r.png + images/mcw/dt1t2e0f2r.png + images/mcw/dt1t2e1f0r.png + images/mcw/dt1t2e1f1r.png + images/mcw/dt1t2e1f2r.png + images/mcw/dt1t2e2f0r.png + images/mcw/dt1t2e2f1r.png + images/mcw/dt1t2e2f2r.png + images/library/00001.png + images/library/00002.png + images/library/00003.png + images/library/00004.png + images/library/00005.png + images/library/00006.png + images/library/00007.png + images/library/00008.png + images/library/00009.png + images/library/00010.png + images/library/00011.png + images/library/00012.png + images/library/00013.png + images/library/00014.png + images/library/00015.png + images/library/00016.png + images/library/01001.png + images/library/01002.png + images/library/01003.png + images/library/01004.png + images/library/01005.png + images/library/01006.png + images/library/01007.png + images/library/01008.png + images/library/10001.png + images/library/10002.png + images/library/10003.png + images/library/10004.png + images/library/10005.png + images/library/10006.png + images/library/10007.png + images/library/10008.png + images/library/10009.png + images/library/10010.png + images/library/10011.png + images/library/10012.png + images/library/10013.png + images/library/10014.png + images/library/10015.png + images/library/10016.png + images/library/10017.png + images/library/10018.png + images/library/10019.png + images/library/10020.png + images/library/10021.png + images/library/10022.png + images/library/10023.png + images/library/10024.png + images/library/10033.png + images/library/10034.png + images/library/10035.png + images/library/10036.png + images/library/10049.png + images/library/10050.png + images/library/10051.png + images/library/10052.png + images/library/10037.png + images/library/10038.png + images/library/10039.png + images/library/10040.png + images/library/10053.png + images/library/10054.png + images/library/10055.png + images/library/10056.png + images/library/10025.png + images/library/10026.png + images/library/10027.png + images/library/10028.png + images/library/10029.png + images/library/10030.png + images/library/10031.png + images/library/10032.png + images/library/10041.png + images/library/10042.png + images/library/10043.png + images/library/10044.png + images/library/10057.png + images/library/10058.png + images/library/10059.png + images/library/10060.png + images/library/10045.png + images/library/10046.png + images/library/10047.png + images/library/10048.png + images/library/10061.png + images/library/10062.png + images/library/10063.png + images/library/10064.png + images/library/10065.png + images/library/10066.png + images/library/10067.png + images/library/10068.png + images/library/10081.png + images/library/10082.png + images/library/10083.png + images/library/10084.png + images/library/10069.png + images/library/10070.png + images/library/10071.png + images/library/10072.png + images/library/10085.png + images/library/10086.png + images/library/10087.png + images/library/10088.png + images/library/10073.png + images/library/10074.png + images/library/10075.png + images/library/10076.png + images/library/10089.png + images/library/10090.png + images/library/10091.png + images/library/10092.png + images/library/10077.png + images/library/10078.png + images/library/10079.png + images/library/10080.png + images/library/10093.png + images/library/10094.png + images/library/10095.png + images/library/10096.png + images/library/10097.png + images/library/10098.png + images/library/10099.png + images/library/10100.png + images/library/10101.png + images/library/10102.png + images/library/10103.png + images/library/10104.png + images/library/20001.png + images/library/20002.png + images/library/20003.png + images/library/20004.png + images/library/30001.png + images/library/30002.png + images/library/30003.png + images/library/30004.png + themes/monochrome/16/paintbrush.png + themes/monochrome/16/open.png + themes/monochrome/16/edit.png + themes/monochrome/16/information.png + themes/monochrome/16/configure.png + themes/monochrome/16/switch_dir.png + themes/monochrome/16/list.png + themes/monochrome/16/wizard.png + themes/monochrome/16/logs.png + themes/monochrome/16/new.png + themes/monochrome/16/save.png + themes/monochrome/16/recentdocument.png + themes/monochrome/16/simulate.png + themes/monochrome/16/changelog.png + themes/monochrome/16/copy.png + themes/monochrome/16/write_flash.png + themes/monochrome/16/read_eeprom_file.png + themes/monochrome/16/clear.png + themes/monochrome/16/play.png + themes/monochrome/16/fuses.png + themes/monochrome/16/arrow-right.png + themes/monochrome/16/exit.png + themes/monochrome/16/moveup.png + themes/monochrome/16/read_eeprom.png + themes/monochrome/16/cut.png + themes/monochrome/16/arrow-left.png + themes/monochrome/16/write_eeprom_file.png + themes/monochrome/16/library.png + themes/monochrome/16/profiles.png + themes/monochrome/16/paste.png + themes/monochrome/16/print.png + themes/monochrome/16/compare.png + themes/monochrome/16/customize.png + themes/monochrome/16/saveas.png + themes/monochrome/16/preferences.png + themes/monochrome/16/movedown.png + themes/monochrome/16/currentmodel.png + themes/monochrome/16/read_flash.png + themes/monochrome/16/duplicate.png + themes/monochrome/16/add.png + themes/monochrome/16/update.png + themes/monochrome/16/contributors.png + themes/monochrome/16/stop.png + themes/monochrome/16/write_eeprom.png + themes/monochrome/24/paintbrush.png + themes/monochrome/24/open.png + themes/monochrome/24/edit.png + themes/monochrome/24/information.png + themes/monochrome/24/configure.png + themes/monochrome/24/switch_dir.png + themes/monochrome/24/list.png + themes/monochrome/24/wizard.png + themes/monochrome/24/logs.png + themes/monochrome/24/new.png + themes/monochrome/24/save.png + themes/monochrome/24/recentdocument.png + themes/monochrome/24/simulate.png + themes/monochrome/24/changelog.png + themes/monochrome/24/copy.png + themes/monochrome/24/write_flash.png + themes/monochrome/24/read_eeprom_file.png + themes/monochrome/24/clear.png + themes/monochrome/24/play.png + themes/monochrome/24/fuses.png + themes/monochrome/24/arrow-right.png + themes/monochrome/24/exit.png + themes/monochrome/24/moveup.png + themes/monochrome/24/read_eeprom.png + themes/monochrome/24/cut.png + themes/monochrome/24/arrow-left.png + themes/monochrome/24/write_eeprom_file.png + themes/monochrome/24/library.png + themes/monochrome/24/profiles.png + themes/monochrome/24/paste.png + themes/monochrome/24/print.png + themes/monochrome/24/compare.png + themes/monochrome/24/customize.png + themes/monochrome/24/saveas.png + themes/monochrome/24/preferences.png + themes/monochrome/24/movedown.png + themes/monochrome/24/currentmodel.png + themes/monochrome/24/read_flash.png + themes/monochrome/24/duplicate.png + themes/monochrome/24/add.png + themes/monochrome/24/update.png + themes/monochrome/24/contributors.png + themes/monochrome/24/stop.png + themes/monochrome/24/write_eeprom.png + themes/monochrome/32/paintbrush.png + themes/monochrome/32/open.png + themes/monochrome/32/edit.png + themes/monochrome/32/information.png + themes/monochrome/32/configure.png + themes/monochrome/32/switch_dir.png + themes/monochrome/32/list.png + themes/monochrome/32/wizard.png + themes/monochrome/32/logs.png + themes/monochrome/32/new.png + themes/monochrome/32/save.png + themes/monochrome/32/recentdocument.png + themes/monochrome/32/simulate.png + themes/monochrome/32/changelog.png + themes/monochrome/32/copy.png + themes/monochrome/32/write_flash.png + themes/monochrome/32/read_eeprom_file.png + themes/monochrome/32/clear.png + themes/monochrome/32/play.png + themes/monochrome/32/fuses.png + themes/monochrome/32/arrow-right.png + themes/monochrome/32/exit.png + themes/monochrome/32/moveup.png + themes/monochrome/32/read_eeprom.png + themes/monochrome/32/cut.png + themes/monochrome/32/arrow-left.png + themes/monochrome/32/write_eeprom_file.png + themes/monochrome/32/library.png + themes/monochrome/32/profiles.png + themes/monochrome/32/paste.png + themes/monochrome/32/print.png + themes/monochrome/32/compare.png + themes/monochrome/32/customize.png + themes/monochrome/32/saveas.png + themes/monochrome/32/preferences.png + themes/monochrome/32/movedown.png + themes/monochrome/32/currentmodel.png + themes/monochrome/32/read_flash.png + themes/monochrome/32/duplicate.png + themes/monochrome/32/add.png + themes/monochrome/32/update.png + themes/monochrome/32/contributors.png + themes/monochrome/32/stop.png + themes/monochrome/32/write_eeprom.png + themes/monochrome/48/paintbrush.png + themes/monochrome/48/open.png + themes/monochrome/48/edit.png + themes/monochrome/48/information.png + themes/monochrome/48/configure.png + themes/monochrome/48/switch_dir.png + themes/monochrome/48/list.png + themes/monochrome/48/wizard.png + themes/monochrome/48/logs.png + themes/monochrome/48/new.png + themes/monochrome/48/save.png + themes/monochrome/48/recentdocument.png + themes/monochrome/48/simulate.png + themes/monochrome/48/changelog.png + themes/monochrome/48/copy.png + themes/monochrome/48/write_flash.png + themes/monochrome/48/read_eeprom_file.png + themes/monochrome/48/clear.png + themes/monochrome/48/play.png + themes/monochrome/48/fuses.png + themes/monochrome/48/arrow-right.png + themes/monochrome/48/exit.png + themes/monochrome/48/moveup.png + themes/monochrome/48/read_eeprom.png + themes/monochrome/48/cut.png + themes/monochrome/48/arrow-left.png + themes/monochrome/48/write_eeprom_file.png + themes/monochrome/48/library.png + themes/monochrome/48/profiles.png + themes/monochrome/48/paste.png + themes/monochrome/48/print.png + themes/monochrome/48/compare.png + themes/monochrome/48/customize.png + themes/monochrome/48/saveas.png + themes/monochrome/48/preferences.png + themes/monochrome/48/movedown.png + themes/monochrome/48/currentmodel.png + themes/monochrome/48/read_flash.png + themes/monochrome/48/duplicate.png + themes/monochrome/48/add.png + themes/monochrome/48/update.png + themes/monochrome/48/contributors.png + themes/monochrome/48/stop.png + themes/monochrome/48/write_eeprom.png + themes/classic/16/paintbrush.png + themes/classic/16/open.png + themes/classic/16/edit.png + themes/classic/16/information.png + themes/classic/16/configure.png + themes/classic/16/switch_dir.png + themes/classic/16/list.png + themes/classic/16/wizard.png + themes/classic/16/logs.png + themes/classic/16/new.png + themes/classic/16/save.png + themes/classic/16/recentdocument.png + themes/classic/16/simulate.png + themes/classic/16/changelog.png + themes/classic/16/copy.png + themes/classic/16/write_flash.png + themes/classic/16/read_eeprom_file.png + themes/classic/16/clear.png + themes/classic/16/play.png + themes/classic/16/fuses.png + themes/classic/16/arrow-right.png + themes/classic/16/exit.png + themes/classic/16/moveup.png + themes/classic/16/read_eeprom.png + themes/classic/16/cut.png + themes/classic/16/arrow-left.png + themes/classic/16/write_eeprom_file.png + themes/classic/16/library.png + themes/classic/16/profiles.png + themes/classic/16/paste.png + themes/classic/16/print.png + themes/classic/16/compare.png + themes/classic/16/customize.png + themes/classic/16/saveas.png + themes/classic/16/preferences.png + themes/classic/16/movedown.png + themes/classic/16/currentmodel.png + themes/classic/16/read_flash.png + themes/classic/16/duplicate.png + themes/classic/16/add.png + themes/classic/16/update.png + themes/classic/16/contributors.png + themes/classic/16/stop.png + themes/classic/16/write_eeprom.png + themes/classic/24/paintbrush.png + themes/classic/24/open.png + themes/classic/24/edit.png + themes/classic/24/information.png + themes/classic/24/configure.png + themes/classic/24/switch_dir.png + themes/classic/24/list.png + themes/classic/24/wizard.png + themes/classic/24/logs.png + themes/classic/24/new.png + themes/classic/24/save.png + themes/classic/24/recentdocument.png + themes/classic/24/simulate.png + themes/classic/24/changelog.png + themes/classic/24/copy.png + themes/classic/24/write_flash.png + themes/classic/24/read_eeprom_file.png + themes/classic/24/clear.png + themes/classic/24/play.png + themes/classic/24/fuses.png + themes/classic/24/arrow-right.png + themes/classic/24/exit.png + themes/classic/24/moveup.png + themes/classic/24/read_eeprom.png + themes/classic/24/cut.png + themes/classic/24/arrow-left.png + themes/classic/24/write_eeprom_file.png + themes/classic/24/library.png + themes/classic/24/profiles.png + themes/classic/24/paste.png + themes/classic/24/print.png + themes/classic/24/compare.png + themes/classic/24/customize.png + themes/classic/24/saveas.png + themes/classic/24/preferences.png + themes/classic/24/movedown.png + themes/classic/24/currentmodel.png + themes/classic/24/read_flash.png + themes/classic/24/duplicate.png + themes/classic/24/add.png + themes/classic/24/update.png + themes/classic/24/contributors.png + themes/classic/24/stop.png + themes/classic/24/write_eeprom.png + themes/classic/32/paintbrush.png + themes/classic/32/open.png + themes/classic/32/edit.png + themes/classic/32/information.png + themes/classic/32/configure.png + themes/classic/32/switch_dir.png + themes/classic/32/list.png + themes/classic/32/wizard.png + themes/classic/32/logs.png + themes/classic/32/new.png + themes/classic/32/save.png + themes/classic/32/recentdocument.png + themes/classic/32/simulate.png + themes/classic/32/changelog.png + themes/classic/32/copy.png + themes/classic/32/write_flash.png + themes/classic/32/read_eeprom_file.png + themes/classic/32/clear.png + themes/classic/32/play.png + themes/classic/32/fuses.png + themes/classic/32/arrow-right.png + themes/classic/32/exit.png + themes/classic/32/moveup.png + themes/classic/32/read_eeprom.png + themes/classic/32/cut.png + themes/classic/32/arrow-left.png + themes/classic/32/write_eeprom_file.png + themes/classic/32/library.png + themes/classic/32/profiles.png + themes/classic/32/paste.png + themes/classic/32/print.png + themes/classic/32/compare.png + themes/classic/32/customize.png + themes/classic/32/saveas.png + themes/classic/32/preferences.png + themes/classic/32/movedown.png + themes/classic/32/currentmodel.png + themes/classic/32/read_flash.png + themes/classic/32/duplicate.png + themes/classic/32/add.png + themes/classic/32/update.png + themes/classic/32/contributors.png + themes/classic/32/stop.png + themes/classic/32/write_eeprom.png + themes/classic/48/paintbrush.png + themes/classic/48/open.png + themes/classic/48/edit.png + themes/classic/48/information.png + themes/classic/48/configure.png + themes/classic/48/switch_dir.png + themes/classic/48/list.png + themes/classic/48/wizard.png + themes/classic/48/logs.png + themes/classic/48/new.png + themes/classic/48/save.png + themes/classic/48/recentdocument.png + themes/classic/48/simulate.png + themes/classic/48/changelog.png + themes/classic/48/copy.png + themes/classic/48/write_flash.png + themes/classic/48/read_eeprom_file.png + themes/classic/48/clear.png + themes/classic/48/play.png + themes/classic/48/fuses.png + themes/classic/48/arrow-right.png + themes/classic/48/exit.png + themes/classic/48/moveup.png + themes/classic/48/read_eeprom.png + themes/classic/48/cut.png + themes/classic/48/arrow-left.png + themes/classic/48/write_eeprom_file.png + themes/classic/48/library.png + themes/classic/48/profiles.png + themes/classic/48/paste.png + themes/classic/48/print.png + themes/classic/48/compare.png + themes/classic/48/customize.png + themes/classic/48/saveas.png + themes/classic/48/preferences.png + themes/classic/48/movedown.png + themes/classic/48/currentmodel.png + themes/classic/48/read_flash.png + themes/classic/48/duplicate.png + themes/classic/48/add.png + themes/classic/48/update.png + themes/classic/48/contributors.png + themes/classic/48/stop.png + themes/classic/48/write_eeprom.png + themes/monoblue/16/paintbrush.png + themes/monoblue/16/open.png + themes/monoblue/16/edit.png + themes/monoblue/16/information.png + themes/monoblue/16/configure.png + themes/monoblue/16/switch_dir.png + themes/monoblue/16/list.png + themes/monoblue/16/wizard.png + themes/monoblue/16/logs.png + themes/monoblue/16/new.png + themes/monoblue/16/save.png + themes/monoblue/16/recentdocument.png + themes/monoblue/16/simulate.png + themes/monoblue/16/changelog.png + themes/monoblue/16/copy.png + themes/monoblue/16/write_flash.png + themes/monoblue/16/read_eeprom_file.png + themes/monoblue/16/clear.png + themes/monoblue/16/play.png + themes/monoblue/16/fuses.png + themes/monoblue/16/arrow-right.png + themes/monoblue/16/exit.png + themes/monoblue/16/moveup.png + themes/monoblue/16/read_eeprom.png + themes/monoblue/16/cut.png + themes/monoblue/16/arrow-left.png + themes/monoblue/16/write_eeprom_file.png + themes/monoblue/16/library.png + themes/monoblue/16/profiles.png + themes/monoblue/16/paste.png + themes/monoblue/16/print.png + themes/monoblue/16/compare.png + themes/monoblue/16/customize.png + themes/monoblue/16/saveas.png + themes/monoblue/16/preferences.png + themes/monoblue/16/movedown.png + themes/monoblue/16/currentmodel.png + themes/monoblue/16/read_flash.png + themes/monoblue/16/duplicate.png + themes/monoblue/16/add.png + themes/monoblue/16/update.png + themes/monoblue/16/contributors.png + themes/monoblue/16/stop.png + themes/monoblue/16/write_eeprom.png + themes/monoblue/24/paintbrush.png + themes/monoblue/24/open.png + themes/monoblue/24/edit.png + themes/monoblue/24/information.png + themes/monoblue/24/configure.png + themes/monoblue/24/switch_dir.png + themes/monoblue/24/list.png + themes/monoblue/24/wizard.png + themes/monoblue/24/logs.png + themes/monoblue/24/new.png + themes/monoblue/24/save.png + themes/monoblue/24/recentdocument.png + themes/monoblue/24/simulate.png + themes/monoblue/24/changelog.png + themes/monoblue/24/copy.png + themes/monoblue/24/write_flash.png + themes/monoblue/24/read_eeprom_file.png + themes/monoblue/24/clear.png + themes/monoblue/24/play.png + themes/monoblue/24/fuses.png + themes/monoblue/24/arrow-right.png + themes/monoblue/24/exit.png + themes/monoblue/24/moveup.png + themes/monoblue/24/read_eeprom.png + themes/monoblue/24/cut.png + themes/monoblue/24/arrow-left.png + themes/monoblue/24/write_eeprom_file.png + themes/monoblue/24/library.png + themes/monoblue/24/profiles.png + themes/monoblue/24/paste.png + themes/monoblue/24/print.png + themes/monoblue/24/compare.png + themes/monoblue/24/customize.png + themes/monoblue/24/saveas.png + themes/monoblue/24/preferences.png + themes/monoblue/24/movedown.png + themes/monoblue/24/currentmodel.png + themes/monoblue/24/read_flash.png + themes/monoblue/24/duplicate.png + themes/monoblue/24/add.png + themes/monoblue/24/update.png + themes/monoblue/24/contributors.png + themes/monoblue/24/stop.png + themes/monoblue/24/write_eeprom.png + themes/monoblue/32/paintbrush.png + themes/monoblue/32/open.png + themes/monoblue/32/edit.png + themes/monoblue/32/information.png + themes/monoblue/32/configure.png + themes/monoblue/32/switch_dir.png + themes/monoblue/32/list.png + themes/monoblue/32/wizard.png + themes/monoblue/32/logs.png + themes/monoblue/32/new.png + themes/monoblue/32/save.png + themes/monoblue/32/recentdocument.png + themes/monoblue/32/simulate.png + themes/monoblue/32/changelog.png + themes/monoblue/32/copy.png + themes/monoblue/32/write_flash.png + themes/monoblue/32/read_eeprom_file.png + themes/monoblue/32/clear.png + themes/monoblue/32/play.png + themes/monoblue/32/fuses.png + themes/monoblue/32/arrow-right.png + themes/monoblue/32/exit.png + themes/monoblue/32/moveup.png + themes/monoblue/32/read_eeprom.png + themes/monoblue/32/cut.png + themes/monoblue/32/arrow-left.png + themes/monoblue/32/write_eeprom_file.png + themes/monoblue/32/library.png + themes/monoblue/32/profiles.png + themes/monoblue/32/paste.png + themes/monoblue/32/print.png + themes/monoblue/32/compare.png + themes/monoblue/32/customize.png + themes/monoblue/32/saveas.png + themes/monoblue/32/preferences.png + themes/monoblue/32/movedown.png + themes/monoblue/32/currentmodel.png + themes/monoblue/32/read_flash.png + themes/monoblue/32/duplicate.png + themes/monoblue/32/add.png + themes/monoblue/32/update.png + themes/monoblue/32/contributors.png + themes/monoblue/32/stop.png + themes/monoblue/32/write_eeprom.png + themes/monoblue/48/paintbrush.png + themes/monoblue/48/open.png + themes/monoblue/48/edit.png + themes/monoblue/48/information.png + themes/monoblue/48/configure.png + themes/monoblue/48/switch_dir.png + themes/monoblue/48/list.png + themes/monoblue/48/wizard.png + themes/monoblue/48/logs.png + themes/monoblue/48/new.png + themes/monoblue/48/save.png + themes/monoblue/48/recentdocument.png + themes/monoblue/48/simulate.png + themes/monoblue/48/changelog.png + themes/monoblue/48/copy.png + themes/monoblue/48/write_flash.png + themes/monoblue/48/read_eeprom_file.png + themes/monoblue/48/clear.png + themes/monoblue/48/play.png + themes/monoblue/48/fuses.png + themes/monoblue/48/arrow-right.png + themes/monoblue/48/exit.png + themes/monoblue/48/moveup.png + themes/monoblue/48/read_eeprom.png + themes/monoblue/48/cut.png + themes/monoblue/48/arrow-left.png + themes/monoblue/48/write_eeprom_file.png + themes/monoblue/48/library.png + themes/monoblue/48/profiles.png + themes/monoblue/48/paste.png + themes/monoblue/48/print.png + themes/monoblue/48/compare.png + themes/monoblue/48/customize.png + themes/monoblue/48/saveas.png + themes/monoblue/48/preferences.png + themes/monoblue/48/movedown.png + themes/monoblue/48/currentmodel.png + themes/monoblue/48/read_flash.png + themes/monoblue/48/duplicate.png + themes/monoblue/48/add.png + themes/monoblue/48/update.png + themes/monoblue/48/contributors.png + themes/monoblue/48/stop.png + themes/monoblue/48/write_eeprom.png + themes/monowhite/16/paintbrush.png + themes/monowhite/16/open.png + themes/monowhite/16/edit.png + themes/monowhite/16/information.png + themes/monowhite/16/configure.png + themes/monowhite/16/switch_dir.png + themes/monowhite/16/list.png + themes/monowhite/16/wizard.png + themes/monowhite/16/logs.png + themes/monowhite/16/new.png + themes/monowhite/16/save.png + themes/monowhite/16/recentdocument.png + themes/monowhite/16/simulate.png + themes/monowhite/16/changelog.png + themes/monowhite/16/copy.png + themes/monowhite/16/write_flash.png + themes/monowhite/16/read_eeprom_file.png + themes/monowhite/16/clear.png + themes/monowhite/16/play.png + themes/monowhite/16/fuses.png + themes/monowhite/16/arrow-right.png + themes/monowhite/16/exit.png + themes/monowhite/16/moveup.png + themes/monowhite/16/read_eeprom.png + themes/monowhite/16/cut.png + themes/monowhite/16/arrow-left.png + themes/monowhite/16/write_eeprom_file.png + themes/monowhite/16/library.png + themes/monowhite/16/profiles.png + themes/monowhite/16/paste.png + themes/monowhite/16/print.png + themes/monowhite/16/compare.png + themes/monowhite/16/customize.png + themes/monowhite/16/saveas.png + themes/monowhite/16/preferences.png + themes/monowhite/16/movedown.png + themes/monowhite/16/currentmodel.png + themes/monowhite/16/read_flash.png + themes/monowhite/16/duplicate.png + themes/monowhite/16/add.png + themes/monowhite/16/update.png + themes/monowhite/16/contributors.png + themes/monowhite/16/stop.png + themes/monowhite/16/write_eeprom.png + themes/monowhite/24/paintbrush.png + themes/monowhite/24/open.png + themes/monowhite/24/edit.png + themes/monowhite/24/information.png + themes/monowhite/24/configure.png + themes/monowhite/24/switch_dir.png + themes/monowhite/24/list.png + themes/monowhite/24/wizard.png + themes/monowhite/24/logs.png + themes/monowhite/24/new.png + themes/monowhite/24/save.png + themes/monowhite/24/recentdocument.png + themes/monowhite/24/simulate.png + themes/monowhite/24/changelog.png + themes/monowhite/24/copy.png + themes/monowhite/24/write_flash.png + themes/monowhite/24/read_eeprom_file.png + themes/monowhite/24/clear.png + themes/monowhite/24/play.png + themes/monowhite/24/fuses.png + themes/monowhite/24/arrow-right.png + themes/monowhite/24/exit.png + themes/monowhite/24/moveup.png + themes/monowhite/24/read_eeprom.png + themes/monowhite/24/cut.png + themes/monowhite/24/arrow-left.png + themes/monowhite/24/write_eeprom_file.png + themes/monowhite/24/library.png + themes/monowhite/24/profiles.png + themes/monowhite/24/paste.png + themes/monowhite/24/print.png + themes/monowhite/24/compare.png + themes/monowhite/24/customize.png + themes/monowhite/24/saveas.png + themes/monowhite/24/preferences.png + themes/monowhite/24/movedown.png + themes/monowhite/24/currentmodel.png + themes/monowhite/24/read_flash.png + themes/monowhite/24/duplicate.png + themes/monowhite/24/add.png + themes/monowhite/24/update.png + themes/monowhite/24/contributors.png + themes/monowhite/24/stop.png + themes/monowhite/24/write_eeprom.png + themes/monowhite/32/paintbrush.png + themes/monowhite/32/open.png + themes/monowhite/32/edit.png + themes/monowhite/32/information.png + themes/monowhite/32/configure.png + themes/monowhite/32/switch_dir.png + themes/monowhite/32/list.png + themes/monowhite/32/wizard.png + themes/monowhite/32/logs.png + themes/monowhite/32/new.png + themes/monowhite/32/save.png + themes/monowhite/32/recentdocument.png + themes/monowhite/32/simulate.png + themes/monowhite/32/changelog.png + themes/monowhite/32/copy.png + themes/monowhite/32/write_flash.png + themes/monowhite/32/read_eeprom_file.png + themes/monowhite/32/clear.png + themes/monowhite/32/play.png + themes/monowhite/32/fuses.png + themes/monowhite/32/arrow-right.png + themes/monowhite/32/exit.png + themes/monowhite/32/moveup.png + themes/monowhite/32/read_eeprom.png + themes/monowhite/32/cut.png + themes/monowhite/32/arrow-left.png + themes/monowhite/32/write_eeprom_file.png + themes/monowhite/32/library.png + themes/monowhite/32/profiles.png + themes/monowhite/32/paste.png + themes/monowhite/32/print.png + themes/monowhite/32/compare.png + themes/monowhite/32/customize.png + themes/monowhite/32/saveas.png + themes/monowhite/32/preferences.png + themes/monowhite/32/movedown.png + themes/monowhite/32/currentmodel.png + themes/monowhite/32/read_flash.png + themes/monowhite/32/duplicate.png + themes/monowhite/32/add.png + themes/monowhite/32/update.png + themes/monowhite/32/contributors.png + themes/monowhite/32/stop.png + themes/monowhite/32/write_eeprom.png + themes/monowhite/48/paintbrush.png + themes/monowhite/48/open.png + themes/monowhite/48/edit.png + themes/monowhite/48/information.png + themes/monowhite/48/configure.png + themes/monowhite/48/switch_dir.png + themes/monowhite/48/list.png + themes/monowhite/48/wizard.png + themes/monowhite/48/logs.png + themes/monowhite/48/new.png + themes/monowhite/48/save.png + themes/monowhite/48/recentdocument.png + themes/monowhite/48/simulate.png + themes/monowhite/48/changelog.png + themes/monowhite/48/copy.png + themes/monowhite/48/write_flash.png + themes/monowhite/48/read_eeprom_file.png + themes/monowhite/48/clear.png + themes/monowhite/48/play.png + themes/monowhite/48/fuses.png + themes/monowhite/48/arrow-right.png + themes/monowhite/48/exit.png + themes/monowhite/48/moveup.png + themes/monowhite/48/read_eeprom.png + themes/monowhite/48/cut.png + themes/monowhite/48/arrow-left.png + themes/monowhite/48/write_eeprom_file.png + themes/monowhite/48/library.png + themes/monowhite/48/profiles.png + themes/monowhite/48/paste.png + themes/monowhite/48/print.png + themes/monowhite/48/compare.png + themes/monowhite/48/customize.png + themes/monowhite/48/saveas.png + themes/monowhite/48/preferences.png + themes/monowhite/48/movedown.png + themes/monowhite/48/currentmodel.png + themes/monowhite/48/read_flash.png + themes/monowhite/48/duplicate.png + themes/monowhite/48/add.png + themes/monowhite/48/update.png + themes/monowhite/48/contributors.png + themes/monowhite/48/stop.png + themes/monowhite/48/write_eeprom.png + + diff --git a/companion/src/companion9x.qrc b/companion/src/companion9x.qrc deleted file mode 100644 index 6cd5e7faa..000000000 --- a/companion/src/companion9x.qrc +++ /dev/null @@ -1,338 +0,0 @@ - - - icon.png - ../../CREDITS.txt - ../../DONATIONS.txt - ../releasenotes.txt - images/9xdb.png - images/9xdl.png - images/9xdr.png - images/9xdt.png - images/9xdb-bl.png - images/9xdl-bl.png - images/9xdr-bl.png - images/9xdt-bl.png - images/9xdb-gr.png - images/9xdl-gr.png - images/9xdr-gr.png - images/9xdt-gr.png - images/9xdb-or.png - images/9xdl-or.png - images/9xdr-or.png - images/9xdt-or.png - images/9xdb-yl.png - images/9xdl-yl.png - images/9xdr-yl.png - images/9xdt-yl.png - images/9xdb-rd.png - images/9xdl-rd.png - images/9xdr-rd.png - images/9xdt-rd.png - images/9xmenu.png - images/9xmenumenu.png - images/9xmenuexit.png - images/9xcurs.png - images/9xcursup.png - images/9xcursplus.png - images/9xcursmin.png - images/9xcursdown.png - images/9xcursphoto.png - images/copy.png - images/cut.png - images/currentmodel.png - images/new.png - images/open.png - images/paste.png - images/save.png - images/saveas.png - images/screenshot.png - images/splash.png - images/splasht.png - images/companion-title.png - images/read_eeprom.png - images/write_eeprom.png - images/write_flash.png - images/read_flash.png - images/simulate.png - images/configure.png - images/customize.png - images/print.png - images/clear.png - images/add.png - images/edit.png - images/wizard.png - images/duplicate.png - images/fuses.png - images/list.png - images/maps.png - images/track.png - images/track0.png - images/play.png - images/stop.png - images/read_eeprom_file.png - images/write_eeprom_file.png - images/moveup.png - images/movedown.png - images/update.png - images/contributors.png - images/changelog.png - images/preferences.png - images/switch_dir.png - images/exit.png - images/recentdocument.png - images/profiles.png - images/library.png - images/logs.png - images/arrow-left.png - images/arrow-right.png - images/compare.png - images/x9b0.png - images/x9l0.png - images/x9l1.png - images/x9l2.png - images/x9l3.png - images/x9l4.png - images/x9r0.png - images/x9r1.png - images/x9r2.png - images/x9r3.png - images/x9s0.png - images/x9t0.png - images/mcw/aicon.png - images/mcw/dicon.png - images/mcw/gicon.png - images/mcw/hicon.png - images/mcw/at1e1r.png - images/mcw/at2e1r.png - images/mcw/atailv.png - images/mcw/aw0a0f.png - images/mcw/aw1a0f.png - images/mcw/aw1a1f.png - images/mcw/aw1a2f.png - images/mcw/aw2a0f.png - images/mcw/aw2a1f.png - images/mcw/aw2a2f.png - images/mcw/h90.png - images/mcw/h120.png - images/mcw/h120x.png - images/mcw/h140.png - images/mcw/hfbl.png - images/mcw/htailg.png - images/mcw/htailng.png - images/mcw/htailfblg.png - images/mcw/htailfblng.png - images/mcw/gt1e1r.png - images/mcw/gt2e1r.png - images/mcw/gtailv.png - images/mcw/gw0t0a0f0s.png - images/mcw/gw0t1a0f0s.png - images/mcw/gw0t1a0f1s.png - images/mcw/gw0t1a0f2s.png - images/mcw/gw0t1a1f0s.png - images/mcw/gw0t1a1f1s.png - images/mcw/gw0t1a1f2s.png - images/mcw/gw0t1a2f0s.png - images/mcw/gw0t1a2f1s.png - images/mcw/gw0t1a2f2s.png - images/mcw/gw0t2a0f0s.png - images/mcw/gw0t2a0f1s.png - images/mcw/gw0t2a0f2s.png - images/mcw/gw0t2a1f0s.png - images/mcw/gw0t2a1f1s.png - images/mcw/gw0t2a1f2s.png - images/mcw/gw0t2a2f0s.png - images/mcw/gw0t2a2f1s.png - images/mcw/gw0t2a2f2s.png - images/mcw/gw1t0a0f0s.png - images/mcw/gw1t1a0f0s.png - images/mcw/gw1t1a0f1s.png - images/mcw/gw1t1a0f2s.png - images/mcw/gw1t1a1f0s.png - images/mcw/gw1t1a1f1s.png - images/mcw/gw1t1a1f2s.png - images/mcw/gw1t1a2f0s.png - images/mcw/gw1t1a2f1s.png - images/mcw/gw1t1a2f2s.png - images/mcw/gw1t2a0f0s.png - images/mcw/gw1t2a0f1s.png - images/mcw/gw1t2a0f2s.png - images/mcw/gw1t2a1f0s.png - images/mcw/gw1t2a1f1s.png - images/mcw/gw1t2a1f2s.png - images/mcw/gw1t2a2f0s.png - images/mcw/gw1t2a2f1s.png - images/mcw/gw1t2a2f2s.png - images/mcw/db0t2e0f0r.png - images/mcw/db0t2e0f1r.png - images/mcw/db0t2e0f2r.png - images/mcw/db0t2e1f0r.png - images/mcw/db0t2e1f1r.png - images/mcw/db0t2e1f2r.png - images/mcw/db0t2e2f0r.png - images/mcw/db0t2e2f1r.png - images/mcw/db0t2e2f2r.png - images/mcw/db1t2e0f0r.png - images/mcw/db1t2e0f1r.png - images/mcw/db1t2e0f2r.png - images/mcw/db1t2e1f0r.png - images/mcw/db1t2e1f1r.png - images/mcw/db1t2e1f2r.png - images/mcw/db1t2e2f0r.png - images/mcw/db1t2e2f1r.png - images/mcw/db1t2e2f2r.png - images/mcw/dt0t2e0f0r.png - images/mcw/dt0t2e0f1r.png - images/mcw/dt0t2e0f2r.png - images/mcw/dt0t2e1f0r.png - images/mcw/dt0t2e1f1r.png - images/mcw/dt0t2e1f2r.png - images/mcw/dt0t2e2f0r.png - images/mcw/dt0t2e2f1r.png - images/mcw/dt0t2e2f2r.png - images/mcw/dt1t2e0f0r.png - images/mcw/dt1t2e0f1r.png - images/mcw/dt1t2e0f2r.png - images/mcw/dt1t2e1f0r.png - images/mcw/dt1t2e1f1r.png - images/mcw/dt1t2e1f2r.png - images/mcw/dt1t2e2f0r.png - images/mcw/dt1t2e2f1r.png - images/mcw/dt1t2e2f2r.png - images/library/00001.png - images/library/00002.png - images/library/00003.png - images/library/00004.png - images/library/00005.png - images/library/00006.png - images/library/00007.png - images/library/00008.png - images/library/00009.png - images/library/00010.png - images/library/00011.png - images/library/00012.png - images/library/00013.png - images/library/00014.png - images/library/00015.png - images/library/00016.png - images/library/01001.png - images/library/01002.png - images/library/01003.png - images/library/01004.png - images/library/01005.png - images/library/01006.png - images/library/01007.png - images/library/01008.png - images/library/10001.png - images/library/10002.png - images/library/10003.png - images/library/10004.png - images/library/10005.png - images/library/10006.png - images/library/10007.png - images/library/10008.png - images/library/10009.png - images/library/10010.png - images/library/10011.png - images/library/10012.png - images/library/10013.png - images/library/10014.png - images/library/10015.png - images/library/10016.png - images/library/10017.png - images/library/10018.png - images/library/10019.png - images/library/10020.png - images/library/10021.png - images/library/10022.png - images/library/10023.png - images/library/10024.png - images/library/10033.png - images/library/10034.png - images/library/10035.png - images/library/10036.png - images/library/10049.png - images/library/10050.png - images/library/10051.png - images/library/10052.png - images/library/10037.png - images/library/10038.png - images/library/10039.png - images/library/10040.png - images/library/10053.png - images/library/10054.png - images/library/10055.png - images/library/10056.png - images/library/10025.png - images/library/10026.png - images/library/10027.png - images/library/10028.png - images/library/10029.png - images/library/10030.png - images/library/10031.png - images/library/10032.png - images/library/10041.png - images/library/10042.png - images/library/10043.png - images/library/10044.png - images/library/10057.png - images/library/10058.png - images/library/10059.png - images/library/10060.png - images/library/10045.png - images/library/10046.png - images/library/10047.png - images/library/10048.png - images/library/10061.png - images/library/10062.png - images/library/10063.png - images/library/10064.png - images/library/10065.png - images/library/10066.png - images/library/10067.png - images/library/10068.png - images/library/10081.png - images/library/10082.png - images/library/10083.png - images/library/10084.png - images/library/10069.png - images/library/10070.png - images/library/10071.png - images/library/10072.png - images/library/10085.png - images/library/10086.png - images/library/10087.png - images/library/10088.png - images/library/10073.png - images/library/10074.png - images/library/10075.png - images/library/10076.png - images/library/10089.png - images/library/10090.png - images/library/10091.png - images/library/10092.png - images/library/10077.png - images/library/10078.png - images/library/10079.png - images/library/10080.png - images/library/10093.png - images/library/10094.png - images/library/10095.png - images/library/10096.png - images/library/10097.png - images/library/10098.png - images/library/10099.png - images/library/10100.png - images/library/10101.png - images/library/10102.png - images/library/10103.png - images/library/10104.png - images/library/20001.png - images/library/20002.png - images/library/20003.png - images/library/20004.png - images/library/30001.png - images/library/30002.png - images/library/30003.png - images/library/30004.png - - diff --git a/companion/src/comparedialog.cpp b/companion/src/comparedialog.cpp index 48ed3f9f5..7c7436e99 100644 --- a/companion/src/comparedialog.cpp +++ b/companion/src/comparedialog.cpp @@ -48,7 +48,7 @@ compareDialog::compareDialog(QWidget *parent, GeneralSettings *gg) : void compareDialog::dragMoveEvent(QDragMoveEvent *event) { - if (event->mimeData()->hasFormat("application/x-companion9x")) { + if (event->mimeData()->hasFormat("application/x-companion")) { event->acceptProposedAction(); } else { event->ignore(); @@ -58,7 +58,7 @@ void compareDialog::dragMoveEvent(QDragMoveEvent *event) void compareDialog::dragEnterEvent(QDragEnterEvent *event) { // accept just text/uri-list mime format - if (event->mimeData()->hasFormat("application/x-companion9x")) { + if (event->mimeData()->hasFormat("application/x-companion")) { event->acceptProposedAction(); } else { event->ignore(); @@ -95,8 +95,8 @@ void compareDialog::dropEvent(QDropEvent *event) const QMimeData *mimeData = event->mimeData(); if (child) { if (child->objectName().contains("label_1")) { - if(mimeData->hasFormat("application/x-companion9x")) { - QByteArray gmData = mimeData->data("application/x-companion9x"); + if(mimeData->hasFormat("application/x-companion")) { + QByteArray gmData = mimeData->data("application/x-companion"); DragDropHeader *header = (DragDropHeader *)gmData.data(); if (!header->general_settings) { char *gData = gmData.data()+sizeof(DragDropHeader);//new char[gmData.size() + 1]; @@ -120,8 +120,8 @@ void compareDialog::dropEvent(QDropEvent *event) } } else if (child->objectName().contains("label_2")) { - if(mimeData->hasFormat("application/x-companion9x")) { - QByteArray gmData = mimeData->data("application/x-companion9x"); + if(mimeData->hasFormat("application/x-companion")) { + QByteArray gmData = mimeData->data("application/x-companion"); DragDropHeader *header = (DragDropHeader *)gmData.data(); if (!header->general_settings) { char *gData = gmData.data()+sizeof(DragDropHeader);//new char[gmData.size() + 1]; @@ -305,7 +305,7 @@ void compareDialog::printPhases() str.append(""+tr("Switch")+""+tr("Flight mode name")); str.append(""+tr("IN")+""+tr("OUT")+""); for (i=0; i<4; i++) { - str.append(QString("%1").arg(getStickStr(i))); + str.append(QString("%1").arg(getInputStr(*g_model1, i))); } str.append(""); for (i=0; igetCapability(FlightPhases); i++) { @@ -406,7 +406,7 @@ void compareDialog::printPhases() str.append(""+tr("Switch")+""+tr("Flight mode name")); str.append(""+tr("IN")+""+tr("OUT")+""); for (i=0; i<4; i++) { - str.append(QString("%1").arg(getStickStr(i))); + str.append(QString("%1").arg(getInputStr(*g_model1, i))); } str.append(""); for (i=0; igetCapability(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(""); + str.append("
"+tr("People who have contributed to this project")+"
"); + 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(""); + str.append("
 
"+tr("Coders")+"
"); + 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(""); + } + str.append(""); + } } + str.append(""); + str.append(""); + str.append(""); + str.append("
"); + if (!file2.atEnd()) { + QByteArray line = file2.readLine(); + str.append(line.trimmed()); + } else { + str.append(" "); + } + str.append("
 
" + tr("Honors go to Rafal Tomczak (RadioClone), Thomas Husterer (th9x) and Erez Raviv (er9x and eePe)") + "
" + tr("Thank you all !!!") + "
"); + 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 { - @@ -1811,7 +1810,6 @@ QPushButton:checked { QFrame::Raised - 2 @@ -2296,7 +2294,6 @@ border-radius: 4px; - 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);