2021-03-25 05:00:19 -07:00
# include "settings.h"
# include "ui_settings.h"
# include "mainwindow.h"
# include "ui_mainwindow.h"
2021-04-05 06:50:58 -07:00
# 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>
2021-04-30 20:55:38 -07:00
# include <QScreen>
2021-04-30 15:19:48 -07:00
2021-03-25 05:00:19 -07:00
using namespace std ;
settings : : settings ( QWidget * parent ) :
QWidget ( parent ) ,
ui ( new Ui : : settings )
{
ui - > setupUi ( this ) ;
2021-04-04 18:02:08 -07:00
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 " ) ;
2021-03-31 05:38:59 -07:00
ui - > resetBtn - > setProperty ( " type " , " borderless " ) ;
2021-06-08 05:03:46 -07:00
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 " ) ;
2021-03-26 21:10:49 -07:00
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 " ) ;
2021-03-31 05:38:59 -07:00
ui - > resetBtn - > setStyleSheet ( " font-size: 9pt " ) ;
2021-06-08 05:03:46 -07:00
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 " ) ;
2021-06-28 16:57:40 -07:00
ui - > sleepTimeoutComboBox - > setStyleSheet ( " font-size: 9pt " ) ;
2021-04-04 18:02:08 -07:00
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 ( ) ;
2021-04-04 20:15:24 -07:00
ui - > enableLockscreenCheckBox - > hide ( ) ;
ui - > setPasscodeBtn - > hide ( ) ;
ui - > setPasscodeLabel - > hide ( ) ;
2021-04-05 12:35:25 -07:00
ui - > securityLabel - > hide ( ) ;
ui - > line_2 - > hide ( ) ;
ui - > uiScaleNumberLabel - > hide ( ) ;
ui - > uiScalingSlider - > hide ( ) ;
ui - > uiScalingLabel - > hide ( ) ;
2021-03-25 05:00:19 -07:00
2021-06-20 19:57:10 -07:00
// Variables
2021-08-29 12:05:07 -07:00
defineDefaultPageSize ( 0 ) ;
defineDefaultPageSize ( 1 ) ;
2021-06-20 19:57:10 -07:00
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 ( ) ;
}
2021-07-10 22:08:38 -07:00
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 " ) {
2021-07-10 22:08:38 -07:00
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
}
2021-03-26 21:10:49 -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 ) ;
}
2021-03-26 21:10:49 -07:00
2021-06-20 19:57:10 -07:00
// 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 ) ;
}
2021-06-27 10:28:41 -07:00
// QTextEdit scroll bar in Reader framework
if ( checkconfig ( " .config/14-reader_scrollbar/config " ) = = true ) {
ui - > readerScrollBarCheckBox - > click ( ) ;
}
2021-03-26 21:10:49 -07:00
// 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 ) ;
}
}
2021-07-10 22:08:38 -07:00
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
2021-06-28 16:57:40 -07:00
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 " ) ;
}
2021-06-28 16:57:40 -07:00
}
// 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
}
}
2021-04-04 20:15:24 -07:00
// Lock screen
2021-04-04 20:31:15 -07:00
if ( checkconfig ( " .config/12-lockscreen/config " ) = = true ) {
2021-04-04 20:15:24 -07:00
ui - > enableLockscreenCheckBox - > click ( ) ;
}
2021-08-05 21:50:28 -07:00
// 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
2021-04-05 12:35:25 -07:00
// DPI checkbox
2021-04-06 19:23:23 -07:00
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
2021-04-06 19:23:23 -07:00
if ( checkconfig_str_val = = " false " ) {
2021-04-06 18:39:08 -07:00
string_writeconfig ( " .config/09-dpi/config-enabled " , " false " ) ;
}
2021-04-06 19:23:23 -07:00
else {
string_writeconfig ( " .config/09-dpi/config-enabled " , " true " ) ;
}
if ( checkconfig ( " .config/09-dpi/config-enabled " ) = = true ) {
2021-04-05 12:35:25 -07:00
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 ( ) ;
}
2021-04-05 12:35:25 -07:00
ui - > securityLabel - > show ( ) ;
ui - > line_2 - > show ( ) ;
2021-04-04 20:15:24 -07:00
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 " ) ;
}
2021-04-06 10:40:43 -07:00
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 ) {
2021-08-25 10:32:33 -07:00
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 ) {
2021-04-05 12:35:25 -07:00
if ( ui_enable_changed = = true ) {
ui_enable_changed = false ;
2021-05-01 12:53:52 -07:00
global : : settings : : settingsRebootDialog = true ;
2021-04-05 12:35:25 -07:00
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 ) {
2021-05-26 05:06:50 -07:00
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 " ) ;
2021-04-06 10:40:43 -07:00
aboutmsg . append ( " \n \n InkBox " ) ;
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 " ) ;
}
2021-07-10 22:08:38 -07:00
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 " ) ;
}
2021-07-10 22:08:38 -07:00
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 " ) ;
}
2021-07-10 22:08:38 -07:00
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 ;
}
}
2021-03-26 21:10:49 -07:00
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 " ) ;
}
}
2021-03-31 05:38:59 -07:00
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 ( ) ;
}
2021-04-04 17:25:07 -07:00
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 ) {
2021-04-04 18:02:08 -07:00
string_writeconfig ( " .config/12-lockscreen/config " , " true " ) ;
2021-04-04 17:25:07 -07:00
}
else {
2021-04-04 18:02:08 -07:00
string_writeconfig ( " .config/12-lockscreen/config " , " false " ) ;
2021-04-04 17:25:07 -07:00
}
}
2021-04-05 12:35:25 -07:00
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 " ) ;
}
2021-04-30 20:19:54 -07:00
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 " ) ;
}
2021-07-10 22:08:38 -07:00
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 " ) ;
}
2021-04-05 12:35:25 -07:00
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 ;
}
}
2021-06-08 05:03:46 -07:00
void settings : : on_showSystemInfoBtn_clicked ( )
{
getSystemInfo ( ) ;
2021-06-29 11:42:51 -07:00
global : : usbms : : usbmsDialog = false ;
2021-06-08 05:03:46 -07:00
global : : text : : textBrowserContents = global : : systemInfoText ;
2021-06-14 09:24:20 -07:00
global : : text : : textBrowserDialog = true ;
// Show a system info dialog
generalDialogWindow = new generalDialog ( ) ;
generalDialogWindow - > setAttribute ( Qt : : WA_DeleteOnClose ) ;
generalDialogWindow - > show ( ) ;
2021-06-08 05:03:46 -07:00
}
2021-06-20 19:57:10 -07:00
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 " ) ;
}
2021-06-27 10:28:41 -07:00
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 " ) ;
}
}
2021-06-28 16:57:40 -07:00
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 ) ;
}
2021-08-05 21:50:28 -07:00
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 ) ;
2021-08-25 10:32:33 -07:00
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 ( ) {
2021-09-04 11:16:09 -07:00
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 ) {
2021-09-04 19:18:17 -07:00
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
}
}
2021-08-25 10:32:33 -07:00
void settings : : showToastNative ( QString messageToDisplay ) {
emit showToast ( messageToDisplay ) ;
2021-08-25 10:16:41 -07:00
}
2021-08-25 10:32:33 -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 ( ) ;
2021-11-09 19:31:54 -08:00
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
}
}