From 369bac9950f1127c7de279c49b81d45bab31a318 Mon Sep 17 00:00:00 2001 From: Max Paperno Date: Fri, 31 Mar 2017 01:56:22 -0400 Subject: [PATCH] [Companion] Improve handling of non-supported splash image (Horus) in radio profile settings page. (#4720) --- companion/src/apppreferencesdialog.cpp | 51 +++-- companion/src/apppreferencesdialog.ui | 282 +++++++++++++------------ 2 files changed, 173 insertions(+), 160 deletions(-) diff --git a/companion/src/apppreferencesdialog.cpp b/companion/src/apppreferencesdialog.cpp index 8b46cd41e..acc03dd0b 100644 --- a/companion/src/apppreferencesdialog.cpp +++ b/companion/src/apppreferencesdialog.cpp @@ -77,7 +77,7 @@ void AppPreferencesDialog::writeValues() g.enableBackup(ui->backupEnable->isChecked()); if (ui->joystickChkB ->isChecked() && ui->joystickCB->isEnabled()) { - g.jsSupport(ui->joystickChkB ->isChecked()); + g.jsSupport(ui->joystickChkB ->isChecked()); g.jsCtrl(ui->joystickCB ->currentIndex()); } else { @@ -193,7 +193,7 @@ void AppPreferencesDialog::initSettings() ui->joystickCB->setDisabled(true); ui->joystickcalButton->setDisabled(true); } -#endif +#endif // Profile Tab Inits ui->channelorderCB->setCurrentIndex(g.profile[g.id()].channelOrder()); ui->stickmodeCB->setCurrentIndex(g.profile[g.id()].defaultMode()); @@ -213,7 +213,6 @@ void AppPreferencesDialog::initSettings() } ui->profileNameLE->setText(g.profile[g.id()].name()); - ui->SplashFileName->setText(g.profile[g.id()].splashFile()); QString hwSettings; if (g.profile[g.id()].stickPotCalib() == "" ) { @@ -229,30 +228,13 @@ void AppPreferencesDialog::initSettings() ui->lblGeneralSettings->setText(hwSettings); Firmware * current_firmware = getCurrentFirmware(); - - if (!IS_HORUS(current_firmware->getBoard())) { - displayImage(g.profile[g.id()].splashFile()); - } - // TODO: Remove once splash replacement supported on Horus - // NOTE: 480x272 image causes issues on screens <800px high, needs a solution like scrolling once reinstated - else { - ui->imageLabel->hide(); - ui->splashLabel->hide(); - ui->SplashFileName->hide(); - ui->SplashSelect->hide(); - ui->SplashSelect->setEnabled(false); - ui->clearImageButton->hide(); - ui->clearImageButton->setEnabled(false); - ui->splashSeparator->hide(); - } - foreach(Firmware * firmware, firmwares) { ui->downloadVerCB->addItem(firmware->getName(), firmware->getId()); if (current_firmware->getFirmwareBase() == firmware) { ui->downloadVerCB->setCurrentIndex(ui->downloadVerCB->count() - 1); } } - + baseFirmwareChanged(); } @@ -306,7 +288,7 @@ void AppPreferencesDialog::on_ge_pathButton_clicked() ui->ge_lineedit->setText(fileName); } } - + #if defined(JOYSTICKS) void AppPreferencesDialog::on_joystickChkB_clicked() { if (ui->joystickChkB->isChecked()) { @@ -367,10 +349,13 @@ bool AppPreferencesDialog::displayImage(const QString & fileName) // Start by clearing the label ui->imageLabel->clear(); - QImage image(fileName); - if (image.isNull()) + if (fileName.isEmpty()) return false; - + + QImage image(fileName); + if (image.isNull()) + return false; + ui->imageLabel->setPixmap(makePixMap(image)); ui->imageLabel->setFixedSize(getCurrentFirmware()->getCapability(LcdWidth), getCurrentFirmware()->getCapability(LcdHeight)); return true; @@ -388,7 +373,7 @@ void AppPreferencesDialog::on_SplashSelect_clicked() if (!fileName.isEmpty()){ g.imagesDir(QFileInfo(fileName).dir().absolutePath()); - + displayImage(fileName); ui->SplashFileName->setText(fileName); } @@ -478,7 +463,7 @@ void AppPreferencesDialog::firmwareOptionChanged(bool state) } } } - } + } } void AppPreferencesDialog::populateFirmwareOptions(const Firmware * firmware) @@ -542,6 +527,18 @@ void AppPreferencesDialog::populateFirmwareOptions(const Firmware * firmware) showVoice(voice && voice->isChecked()); + // TODO: Remove once splash replacement supported on Horus + // NOTE: 480x272 image causes issues on screens <800px high, needs a solution like scrolling once reinstated + if (IS_HORUS(parent->getBoard())) { + ui->widget_splashImage->hide(); + ui->SplashFileName->setText(""); + } + else { + ui->widget_splashImage->show(); + ui->SplashFileName->setText(g.profile[g.id()].splashFile()); + displayImage(g.profile[g.id()].splashFile()); + } + updateLock = false; QTimer::singleShot(0, this, SLOT(shrink())); } diff --git a/companion/src/apppreferencesdialog.ui b/companion/src/apppreferencesdialog.ui index 3c668b2c3..1898fb56b 100644 --- a/companion/src/apppreferencesdialog.ui +++ b/companion/src/apppreferencesdialog.ui @@ -45,7 +45,139 @@ Radio Profile - + + + + + Remove Profile + + + + + + + Select Folder + + + + + + + The profile specific folder, if set, will override general Backup folder + + + Select Folder + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 6 + + + + + + 0 + 0 + + + + + 75 + true + + + + Splash Screen + + + + + + + true + + + true + + + + + + + Select Image + + + + + + + + 0 + 0 + + + + + 128 + 64 + + + + + 212 + 64 + + + + QFrame::StyledPanel + + + QFrame::Plain + + + 1 + + + + + + true + + + + + + + Clear Image + + + + + + + Qt::Horizontal + + + + + + @@ -183,80 +315,7 @@ May be different from firmware language - - - - - 0 - 0 - - - - - 75 - true - - - - Splash Screen - - - - - - - true - - - true - - - - - - - - 0 - 0 - - - - - 128 - 64 - - - - - 212 - 64 - - - - QFrame::StyledPanel - - - QFrame::Plain - - - 1 - - - - - - true - - - - - - - Qt::Horizontal - - - - + @@ -269,7 +328,7 @@ May be different from firmware language - + @@ -285,7 +344,7 @@ May be different from firmware language - + true @@ -298,7 +357,7 @@ May be different from firmware language - + The profile specific folder, if set, will override general Backup folder @@ -308,7 +367,7 @@ May be different from firmware language - + If set it will override the application general setting @@ -318,7 +377,7 @@ May be different from firmware language - + if set, will override general backup enable @@ -328,14 +387,14 @@ May be different from firmware language - + General Settings - + true @@ -345,7 +404,7 @@ May be different from firmware language - + @@ -358,7 +417,7 @@ May be different from firmware language - + @@ -412,7 +471,7 @@ Mode 4: - + @@ -428,7 +487,7 @@ Mode 4: - + @@ -576,21 +635,21 @@ Mode 4: - + Append version number to FW file name - + Offer to write FW to Tx after download - + Qt::Vertical @@ -603,44 +662,6 @@ Mode 4: - - - - Clear Image - - - - - - - Select Image - - - - - - - Remove Profile - - - - - - - Select Folder - - - - - - - The profile specific folder, if set, will override general Backup folder - - - Select Folder - - - @@ -1111,9 +1132,6 @@ Mode 4: downloadVerCB langCombo voiceCombo - SplashFileName - SplashSelect - clearImageButton sdPath sdPathButton profilebackupPath @@ -1147,9 +1165,7 @@ Mode 4: volumeGain buttonBox - - - + buttonBox