summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2022-04-17 22:28:13 +0200
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2022-04-17 23:21:19 +0200
commit37a60d54619e957cbc3f7d9a49bd152f674df8e6 (patch)
treefca1fc420fa6fcf041ad52836ce775d57d49bfdc
parent62108a96137dff6fefb61d2af8dc59e8716ccb96 (diff)
downloadrockbox-37a60d5461.tar.gz
rockbox-37a60d5461.zip
rbutil: Enable themes install depending on theme selection.
Don't store the "Install Themes" option. Automatically enable themes installation if the themes selection has at least one entry selected instead. Change-Id: Ib46e8b53b0204555b79dea51545dd7c380f003ff
-rw-r--r--utils/rbutilqt/base/rbsettings.cpp1
-rw-r--r--utils/rbutilqt/base/rbsettings.h1
-rw-r--r--utils/rbutilqt/gui/selectiveinstallwidget.cpp24
-rw-r--r--utils/rbutilqt/gui/selectiveinstallwidget.h1
-rw-r--r--utils/rbutilqt/themesinstallwindow.cpp22
-rw-r--r--utils/rbutilqt/themesinstallwindow.h9
6 files changed, 17 insertions, 41 deletions
diff --git a/utils/rbutilqt/base/rbsettings.cpp b/utils/rbutilqt/base/rbsettings.cpp
index 8eaa01f7f6..00a37c010e 100644
--- a/utils/rbutilqt/base/rbsettings.cpp
+++ b/utils/rbutilqt/base/rbsettings.cpp
@@ -45,7 +45,6 @@ const static struct {
{ RbSettings::BackupPath, "backuppath", "" },
{ RbSettings::InstallRockbox, "install_rockbox", "true" },
{ RbSettings::InstallFonts, "install_fonts", "true" },
- { RbSettings::InstallThemes, "install_themes", "false" },
{ RbSettings::InstallPluginData, "install_plugin_data", "true" },
{ RbSettings::InstallVoice, "install_voice", "false" },
{ RbSettings::InstallManual, "install_manual", "false" },
diff --git a/utils/rbutilqt/base/rbsettings.h b/utils/rbutilqt/base/rbsettings.h
index ef0c4eb134..820b3e0067 100644
--- a/utils/rbutilqt/base/rbsettings.h
+++ b/utils/rbutilqt/base/rbsettings.h
@@ -44,7 +44,6 @@ class RbSettings : public QObject
BackupPath,
InstallRockbox,
InstallFonts,
- InstallThemes,
InstallPluginData,
InstallVoice,
InstallManual,
diff --git a/utils/rbutilqt/gui/selectiveinstallwidget.cpp b/utils/rbutilqt/gui/selectiveinstallwidget.cpp
index 7ee7498d64..59fa1786c0 100644
--- a/utils/rbutilqt/gui/selectiveinstallwidget.cpp
+++ b/utils/rbutilqt/gui/selectiveinstallwidget.cpp
@@ -36,7 +36,6 @@ SelectiveInstallWidget::SelectiveInstallWidget(QWidget* parent) : QWidget(parent
ui.setupUi(this);
ui.rockboxCheckbox->setChecked(RbSettings::value(RbSettings::InstallRockbox).toBool());
ui.fontsCheckbox->setChecked(RbSettings::value(RbSettings::InstallFonts).toBool());
- ui.themesCheckbox->setChecked(RbSettings::value(RbSettings::InstallThemes).toBool());
ui.pluginDataCheckbox->setChecked(RbSettings::value(RbSettings::InstallPluginData).toBool());
ui.voiceCheckbox->setChecked(RbSettings::value(RbSettings::InstallVoice).toBool());
ui.manualCheckbox->setChecked(RbSettings::value(RbSettings::InstallManual).toBool());
@@ -52,14 +51,16 @@ SelectiveInstallWidget::SelectiveInstallWidget(QWidget* parent) : QWidget(parent
m_logger = nullptr;
m_zipinstaller = nullptr;
- m_themesinstaller = nullptr;
+ m_themesinstaller = new ThemesInstallWindow(this);
+ connect(m_themesinstaller, &ThemesInstallWindow::selected,
+ [this](int count) {ui.themesCheckbox->setChecked(count > 0);});
connect(ui.installButton, &QAbstractButton::clicked,
this, &SelectiveInstallWidget::startInstall);
connect(this, &SelectiveInstallWidget::installSkipped,
this, &SelectiveInstallWidget::continueInstall);
connect(ui.themesCustomize, &QAbstractButton::clicked,
- this, &SelectiveInstallWidget::customizeThemes);
+ [this]() { m_themesinstaller->show(); } );
connect(ui.selectedVersion, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
this, &SelectiveInstallWidget::selectedVersionChanged);
// update version information. This also handles setting the previously
@@ -202,7 +203,6 @@ void SelectiveInstallWidget::saveSettings(void)
RbSettings::setValue(RbSettings::InstallRockbox, ui.rockboxCheckbox->isChecked());
RbSettings::setValue(RbSettings::InstallFonts, ui.fontsCheckbox->isChecked());
- RbSettings::setValue(RbSettings::InstallThemes, ui.themesCheckbox->isChecked());
RbSettings::setValue(RbSettings::InstallPluginData, ui.pluginDataCheckbox->isChecked());
RbSettings::setValue(RbSettings::InstallVoice, ui.voiceCheckbox->isChecked());
RbSettings::setValue(RbSettings::InstallManual, ui.manualCheckbox->isChecked());
@@ -584,28 +584,16 @@ void SelectiveInstallWidget::installManual(void)
}
}
-void SelectiveInstallWidget::customizeThemes(void)
-{
- if(m_themesinstaller == nullptr)
- m_themesinstaller = new ThemesInstallWindow(this);
-
- m_themesinstaller->setSelectOnly(true);
- m_themesinstaller->show();
-}
-
-
void SelectiveInstallWidget::installThemes(void)
{
if(ui.themesCheckbox->isChecked()) {
LOG_INFO() << "installing themes";
- if(m_themesinstaller == nullptr)
- m_themesinstaller = new ThemesInstallWindow(this);
- connect(m_themesinstaller, &ThemesInstallWindow::done,
- this, &SelectiveInstallWidget::continueInstall);
m_themesinstaller->setLogger(m_logger);
m_themesinstaller->setModal(true);
m_themesinstaller->install();
+ connect(m_themesinstaller, &ThemesInstallWindow::finished,
+ this, &SelectiveInstallWidget::continueInstall);
}
else {
LOG_INFO() << "Themes install disabled.";
diff --git a/utils/rbutilqt/gui/selectiveinstallwidget.h b/utils/rbutilqt/gui/selectiveinstallwidget.h
index c961a387e0..d430cecb10 100644
--- a/utils/rbutilqt/gui/selectiveinstallwidget.h
+++ b/utils/rbutilqt/gui/selectiveinstallwidget.h
@@ -39,7 +39,6 @@ class SelectiveInstallWidget : public QWidget
private slots:
void continueInstall(bool);
- void customizeThemes(void);
void selectedVersionChanged(int);
void updateVoiceLangs();
diff --git a/utils/rbutilqt/themesinstallwindow.cpp b/utils/rbutilqt/themesinstallwindow.cpp
index 7edfc91cd1..3dd564c5e5 100644
--- a/utils/rbutilqt/themesinstallwindow.cpp
+++ b/utils/rbutilqt/themesinstallwindow.cpp
@@ -44,7 +44,7 @@ ThemesInstallWindow::ThemesInstallWindow(QWidget *parent) : QDialog(parent)
ui.themeDescription->setLayoutDirection(Qt::LeftToRight);
connect(ui.buttonCancel, &QAbstractButton::clicked, this, &QWidget::close);
- connect(ui.buttonOk, &QAbstractButton::clicked, this, &ThemesInstallWindow::accept);
+ connect(ui.buttonOk, &QAbstractButton::clicked, this, &ThemesInstallWindow::buttonOk);
connect(ui.listThemes, &QListWidget::currentItemChanged,
this, &ThemesInstallWindow::updateDetails);
connect(ui.listThemes, &QListWidget::itemSelectionChanged, this, &ThemesInstallWindow::updateSize);
@@ -287,8 +287,7 @@ void ThemesInstallWindow::resizeEvent(QResizeEvent* e)
void ThemesInstallWindow::show()
{
QDialog::show();
- if(windowSelectOnly)
- ui.buttonOk->setText(tr("Select"));
+ ui.buttonOk->setText(tr("Select"));
if(!logger)
logger = new ProgressLoggerGui(this);
@@ -309,16 +308,14 @@ void ThemesInstallWindow::abort()
{
igetter.abort();
logger->setFinished();
- this->close();
+ close();
}
-void ThemesInstallWindow::accept(void)
+void ThemesInstallWindow::buttonOk(void)
{
- if(!windowSelectOnly)
- install();
- else
- close();
+ emit selected(ui.listThemes->selectedItems().size());
+ close();
}
@@ -326,7 +323,6 @@ void ThemesInstallWindow::install()
{
if(ui.listThemes->selectedItems().size() == 0) {
logger->addItem(tr("No themes selected, skipping"), LOGINFO);
- emit done(false);
return;
}
QStringList themes;
@@ -368,13 +364,9 @@ void ThemesInstallWindow::install()
if(!RbSettings::value(RbSettings::CacheDisabled).toBool())
installer->setCache(true);
- if(!windowSelectOnly) {
- connect(logger, &ProgressLoggerGui::closed, this, &QWidget::close);
- connect(installer, &ZipInstaller::done, logger, &ProgressLoggerGui::setFinished);
- }
connect(installer, &ZipInstaller::logItem, logger, &ProgressLoggerGui::addItem);
connect(installer, &ZipInstaller::logProgress, logger, &ProgressLoggerGui::setProgress);
- connect(installer, &ZipInstaller::done, this, &ThemesInstallWindow::done);
+ connect(installer, &ZipInstaller::done, this, &ThemesInstallWindow::finished);
connect(logger, &ProgressLoggerGui::aborted, installer, &ZipInstaller::abort);
installer->install();
}
diff --git a/utils/rbutilqt/themesinstallwindow.h b/utils/rbutilqt/themesinstallwindow.h
index c3ea850efd..e3c408b847 100644
--- a/utils/rbutilqt/themesinstallwindow.h
+++ b/utils/rbutilqt/themesinstallwindow.h
@@ -36,17 +36,16 @@ class ThemesInstallWindow : public QDialog
public:
ThemesInstallWindow(QWidget* parent = 0);
~ThemesInstallWindow();
- void downloadInfo(void);
void show(void);
void setLogger(ProgressLoggerGui* l) { logger = l; }
- void setSelectOnly(bool state) { windowSelectOnly = state; }
void install(void);
public slots:
- void accept(void);
+ void buttonOk(void);
signals:
- void done(bool);
+ void selected(int);
+ void finished(bool);
private:
Ui::ThemeInstallFrm ui;
@@ -62,9 +61,9 @@ class ThemesInstallWindow : public QDialog
QString fileName;
QString infocachedir;
- bool windowSelectOnly;
private slots:
+ void downloadInfo(void);
void downloadDone(QNetworkReply::NetworkError error);
void updateImage(QNetworkReply::NetworkError error);
void abort(void);