diff options
author | Aidan MacDonald <amachronic@protonmail.com> | 2021-12-29 00:26:47 +0000 |
---|---|---|
committer | Aidan MacDonald <amachronic@protonmail.com> | 2022-01-02 15:50:17 -0500 |
commit | cbb57fe714b633cd5b91850eae9cfd326dee2eeb (patch) | |
tree | 57fce120fed1c96313842f63b770dbee9fa55333 /utils/rbutilqt/rbutilqt.cpp | |
parent | 42999913ba3a76221fceb04b1f935ed4e0e71476 (diff) | |
download | rockbox-cbb57fe714b633cd5b91850eae9cfd326dee2eeb.tar.gz rockbox-cbb57fe714b633cd5b91850eae9cfd326dee2eeb.zip |
rbutil: allow checking bootloader installer capabilities
Instead of checking for certain hardcoded strings, fetch
the actual capability bitmask by instantiating an installer
and querying it.
Change-Id: I7883d9c1e90da37ee7c0189732ac626685adbfa1
Diffstat (limited to 'utils/rbutilqt/rbutilqt.cpp')
-rw-r--r-- | utils/rbutilqt/rbutilqt.cpp | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/utils/rbutilqt/rbutilqt.cpp b/utils/rbutilqt/rbutilqt.cpp index d0ff9f2799..aa405418be 100644 --- a/utils/rbutilqt/rbutilqt.cpp +++ b/utils/rbutilqt/rbutilqt.cpp | |||
@@ -359,16 +359,14 @@ void RbUtilQt::updateSettings() | |||
359 | 359 | ||
360 | void RbUtilQt::updateDevice() | 360 | void RbUtilQt::updateDevice() |
361 | { | 361 | { |
362 | /* TODO: We should check the flags of the bootloaderinstall classes, and not | 362 | PlayerBuildInfo* playerBuildInfo = PlayerBuildInfo::instance(); |
363 | * just check if its != none or != "fwpatcher" */ | ||
364 | 363 | ||
365 | /* Enable bootloader installation, if possible */ | 364 | BootloaderInstallBase::Capabilities bootloaderCapabilities = |
366 | bool bootloaderInstallable = | 365 | BootloaderInstallHelper::bootloaderInstallerCapabilities(this, |
367 | PlayerBuildInfo::instance()->value(PlayerBuildInfo::BootloaderMethod).toString() != "none"; | 366 | playerBuildInfo->value(PlayerBuildInfo::BootloaderMethod).toString()); |
368 | 367 | ||
369 | /* Enable bootloader uninstallation, if possible */ | 368 | /* Disable uninstallation actions if they are not supported. */ |
370 | bool bootloaderUninstallable = bootloaderInstallable && | 369 | bool bootloaderUninstallable = !(bootloaderCapabilities & BootloaderInstallBase::Uninstall); |
371 | PlayerBuildInfo::instance()->value(PlayerBuildInfo::BootloaderMethod) != "fwpatcher"; | ||
372 | ui.labelRemoveBootloader->setEnabled(bootloaderUninstallable); | 370 | ui.labelRemoveBootloader->setEnabled(bootloaderUninstallable); |
373 | ui.buttonRemoveBootloader->setEnabled(bootloaderUninstallable); | 371 | ui.buttonRemoveBootloader->setEnabled(bootloaderUninstallable); |
374 | ui.actionRemove_bootloader->setEnabled(bootloaderUninstallable); | 372 | ui.actionRemove_bootloader->setEnabled(bootloaderUninstallable); |
@@ -379,11 +377,11 @@ void RbUtilQt::updateDevice() | |||
379 | ui.menuA_ctions->setEnabled(configurationValid); | 377 | ui.menuA_ctions->setEnabled(configurationValid); |
380 | 378 | ||
381 | // displayed device info | 379 | // displayed device info |
382 | QString brand = PlayerBuildInfo::instance()->value(PlayerBuildInfo::Brand).toString(); | 380 | QString brand = playerBuildInfo->value(PlayerBuildInfo::Brand).toString(); |
383 | QString name | 381 | QString name |
384 | = QString("%1 (%2)").arg( | 382 | = QString("%1 (%2)").arg( |
385 | PlayerBuildInfo::instance()->value(PlayerBuildInfo::DisplayName).toString(), | 383 | playerBuildInfo->value(PlayerBuildInfo::DisplayName).toString(), |
386 | PlayerBuildInfo::instance()->statusAsString()); | 384 | playerBuildInfo->statusAsString()); |
387 | ui.labelDevice->setText(QString("<b>%1 %2</b>").arg(brand, name)); | 385 | ui.labelDevice->setText(QString("<b>%1 %2</b>").arg(brand, name)); |
388 | 386 | ||
389 | QString mountpoint = RbSettings::value(RbSettings::Mountpoint).toString(); | 387 | QString mountpoint = RbSettings::value(RbSettings::Mountpoint).toString(); |
@@ -398,7 +396,7 @@ void RbUtilQt::updateDevice() | |||
398 | } | 396 | } |
399 | 397 | ||
400 | QPixmap pm; | 398 | QPixmap pm; |
401 | QString m = PlayerBuildInfo::instance()->value(PlayerBuildInfo::PlayerPicture).toString(); | 399 | QString m = playerBuildInfo->value(PlayerBuildInfo::PlayerPicture).toString(); |
402 | pm.load(":/icons/players/" + m + "-small.png"); | 400 | pm.load(":/icons/players/" + m + "-small.png"); |
403 | pm = pm.scaledToHeight(QFontMetrics(QApplication::font()).height() * 3); | 401 | pm = pm.scaledToHeight(QFontMetrics(QApplication::font()).height() * 3); |
404 | ui.labelPlayerPic->setPixmap(pm); | 402 | ui.labelPlayerPic->setPixmap(pm); |