diff --git a/companion/src/appdata.cpp b/companion/src/appdata.cpp
index 21145f978..ec634da4d 100644
--- a/companion/src/appdata.cpp
+++ b/companion/src/appdata.cpp
@@ -188,17 +188,17 @@ void CompStoreObj::getset( int &number, const QString tag, const int def, const
}
// ** FwRevision class********************
-int FwRevision::get( const QString fwName )
+int FwRevision::get( const QString fwType )
{
QString result;
- retrieve( result, fwName, "", "FwRevisions" );
+ retrieve( result, fwType, "", "FwRevisions" );
return result.toInt();
}
-void FwRevision::set( const QString fwName, const int fwRevision )
+void FwRevision::set( const QString fwType, const int fwRevision )
{
QString tempString= QString("%1").arg(fwRevision);
- store( tempString, tempString, fwName, "FwRevisions" );
+ store( tempString, tempString, fwType, "FwRevisions" );
}
void FwRevision::remove( const QString tag )
@@ -280,13 +280,13 @@ void JStickData::flush()
// ** Profile class********************
// Get declarations
-QString Profile::firmware() const { return _firmware; }
+QString Profile::fwName() const { return _fwName; }
+QString Profile::fwType() const { return _fwType; }
QString Profile::name() const { return _name; }
QString Profile::sdPath() const { return _sdPath; }
QString Profile::splashFile() const { return _splashFile; }
bool Profile::burnFirmware() const { return _burnFirmware; }
bool Profile::renameFwFiles() const { return _renameFwFiles; }
-bool Profile::patchImage() const { return _patchImage; }
int Profile::channelOrder() const { return _channelOrder; }
int Profile::defaultMode() const { return _defaultMode; }
@@ -305,12 +305,12 @@ int Profile::vBatWarn() const { return _vBatWarn; }
// Set declarations
void Profile::name (const QString x) { store(x, _name, "Name" ,"Profiles", QString("profile%1").arg(index));}
-void Profile::firmware (const QString x) { store(x, _firmware, "firmware" ,"Profiles", QString("profile%1").arg(index));}
+void Profile::fwName (const QString x) { store(x, _fwName, "fwName" ,"Profiles", QString("profile%1").arg(index));}
+void Profile::fwType (const QString x) { store(x, _fwType, "fwType" ,"Profiles", QString("profile%1").arg(index));}
void Profile::sdPath (const QString x) { store(x, _sdPath, "sdPath" ,"Profiles", QString("profile%1").arg(index));}
void Profile::splashFile (const QString x) { store(x, _splashFile, "SplashFileName" ,"Profiles", QString("profile%1").arg(index));}
void Profile::burnFirmware (const bool x) { store(x, _burnFirmware, "burnFirmware" ,"Profiles", QString("profile%1").arg(index));}
void Profile::renameFwFiles (const bool x) { store(x, _renameFwFiles, "rename_firmware_files" ,"Profiles", QString("profile%1").arg(index));}
-void Profile::patchImage (const bool x) { store(x, _patchImage, "patchImage" ,"Profiles", QString("profile%1").arg(index));}
void Profile::channelOrder (const int x) { store(x, _channelOrder, "default_channel_order" ,"Profiles", QString("profile%1").arg(index));}
void Profile::defaultMode (const int x) { store(x, _defaultMode, "default_mode" ,"Profiles", QString("profile%1").arg(index));}
@@ -337,12 +337,12 @@ Profile::Profile()
Profile& Profile::operator=(const Profile& rhs)
{
name ( rhs.name() );
- firmware ( rhs.firmware() );
+ fwName ( rhs.fwName() );
+ fwType ( rhs.fwType() );
sdPath ( rhs.sdPath() );
splashFile ( rhs.splashFile() );
burnFirmware ( rhs.burnFirmware() );
renameFwFiles( rhs.renameFwFiles() );
- patchImage ( rhs.patchImage() );
channelOrder ( rhs.channelOrder() );
defaultMode ( rhs.defaultMode() );
beeper ( rhs.beeper() );
@@ -389,13 +389,13 @@ void Profile::init(int newIndex)
{
index = newIndex;
- _firmware = "";
+ _fwName = "";
+ _fwType = "";
_name = "";
_sdPath = "";
_splashFile = "";
_burnFirmware = false;
_renameFwFiles = false;
- _patchImage = false;
_channelOrder = 0;
_defaultMode = 1;
@@ -423,13 +423,13 @@ void Profile::init(int newIndex)
void Profile::flush()
{
// Load and store all variables. Use default values if setting values are missing
- getset( _firmware, "firmware" ,"" ,"Profiles", QString("profile%1").arg(index));
+ getset( _fwName, "fwName" ,"" ,"Profiles", QString("profile%1").arg(index));
+ getset( _fwType, "fwType" ,"" ,"Profiles", QString("profile%1").arg(index));
getset( _name, "Name" ,"" ,"Profiles", QString("profile%1").arg(index));
getset( _sdPath, "sdPath" ,"" ,"Profiles", QString("profile%1").arg(index));
getset( _splashFile, "SplashFileName" ,"" ,"Profiles", QString("profile%1").arg(index));
getset( _burnFirmware, "burnFirmware" ,false ,"Profiles", QString("profile%1").arg(index));
getset( _renameFwFiles, "rename_firmware_files" ,false ,"Profiles", QString("profile%1").arg(index));
- getset( _patchImage, "patchImage" ,false ,"Profiles", QString("profile%1").arg(index));
getset( _channelOrder, "default_channel_order" ,0 ,"Profiles", QString("profile%1").arg(index));
getset( _defaultMode, "default_mode" ,1 ,"Profiles", QString("profile%1").arg(index));
@@ -464,7 +464,6 @@ QString AppData::compileServer() { return _compileServer; }
QString AppData::cpuId() { return _cpuId; }
QString AppData::dfuArguments() { return _dfuArguments; }
QString AppData::dfuLocation() { return _dfuLocation; }
-QString AppData::lastFw() { return _lastFw; }
QString AppData::locale() { return _locale; }
QString AppData::mcu() { return _mcu; }
QString AppData::programmer() { return _programmer; }
@@ -519,7 +518,6 @@ void AppData::compileServer (const QString x) { store(x, _compileServer,
void AppData::cpuId (const QString x) { store(x, _cpuId, "cpu_id" );}
void AppData::dfuArguments (const QString x) { store(x, _dfuArguments, "dfu_arguments" );}
void AppData::dfuLocation (const QString x) { store(x, _dfuLocation, "dfu_location" );}
-void AppData::lastFw (const QString x) { store(x, _lastFw, "lastFw" );}
void AppData::locale (const QString x) { store(x, _locale, "locale" );}
void AppData::mcu (const QString x) { store(x, _mcu, "mcu" );}
void AppData::programmer (const QString x) { store(x, _programmer, "programmer" );}
@@ -586,11 +584,11 @@ AppData::AppData()
// Store old values in new locations
autoCheckApp(settings.value("startup_check_companion9x", true).toBool());
- // Convert and store the firmware name
- QString firmware = settings.value("firmware", "").toString();
- firmware.replace("open9x","opentx");
- firmware.replace("x9da","taranis");
- profile[0].firmware( firmware );
+ // Convert and store the firmware type
+ QString fwType = settings.value("firmware", "").toString();
+ fwType.replace("open9x","opentx");
+ fwType.replace("x9da","taranis");
+ profile[0].fwType( fwType );
// Move the Companion9x profile settings to profile0, the new default profile
profile[0].name( settings.value( "Name", "" ).toString());
@@ -598,7 +596,6 @@ AppData::AppData()
profile[0].splashFile( settings.value( "SplashFileName", "" ).toString());
profile[0].burnFirmware( settings.value( "burnFirmware", false ).toBool());
profile[0].renameFwFiles( settings.value( "rename_firmware_files", false ).toBool());
- profile[0].patchImage( settings.value( "patchImage", false ).toBool());
profile[0].channelOrder( settings.value( "default_channel_order", "0" ).toInt());
profile[0].defaultMode( settings.value( "default_mode", "1" ).toInt());
@@ -613,6 +610,7 @@ AppData::AppData()
settings.remove("default_channel_order");
settings.remove("default_mode");
settings.remove("firmware");
+ settings.remove("lastFw");
settings.remove("Name");
settings.remove("patchImage");
settings.remove("rename_firmware_files");
@@ -638,7 +636,6 @@ AppData::AppData()
getset( _cpuId, "cpu_id" ,"" );
getset( _dfuArguments, "dfu_arguments" ,"-a 0" );
getset( _dfuLocation, "dfu_location" ,"" );
- getset( _lastFw, "lastFw" ,"" );
getset( _locale, "locale" ,"" );
getset( _mcu, "mcu" ,"m64" );
getset( _programmer, "programmer" ,"usbasp" );
diff --git a/companion/src/appdata.h b/companion/src/appdata.h
index 210b8ae8f..479229221 100644
--- a/companion/src/appdata.h
+++ b/companion/src/appdata.h
@@ -92,13 +92,13 @@ class Profile: protected CompStoreObj
int index;
// Application Variables
- QString _firmware;
+ QString _fwName;
+ QString _fwType;
QString _name;
QString _sdPath;
QString _splashFile;
bool _burnFirmware;
bool _renameFwFiles;
- bool _patchImage;
int _channelOrder;
int _defaultMode;
@@ -118,13 +118,13 @@ class Profile: protected CompStoreObj
public:
// All the get definitions
- QString firmware() const;
+ QString fwName() const;
+ QString fwType() const;
QString name() const;
QString sdPath() const;
QString splashFile() const;
bool burnFirmware() const;
bool renameFwFiles() const;
- bool patchImage() const;
int channelOrder() const;
int defaultMode() const;
@@ -143,12 +143,12 @@ class Profile: protected CompStoreObj
// All the set definitions
void name (const QString);
- void firmware (const QString);
+ void fwName (const QString);
+ void fwType (const QString);
void sdPath (const QString);
void splashFile (const QString);
void burnFirmware (const bool);
void renameFwFiles (const bool);
- void patchImage (const bool);
void channelOrder (const int);
void defaultMode (const int);
@@ -195,7 +195,6 @@ class AppData: protected CompStoreObj
QString _cpuId;
QString _dfuArguments;
QString _dfuLocation;
- QString _lastFw;
QString _locale;
QString _mcu;
QString _programmer;
@@ -251,7 +250,7 @@ class AppData: protected CompStoreObj
QString cpuId();
QString dfuArguments();
QString dfuLocation();
- QString lastFw();
+ QString lastFw();
QString locale();
QString mcu();
QString programmer();
@@ -287,7 +286,7 @@ class AppData: protected CompStoreObj
int iconSize();
int historySize();
int jsCtrl();
- int modelEditTab();
+ int modelEditTab(); // This variable is unused an can be removed
int id();
int theme();
int warningId();
diff --git a/companion/src/apppreferencesdialog.cpp b/companion/src/apppreferencesdialog.cpp
index 5215fda5e..96f5268c3 100644
--- a/companion/src/apppreferencesdialog.cpp
+++ b/companion/src/apppreferencesdialog.cpp
@@ -63,7 +63,8 @@ void appPreferencesDialog::writeValues()
g.profile[g.id()].name(ui->profileNameLE->text());
g.profile[g.id()].sdPath(ui->sdPath->text());
g.profile[g.id()].splashFile(ui->SplashFileName->text());
- g.profile[g.id()].firmware(ui->firmwareLE->text());
+ g.profile[g.id()].fwName(ui->fwNameLE->text());
+ g.profile[g.id()].fwType(ui->fwTypeLE->text());
saveProfile();
}
@@ -145,7 +146,8 @@ void appPreferencesDialog::initSettings()
ui->renameFirmware->setChecked(g.profile[g.id()].renameFwFiles());
ui->sdPath->setText(g.profile[g.id()].sdPath());
ui->profileNameLE->setText(g.profile[g.id()].name());
- ui->firmwareLE->setText(g.profile[g.id()].firmware());
+ ui->fwNameLE->setText(g.profile[g.id()].fwName());
+ ui->fwTypeLE->setText(g.profile[g.id()].fwType());
ui->SplashFileName->setText(g.profile[g.id()].splashFile());
displayImage( g.profile[g.id()].splashFile() );
@@ -248,7 +250,8 @@ void appPreferencesDialog::saveProfile()
g.profile[g.id()].renameFwFiles( ui->renameFirmware->isChecked());
g.profile[g.id()].sdPath( ui->sdPath->text());
g.profile[g.id()].splashFile( ui->SplashFileName->text());
- g.profile[g.id()].firmware( ui->firmwareLE->text());
+ g.profile[g.id()].fwName( ui->fwNameLE->text());
+ g.profile[g.id()].fwType( ui->fwTypeLE->text());
}
void appPreferencesDialog::on_removeProfileButton_clicked()
@@ -274,31 +277,11 @@ bool appPreferencesDialog::displayImage( QString fileName )
// Use the firmware name to determine splash width
int width = SPLASH_WIDTH;
- if (g.profile[g.id()].firmware().contains("taranis"))
+ if (g.profile[g.id()].fwType().contains("taranis"))
width = SPLASHX9D_WIDTH;
-
- ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(width, SPLASH_HEIGHT)));
- if (width==SPLASHX9D_WIDTH) {
- image=image.convertToFormat(QImage::Format_RGB32);
- QRgb col;
- int gray, height = image.height();
- for (int i = 0; i < width; ++i) {
- for (int j = 0; j < height; ++j) {
- col = image.pixel(i, j);
- gray = qGray(col);
- image.setPixel(i, j, qRgb(gray, gray, gray));
- }
- }
- ui->imageLabel->setPixmap(QPixmap::fromImage(image));
- }
- else {
- ui->imageLabel->setPixmap(QPixmap::fromImage(image.convertToFormat(QImage::Format_Mono)));
- }
- if (width == SPLASH_WIDTH)
- ui->imageLabel->setFixedSize(SPLASH_WIDTH, SPLASH_HEIGHT);
- else
- ui->imageLabel->setFixedSize(SPLASHX9D_WIDTH, SPLASHX9D_HEIGHT);
-
+
+ ui->imageLabel->setPixmap( makePixMap( image, g.profile[g.id()].fwType()));
+ ui->imageLabel->setFixedSize(width, SPLASH_HEIGHT);
return true;
}
diff --git a/companion/src/apppreferencesdialog.ui b/companion/src/apppreferencesdialog.ui
index 98824f3b5..bdaaff9d4 100644
--- a/companion/src/apppreferencesdialog.ui
+++ b/companion/src/apppreferencesdialog.ui
@@ -502,7 +502,7 @@
Radio Settings Profile
- -
+
-
@@ -556,7 +556,7 @@ Mode 4:
- -
+
-
@@ -706,7 +706,7 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
@@ -726,7 +726,7 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
Qt::Vertical
@@ -739,7 +739,7 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
@@ -752,7 +752,7 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
@@ -768,14 +768,14 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
Append version number to FW file name
- -
+
-
@@ -791,7 +791,7 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
true
@@ -813,7 +813,7 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
Qt::Horizontal
@@ -826,35 +826,35 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
Offer to write FW to Tx after download
- -
+
-
Remove Profile
- -
+
-
Open Folder
- -
+
-
Qt::Horizontal
- -
+
-
true
@@ -879,12 +879,12 @@ This is used by the templated to determine which channel goes to what number out
-
- Firmware
+ Firmware Variant
-
-
+
false
@@ -902,14 +902,14 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
Select Image
- -
+
-
Clear Image
@@ -932,7 +932,7 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
@@ -956,7 +956,10 @@ This is used by the templated to determine which channel goes to what number out
QFrame::Panel
- QFrame::Raised
+ QFrame::Plain
+
+
+ 1
@@ -966,13 +969,39 @@ This is used by the templated to determine which channel goes to what number out
- -
+
-
Qt::Horizontal
+ -
+
+
+ Firmware File
+
+
+
+ -
+
+
+ false
+
+
+
+ 350
+ 0
+
+
+
+
+ 350
+ 16777215
+
+
+
+
diff --git a/companion/src/burndialog.cpp b/companion/src/burndialog.cpp
index 764f84ab8..617c7ea9e 100644
--- a/companion/src/burndialog.cpp
+++ b/companion/src/burndialog.cpp
@@ -9,6 +9,7 @@
#include "hexinterface.h"
#include "appdata.h"
+// Type 1 = Burn EEPROM, Type 2= Burn Flash
burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * backupEE, QString DocName):
QDialog(parent),
ui(new Ui::burnDialog),
@@ -17,17 +18,25 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac
hexType(Type)
{
ui->setupUi(this);
- ui->libraryButton->setIcon(CompanionIcon("library.png"));
+
+ if(!g.profile[g.id()].splashFile().isEmpty()){
+ imageSource=PROFILE;
+ imageFile=g.profile[g.id()].splashFile();
+ }
+ else{
+ ui->useProfileImageCB->setDisabled(true);
+ imageSource=FIRMWARE;
+ imageFile="";
+ }
ui->SplashFrame->hide();
ui->FramFWInfo->hide();
ui->EEbackupCB->hide();
ui->EEbackupCB->setCheckState(*backup ? Qt::Checked : Qt::Unchecked);
- if (Type == 2) {
+ if (Type == FLASH_FILE_TYPE ) {
ui->EEpromCB->hide();
ui->profile_label->hide();
ui->patchcalib_CB->hide();
ui->patchhw_CB->hide();
- ui->InvertColorButton->setDisabled(true);
setWindowTitle(tr("Write firmware to TX"));
if (IS_TARANIS(GetEepromInterface()->getBoard())) {
ui->EEbackupCB->hide();
@@ -39,12 +48,7 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac
ui->patchcalib_CB->hide();
ui->patchhw_CB->hide();
ui->EEpromCB->hide();
- ui->ImageLoadButton->setDisabled(true);
- ui->libraryButton->setDisabled(true);
- ui->InvertColorButton->setDisabled(true);
ui->BurnFlashButton->setDisabled(true);
- ui->ImageFileName->clear();
- ui->FwImage->clear();
ui->FWFileName->clear();
ui->DateField->clear();
ui->SVNField->clear();
@@ -63,7 +67,7 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac
}
if (!hexfileName->isEmpty()) {
ui->FWFileName->setText(*hexfileName);
- if (Type==2) {
+ if (Type==FLASH_FILE_TYPE) {
checkFw(*hexfileName);
}
else {
@@ -104,14 +108,14 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac
ui->FlashLoadButton->hide();
hexfileName->clear();
}
- else if (Type==2) {
- QString FileName;
- FileName = g.lastFw();
+ else if (Type==FLASH_FILE_TYPE) {
+ QString FileName = g.profile[g.id()].fwName();
QFile file(FileName);
if (file.exists()) {
checkFw(FileName);
}
}
+ updateUI();
resize(0, 0);
}
@@ -124,12 +128,7 @@ void burnDialog::on_FlashLoadButton_clicked()
{
QString fileName;
- ui->ImageLoadButton->setDisabled(true);
- ui->libraryButton->setDisabled(true);
- ui->InvertColorButton->setDisabled(true);
ui->BurnFlashButton->setDisabled(true);
- ui->ImageFileName->clear();
- ui->FwImage->clear();
ui->FWFileName->clear();
ui->DateField->clear();
ui->SVNField->clear();
@@ -139,8 +138,10 @@ void burnDialog::on_FlashLoadButton_clicked()
ui->BurnFlashButton->setDisabled(true);
ui->EEbackupCB->hide();
QTimer::singleShot(0, this, SLOT(shrink()));
- if (hexType==2) {
+ if (hexType==FLASH_FILE_TYPE) {
fileName = QFileDialog::getOpenFileName(this, tr("Open Firmware File"), g.flashDir(), FLASH_FILES_FILTER);
+ if(fileName.isEmpty())
+ return;
checkFw(fileName);
}
else {
@@ -169,6 +170,7 @@ void burnDialog::on_FlashLoadButton_clicked()
QTimer::singleShot(0, this, SLOT(shrink()));
}
}
+ updateUI();
}
void burnDialog::checkFw(QString fileName)
@@ -176,6 +178,7 @@ void burnDialog::checkFw(QString fileName)
if (fileName.isEmpty()) {
return;
}
+
if (!IS_TARANIS(GetEepromInterface()->getBoard())) {
ui->EEbackupCB->show();
}
@@ -190,60 +193,17 @@ void burnDialog::checkFw(QString fileName)
ui->DateField->setText(flash.getDate() + " " + flash.getTime());
ui->SVNField->setText(flash.getSvn());
ui->ModField->setText(flash.getBuild());
- ui->BurnFlashButton->setEnabled(true);
- ui->BurnFlashButton->setText(tr("Write to TX"));
+
+ ui->SplashFrame->hide();
if (flash.hasSplash()) {
ui->SplashFrame->show();
- ui->ImageLoadButton->setEnabled(true);
- ui->libraryButton->setEnabled(true);
- ui->FwImage->setFixedSize(flash.getSplashWidth(), flash.getSplashHeight());
ui->imageLabel->setFixedSize(flash.getSplashWidth(), flash.getSplashHeight());
- ui->FwImage->show();
- ui->FwImage->setPixmap(QPixmap::fromImage(flash.getSplash()));
- QString ImageStr = g.profile[g.id()].splashFile();
- bool PatchFwCB = g.profile[g.id()].patchImage();
- if (!ImageStr.isEmpty()) {
- QImage Image;
- Image.load(ImageStr);
- ui->imageLabel->setPixmap(QPixmap::fromImage(Image.convertToFormat(flash.getSplashFormat())));
- ui->InvertColorButton->setEnabled(true);
- ui->PreferredImageCB->setChecked(true);
- ui->PatchFWCB->setChecked(PatchFwCB);
- }
- else {
- QString fileName=ui->ImageFileName->text();
- if (!fileName.isEmpty()) {
- QImage image(fileName);
- if (!image.isNull()) {
- ui->InvertColorButton->setEnabled(true);
- ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height()).convertToFormat(flash.getSplashFormat())));
- ui->PatchFWCB->setEnabled(true);
- ui->PatchFWCB->setChecked(PatchFwCB);
- }
- else {
- ui->PatchFWCB->setDisabled(true);
- ui->PatchFWCB->setChecked(false);
- ui->PreferredImageCB->setDisabled(true);
- }
- }
- else {
- ui->PatchFWCB->setDisabled(true);
- ui->PatchFWCB->setChecked(false);
- ui->PreferredImageCB->setDisabled(true);
- }
- }
- }
- else {
- ui->FwImage->hide();
- ui->ImageFileName->setText("");
- ui->SplashFrame->hide();
}
}
else {
- QMessageBox::warning(this, tr("Warning"), tr("%1 is not a known firmware").arg(fileName));
- ui->BurnFlashButton->setText(tr("Burn anyway !"));
- ui->BurnFlashButton->setEnabled(true);
+ QMessageBox::warning(this, tr("Warning"), tr("%1 may not be a valid firmware file").arg(fileName));
}
+ ui->BurnFlashButton->setEnabled(true);
QTimer::singleShot(0, this, SLOT(shrink()));
g.flashDir( QFileInfo(fileName).dir().absolutePath() );
}
@@ -338,51 +298,92 @@ bool burnDialog::checkeEprom(QString fileName)
return true;
}
-void burnDialog::on_ImageLoadButton_clicked()
+void burnDialog::displaySplash()
+{
+ QImage image;
+ if (imageSource == FIRMWARE){
+ FlashInterface flash(ui->FWFileName->text());
+ image = flash.getSplash();
+ }
+ else{
+ image.load(imageFile);
+ }
+ if (image.isNull()) {
+ return;
+ }
+ ui->imageLabel->setPixmap( makePixMap( image, g.profile[g.id()].fwType()));
+}
+
+void burnDialog::updateUI()
+{
+ if (hexType==EEPROM_FILE_TYPE)
+ return;
+
+ ui->useProfileImageCB->setChecked( imageSource == PROFILE );
+ ui->useFwImageCB->setChecked( imageSource == FIRMWARE );
+ ui->useLibraryImageCB->setChecked( imageSource == LIBRARY );
+ ui->useAnotherImageCB->setChecked( imageSource == ANOTHER );
+
+ displaySplash();
+}
+
+void burnDialog::on_useFwImageCB_clicked()
+{
+ QString fileName = ui->FWFileName->text();
+ FlashInterface flash(fileName);
+ if (!flash.isValid()) {
+ QMessageBox::critical(this, tr("Error"), tr( "The firmware file is not valid." ));
+ }
+ else {
+ if (!flash.hasSplash()) {
+ QMessageBox::critical(this, tr("Error"), tr( "There is no start screen image in the firmware file." ));
+ }
+ else{
+ imageSource = FIRMWARE;
+ imageFile = fileName;
+ }
+ }
+ updateUI();
+}
+
+void burnDialog::on_useProfileImageCB_clicked()
+{
+ QString fileName = g.profile[g.id()].splashFile();
+ if (!fileName.isEmpty()){
+ QImage image(fileName);
+ if (image.isNull()) {
+ QMessageBox::critical(this, tr("Error"), tr("The profile image %1 does not contain an image.").arg(fileName));
+ }
+ else {
+ imageSource = PROFILE;
+ imageFile = fileName;
+ }
+ }
+ updateUI();
+}
+
+void burnDialog::on_useAnotherImageCB_clicked()
{
QString supportedImageFormats;
for (int formatIndex = 0; formatIndex < QImageReader::supportedImageFormats().count(); formatIndex++) {
supportedImageFormats += QLatin1String(" *.") + QImageReader::supportedImageFormats()[formatIndex];
}
-
- QString fileName = QFileDialog::getOpenFileName(this,
- tr("Open Image to load"), g.imagesDir(), tr("Images (%1)").arg(supportedImageFormats));
-
- if (!fileName.isEmpty()) {
+ QString fileName = QFileDialog::getOpenFileName(this, tr("Open image file to use as Tx start screen"), g.imagesDir(), tr("Images (%1)").arg(supportedImageFormats));
+ if (!fileName.isEmpty()){
g.imagesDir( QFileInfo(fileName).dir().absolutePath() );
QImage image(fileName);
if (image.isNull()) {
- QMessageBox::critical(this, tr("Error"), tr("Cannot load %1.").arg(fileName));
- ui->PatchFWCB->setDisabled(true);
- ui->PatchFWCB->setChecked(false);
- ui->InvertColorButton->setDisabled(true);
- return;
+ QMessageBox::critical(this, tr("Error"), tr("Image could not be loaded from %1").arg(fileName));
}
- ui->ImageFileName->setText(fileName);
- ui->InvertColorButton->setEnabled(true);
- if (ui->imageLabel->width()!=128) {
- image=image.convertToFormat(QImage::Format_RGB32);
- QRgb col;
- int gray;
- int width = image.width();
- int height = image.height();
- for (int i = 0; i < width; ++i) {
- for (int j = 0; j < height; ++j) {
- col = image.pixel(i, j);
- gray = qGray(col);
- image.setPixel(i, j, qRgb(gray, gray, gray));
- }
- }
- ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height())));
- }
- else {
- ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height()).convertToFormat(QImage::Format_Mono)));
- }
- ui->PatchFWCB->setEnabled(true);
+ else{
+ imageSource = ANOTHER;
+ imageFile = fileName;
+ }
}
+ updateUI();
}
-void burnDialog::on_libraryButton_clicked()
+void burnDialog::on_useLibraryImageCB_clicked()
{
QString fileName;
splashLibrary *ld = new splashLibrary(this,&fileName);
@@ -390,49 +391,26 @@ void burnDialog::on_libraryButton_clicked()
if (!fileName.isEmpty()) {
QImage image(fileName);
if (image.isNull()) {
- QMessageBox::critical(this, tr("Error"), tr("Cannot load %1.").arg(fileName));
- ui->PatchFWCB->setDisabled(true);
- ui->PatchFWCB->setChecked(false);
- ui->InvertColorButton->setDisabled(true);
- return;
+ QMessageBox::critical(this, tr("Error"), tr("The library image could not be loaded"));
}
- ui->ImageFileName->setText(fileName);
- ui->InvertColorButton->setEnabled(true);
- if (ui->imageLabel->width()!=128) {
- image=image.convertToFormat(QImage::Format_RGB32);
- QRgb col;
- int gray;
- int width = image.width();
- int height = image.height();
- for (int i = 0; i < width; ++i)
- {
- for (int j = 0; j < height; ++j)
- {
- col = image.pixel(i, j);
- gray = qGray(col);
- image.setPixel(i, j, qRgb(gray, gray, gray));
- }
- }
- ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height())));
- } else {
- ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height()).convertToFormat(QImage::Format_Mono)));
+ else{
+ imageSource = LIBRARY;
+ imageFile = fileName;
}
- ui->PatchFWCB->setEnabled(true);
}
+ updateUI();
}
void burnDialog::on_BurnFlashButton_clicked()
{
- if (hexType==2) {
+ if (hexType==FLASH_FILE_TYPE) {
QString fileName=ui->FWFileName->text();
if (!fileName.isEmpty()) {
g.flashDir( QFileInfo(fileName).dir().absolutePath() );
- g.lastFw( fileName );
- if (ui->PatchFWCB->isChecked()) {
- g.profile[g.id()].patchImage( true );
+ if (!ui->useFwImageCB->isChecked()) {
QImage image = ui->imageLabel->pixmap()->toImage().scaled(ui->imageLabel->width(), ui->imageLabel->height());
if (!image.isNull()) {
- QString tempDir = QDir::tempPath();
+ QString tempDir = QDir::tempPath();
QString tempFile;
if (getFileType(fileName) == FILE_TYPE_HEX)
tempFile = tempDir + "/flash.hex";
@@ -452,7 +430,6 @@ void burnDialog::on_BurnFlashButton_clicked()
QMessageBox::critical(this, tr("Warning"), tr("Custom image not found"));
}
} else {
- g.profile[g.id()].patchImage( false );
hexfileName->clear();
hexfileName->append(fileName);
}
@@ -461,7 +438,7 @@ void burnDialog::on_BurnFlashButton_clicked()
hexfileName->clear();
}
}
- if (hexType==1) {
+ if (hexType==EEPROM_FILE_TYPE) {
QString calib = g.profile[g.id()].stickPotCalib();
QString trainercalib = g.profile[g.id()].trainerCalib();
int potsnum=GetEepromInterface()->getCapability(Pots);
@@ -610,99 +587,9 @@ void burnDialog::on_cancelButton_clicked()
this->close();
}
-void burnDialog::on_InvertColorButton_clicked()
-{
- if (ui->imageLabel->pixmap()) {
- QImage image = ui->imageLabel->pixmap()->toImage();
- image.invertPixels();
- ui->imageLabel->setPixmap(QPixmap::fromImage(image));
- }
-}
-
void burnDialog::on_EEpromCB_toggled(bool checked)
{
- if (ui->EEpromCB->isChecked()) {
- *backup=true;
- } else {
- *backup=false;
- }
-}
-
-void burnDialog::on_PreferredImageCB_toggled(bool checked)
-{
- QString tmpFileName;
- if (checked) {
- QString ImageStr = g.profile[g.id()].splashFile();
- if (!ImageStr.isEmpty()) {
- QImage Image;
- Image.load( ImageStr );
- if (ui->imageLabel->width()!=128) {
- Image=Image.convertToFormat(QImage::Format_RGB32);
- QRgb col;
- int gray;
- int width = Image.width();
- int height = Image.height();
- for (int i = 0; i < width; ++i)
- {
- for (int j = 0; j < height; ++j)
- {
- col = Image.pixel(i, j);
- gray = qGray(col);
- Image.setPixel(i, j, qRgb(gray, gray, gray));
- }
- }
- } else {
- Image=Image.convertToFormat(QImage::Format_Mono);
- }
- ui->imageLabel->setPixmap(QPixmap::fromImage(Image));
- ui->InvertColorButton->setEnabled(true);
- ui->PreferredImageCB->setChecked(true);
- ui->ImageFileName->setDisabled(true);
- ui->ImageLoadButton->setDisabled(true);
- ui->libraryButton->setDisabled(true);
- ui->PatchFWCB->setEnabled(true);
- }
- } else {
- ui->imageLabel->clear();
- ui->ImageLoadButton->setEnabled(true);
- ui->libraryButton->setEnabled(true);
- tmpFileName = ui->ImageFileName->text();
- if (!tmpFileName.isEmpty()) {
- QImage image(tmpFileName);
- if (!image.isNull()) {
- if (ui->imageLabel->width()!=128) {
- image=image.convertToFormat(QImage::Format_RGB32);
- QRgb col;
- int gray;
- int width = image.width();
- int height = image.height();
- for (int i = 0; i < width; ++i)
- {
- for (int j = 0; j < height; ++j)
- {
- col = image.pixel(i, j);
- gray = qGray(col);
- image.setPixel(i, j, qRgb(gray, gray, gray));
- }
- }
- } else {
- image=image.convertToFormat(QImage::Format_Mono);
- }
- ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(ui->imageLabel->width(), ui->imageLabel->height())));
- ui->InvertColorButton->setEnabled(true);
- ui->ImageFileName->setEnabled(true);
- ui->PatchFWCB->setDisabled(false);
- } else {
- ui->InvertColorButton->setDisabled(true);
- ui->PatchFWCB->setDisabled(true);
- ui->PatchFWCB->setChecked(false);
- }
- } else {
- ui->InvertColorButton->setDisabled(true);
- ui->PatchFWCB->setDisabled(true);
- ui->PatchFWCB->setChecked(false);
- }
- }
+ *backup = ui->EEpromCB->isChecked();
}
void burnDialog::shrink()
@@ -712,9 +599,5 @@ void burnDialog::shrink()
void burnDialog::on_EEbackupCB_clicked()
{
- if (ui->EEbackupCB->isChecked()) {
- *backup=true;
- } else {
- *backup=false;
- }
+ *backup = ui->EEbackupCB->isChecked();
}
diff --git a/companion/src/burndialog.h b/companion/src/burndialog.h
index 40068f3ac..1ffac2b92 100644
--- a/companion/src/burndialog.h
+++ b/companion/src/burndialog.h
@@ -19,6 +19,8 @@
#define ER9X_EEPROM_FILE_TYPE "ER9X_EEPROM_FILE"
#define EEPE_EEPROM_FILE_HEADER "EEPE EEPROM FILE"
#define EEPE_MODEL_FILE_HEADER "EEPE MODEL FILE"
+#define EEPROM_FILE_TYPE 1
+#define FLASH_FILE_TYPE 2
namespace Ui
@@ -36,18 +38,22 @@ public:
private slots:
void on_FlashLoadButton_clicked();
- void on_ImageLoadButton_clicked();
- void on_libraryButton_clicked();
void on_BurnFlashButton_clicked();
void on_cancelButton_clicked();
- void on_InvertColorButton_clicked();
void on_EEbackupCB_clicked();
- void on_PreferredImageCB_toggled(bool checked);
- void on_EEpromCB_toggled(bool checked);
- void checkFw(QString fileName);
+ void on_EEpromCB_toggled(bool checked);
bool checkeEprom(QString fileName);
+ void on_useProfileImageCB_clicked();
+ void on_useFwImageCB_clicked();
+ void on_useLibraryImageCB_clicked();
+ void on_useAnotherImageCB_clicked();
+
+ void checkFw(QString fileName);
+ void displaySplash();
+ void updateUI();
void shrink();
+
private:
Ui::burnDialog *ui;
QString * hexfileName;
@@ -55,6 +61,9 @@ private:
int hexType;
RadioData radioData;
bool burnraw;
+ enum ImageSource {FIRMWARE, PROFILE, LIBRARY, ANOTHER};
+ ImageSource imageSource;
+ QString imageFile;
};
#endif // BURNDIALOG_H
diff --git a/companion/src/burndialog.ui b/companion/src/burndialog.ui
index e86634e9a..772304390 100644
--- a/companion/src/burndialog.ui
+++ b/companion/src/burndialog.ui
@@ -7,7 +7,7 @@
0
0
440
- 418
+ 423
@@ -30,21 +30,8 @@
:/icon.png:/icon.png
- -
+
-
-
-
-
-
- Qt::Vertical
-
-
-
- 20
- 0
-
-
-
-
-
@@ -71,19 +58,6 @@
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
@@ -100,19 +74,6 @@
- -
-
-
- Qt::Horizontal
-
-
-
- 48
- 20
-
-
-
-
-
@@ -152,56 +113,22 @@
QFrame::Raised
-
-
-
-
-
- 0
- 0
-
-
-
-
- 128
- 64
-
-
-
-
- 212
- 64
-
-
-
- QFrame::Panel
-
-
- QFrame::Raised
-
-
-
-
-
- true
-
-
-
- -
-
+
-
+
true
- -
-
+
-
+
- Date & Time
+ Variant
- -
-
+
-
+
true
@@ -214,17 +141,17 @@
- -
-
-
- true
+
-
+
+
+ Date & Time
- -
-
-
- Variant
+
-
+
+
+ true
@@ -325,17 +252,10 @@
-
-
-
-
-
-
-
-
-
- Invert Color
-
-
-
- -
+
+
-
+
+
-
@@ -359,7 +279,7 @@
QFrame::Panel
- QFrame::Raised
+ QFrame::Plain
@@ -369,10 +289,50 @@
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
-
-
+
+
+ Use firmware start screen
+
+
+
+ -
+
+
+ Use another start screen
+
+
+
+ -
+
0
@@ -380,86 +340,14 @@
- Use image in settings
-
-
-
- -
-
-
- Substitute image in firmware
+ Use profile start screen
-
-
-
- Qt::Vertical
-
-
-
- 20
- 13
-
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 13
-
-
-
-
-
-
- -
-
-
-
-
-
- true
-
-
-
- 0
- 0
-
-
-
- true
-
-
-
- -
-
-
- false
-
+
- Load Image
-
-
-
- -
-
-
- Open Splash Library
-
-
- ...
-
-
-
- 16
- 16
-
+ Use library start screen
@@ -470,18 +358,37 @@
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 0
+
+
+
+
+ BurnFlashButton
FWFileName
FlashLoadButton
- ImageFileName
- ImageLoadButton
- libraryButton
+ DateField
+ SVNField
+ ModField
+ useProfileImageCB
+ useFwImageCB
+ useLibraryImageCB
+ useAnotherImageCB
EEbackupCB
+ patchcalib_CB
+ patchhw_CB
EEpromCB
cancelButton
- BurnFlashButton
diff --git a/companion/src/companion.cpp b/companion/src/companion.cpp
index 96a6d5597..37a988273 100644
--- a/companion/src/companion.cpp
+++ b/companion/src/companion.cpp
@@ -95,15 +95,18 @@ int main(int argc, char *argv[])
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
- if (g.profile[g.id()].firmware().isEmpty())
- g.profile[g.id()].firmware(default_firmware_variant.id);
+ if (g.profile[g.id()].fwType().isEmpty()){
+ g.profile[g.id()].fwType(default_firmware_variant.id);
+ g.profile[g.id()].fwName("");
+ }
+
- QPixmap pixmap = QPixmap(g.profile[g.id()].firmware().contains("taranis") ? ":/images/splasht.png" : ":/images/splash.png");
+ QPixmap pixmap = QPixmap(g.profile[g.id()].fwType().contains("taranis") ? ":/images/splasht.png" : ":/images/splash.png");
QSplashScreen *splash = new QSplashScreen(pixmap);
RegisterFirmwares();
- current_firmware_variant = GetFirmwareVariant(g.profile[g.id()].firmware());
+ current_firmware_variant = GetFirmwareVariant(g.profile[g.id()].fwType());
MainWindow *mainWin = new MainWindow();
if (g.showSplash()) {
diff --git a/companion/src/customizesplashdialog.cpp b/companion/src/customizesplashdialog.cpp
index 1be93d4a5..42bf463da 100644
--- a/companion/src/customizesplashdialog.cpp
+++ b/companion/src/customizesplashdialog.cpp
@@ -41,7 +41,7 @@ bool Side::displayImage( QString fileName, Source pictSource )
if (fileName.isEmpty())
return false;
-
+
// Determine which picture format to use
if (pictSource == FW ){
FlashInterface flash(fileName);
@@ -49,60 +49,46 @@ bool Side::displayImage( QString fileName, Source pictSource )
return false;
else
image = flash.getSplash();
- *format = (flash.getSplashWidth()==WIDTH_TARANIS ? LCDTARANIS : LCD9X);
+ *format = (flash.getSplashWidth()==WIDTH_TARANIS ? LCDTARANIS : LCD9X);
}
else {
image.load(fileName);
if (pictSource== PICT)
*format = image.width()>WIDTH_9X ? LCDTARANIS : LCD9X;
else if (pictSource == PROFILE)
- *format = (g.profile[g.id()].firmware().contains("taranis")) ? LCDTARANIS : LCD9X;
+ *format = (g.profile[g.id()].fwType().contains("taranis")) ? LCDTARANIS : LCD9X;
}
if (image.isNull()) {
return false;
}
- // Prepare and display image
+ // Load image
if (*format==LCDTARANIS) {
- image=image.convertToFormat(QImage::Format_RGB32);
- QRgb col;
- int gray;
- int width = image.width();
- int height = image.height();
- for (int i = 0; i < width; ++i) {
- for (int j = 0; j < height; ++j) {
- col = image.pixel(i, j);
- gray = qGray(col);
- image.setPixel(i, j, qRgb(gray, gray, gray));
- }
- }
- imageLabel->setPixmap(QPixmap::fromImage(image.scaled(imageLabel->width()/2, imageLabel->height()/2)));
+ imageLabel->setPixmap( makePixMap( image, "taranis" ));
+ imageLabel->setFixedSize(WIDTH_TARANIS*2, HEIGHT_TARANIS*2);
}
- else
- imageLabel->setPixmap(QPixmap::fromImage(image.scaled(imageLabel->width()/2, imageLabel->height()/2).convertToFormat(QImage::Format_Mono)));
-
- if (*format == LCD9X)
- imageLabel->setFixedSize(WIDTH_9X*2, HEIGHT_9X*2);
- else
- imageLabel->setFixedSize(WIDTH_TARANIS*2, HEIGHT_TARANIS*2);
-
+ else {
+ imageLabel->setPixmap( makePixMap( image, "9x" ));
+ imageLabel->setFixedSize(WIDTH_9X*2, HEIGHT_9X*2);
+ }
+
switch (pictSource){
- case FW:
- fileNameEdit->setText(QObject::tr("FW: %1").arg(fileName));
- *saveToFileName = fileName;
- *source=FW;
- break;
- case PICT:
- fileNameEdit->setText(QObject::tr("Pict: %1").arg(fileName));
- *saveToFileName = fileName;
- *source=PICT;
- break;
- case PROFILE:
- fileNameEdit->setText(QObject::tr("Profile image"));
- *saveToFileName = fileName;
- *source=PROFILE;
- break;
- default:
- break;
+ case FW:
+ fileNameEdit->setText(QObject::tr("FW: %1").arg(fileName));
+ *saveToFileName = fileName;
+ *source=FW;
+ break;
+ case PICT:
+ fileNameEdit->setText(QObject::tr("Pict: %1").arg(fileName));
+ *saveToFileName = fileName;
+ *source=PICT;
+ break;
+ case PROFILE:
+ fileNameEdit->setText(QObject::tr("Profile image"));
+ *saveToFileName = fileName;
+ *source=PROFILE;
+ break;
+ default:
+ break;
}
saveButton->setEnabled(true);
libraryButton->setEnabled(true);
diff --git a/companion/src/fwpreferencesdialog.cpp b/companion/src/fwpreferencesdialog.cpp
index 17c7c6caf..ec2585ddc 100644
--- a/companion/src/fwpreferencesdialog.cpp
+++ b/companion/src/fwpreferencesdialog.cpp
@@ -213,7 +213,7 @@ void fwPreferencesDialog::writeValues()
{
g.cpuId( ui->CPU_ID_LE->text() );
current_firmware_variant = getFirmwareVariant();
- g.profile[g.id()].firmware( current_firmware_variant.id );
+ g.profile[g.id()].fwType( current_firmware_variant.id );
}
void fwPreferencesDialog::populateFirmwareOptions(const FirmwareInfo * firmware)
@@ -290,7 +290,7 @@ void fwPreferencesDialog::on_checkFWUpdates_clicked()
FirmwareVariant variant = getFirmwareVariant();
if (g.profile[g.id()].burnFirmware()) {
current_firmware_variant = variant;
- g.profile[g.id()].firmware( variant.id );
+ g.profile[g.id()].fwType( variant.id );
}
MainWindow * mw = (MainWindow *)this->parent();
mw->checkForUpdates(true, variant.id);
@@ -305,7 +305,7 @@ void fwPreferencesDialog::on_fw_dnld_clicked()
if (!variant.firmware->getUrl(variant.id).isNull()) {
if (g.profile[g.id()].burnFirmware()) {
current_firmware_variant = getFirmwareVariant();
- g.profile[g.id()].firmware( current_firmware_variant.id );
+ g.profile[g.id()].fwType( current_firmware_variant.id );
}
mw->downloadLatestFW(current_firmware_variant.firmware, current_firmware_variant.id);
}
diff --git a/companion/src/generaledit.cpp b/companion/src/generaledit.cpp
index 6e96e0368..6c5b6dfc9 100644
--- a/companion/src/generaledit.cpp
+++ b/companion/src/generaledit.cpp
@@ -20,7 +20,7 @@ GeneralEdit::GeneralEdit(RadioData &radioData, QWidget *parent) :
ui->setupUi(this);
this->setWindowIcon(CompanionIcon("open.png"));
- QString firmware_id = g.profile[g.id()].firmware();
+ QString firmware_id = g.profile[g.id()].fwType();
ui->tabWidget->setCurrentIndex( g.generalEditTab() );
QString name=g.profile[g.id()].name();
if (name.isEmpty()) {
diff --git a/companion/src/helpers.cpp b/companion/src/helpers.cpp
index 99dec9a63..2c7f9fc0c 100644
--- a/companion/src/helpers.cpp
+++ b/companion/src/helpers.cpp
@@ -2,6 +2,7 @@
#include "appdata.h"
#include "helpers.h"
#include "simulatordialog.h"
+#include "flashinterface.h"
QString getPhaseName(int val, char * phasename)
{
@@ -946,3 +947,24 @@ void startSimulation(QWidget * parent, RadioData & radioData, int modelIdx)
QObject::tr("Simulator for this firmware is not yet available"));
}
}
+
+QPixmap makePixMap( QImage image, QString firmwareType )
+{
+ if (firmwareType.contains( "taranis" )) {
+ image = image.convertToFormat(QImage::Format_RGB32);
+ QRgb col;
+ int gray;
+ for (int i = 0; i < image.width(); ++i) {
+ for (int j = 0; j < image.height(); ++j) {
+ col = image.pixel(i, j);
+ gray = qGray(col);
+ image.setPixel(i, j, qRgb(gray, gray, gray));
+ }
+ }
+ image = image.scaled(SPLASHX9D_WIDTH, SPLASHX9D_HEIGHT);
+ }
+ else {
+ image = image.scaled(SPLASH_WIDTH, SPLASH_HEIGHT).convertToFormat(QImage::Format_Mono);
+ }
+ return(QPixmap::fromImage(image));
+}
diff --git a/companion/src/helpers.h b/companion/src/helpers.h
index fdebcb170..5d667e5d8 100644
--- a/companion/src/helpers.h
+++ b/companion/src/helpers.h
@@ -128,4 +128,6 @@ QString getFrSkySrc(int index);
void startSimulation(QWidget * parent, RadioData & radioData, int modelIdx);
+QPixmap makePixMap( QImage image, QString firmwareType );
+
#endif // HELPERS_H
diff --git a/companion/src/mainwindow.cpp b/companion/src/mainwindow.cpp
index e4bb27f80..596f6b78c 100644
--- a/companion/src/mainwindow.cpp
+++ b/companion/src/mainwindow.cpp
@@ -308,7 +308,7 @@ void MainWindow::downloadLatestFW(FirmwareInfo * firmware, const QString & firmw
if (!fileName.isEmpty()) {
downloadedFW = firmwareId;
needRename=true;
- downloadedFWFilename = fileName;
+ g.profile[g.id()].fwName( fileName );
if (!cpuid.isEmpty()) {
url.append("&cpuid=");
url.append(cpuid);
@@ -323,7 +323,7 @@ void MainWindow::downloadLatestFW(FirmwareInfo * firmware, const QString & firmw
void MainWindow::reply1Accepted()
{
QString errormsg;
- if (downloadedFWFilename.isEmpty()) {
+ if (g.profile[g.id()].fwName().isEmpty()) {
if (!(downloadedFW.isEmpty())) {
QFile file(downloadedFW);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { //reading HEX TEXT file
@@ -364,11 +364,11 @@ void MainWindow::reply1Accepted()
g.fwRev.set(downloadedFW, currentFWrev);
}
} else {
- QFile file(downloadedFWFilename);
+ QFile file(g.profile[g.id()].fwName());
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { //reading HEX TEXT file
QMessageBox::critical(this, tr("Error"),
tr("Error opening file %1:\n%2.")
- .arg(downloadedFWFilename)
+ .arg(g.profile[g.id()].fwName())
.arg(file.errorString()));
return;
}
@@ -399,13 +399,13 @@ void MainWindow::reply1Accepted()
return;
}
file.close();
- FlashInterface flash(downloadedFWFilename);
+ FlashInterface flash(g.profile[g.id()].fwName());
QString rev=flash.getSvn();
int pos=rev.lastIndexOf("-r");
if (pos>0) {
currentFWrev=rev.mid(pos+2).toInt();
if (g.profile[g.id()].renameFwFiles() && needRename) {
- QFileInfo fi(downloadedFWFilename);
+ QFileInfo fi(g.profile[g.id()].fwName());
QString path=fi.path()+QDir::separator ();
path.append(fi.completeBaseName());
path.append(rev.mid(pos));
@@ -413,14 +413,14 @@ void MainWindow::reply1Accepted()
path.append(fi.suffix());
QDir qd;
qd.remove(path);
- qd.rename(downloadedFWFilename,path);
- downloadedFWFilename=path;
+ qd.rename(g.profile[g.id()].fwName(),path);
+ g.profile[g.id()].fwName(path);
}
g.fwRev.set(downloadedFW, currentFWrev);
if (g.profile[g.id()].burnFirmware()) {
int ret = QMessageBox::question(this, "Companion", tr("Do you want to write the firmware to the transmitter now ?"), QMessageBox::Yes | QMessageBox::No);
if (ret == QMessageBox::Yes) {
- writeFlash(downloadedFWFilename);
+ writeFlash(g.profile[g.id()].fwName());
}
}
}
@@ -560,7 +560,7 @@ void MainWindow::reply1Finished(QNetworkReply * reply)
url.append("&cpuid=");
url.append(cpuid);
}
- downloadedFWFilename = fileName;
+ g.profile[g.id()].fwName( fileName );
g.flashDir(QFileInfo(fileName).dir().absolutePath());
downloadDialog * dd = new downloadDialog(this, url, fileName);
currentFWrev_temp = NewFwRev;
@@ -702,7 +702,7 @@ void MainWindow::loadProfile() //TODO Load all variables - Also HW!
g.id( profnum );
// TODO Get rid of this global variable - The profile.firmware is the real source
- current_firmware_variant = GetFirmwareVariant(g.profile[g.id()].firmware());
+ current_firmware_variant = GetFirmwareVariant(g.profile[g.id()].fwType());
foreach (QMdiSubWindow *window, mdiArea->subWindowList()) {
MdiChild *mdiChild = qobject_cast(window->widget());
diff --git a/companion/src/mainwindow.h b/companion/src/mainwindow.h
index f746b1eb8..8bfca1fa8 100644
--- a/companion/src/mainwindow.h
+++ b/companion/src/mainwindow.h
@@ -197,7 +197,6 @@ private:
QString installer_fileName;
QString downloadedFW;
- QString downloadedFWFilename;
downloadDialog * downloadDialog_forWait;
bool needRename;
diff --git a/companion/src/modeledit/telemetry.cpp b/companion/src/modeledit/telemetry.cpp
index 099ba56ab..e06fe96a3 100644
--- a/companion/src/modeledit/telemetry.cpp
+++ b/companion/src/modeledit/telemetry.cpp
@@ -457,7 +457,7 @@ TelemetryPanel::~TelemetryPanel()
void TelemetryPanel::setup()
{
- QString firmware_id = g.profile[g.id()].firmware();
+ QString firmware_id = g.profile[g.id()].fwType();
lock=true;
diff --git a/companion/src/splashlibrary.cpp b/companion/src/splashlibrary.cpp
index 5685406b7..d35dd48a6 100644
--- a/companion/src/splashlibrary.cpp
+++ b/companion/src/splashlibrary.cpp
@@ -3,7 +3,6 @@
#include "appdata.h"
#include
#include "helpers.h"
-//#include "splashlabel.h"
#include "flashinterface.h"
#include "helpers.h"
@@ -23,7 +22,6 @@ splashLibrary::splashLibrary(QWidget *parent, QString * fileName) : QDialog(pare
foreach(splashLabel *sl, findChildren()) {
connect(sl, SIGNAL(buttonPressed(int)), this, SLOT(onButtonPressed(int)));
}
- resize(0, 0);
}
splashLibrary::~splashLibrary() {
@@ -40,7 +38,7 @@ void splashLibrary::setupPage(int page) {
if ((i + 20 * page) < imageList.size()) {
QImage image(imageList.at(i + 20 * page));
if (!image.isNull()) {
- sl[i]->setPixmap(QPixmap::fromImage(image.scaled(SPLASH_WIDTH, SPLASH_HEIGHT).convertToFormat(QImage::Format_Mono)));
+ sl[i]->setPixmap(makePixMap(image, g.profile[g.id()].fwType()));
sl[i]->setEnabled(true);
sl[i]->setId((i + 20 * page));
sl[i]->setStyleSheet("border:1px solid; border-color:#999999;");
@@ -104,10 +102,6 @@ void splashLibrary::getFileList() {
}
}
-void splashLibrary::shrink() {
- resize(0, 0);
-}
-
void splashLibrary::dclose() {
close();
}
diff --git a/companion/src/splashlibrary.h b/companion/src/splashlibrary.h
index 9da9d58e4..0d9123a74 100644
--- a/companion/src/splashlibrary.h
+++ b/companion/src/splashlibrary.h
@@ -17,7 +17,6 @@ public:
~splashLibrary();
private slots:
- void shrink() ;
void dclose();
void onButtonPressed(int button);
void on_nextPage_clicked();
diff --git a/companion/src/splashlibrary.ui b/companion/src/splashlibrary.ui
index 15e1b54a0..5ce1e2502 100644
--- a/companion/src/splashlibrary.ui
+++ b/companion/src/splashlibrary.ui
@@ -6,22 +6,16 @@
0
0
- 662
- 356
+ 650
+ 374
-
+
0
0
-
-
- 662
- 356
-
-
@@ -39,10 +33,16 @@
- 50
+ 34
0
+
+
+ 34
+ 16777215
+
+
...
@@ -54,12 +54,15 @@
- -
+
-
+
+ QLayout::SetNoConstraint
+
-
-
+
0
0
@@ -72,7 +75,7 @@
- 130
+ 214
66
@@ -105,7 +108,7 @@
-
-
+
0
0
@@ -113,55 +116,12 @@
130
- 66
+ 0
- 130
- 66
-
-
-
- true
-
-
- border:1px;
-
-
- QFrame::Panel
-
-
- QFrame::Plain
-
-
- 0
-
-
-
-
-
- true
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 130
- 66
-
-
-
-
- 130
+ 214
66
@@ -191,7 +151,7 @@
-
-
+
0
0
@@ -199,12 +159,12 @@
130
- 66
+ 0
- 130
+ 214
66
@@ -234,20 +194,20 @@
-
-
+
0
0
- 130
+ 0
66
- 130
+ 214
66
@@ -277,20 +237,14 @@
-
-
+
0
0
-
-
- 130
- 66
-
-
- 130
+ 214
66
@@ -320,20 +274,14 @@
-
-
+
0
0
-
-
- 130
- 66
-
-
- 130
+ 214
66
@@ -363,20 +311,14 @@
-
-
+
0
0
-
-
- 130
- 66
-
-
- 130
+ 214
66
@@ -406,20 +348,20 @@
-
-
+
0
0
- 130
+ 0
66
- 130
+ 214
66
@@ -449,20 +391,14 @@
-
-
+
0
0
-
-
- 130
- 66
-
-
- 130
+ 214
66
@@ -492,20 +428,14 @@
-
-
+
0
0
-
-
- 130
- 66
-
-
- 130
+ 214
66
@@ -535,20 +465,14 @@
-
-
+
0
0
-
-
- 130
- 66
-
-
- 130
+ 214
66
@@ -578,20 +502,20 @@
-
-
+
0
0
- 130
+ 0
66
- 130
+ 214
66
@@ -621,20 +545,14 @@
-
-
+
0
0
-
-
- 130
- 66
-
-
- 130
+ 214
66
@@ -664,20 +582,14 @@
-
-
+
0
0
-
-
- 130
- 66
-
-
- 130
+ 214
66
@@ -707,20 +619,14 @@
-
-
+
0
0
-
-
- 130
- 66
-
-
- 130
+ 214
66
@@ -750,20 +656,20 @@
-
-
+
0
0
- 130
+ 0
66
- 130
+ 214
66
@@ -793,20 +699,14 @@
-
-
+
0
0
-
-
- 130
- 66
-
-
- 130
+ 214
66
@@ -836,20 +736,14 @@
-
-
+
0
0
-
-
- 130
- 66
-
-
- 130
+ 214
66
@@ -879,7 +773,44 @@
-
-
+
+ 0
+ 0
+
+
+
+
+ 214
+ 66
+
+
+
+ true
+
+
+ border:1px;
+
+
+ QFrame::Panel
+
+
+ QFrame::Plain
+
+
+ 0
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+
0
0
@@ -887,12 +818,12 @@
130
- 66
+ 0
- 130
+ 214
66
@@ -921,7 +852,7 @@
- -
+
-
false
@@ -934,10 +865,16 @@
- 50
+ 34
0
+
+
+ 34
+ 16777215
+
+
...
@@ -949,6 +886,32 @@
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+