#include "settings.h" #include "ui_settings.h" #include "mainwindow.h" #include "ui_mainwindow.h" #include "functions.h" #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; settings::settings(QWidget *parent) : QWidget(parent), ui(new Ui::settings) { ui->setupUi(this); ui->setPasscodeBtn->setProperty("type", "borderless"); ui->okBtn->setProperty("type", "borderless"); ui->aboutBtn->setProperty("type", "borderless"); ui->requestLeaseBtn->setProperty("type", "borderless"); ui->usbmsBtn->setProperty("type", "borderless"); ui->updateBtn->setProperty("type", "borderless"); ui->resetBtn->setProperty("type", "borderless"); ui->showSystemInfoBtn->setProperty("type", "borderless"); ui->checkOtaUpdateBtn->setProperty("type", "borderless"); ui->previousBtn->setProperty("type", "borderless"); ui->nextBtn->setProperty("type", "borderless"); ui->aboutBtn->setStyleSheet("font-size: 9pt"); ui->requestLeaseBtn->setStyleSheet("font-size: 9pt"); ui->usbmsBtn->setStyleSheet("font-size: 9pt"); ui->updateBtn->setStyleSheet("font-size: 9pt"); ui->resetBtn->setStyleSheet("font-size: 9pt"); ui->showSystemInfoBtn->setStyleSheet("font-size: 9pt"); ui->checkOtaUpdateBtn->setStyleSheet("font-size: 9pt"); ui->comboBox->setStyleSheet("font-size: 9pt"); ui->sleepTimeoutComboBox->setStyleSheet("font-size: 9pt"); ui->setPasscodeBtn->setStyleSheet("font-size: 9pt"); ui->previousBtn->setText(""); ui->previousBtn->setIcon(QIcon(":/resources/chevron-left.png")); ui->nextBtn->setText(""); ui->nextBtn->setIcon(QIcon(":/resources/chevron-right.png")); ui->requestLeaseBtn->hide(); ui->usbmsBtn->hide(); ui->label_3->hide(); ui->label_4->hide(); ui->label_5->hide(); ui->label_6->hide(); ui->line_3->hide(); ui->line_7->hide(); ui->updateBtn->hide(); ui->updateLabel->hide(); ui->enableLockscreenCheckBox->hide(); ui->setPasscodeBtn->hide(); ui->setPasscodeLabel->hide(); ui->securityLabel->hide(); ui->line_2->hide(); ui->uiScaleNumberLabel->hide(); ui->uiScalingSlider->hide(); ui->uiScalingLabel->hide(); // Variables defineDefaultPageSize(0); defineDefaultPageSize(1); // Settings tweaking + enabling specific features whether it's running on the provided integrated OS or Kobo firmware if(checkconfig(".config/01-demo/config") == true) { ui->demoCheckBox->click(); } if(checkconfig(".config/02-clock/config") == true) { ui->clockCheckBox->click(); } if(checkconfig(".config/05-quote/config") == true) { ui->quoteCheckBox->click(); } string_checkconfig_ro("/opt/inkbox_device"); if(checkconfig_str_val == "n705\n" or checkconfig_str_val == "n905\n" or checkconfig_str_val == "n613\n") { if(checkconfig(".config/10-dark_mode/config") == true) { ui->darkModeCheckBox->click(); } } else { ui->darkModeCheckBox->hide(); ui->darkModeCheckBox->deleteLater(); } // Words number string_checkconfig(".config/07-words_number/config"); if(checkconfig_str_val == "") { ; } else { int words_number = checkconfig_str_val.toInt(); ui->wordsNumber->setValue(words_number); } // ePUB page size if(checkconfig(".config/13-epub_page_size/set") == true) { string_checkconfig_ro(".config/13-epub_page_size/width"); if(checkconfig_str_val != "") { int pageWidth = checkconfig_str_val.toInt(); ui->pageSizeWidthSpinBox->setValue(pageWidth); } else { // Failsafe: setting default ui->pageSizeWidthSpinBox->setValue(defaultEpubPageWidth); } string_checkconfig_ro(".config/13-epub_page_size/height"); if(checkconfig_str_val != "") { int pageHeight = checkconfig_str_val.toInt(); ui->pageSizeHeightSpinBox->setValue(pageHeight); } else { // Failsafe: setting default ui->pageSizeHeightSpinBox->setValue(defaultEpubPageHeight); } } else { ui->pageSizeWidthSpinBox->setValue(defaultEpubPageWidth); ui->pageSizeHeightSpinBox->setValue(defaultEpubPageHeight); } // QTextEdit scroll bar in Reader framework if(checkconfig(".config/14-reader_scrollbar/config") == true) { ui->readerScrollBarCheckBox->click(); } // Sticky menubar if(checkconfig(".config/11-menubar/sticky") == true) { ui->menuBarCheckBox->click(); } // Scaling string_checkconfig(".config/09-dpi/config"); if(checkconfig_str_val == "") { ; } else { int dpi_number = checkconfig_str_val.toInt(); // Checking if it's a Mini, Touch or a Glo string_checkconfig_ro("/opt/inkbox_device"); if(checkconfig_str_val == "n705\n") { if(dpi_number == 187) { ui->uiScalingSlider->setValue(0); } if(dpi_number == 214) { ui->uiScalingSlider->setValue(1); } if(dpi_number == 227) { ui->uiScalingSlider->setValue(2); } } else if(checkconfig_str_val == "n905\n") { if(dpi_number == 160) { ui->uiScalingSlider->setValue(0); } if(dpi_number == 187) { ui->uiScalingSlider->setValue(1); } if(dpi_number == 200) { ui->uiScalingSlider->setValue(2); } } else if(checkconfig_str_val == "n613\n") { if(dpi_number == 195) { ui->uiScalingSlider->setValue(0); } if(dpi_number == 210) { ui->uiScalingSlider->setValue(1); } if(dpi_number == 225) { ui->uiScalingSlider->setValue(2); } } else if(checkconfig_str_val == "n873\n") { if(dpi_number == 285) { ui->uiScalingSlider->setValue(0); } if(dpi_number == 300) { ui->uiScalingSlider->setValue(1); } if(dpi_number == 315) { ui->uiScalingSlider->setValue(2); } } else { if(dpi_number == 187) { ui->uiScalingSlider->setValue(0); } if(dpi_number == 214) { ui->uiScalingSlider->setValue(1); } if(dpi_number == 227) { ui->uiScalingSlider->setValue(2); } } } // Refresh string_checkconfig_ro(".config/04-book/refresh"); if(checkconfig_str_val == "") { // Set default option, 3 string_writeconfig(".config/04-book/refresh", "3"); ui->comboBox->setCurrentText("3 pages"); } else { int refreshInt = checkconfig_str_val.toInt(); if(refreshInt == -1) { ui->comboBox->setCurrentText("Never refresh"); } if(refreshInt == 0) { ui->comboBox->setCurrentText("Every page"); } if(refreshInt == 1) { ui->comboBox->setCurrentText("1 page"); } if(refreshInt == 2) { ui->comboBox->setCurrentText("2 pages"); } if(refreshInt == 3) { ui->comboBox->setCurrentText("3 pages"); } if(refreshInt == 4) { ui->comboBox->setCurrentText("4 pages"); } if(refreshInt == 5) { ui->comboBox->setCurrentText("5 pages"); } if(refreshInt == 6) { ui->comboBox->setCurrentText("6 pages"); } } // Sleep mode timeout string_checkconfig_ro(".config/15-sleep_timeout/config"); if(checkconfig_str_val == "") { // Set default option, '15 minutes' string_writeconfig(".config/15-sleep_timeout/config", "15"); ui->sleepTimeoutComboBox->setCurrentText("15 minutes"); } else { int sleepTimeoutInt = checkconfig_str_val.toInt(); if(sleepTimeoutInt == -1) { ui->sleepTimeoutComboBox->setCurrentText("Never"); } if(sleepTimeoutInt == 2) { ui->sleepTimeoutComboBox->setCurrentText("2 minutes"); } if(sleepTimeoutInt == 5) { ui->sleepTimeoutComboBox->setCurrentText("5 minutes"); } if(sleepTimeoutInt == 10) { ui->sleepTimeoutComboBox->setCurrentText("10 minutes"); } if(sleepTimeoutInt == 15) { ui->sleepTimeoutComboBox->setCurrentText("15 minutes"); } if(sleepTimeoutInt == 30) { ui->sleepTimeoutComboBox->setCurrentText("30 minutes"); } if(sleepTimeoutInt == 60) { ui->sleepTimeoutComboBox->setCurrentText("60 minutes"); } } // Lock screen if(checkconfig(".config/12-lockscreen/config") == true) { ui->enableLockscreenCheckBox->click(); } // Global reading settings if(checkconfig(".config/16-global_reading_settings/config") == true) { ui->globalReadingSettingsCheckBox->click(); } // DPI checkbox string_checkconfig(".config/09-dpi/config"); // Check if the string is a number; else, we don't check the check box if(checkconfig_str_val == "false") { string_writeconfig(".config/09-dpi/config-enabled", "false"); } else { string_writeconfig(".config/09-dpi/config-enabled", "true"); } if(checkconfig(".config/09-dpi/config-enabled") == true) { ui_not_user_change = true; ui->enableUiScalingCheckBox->click(); } if(checkconfig("/opt/inkbox_genuine") == true) { // Enforcing security policy if the user has not rooted the device if(checkconfig("/external_root/opt/root/rooted") == true) { ui->requestLeaseBtn->show(); ui->label_4->show(); ui->label_3->show(); ui->line_3->show(); } else { ui->requestLeaseBtn->hide(); ui->label_4->hide(); ui->label_3->hide(); ui->line_3->hide(); } ui->securityLabel->show(); ui->line_2->show(); ui->enableLockscreenCheckBox->show(); ui->setPasscodeBtn->show(); ui->setPasscodeLabel->show(); ui->usbmsBtn->show(); ui->label_5->show(); ui->label_6->show(); ui->line_7->show(); ui->okBtn->setText("OK"); } else { ui->label_8->setText("Reset InkBox"); } if(global::device::isWifiAble == false) { ui->checkOtaUpdateLabel->hide(); ui->checkOtaUpdateBtn->hide(); ui->checkOtaUpdateLabel->deleteLater(); ui->checkOtaUpdateBtn->deleteLater(); ui->checkOtaUpdateGridLayout->deleteLater(); } QFile stylesheetFile(":/resources/eink.qss"); stylesheetFile.open(QFile::ReadOnly); this->setStyleSheet(stylesheetFile.readAll()); stylesheetFile.close(); } settings::~settings() { delete ui; } void settings::on_okBtn_clicked() { // Prevent potential unknown damage launching via shell script this could do if(launch_sh == true) { if(ui_enable_changed == true) { ui_enable_changed = false; global::settings::settingsRebootDialog = true; generalDialogWindow = new generalDialog(); generalDialogWindow->setAttribute(Qt::WA_DeleteOnClose); generalDialogWindow->show(); } else { QProcess process; process.startDetached("inkbox.sh", QStringList()); qApp->quit(); } } else { QProcess process; process.startDetached("inkbox", QStringList()); qApp->quit(); } } void settings::on_aboutBtn_clicked() { if(checkconfig("/opt/inkbox_genuine") == true) { QString aboutmsg = "InkBox is an open-source, Qt-based eBook reader. It aims to bring you the latest Qt features while being also fast and responsive."; string_checkconfig_ro("/external_root/opt/isa/version"); aboutmsg.append("\n\nInkBox "); aboutmsg.append(checkconfig_str_val); QMessageBox::information(this, tr("Information"), aboutmsg); } else { QMessageBox::information(this, tr("About"), tr("InkBox is an open-source Qt-based eBook reader. It aims to bring you the latest Qt features while being also fast and responsive.")); } } void settings::on_demoCheckBox_toggled(bool checked) { // Write to config file if(checked == true) { checked_box = true; writeconfig(".config/01-demo/config", "InkboxChangeLabel="); } else { checked_box = false; writeconfig(".config/01-demo/config", "InkboxChangeLabel="); } } void settings::on_clockCheckBox_toggled(bool checked) { // Write to config file if(checked == true) { checked_box = true; writeconfig(".config/02-clock/config", "ClockShowSeconds="); } else { checked_box = false; writeconfig(".config/02-clock/config", "ClockShowSeconds="); } } void settings::on_quoteCheckBox_toggled(bool checked) { if(checked == true) { checked_box = true; writeconfig(".config/05-quote/config", "DisableQuote="); } else { checked_box = false; writeconfig(".config/05-quote/config", "DisableQuote="); } } void settings::on_requestLeaseBtn_clicked() { QString prog ("chroot"); QStringList args; args << "/external_root" << "/usr/sbin/dhclient"; QProcess *proc = new QProcess(); proc->start(prog, args); proc->waitForFinished(); proc->deleteLater(); } void settings::on_usbmsBtn_clicked() { string_writeconfig("/tmp/in_usbms", "true"); QTimer::singleShot(1500, this, SLOT(brightnessDown())); QString umount_prog ("umount"); QStringList umount_args; umount_args << "/dev/loop0"; QProcess *umount_proc = new QProcess(); umount_proc->start(umount_prog, umount_args); umount_proc->waitForFinished(); umount_proc->deleteLater(); QString rmmod ("rmmod"); QStringList rmmod_args; rmmod_args << "g_ether.ko"; QProcess *rmmod_proc = new QProcess(); rmmod_proc->start(rmmod, rmmod_args); rmmod_proc->waitForFinished(); rmmod_proc->deleteLater(); QString prog ("insmod"); QStringList args; args << "/external_root/modules/arcotg_udc.ko"; QProcess *proc = new QProcess(); proc->start(prog, args); proc->waitForFinished(); proc->deleteLater(); QString prog_1 ("insmod"); QStringList args_1; args_1 << "/external_root/modules/g_mass_storage.ko" << "file=/external_root/opt/storage/onboard" << "removable=y" << "stall=0"; QProcess *proc_1 = new QProcess(); proc_1->start(prog_1, args_1); proc_1->waitForFinished(); proc_1->deleteLater(); usbmsWindow = new usbms_splash(); usbmsWindow->setAttribute(Qt::WA_DeleteOnClose); usbmsWindow->setGeometry(QRect(QPoint(0,0), screen()->geometry ().size())); usbmsWindow->show(); QTimer *usbms_t = new QTimer(this); usbms_t->setInterval(1000); connect(usbms_t, &QTimer::timeout, [&]() { QString prog ("mass_storage.sh"); QStringList args; QProcess *proc = new QProcess(); proc->start(prog, args); proc->waitForFinished(); proc->deleteLater(); QFile modules("/tmp/usbevent"); modules.open(QIODevice::ReadWrite); QTextStream in (&modules); const QString content = in.readAll(); string contentstr = content.toStdString(); modules.close(); if(contentstr.find("1") != std::string::npos) { QString reboot_prog ("/sbin/reboot"); QStringList reboot_args; reboot_args << "no_splash"; QProcess *reboot_proc = new QProcess(); reboot_proc->start(reboot_prog, reboot_args); reboot_proc->waitForFinished(); reboot_proc->deleteLater(); } else { ; } } ); usbms_t->start(); } // Now I know that QStackedWidgets exist... ;p void settings::on_previousBtn_clicked() { settings_page = settings_page - 1; if(settings_page == 1) { ui->stackedWidget->setCurrentIndex(0); if(checkconfig("/opt/inkbox_genuine") == true) { // Enforcing security policy if the user has not rooted the device if(checkconfig("/external_root/opt/root/rooted") == true) { ui->requestLeaseBtn->show(); ui->label_4->show(); ui->label_3->show(); ui->line_3->show(); } else { ui->requestLeaseBtn->hide(); ui->label_4->hide(); ui->label_3->hide(); ui->line_3->hide(); } } } else { if(settings_page == 2) { ui->stackedWidget->setCurrentIndex(1); if(checkconfig("/opt/inkbox_genuine") == true) { if(checkconfig("/mnt/onboard/onboard/.inkbox/can_update") == true) { ui->updateBtn->show(); ui->updateLabel->show(); } else { ui->updateBtn->show(); ui->updateLabel->show(); } } } if(settings_page <= 0) { // Prevent unwanted accesses settings_page = settings_page + 1; } } } void settings::on_nextBtn_clicked() { settings_page = settings_page + 1; if(settings_page == 2) { ui->stackedWidget->setCurrentIndex(1); if(checkconfig("/opt/inkbox_genuine") == true) { // Enforcing security policy if the user has not rooted the device if(checkconfig("/external_root/opt/root/rooted") == true) { ui->requestLeaseBtn->show(); ui->label_4->show(); ui->label_3->show(); ui->line_3->show(); } else { ui->requestLeaseBtn->hide(); ui->label_4->hide(); ui->label_3->hide(); ui->line_3->hide(); } if(checkconfig("/mnt/onboard/onboard/.inkbox/can_update") == true) { ui->updateBtn->show(); ui->updateLabel->show(); } } } if(settings_page >= 3) { settings_page = settings_page - 1; } } void settings::on_wordsNumber_valueChanged(int arg1) { QString number = QString::number(arg1); string number_str = number.toStdString(); string_writeconfig(".config/07-words_number/config", number_str); } void settings::on_updateBtn_clicked() { string_writeconfig("/mnt/onboard/onboard/.inkbox/can_really_update", "true"); string_writeconfig("/external_root/opt/update/will_update", "true"); string_writeconfig("/external_root/boot/flags/WILL_UPDATE", "true"); QString prog ("/sbin/reboot"); QStringList args; QProcess *proc = new QProcess(); proc->start(prog, args); proc->waitForFinished(); proc->deleteLater(); } void settings::on_darkModeCheckBox_toggled(bool checked) { if(checked == true) { string_writeconfig(".config/10-dark_mode/config", "true"); string_writeconfig("/tmp/invertScreen", "y"); } else { string_writeconfig(".config/10-dark_mode/config", "false"); string_writeconfig("/tmp/invertScreen", "n"); } } void settings::on_uiScalingSlider_valueChanged(int value) { if(value == 0) { string_checkconfig_ro("/opt/inkbox_device"); if(checkconfig_str_val == "n705\n") { string_writeconfig(".config/09-dpi/config", "187"); } if(checkconfig_str_val == "n905\n") { string_writeconfig(".config/09-dpi/config", "160"); } if(checkconfig_str_val == "n613\n") { string_writeconfig(".config/09-dpi/config", "195"); } if(checkconfig_str_val == "n873\n") { string_writeconfig(".config/09-dpi/config", "285"); } } if(value == 1) { string_checkconfig_ro("/opt/inkbox_device"); if(checkconfig_str_val == "n705\n") { string_writeconfig(".config/09-dpi/config", "214"); } if(checkconfig_str_val == "n905\n") { string_writeconfig(".config/09-dpi/config", "187"); } if(checkconfig_str_val == "n613\n") { string_writeconfig(".config/09-dpi/config", "210"); } if(checkconfig_str_val == "n873\n") { string_writeconfig(".config/09-dpi/config", "300"); } } if(value == 2) { string_checkconfig_ro("/opt/inkbox_device"); if(checkconfig_str_val == "n705\n") { string_writeconfig(".config/09-dpi/config", "227"); } if(checkconfig_str_val == "n905\n") { string_writeconfig(".config/09-dpi/config", "200"); } if(checkconfig_str_val == "n613\n") { string_writeconfig(".config/09-dpi/config", "225"); } if(checkconfig_str_val == "n873\n") { string_writeconfig(".config/09-dpi/config", "315"); } } // Making sense for the user value = value + 1; QString value_qstr = QString::number(value); ui->uiScaleNumberLabel->setText(value_qstr); if(not_user_change == true) { launch_sh = false; // If value is changed, it will launch inkbox.sh detached when "OK" is pressed. not_user_change = false; } else { // This is supposed to happen when the user clicks the slider, and not the software. Refer to setValue() methods for uiScalingSlider in main(). launch_sh = true; } } void settings::on_menuBarCheckBox_toggled(bool checked) { if(checked == true) { checked_box = true; writeconfig(".config/11-menubar/sticky", "StickyMenuBar="); } else { checked_box = false; writeconfig(".config/11-menubar/sticky", "StickyMenuBar="); } } void settings::on_comboBox_currentIndexChanged(const QString &arg1) { if(arg1 == "Every page") { string_writeconfig(".config/04-book/refresh", "0"); } if(arg1 == "1 page") { string_writeconfig(".config/04-book/refresh", "1"); } if(arg1 == "2 pages") { string_writeconfig(".config/04-book/refresh", "2"); } if(arg1 == "3 pages") { string_writeconfig(".config/04-book/refresh", "3"); } if(arg1 == "4 pages") { string_writeconfig(".config/04-book/refresh", "4"); } if(arg1 == "5 pages") { string_writeconfig(".config/04-book/refresh", "5"); } if(arg1 == "6 pages") { string_writeconfig(".config/04-book/refresh", "6"); } if(arg1 == "Never refresh") { string_writeconfig(".config/04-book/refresh", "-1"); } } void settings::on_resetBtn_clicked() { // We write to a temporary file to show a "Reset" prompt string_writeconfig("/inkbox/resetDialog", "true"); // We show the dialog generalDialogWindow = new generalDialog(); generalDialogWindow->setAttribute(Qt::WA_DeleteOnClose); generalDialogWindow->show(); } void settings::on_setPasscodeBtn_clicked() { string_writeconfig("/tmp/setPasscode", "true"); QProcess process; process.startDetached("lockscreen", QStringList()); qApp->quit(); } void settings::on_enableLockscreenCheckBox_toggled(bool checked) { if(checked == true) { string_writeconfig(".config/12-lockscreen/config", "true"); } else { string_writeconfig(".config/12-lockscreen/config", "false"); } } void settings::on_enableUiScalingCheckBox_toggled(bool checked) { if(checked == true) { // Writing default value depending on the device string_checkconfig_ro("/opt/inkbox_device"); if(checkconfig_str_val == "n705\n") { string_writeconfig(".config/09-dpi/config", "187"); } else if(checkconfig_str_val == "n905\n") { string_writeconfig(".config/09-dpi/config", "160"); } else if(checkconfig_str_val == "n613\n") { string_writeconfig(".config/09-dpi/config", "195"); } else if(checkconfig_str_val == "n873\n") { string_writeconfig(".config/09-dpi/config", "285"); } else { string_writeconfig(".config/09-dpi/config", "187"); } string_writeconfig(".config/09-dpi/config-enabled", "true"); ui->uiScaleNumberLabel->show(); ui->uiScalingSlider->show(); ui->uiScalingLabel->show(); launch_sh = true; if(ui_not_user_change == true) { ui_enable_changed = false; } else { ui_enable_changed = true; } } else { string_writeconfig(".config/09-dpi/config", "false"); string_writeconfig(".config/09-dpi/config-enabled", "false"); ui->uiScaleNumberLabel->hide(); ui->uiScalingSlider->hide(); ui->uiScalingLabel->hide(); launch_sh = true; ui_enable_changed = true; } } void settings::on_showSystemInfoBtn_clicked() { getSystemInfo(); global::usbms::usbmsDialog = false; global::text::textBrowserContents = global::systemInfoText; global::text::textBrowserDialog = true; // Show a system info dialog generalDialogWindow = new generalDialog(); generalDialogWindow->setAttribute(Qt::WA_DeleteOnClose); generalDialogWindow->show(); } void settings::on_pageSizeWidthSpinBox_valueChanged(int arg1) { std::string value = std::to_string(arg1); string_writeconfig(".config/13-epub_page_size/width", value); string_writeconfig(".config/13-epub_page_size/set", "true"); } void settings::on_pageSizeHeightSpinBox_valueChanged(int arg1) { std::string value = std::to_string(arg1); string_writeconfig(".config/13-epub_page_size/height", value); string_writeconfig(".config/13-epub_page_size/set", "true"); } void settings::on_readerScrollBarCheckBox_toggled(bool checked) { if(checked == true) { string_writeconfig(".config/14-reader_scrollbar/config", "true"); } else { string_writeconfig(".config/14-reader_scrollbar/config", "false"); } } void settings::on_sleepTimeoutComboBox_currentIndexChanged(const QString &arg1) { setDefaultWorkDir(); if(arg1 == "Never") { string_writeconfig(".config/15-sleep_timeout/config", "-1"); } if(arg1 == "2 minutes") { string_writeconfig(".config/15-sleep_timeout/config", "2"); } if(arg1 == "5 minutes") { string_writeconfig(".config/15-sleep_timeout/config", "5"); } if(arg1 == "10 minutes") { string_writeconfig(".config/15-sleep_timeout/config", "10"); } if(arg1 == "15 minutes") { string_writeconfig(".config/15-sleep_timeout/config", "15"); } if(arg1 == "30 minutes") { string_writeconfig(".config/15-sleep_timeout/config", "30"); } if(arg1 == "60 minutes") { string_writeconfig(".config/15-sleep_timeout/config", "60"); } } void settings::brightnessDown() { cinematicBrightness(0, 1); } void settings::on_globalReadingSettingsCheckBox_toggled(bool checked) { if(checked == true) { checked_box = true; writeconfig(".config/16-global_reading_settings/config", "GlobalReadingSettings="); } else { checked_box = false; writeconfig(".config/16-global_reading_settings/config", "GlobalReadingSettings="); } } void settings::on_checkOtaUpdateBtn_clicked() { launchOtaUpdater(); } void settings::openUpdateDialog() { global::mainwindow::updateDialog = true; // Write to a temporary file to show an "Update" prompt string_writeconfig("/inkbox/updateDialog", "true"); // Show the dialog generalDialogWindow = new generalDialog(this); generalDialogWindow->setAttribute(Qt::WA_DeleteOnClose); connect(generalDialogWindow, SIGNAL(showToast(QString)), SLOT(showToastNative(QString))); connect(generalDialogWindow, SIGNAL(closeIndefiniteToast()), SLOT(closeIndefiniteToastNative())); generalDialogWindow->show(); QApplication::processEvents(); } void settings::launchOtaUpdater() { otaManagerWindow = new otaManager(this); connect(otaManagerWindow, SIGNAL(canOtaUpdate(bool)), SLOT(openUpdateDialogOTA(bool))); otaManagerWindow->setAttribute(Qt::WA_DeleteOnClose); } void settings::openUpdateDialogOTA(bool open) { if(open == true) { global::otaUpdate::isUpdateOta = true; openUpdateDialog(); } else { ; } } void settings::showToastNative(QString messageToDisplay) { emit showToast(messageToDisplay); } void settings::closeIndefiniteToastNative() { emit closeIndefiniteToast(); }