diff --git a/companion/src/apppreferencesdialog.cpp b/companion/src/apppreferencesdialog.cpp index 24a3a15e1..cfcb0b3de 100644 --- a/companion/src/apppreferencesdialog.cpp +++ b/companion/src/apppreferencesdialog.cpp @@ -2,6 +2,7 @@ #include "ui_apppreferencesdialog.h" #include "mainwindow.h" #include "helpers.h" +#include "flashinterface.h" #ifdef JOYSTICKS #include "joystick.h" #include "joystickdialog.h" @@ -339,16 +340,26 @@ void appPreferencesDialog::on_removeProfileButton_clicked() bool appPreferencesDialog::displayImage( QString fileName ) { + QSettings settings; + QImage image(fileName); if (image.isNull()) - { - QMessageBox::critical(this, tr("Error"), tr("Cannot load %1.").arg(fileName)); return false; - } - int width=ui->imageLabel->width(); - ui->imageLabel->setPixmap(QPixmap::fromImage(image.scaled(width, 64))); - if (width==212) { +// This code below just figures out if the width of the latest firmware is 128 or 212. It works , but... + QString filePath1 = settings.value("lastFlashDir", "").toString() + "/" + settings.value("firmware", "").toString() + ".bin"; + QString filePath2 = settings.value("lastFlashDir", "").toString() + "/" + settings.value("firmware", "").toString() + ".hex"; + QFile file(filePath1); + if (!file.exists()) + filePath1 = filePath2; + int width = SPLASH_WIDTH; + FlashInterface flash(filePath1); + if (flash.hasSplash()) + width = flash.getSplashWidth(); // Returns SPLASHX9D_HEIGHT if filePath1 does not exist! +// There must be a cleaner way of finding out the width of the firmware splash! + + 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(); @@ -364,6 +375,11 @@ bool appPreferencesDialog::displayImage( QString fileName ) 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); + return true; } diff --git a/companion/src/apppreferencesdialog.ui b/companion/src/apppreferencesdialog.ui index 33cfe311a..9a7680a42 100644 --- a/companion/src/apppreferencesdialog.ui +++ b/companion/src/apppreferencesdialog.ui @@ -805,47 +805,6 @@ This is used by the templated to determine which channel goes to what number out - - - - Select Image - - - - - - - - 0 - 0 - - - - - 128 - 64 - - - - - 128 - 64 - - - - QFrame::Panel - - - QFrame::Raised - - - - - - true - - - @@ -873,13 +832,6 @@ This is used by the templated to determine which channel goes to what number out - - - - Clear Image - - - @@ -947,6 +899,54 @@ This is used by the templated to determine which channel goes to what number out + + + + + 0 + 0 + + + + + 128 + 64 + + + + + 212 + 64 + + + + QFrame::Panel + + + QFrame::Raised + + + + + + true + + + + + + + Select Image + + + + + + + Clear Image + + +