Merge branch 'next' into kilrah/FAS_Offset_compensation
Conflicts: companion/src/modeledit/telemetry.cpp
|
@ -95,8 +95,8 @@ Heinrich Illig
|
||||||
Michael Collins
|
Michael Collins
|
||||||
Michael Manning
|
Michael Manning
|
||||||
Craig Lorentz
|
Craig Lorentz
|
||||||
Jonathan Modellismo - http://jonathan.it
|
Jonathan Modellismo - jonathan.it
|
||||||
Aviomotive - http://www.aviomotive.com
|
Aviomotive - www.aviomotive.com
|
||||||
André Lasseret
|
André Lasseret
|
||||||
Felipe Alexandre de Oliveira
|
Felipe Alexandre de Oliveira
|
||||||
Brian Harris
|
Brian Harris
|
||||||
|
@ -126,7 +126,7 @@ Larisa Filocamo
|
||||||
Alex Calderhead
|
Alex Calderhead
|
||||||
Hartmut Sahm
|
Hartmut Sahm
|
||||||
Åke Brodin
|
Åke Brodin
|
||||||
Aloft Hobbies - http://www.alofthobbies.com
|
Aloft Hobbies - www.alofthobbies.com
|
||||||
Ted Moss
|
Ted Moss
|
||||||
Filippos Tigarakis
|
Filippos Tigarakis
|
||||||
Chewytm
|
Chewytm
|
||||||
|
@ -288,3 +288,13 @@ Josep Clodas Sola
|
||||||
Thierry Martin
|
Thierry Martin
|
||||||
Peter Mauro
|
Peter Mauro
|
||||||
Mitchell Brenner
|
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
|
||||||
|
|
8
README.md
Normal file
|
@ -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.
|
|
@ -1 +0,0 @@
|
||||||
[to be written]
|
|
|
@ -1,7 +1,7 @@
|
||||||
PROJECT( companion )
|
PROJECT( companion )
|
||||||
|
|
||||||
SET( C9X_VERSION_MAJOR "1" )
|
SET( C9X_VERSION_MAJOR "1" )
|
||||||
SET( C9X_VERSION_MINOR "51" )
|
SET( C9X_VERSION_MINOR "52" )
|
||||||
SET( C9X_VERSION ${C9X_VERSION_MAJOR}.${C9X_VERSION_MINOR} )
|
SET( C9X_VERSION ${C9X_VERSION_MAJOR}.${C9X_VERSION_MINOR} )
|
||||||
|
|
||||||
CMAKE_MINIMUM_REQUIRED( VERSION 2.8 )
|
CMAKE_MINIMUM_REQUIRED( VERSION 2.8 )
|
||||||
|
@ -234,7 +234,7 @@ IF ( SDL_FOUND )
|
||||||
ENDIF( )
|
ENDIF( )
|
||||||
|
|
||||||
SET( companion_RCS
|
SET( companion_RCS
|
||||||
companion9x.qrc
|
companion.qrc
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/translations.qrc
|
${CMAKE_CURRENT_BINARY_DIR}/translations.qrc
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
<string>Dialog</string>
|
<string>Dialog</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowIcon">
|
<property name="windowIcon">
|
||||||
<iconset resource="companion9x.qrc">
|
<iconset resource="companion.qrc">
|
||||||
<normaloff>:/icon.png</normaloff>:/icon.png</iconset>
|
<normaloff>:/icon.png</normaloff>:/icon.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="companion9x.qrc"/>
|
<include location="companion.qrc"/>
|
||||||
</resources>
|
</resources>
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#include "ui_burnconfigdialog.h"
|
#include "ui_burnconfigdialog.h"
|
||||||
#include "avroutputdialog.h"
|
#include "avroutputdialog.h"
|
||||||
#include "eeprominterface.h"
|
#include "eeprominterface.h"
|
||||||
|
#include "helpers.h"
|
||||||
#include <QtGui>
|
#include <QtGui>
|
||||||
|
|
||||||
#if !defined WIN32 && defined __GNUC__
|
#if !defined WIN32 && defined __GNUC__
|
||||||
|
@ -82,7 +83,7 @@ burnConfigDialog::~burnConfigDialog()
|
||||||
|
|
||||||
void burnConfigDialog::getSettings()
|
void burnConfigDialog::getSettings()
|
||||||
{
|
{
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
#if defined WIN32 || !defined __GNUC__
|
#if defined WIN32 || !defined __GNUC__
|
||||||
avrLoc = settings.value("avrdude_location", QFileInfo("avrdude.exe").absoluteFilePath()).toString();
|
avrLoc = settings.value("avrdude_location", QFileInfo("avrdude.exe").absoluteFilePath()).toString();
|
||||||
sambaLoc = settings.value("samba_location", QFileInfo("sam-ba.exe").absoluteFilePath()).toString();
|
sambaLoc = settings.value("samba_location", QFileInfo("sam-ba.exe").absoluteFilePath()).toString();
|
||||||
|
@ -136,7 +137,7 @@ void burnConfigDialog::getSettings()
|
||||||
|
|
||||||
void burnConfigDialog::putSettings()
|
void burnConfigDialog::putSettings()
|
||||||
{
|
{
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
settings.setValue("avrdude_location", avrLoc);
|
settings.setValue("avrdude_location", avrLoc);
|
||||||
settings.setValue("programmer", avrProgrammer);
|
settings.setValue("programmer", avrProgrammer);
|
||||||
settings.setValue("mcu", avrMCU);
|
settings.setValue("mcu", avrMCU);
|
||||||
|
@ -278,8 +279,9 @@ void burnConfigDialog::listProgrammers()
|
||||||
QStringList arguments;
|
QStringList arguments;
|
||||||
arguments << "-c?";
|
arguments << "-c?";
|
||||||
avrOutputDialog *ad = new avrOutputDialog(this, ui->avrdude_location->text(), arguments, "List available programmers", AVR_DIALOG_KEEP_OPEN, TRUE);
|
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();
|
ad->show();
|
||||||
|
delete ad;
|
||||||
}
|
}
|
||||||
|
|
||||||
void burnConfigDialog::on_pushButton_3_clicked()
|
void burnConfigDialog::on_pushButton_3_clicked()
|
||||||
|
@ -295,8 +297,9 @@ void burnConfigDialog::on_pushButton_4_clicked()
|
||||||
arguments << "-?";
|
arguments << "-?";
|
||||||
|
|
||||||
avrOutputDialog *ad = new avrOutputDialog(this, ui->avrdude_location->text(), arguments, "Show help", AVR_DIALOG_KEEP_OPEN,TRUE);
|
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();
|
ad->show();
|
||||||
|
delete ad;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -312,8 +315,9 @@ void burnConfigDialog::readFuses()
|
||||||
arguments << "-c" << avrProgrammer << "-p" << avrMCU << args << str;
|
arguments << "-c" << avrProgrammer << "-p" << avrMCU << args << str;
|
||||||
|
|
||||||
avrOutputDialog *ad = new avrOutputDialog(this, avrLoc, arguments, "Read Fuses",AVR_DIALOG_KEEP_OPEN,TRUE);
|
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();
|
ad->show();
|
||||||
|
delete ad;
|
||||||
}
|
}
|
||||||
|
|
||||||
void burnConfigDialog::restFuses(bool eeProtect)
|
void burnConfigDialog::restFuses(bool eeProtect)
|
||||||
|
@ -324,7 +328,6 @@ void burnConfigDialog::restFuses(bool eeProtect)
|
||||||
//avrdude -c usbasp -p m64 -U efuse:w:<0xFF>:m
|
//avrdude -c usbasp -p m64 -U efuse:w:<0xFF>:m
|
||||||
|
|
||||||
QMessageBox::StandardButton ret = QMessageBox::No;
|
QMessageBox::StandardButton ret = QMessageBox::No;
|
||||||
|
|
||||||
ret = QMessageBox::warning(this, tr("Companion"),
|
ret = QMessageBox::warning(this, tr("Companion"),
|
||||||
tr("<b><u>WARNING!</u></b><br>This will reset the fuses of %1 to the factory settings.<br>Writing fuses can mess up your radio.<br>Do this only if you are sure they are wrong!<br>Are you sure you want to continue?").arg(avrMCU),
|
tr("<b><u>WARNING!</u></b><br>This will reset the fuses of %1 to the factory settings.<br>Writing fuses can mess up your radio.<br>Do this only if you are sure they are wrong!<br>Are you sure you want to continue?").arg(avrMCU),
|
||||||
QMessageBox::Yes | QMessageBox::No);
|
QMessageBox::Yes | QMessageBox::No);
|
||||||
|
@ -338,7 +341,8 @@ void burnConfigDialog::restFuses(bool eeProtect)
|
||||||
QString erStr = eeProtect ? "hfuse:w:0x11:m" : "hfuse:w:0x19:m";
|
QString erStr = eeProtect ? "hfuse:w:0x11:m" : "hfuse:w:0x19:m";
|
||||||
str << "-U" << "lfuse:w:0xD7:m" << "-U" << erStr << "-U" << "efuse:w:0xFC: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
|
//use hfuse = 0x81 to prevent eeprom being erased with every flashing
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
QString tempDir = QDir::tempPath();
|
QString tempDir = QDir::tempPath();
|
||||||
QString tempFile;
|
QString tempFile;
|
||||||
QString lfuses;
|
QString lfuses;
|
||||||
|
@ -346,8 +350,9 @@ void burnConfigDialog::restFuses(bool eeProtect)
|
||||||
QStringList argread;
|
QStringList argread;
|
||||||
argread << "-c" << avrProgrammer << "-p" << avrMCU << args <<"-U" << "lfuse:r:"+tempFile+":r" ;
|
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);
|
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();
|
ad->exec();
|
||||||
|
delete ad;
|
||||||
QFile file(tempFile);
|
QFile file(tempFile);
|
||||||
if (file.exists() && file.size()==1) {
|
if (file.exists() && file.size()==1) {
|
||||||
file.open(QIODevice::ReadOnly);
|
file.open(QIODevice::ReadOnly);
|
||||||
|
@ -355,12 +360,14 @@ void burnConfigDialog::restFuses(bool eeProtect)
|
||||||
file.read(bin_flash, 1);
|
file.read(bin_flash, 1);
|
||||||
if (bin_flash[0]==0x0E) {
|
if (bin_flash[0]==0x0E) {
|
||||||
lfuses="lfuse:w:0x0E:m";
|
lfuses="lfuse:w:0x0E:m";
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
lfuses="lfuse:w:0x3F:m";
|
lfuses="lfuse:w:0x3F:m";
|
||||||
}
|
}
|
||||||
file.close();
|
file.close();
|
||||||
unlink(tempFile.toAscii());
|
unlink(tempFile.toAscii());
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
lfuses="lfuse:w:0x3F:m";
|
lfuses="lfuse:w:0x3F:m";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -371,12 +378,14 @@ void burnConfigDialog::restFuses(bool eeProtect)
|
||||||
QStringList arguments;
|
QStringList arguments;
|
||||||
if (avrMCU=="m2560") {
|
if (avrMCU=="m2560") {
|
||||||
arguments << "-c" << avrProgrammer << "-p" << avrMCU << args << "-u" << str;
|
arguments << "-c" << avrProgrammer << "-p" << avrMCU << args << "-u" << str;
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
arguments << "-c" << avrProgrammer << "-p" << avrMCU << args << "-B" << "100" << "-u" << str;
|
arguments << "-c" << avrProgrammer << "-p" << avrMCU << args << "-B" << "100" << "-u" << str;
|
||||||
}
|
}
|
||||||
avrOutputDialog *ad = new avrOutputDialog(this, avrLoc, arguments, "Reset Fuses",AVR_DIALOG_KEEP_OPEN,TRUE);
|
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();
|
ad->show();
|
||||||
|
delete ad;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -388,24 +397,29 @@ void burnConfigDialog::on_advCtrChkB_toggled(bool checked)
|
||||||
if (IS_TARANIS(eepromInterface->getBoard())) {
|
if (IS_TARANIS(eepromInterface->getBoard())) {
|
||||||
ui->label_dfu2->show();
|
ui->label_dfu2->show();
|
||||||
ui->dfuArgs->show();
|
ui->dfuArgs->show();
|
||||||
} else if (eepromInterface->getBoard()==BOARD_SKY9X) {
|
}
|
||||||
|
else if (eepromInterface->getBoard()==BOARD_SKY9X) {
|
||||||
ui->label_sb2->show();
|
ui->label_sb2->show();
|
||||||
ui->arm_mcu->show();
|
ui->arm_mcu->show();
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
ui->label_av3->show();
|
ui->label_av3->show();
|
||||||
ui->avrdude_mcu->show();
|
ui->avrdude_mcu->show();
|
||||||
QMessageBox::warning(this, tr("Companion"),
|
QMessageBox::warning(this, tr("Companion"),
|
||||||
tr("<b><u>WARNING!</u></b><br>Normally CPU type is automatically selected according to the chosen firmware.<br>If you change the CPU type the resulting eeprom could be inconsistent."),
|
tr("<b><u>WARNING!</u></b><br>Normally CPU type is automatically selected according to the chosen firmware.<br>If you change the CPU type the resulting eeprom could be inconsistent."),
|
||||||
QMessageBox::Ok);
|
QMessageBox::Ok);
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
if (IS_TARANIS(eepromInterface->getBoard())) {
|
if (IS_TARANIS(eepromInterface->getBoard())) {
|
||||||
ui->label_dfu2->hide();
|
ui->label_dfu2->hide();
|
||||||
ui->dfuArgs->hide();
|
ui->dfuArgs->hide();
|
||||||
} else if (eepromInterface->getBoard()==BOARD_SKY9X) {
|
}
|
||||||
|
else if (eepromInterface->getBoard()==BOARD_SKY9X) {
|
||||||
ui->label_sb2->hide();
|
ui->label_sb2->hide();
|
||||||
ui->arm_mcu->hide();
|
ui->arm_mcu->hide();
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
ui->label_av3->hide();
|
ui->label_av3->hide();
|
||||||
ui->avrdude_mcu->hide();
|
ui->avrdude_mcu->hide();
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,8 +26,8 @@
|
||||||
<string>Programmer Configuration</string>
|
<string>Programmer Configuration</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowIcon">
|
<property name="windowIcon">
|
||||||
<iconset resource="companion9x.qrc">
|
<iconset resource="companion.qrc">
|
||||||
<normaloff>:/images/configure.png</normaloff>:/images/configure.png</iconset>
|
<normaloff>:/icon.png</normaloff>:/icon.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_2">
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
|
@ -760,7 +760,7 @@ Please only use this if you know what you are doing. There are no error checks
|
||||||
<tabstop>buttonBox</tabstop>
|
<tabstop>buttonBox</tabstop>
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="companion9x.qrc"/>
|
<include location="companion.qrc"/>
|
||||||
</resources>
|
</resources>
|
||||||
<connections>
|
<connections>
|
||||||
<connection>
|
<connection>
|
||||||
|
|
|
@ -16,6 +16,7 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac
|
||||||
hexType(Type)
|
hexType(Type)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
ui->libraryButton->setIcon(CompanionIcon("library.png"));
|
||||||
ui->SplashFrame->hide();
|
ui->SplashFrame->hide();
|
||||||
ui->FramFWInfo->hide();
|
ui->FramFWInfo->hide();
|
||||||
ui->EEbackupCB->hide();
|
ui->EEbackupCB->hide();
|
||||||
|
@ -26,11 +27,12 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac
|
||||||
ui->patchcalib_CB->hide();
|
ui->patchcalib_CB->hide();
|
||||||
ui->patchhw_CB->hide();
|
ui->patchhw_CB->hide();
|
||||||
ui->InvertColorButton->setDisabled(true);
|
ui->InvertColorButton->setDisabled(true);
|
||||||
this->setWindowTitle(tr("Write firmware to TX"));
|
setWindowTitle(tr("Write firmware to TX"));
|
||||||
if (IS_TARANIS(GetEepromInterface()->getBoard())) {
|
if (IS_TARANIS(GetEepromInterface()->getBoard())) {
|
||||||
ui->EEbackupCB->hide();
|
ui->EEbackupCB->hide();
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
ui->FlashLoadButton->setText(tr("Browse for file"));
|
ui->FlashLoadButton->setText(tr("Browse for file"));
|
||||||
ui->profile_label->hide();
|
ui->profile_label->hide();
|
||||||
ui->patchcalib_CB->hide();
|
ui->patchcalib_CB->hide();
|
||||||
|
@ -51,11 +53,12 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac
|
||||||
ui->BurnFlashButton->setDisabled(true);
|
ui->BurnFlashButton->setDisabled(true);
|
||||||
ui->EEbackupCB->hide();
|
ui->EEbackupCB->hide();
|
||||||
if (DocName.isEmpty()) {
|
if (DocName.isEmpty()) {
|
||||||
this->setWindowTitle(tr("Write Models and Settings to TX"));
|
setWindowTitle(tr("Write Models and Settings to TX"));
|
||||||
} else {
|
|
||||||
this->setWindowTitle(tr("Write Models and Settings in %1 to TX").arg(DocName));
|
|
||||||
}
|
}
|
||||||
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();
|
int profileid=settings.value("profileId", 1).toInt();
|
||||||
settings.beginGroup("Profiles");
|
settings.beginGroup("Profiles");
|
||||||
QString profile=QString("profile%1").arg(profileid);
|
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);
|
ui->FWFileName->setText(*hexfileName);
|
||||||
if (Type==2) {
|
if (Type==2) {
|
||||||
checkFw(*hexfileName);
|
checkFw(*hexfileName);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
burnraw=false;
|
burnraw=false;
|
||||||
if (checkeEprom(*hexfileName)) {
|
if (checkeEprom(*hexfileName)) {
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
int profileid=settings.value("profileId", 1).toInt();
|
int profileid=settings.value("profileId", 1).toInt();
|
||||||
settings.beginGroup("Profiles");
|
settings.beginGroup("Profiles");
|
||||||
QString profile=QString("profile%1").arg(profileid);
|
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))) {
|
if (!((DisplaySet.length()==6) && (BeeperSet.length()==4) && (HapticSet.length()==6) && (SpeakerSet.length()==6))) {
|
||||||
ui->patchhw_CB->setDisabled(true);
|
ui->patchhw_CB->setDisabled(true);
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
ui->profile_label->hide();
|
ui->profile_label->hide();
|
||||||
}
|
}
|
||||||
if (!IS_TARANIS(GetEepromInterface()->getBoard())) {
|
if (!IS_TARANIS(GetEepromInterface()->getBoard())) {
|
||||||
ui->EEpromCB->show();
|
ui->EEpromCB->show();
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
ui->EEpromCB->setChecked(false);
|
ui->EEpromCB->setChecked(false);
|
||||||
}
|
}
|
||||||
ui->BurnFlashButton->setEnabled(true);
|
ui->BurnFlashButton->setEnabled(true);
|
||||||
|
@ -113,7 +119,7 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac
|
||||||
hexfileName->clear();
|
hexfileName->clear();
|
||||||
}
|
}
|
||||||
else if (Type==2) {
|
else if (Type==2) {
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
QString FileName;
|
QString FileName;
|
||||||
FileName = settings.value("lastFw").toString();
|
FileName = settings.value("lastFw").toString();
|
||||||
QFile file(FileName);
|
QFile file(FileName);
|
||||||
|
@ -124,14 +130,15 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac
|
||||||
resize(0, 0);
|
resize(0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
burnDialog::~burnDialog() {
|
burnDialog::~burnDialog()
|
||||||
|
{
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
void burnDialog::on_FlashLoadButton_clicked()
|
void burnDialog::on_FlashLoadButton_clicked()
|
||||||
{
|
{
|
||||||
QString fileName;
|
QString fileName;
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
ui->ImageLoadButton->setDisabled(true);
|
ui->ImageLoadButton->setDisabled(true);
|
||||||
ui->libraryButton->setDisabled(true);
|
ui->libraryButton->setDisabled(true);
|
||||||
ui->InvertColorButton->setDisabled(true);
|
ui->InvertColorButton->setDisabled(true);
|
||||||
|
@ -150,7 +157,8 @@ void burnDialog::on_FlashLoadButton_clicked()
|
||||||
if (hexType==2) {
|
if (hexType==2) {
|
||||||
fileName = QFileDialog::getOpenFileName(this, tr("Open"), settings.value("lastFlashDir").toString(), FLASH_FILES_FILTER);
|
fileName = QFileDialog::getOpenFileName(this, tr("Open"), settings.value("lastFlashDir").toString(), FLASH_FILES_FILTER);
|
||||||
checkFw(fileName);
|
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));
|
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 (checkeEprom(fileName)) {
|
||||||
if (burnraw==false) {
|
if (burnraw==false) {
|
||||||
|
@ -160,10 +168,12 @@ void burnDialog::on_FlashLoadButton_clicked()
|
||||||
ui->patchhw_CB->show();
|
ui->patchhw_CB->show();
|
||||||
if (!IS_TARANIS(GetEepromInterface()->getBoard())) {
|
if (!IS_TARANIS(GetEepromInterface()->getBoard())) {
|
||||||
ui->EEpromCB->show();
|
ui->EEpromCB->show();
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
ui->EEpromCB->setChecked(false);
|
ui->EEpromCB->setChecked(false);
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
ui->BurnFlashButton->setEnabled(true);
|
ui->BurnFlashButton->setEnabled(true);
|
||||||
ui->profile_label->hide();
|
ui->profile_label->hide();
|
||||||
ui->patchcalib_CB->setChecked(false);
|
ui->patchcalib_CB->setChecked(false);
|
||||||
|
@ -181,10 +191,11 @@ void burnDialog::checkFw(QString fileName)
|
||||||
if (fileName.isEmpty()) {
|
if (fileName.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
if (!IS_TARANIS(GetEepromInterface()->getBoard())) {
|
if (!IS_TARANIS(GetEepromInterface()->getBoard())) {
|
||||||
ui->EEbackupCB->show();
|
ui->EEbackupCB->show();
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
ui->EEbackupCB->setChecked(false);
|
ui->EEbackupCB->setChecked(false);
|
||||||
*backup=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->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height()).convertToFormat(flash.getSplashFormat())));
|
||||||
ui->PatchFWCB->setEnabled(true);
|
ui->PatchFWCB->setEnabled(true);
|
||||||
ui->PatchFWCB->setChecked(PatchFwCB);
|
ui->PatchFWCB->setChecked(PatchFwCB);
|
||||||
} else {
|
|
||||||
ui->PatchFWCB->setDisabled(true);
|
|
||||||
ui->PatchFWCB->setChecked(false);
|
|
||||||
ui->PreferredImageCB->setDisabled(true);
|
|
||||||
}
|
}
|
||||||
} else {
|
else {
|
||||||
ui->PatchFWCB->setDisabled(true);
|
ui->PatchFWCB->setDisabled(true);
|
||||||
ui->PatchFWCB->setChecked(false);
|
ui->PatchFWCB->setChecked(false);
|
||||||
ui->PreferredImageCB->setDisabled(true);
|
ui->PreferredImageCB->setDisabled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
else {
|
||||||
|
ui->PatchFWCB->setDisabled(true);
|
||||||
|
ui->PatchFWCB->setChecked(false);
|
||||||
|
ui->PreferredImageCB->setDisabled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
ui->FwImage->hide();
|
ui->FwImage->hide();
|
||||||
ui->ImageFileName->setText("");
|
ui->ImageFileName->setText("");
|
||||||
ui->SplashFrame->hide();
|
ui->SplashFrame->hide();
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
QMessageBox::warning(this, tr("Warning"), tr("%1 is not a known firmware").arg(fileName));
|
QMessageBox::warning(this, tr("Warning"), tr("%1 is not a known firmware").arg(fileName));
|
||||||
ui->BurnFlashButton->setText(tr("Burn anyway !"));
|
ui->BurnFlashButton->setText(tr("Burn anyway !"));
|
||||||
ui->BurnFlashButton->setEnabled(true);
|
ui->BurnFlashButton->setEnabled(true);
|
||||||
|
@ -267,7 +282,8 @@ bool burnDialog::checkeEprom(QString fileName)
|
||||||
}
|
}
|
||||||
QTextStream inputStream(&file);
|
QTextStream inputStream(&file);
|
||||||
XmlInterface(inputStream).load(radioData);
|
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
|
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()));
|
QMessageBox::critical(this, tr("Error"),tr("Error opening file %1:\n%2.").arg(fileName).arg(file.errorString()));
|
||||||
return false;
|
return false;
|
||||||
|
@ -310,7 +326,8 @@ bool burnDialog::checkeEprom(QString fileName)
|
||||||
ui->FWFileName->setText(fileName);
|
ui->FWFileName->setText(fileName);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else if (fileType==FILE_TYPE_BIN) { //read binary
|
}
|
||||||
|
else if (fileType==FILE_TYPE_BIN) { //read binary
|
||||||
int eeprom_size = file.size();
|
int eeprom_size = file.size();
|
||||||
if (!file.open(QFile::ReadOnly)) { //reading binary file - TODO HEX support
|
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()));
|
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];
|
supportedImageFormats += QLatin1String(" *.") + QImageReader::supportedImageFormats()[formatIndex];
|
||||||
}
|
}
|
||||||
|
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
QString fileName = QFileDialog::getOpenFileName(this,
|
QString fileName = QFileDialog::getOpenFileName(this,
|
||||||
tr("Open Image to load"), settings.value("lastImagesDir").toString(), tr("Images (%1)").arg(supportedImageFormats));
|
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 gray;
|
||||||
int width = image.width();
|
int width = image.width();
|
||||||
int height = image.height();
|
int height = image.height();
|
||||||
for (int i = 0; i < width; ++i)
|
for (int i = 0; i < width; ++i) {
|
||||||
{
|
for (int j = 0; j < height; ++j) {
|
||||||
for (int j = 0; j < height; ++j)
|
|
||||||
{
|
|
||||||
col = image.pixel(i, j);
|
col = image.pixel(i, j);
|
||||||
gray = qGray(col);
|
gray = qGray(col);
|
||||||
image.setPixel(i, j, qRgb(gray, gray, gray));
|
image.setPixel(i, j, qRgb(gray, gray, gray));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height())));
|
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->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height()).convertToFormat(QImage::Format_Mono)));
|
||||||
}
|
}
|
||||||
ui->PatchFWCB->setEnabled(true);
|
ui->PatchFWCB->setEnabled(true);
|
||||||
|
@ -426,7 +442,7 @@ void burnDialog::on_BurnFlashButton_clicked()
|
||||||
if (hexType==2) {
|
if (hexType==2) {
|
||||||
QString fileName=ui->FWFileName->text();
|
QString fileName=ui->FWFileName->text();
|
||||||
if (!fileName.isEmpty()) {
|
if (!fileName.isEmpty()) {
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
settings.setValue("lastFlashDir", QFileInfo(fileName).dir().absolutePath());
|
settings.setValue("lastFlashDir", QFileInfo(fileName).dir().absolutePath());
|
||||||
settings.setValue("lastFw", fileName);
|
settings.setValue("lastFw", fileName);
|
||||||
if (ui->PatchFWCB->isChecked()) {
|
if (ui->PatchFWCB->isChecked()) {
|
||||||
|
@ -463,7 +479,7 @@ void burnDialog::on_BurnFlashButton_clicked()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (hexType==1) {
|
if (hexType==1) {
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
int profileid=settings.value("profileId", 1).toInt();
|
int profileid=settings.value("profileId", 1).toInt();
|
||||||
settings.beginGroup("Profiles");
|
settings.beginGroup("Profiles");
|
||||||
QString profile=QString("profile%1").arg(profileid);
|
QString profile=QString("profile%1").arg(profileid);
|
||||||
|
@ -640,7 +656,7 @@ void burnDialog::on_PreferredImageCB_toggled(bool checked)
|
||||||
{
|
{
|
||||||
QString tmpFileName;
|
QString tmpFileName;
|
||||||
if (checked) {
|
if (checked) {
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
QString ImageStr = settings.value("SplashImage", "").toString();
|
QString ImageStr = settings.value("SplashImage", "").toString();
|
||||||
if (!ImageStr.isEmpty()) {
|
if (!ImageStr.isEmpty()) {
|
||||||
QImage Image = qstring2image(ImageStr);
|
QImage Image = qstring2image(ImageStr);
|
||||||
|
|
|
@ -26,8 +26,8 @@
|
||||||
<string>Customize Splash</string>
|
<string>Customize Splash</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowIcon">
|
<property name="windowIcon">
|
||||||
<iconset>
|
<iconset resource="companion.qrc">
|
||||||
<normaloff>:/images/c_home.png</normaloff>:/images/c_home.png</iconset>
|
<normaloff>:/icon.png</normaloff>:/icon.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_7">
|
<layout class="QGridLayout" name="gridLayout_7">
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
|
@ -455,10 +455,6 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>...</string>
|
<string>...</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="companion9x.qrc">
|
|
||||||
<normaloff>:/images/library.png</normaloff>:/images/library.png</iconset>
|
|
||||||
</property>
|
|
||||||
<property name="iconSize">
|
<property name="iconSize">
|
||||||
<size>
|
<size>
|
||||||
<width>16</width>
|
<width>16</width>
|
||||||
|
@ -488,7 +484,7 @@
|
||||||
<tabstop>BurnFlashButton</tabstop>
|
<tabstop>BurnFlashButton</tabstop>
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="companion9x.qrc"/>
|
<include location="companion.qrc"/>
|
||||||
</resources>
|
</resources>
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
|
1001
companion/src/companion.qrc
Normal file
|
@ -1,338 +0,0 @@
|
||||||
<RCC>
|
|
||||||
<qresource prefix="/">
|
|
||||||
<file>icon.png</file>
|
|
||||||
<file>../../CREDITS.txt</file>
|
|
||||||
<file>../../DONATIONS.txt</file>
|
|
||||||
<file>../releasenotes.txt</file>
|
|
||||||
<file>images/9xdb.png</file>
|
|
||||||
<file>images/9xdl.png</file>
|
|
||||||
<file>images/9xdr.png</file>
|
|
||||||
<file>images/9xdt.png</file>
|
|
||||||
<file>images/9xdb-bl.png</file>
|
|
||||||
<file>images/9xdl-bl.png</file>
|
|
||||||
<file>images/9xdr-bl.png</file>
|
|
||||||
<file>images/9xdt-bl.png</file>
|
|
||||||
<file>images/9xdb-gr.png</file>
|
|
||||||
<file>images/9xdl-gr.png</file>
|
|
||||||
<file>images/9xdr-gr.png</file>
|
|
||||||
<file>images/9xdt-gr.png</file>
|
|
||||||
<file>images/9xdb-or.png</file>
|
|
||||||
<file>images/9xdl-or.png</file>
|
|
||||||
<file>images/9xdr-or.png</file>
|
|
||||||
<file>images/9xdt-or.png</file>
|
|
||||||
<file>images/9xdb-yl.png</file>
|
|
||||||
<file>images/9xdl-yl.png</file>
|
|
||||||
<file>images/9xdr-yl.png</file>
|
|
||||||
<file>images/9xdt-yl.png</file>
|
|
||||||
<file>images/9xdb-rd.png</file>
|
|
||||||
<file>images/9xdl-rd.png</file>
|
|
||||||
<file>images/9xdr-rd.png</file>
|
|
||||||
<file>images/9xdt-rd.png</file>
|
|
||||||
<file>images/9xmenu.png</file>
|
|
||||||
<file>images/9xmenumenu.png</file>
|
|
||||||
<file>images/9xmenuexit.png</file>
|
|
||||||
<file>images/9xcurs.png</file>
|
|
||||||
<file>images/9xcursup.png</file>
|
|
||||||
<file>images/9xcursplus.png</file>
|
|
||||||
<file>images/9xcursmin.png</file>
|
|
||||||
<file>images/9xcursdown.png</file>
|
|
||||||
<file>images/9xcursphoto.png</file>
|
|
||||||
<file>images/copy.png</file>
|
|
||||||
<file>images/cut.png</file>
|
|
||||||
<file>images/currentmodel.png</file>
|
|
||||||
<file>images/new.png</file>
|
|
||||||
<file>images/open.png</file>
|
|
||||||
<file>images/paste.png</file>
|
|
||||||
<file>images/save.png</file>
|
|
||||||
<file>images/saveas.png</file>
|
|
||||||
<file>images/screenshot.png</file>
|
|
||||||
<file>images/splash.png</file>
|
|
||||||
<file>images/splasht.png</file>
|
|
||||||
<file>images/companion-title.png</file>
|
|
||||||
<file>images/read_eeprom.png</file>
|
|
||||||
<file>images/write_eeprom.png</file>
|
|
||||||
<file>images/write_flash.png</file>
|
|
||||||
<file>images/read_flash.png</file>
|
|
||||||
<file>images/simulate.png</file>
|
|
||||||
<file>images/configure.png</file>
|
|
||||||
<file>images/customize.png</file>
|
|
||||||
<file>images/print.png</file>
|
|
||||||
<file>images/clear.png</file>
|
|
||||||
<file>images/add.png</file>
|
|
||||||
<file>images/edit.png</file>
|
|
||||||
<file>images/wizard.png</file>
|
|
||||||
<file>images/duplicate.png</file>
|
|
||||||
<file>images/fuses.png</file>
|
|
||||||
<file>images/list.png</file>
|
|
||||||
<file>images/maps.png</file>
|
|
||||||
<file>images/track.png</file>
|
|
||||||
<file>images/track0.png</file>
|
|
||||||
<file>images/play.png</file>
|
|
||||||
<file>images/stop.png</file>
|
|
||||||
<file>images/read_eeprom_file.png</file>
|
|
||||||
<file>images/write_eeprom_file.png</file>
|
|
||||||
<file>images/moveup.png</file>
|
|
||||||
<file>images/movedown.png</file>
|
|
||||||
<file>images/update.png</file>
|
|
||||||
<file>images/contributors.png</file>
|
|
||||||
<file>images/changelog.png</file>
|
|
||||||
<file>images/preferences.png</file>
|
|
||||||
<file>images/switch_dir.png</file>
|
|
||||||
<file>images/exit.png</file>
|
|
||||||
<file>images/recentdocument.png</file>
|
|
||||||
<file>images/profiles.png</file>
|
|
||||||
<file>images/library.png</file>
|
|
||||||
<file>images/logs.png</file>
|
|
||||||
<file>images/arrow-left.png</file>
|
|
||||||
<file>images/arrow-right.png</file>
|
|
||||||
<file>images/compare.png</file>
|
|
||||||
<file>images/x9b0.png</file>
|
|
||||||
<file>images/x9l0.png</file>
|
|
||||||
<file>images/x9l1.png</file>
|
|
||||||
<file>images/x9l2.png</file>
|
|
||||||
<file>images/x9l3.png</file>
|
|
||||||
<file>images/x9l4.png</file>
|
|
||||||
<file>images/x9r0.png</file>
|
|
||||||
<file>images/x9r1.png</file>
|
|
||||||
<file>images/x9r2.png</file>
|
|
||||||
<file>images/x9r3.png</file>
|
|
||||||
<file>images/x9s0.png</file>
|
|
||||||
<file>images/x9t0.png</file>
|
|
||||||
<file>images/mcw/aicon.png</file>
|
|
||||||
<file>images/mcw/dicon.png</file>
|
|
||||||
<file>images/mcw/gicon.png</file>
|
|
||||||
<file>images/mcw/hicon.png</file>
|
|
||||||
<file>images/mcw/at1e1r.png</file>
|
|
||||||
<file>images/mcw/at2e1r.png</file>
|
|
||||||
<file>images/mcw/atailv.png</file>
|
|
||||||
<file>images/mcw/aw0a0f.png</file>
|
|
||||||
<file>images/mcw/aw1a0f.png</file>
|
|
||||||
<file>images/mcw/aw1a1f.png</file>
|
|
||||||
<file>images/mcw/aw1a2f.png</file>
|
|
||||||
<file>images/mcw/aw2a0f.png</file>
|
|
||||||
<file>images/mcw/aw2a1f.png</file>
|
|
||||||
<file>images/mcw/aw2a2f.png</file>
|
|
||||||
<file>images/mcw/h90.png</file>
|
|
||||||
<file>images/mcw/h120.png</file>
|
|
||||||
<file>images/mcw/h120x.png</file>
|
|
||||||
<file>images/mcw/h140.png</file>
|
|
||||||
<file>images/mcw/hfbl.png</file>
|
|
||||||
<file>images/mcw/htailg.png</file>
|
|
||||||
<file>images/mcw/htailng.png</file>
|
|
||||||
<file>images/mcw/htailfblg.png</file>
|
|
||||||
<file>images/mcw/htailfblng.png</file>
|
|
||||||
<file>images/mcw/gt1e1r.png</file>
|
|
||||||
<file>images/mcw/gt2e1r.png</file>
|
|
||||||
<file>images/mcw/gtailv.png</file>
|
|
||||||
<file>images/mcw/gw0t0a0f0s.png</file>
|
|
||||||
<file>images/mcw/gw0t1a0f0s.png</file>
|
|
||||||
<file>images/mcw/gw0t1a0f1s.png</file>
|
|
||||||
<file>images/mcw/gw0t1a0f2s.png</file>
|
|
||||||
<file>images/mcw/gw0t1a1f0s.png</file>
|
|
||||||
<file>images/mcw/gw0t1a1f1s.png</file>
|
|
||||||
<file>images/mcw/gw0t1a1f2s.png</file>
|
|
||||||
<file>images/mcw/gw0t1a2f0s.png</file>
|
|
||||||
<file>images/mcw/gw0t1a2f1s.png</file>
|
|
||||||
<file>images/mcw/gw0t1a2f2s.png</file>
|
|
||||||
<file>images/mcw/gw0t2a0f0s.png</file>
|
|
||||||
<file>images/mcw/gw0t2a0f1s.png</file>
|
|
||||||
<file>images/mcw/gw0t2a0f2s.png</file>
|
|
||||||
<file>images/mcw/gw0t2a1f0s.png</file>
|
|
||||||
<file>images/mcw/gw0t2a1f1s.png</file>
|
|
||||||
<file>images/mcw/gw0t2a1f2s.png</file>
|
|
||||||
<file>images/mcw/gw0t2a2f0s.png</file>
|
|
||||||
<file>images/mcw/gw0t2a2f1s.png</file>
|
|
||||||
<file>images/mcw/gw0t2a2f2s.png</file>
|
|
||||||
<file>images/mcw/gw1t0a0f0s.png</file>
|
|
||||||
<file>images/mcw/gw1t1a0f0s.png</file>
|
|
||||||
<file>images/mcw/gw1t1a0f1s.png</file>
|
|
||||||
<file>images/mcw/gw1t1a0f2s.png</file>
|
|
||||||
<file>images/mcw/gw1t1a1f0s.png</file>
|
|
||||||
<file>images/mcw/gw1t1a1f1s.png</file>
|
|
||||||
<file>images/mcw/gw1t1a1f2s.png</file>
|
|
||||||
<file>images/mcw/gw1t1a2f0s.png</file>
|
|
||||||
<file>images/mcw/gw1t1a2f1s.png</file>
|
|
||||||
<file>images/mcw/gw1t1a2f2s.png</file>
|
|
||||||
<file>images/mcw/gw1t2a0f0s.png</file>
|
|
||||||
<file>images/mcw/gw1t2a0f1s.png</file>
|
|
||||||
<file>images/mcw/gw1t2a0f2s.png</file>
|
|
||||||
<file>images/mcw/gw1t2a1f0s.png</file>
|
|
||||||
<file>images/mcw/gw1t2a1f1s.png</file>
|
|
||||||
<file>images/mcw/gw1t2a1f2s.png</file>
|
|
||||||
<file>images/mcw/gw1t2a2f0s.png</file>
|
|
||||||
<file>images/mcw/gw1t2a2f1s.png</file>
|
|
||||||
<file>images/mcw/gw1t2a2f2s.png</file>
|
|
||||||
<file>images/mcw/db0t2e0f0r.png</file>
|
|
||||||
<file>images/mcw/db0t2e0f1r.png</file>
|
|
||||||
<file>images/mcw/db0t2e0f2r.png</file>
|
|
||||||
<file>images/mcw/db0t2e1f0r.png</file>
|
|
||||||
<file>images/mcw/db0t2e1f1r.png</file>
|
|
||||||
<file>images/mcw/db0t2e1f2r.png</file>
|
|
||||||
<file>images/mcw/db0t2e2f0r.png</file>
|
|
||||||
<file>images/mcw/db0t2e2f1r.png</file>
|
|
||||||
<file>images/mcw/db0t2e2f2r.png</file>
|
|
||||||
<file>images/mcw/db1t2e0f0r.png</file>
|
|
||||||
<file>images/mcw/db1t2e0f1r.png</file>
|
|
||||||
<file>images/mcw/db1t2e0f2r.png</file>
|
|
||||||
<file>images/mcw/db1t2e1f0r.png</file>
|
|
||||||
<file>images/mcw/db1t2e1f1r.png</file>
|
|
||||||
<file>images/mcw/db1t2e1f2r.png</file>
|
|
||||||
<file>images/mcw/db1t2e2f0r.png</file>
|
|
||||||
<file>images/mcw/db1t2e2f1r.png</file>
|
|
||||||
<file>images/mcw/db1t2e2f2r.png</file>
|
|
||||||
<file>images/mcw/dt0t2e0f0r.png</file>
|
|
||||||
<file>images/mcw/dt0t2e0f1r.png</file>
|
|
||||||
<file>images/mcw/dt0t2e0f2r.png</file>
|
|
||||||
<file>images/mcw/dt0t2e1f0r.png</file>
|
|
||||||
<file>images/mcw/dt0t2e1f1r.png</file>
|
|
||||||
<file>images/mcw/dt0t2e1f2r.png</file>
|
|
||||||
<file>images/mcw/dt0t2e2f0r.png</file>
|
|
||||||
<file>images/mcw/dt0t2e2f1r.png</file>
|
|
||||||
<file>images/mcw/dt0t2e2f2r.png</file>
|
|
||||||
<file>images/mcw/dt1t2e0f0r.png</file>
|
|
||||||
<file>images/mcw/dt1t2e0f1r.png</file>
|
|
||||||
<file>images/mcw/dt1t2e0f2r.png</file>
|
|
||||||
<file>images/mcw/dt1t2e1f0r.png</file>
|
|
||||||
<file>images/mcw/dt1t2e1f1r.png</file>
|
|
||||||
<file>images/mcw/dt1t2e1f2r.png</file>
|
|
||||||
<file>images/mcw/dt1t2e2f0r.png</file>
|
|
||||||
<file>images/mcw/dt1t2e2f1r.png</file>
|
|
||||||
<file>images/mcw/dt1t2e2f2r.png</file>
|
|
||||||
<file>images/library/00001.png</file>
|
|
||||||
<file>images/library/00002.png</file>
|
|
||||||
<file>images/library/00003.png</file>
|
|
||||||
<file>images/library/00004.png</file>
|
|
||||||
<file>images/library/00005.png</file>
|
|
||||||
<file>images/library/00006.png</file>
|
|
||||||
<file>images/library/00007.png</file>
|
|
||||||
<file>images/library/00008.png</file>
|
|
||||||
<file>images/library/00009.png</file>
|
|
||||||
<file>images/library/00010.png</file>
|
|
||||||
<file>images/library/00011.png</file>
|
|
||||||
<file>images/library/00012.png</file>
|
|
||||||
<file>images/library/00013.png</file>
|
|
||||||
<file>images/library/00014.png</file>
|
|
||||||
<file>images/library/00015.png</file>
|
|
||||||
<file>images/library/00016.png</file>
|
|
||||||
<file>images/library/01001.png</file>
|
|
||||||
<file>images/library/01002.png</file>
|
|
||||||
<file>images/library/01003.png</file>
|
|
||||||
<file>images/library/01004.png</file>
|
|
||||||
<file>images/library/01005.png</file>
|
|
||||||
<file>images/library/01006.png</file>
|
|
||||||
<file>images/library/01007.png</file>
|
|
||||||
<file>images/library/01008.png</file>
|
|
||||||
<file>images/library/10001.png</file>
|
|
||||||
<file>images/library/10002.png</file>
|
|
||||||
<file>images/library/10003.png</file>
|
|
||||||
<file>images/library/10004.png</file>
|
|
||||||
<file>images/library/10005.png</file>
|
|
||||||
<file>images/library/10006.png</file>
|
|
||||||
<file>images/library/10007.png</file>
|
|
||||||
<file>images/library/10008.png</file>
|
|
||||||
<file>images/library/10009.png</file>
|
|
||||||
<file>images/library/10010.png</file>
|
|
||||||
<file>images/library/10011.png</file>
|
|
||||||
<file>images/library/10012.png</file>
|
|
||||||
<file>images/library/10013.png</file>
|
|
||||||
<file>images/library/10014.png</file>
|
|
||||||
<file>images/library/10015.png</file>
|
|
||||||
<file>images/library/10016.png</file>
|
|
||||||
<file>images/library/10017.png</file>
|
|
||||||
<file>images/library/10018.png</file>
|
|
||||||
<file>images/library/10019.png</file>
|
|
||||||
<file>images/library/10020.png</file>
|
|
||||||
<file>images/library/10021.png</file>
|
|
||||||
<file>images/library/10022.png</file>
|
|
||||||
<file>images/library/10023.png</file>
|
|
||||||
<file>images/library/10024.png</file>
|
|
||||||
<file>images/library/10033.png</file>
|
|
||||||
<file>images/library/10034.png</file>
|
|
||||||
<file>images/library/10035.png</file>
|
|
||||||
<file>images/library/10036.png</file>
|
|
||||||
<file>images/library/10049.png</file>
|
|
||||||
<file>images/library/10050.png</file>
|
|
||||||
<file>images/library/10051.png</file>
|
|
||||||
<file>images/library/10052.png</file>
|
|
||||||
<file>images/library/10037.png</file>
|
|
||||||
<file>images/library/10038.png</file>
|
|
||||||
<file>images/library/10039.png</file>
|
|
||||||
<file>images/library/10040.png</file>
|
|
||||||
<file>images/library/10053.png</file>
|
|
||||||
<file>images/library/10054.png</file>
|
|
||||||
<file>images/library/10055.png</file>
|
|
||||||
<file>images/library/10056.png</file>
|
|
||||||
<file>images/library/10025.png</file>
|
|
||||||
<file>images/library/10026.png</file>
|
|
||||||
<file>images/library/10027.png</file>
|
|
||||||
<file>images/library/10028.png</file>
|
|
||||||
<file>images/library/10029.png</file>
|
|
||||||
<file>images/library/10030.png</file>
|
|
||||||
<file>images/library/10031.png</file>
|
|
||||||
<file>images/library/10032.png</file>
|
|
||||||
<file>images/library/10041.png</file>
|
|
||||||
<file>images/library/10042.png</file>
|
|
||||||
<file>images/library/10043.png</file>
|
|
||||||
<file>images/library/10044.png</file>
|
|
||||||
<file>images/library/10057.png</file>
|
|
||||||
<file>images/library/10058.png</file>
|
|
||||||
<file>images/library/10059.png</file>
|
|
||||||
<file>images/library/10060.png</file>
|
|
||||||
<file>images/library/10045.png</file>
|
|
||||||
<file>images/library/10046.png</file>
|
|
||||||
<file>images/library/10047.png</file>
|
|
||||||
<file>images/library/10048.png</file>
|
|
||||||
<file>images/library/10061.png</file>
|
|
||||||
<file>images/library/10062.png</file>
|
|
||||||
<file>images/library/10063.png</file>
|
|
||||||
<file>images/library/10064.png</file>
|
|
||||||
<file>images/library/10065.png</file>
|
|
||||||
<file>images/library/10066.png</file>
|
|
||||||
<file>images/library/10067.png</file>
|
|
||||||
<file>images/library/10068.png</file>
|
|
||||||
<file>images/library/10081.png</file>
|
|
||||||
<file>images/library/10082.png</file>
|
|
||||||
<file>images/library/10083.png</file>
|
|
||||||
<file>images/library/10084.png</file>
|
|
||||||
<file>images/library/10069.png</file>
|
|
||||||
<file>images/library/10070.png</file>
|
|
||||||
<file>images/library/10071.png</file>
|
|
||||||
<file>images/library/10072.png</file>
|
|
||||||
<file>images/library/10085.png</file>
|
|
||||||
<file>images/library/10086.png</file>
|
|
||||||
<file>images/library/10087.png</file>
|
|
||||||
<file>images/library/10088.png</file>
|
|
||||||
<file>images/library/10073.png</file>
|
|
||||||
<file>images/library/10074.png</file>
|
|
||||||
<file>images/library/10075.png</file>
|
|
||||||
<file>images/library/10076.png</file>
|
|
||||||
<file>images/library/10089.png</file>
|
|
||||||
<file>images/library/10090.png</file>
|
|
||||||
<file>images/library/10091.png</file>
|
|
||||||
<file>images/library/10092.png</file>
|
|
||||||
<file>images/library/10077.png</file>
|
|
||||||
<file>images/library/10078.png</file>
|
|
||||||
<file>images/library/10079.png</file>
|
|
||||||
<file>images/library/10080.png</file>
|
|
||||||
<file>images/library/10093.png</file>
|
|
||||||
<file>images/library/10094.png</file>
|
|
||||||
<file>images/library/10095.png</file>
|
|
||||||
<file>images/library/10096.png</file>
|
|
||||||
<file>images/library/10097.png</file>
|
|
||||||
<file>images/library/10098.png</file>
|
|
||||||
<file>images/library/10099.png</file>
|
|
||||||
<file>images/library/10100.png</file>
|
|
||||||
<file>images/library/10101.png</file>
|
|
||||||
<file>images/library/10102.png</file>
|
|
||||||
<file>images/library/10103.png</file>
|
|
||||||
<file>images/library/10104.png</file>
|
|
||||||
<file>images/library/20001.png</file>
|
|
||||||
<file>images/library/20002.png</file>
|
|
||||||
<file>images/library/20003.png</file>
|
|
||||||
<file>images/library/20004.png</file>
|
|
||||||
<file>images/library/30001.png</file>
|
|
||||||
<file>images/library/30002.png</file>
|
|
||||||
<file>images/library/30003.png</file>
|
|
||||||
<file>images/library/30004.png</file>
|
|
||||||
</qresource>
|
|
||||||
</RCC>
|
|
|
@ -48,7 +48,7 @@ compareDialog::compareDialog(QWidget *parent, GeneralSettings *gg) :
|
||||||
|
|
||||||
void compareDialog::dragMoveEvent(QDragMoveEvent *event)
|
void compareDialog::dragMoveEvent(QDragMoveEvent *event)
|
||||||
{
|
{
|
||||||
if (event->mimeData()->hasFormat("application/x-companion9x")) {
|
if (event->mimeData()->hasFormat("application/x-companion")) {
|
||||||
event->acceptProposedAction();
|
event->acceptProposedAction();
|
||||||
} else {
|
} else {
|
||||||
event->ignore();
|
event->ignore();
|
||||||
|
@ -58,7 +58,7 @@ void compareDialog::dragMoveEvent(QDragMoveEvent *event)
|
||||||
void compareDialog::dragEnterEvent(QDragEnterEvent *event)
|
void compareDialog::dragEnterEvent(QDragEnterEvent *event)
|
||||||
{
|
{
|
||||||
// accept just text/uri-list mime format
|
// accept just text/uri-list mime format
|
||||||
if (event->mimeData()->hasFormat("application/x-companion9x")) {
|
if (event->mimeData()->hasFormat("application/x-companion")) {
|
||||||
event->acceptProposedAction();
|
event->acceptProposedAction();
|
||||||
} else {
|
} else {
|
||||||
event->ignore();
|
event->ignore();
|
||||||
|
@ -95,8 +95,8 @@ void compareDialog::dropEvent(QDropEvent *event)
|
||||||
const QMimeData *mimeData = event->mimeData();
|
const QMimeData *mimeData = event->mimeData();
|
||||||
if (child) {
|
if (child) {
|
||||||
if (child->objectName().contains("label_1")) {
|
if (child->objectName().contains("label_1")) {
|
||||||
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");
|
||||||
DragDropHeader *header = (DragDropHeader *)gmData.data();
|
DragDropHeader *header = (DragDropHeader *)gmData.data();
|
||||||
if (!header->general_settings) {
|
if (!header->general_settings) {
|
||||||
char *gData = gmData.data()+sizeof(DragDropHeader);//new char[gmData.size() + 1];
|
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")) {
|
else if (child->objectName().contains("label_2")) {
|
||||||
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");
|
||||||
DragDropHeader *header = (DragDropHeader *)gmData.data();
|
DragDropHeader *header = (DragDropHeader *)gmData.data();
|
||||||
if (!header->general_settings) {
|
if (!header->general_settings) {
|
||||||
char *gData = gmData.data()+sizeof(DragDropHeader);//new char[gmData.size() + 1];
|
char *gData = gmData.data()+sizeof(DragDropHeader);//new char[gmData.size() + 1];
|
||||||
|
@ -305,7 +305,7 @@ void compareDialog::printPhases()
|
||||||
str.append("</b></td><td rowspan=2 align=\"center\" valign=\"bottom\"><b>"+tr("Switch")+"</b></td></tr><tr><td align=center width=\"80\"><b>"+tr("Flight mode name"));
|
str.append("</b></td><td rowspan=2 align=\"center\" valign=\"bottom\"><b>"+tr("Switch")+"</b></td></tr><tr><td align=center width=\"80\"><b>"+tr("Flight mode name"));
|
||||||
str.append("</b></td><td align=center width=\"30\"><b>"+tr("IN")+"</b></td><td align=center width=\"30\"><b>"+tr("OUT")+"</b></td>");
|
str.append("</b></td><td align=center width=\"30\"><b>"+tr("IN")+"</b></td><td align=center width=\"30\"><b>"+tr("OUT")+"</b></td>");
|
||||||
for (i=0; i<4; i++) {
|
for (i=0; i<4; i++) {
|
||||||
str.append(QString("<td width=\"40\" align=\"center\"><b>%1</b></td>").arg(getStickStr(i)));
|
str.append(QString("<td width=\"40\" align=\"center\"><b>%1</b></td>").arg(getInputStr(*g_model1, i)));
|
||||||
}
|
}
|
||||||
str.append("</tr>");
|
str.append("</tr>");
|
||||||
for (i=0; i<GetEepromInterface()->getCapability(FlightPhases); i++) {
|
for (i=0; i<GetEepromInterface()->getCapability(FlightPhases); i++) {
|
||||||
|
@ -406,7 +406,7 @@ void compareDialog::printPhases()
|
||||||
str.append("</b></td><td rowspan=2 align=\"center\" valign=\"bottom\"><b>"+tr("Switch")+"</b></td></tr><tr><td align=center width=\"80\"><b>"+tr("Flight mode name"));
|
str.append("</b></td><td rowspan=2 align=\"center\" valign=\"bottom\"><b>"+tr("Switch")+"</b></td></tr><tr><td align=center width=\"80\"><b>"+tr("Flight mode name"));
|
||||||
str.append("</b></td><td align=center width=\"30\"><b>"+tr("IN")+"</b></td><td align=center width=\"30\"><b>"+tr("OUT")+"</b></td>");
|
str.append("</b></td><td align=center width=\"30\"><b>"+tr("IN")+"</b></td><td align=center width=\"30\"><b>"+tr("OUT")+"</b></td>");
|
||||||
for (i=0; i<4; i++) {
|
for (i=0; i<4; i++) {
|
||||||
str.append(QString("<td width=\"40\" align=\"center\"><b>%1</b></td>").arg(getStickStr(i)));
|
str.append(QString("<td width=\"40\" align=\"center\"><b>%1</b></td>").arg(getInputStr(*g_model1, i)));
|
||||||
}
|
}
|
||||||
str.append("</tr>");
|
str.append("</tr>");
|
||||||
for (i=0; i<GetEepromInterface()->getCapability(FlightPhases); i++) {
|
for (i=0; i<GetEepromInterface()->getCapability(FlightPhases); i++) {
|
||||||
|
@ -694,7 +694,7 @@ void compareDialog::printExpos()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
str.append("</table></td>");
|
str.append("</table></td>");
|
||||||
str.append("<td width=\"10%\" align=\"center\" valign=\"middle\"><b>"+getStickStr(i)+"</b></td>");
|
str.append("<td width=\"10%\" align=\"center\" valign=\"middle\"><b>"+getInputStr(*g_model2, i)+"</b></td>");
|
||||||
str.append("<td width=\"45%\">");
|
str.append("<td width=\"45%\">");
|
||||||
str.append("<table border=0 cellspacing=0 cellpadding=0>");
|
str.append("<table border=0 cellspacing=0 cellpadding=0>");
|
||||||
for (int j=0; j<C9X_MAX_EXPOS; j++) {
|
for (int j=0; j<C9X_MAX_EXPOS; j++) {
|
||||||
|
|
|
@ -29,8 +29,8 @@
|
||||||
<string>Dialog</string>
|
<string>Dialog</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowIcon">
|
<property name="windowIcon">
|
||||||
<iconset resource="companion9x.qrc">
|
<iconset resource="companion.qrc">
|
||||||
<normaloff>:/images/print.png</normaloff>:/images/print.png</iconset>
|
<normaloff>:/icon.png</normaloff>:/icon.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
|
@ -129,7 +129,7 @@
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="companion9x.qrc"/>
|
<include location="companion.qrc"/>
|
||||||
</resources>
|
</resources>
|
||||||
<connections>
|
<connections>
|
||||||
<connection>
|
<connection>
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
#include "contributorsdialog.h"
|
#include "contributorsdialog.h"
|
||||||
#include "ui_contributorsdialog.h"
|
#include "ui_contributorsdialog.h"
|
||||||
#include <QtGui>
|
#include <QtGui>
|
||||||
#define CLINESEP "=====================================================\n"
|
|
||||||
|
|
||||||
contributorsDialog::contributorsDialog(QWidget *parent, int contest, QString rnurl) :
|
contributorsDialog::contributorsDialog(QWidget *parent, int contest, QString rnurl) :
|
||||||
QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint),
|
QDialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint),
|
||||||
|
@ -9,44 +8,88 @@ contributorsDialog::contributorsDialog(QWidget *parent, int contest, QString rnu
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
switch (contest) {
|
switch (contest) {
|
||||||
case 0: {
|
case 0:
|
||||||
ui->textBrowser->insertPlainText(CLINESEP);
|
{
|
||||||
ui->textBrowser->insertPlainText(tr("People who have contributed to this project")+"\n");
|
QFile file(":/DONATIONS.txt");
|
||||||
ui->textBrowser->insertPlainText(CLINESEP);
|
QString str;
|
||||||
QFile file(":/contributors");
|
str.append("<html><head>");
|
||||||
if(file.open( QIODevice::ReadOnly | QIODevice::Text ) ) {
|
str.append("<style type=\"text/css\">\n");
|
||||||
ui->textBrowser->insertPlainText(file.readAll());
|
str.append(".mycss\n{\nfont-weight:normal;\ncolor:#000000;vertical-align: top;font-size:10px;text-align:left;font-family:arial, helvetica, sans-serif;\n}\n");
|
||||||
|
str.append(".mycssb\n{\nfont-weight:bold;\ncolor:#C00000;vertical-align: top;font-size:10px;text-align:left;font-family:arial, helvetica, sans-serif;\n}\n");
|
||||||
|
str.append(".myhead\n{\nfont-weight:bold;\ncolor:#000000;font-size:14px;text-align:left;font-family:arial, helvetica, sans-serif;\n}\n");
|
||||||
|
str.append("</style>\n</head><body class=\"mycss\"><table width=\"100%\" border=0 cellspacing=0 cellpadding=2>");
|
||||||
|
str.append("<tr><td class=\"myhead\">"+tr("People who have contributed to this project")+"</td></tr>");
|
||||||
|
str.append("</table>");
|
||||||
|
str.append("<table width=\"100%\" border=0 cellspacing=0 cellpadding=2>");
|
||||||
|
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||||
|
int columns=6;
|
||||||
|
float cwidth=100.0/columns;
|
||||||
|
while (!file.atEnd()) {
|
||||||
|
str.append("<tr>");
|
||||||
|
for (int i=0; i<columns; i++) {
|
||||||
|
str.append(QString("<td width=\"%1%\" ").arg(cwidth));
|
||||||
|
if (!file.atEnd()) {
|
||||||
|
QByteArray line = file.readLine();
|
||||||
|
if (line.contains("monthly") || line.contains("mensual")) {
|
||||||
|
str.append("class=\"mycssb\">");
|
||||||
|
} else {
|
||||||
|
str.append("class=\"mycss\">");
|
||||||
}
|
}
|
||||||
ui->textBrowser->insertPlainText("\n");
|
str.append(line.trimmed()+"</td>");
|
||||||
ui->textBrowser->insertPlainText(CLINESEP);
|
} else {
|
||||||
ui->textBrowser->insertPlainText(tr("Coders")+"\n");
|
str.append("class=\"mycss\"> </td>");
|
||||||
ui->textBrowser->insertPlainText(CLINESEP);
|
}
|
||||||
QFile file2(":/coders");
|
}
|
||||||
|
str.append("</tr>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
str.append("</table>");
|
||||||
|
QFile file2(":/CREDITS.txt");
|
||||||
|
str.append("<table width=\"100%\" border=0 cellspacing=0 cellpadding=2>");
|
||||||
|
str.append("<tr><td class=\"mycss\"> </td></tr>");
|
||||||
|
str.append("<tr><td class=\"myhead\">"+tr("Coders")+"</td></tr>");
|
||||||
|
str.append("</table>");
|
||||||
|
str.append("<table width=\"100%\" border=0 cellspacing=0 cellpadding=2>");
|
||||||
if(file2.open( QIODevice::ReadOnly | QIODevice::Text ) ) {
|
if(file2.open( QIODevice::ReadOnly | QIODevice::Text ) ) {
|
||||||
ui->textBrowser->insertPlainText(file2.readAll());
|
while (!file2.atEnd()) {
|
||||||
|
str.append("<tr>");
|
||||||
|
for (int i=0; i<3; i++) {
|
||||||
|
str.append("<td width=\"33.33%\" class=\"mycss\">");
|
||||||
|
if (!file2.atEnd()) {
|
||||||
|
QByteArray line = file2.readLine();
|
||||||
|
str.append(line.trimmed());
|
||||||
|
} else {
|
||||||
|
str.append(" ");
|
||||||
}
|
}
|
||||||
ui->textBrowser->insertPlainText("\n\n\n");
|
str.append("</td>");
|
||||||
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"));
|
|
||||||
}
|
}
|
||||||
|
str.append("</tr>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
str.append("<tr><td class=\"mycss\"> </td></tr>");
|
||||||
|
str.append("<tr><td colspan=3 class=\"mycss\">" + tr("Honors go to Rafal Tomczak (RadioClone), Thomas Husterer (th9x) and Erez Raviv (er9x and eePe)") + "<br/></td></tr>");
|
||||||
|
str.append("<tr><td colspan=3 class=\"mycss\">" + tr("Thank you all !!!") + "</td></tr>");
|
||||||
|
str.append("</table>");
|
||||||
|
str.append("</body></html>");
|
||||||
|
ui->textEditor->setHtml(str);
|
||||||
|
ui->textEditor->scroll(0, 0);
|
||||||
|
setWindowTitle(tr("Contributors"));
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case 1:{
|
case 1:
|
||||||
QFile file(":/releasenotes");
|
{
|
||||||
|
QFile file(":/releasenotes.txt");
|
||||||
if(file.open( QIODevice::ReadOnly | QIODevice::Text ) ) {
|
if(file.open( QIODevice::ReadOnly | QIODevice::Text ) ) {
|
||||||
ui->textBrowser->insertHtml(file.readAll());
|
ui->textEditor->setHtml(file.readAll());
|
||||||
}
|
|
||||||
ui->textBrowser->setReadOnly(true);
|
|
||||||
ui->textBrowser->verticalScrollBar()->setValue(0);
|
|
||||||
this->setWindowTitle(tr("Companion Release Notes"));
|
|
||||||
}
|
}
|
||||||
|
ui->textEditor->scroll(0,0);
|
||||||
|
setWindowTitle(tr("Companion Release Notes"));
|
||||||
break;
|
break;
|
||||||
case 2:{
|
}
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
{
|
||||||
if (!rnurl.isEmpty()) {
|
if (!rnurl.isEmpty()) {
|
||||||
this->setWindowTitle(tr("OpenTX Release Notes"));
|
this->setWindowTitle(tr("OpenTX Release Notes"));
|
||||||
manager = new QNetworkAccessManager(this);
|
manager = new QNetworkAccessManager(this);
|
||||||
|
@ -55,7 +98,8 @@ contributorsDialog::contributorsDialog(QWidget *parent, int contest, QString rnu
|
||||||
QNetworkRequest request(url);
|
QNetworkRequest request(url);
|
||||||
request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork);
|
request.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork);
|
||||||
manager->get(request);
|
manager->get(request);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
QTimer::singleShot(0, this, SLOT(forceClose()));
|
QTimer::singleShot(0, this, SLOT(forceClose()));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -65,7 +109,7 @@ contributorsDialog::contributorsDialog(QWidget *parent, int contest, QString rnu
|
||||||
|
|
||||||
void contributorsDialog::showEvent ( QShowEvent * )
|
void contributorsDialog::showEvent ( QShowEvent * )
|
||||||
{
|
{
|
||||||
ui->textBrowser->verticalScrollBar()->setValue(0);
|
ui->textEditor->scroll(0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
contributorsDialog::~contributorsDialog()
|
contributorsDialog::~contributorsDialog()
|
||||||
|
@ -75,9 +119,10 @@ contributorsDialog::~contributorsDialog()
|
||||||
|
|
||||||
void contributorsDialog::replyFinished(QNetworkReply * reply)
|
void contributorsDialog::replyFinished(QNetworkReply * reply)
|
||||||
{
|
{
|
||||||
ui->textBrowser->insertHtml(reply->readAll());
|
ui->textEditor->setHtml(reply->readAll());
|
||||||
}
|
}
|
||||||
|
|
||||||
void contributorsDialog::forceClose() {
|
void contributorsDialog::forceClose()
|
||||||
|
{
|
||||||
accept();;
|
accept();;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,25 +6,25 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>926</width>
|
<width>788</width>
|
||||||
<height>333</height>
|
<height>528</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Dialog</string>
|
<string>Dialog</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowIcon">
|
<property name="windowIcon">
|
||||||
<iconset resource="companion9x.qrc">
|
<iconset resource="companion.qrc">
|
||||||
<normaloff>:/icon.png</normaloff>:/icon.png</iconset>
|
<normaloff>:/icon.png</normaloff>:/icon.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QTextBrowser" name="textBrowser"/>
|
<widget class="QTextEdit" name="textEditor"/>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="companion9x.qrc"/>
|
<include location="companion.qrc"/>
|
||||||
</resources>
|
</resources>
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
|
|
@ -8,21 +8,25 @@
|
||||||
#include "flashinterface.h"
|
#include "flashinterface.h"
|
||||||
|
|
||||||
customizeSplashDialog::customizeSplashDialog(QWidget *parent) :
|
customizeSplashDialog::customizeSplashDialog(QWidget *parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::customizeSplashDialog) {
|
ui(new Ui::customizeSplashDialog)
|
||||||
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
ui->libraryButton->setIcon(CompanionIcon("library.png"));
|
||||||
ui->HowToLabel->clear();
|
ui->HowToLabel->clear();
|
||||||
ui->HowToLabel->append("<center>" + tr("Select an original firmware file") + "</center>");
|
ui->HowToLabel->append("<center>" + tr("Select an original firmware file") + "</center>");
|
||||||
}
|
}
|
||||||
|
|
||||||
customizeSplashDialog::~customizeSplashDialog() {
|
customizeSplashDialog::~customizeSplashDialog()
|
||||||
|
{
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
void customizeSplashDialog::on_FlashLoadButton_clicked()
|
void customizeSplashDialog::on_FlashLoadButton_clicked()
|
||||||
{
|
{
|
||||||
QString fileName;
|
QSettings settings;
|
||||||
QSettings settings("companion9x", "companion9x");
|
QString fileName = QFileDialog::getOpenFileName(this, tr("Open"), settings.value("lastFlashDir").toString(), FLASH_FILES_FILTER);
|
||||||
|
if (!fileName.isEmpty()) {
|
||||||
ui->ImageLoadButton->setDisabled(true);
|
ui->ImageLoadButton->setDisabled(true);
|
||||||
ui->libraryButton->setDisabled(true);
|
ui->libraryButton->setDisabled(true);
|
||||||
ui->SaveFlashButton->setDisabled(true);
|
ui->SaveFlashButton->setDisabled(true);
|
||||||
|
@ -31,7 +35,6 @@ void customizeSplashDialog::on_FlashLoadButton_clicked()
|
||||||
ui->imageLabel->clear();
|
ui->imageLabel->clear();
|
||||||
ui->HowToLabel->clear();
|
ui->HowToLabel->clear();
|
||||||
ui->HowToLabel->setStyleSheet("background:rgb(255, 255, 0)");
|
ui->HowToLabel->setStyleSheet("background:rgb(255, 255, 0)");
|
||||||
fileName = QFileDialog::getOpenFileName(this, tr("Open"), settings.value("lastFlashDir").toString(), FLASH_FILES_FILTER);
|
|
||||||
QFile file(fileName);
|
QFile file(fileName);
|
||||||
if (!file.exists()) {
|
if (!file.exists()) {
|
||||||
ui->FWFileName->clear();
|
ui->FWFileName->clear();
|
||||||
|
@ -58,6 +61,7 @@ void customizeSplashDialog::on_FlashLoadButton_clicked()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
settings.setValue("lastFlashDir", QFileInfo(fileName).dir().absolutePath());
|
settings.setValue("lastFlashDir", QFileInfo(fileName).dir().absolutePath());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void customizeSplashDialog::on_ImageLoadButton_clicked() {
|
void customizeSplashDialog::on_ImageLoadButton_clicked() {
|
||||||
|
@ -66,7 +70,7 @@ void customizeSplashDialog::on_ImageLoadButton_clicked() {
|
||||||
supportedImageFormats += QLatin1String(" *.") + QImageReader::supportedImageFormats()[formatIndex];
|
supportedImageFormats += QLatin1String(" *.") + QImageReader::supportedImageFormats()[formatIndex];
|
||||||
}
|
}
|
||||||
|
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
QString fileName = QFileDialog::getOpenFileName(this,
|
QString fileName = QFileDialog::getOpenFileName(this,
|
||||||
tr("Open Image to load"), settings.value("lastImagesDir").toString(), tr("Images (%1)").arg(supportedImageFormats));
|
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()
|
void customizeSplashDialog::on_SaveFlashButton_clicked()
|
||||||
{
|
{
|
||||||
QString fileName;
|
QString fileName;
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
ui->HowToLabel->clear();
|
ui->HowToLabel->clear();
|
||||||
fileName = QFileDialog::getSaveFileName(this, tr("Write to file"), settings.value("lastFlashDir").toString(), FLASH_FILES_FILTER, 0, QFileDialog::DontConfirmOverwrite);
|
fileName = QFileDialog::getSaveFileName(this, tr("Write to file"), settings.value("lastFlashDir").toString(), FLASH_FILES_FILTER, 0, QFileDialog::DontConfirmOverwrite);
|
||||||
if (fileName.isEmpty()) {
|
if (fileName.isEmpty()) {
|
||||||
|
@ -176,7 +180,7 @@ void customizeSplashDialog::on_InvertColorButton_clicked()
|
||||||
void customizeSplashDialog::on_SaveImageButton_clicked()
|
void customizeSplashDialog::on_SaveImageButton_clicked()
|
||||||
{
|
{
|
||||||
QString fileName;
|
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);
|
fileName = QFileDialog::getSaveFileName(this, tr("Write to file"), settings.value("lastImagesDir").toString(), tr("PNG images (*.png);;"), 0, QFileDialog::DontConfirmOverwrite);
|
||||||
if (!fileName.isEmpty()) {
|
if (!fileName.isEmpty()) {
|
||||||
|
|
|
@ -20,8 +20,8 @@
|
||||||
<string>Customize Splash</string>
|
<string>Customize Splash</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowIcon">
|
<property name="windowIcon">
|
||||||
<iconset>
|
<iconset resource="companion.qrc">
|
||||||
<normaloff>:/images/c_home.png</normaloff>:/images/c_home.png</iconset>
|
<normaloff>:/icon.png</normaloff>:/icon.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_2">
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
|
@ -71,7 +71,7 @@
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
<property name="pixmap">
|
<property name="pixmap">
|
||||||
<pixmap resource="companion9x.qrc">:/images/customize.png</pixmap>
|
<pixmap resource="companion.qrc">:/images/customize.png</pixmap>
|
||||||
</property>
|
</property>
|
||||||
<property name="scaledContents">
|
<property name="scaledContents">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
|
@ -211,10 +211,6 @@ p, li { white-space: pre-wrap; }
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>...</string>
|
<string>...</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="companion9x.qrc">
|
|
||||||
<normaloff>:/images/library.png</normaloff>:/images/library.png</iconset>
|
|
||||||
</property>
|
|
||||||
<property name="iconSize">
|
<property name="iconSize">
|
||||||
<size>
|
<size>
|
||||||
<width>16</width>
|
<width>16</width>
|
||||||
|
@ -264,7 +260,7 @@ p, li { white-space: pre-wrap; }
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="companion9x.qrc"/>
|
<include location="companion.qrc"/>
|
||||||
</resources>
|
</resources>
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
<string>Downloading: </string>
|
<string>Downloading: </string>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowIcon">
|
<property name="windowIcon">
|
||||||
<iconset resource="companion9x.qrc">
|
<iconset resource="companion.qrc">
|
||||||
<normaloff>:/icon.png</normaloff>:/icon.png</iconset>
|
<normaloff>:/icon.png</normaloff>:/icon.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
@ -51,7 +51,7 @@
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="companion9x.qrc"/>
|
<include location="companion.qrc"/>
|
||||||
</resources>
|
</resources>
|
||||||
<connections>
|
<connections>
|
||||||
<connection>
|
<connection>
|
||||||
|
|
|
@ -287,7 +287,12 @@ QString RawSource::toString()
|
||||||
if (index<0) {
|
if (index<0) {
|
||||||
return QObject::tr("----");
|
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:
|
case SOURCE_TYPE_STICK:
|
||||||
return AnalogString(index);
|
return AnalogString(index);
|
||||||
case SOURCE_TYPE_TRIM:
|
case SOURCE_TYPE_TRIM:
|
||||||
|
@ -438,7 +443,7 @@ GeneralSettings::GeneralSettings()
|
||||||
calibSpanNeg[i] = 0x180;
|
calibSpanNeg[i] = 0x180;
|
||||||
calibSpanPos[i] = 0x180;
|
calibSpanPos[i] = 0x180;
|
||||||
}
|
}
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
templateSetup = settings.value("default_channel_order", 0).toInt();
|
templateSetup = settings.value("default_channel_order", 0).toInt();
|
||||||
stickMode = settings.value("default_mode", 1).toInt();
|
stickMode = settings.value("default_mode", 1).toInt();
|
||||||
int profile_id = settings.value("ActiveProfile", 0).toInt();
|
int profile_id = settings.value("ActiveProfile", 0).toInt();
|
||||||
|
@ -659,7 +664,7 @@ ModelData ModelData::removeGlobalVars()
|
||||||
QList<EEPROMInterface *> eepromInterfaces;
|
QList<EEPROMInterface *> eepromInterfaces;
|
||||||
void RegisterEepromInterfaces()
|
void RegisterEepromInterfaces()
|
||||||
{
|
{
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
int rev4a = settings.value("rev4asupport",0).toInt();
|
int rev4a = settings.value("rev4asupport",0).toInt();
|
||||||
eepromInterfaces.push_back(new Open9xInterface(BOARD_STOCK));
|
eepromInterfaces.push_back(new Open9xInterface(BOARD_STOCK));
|
||||||
eepromInterfaces.push_back(new Open9xInterface(BOARD_M128));
|
eepromInterfaces.push_back(new Open9xInterface(BOARD_M128));
|
||||||
|
@ -697,7 +702,7 @@ void RegisterFirmwares()
|
||||||
#ifndef __APPLE__
|
#ifndef __APPLE__
|
||||||
firmwares.push_back(new FirmwareInfo("ersky9x", QObject::tr("ersky9x"), new Ersky9xInterface(), "http://ersky9x.googlecode.com/svn/trunk/ersky9x_rom.bin", ERSKY9X_STAMP));
|
firmwares.push_back(new FirmwareInfo("ersky9x", QObject::tr("ersky9x"), new Ersky9xInterface(), "http://ersky9x.googlecode.com/svn/trunk/ersky9x_rom.bin", ERSKY9X_STAMP));
|
||||||
#endif
|
#endif
|
||||||
default_firmware_variant = GetFirmwareVariant("opentx-stock-heli-templates-en");
|
default_firmware_variant = GetFirmwareVariant("opentx-9x-heli-templates-en");
|
||||||
|
|
||||||
RegisterEepromInterfaces();
|
RegisterEepromInterfaces();
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,6 +66,7 @@ const uint8_t modn12x3[4][4]= {
|
||||||
#define C9X_MAX_MODELS 60
|
#define C9X_MAX_MODELS 60
|
||||||
#define C9X_MAX_PHASES 9
|
#define C9X_MAX_PHASES 9
|
||||||
#define C9X_MAX_MIXERS 64
|
#define C9X_MAX_MIXERS 64
|
||||||
|
#define C9X_MAX_INPUTS 32
|
||||||
#define C9X_MAX_EXPOS 64
|
#define C9X_MAX_EXPOS 64
|
||||||
#define C9X_MAX_CURVES 32
|
#define C9X_MAX_CURVES 32
|
||||||
#define C9X_MAX_POINTS 17
|
#define C9X_MAX_POINTS 17
|
||||||
|
@ -286,19 +287,22 @@ class RawSource {
|
||||||
public:
|
public:
|
||||||
RawSource():
|
RawSource():
|
||||||
type(SOURCE_TYPE_NONE),
|
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)),
|
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),
|
type(type),
|
||||||
index(index)
|
index(index),
|
||||||
|
model(model)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -322,6 +326,7 @@ class RawSource {
|
||||||
|
|
||||||
RawSourceType type;
|
RawSourceType type;
|
||||||
int index;
|
int index;
|
||||||
|
const ModelData * model;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum RawSwitchType {
|
enum RawSwitchType {
|
||||||
|
@ -553,7 +558,7 @@ class LimitData {
|
||||||
bool symetrical;
|
bool symetrical;
|
||||||
char name[6+1];
|
char name[6+1];
|
||||||
CurveReference curve;
|
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 {
|
enum MltpxValue {
|
||||||
|
@ -642,7 +647,7 @@ class FuncSwData { // Function Switches data
|
||||||
char paramarm[10];
|
char paramarm[10];
|
||||||
unsigned int enabled; // TODO perhaps not any more the right name
|
unsigned int enabled; // TODO perhaps not any more the right name
|
||||||
unsigned int adjustMode;
|
unsigned int adjustMode;
|
||||||
unsigned int repeatParam;
|
int repeatParam;
|
||||||
void clear() { memset(this, 0, sizeof(FuncSwData)); }
|
void clear() { memset(this, 0, sizeof(FuncSwData)); }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -788,9 +793,8 @@ class TimerData {
|
||||||
public:
|
public:
|
||||||
TimerData() { clear(); }
|
TimerData() { clear(); }
|
||||||
TimerMode mode; // timer trigger source -> off, abs, THs, TH%, THt, sw/!sw, !m_sw/!m_sw
|
TimerMode mode; // timer trigger source -> off, abs, THs, TH%, THt, sw/!sw, !m_sw/!m_sw
|
||||||
int8_t modeB;
|
|
||||||
bool minuteBeep;
|
bool minuteBeep;
|
||||||
bool countdownBeep;
|
unsigned int countdownBeep;
|
||||||
bool dir; // 0=>Count Down, 1=>Count Up
|
bool dir; // 0=>Count Down, 1=>Count Up
|
||||||
unsigned int val;
|
unsigned int val;
|
||||||
bool persistent;
|
bool persistent;
|
||||||
|
@ -851,7 +855,10 @@ class ModelData {
|
||||||
PhaseData phaseData[C9X_MAX_PHASES];
|
PhaseData phaseData[C9X_MAX_PHASES];
|
||||||
MixData mixData[C9X_MAX_MIXERS];
|
MixData mixData[C9X_MAX_MIXERS];
|
||||||
LimitData limitData[C9X_NUM_CHNOUT];
|
LimitData limitData[C9X_NUM_CHNOUT];
|
||||||
|
|
||||||
|
char inputNames[C9X_MAX_INPUTS][4+1];
|
||||||
ExpoData expoData[C9X_MAX_EXPOS];
|
ExpoData expoData[C9X_MAX_EXPOS];
|
||||||
|
|
||||||
CurveData curves[C9X_MAX_CURVES];
|
CurveData curves[C9X_MAX_CURVES];
|
||||||
CustomSwData customSw[C9X_NUM_CSW];
|
CustomSwData customSw[C9X_NUM_CSW];
|
||||||
FuncSwData funcSw[C9X_MAX_CUSTOM_FUNCTIONS];
|
FuncSwData funcSw[C9X_MAX_CUSTOM_FUNCTIONS];
|
||||||
|
@ -911,8 +918,6 @@ enum Capability {
|
||||||
MixesWithoutExpo,
|
MixesWithoutExpo,
|
||||||
Timers,
|
Timers,
|
||||||
TimeDivisions,
|
TimeDivisions,
|
||||||
minuteBeep,
|
|
||||||
countdownBeep,
|
|
||||||
CustomFunctions,
|
CustomFunctions,
|
||||||
VoicesAsNumbers,
|
VoicesAsNumbers,
|
||||||
VoicesMaxLength,
|
VoicesMaxLength,
|
||||||
|
@ -931,7 +936,6 @@ enum Capability {
|
||||||
ChannelsName,
|
ChannelsName,
|
||||||
ExtraChannels,
|
ExtraChannels,
|
||||||
ExtraInputs,
|
ExtraInputs,
|
||||||
ExtraTrims,
|
|
||||||
ExtendedTrims,
|
ExtendedTrims,
|
||||||
HasInputFilter,
|
HasInputFilter,
|
||||||
NumCurves,
|
NumCurves,
|
||||||
|
@ -997,7 +1001,6 @@ enum Capability {
|
||||||
HasStickScroll,
|
HasStickScroll,
|
||||||
HasSoundMixer,
|
HasSoundMixer,
|
||||||
NumModules,
|
NumModules,
|
||||||
FSSwitch,
|
|
||||||
PPMCenter,
|
PPMCenter,
|
||||||
SYMLimits,
|
SYMLimits,
|
||||||
HasCurrentCalibration,
|
HasCurrentCalibration,
|
||||||
|
|
|
@ -366,8 +366,6 @@ t_Er9xModelData::operator ModelData ()
|
||||||
c9x.timers[0].mode = getEr9xTimerMode(tmrMode);
|
c9x.timers[0].mode = getEr9xTimerMode(tmrMode);
|
||||||
c9x.timers[0].dir = tmrDir;
|
c9x.timers[0].dir = tmrDir;
|
||||||
c9x.timers[0].val = tmrVal;
|
c9x.timers[0].val = tmrVal;
|
||||||
c9x.timers[0].modeB = tmrModeB;
|
|
||||||
|
|
||||||
switch(protocol) {
|
switch(protocol) {
|
||||||
case 1:
|
case 1:
|
||||||
c9x.moduleData[0].protocol = PXX_DJT;
|
c9x.moduleData[0].protocol = PXX_DJT;
|
||||||
|
|
|
@ -44,7 +44,7 @@ const char * Er9xInterface::getName()
|
||||||
|
|
||||||
const int Er9xInterface::getEEpromSize()
|
const int Er9xInterface::getEEpromSize()
|
||||||
{
|
{
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
QString avrMCU = settings.value("mcu", QString("m64")).toString();
|
QString avrMCU = settings.value("mcu", QString("m64")).toString();
|
||||||
if (avrMCU==QString("m128")) {
|
if (avrMCU==QString("m128")) {
|
||||||
return 2*EESIZE_STOCK;
|
return 2*EESIZE_STOCK;
|
||||||
|
|
|
@ -508,7 +508,6 @@ t_Ersky9xModelData_v10::operator ModelData ()
|
||||||
getEEPROMString(c9x.name, name, sizeof(name));
|
getEEPROMString(c9x.name, name, sizeof(name));
|
||||||
for (int i=0; i<2; i++) {
|
for (int i=0; i<2; i++) {
|
||||||
c9x.timers[i].mode = getErSky9xTimerMode(timer[i].tmrModeA);
|
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].dir = timer[i].tmrDir;
|
||||||
c9x.timers[i].val = timer[i].tmrVal;
|
c9x.timers[i].val = timer[i].tmrVal;
|
||||||
}
|
}
|
||||||
|
@ -630,7 +629,6 @@ t_Ersky9xModelData_v11::operator ModelData ()
|
||||||
getEEPROMString(c9x.name, name, sizeof(name));
|
getEEPROMString(c9x.name, name, sizeof(name));
|
||||||
for (int i=0; i<2; i++) {
|
for (int i=0; i<2; i++) {
|
||||||
c9x.timers[i].mode = getErSky9xTimerMode(timer[i].tmrModeA);
|
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].dir = timer[i].tmrDir;
|
||||||
c9x.timers[i].val = timer[i].tmrVal;
|
c9x.timers[i].val = timer[i].tmrVal;
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,7 @@ const char * Gruvin9xInterface::getName()
|
||||||
const int Gruvin9xInterface::getEEpromSize()
|
const int Gruvin9xInterface::getEEpromSize()
|
||||||
{
|
{
|
||||||
if (board == BOARD_STOCK) {
|
if (board == BOARD_STOCK) {
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
QString avrMCU = settings.value("mcu", QString("m64")).toString();
|
QString avrMCU = settings.value("mcu", QString("m64")).toString();
|
||||||
if (avrMCU==QString("m128")) {
|
if (avrMCU==QString("m128")) {
|
||||||
return EESIZE_STOCK*2;
|
return EESIZE_STOCK*2;
|
||||||
|
|
|
@ -593,7 +593,7 @@ enum Functions {
|
||||||
#endif
|
#endif
|
||||||
FUNC_BACKLIGHT,
|
FUNC_BACKLIGHT,
|
||||||
#if defined(DEBUG)
|
#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
|
#endif
|
||||||
FUNC_MAX
|
FUNC_MAX
|
||||||
};
|
};
|
||||||
|
|
|
@ -135,7 +135,7 @@ using namespace Open9xSky9x;
|
||||||
Open9xSky9xSimulator::Open9xSky9xSimulator(Open9xInterface * open9xInterface):
|
Open9xSky9xSimulator::Open9xSky9xSimulator(Open9xInterface * open9xInterface):
|
||||||
open9xInterface(open9xInterface)
|
open9xInterface(open9xInterface)
|
||||||
{
|
{
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
QString path=settings.value("sdPath", ".").toString()+"/";
|
QString path=settings.value("sdPath", ".").toString()+"/";
|
||||||
int i=0;
|
int i=0;
|
||||||
for (i=0; i< std::min(path.length(),1022); i++) {
|
for (i=0; i< std::min(path.length(),1022); i++) {
|
||||||
|
|
|
@ -35,6 +35,8 @@
|
||||||
#define AUDIO
|
#define AUDIO
|
||||||
#define VOICE
|
#define VOICE
|
||||||
#define PXX
|
#define PXX
|
||||||
|
#define DSM2
|
||||||
|
#define DSM2_PPM
|
||||||
#define DBLKEYS
|
#define DBLKEYS
|
||||||
#define AUTOSWITCH
|
#define AUTOSWITCH
|
||||||
#define GRAPHICS
|
#define GRAPHICS
|
||||||
|
@ -47,6 +49,7 @@
|
||||||
#define PPM_CENTER_ADJUSTABLE
|
#define PPM_CENTER_ADJUSTABLE
|
||||||
#define PPM_LIMITS_SYMETRICAL
|
#define PPM_LIMITS_SYMETRICAL
|
||||||
#define FAI_CHOICE
|
#define FAI_CHOICE
|
||||||
|
|
||||||
#define EEPROM_VARIANT 3
|
#define EEPROM_VARIANT 3
|
||||||
|
|
||||||
#undef min
|
#undef min
|
||||||
|
@ -65,6 +68,7 @@ inline int geteepromsize() {
|
||||||
#include "radio/src/targets/taranis/board_taranis.cpp"
|
#include "radio/src/targets/taranis/board_taranis.cpp"
|
||||||
#include "radio/src/protocols/ppm_arm.cpp"
|
#include "radio/src/protocols/ppm_arm.cpp"
|
||||||
#include "radio/src/protocols/pxx_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/targets/taranis/pwr_driver.cpp"
|
||||||
#include "radio/src/eeprom_common.cpp"
|
#include "radio/src/eeprom_common.cpp"
|
||||||
#include "radio/src/eeprom_conversions.cpp"
|
#include "radio/src/eeprom_conversions.cpp"
|
||||||
|
@ -145,7 +149,7 @@ OpentxTaranisSimulator::OpentxTaranisSimulator(Open9xInterface * open9xInterface
|
||||||
open9xInterface(open9xInterface)
|
open9xInterface(open9xInterface)
|
||||||
{
|
{
|
||||||
taranisSimulatorBoard = GetEepromInterface()->getBoard();
|
taranisSimulatorBoard = GetEepromInterface()->getBoard();
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
QString path=settings.value("sdPath", ".").toString()+"/";
|
QString path=settings.value("sdPath", ".").toString()+"/";
|
||||||
int i=0;
|
int i=0;
|
||||||
for (i=0; i< std::min(path.length(),1022); i++) {
|
for (i=0; i< std::min(path.length(),1022); i++) {
|
||||||
|
|
|
@ -1338,10 +1338,10 @@ class CustomFunctionField: public TransformedField {
|
||||||
internalField.Append(new CharField<6>(_arm_param));
|
internalField.Append(new CharField<6>(_arm_param));
|
||||||
if (version >= 214) {
|
if (version >= 214) {
|
||||||
internalField.Append(new UnsignedField<2>(_mode));
|
internalField.Append(new UnsignedField<2>(_mode));
|
||||||
internalField.Append(new UnsignedField<6>(_delay));
|
internalField.Append(new SignedField<6>(_delay));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
internalField.Append(new UnsignedField<8>(_delay));
|
internalField.Append(new UnsignedField<8>((unsigned int &)_delay));
|
||||||
}
|
}
|
||||||
if (version < 214)
|
if (version < 214)
|
||||||
internalField.Append(new SpareBitsField<8>());
|
internalField.Append(new SpareBitsField<8>());
|
||||||
|
@ -1364,7 +1364,7 @@ class CustomFunctionField: public TransformedField {
|
||||||
if (IS_ARM(board)) {
|
if (IS_ARM(board)) {
|
||||||
_mode = 0;
|
_mode = 0;
|
||||||
if (fn.func == FuncPlaySound || fn.func == FuncPlayPrompt || fn.func == FuncPlayValue)
|
if (fn.func == FuncPlaySound || fn.func == FuncPlayPrompt || fn.func == FuncPlayValue)
|
||||||
_delay = fn.repeatParam / 5;
|
_delay = (version >= 216 ? fn.repeatParam : (fn.repeatParam/5));
|
||||||
else
|
else
|
||||||
_delay = (fn.enabled ? 1 : 0);
|
_delay = (fn.enabled ? 1 : 0);
|
||||||
if (fn.func <= FuncInstantTrim) {
|
if (fn.func <= FuncInstantTrim) {
|
||||||
|
@ -1439,7 +1439,7 @@ class CustomFunctionField: public TransformedField {
|
||||||
{
|
{
|
||||||
if (IS_ARM(board)) {
|
if (IS_ARM(board)) {
|
||||||
if (fn.func == FuncPlaySound || fn.func == FuncPlayPrompt || fn.func == FuncPlayValue)
|
if (fn.func == FuncPlaySound || fn.func == FuncPlayPrompt || fn.func == FuncPlayValue)
|
||||||
fn.repeatParam = _delay * 5;
|
fn.repeatParam = (version >= 216 ? _delay : (_delay*5));
|
||||||
else
|
else
|
||||||
fn.enabled = (_delay & 0x01);
|
fn.enabled = (_delay & 0x01);
|
||||||
|
|
||||||
|
@ -1529,7 +1529,7 @@ class CustomFunctionField: public TransformedField {
|
||||||
SourcesConversionTable * sourcesConversionTable;
|
SourcesConversionTable * sourcesConversionTable;
|
||||||
char _arm_param[10];
|
char _arm_param[10];
|
||||||
unsigned int _param;
|
unsigned int _param;
|
||||||
unsigned int _delay;
|
int _delay;
|
||||||
unsigned int _mode;
|
unsigned int _mode;
|
||||||
unsigned int _union_param;
|
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));
|
internalField.Append(new TimerModeField(modelData.timers[i].mode, board, version));
|
||||||
if ((IS_ARM(board) || IS_2560(board)) && version >= 216) {
|
if ((IS_ARM(board) || IS_2560(board)) && version >= 216) {
|
||||||
internalField.Append(new UnsignedField<16>(modelData.timers[i].val));
|
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].minuteBeep));
|
||||||
internalField.Append(new BoolField<1>(modelData.timers[i].persistent));
|
internalField.Append(new BoolField<1>(modelData.timers[i].persistent));
|
||||||
internalField.Append(new SpareBitsField<4>());
|
internalField.Append(new SpareBitsField<4>());
|
||||||
|
@ -1818,7 +1818,7 @@ Open9xModelDataNew::Open9xModelDataNew(ModelData & modelData, BoardEnum board, u
|
||||||
}
|
}
|
||||||
else if (release21March2013) {
|
else if (release21March2013) {
|
||||||
internalField.Append(new UnsignedField<12>(modelData.timers[i].val));
|
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));
|
internalField.Append(new BoolField<1>(modelData.timers[i].minuteBeep));
|
||||||
if (HAS_PERSISTENT_TIMERS(board)) {
|
if (HAS_PERSISTENT_TIMERS(board)) {
|
||||||
internalField.Append(new BoolField<1>(modelData.timers[i].persistent));
|
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) {
|
if (IS_TARANIS(board) && version >= 216) {
|
||||||
// TODO ScriptData scriptsData[MAX_SCRIPTS];
|
// TODO ScriptData scriptsData[MAX_SCRIPTS];
|
||||||
internalField.Append(new SpareBitsField<720>());
|
internalField.Append(new SpareBitsField<720>());
|
||||||
// TODO char inputNames[MAX_INPUTS][4];
|
for (int i=0; i<32; i++)
|
||||||
internalField.Append(new SpareBitsField<1024>());
|
internalField.Append(new ZCharField<4>(modelData.inputNames[i]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1972,8 +1972,10 @@ void Open9xModelDataNew::beforeExport()
|
||||||
for (int module=0; module<3; module++) {
|
for (int module=0; module<3; module++) {
|
||||||
if (modelData.moduleData[module].protocol >= PXX_XJT_X16 && modelData.moduleData[module].protocol <= PXX_XJT_LR12)
|
if (modelData.moduleData[module].protocol >= PXX_XJT_X16 && modelData.moduleData[module].protocol <= PXX_XJT_LR12)
|
||||||
subprotocols[module] = modelData.moduleData[module].protocol - PXX_XJT_X16;
|
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
|
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 ;
|
// qDebug() << QString("after import model") << modelData.name ;
|
||||||
|
|
||||||
for (int module=0; module<3; module++) {
|
for (int module=0; module<3; module++) {
|
||||||
if (modelData.moduleData[module].protocol == PXX_XJT_X16) {
|
if (modelData.moduleData[module].protocol == PXX_XJT_X16 || modelData.moduleData[module].protocol == LP45) {
|
||||||
if (subprotocols[module]>=0)
|
if (subprotocols[module] >= 0)
|
||||||
modelData.moduleData[module].protocol = PXX_XJT_X16 + subprotocols[module];
|
modelData.moduleData[module].protocol += subprotocols[module];
|
||||||
else
|
else
|
||||||
modelData.moduleData[module].protocol = OFF;
|
modelData.moduleData[module].protocol = OFF;
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,8 +74,9 @@ class ProtocolsConversionTable: public ConversionTable
|
||||||
ProtocolsConversionTable(BoardEnum board)
|
ProtocolsConversionTable(BoardEnum board)
|
||||||
{
|
{
|
||||||
int val = 0;
|
int val = 0;
|
||||||
if (IS_TARANIS(board))
|
if (IS_TARANIS(board)) {
|
||||||
addConversion(OFF, val++);
|
addConversion(OFF, val++);
|
||||||
|
}
|
||||||
addConversion(PPM, val++);
|
addConversion(PPM, val++);
|
||||||
if (!IS_ARM(board)) {
|
if (!IS_ARM(board)) {
|
||||||
addConversion(PPM16, val++);
|
addConversion(PPM16, val++);
|
||||||
|
@ -86,9 +87,13 @@ class ProtocolsConversionTable: public ConversionTable
|
||||||
addConversion(PXX_XJT_D8, val);
|
addConversion(PXX_XJT_D8, val);
|
||||||
addConversion(PXX_XJT_LR12, val++);
|
addConversion(PXX_XJT_LR12, val++);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
addConversion(PXX_DJT, val++);
|
addConversion(PXX_DJT, val++);
|
||||||
|
}
|
||||||
if (IS_TARANIS(board)) {
|
if (IS_TARANIS(board)) {
|
||||||
addConversion(DSM2, val++);
|
addConversion(LP45, val);
|
||||||
|
addConversion(DSM2, val);
|
||||||
|
addConversion(DSMX, val++);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
addConversion(LP45, val++);
|
addConversion(LP45, val++);
|
||||||
|
@ -126,7 +131,7 @@ class Open9xModelDataNew: public TransformedField {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
char name[256];
|
char name[256];
|
||||||
signed int subprotocols[C9X_NUM_MODULES+1/*trainer*/];
|
int subprotocols[C9X_NUM_MODULES+1/*trainer*/];
|
||||||
ProtocolsConversionTable protocolsConversionTable;
|
ProtocolsConversionTable protocolsConversionTable;
|
||||||
ChannelsConversionTable channelsConversionTable;
|
ChannelsConversionTable channelsConversionTable;
|
||||||
};
|
};
|
||||||
|
|
|
@ -42,14 +42,10 @@ size_t SizeOfArray( T(&)[ N ] )
|
||||||
return N;
|
return N;
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList o9xservers;
|
|
||||||
|
|
||||||
Open9xInterface::Open9xInterface(BoardEnum board):
|
Open9xInterface::Open9xInterface(BoardEnum board):
|
||||||
EEPROMInterface(board),
|
EEPROMInterface(board),
|
||||||
efile(new EFile())
|
efile(new EFile())
|
||||||
{
|
{
|
||||||
o9xservers.clear();
|
|
||||||
o9xservers << "93.51.182.154" << "open9x.9xforums.com";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Open9xInterface::~Open9xInterface()
|
Open9xInterface::~Open9xInterface()
|
||||||
|
@ -309,7 +305,7 @@ bool Open9xInterface::load(RadioData &radioData, uint8_t *eeprom, int size)
|
||||||
std::cout << " wrong size (" << size << ")\n";
|
std::cout << " wrong size (" << size << ")\n";
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} 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;
|
size=2048;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -517,10 +513,6 @@ int Open9xInterface::getCapability(const Capability capability)
|
||||||
return 1;
|
return 1;
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
case minuteBeep:
|
|
||||||
return 1;
|
|
||||||
case countdownBeep:
|
|
||||||
return 1;
|
|
||||||
case Pots:
|
case Pots:
|
||||||
return (IS_TARANIS(board) ? 4 : 3);
|
return (IS_TARANIS(board) ? 4 : 3);
|
||||||
case Switches:
|
case Switches:
|
||||||
|
@ -598,14 +590,10 @@ int Open9xInterface::getCapability(const Capability capability)
|
||||||
return 1;
|
return 1;
|
||||||
case ExtendedTrims:
|
case ExtendedTrims:
|
||||||
return 500;
|
return 500;
|
||||||
case ExtraTrims:
|
|
||||||
return 1;
|
|
||||||
case Simulation:
|
case Simulation:
|
||||||
return 1;
|
return 1;
|
||||||
case DSM2Indexes:
|
case DSM2Indexes:
|
||||||
return 1;
|
return 1;
|
||||||
case FSSwitch:
|
|
||||||
return 1;
|
|
||||||
case MixesWithoutExpo:
|
case MixesWithoutExpo:
|
||||||
return 1;
|
return 1;
|
||||||
case NumCurves:
|
case NumCurves:
|
||||||
|
@ -696,6 +684,7 @@ int Open9xInterface::getCapability(const Capability capability)
|
||||||
case GetThrSwitch:
|
case GetThrSwitch:
|
||||||
return (IS_TARANIS(board) ? DSW_SF1 : DSW_THR) ;
|
return (IS_TARANIS(board) ? DSW_SF1 : DSW_THR) ;
|
||||||
case VirtualInputs:
|
case VirtualInputs:
|
||||||
|
return IS_TARANIS(board) ? 32 : 0;
|
||||||
case LuaInputs:
|
case LuaInputs:
|
||||||
case LimitsPer1000:
|
case LimitsPer1000:
|
||||||
case EnhancedCurves:
|
case EnhancedCurves:
|
||||||
|
@ -951,14 +940,9 @@ bool Open9xInterface::loadBackup(RadioData &radioData, uint8_t *eeprom, int esiz
|
||||||
|
|
||||||
QString geturl( int board)
|
QString geturl( int board)
|
||||||
{
|
{
|
||||||
QString url="http://";
|
QSettings settings;
|
||||||
QSettings settings("companion9x", "companion9x");
|
QString url = settings.value("compilation-server", OPENTX_FIRMWARE_DOWNLOADS).toString();
|
||||||
int server = settings.value("fwserver", 0).toInt();
|
|
||||||
if (server >= o9xservers.count()) {
|
|
||||||
server = 0;
|
|
||||||
settings.setValue("fwserver",server);
|
|
||||||
}
|
|
||||||
url.append(o9xservers.at(server));
|
|
||||||
switch(board) {
|
switch(board) {
|
||||||
case BOARD_STOCK:
|
case BOARD_STOCK:
|
||||||
case BOARD_M128:
|
case BOARD_M128:
|
||||||
|
@ -979,27 +963,21 @@ QString geturl( int board)
|
||||||
|
|
||||||
QString getstamp( int board)
|
QString getstamp( int board)
|
||||||
{
|
{
|
||||||
QString url="http://";
|
QSettings settings;
|
||||||
QSettings settings("companion9x", "companion9x");
|
QString url = settings.value("compilation-server", OPENTX_FIRMWARE_DOWNLOADS).toString();
|
||||||
int server = settings.value("fwserver",0).toInt();
|
url.append("/stamp-opentx-");
|
||||||
if (server >=o9xservers.count()) {
|
|
||||||
server=0;
|
|
||||||
settings.setValue("fwserver",server);
|
|
||||||
}
|
|
||||||
url.append(o9xservers.at(server));
|
|
||||||
url.append("/binaries/stamp-opentx-");
|
|
||||||
switch(board) {
|
switch(board) {
|
||||||
case BOARD_STOCK:
|
case BOARD_STOCK:
|
||||||
url.append("stock.txt");
|
url.append("9x.txt");
|
||||||
break;
|
break;
|
||||||
case BOARD_M128:
|
case BOARD_M128:
|
||||||
url.append("stock128.txt");
|
url.append("9x128.txt");
|
||||||
break;
|
break;
|
||||||
case BOARD_GRUVIN9X:
|
case BOARD_GRUVIN9X:
|
||||||
url.append("v4.txt");
|
url.append("gruvin9x.txt");
|
||||||
break;
|
break;
|
||||||
case BOARD_SKY9X:
|
case BOARD_SKY9X:
|
||||||
url.append("arm.txt");
|
url.append("sky9x.txt");
|
||||||
break;
|
break;
|
||||||
case BOARD_TARANIS:
|
case BOARD_TARANIS:
|
||||||
case BOARD_TARANIS_REV4a:
|
case BOARD_TARANIS_REV4a:
|
||||||
|
@ -1014,15 +992,9 @@ QString getstamp( int board)
|
||||||
|
|
||||||
QString getrnurl( int board)
|
QString getrnurl( int board)
|
||||||
{
|
{
|
||||||
QString url="http://";
|
QSettings settings;
|
||||||
QSettings settings("companion9x", "companion9x");
|
QString url = settings.value("compilation-server", OPENTX_FIRMWARE_DOWNLOADS).toString();
|
||||||
int server = settings.value("fwserver",0).toInt();
|
url.append("/releasenotes-");
|
||||||
if (server >=o9xservers.count()) {
|
|
||||||
server=0;
|
|
||||||
settings.setValue("fwserver",server);
|
|
||||||
}
|
|
||||||
url.append(o9xservers.at(server));
|
|
||||||
url.append("/docs/releasenotes-");
|
|
||||||
switch(board) {
|
switch(board) {
|
||||||
case BOARD_STOCK:
|
case BOARD_STOCK:
|
||||||
case BOARD_M128:
|
case BOARD_M128:
|
||||||
|
@ -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 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 } };
|
Option fai_options[] = { { "faichoice", QObject::tr("Possibility to enable FAI MODE at field") }, { "faimode", QObject::tr("FAI MODE always enabled") }, { NULL } };
|
||||||
/* 9x board */
|
/* 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->addOptions(ext_options);
|
||||||
open9x->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support"));
|
open9x->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support"));
|
||||||
open9x->addOption("templates", QObject::tr("Enable TEMPLATES menu"));
|
open9x->addOption("templates", QObject::tr("Enable TEMPLATES menu"));
|
||||||
|
@ -1087,7 +1059,7 @@ void RegisterOpen9xFirmwares()
|
||||||
firmwares.push_back(open9x);
|
firmwares.push_back(open9x);
|
||||||
|
|
||||||
/* 9x board with M128 chip */
|
/* 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->addOptions(ext_options);
|
||||||
open9x->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support"));
|
open9x->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support"));
|
||||||
open9x->addOption("templates", QObject::tr("Enable TEMPLATES menu"));
|
open9x->addOption("templates", QObject::tr("Enable TEMPLATES menu"));
|
||||||
|
@ -1183,7 +1155,7 @@ void RegisterOpen9xFirmwares()
|
||||||
firmwares.push_back(open9x);
|
firmwares.push_back(open9x);
|
||||||
|
|
||||||
/* Gruvin9x board */
|
/* 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->setVariantBase(FRSKY_VARIANT);
|
||||||
open9x->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support"));
|
open9x->addOption("heli", QObject::tr("Enable heli menu and cyclic mix support"));
|
||||||
open9x->addOption("templates", QObject::tr("Enable TEMPLATES menu"));
|
open9x->addOption("templates", QObject::tr("Enable TEMPLATES menu"));
|
||||||
|
@ -1247,7 +1219,7 @@ void RegisterOpen9xFirmwares()
|
||||||
open9x->addOptions(fai_options);
|
open9x->addOptions(fai_options);
|
||||||
firmwares.push_back(open9x);
|
firmwares.push_back(open9x);
|
||||||
|
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
int rev4a = settings.value("rev4asupport",0).toInt();
|
int rev4a = settings.value("rev4asupport",0).toInt();
|
||||||
if (rev4a) {
|
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);
|
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);
|
||||||
|
|
|
@ -18,6 +18,9 @@
|
||||||
|
|
||||||
#include "eeprominterface.h"
|
#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 EFile;
|
||||||
|
|
||||||
class Open9xInterface : public EEPROMInterface
|
class Open9xInterface : public EEPROMInterface
|
||||||
|
@ -91,6 +94,7 @@ class Open9xFirmware: public FirmwareInfo {
|
||||||
addLanguage("se");
|
addLanguage("se");
|
||||||
addLanguage("cz");
|
addLanguage("cz");
|
||||||
addLanguage("es");
|
addLanguage("es");
|
||||||
|
addLanguage("pl");
|
||||||
addLanguage("pt");
|
addLanguage("pt");
|
||||||
|
|
||||||
addTTSLanguage("en");
|
addTTSLanguage("en");
|
||||||
|
@ -100,6 +104,7 @@ class Open9xFirmware: public FirmwareInfo {
|
||||||
addTTSLanguage("se");
|
addTTSLanguage("se");
|
||||||
addTTSLanguage("cz");
|
addTTSLanguage("cz");
|
||||||
addTTSLanguage("sk");
|
addTTSLanguage("sk");
|
||||||
|
addTTSLanguage("pl");
|
||||||
addTTSLanguage("pt");
|
addTTSLanguage("pt");
|
||||||
addTTSLanguage("es");
|
addTTSLanguage("es");
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
// Automatically generated file (CMake) - do not edit
|
// Automatically generated file (CMake) - do not edit
|
||||||
#define DATE_STR "@DATE@"
|
#define DATE_STR "@DATE@"
|
||||||
#define TIME_STR "@TIME@"
|
#define TIME_STR "@TIME@"
|
||||||
#define VERS_STR "c9x"
|
#define VERS_STR "@C9X_VERSION@"
|
||||||
#define SVN_STR "@FIRMWARE@-r@G9X_WC_REVISION@"
|
|
||||||
#define MOD_STR "FH"
|
#define MOD_STR "FH"
|
||||||
|
|
|
@ -44,7 +44,7 @@ const char * Th9xInterface::getName()
|
||||||
|
|
||||||
const int Th9xInterface::getEEpromSize()
|
const int Th9xInterface::getEEpromSize()
|
||||||
{
|
{
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
QString avrMCU = settings.value("mcu", QString("m64")).toString();
|
QString avrMCU = settings.value("mcu", QString("m64")).toString();
|
||||||
if (avrMCU==QString("m128")) {
|
if (avrMCU==QString("m128")) {
|
||||||
return 2*EESIZE_STOCK;
|
return 2*EESIZE_STOCK;
|
||||||
|
|
|
@ -14,8 +14,8 @@
|
||||||
<string>Fuses</string>
|
<string>Fuses</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowIcon">
|
<property name="windowIcon">
|
||||||
<iconset resource="companion9x.qrc">
|
<iconset resource="companion.qrc">
|
||||||
<normaloff>:/images/fuses.png</normaloff>:/images/fuses.png</iconset>
|
<normaloff>:/icon.png</normaloff>:/icon.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item row="1" column="0" colspan="2">
|
<item row="1" column="0" colspan="2">
|
||||||
|
@ -116,7 +116,7 @@ p, li { white-space: pre-wrap; }
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="companion9x.qrc"/>
|
<include location="companion.qrc"/>
|
||||||
</resources>
|
</resources>
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
|
|
@ -20,7 +20,7 @@ GeneralEdit::GeneralEdit(RadioData &radioData, QWidget *parent) :
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
this->setWindowIcon(QIcon(":/icon.png"));
|
this->setWindowIcon(QIcon(":/icon.png"));
|
||||||
|
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
QString firmware_id = settings.value("firmware", default_firmware_variant.id).toString();
|
QString firmware_id = settings.value("firmware", default_firmware_variant.id).toString();
|
||||||
ui->tabWidget->setCurrentIndex(settings.value("generalEditTab", 0).toInt());
|
ui->tabWidget->setCurrentIndex(settings.value("generalEditTab", 0).toInt());
|
||||||
int profile_id=settings.value("profileId", 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)
|
void GeneralEdit::on_tabWidget_currentChanged(int index)
|
||||||
{
|
{
|
||||||
// TODO why er9x here
|
// TODO why er9x here
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
settings.setValue("generalEditTab",index);//ui->tabWidget->currentIndex());
|
settings.setValue("generalEditTab",index);//ui->tabWidget->currentIndex());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1195,7 +1195,7 @@ void GeneralEdit::on_swGEAChkB_stateChanged(int )
|
||||||
|
|
||||||
void GeneralEdit::on_calretrieve_PB_clicked()
|
void GeneralEdit::on_calretrieve_PB_clicked()
|
||||||
{
|
{
|
||||||
QSettings settings("companion9x", "companion9x");
|
QSettings settings;
|
||||||
int profile_id=ui->profile_CB->itemData(ui->profile_CB->currentIndex()).toInt();
|
int profile_id=ui->profile_CB->itemData(ui->profile_CB->currentIndex()).toInt();
|
||||||
settings.beginGroup("Profiles");
|
settings.beginGroup("Profiles");
|
||||||
QString profile=QString("profile%1").arg(profile_id);
|
QString profile=QString("profile%1").arg(profile_id);
|
||||||
|
@ -1312,7 +1312,7 @@ void GeneralEdit::on_calretrieve_PB_clicked()
|
||||||
|
|
||||||
void GeneralEdit::on_calstore_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();
|
int profile_id=ui->profile_CB->itemData(ui->profile_CB->currentIndex()).toInt();
|
||||||
settings.beginGroup("Profiles");
|
settings.beginGroup("Profiles");
|
||||||
QString profile=QString("profile%1").arg(profile_id);
|
QString profile=QString("profile%1").arg(profile_id);
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
<string>General Edit</string>
|
<string>General Edit</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowIcon">
|
<property name="windowIcon">
|
||||||
<iconset resource="companion9x.qrc">
|
<iconset resource="companion.qrc">
|
||||||
<normaloff>:/icon.png</normaloff>:/icon.png</iconset>
|
<normaloff>:/icon.png</normaloff>:/icon.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeGripEnabled">
|
<property name="sizeGripEnabled">
|
||||||
|
@ -3555,7 +3555,7 @@ p, li { white-space: pre-wrap; }
|
||||||
<tabstop>PPM_MultiplierDSB</tabstop>
|
<tabstop>PPM_MultiplierDSB</tabstop>
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="companion9x.qrc"/>
|
<include location="companion.qrc"/>
|
||||||
</resources>
|
</resources>
|
||||||
<connections/>
|
<connections/>
|
||||||
<designerdata>
|
<designerdata>
|
||||||
|
|
|
@ -12,15 +12,28 @@ QString getPhaseName(int val, char * phasename)
|
||||||
phaseName.append(phasename);
|
phaseName.append(phasename);
|
||||||
if (phaseName.isEmpty()) {
|
if (phaseName.isEmpty()) {
|
||||||
return QString(val < 0 ? "!" : "") + QObject::tr("FM%1").arg(abs(val) - 1);
|
return QString(val < 0 ? "!" : "") + QObject::tr("FM%1").arg(abs(val) - 1);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
return QString(val < 0 ? "!" : "") + phaseName;
|
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)
|
void populateGvSourceCB(QComboBox *b, int value)
|
||||||
|
@ -63,7 +76,7 @@ void populateTTraceCB(QComboBox *b, int value)
|
||||||
}
|
}
|
||||||
int channels=(IS_ARM(GetEepromInterface()->getBoard()) ? 32 : 16);
|
int channels=(IS_ARM(GetEepromInterface()->getBoard()) ? 32 : 16);
|
||||||
for (int i=1; i<= channels; i++) {
|
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);
|
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;
|
QStringList qs;
|
||||||
b->clear();
|
b->clear();
|
||||||
|
@ -411,18 +424,18 @@ void populateFuncParamCB(QComboBox *b, uint function, unsigned int value, unsign
|
||||||
b->setCurrentIndex(value);
|
b->setCurrentIndex(value);
|
||||||
}
|
}
|
||||||
else if (function==FuncVolume) {
|
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) {
|
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) {
|
else if (function>=FuncAdjustGV1 && function<=FuncAdjustGVLast) {
|
||||||
switch (adjustmode) {
|
switch (adjustmode) {
|
||||||
case 1:
|
case 1:
|
||||||
populateSourceCB(b, RawSource(value), POPULATE_SOURCES|POPULATE_TRIMS|POPULATE_SWITCHES);
|
populateSourceCB(b, RawSource(value), model, POPULATE_SOURCES|POPULATE_TRIMS|POPULATE_SWITCHES);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
populateSourceCB(b, RawSource(value), POPULATE_GVARS);
|
populateSourceCB(b, RawSource(value), model, POPULATE_GVARS);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
b->clear();
|
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)
|
void populateGVmodeCB(QComboBox *b, unsigned int value)
|
||||||
{
|
{
|
||||||
b->clear();
|
b->clear();
|
||||||
|
@ -471,6 +473,78 @@ void populatePhasesCB(QComboBox *b, int value)
|
||||||
b->setCurrentIndex(value + GetEepromInterface()->getCapability(FlightPhases));
|
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 || weight<mini) {
|
||||||
|
weightGV->setChecked(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):
|
CurveGroup::CurveGroup(QComboBox *curveTypeCB, QCheckBox *curveGVarCB, QComboBox *curveValueCB, QSpinBox *curveValueSB, CurveReference & curve, unsigned int flags):
|
||||||
QObject(),
|
QObject(),
|
||||||
curveTypeCB(curveTypeCB),
|
curveTypeCB(curveTypeCB),
|
||||||
|
@ -914,8 +988,7 @@ void populateGVCB(QComboBox *b, int value)
|
||||||
b->setCurrentIndex(nullitem);
|
b->setCurrentIndex(nullitem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void populateSourceCB(QComboBox *b, const RawSource & source, const ModelData & model, unsigned int flags)
|
||||||
void populateSourceCB(QComboBox *b, const RawSource &source, unsigned int flags)
|
|
||||||
{
|
{
|
||||||
RawSource item;
|
RawSource item;
|
||||||
|
|
||||||
|
@ -925,7 +998,18 @@ void populateSourceCB(QComboBox *b, const RawSource &source, unsigned int flags)
|
||||||
item = RawSource(SOURCE_TYPE_NONE);
|
item = RawSource(SOURCE_TYPE_NONE);
|
||||||
b->addItem(item.toString(), item.toValue());
|
b->addItem(item.toString(), item.toValue());
|
||||||
if (item == source) b->setCurrentIndex(b->count()-1);
|
if (item == source) b->setCurrentIndex(b->count()-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (flags & POPULATE_VIRTUAL_INPUTS) {
|
||||||
|
int virtualInputs = GetEepromInterface()->getCapability(VirtualInputs);
|
||||||
|
for (int i=0; i<virtualInputs; i++) {
|
||||||
|
item = RawSource(SOURCE_TYPE_VIRTUAL_INPUT, i, &model);
|
||||||
|
b->addItem(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++) {
|
for (int i=0; i<4+GetEepromInterface()->getCapability(Pots); i++) {
|
||||||
item = RawSource(SOURCE_TYPE_STICK, i);
|
item = RawSource(SOURCE_TYPE_STICK, i);
|
||||||
b->addItem(item.toString(), item.toValue());
|
b->addItem(item.toString(), item.toValue());
|
||||||
|
@ -1400,3 +1484,35 @@ QString getCenterBeep(ModelData * g_model)
|
||||||
if(g_model->beepANACenter & 0x80) strl << "LS";
|
if(g_model->beepANACenter & 0x80) strl << "LS";
|
||||||
return strl.join(", ");
|
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));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,33 @@ void populateTTraceCB(QComboBox *b, int value);
|
||||||
void populateRotEncCB(QComboBox *b, int value, int renumber);
|
void populateRotEncCB(QComboBox *b, int value, int renumber);
|
||||||
void populateBacklightCB(QComboBox *b, const uint8_t value);
|
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 {
|
class CurveGroup : public QObject {
|
||||||
|
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
@ -57,10 +84,9 @@ class CurveGroup : public QObject {
|
||||||
#define POPULATE_AND_SWITCHES 0x04
|
#define POPULATE_AND_SWITCHES 0x04
|
||||||
void populateSwitchCB(QComboBox *b, const RawSwitch & value, unsigned long attr=0, UseContext context=DefaultContext);
|
void populateSwitchCB(QComboBox *b, const RawSwitch & value, unsigned long attr=0, UseContext context=DefaultContext);
|
||||||
void populateFuncCB(QComboBox *b, unsigned int value);
|
void populateFuncCB(QComboBox *b, unsigned int value);
|
||||||
void populateRepeatCB(QComboBox *b, unsigned int value);
|
|
||||||
void populateGVmodeCB(QComboBox *b, unsigned int value);
|
void populateGVmodeCB(QComboBox *b, unsigned int value);
|
||||||
QString FuncParam(uint function, int value, QString paramT="",unsigned int adjustmode=0);
|
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 populateFuncParamArmTCB(QComboBox *b, ModelData * g_model, char * value, QStringList & paramsList);
|
||||||
void populatePhasesCB(QComboBox *b, int value);
|
void populatePhasesCB(QComboBox *b, int value);
|
||||||
void populateTrimUseCB(QComboBox *b, unsigned int phase);
|
void populateTrimUseCB(QComboBox *b, unsigned int phase);
|
||||||
|
@ -77,18 +103,19 @@ QString getPhasesStr(unsigned int phases, ModelData & model);
|
||||||
#define POPULATE_GVARS 8
|
#define POPULATE_GVARS 8
|
||||||
#define POPULATE_TELEMETRY 16
|
#define POPULATE_TELEMETRY 16
|
||||||
#define POPULATE_TELEMETRYEXT 32
|
#define POPULATE_TELEMETRYEXT 32
|
||||||
|
#define POPULATE_VIRTUAL_INPUTS 64
|
||||||
|
|
||||||
#define GVARS_VARIANT 0x0001
|
#define GVARS_VARIANT 0x0001
|
||||||
#define FRSKY_VARIANT 0x0002
|
#define FRSKY_VARIANT 0x0002
|
||||||
|
|
||||||
// void populateGVarCB(QComboBox *b, int value, int min, int max,int pgvars=5); //TODO: Clean Up
|
// void populateGVarCB(QComboBox *b, int value, int min, int max,int pgvars=5); //TODO: Clean Up
|
||||||
void populateGVCB(QComboBox *b, int value);
|
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);
|
void populateCSWCB(QComboBox *b, int value);
|
||||||
QString getTimerMode(int tm);
|
QString getTimerMode(int tm);
|
||||||
QString getTimerModeB(int tm);
|
QString getTimerModeB(int tm);
|
||||||
QString getPhaseName(int val, char * phasename=NULL);
|
QString getPhaseName(int val, char * phasename=NULL);
|
||||||
QString getStickStr(int index);
|
QString getInputStr(ModelData & model, int index);
|
||||||
QString getCSWFunc(int val);
|
QString getCSWFunc(int val);
|
||||||
QString getFuncName(unsigned int val);
|
QString getFuncName(unsigned int val);
|
||||||
QString getRepeatString(unsigned int val);
|
QString getRepeatString(unsigned int val);
|
||||||
|
|
Before Width: | Height: | Size: 274 KiB After Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 15 KiB |
|
@ -1,104 +1,340 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
<svg
|
||||||
<svg version="1.2" width="190mm" height="190mm" viewBox="0 0 19000 19000" preserveAspectRatio="xMidYMid" fill-rule="evenodd" clip-path="url(#presentation_clip_path)" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
|
xmlns:ooo="http://xml.openoffice.org/svg/export"
|
||||||
<defs class="ClipPathGroup">
|
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
||||||
<clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
<rect x="0" y="0" width="19000" height="19000"/>
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
</clipPath>
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
</defs>
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
<defs class="TextShapeIndex">
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
<g ooo:slide="id1" ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10"/>
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
</defs>
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
<defs class="EmbeddedBulletChars">
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
<g id="bullet-char-template(57356)" transform="scale(0.00048828125,-0.00048828125)">
|
version="1.2"
|
||||||
<path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
|
width="190mm"
|
||||||
</g>
|
height="190mm"
|
||||||
<g id="bullet-char-template(57354)" transform="scale(0.00048828125,-0.00048828125)">
|
viewBox="0 0 19000 19000"
|
||||||
<path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
|
preserveAspectRatio="xMidYMid"
|
||||||
</g>
|
fill-rule="evenodd"
|
||||||
<g id="bullet-char-template(10146)" transform="scale(0.00048828125,-0.00048828125)">
|
clip-path="url(#presentation_clip_path)"
|
||||||
<path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
|
stroke-width="28.222"
|
||||||
</g>
|
stroke-linejoin="round"
|
||||||
<g id="bullet-char-template(10132)" transform="scale(0.00048828125,-0.00048828125)">
|
xml:space="preserve"
|
||||||
<path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
|
id="svg3347"
|
||||||
</g>
|
inkscape:version="0.48.4 r9939"
|
||||||
<g id="bullet-char-template(10007)" transform="scale(0.00048828125,-0.00048828125)">
|
sodipodi:docname="opentx_logo.svg"><metadata
|
||||||
<path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
|
id="metadata3491"><rdf:RDF><cc:Work
|
||||||
</g>
|
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||||
<g id="bullet-char-template(10004)" transform="scale(0.00048828125,-0.00048828125)">
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
|
||||||
<path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
|
pagecolor="#ffffff"
|
||||||
</g>
|
bordercolor="#666666"
|
||||||
<g id="bullet-char-template(9679)" transform="scale(0.00048828125,-0.00048828125)">
|
borderopacity="1"
|
||||||
<path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
|
objecttolerance="10"
|
||||||
</g>
|
gridtolerance="10"
|
||||||
<g id="bullet-char-template(8226)" transform="scale(0.00048828125,-0.00048828125)">
|
guidetolerance="10"
|
||||||
<path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
|
inkscape:pageopacity="0"
|
||||||
</g>
|
inkscape:pageshadow="2"
|
||||||
<g id="bullet-char-template(8211)" transform="scale(0.00048828125,-0.00048828125)">
|
inkscape:window-width="1280"
|
||||||
<path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
|
inkscape:window-height="775"
|
||||||
</g>
|
id="namedview3489"
|
||||||
</defs>
|
showgrid="false"
|
||||||
<defs class="TextEmbeddedBitmaps"/>
|
inkscape:zoom="0.20481287"
|
||||||
<g>
|
inkscape:cx="-1144.0445"
|
||||||
<g id="id2" class="Master_Slide">
|
inkscape:cy="70.041471"
|
||||||
<g id="bg-id2" class="Background"/>
|
inkscape:window-x="0"
|
||||||
<g id="bo-id2" class="BackgroundObjects"/>
|
inkscape:window-y="0"
|
||||||
</g>
|
inkscape:window-maximized="1"
|
||||||
</g>
|
inkscape:current-layer="g3399" /><defs
|
||||||
<g class="SlideGroup">
|
class="ClipPathGroup"
|
||||||
<g>
|
id="defs3349"><linearGradient
|
||||||
<g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
|
id="linearGradient3844"
|
||||||
<g class="Page">
|
osb:paint="solid"><stop
|
||||||
<g class="Group">
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
<g class="com.sun.star.drawing.CustomShape">
|
offset="0"
|
||||||
<g id="id3">
|
id="stop3846" /></linearGradient><linearGradient
|
||||||
<path fill="rgb(0,0,0)" stroke="none" d="M 9500,19000 L 0,19000 0,0 19000,0 19000,19000 9500,19000 Z"/>
|
id="linearGradient3838"
|
||||||
<path fill="none" stroke="rgb(0,0,0)" d="M 9500,19000 L 0,19000 0,0 19000,0 19000,19000 9500,19000 Z"/>
|
osb:paint="solid"><stop
|
||||||
</g>
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
</g>
|
offset="0"
|
||||||
<g class="com.sun.star.drawing.PolyPolygonShape">
|
id="stop3840" /></linearGradient><linearGradient
|
||||||
<g id="id4">
|
id="linearGradient3826"
|
||||||
<path fill="rgb(255,255,255)" stroke="none" d="M 1500,4800 L 7800,4800 7800,6800 5800,6800 5800,14800 3500,14800 3500,6800 1500,6800 1500,6000 1500,4800 Z"/>
|
osb:paint="solid"><stop
|
||||||
<path fill="none" stroke="rgb(255,255,255)" d="M 1500,4800 L 7800,4800 7800,6800 5800,6800 5800,14800 3500,14800 3500,6800 1500,6800 1500,6000 1500,4800 Z"/>
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
<text class="TextShape"><tspan class="TextParagraph" font-family="Liberation Sans, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="3228" y="10021"><tspan fill="rgb(0,0,0)" stroke="none"> </tspan></tspan></tspan></text>
|
offset="0"
|
||||||
</g>
|
id="stop3828" /></linearGradient><linearGradient
|
||||||
</g>
|
id="linearGradient3820"
|
||||||
<g class="com.sun.star.drawing.PolyPolygonShape">
|
osb:paint="solid"><stop
|
||||||
<g id="id5">
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
<path fill="rgb(51,102,51)" stroke="none" d="M 17400,4800 L 14800,4800 13000,7900 11100,4800 8500,4800 11500,9800 8400,14800 10900,14800 13000,11500 15000,14800 17600,14800 14400,9800 17400,4800 Z"/>
|
offset="0"
|
||||||
<path fill="none" stroke="rgb(51,102,51)" d="M 17400,4800 L 14800,4800 13000,7900 11100,4800 8500,4800 11500,9800 8400,14800 10900,14800 13000,11500 15000,14800 17600,14800 14400,9800 17400,4800 Z"/>
|
id="stop3822" /></linearGradient><linearGradient
|
||||||
</g>
|
id="linearGradient3814"
|
||||||
</g>
|
osb:paint="solid"><stop
|
||||||
<g class="com.sun.star.drawing.TextShape">
|
style="stop-color:#009000;stop-opacity:1;"
|
||||||
<g id="id6">
|
offset="0"
|
||||||
<text class="TextShape"><tspan class="TextParagraph" font-family="Ubuntu Medium" font-size="2540px" font-weight="700"><tspan class="TextPosition" x="1201" y="17891"><tspan fill="rgb(255,255,255)" stroke="none">COMPANION</tspan></tspan></tspan></text>
|
id="stop3816" /></linearGradient><clipPath
|
||||||
</g>
|
id="presentation_clip_path"
|
||||||
</g>
|
clipPathUnits="userSpaceOnUse"><rect
|
||||||
<g class="Group">
|
x="0"
|
||||||
<g class="com.sun.star.drawing.TextShape">
|
y="0"
|
||||||
<g id="id7">
|
width="19000"
|
||||||
<text class="TextShape"><tspan class="TextParagraph" font-family="Ubuntu Medium" font-size="3104px" font-weight="700"><tspan class="TextPosition" x="1391" y="3521"><tspan fill="rgb(255,255,255)" stroke="none">O</tspan></tspan></tspan></text>
|
height="19000"
|
||||||
</g>
|
id="rect3352" /></clipPath><linearGradient
|
||||||
</g>
|
inkscape:collect="always"
|
||||||
<g class="com.sun.star.drawing.TextShape">
|
xlink:href="#linearGradient3814"
|
||||||
<g id="id8">
|
id="linearGradient3818"
|
||||||
<text class="TextShape"><tspan class="TextParagraph" font-family="Ubuntu Medium" font-size="3104px" font-weight="700"><tspan class="TextPosition" x="6282" y="3521"><tspan fill="rgb(255,255,255)" stroke="none">P</tspan></tspan></tspan></text>
|
x1="8385.889"
|
||||||
</g>
|
y1="9800"
|
||||||
</g>
|
x2="17614.111"
|
||||||
<g class="com.sun.star.drawing.TextShape">
|
y2="9800"
|
||||||
<g id="id9">
|
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||||
<text class="TextShape"><tspan class="TextParagraph" font-family="Ubuntu Medium" font-size="3104px" font-weight="700"><tspan class="TextPosition" x="10696" y="3586"><tspan fill="rgb(255,255,255)" stroke="none">E</tspan></tspan></tspan></text>
|
inkscape:collect="always"
|
||||||
</g>
|
xlink:href="#linearGradient3820"
|
||||||
</g>
|
id="linearGradient3824"
|
||||||
<g class="com.sun.star.drawing.TextShape">
|
x1="1485.889"
|
||||||
<g id="id10">
|
y1="9800"
|
||||||
<text class="TextShape"><tspan class="TextParagraph" font-family="Ubuntu Medium" font-size="3104px" font-weight="700"><tspan class="TextPosition" x="14950" y="3586"><tspan fill="rgb(255,255,255)" stroke="none">N</tspan></tspan></tspan></text>
|
x2="7814.111"
|
||||||
</g>
|
y2="9800"
|
||||||
</g>
|
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||||
</g>
|
inkscape:collect="always"
|
||||||
</g>
|
xlink:href="#linearGradient3826"
|
||||||
</g>
|
id="linearGradient3830"
|
||||||
</g>
|
x1="15416.328"
|
||||||
</g>
|
y1="1734.3301"
|
||||||
</g>
|
x2="18735.195"
|
||||||
</svg>
|
y2="1734.3301"
|
||||||
|
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3826"
|
||||||
|
id="linearGradient3832"
|
||||||
|
x1="11162.328"
|
||||||
|
y1="1734.3301"
|
||||||
|
x2="13794.105"
|
||||||
|
y2="1734.3301"
|
||||||
|
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3826"
|
||||||
|
id="linearGradient3834"
|
||||||
|
x1="6748.3281"
|
||||||
|
y1="1669.3301"
|
||||||
|
x2="9796.8242"
|
||||||
|
y2="1669.3301"
|
||||||
|
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3826"
|
||||||
|
id="linearGradient3836"
|
||||||
|
x1="1644.0078"
|
||||||
|
y1="1671.8105"
|
||||||
|
x2="5454.0078"
|
||||||
|
y2="1671.8105"
|
||||||
|
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3838"
|
||||||
|
id="linearGradient3842"
|
||||||
|
x1="-14.111"
|
||||||
|
y1="9500"
|
||||||
|
x2="19014.111"
|
||||||
|
y2="9500"
|
||||||
|
gradientUnits="userSpaceOnUse" /><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3844"
|
||||||
|
id="linearGradient3848"
|
||||||
|
x1="-14.111"
|
||||||
|
y1="9500"
|
||||||
|
x2="19014.111"
|
||||||
|
y2="9500"
|
||||||
|
gradientUnits="userSpaceOnUse" /></defs><defs
|
||||||
|
class="TextShapeIndex"
|
||||||
|
id="defs3354"><g
|
||||||
|
ooo:slide="id1"
|
||||||
|
ooo:id-list="id3 id4 id5 id6 id7 id8 id9 id10"
|
||||||
|
id="g3356" /></defs><defs
|
||||||
|
class="EmbeddedBulletChars"
|
||||||
|
id="defs3358"><g
|
||||||
|
id="bullet-char-template(57356)"
|
||||||
|
transform="scale(0.00048828125,-0.00048828125)"><path
|
||||||
|
d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"
|
||||||
|
id="path3361" /></g><g
|
||||||
|
id="bullet-char-template(57354)"
|
||||||
|
transform="scale(0.00048828125,-0.00048828125)"><path
|
||||||
|
d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"
|
||||||
|
id="path3364" /></g><g
|
||||||
|
id="bullet-char-template(10146)"
|
||||||
|
transform="scale(0.00048828125,-0.00048828125)"><path
|
||||||
|
d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"
|
||||||
|
id="path3367" /></g><g
|
||||||
|
id="bullet-char-template(10132)"
|
||||||
|
transform="scale(0.00048828125,-0.00048828125)"><path
|
||||||
|
d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"
|
||||||
|
id="path3370" /></g><g
|
||||||
|
id="bullet-char-template(10007)"
|
||||||
|
transform="scale(0.00048828125,-0.00048828125)"><path
|
||||||
|
d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"
|
||||||
|
id="path3373" /></g><g
|
||||||
|
id="bullet-char-template(10004)"
|
||||||
|
transform="scale(0.00048828125,-0.00048828125)"><path
|
||||||
|
d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"
|
||||||
|
id="path3376" /></g><g
|
||||||
|
id="bullet-char-template(9679)"
|
||||||
|
transform="scale(0.00048828125,-0.00048828125)"><path
|
||||||
|
d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"
|
||||||
|
id="path3379" /></g><g
|
||||||
|
id="bullet-char-template(8226)"
|
||||||
|
transform="scale(0.00048828125,-0.00048828125)"><path
|
||||||
|
d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"
|
||||||
|
id="path3382" /></g><g
|
||||||
|
id="bullet-char-template(8211)"
|
||||||
|
transform="scale(0.00048828125,-0.00048828125)"><path
|
||||||
|
d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"
|
||||||
|
id="path3385" /></g></defs><defs
|
||||||
|
class="TextEmbeddedBitmaps"
|
||||||
|
id="defs3387" /><g
|
||||||
|
id="g3389"><g
|
||||||
|
id="id2"
|
||||||
|
class="Master_Slide"><g
|
||||||
|
id="bg-id2"
|
||||||
|
class="Background" /><g
|
||||||
|
id="bo-id2"
|
||||||
|
class="BackgroundObjects" /></g></g><g
|
||||||
|
id="g3399"
|
||||||
|
class="Page"><g
|
||||||
|
class="com.sun.star.drawing.CustomShape"
|
||||||
|
id="g3403"
|
||||||
|
style="stroke:url(#linearGradient3842);fill-opacity:1;fill:url(#linearGradient3848)"><g
|
||||||
|
id="id3"
|
||||||
|
style="stroke:url(#linearGradient3842);fill-opacity:1;fill:url(#linearGradient3848)"><path
|
||||||
|
d="M 9500,19000 0,19000 0,0 l 19000,0 0,19000 -9500,0 z"
|
||||||
|
id="path3406"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:url(#linearGradient3848);stroke:url(#linearGradient3842);fill-opacity:1" /><path
|
||||||
|
d="M 9500,19000 0,19000 0,0 l 19000,0 0,19000 -9500,0 z"
|
||||||
|
id="path3408"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:url(#linearGradient3848);stroke:url(#linearGradient3842);fill-opacity:1" /></g></g><g
|
||||||
|
class="com.sun.star.drawing.PolyPolygonShape"
|
||||||
|
id="g3410"
|
||||||
|
transform="translate(0,2427.1101)"
|
||||||
|
style="fill:#ffffff;stroke:url(#linearGradient3824)"><g
|
||||||
|
id="id4"
|
||||||
|
style="fill:#ffffff;stroke:url(#linearGradient3824)"><path
|
||||||
|
d="m 1500,4800 6300,0 0,2000 -2000,0 0,8000 -2300,0 0,-8000 -2000,0 0,-800 0,-1200 z"
|
||||||
|
id="path3413"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#ffffff;stroke:url(#linearGradient3824)" /><path
|
||||||
|
d="m 1500,4800 6300,0 0,2000 -2000,0 0,8000 -2300,0 0,-8000 -2000,0 0,-800 0,-1200 z"
|
||||||
|
id="path3415"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#ffffff;stroke:url(#linearGradient3824)" /><text
|
||||||
|
class="TextShape"
|
||||||
|
id="text3417"
|
||||||
|
style="fill:#ffffff;stroke:url(#linearGradient3824)"><tspan
|
||||||
|
class="TextParagraph"
|
||||||
|
font-size="635px"
|
||||||
|
font-weight="400"
|
||||||
|
id="tspan3419"
|
||||||
|
style="font-size:635px;font-weight:400;fill:#ffffff;font-family:'Liberation Sans, sans-serif';stroke:url(#linearGradient3824)"><tspan
|
||||||
|
class="TextPosition"
|
||||||
|
x="3228"
|
||||||
|
y="10021"
|
||||||
|
id="tspan3421"
|
||||||
|
style="fill:#ffffff;stroke:url(#linearGradient3824)"><tspan
|
||||||
|
id="tspan3423"
|
||||||
|
style="fill:#ffffff;stroke:url(#linearGradient3824)" /></tspan></tspan></text>
|
||||||
|
</g></g><g
|
||||||
|
class="com.sun.star.drawing.PolyPolygonShape"
|
||||||
|
id="g3425"
|
||||||
|
transform="translate(0,2427.1101)"
|
||||||
|
style="fill:#009000;fill-opacity:1;stroke:url(#linearGradient3818)"><g
|
||||||
|
id="id5"
|
||||||
|
style="fill:#009000;fill-opacity:1;stroke:url(#linearGradient3818)"><path
|
||||||
|
d="m 17400,4800 -2600,0 -1800,3100 -1900,-3100 -2600,0 3000,5000 -3100,5000 2500,0 2100,-3300 2000,3300 2600,0 -3200,-5000 3000,-5000 z"
|
||||||
|
id="path3428"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#009000;stroke:url(#linearGradient3818);fill-opacity:1" /><path
|
||||||
|
d="m 17400,4800 -2600,0 -1800,3100 -1900,-3100 -2600,0 3000,5000 -3100,5000 2500,0 2100,-3300 2000,3300 2600,0 -3200,-5000 3000,-5000 z"
|
||||||
|
id="path3430"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#009000;stroke:url(#linearGradient3818);fill-opacity:1" /></g></g><g
|
||||||
|
id="g3445"
|
||||||
|
class="com.sun.star.drawing.TextShape"
|
||||||
|
transform="translate(-169.33334,2144.8881)"
|
||||||
|
style="stroke:url(#linearGradient3836)"><g
|
||||||
|
id="id7"
|
||||||
|
style="stroke:url(#linearGradient3836)"><text
|
||||||
|
style="line-height:125%;stroke:url(#linearGradient3836)"
|
||||||
|
id="text3448"
|
||||||
|
class="TextShape"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
style="font-size:5080px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans Bold;stroke:url(#linearGradient3836)"
|
||||||
|
id="tspan3450"
|
||||||
|
font-weight="700"
|
||||||
|
font-size="3104px"
|
||||||
|
class="TextParagraph"><tspan
|
||||||
|
id="tspan3452"
|
||||||
|
y="3521"
|
||||||
|
x="1391"
|
||||||
|
class="TextPosition"
|
||||||
|
style="font-size:5080px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;stroke:url(#linearGradient3836);font-family:Sans;-inkscape-font-specification:Sans Bold">O</tspan></tspan></text>
|
||||||
|
</g></g><g
|
||||||
|
id="g3456"
|
||||||
|
class="com.sun.star.drawing.TextShape"
|
||||||
|
transform="translate(-508.00004,2144.8881)"
|
||||||
|
style="stroke:url(#linearGradient3834)"><g
|
||||||
|
id="id8"
|
||||||
|
style="stroke:url(#linearGradient3834)"><text
|
||||||
|
style="line-height:125%;stroke:url(#linearGradient3834)"
|
||||||
|
id="text3459"
|
||||||
|
class="TextShape"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
style="font-size:5080px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans Bold;stroke:url(#linearGradient3834)"
|
||||||
|
id="tspan3461"
|
||||||
|
font-weight="700"
|
||||||
|
font-size="3104px"
|
||||||
|
class="TextParagraph"><tspan
|
||||||
|
id="tspan3463"
|
||||||
|
y="3521"
|
||||||
|
x="6282"
|
||||||
|
class="TextPosition"
|
||||||
|
style="font-size:5080px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;stroke:url(#linearGradient3834);font-family:Sans;-inkscape-font-specification:Sans Bold">P</tspan></tspan></text>
|
||||||
|
</g></g><g
|
||||||
|
id="g3467"
|
||||||
|
class="com.sun.star.drawing.TextShape"
|
||||||
|
transform="translate(-846.66674,2144.8881)"
|
||||||
|
style="stroke:url(#linearGradient3832)"><g
|
||||||
|
id="id9"
|
||||||
|
style="stroke:url(#linearGradient3832)"><text
|
||||||
|
style="line-height:125%;stroke:url(#linearGradient3832)"
|
||||||
|
id="text3470"
|
||||||
|
class="TextShape"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
style="font-size:5080px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans Bold;stroke:url(#linearGradient3832)"
|
||||||
|
id="tspan3472"
|
||||||
|
font-weight="700"
|
||||||
|
font-size="3104px"
|
||||||
|
class="TextParagraph"><tspan
|
||||||
|
id="tspan3474"
|
||||||
|
y="3586"
|
||||||
|
x="10696"
|
||||||
|
class="TextPosition"
|
||||||
|
style="font-size:5080px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;stroke:url(#linearGradient3832);font-family:Sans;-inkscape-font-specification:Sans Bold">E</tspan></tspan></text>
|
||||||
|
</g></g><g
|
||||||
|
id="g3478"
|
||||||
|
class="com.sun.star.drawing.TextShape"
|
||||||
|
transform="translate(-1241.7777,2144.8881)"
|
||||||
|
style="stroke:url(#linearGradient3830)"><g
|
||||||
|
id="id10"
|
||||||
|
style="stroke:url(#linearGradient3830)"><text
|
||||||
|
style="line-height:125%;stroke:url(#linearGradient3830)"
|
||||||
|
id="text3481"
|
||||||
|
class="TextShape"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
style="font-size:5080px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Sans;-inkscape-font-specification:Sans Bold;stroke:url(#linearGradient3830)"
|
||||||
|
id="tspan3483"
|
||||||
|
font-weight="700"
|
||||||
|
font-size="3104px"
|
||||||
|
class="TextParagraph"><tspan
|
||||||
|
id="tspan3485"
|
||||||
|
y="3586"
|
||||||
|
x="14950"
|
||||||
|
class="TextPosition"
|
||||||
|
style="font-size:5080px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;stroke:url(#linearGradient3830);font-family:Sans;-inkscape-font-specification:Sans Bold">N</tspan></tspan></text>
|
||||||
|
</g></g></g></svg>
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
BIN
companion/src/images/originals/classical icons/customize.png
Normal file
After Width: | Height: | Size: 864 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
BIN
companion/src/images/originals/classical icons/information.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 852 B After Width: | Height: | Size: 852 B |
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 2 KiB |
BIN
companion/src/images/originals/classical icons/paintbrush.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 534 B After Width: | Height: | Size: 534 B |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 7.1 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 9.6 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 9.8 KiB |
Before Width: | Height: | Size: 312 B After Width: | Height: | Size: 312 B |
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
BIN
companion/src/images/originals/logotypes/opentx_2_logo.png
Normal file
After Width: | Height: | Size: 22 KiB |
361
companion/src/images/originals/logotypes/opentx_2_logo.svg
Normal file
|
@ -0,0 +1,361 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
height="673.22906"
|
||||||
|
width="1345.6667"
|
||||||
|
version="1.1"
|
||||||
|
id="svg2"
|
||||||
|
inkscape:version="0.48.4 r9939"
|
||||||
|
sodipodi:docname="opentx_2_logo.svg"
|
||||||
|
inkscape:export-filename="/home/kernen/github/opentx/companion/src/images/originals/logotypes/opentx_2_logo.png"
|
||||||
|
inkscape:export-xdpi="90"
|
||||||
|
inkscape:export-ydpi="90">
|
||||||
|
<defs
|
||||||
|
id="defs78">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3821"
|
||||||
|
osb:paint="solid">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#009000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3823" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3815"
|
||||||
|
osb:paint="solid">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3817" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3807"
|
||||||
|
osb:paint="solid">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3809" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3801"
|
||||||
|
osb:paint="solid">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3803" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3795"
|
||||||
|
osb:paint="solid">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3797" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3789"
|
||||||
|
osb:paint="solid">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3791" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3783"
|
||||||
|
osb:paint="solid">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#009000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3785" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3783"
|
||||||
|
id="linearGradient3787"
|
||||||
|
x1="8399.5"
|
||||||
|
y1="9800"
|
||||||
|
x2="17600.5"
|
||||||
|
y2="9800"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3789"
|
||||||
|
id="linearGradient3793"
|
||||||
|
x1="1499.5"
|
||||||
|
y1="9800"
|
||||||
|
x2="7800.5"
|
||||||
|
y2="9800"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3795"
|
||||||
|
id="linearGradient3799"
|
||||||
|
x1="1499.5"
|
||||||
|
y1="9800"
|
||||||
|
x2="7800.5"
|
||||||
|
y2="9800"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3801"
|
||||||
|
id="linearGradient3805"
|
||||||
|
x1="1488.8206"
|
||||||
|
y1="3830.8831"
|
||||||
|
x2="17507.216"
|
||||||
|
y2="3830.8831"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3807"
|
||||||
|
id="linearGradient3811"
|
||||||
|
x1="1488.3206"
|
||||||
|
y1="3830.8831"
|
||||||
|
x2="17507.716"
|
||||||
|
y2="3830.8831"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3815"
|
||||||
|
id="linearGradient3819"
|
||||||
|
x1="-531.16998"
|
||||||
|
y1="236.981"
|
||||||
|
x2="-307.17701"
|
||||||
|
y2="236.981"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3821"
|
||||||
|
id="linearGradient3825"
|
||||||
|
x1="0"
|
||||||
|
y1="9500"
|
||||||
|
x2="19000"
|
||||||
|
y2="9500"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1280"
|
||||||
|
inkscape:window-height="775"
|
||||||
|
id="namedview76"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="0.36046316"
|
||||||
|
inkscape:cx="1169.5417"
|
||||||
|
inkscape:cy="345.32082"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg2"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0" />
|
||||||
|
<metadata
|
||||||
|
id="metadata4">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
id="g8"
|
||||||
|
transform="matrix(0.03543311,0,0,0.03543311,-1e-4,0)" />
|
||||||
|
<g
|
||||||
|
id="g10"
|
||||||
|
class="com.sun.star.drawing.CustomShape"
|
||||||
|
transform="scale(0.03543311,0.03543311)">
|
||||||
|
<path
|
||||||
|
style="fill:#000000"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path12"
|
||||||
|
d="M 9500,19000 0,19000 0,0 H 19000 V 19000 H 9500 z" />
|
||||||
|
<path
|
||||||
|
style="fill:none"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path14"
|
||||||
|
d="M 9500,19000 0,19000 0,0 H 19000 V 19000 H 9500 z" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g16"
|
||||||
|
class="com.sun.star.drawing.PolyPolygonShape"
|
||||||
|
transform="matrix(0.03543311,0,0,0.03543311,0,86.000062)"
|
||||||
|
style="fill-opacity:1;fill:url(#linearGradient3793);stroke:url(#linearGradient3799)">
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient3793);fill-opacity:1;stroke:url(#linearGradient3799)"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path18"
|
||||||
|
d="m 1500,4800 6300,0 0,2000 -2000,0 0,8000 -2300,0 0,-8000 -2000,0 0,-800 0,-1200 z" />
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient3793);stroke:url(#linearGradient3799);fill-opacity:1"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path20"
|
||||||
|
d="m 1500,4800 6300,0 0,2000 -2000,0 0,8000 -2300,0 0,-8000 -2000,0 0,-800 0,-1200 z" />
|
||||||
|
<text
|
||||||
|
style="fill:url(#linearGradient3793);fill-opacity:1;stroke:url(#linearGradient3799)"
|
||||||
|
id="text22"
|
||||||
|
class="TextShape">
|
||||||
|
<tspan
|
||||||
|
style="font-size:635px;font-weight:400;fill:url(#linearGradient3793);font-family:'Liberation Sans, sans-serif';fill-opacity:1;stroke:url(#linearGradient3799)"
|
||||||
|
id="tspan24"
|
||||||
|
class="TextParagraph"
|
||||||
|
font-size="635px"
|
||||||
|
font-weight="400">
|
||||||
|
<tspan
|
||||||
|
style="fill:url(#linearGradient3793);fill-opacity:1;stroke:url(#linearGradient3799)"
|
||||||
|
id="tspan26"
|
||||||
|
x="3228"
|
||||||
|
y="10021"
|
||||||
|
class="TextPosition">
|
||||||
|
<tspan
|
||||||
|
style="fill:url(#linearGradient3793);fill-opacity:1;stroke:url(#linearGradient3799)"
|
||||||
|
id="tspan28" />
|
||||||
|
</tspan>
|
||||||
|
</tspan>
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
style="fill:#009000;stroke:url(#linearGradient3787);fill-opacity:1"
|
||||||
|
id="g30"
|
||||||
|
class="com.sun.star.drawing.PolyPolygonShape"
|
||||||
|
transform="matrix(0.03543311,0,0,0.03543311,0,86.000062)">
|
||||||
|
<g
|
||||||
|
style="fill:#009000;stroke:url(#linearGradient3787);fill-opacity:1"
|
||||||
|
id="g32">
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path34"
|
||||||
|
d="m 17400,4800 -2600,0 -1800,3100 -1900,-3100 -2600,0 3000,5000 -3100,5000 2500,0 2100,-3300 2000,3300 2600,0 -3200,-5000 3000,-5000 z"
|
||||||
|
style="stroke:url(#linearGradient3787);fill:#009000;fill-opacity:1" />
|
||||||
|
<path
|
||||||
|
style="stroke:url(#linearGradient3787);fill:#009000;fill-opacity:1"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path36"
|
||||||
|
d="m 17400,4800 -2600,0 -1800,3100 -1900,-3100 -2600,0 3000,5000 -3100,5000 2500,0 2100,-3300 2000,3300 2600,0 -3200,-5000 3000,-5000 z" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g38"
|
||||||
|
transform="matrix(0.03543311,0,0,0.03543311,-0.5005,-0.50049)"
|
||||||
|
style="stroke:url(#linearGradient3805);fill-opacity:1;fill:url(#linearGradient3811)">
|
||||||
|
<g
|
||||||
|
id="g40"
|
||||||
|
class="com.sun.star.drawing.TextShape"
|
||||||
|
transform="translate(-155.20944,2159.0131)"
|
||||||
|
style="stroke:url(#linearGradient3805);fill-opacity:1;fill:url(#linearGradient3811)">
|
||||||
|
<g
|
||||||
|
style="line-height:125%;stroke:url(#linearGradient3805);fill-opacity:1;fill:url(#linearGradient3811)"
|
||||||
|
id="g42"
|
||||||
|
line-height="125%">
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient3811);stroke:url(#linearGradient3805);fill-opacity:1"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path44"
|
||||||
|
d="m 3549,442.74 c -291.04,0.003 -516.77,107.49 -677.17,322.46 -160.4,214.98 -240.61,517.59 -240.61,907.85 0,388.61 80.2,690.4 240.61,905.37 160.4,214.97 386.12,322.46 677.17,322.46 292.69,6e-4 519.24,-107.49 679.65,-322.46 160.4,-214.97 240.6,-516.76 240.61,-905.37 0,-390.26 -80.205,-692.88 -240.61,-907.85 -160.4,-214.92 -386.9,-322.41 -679.6,-322.41 m 0,-692.05 c 595.31,0.004 1061.6,170.33 1399,510.98 337.34,340.65 506.01,811.12 506.02,1411.4 0,598.62 -168.68,1068.3 -506.02,1408.9 -337.35,340.65 -803.67,510.98 -1399,510.98 -593.66,-1e-4 -1060,-170.33 -1399,-510.98 -337.34,-340.65 -506.02,-810.29 -506.02,-1408.9 -2e-4,-600.27 168.67,-1070.7 506.02,-1411.4 339,-340.65 805.32,-510.97 1399,-510.98" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g46"
|
||||||
|
class="com.sun.star.drawing.TextShape"
|
||||||
|
transform="translate(-493.87614,2159.0131)"
|
||||||
|
style="stroke:url(#linearGradient3805);fill-opacity:1;fill:url(#linearGradient3811)">
|
||||||
|
<g
|
||||||
|
style="line-height:125%;stroke:url(#linearGradient3805);fill-opacity:1;fill:url(#linearGradient3811)"
|
||||||
|
id="g48"
|
||||||
|
line-height="125%">
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient3811);stroke:url(#linearGradient3805);fill-opacity:1"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path50"
|
||||||
|
d="m 6748.3,-182.34 1585,0 c 471.29,0.004 832.61,105.01 1084,315.02 253,208.36 379.51,506.02 379.51,892.97 0,388.61 -126.51,687.92 -379.51,897.93 -251.36,208.36 -612.68,312.54 -1084,312.54 h -630.04 v 1284.9 h -954.98 v -3703.3 m 954.98,692.05 0,1034.4 528.34,0 c 185.21,0 328.25,-44.646 429.12,-133.95 100.87,-90.948 151.31,-219.11 151.31,-384.47 0,-165.36 -50.439,-292.69 -151.31,-381.99 C 8559.85,554.466 8416.81,509.82 8231.6,509.81 h -528.34" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g52"
|
||||||
|
class="com.sun.star.drawing.TextShape"
|
||||||
|
transform="translate(-832.54284,2159.0131)"
|
||||||
|
style="stroke:url(#linearGradient3805);fill-opacity:1;fill:url(#linearGradient3811)">
|
||||||
|
<g
|
||||||
|
style="line-height:125%;stroke:url(#linearGradient3805);fill-opacity:1;fill:url(#linearGradient3811)"
|
||||||
|
id="g54"
|
||||||
|
line-height="125%">
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient3811);stroke:url(#linearGradient3805);fill-opacity:1"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path56"
|
||||||
|
d="m 11162,-117.34 2577.2,0 0,721.82 -1622.2,0 0,689.57 1525.5,0 0,721.82 -1525.5,0 0,848.32 1676.8,0 0,721.82 -2631.8,0 0,-3703.3" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g58"
|
||||||
|
class="com.sun.star.drawing.TextShape"
|
||||||
|
transform="translate(-1227.6538,2159.0131)"
|
||||||
|
style="stroke:url(#linearGradient3805);fill-opacity:1;fill:url(#linearGradient3811)">
|
||||||
|
<g
|
||||||
|
style="line-height:125%;stroke:url(#linearGradient3805);fill-opacity:1;fill:url(#linearGradient3811)"
|
||||||
|
id="g60"
|
||||||
|
line-height="125%">
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient3811);stroke:url(#linearGradient3805);fill-opacity:1"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path62"
|
||||||
|
d="m 15416,-117.34 1066.6,0 1346.9,2540 0,-2540 905.37,0 0,3703.3 -1066.6,0 -1346.9,-2540 0,2540 -905.37,0 0,-3703.3" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
style="fill:#009000;stroke:url(#linearGradient3825);fill-opacity:1"
|
||||||
|
id="g64"
|
||||||
|
class="com.sun.star.drawing.CustomShape"
|
||||||
|
transform="matrix(0.03543311,0,0,0.03543311,672.43766,0)">
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path66"
|
||||||
|
d="M 9500,19000 0,19000 0,0 H 19000 V 19000 H 9500 z"
|
||||||
|
style="stroke:url(#linearGradient3825);fill:#009000;fill-opacity:1" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path68"
|
||||||
|
d="M 9500,19000 0,19000 0,0 H 19000 V 19000 H 9500 z"
|
||||||
|
style="stroke:url(#linearGradient3825);fill:#009000;fill-opacity:1" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
style="fill:#ffffff;stroke:url(#linearGradient3819)"
|
||||||
|
id="g70"
|
||||||
|
transform="matrix(1.1733935,0,0,1.0743315,1501.2227,81.174002)">
|
||||||
|
<rect
|
||||||
|
id="rect72"
|
||||||
|
x="-531.16998"
|
||||||
|
y="59.701"
|
||||||
|
width="82.833"
|
||||||
|
height="354.56"
|
||||||
|
style="stroke:url(#linearGradient3819)" />
|
||||||
|
<rect
|
||||||
|
id="rect74"
|
||||||
|
x="-390.01001"
|
||||||
|
y="59.701"
|
||||||
|
width="82.833"
|
||||||
|
height="354.56"
|
||||||
|
style="stroke:url(#linearGradient3819)" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 72 KiB |
|
@ -0,0 +1,334 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="2947.7456"
|
||||||
|
height="673.15546"
|
||||||
|
id="svg3088"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.48.4 r9939"
|
||||||
|
sodipodi:docname="opentx_companion_logo.svg"
|
||||||
|
inkscape:export-filename="/home/kernen/github/opentx/companion/src/images/originals/logotypes/opentx_companion_logo.png"
|
||||||
|
inkscape:export-xdpi="90"
|
||||||
|
inkscape:export-ydpi="90">
|
||||||
|
<defs
|
||||||
|
id="defs3090">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient3820"
|
||||||
|
osb:paint="solid">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop3822" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3820"
|
||||||
|
id="linearGradient3824"
|
||||||
|
x1="0"
|
||||||
|
y1="9500"
|
||||||
|
x2="19000"
|
||||||
|
y2="9500"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3820"
|
||||||
|
id="linearGradient3826"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="0"
|
||||||
|
y1="9500"
|
||||||
|
x2="19000"
|
||||||
|
y2="9500" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3820"
|
||||||
|
id="linearGradient3828"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="0"
|
||||||
|
y1="9500"
|
||||||
|
x2="19000"
|
||||||
|
y2="9500" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient3820"
|
||||||
|
id="linearGradient3830"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="0"
|
||||||
|
y1="9500"
|
||||||
|
x2="19000"
|
||||||
|
y2="9500" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#000000"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="0.35"
|
||||||
|
inkscape:cx="1493.6349"
|
||||||
|
inkscape:cy="154.38925"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0"
|
||||||
|
inkscape:window-width="1280"
|
||||||
|
inkscape:window-height="775"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<metadata
|
||||||
|
id="metadata3093">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(1428.6413,109.23949)">
|
||||||
|
<g
|
||||||
|
style="fill:#000000;fill-rule:evenodd;stroke:url(#linearGradient3824)"
|
||||||
|
id="g101-6"
|
||||||
|
class="com.sun.star.drawing.CustomShape"
|
||||||
|
transform="matrix(0.15513634,0,0,0.03542737,-1428.5637,-109.22178)">
|
||||||
|
<g
|
||||||
|
style="fill:#000000;stroke:url(#linearGradient3830)"
|
||||||
|
id="g103-1">
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path105-1"
|
||||||
|
d="M 9500,19000 0,19000 0,0 H 19000 V 19000 H 9500 z"
|
||||||
|
style="fill:#000000;stroke:url(#linearGradient3826)" />
|
||||||
|
<path
|
||||||
|
style="fill:#000000;stroke:url(#linearGradient3828)"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path107-6"
|
||||||
|
d="M 9500,19000 0,19000 0,0 H 19000 V 19000 H 9500 z" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
transform="matrix(0.03543311,0,0,0.03543311,-1429.9603,-109.96665)"
|
||||||
|
id="g33">
|
||||||
|
<g
|
||||||
|
class="Master_Slide"
|
||||||
|
id="g35" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
style="fill:#ffffff"
|
||||||
|
id="g45"
|
||||||
|
class="com.sun.star.drawing.PolyPolygonShape"
|
||||||
|
transform="matrix(0.03543311,0,0,0.03543311,-1429.9602,-23.966588)"
|
||||||
|
inkscape:export-filename="/home/kjell/github/opentx/companion/src/images/originals/opentx_logo_blue3.png"
|
||||||
|
inkscape:export-xdpi="90"
|
||||||
|
inkscape:export-ydpi="90">
|
||||||
|
<g
|
||||||
|
id="g47">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path49"
|
||||||
|
d="m 1500,4800 6300,0 0,2000 -2000,0 0,8000 -2300,0 0,-8000 -2000,0 0,-800 0,-1200 z" />
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;stroke:#ffffff"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path51"
|
||||||
|
d="m 1500,4800 6300,0 0,2000 -2000,0 0,8000 -2300,0 0,-8000 -2000,0 0,-800 0,-1200 z" />
|
||||||
|
<text
|
||||||
|
style="fill:#ffffff"
|
||||||
|
id="text53"
|
||||||
|
class="TextShape">
|
||||||
|
<tspan
|
||||||
|
style="font-size:635px;font-weight:400;fill:#ffffff;font-family:'Liberation Sans, sans-serif'"
|
||||||
|
id="tspan55"
|
||||||
|
class="TextParagraph"
|
||||||
|
font-weight="400"
|
||||||
|
font-size="635px">
|
||||||
|
<tspan
|
||||||
|
style="fill:#ffffff"
|
||||||
|
id="tspan57"
|
||||||
|
class="TextPosition"
|
||||||
|
x="3228"
|
||||||
|
y="10021">
|
||||||
|
<tspan
|
||||||
|
style="fill:#ffffff"
|
||||||
|
id="tspan59" />
|
||||||
|
</tspan>
|
||||||
|
</tspan>
|
||||||
|
</text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
style="fill:#009100"
|
||||||
|
id="g61"
|
||||||
|
class="com.sun.star.drawing.PolyPolygonShape"
|
||||||
|
transform="matrix(0.03543311,0,0,0.03543311,-1429.9602,-23.966588)"
|
||||||
|
inkscape:export-filename="/home/kjell/github/opentx/companion/src/images/originals/opentx_logo_blue3.png"
|
||||||
|
inkscape:export-xdpi="90"
|
||||||
|
inkscape:export-ydpi="90">
|
||||||
|
<g
|
||||||
|
style="fill:#009100"
|
||||||
|
id="g63">
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path65"
|
||||||
|
d="m 17400,4800 -2600,0 -1800,3100 -1900,-3100 -2600,0 3000,5000 -3100,5000 2500,0 2100,-3300 2000,3300 2600,0 -3200,-5000 3000,-5000 z"
|
||||||
|
style="fill:#009100" />
|
||||||
|
<path
|
||||||
|
style="fill:#009100;stroke:#336633"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path67"
|
||||||
|
d="m 17400,4800 -2600,0 -1800,3100 -1900,-3100 -2600,0 3000,5000 -3100,5000 2500,0 2100,-3300 2000,3300 2600,0 -3200,-5000 3000,-5000 z" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g3158"
|
||||||
|
transform="matrix(0.03543311,0,0,0.03543311,-1430.4607,-110.46714)">
|
||||||
|
<g
|
||||||
|
transform="translate(-155.20944,2159.0131)"
|
||||||
|
class="com.sun.star.drawing.TextShape"
|
||||||
|
id="g69">
|
||||||
|
<g
|
||||||
|
id="text71"
|
||||||
|
style="line-height:125%">
|
||||||
|
<path
|
||||||
|
id="path3128"
|
||||||
|
style="line-height:125%;fill:#ffffff;font-family:Sans"
|
||||||
|
d="m 3549.0078,442.73828 c -291.0435,0.003 -516.766,107.48995 -677.168,322.46094 -160.4049,214.9765 -240.6067,517.59338 -240.6054,907.85158 0,388.6082 80.2005,690.3983 240.6054,905.3711 160.402,214.9747 386.1245,322.4615 677.168,322.4609 292.6929,6e-4 519.2421,-107.4862 679.6484,-322.4609 160.4007,-214.9728 240.6024,-516.7629 240.6055,-905.3711 0,-390.2582 -80.2048,-692.87508 -240.6055,-907.85158 C 4068.2499,550.22823 3841.7007,442.74136 3549.0078,442.73828 m 0,-692.05078 c 595.3098,0.004 1061.6374,170.329121 1398.9844,510.97656 337.3398,340.65396 506.0115,811.11574 506.0156,1411.38674 0,598.621 -168.6758,1068.256 -506.0156,1408.9062 -337.347,340.6512 -803.6746,510.9765 -1398.9844,510.9766 -593.6604,-10e-5 -1059.9881,-170.3254 -1398.9844,-510.9766 -337.3441,-340.6502 -506.0158,-810.2852 -506.0156,-1408.9062 -2e-4,-600.271 168.6715,-1070.73278 506.0156,-1411.38674 338.9963,-340.647439 805.324,-510.97279 1398.9844,-510.97656"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
transform="translate(-493.87614,2159.0131)"
|
||||||
|
class="com.sun.star.drawing.TextShape"
|
||||||
|
id="g77">
|
||||||
|
<g
|
||||||
|
id="text79"
|
||||||
|
style="line-height:125%">
|
||||||
|
<path
|
||||||
|
id="path3131"
|
||||||
|
style="line-height:125%;fill:#ffffff;font-family:Sans"
|
||||||
|
d="m 6748.3281,-182.33984 1585.0196,0 c 471.2865,0.004 832.6077,105.010105 1083.9648,315.01953 253.0044,208.36255 379.5082,506.0185 379.5117,892.96871 0,388.6089 -126.5073,687.9185 -379.5117,897.9297 -251.3571,208.3608 -612.6783,312.5404 -1083.9648,312.5391 l -630.0391,0 0,1284.8828 -954.9805,0 0,-3703.33984 m 954.9805,692.05078 0,1034.35546 528.3398,0 c 185.2062,0 328.2465,-44.6464 429.1211,-133.9453 100.8699,-90.9483 151.3061,-219.1057 151.3086,-384.4727 0,-165.36189 -50.4387,-292.69249 -151.3086,-381.99215 -100.8746,-89.29391 -243.9149,-133.9423 -429.1211,-133.94531 l -528.3398,0"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
transform="translate(-832.54284,2159.0131)"
|
||||||
|
class="com.sun.star.drawing.TextShape"
|
||||||
|
id="g85">
|
||||||
|
<g
|
||||||
|
id="text87"
|
||||||
|
style="line-height:125%">
|
||||||
|
<path
|
||||||
|
id="path3134"
|
||||||
|
style="line-height:125%;fill:#ffffff;font-family:Sans"
|
||||||
|
d="m 11162.328,-117.33984 2577.207,0 0,721.8164 -1622.226,0 0,689.57034 1525.488,0 0,721.8164 -1525.488,0 0,848.3203 1676.796,0 0,721.8164 -2631.777,0 0,-3703.33984"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
transform="translate(-1227.6538,2159.0131)"
|
||||||
|
class="com.sun.star.drawing.TextShape"
|
||||||
|
id="g93">
|
||||||
|
<g
|
||||||
|
id="text95"
|
||||||
|
style="line-height:125%">
|
||||||
|
<path
|
||||||
|
id="path3137"
|
||||||
|
style="line-height:125%;fill:#ffffff;font-family:Sans"
|
||||||
|
d="m 15416.328,-117.33984 1066.602,0 1346.894,2540.00004 0,-2540.00004 905.371,0 0,3703.33984 -1066.601,0 -1346.895,-2540 0,2540 -905.371,0 0,-3703.33984"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
style="fill:#009100;fill-rule:evenodd;stroke:none"
|
||||||
|
id="g101"
|
||||||
|
class="com.sun.star.drawing.CustomShape"
|
||||||
|
transform="matrix(0.119783,0,0,0.03543311,-757.34494,-109.96665)">
|
||||||
|
<g
|
||||||
|
style="fill:#009100;stroke:none"
|
||||||
|
id="g103">
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path105"
|
||||||
|
d="M 9500,19000 0,19000 0,0 H 19000 V 19000 H 9500 z"
|
||||||
|
style="fill:#009100;stroke:none" />
|
||||||
|
<path
|
||||||
|
style="fill:#009100;stroke:none"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path107"
|
||||||
|
d="M 9500,19000 0,19000 0,0 H 19000 V 19000 H 9500 z" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
style="font-size:1128.88891602px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;font-family:Sans"
|
||||||
|
id="text109"
|
||||||
|
transform="matrix(0.03543311,0,0,0.03543311,-1430.4607,-110.46714)">
|
||||||
|
<path
|
||||||
|
d="m 26770.213,12704.757 c -301.887,156.637 -616.585,274.826 -944.093,354.569 -327.518,79.742 -669.271,119.613 -1025.259,119.613 -1062.286,0 -1903.852,-296.186 -2524.702,-888.558 -620.852,-595.219 -931.278,-1401.186 -931.277,-2417.9036 0,-1019.5594 310.425,-1825.5264 931.277,-2417.9036 620.85,-595.2139 1462.416,-892.8236 2524.702,-892.8301 355.988,0.01 697.741,39.8777 1025.259,119.6136 327.508,79.7487 642.206,197.9382 944.093,354.5689 l 0,1320.0216 c -304.735,-207.895 -605.193,-360.2597 -901.374,-457.0949 -296.191,-96.8248 -608.04,-145.2398 -935.549,-145.2451 -586.68,0.01 -1048.046,187.9694 -1384.1,563.8928 -336.06,375.9328 -504.088,894.2579 -504.086,1554.9768 0,657.8776 168.026,1174.7786 504.086,1550.7046 336.054,375.93 797.42,563.894 1384.1,563.893 327.509,10e-4 639.358,-48.414 935.549,-145.245 296.181,-96.829 596.639,-249.194 901.374,-457.095 l 0,1320.022"
|
||||||
|
style="font-size:8748.88085938px;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;font-family:Saab;-inkscape-font-specification:Saab Bold"
|
||||||
|
id="path3140"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
d="m 31050.672,7753.6078 c -501.242,0.01 -889.985,185.1214 -1166.233,555.3489 -276.253,370.237 -414.378,891.41 -414.376,1563.5207 0,669.2696 138.123,1189.0186 414.376,1559.2486 276.248,370.234 664.991,555.35 1166.233,555.349 504.081,10e-4 894.249,-185.115 1170.504,-555.349 276.245,-370.23 414.371,-889.979 414.376,-1559.2486 0,-672.1107 -138.131,-1193.2837 -414.376,-1563.5207 -276.255,-370.2275 -666.423,-555.3436 -1170.504,-555.3489 m 0,-1191.8641 c 1025.254,0.01 1828.373,293.3443 2409.359,880.0144 580.974,586.6813 871.464,1396.9202 871.471,2430.7193 0,1030.9576 -290.497,1839.7726 -871.471,2426.4476 -580.986,586.676 -1384.105,880.014 -2409.359,880.014 -1022.415,0 -1825.534,-293.338 -2409.36,-880.014 -580.981,-586.675 -871.471,-1395.49 -871.471,-2426.4476 0,-1033.7991 290.49,-1844.038 871.471,-2430.7193 583.826,-586.6701 1386.945,-880.0079 2409.36,-880.0144"
|
||||||
|
style="font-size:8748.88085938px;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;font-family:Saab;-inkscape-font-specification:Saab Bold"
|
||||||
|
id="path3142"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
d="m 35570.357,6677.0854 2093.238,0 1452.451,3413.2596 1460.995,-3413.2596 2088.966,0 0,6377.9686 -1554.977,0 0,-4664.9309 -1469.538,3438.8909 -1042.347,0 -1469.539,-3438.8909 0,4664.9309 -1559.249,0 0,-6377.9686"
|
||||||
|
style="font-size:8748.88085938px;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;font-family:Saab;-inkscape-font-specification:Saab Bold"
|
||||||
|
id="path3144"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
d="m 44285.063,6677.0854 2729.754,0 c 811.659,0.01 1433.934,180.8506 1866.826,542.5331 435.73,358.8463 653.597,871.4755 653.603,1537.8892 0,669.2703 -217.873,1184.7474 -653.603,1546.4333 -432.892,358.843 -1055.167,538.263 -1866.826,538.261 l -1085.067,0 0,2212.852 -1644.687,0 0,-6377.9686 m 1644.687,1191.8641 0,1781.3884 909.918,0 c 318.966,0 565.313,-76.891 739.041,-230.6834 173.721,-156.6331 260.583,-377.3484 260.587,-662.1468 0,-284.7897 -86.866,-504.0811 -260.587,-657.8748 -173.728,-153.7838 -420.075,-230.6782 -739.041,-230.6834 l -909.918,0"
|
||||||
|
style="font-size:8748.88085938px;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;font-family:Saab;-inkscape-font-specification:Saab Bold"
|
||||||
|
id="path3146"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
d="m 53760.168,11893.093 -2571.693,0 -405.832,1161.961 -1653.23,0 2362.368,-6377.9686 1960.809,0 2362.369,6377.9686 -1653.231,0 -401.56,-1161.961 m -2161.589,-1183.32 1747.213,0 -871.47,-2537.5175 -875.743,2537.5175"
|
||||||
|
style="font-size:8748.88085938px;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;font-family:Saab;-inkscape-font-specification:Saab Bold"
|
||||||
|
id="path3148"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
d="m 56656.528,6677.0854 1836.923,0 2319.65,4374.4406 0,-4374.4406 1559.249,0 0,6377.9686 -1836.924,0 -2319.649,-4374.4407 0,4374.4407 -1559.249,0 0,-6377.9686"
|
||||||
|
style="font-size:8748.88085938px;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;font-family:Saab;-inkscape-font-specification:Saab Bold"
|
||||||
|
id="path3150"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
d="m 63987.134,6677.0854 1644.687,0 0,6377.9686 -1644.687,0 0,-6377.9686"
|
||||||
|
style="font-size:8748.88085938px;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;font-family:Saab;-inkscape-font-specification:Saab Bold"
|
||||||
|
id="path3152"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
d="m 70164.321,7753.6078 c -501.241,0.01 -889.985,185.1214 -1166.232,555.3489 -276.253,370.237 -414.378,891.41 -414.376,1563.5207 0,669.2696 138.123,1189.0186 414.376,1559.2486 276.247,370.234 664.991,555.35 1166.232,555.349 504.082,10e-4 894.25,-185.115 1170.505,-555.349 276.245,-370.23 414.37,-889.979 414.376,-1559.2486 0,-672.1107 -138.131,-1193.2837 -414.376,-1563.5207 -276.255,-370.2275 -666.423,-555.3436 -1170.505,-555.3489 m 0,-1191.8641 c 1025.255,0.01 1828.374,293.3443 2409.36,880.0144 580.974,586.6813 871.464,1396.9202 871.471,2430.7193 0,1030.9576 -290.497,1839.7726 -871.471,2426.4476 -580.986,586.676 -1384.105,880.014 -2409.36,880.014 -1022.414,0 -1825.533,-293.338 -2409.359,-880.014 -580.981,-586.675 -871.471,-1395.49 -871.471,-2426.4476 0,-1033.7991 290.49,-1844.038 871.471,-2430.7193 583.826,-586.6701 1386.945,-880.0079 2409.359,-880.0144"
|
||||||
|
style="font-size:8748.88085938px;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;font-family:Saab;-inkscape-font-specification:Saab Bold"
|
||||||
|
id="path3154"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
d="m 74684.005,6677.0854 1836.923,0 2319.649,4374.4406 0,-4374.4406 1559.249,0 0,6377.9686 -1836.923,0 -2319.65,-4374.4407 0,4374.4407 -1559.248,0 0,-6377.9686"
|
||||||
|
style="font-size:8748.88085938px;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;font-family:Saab;-inkscape-font-specification:Saab Bold"
|
||||||
|
id="path3156"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 18 KiB |
BIN
companion/src/images/originals/logotypes/opentx_logo.png
Normal file
After Width: | Height: | Size: 20 KiB |