quill/settings.cpp

958 lines
30 KiB
C++
Raw Normal View History

2021-03-25 05:00:19 -07:00
#include "settings.h"
#include "ui_settings.h"
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "functions.h"
2021-03-25 05:00:19 -07:00
#include <QFile>
#include <QMessageBox>
#include <QSettings>
#include <QWidget>
#include <iostream>
#include <fstream>
#include <streambuf>
#include <string>
#include <QProcess>
#include <QTimer>
#include <QIcon>
#include <QScreen>
2021-03-25 05:00:19 -07:00
using namespace std;
settings::settings(QWidget *parent) :
QWidget(parent),
ui(new Ui::settings)
{
ui->setupUi(this);
ui->setPasscodeBtn->setProperty("type", "borderless");
2021-03-25 05:00:19 -07:00
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");
2021-08-25 10:16:41 -07:00
ui->checkOtaUpdateBtn->setProperty("type", "borderless");
2021-03-25 05:00:19 -07:00
ui->previousBtn->setProperty("type", "borderless");
ui->nextBtn->setProperty("type", "borderless");
2021-11-14 18:22:58 -08:00
ui->repackBtn->setProperty("type", "borderless");
ui->aboutBtn->setStyleSheet("font-size: 9pt");
2021-03-25 05:00:19 -07:00
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");
2021-08-25 10:16:41 -07:00
ui->checkOtaUpdateBtn->setStyleSheet("font-size: 9pt");
2021-03-30 05:24:13 -07:00
ui->comboBox->setStyleSheet("font-size: 9pt");
ui->sleepTimeoutComboBox->setStyleSheet("font-size: 9pt");
ui->setPasscodeBtn->setStyleSheet("font-size: 9pt");
2021-11-14 18:22:58 -08:00
ui->repackBtn->setStyleSheet("font-size: 9pt");
2021-03-25 05:00:19 -07:00
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();
2021-03-25 05:00:19 -07:00
// Variables
2021-08-29 12:05:07 -07:00
defineDefaultPageSize(0);
defineDefaultPageSize(1);
2021-03-25 05:00:19 -07:00
// 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");
2022-01-27 12:16:48 -08:00
if(checkconfig_str_val == "n705\n" or checkconfig_str_val == "n905\n" or checkconfig_str_val == "n613\n" or checkconfig_str_val == "n236\n") {
if(checkconfig(".config/10-dark_mode/config") == true) {
ui->darkModeCheckBox->click();
}
}
else {
ui->darkModeCheckBox->hide();
ui->darkModeCheckBox->deleteLater();
2021-03-25 05:00:19 -07:00
}
// Words number
2021-03-25 05:00:19 -07:00
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();
}
2021-03-25 05:00:19 -07:00
// Scaling
string_checkconfig(".config/09-dpi/config");
if(checkconfig_str_val == "") {
;
}
else {
int dpi_number = checkconfig_str_val.toInt();
2021-06-26 07:09:51 -07:00
// Checking if it's a Mini, Touch or a Glo
2021-05-16 19:28:08 -07:00
string_checkconfig_ro("/opt/inkbox_device");
2021-04-09 17:54:20 -07:00
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);
}
2021-03-25 05:00:19 -07:00
}
2021-06-26 07:09:51 -07:00
else if(checkconfig_str_val == "n905\n") {
2021-04-09 17:54:20 -07:00
if(dpi_number == 160) {
ui->uiScalingSlider->setValue(0);
}
if(dpi_number == 187) {
ui->uiScalingSlider->setValue(1);
}
if(dpi_number == 200) {
ui->uiScalingSlider->setValue(2);
}
2021-03-25 05:00:19 -07:00
}
2022-01-27 12:16:48 -08:00
else if(checkconfig_str_val == "n613\n" or checkconfig_str_val == "n236\n") {
2021-06-26 07:09:51 -07:00
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);
}
}
2021-04-09 17:54:20 -07:00
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);
}
2021-03-25 05:00:19 -07:00
}
}
2021-03-30 05:24:13 -07:00
// Refresh
string_checkconfig_ro(".config/04-book/refresh");
2021-03-30 05:24:13 -07:00
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");
2021-03-30 05:24:13 -07:00
}
}
// Lock screen
2021-04-04 20:31:15 -07:00
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();
}
2021-10-17 19:31:44 -07:00
// Encrypted storage
if(checkconfig(".config/18-encrypted_storage/status") == true) {
ui->enableEncryptedStorageCheckBox->click();
}
2021-10-18 05:46:27 -07:00
else {
// Next interaction will be by the user
enableEncryptedStorageUserChange = true;
}
2021-11-14 19:23:09 -08:00
if(getEncFSStatus() == false) {
2021-11-14 18:22:58 -08:00
ui->repackLabel->hide();
ui->repackBtn->hide();
}
2021-10-17 19:31:44 -07:00
// DPI checkbox
string_checkconfig(".config/09-dpi/config");
2021-04-07 04:44:24 -07:00
// Check if the string is a number; else, we don't check the check box
if(checkconfig_str_val == "false") {
2021-04-06 18:39:08 -07:00
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();
}
2021-03-25 05:00:19 -07:00
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();
2021-03-25 05:00:19 -07:00
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");
}
2021-03-25 05:00:19 -07:00
2021-08-25 10:16:41 -07:00
if(global::device::isWifiAble == false) {
ui->checkOtaUpdateLabel->hide();
ui->checkOtaUpdateBtn->hide();
ui->checkOtaUpdateLabel->deleteLater();
ui->checkOtaUpdateBtn->deleteLater();
2021-08-25 10:16:41 -07:00
ui->checkOtaUpdateGridLayout->deleteLater();
}
2021-03-25 05:00:19 -07:00
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;
2021-05-01 12:53:52 -07:00
global::settings::settingsRebootDialog = true;
generalDialogWindow = new generalDialog();
generalDialogWindow->setAttribute(Qt::WA_DeleteOnClose);
generalDialogWindow->show();
}
else {
QProcess process;
process.startDetached("inkbox.sh", QStringList());
qApp->quit();
}
2021-03-25 05:00:19 -07:00
}
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.";
2021-03-25 05:00:19 -07:00
string_checkconfig_ro("/external_root/opt/isa/version");
aboutmsg.append("\n\nInkBox ");
2021-03-25 05:00:19 -07:00
aboutmsg.append(checkconfig_str_val);
QMessageBox::information(this, tr("Information"), aboutmsg);
}
else {
2021-06-05 15:54:38 -07:00
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."));
2021-03-25 05:00:19 -07:00
}
}
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();
2021-08-29 12:05:07 -07:00
proc->deleteLater();
2021-03-25 05:00:19 -07:00
}
void settings::on_usbmsBtn_clicked()
{
2021-09-26 19:05:45 -07:00
usbms_launch();
2021-03-25 05:00:19 -07:00
}
2021-04-02 18:06:15 -07:00
// Now I know that QStackedWidgets exist... ;p
2021-03-25 05:00:19 -07:00
void settings::on_previousBtn_clicked()
{
settings_page = settings_page - 1;
if(settings_page == 1) {
2021-03-27 22:14:37 -07:00
ui->stackedWidget->setCurrentIndex(0);
2021-03-25 05:00:19 -07:00
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) {
2021-03-27 22:14:37 -07:00
ui->stackedWidget->setCurrentIndex(1);
2021-03-25 05:00:19 -07:00
if(checkconfig("/opt/inkbox_genuine") == true) {
if(checkconfig("/mnt/onboard/onboard/.inkbox/can_update") == true) {
ui->updateBtn->show();
ui->updateLabel->show();
}
2021-03-27 22:14:37 -07:00
else {
ui->updateBtn->show();
ui->updateLabel->show();
}
2021-03-25 05:00:19 -07:00
}
}
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) {
2021-03-27 22:14:37 -07:00
ui->stackedWidget->setCurrentIndex(1);
2021-03-25 05:00:19 -07:00
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");
2021-05-28 05:36:24 -07:00
QString prog ("/sbin/reboot");
2021-03-25 05:00:19 -07:00
QStringList args;
QProcess *proc = new QProcess();
proc->start(prog, args);
proc->waitForFinished();
2021-08-29 12:05:07 -07:00
proc->deleteLater();
2021-03-25 05:00:19 -07:00
}
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) {
2021-05-16 19:28:08 -07:00
string_checkconfig_ro("/opt/inkbox_device");
2021-04-09 17:54:20 -07:00
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");
}
2022-01-27 12:16:48 -08:00
if(checkconfig_str_val == "n613\n" or checkconfig_str_val == "n236\n") {
2021-06-26 07:09:51 -07:00
string_writeconfig(".config/09-dpi/config", "195");
}
if(checkconfig_str_val == "n873\n") {
string_writeconfig(".config/09-dpi/config", "285");
}
2021-03-25 05:00:19 -07:00
}
if(value == 1) {
2021-05-16 19:28:08 -07:00
string_checkconfig_ro("/opt/inkbox_device");
2021-04-09 17:54:20 -07:00
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");
}
2022-01-27 12:16:48 -08:00
if(checkconfig_str_val == "n613\n" or checkconfig_str_val == "n236\n") {
2021-06-26 07:09:51 -07:00
string_writeconfig(".config/09-dpi/config", "210");
}
if(checkconfig_str_val == "n873\n") {
string_writeconfig(".config/09-dpi/config", "300");
}
2021-03-25 05:00:19 -07:00
}
if(value == 2) {
2021-05-16 19:28:08 -07:00
string_checkconfig_ro("/opt/inkbox_device");
2021-04-09 17:54:20 -07:00
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");
}
2022-01-27 12:16:48 -08:00
if(checkconfig_str_val == "n613\n" or checkconfig_str_val == "n236\n") {
2021-06-26 07:09:51 -07:00
string_writeconfig(".config/09-dpi/config", "225");
}
if(checkconfig_str_val == "n873\n") {
string_writeconfig(".config/09-dpi/config", "315");
}
2021-03-25 05:00:19 -07:00
}
// 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=");
}
}
2021-03-30 05:24:13 -07:00
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) {
2021-04-10 08:34:11 -07:00
// Writing default value depending on the device
2021-05-16 19:28:08 -07:00
string_checkconfig_ro("/opt/inkbox_device");
2021-04-10 08:34:11 -07:00
if(checkconfig_str_val == "n705\n") {
string_writeconfig(".config/09-dpi/config", "187");
}
else if(checkconfig_str_val == "n905\n") {
2021-04-10 08:34:11 -07:00
string_writeconfig(".config/09-dpi/config", "160");
}
2022-01-27 12:16:48 -08:00
else if(checkconfig_str_val == "n613\n" or checkconfig_str_val == "n236\n") {
2021-06-26 07:09:51 -07:00
string_writeconfig(".config/09-dpi/config", "195");
}
else if(checkconfig_str_val == "n873\n") {
string_writeconfig(".config/09-dpi/config", "285");
}
2021-04-10 08:34:11 -07:00
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();
2021-06-29 11:42:51 -07:00
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");
}
}
2021-06-29 12:28:54 -07:00
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=");
}
}
2021-08-25 10:16:41 -07:00
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()));
2021-08-25 10:16:41 -07:00
generalDialogWindow->show();
QApplication::processEvents();
}
void settings::launchOtaUpdater() {
global::toast::modalToast = true;
global::toast::indefiniteToast = true;
emit showToast("Checking for updates");
2021-08-25 10:16:41 -07:00
otaManagerWindow = new otaManager(this);
connect(otaManagerWindow, SIGNAL(canOtaUpdate(bool)), SLOT(openUpdateDialogOTA(bool)));
otaManagerWindow->setAttribute(Qt::WA_DeleteOnClose);
}
void settings::openUpdateDialogOTA(bool open) {
emit closeIndefiniteToast();
2021-08-25 10:16:41 -07:00
if(open == true) {
global::otaUpdate::isUpdateOta = true;
openUpdateDialog();
}
else {
2021-09-05 06:52:35 -07:00
emit showToast("No update available");
2021-08-25 10:16:41 -07:00
}
}
void settings::showToastNative(QString messageToDisplay) {
emit showToast(messageToDisplay);
2021-08-25 10:16:41 -07:00
}
void settings::closeIndefiniteToastNative() {
emit closeIndefiniteToast();
2021-08-25 10:16:41 -07:00
}
2021-09-26 19:05:45 -07:00
void settings::usbms_launch()
{
global::usbms::launchUsbms = true;
usbmsWindow = new usbms_splash();
usbmsWindow->setAttribute(Qt::WA_DeleteOnClose);
usbmsWindow->setGeometry(QRect(QPoint(0,0), screen()->geometry ().size()));
usbmsWindow->show();
}
void settings::quit_restart() {
// If existing, cleaning bookconfig_mount mountpoint
string_writeconfig("/opt/ibxd", "bookconfig_unmount\n");
// Restarting InkBox
QProcess process;
process.startDetached("inkbox", QStringList());
qApp->quit();
}
2021-10-17 19:31:44 -07:00
void settings::on_enableEncryptedStorageCheckBox_toggled(bool checked)
{
if(checked == true) {
if(enableEncryptedStorageUserChange == true) {
setDefaultWorkDir();
string_writeconfig(".config/18-encrypted_storage/initial_setup_done", "false");
string_writeconfig(".config/18-encrypted_storage/status", "true");
if(QFile::exists(".config/18-encrypted_storage/storage_list")) {
QFile::remove(".config/18-encrypted_storage/storage_list");
}
global::settings::settingsRebootDialog = true;
2021-10-18 05:46:27 -07:00
global::encfs::enableStorageEncryptionDialog = true;
2021-10-17 19:31:44 -07:00
generalDialogWindow = new generalDialog(this);
generalDialogWindow->setAttribute(Qt::WA_DeleteOnClose);
generalDialogWindow->show();
}
else {
enableEncryptedStorageUserChange = true;
}
}
else {
global::encfs::disableStorageEncryptionDialog = true;
generalDialogWindow = new generalDialog(this);
generalDialogWindow->setAttribute(Qt::WA_DeleteOnClose);
connect(generalDialogWindow, SIGNAL(cancelDisableStorageEncryption()), SLOT(cancelDisableStorageEncryption()));
connect(generalDialogWindow, SIGNAL(disableStorageEncryption()), SLOT(disableStorageEncryption()));
generalDialogWindow->show();
}
}
void settings::disableStorageEncryption() {
setDefaultWorkDir();
string_writeconfig("/external_root/run/encfs_stop_cleanup", "true");
2021-10-17 19:31:44 -07:00
string_writeconfig("/opt/ibxd", "encfs_stop\n");
QThread::msleep(5000);
string_writeconfig(".config/18-encrypted_storage/status", "false");
QFile::remove(".config/18-encrypted_storage/initial_setup_done");
QFile::remove(".config/18-encrypted_storage/storage_list");
QFile::remove("/mnt/onboard/onboard/data.encfs");
QDir dumpDir("/mnt/onboard/onboard/encfs-dropbox");
dumpDir.removeRecursively();
QDir decDir("/mnt/onboard/onboard/encfs-decrypted");
decDir.removeRecursively();
global::settings::settingsRebootDialog = true;
generalDialogWindow = new generalDialog(this);
generalDialogWindow->setAttribute(Qt::WA_DeleteOnClose);
generalDialogWindow->show();
}
void settings::cancelDisableStorageEncryption() {
enableEncryptedStorageUserChange = false;
ui->enableEncryptedStorageCheckBox->click();
}
2021-11-14 18:22:58 -08:00
void settings::on_repackBtn_clicked()
{
2021-11-14 19:23:09 -08:00
QDir dir("/mnt/onboard/onboard/encfs-dropbox");
2021-11-14 18:22:58 -08:00
if(dir.isEmpty()) {
global::encfs::errorNoBooksInDropboxDialog = true;
generalDialogWindow = new generalDialog(this);
generalDialogWindow->setAttribute(Qt::WA_DeleteOnClose);
generalDialogWindow->show();
}
else {
string_writeconfig("/external_root/run/encfs_repack", "true");
2021-11-14 19:23:09 -08:00
quit_restart();
2021-11-14 18:22:58 -08:00
}
}