Auto book page save is on its way

This commit is contained in:
Nicolas Mailloux 2021-08-19 12:55:12 -04:00
parent b8f4da12f7
commit da2ef5232b
3 changed files with 46 additions and 13 deletions

View file

@ -29,6 +29,7 @@ namespace global {
inline bool startBatteryWatchdog; inline bool startBatteryWatchdog;
inline bool startUsbmsPrompt; inline bool startUsbmsPrompt;
inline bool bookIsEpub; inline bool bookIsEpub;
inline bool globalReadingSettings;
} }
namespace kobox { namespace kobox {
inline bool showKoboxSplash; inline bool showKoboxSplash;

View file

@ -174,14 +174,19 @@ reader::reader(QWidget *parent) :
// Calling InkBox daemon (ibxd) via FIFO interface to run bookconfig_mount // Calling InkBox daemon (ibxd) via FIFO interface to run bookconfig_mount
if(checkconfig(".config/16-global_reading_settings/config") == false) { if(checkconfig(".config/16-global_reading_settings/config") == false) {
global::reader::globalReadingSettings = false;
string_writeconfig("/opt/ibxd", "bookconfig_mount\n"); string_writeconfig("/opt/ibxd", "bookconfig_mount\n");
// Callback handler to wait until bookconfig_mount has finished execution // Callback handler to wait until bookconfig_mount has finished execution
while(true) { while(true) {
if(QFile::exists("/inkbox/bookConfigSetUp")) { if(QFile::exists("/inkbox/bookConfigSetUp")) {
setupLocalSettingsEnvironment();
break; break;
} }
} }
} }
else {
global::reader::globalReadingSettings = true;
}
// Custom settings // Custom settings
// Font // Font
@ -378,7 +383,7 @@ reader::reader(QWidget *parent) :
split_files_number = split_total; split_files_number = split_total;
split_total = split_total - 1; split_total = split_total - 1;
writeconfig_pagenumber(); writeconfig_pagenumber(false);
} }
else { else {
// Retrieve split_total from tmpfs // Retrieve split_total from tmpfs
@ -442,11 +447,11 @@ reader::reader(QWidget *parent) :
} }
// Wheeee! // Wheeee!
if(is_epub != true) { if(is_epub == true) {
ui->text->setText(ittext); ui->text->setText(epubPageContent);
} }
else { else {
ui->text->setText(epubPageContent); ui->text->setText(ittext);
} }
// Alignment // Alignment
@ -633,6 +638,14 @@ reader::reader(QWidget *parent) :
getTotalEpubPagesNumber(); getTotalEpubPagesNumber();
} }
setupPageWidget(); setupPageWidget();
// Reading settings auto-save timer
if(global::reader::globalReadingSettings == false) {
QTimer * saveSettingsTimer = new QTimer(this);
saveSettingsTimer->setInterval(900000); // 15 minutes
connect(saveSettingsTimer, SIGNAL(timeout()), this, SLOT(saveReadingSettings()));
saveSettingsTimer->start();
}
} }
reader::~reader() reader::~reader()
@ -842,7 +855,7 @@ void reader::on_nextBtn_clicked()
ui->text->setText(ittext); ui->text->setText(ittext);
pagesTurned = pagesTurned + 1; pagesTurned = pagesTurned + 1;
writeconfig_pagenumber(); writeconfig_pagenumber(false);
} }
} }
else { else {
@ -856,7 +869,7 @@ void reader::on_nextBtn_clicked()
ui->text->setText(epubPageContent); ui->text->setText(epubPageContent);
pagesTurned = pagesTurned + 1; pagesTurned = pagesTurned + 1;
writeconfig_pagenumber(); writeconfig_pagenumber(false);
} }
} }
alignText(textAlignment); alignText(textAlignment);
@ -879,7 +892,7 @@ void reader::on_previousBtn_clicked()
// We always increment pagesTurned regardless whether we press the Previous or Next button // We always increment pagesTurned regardless whether we press the Previous or Next button
pagesTurned = pagesTurned + 1; pagesTurned = pagesTurned + 1;
writeconfig_pagenumber(); writeconfig_pagenumber(false);
} }
} }
else { else {
@ -894,7 +907,7 @@ void reader::on_previousBtn_clicked()
// We always increment pagesTurned regardless whether we press the Previous or Next button // We always increment pagesTurned regardless whether we press the Previous or Next button
pagesTurned = pagesTurned + 1; pagesTurned = pagesTurned + 1;
writeconfig_pagenumber(); writeconfig_pagenumber(false);
} }
} }
alignText(textAlignment); alignText(textAlignment);
@ -1370,15 +1383,21 @@ void reader::on_sizeSlider_valueChanged(int value)
} }
} }
void reader::writeconfig_pagenumber() { void reader::writeconfig_pagenumber(bool persistent) {
// Saving the page number in tmpfs // Saving the page number in tmpfs and in persistent storage if requested
if(is_epub != true) { if(is_epub != true) {
std::string split_total_str = std::to_string(split_total); std::string split_total_str = std::to_string(split_total);
string_writeconfig("/tmp/inkboxPageNumber", split_total_str); string_writeconfig("/tmp/inkboxPageNumber", split_total_str);
if(persistent == true) {
string_writeconfig(".config/A-page_number/config", split_total_str);
}
} }
else { else {
std::string epubPageNumber_str = std::to_string(mupdf::epubPageNumber); std::string epubPageNumber_str = std::to_string(mupdf::epubPageNumber);
string_writeconfig("/tmp/inkboxPageNumber", epubPageNumber_str); string_writeconfig("/tmp/inkboxPageNumber", epubPageNumber_str);
if(persistent == true) {
string_writeconfig(".config/A-page_number/config", epubPageNumber_str);
}
} }
} }
@ -1592,7 +1611,7 @@ void reader::gotoPage(int pageNumber) {
ui->text->setText(epubPageContent); ui->text->setText(epubPageContent);
pagesTurned = 0; pagesTurned = 0;
writeconfig_pagenumber(); writeconfig_pagenumber(false);
} }
} }
else { else {
@ -1607,7 +1626,7 @@ void reader::gotoPage(int pageNumber) {
ui->text->setText(ittext); ui->text->setText(ittext);
pagesTurned = 0; pagesTurned = 0;
writeconfig_pagenumber(); writeconfig_pagenumber(false);
} }
} }
alignText(textAlignment); alignText(textAlignment);
@ -1716,3 +1735,14 @@ void reader::showToast(QString messageToDisplay) {
toastWindow->setAttribute(Qt::WA_DeleteOnClose); toastWindow->setAttribute(Qt::WA_DeleteOnClose);
toastWindow->show(); toastWindow->show();
} }
void reader::saveReadingSettings() {
qDebug() << "Got there";
writeconfig_pagenumber(true);
}
void reader::setupLocalSettingsEnvironment() {
QString pageNumberDirPath = ".config/A-page_number";
QDir pageNumberDir;
pageNumberDir.mkpath(pageNumberDirPath);
}

View file

@ -123,7 +123,7 @@ private slots:
void on_nextDefinitionBtn_clicked(); void on_nextDefinitionBtn_clicked();
void on_saveWordBtn_clicked(); void on_saveWordBtn_clicked();
void on_sizeSlider_valueChanged(int value); void on_sizeSlider_valueChanged(int value);
void writeconfig_pagenumber(); void writeconfig_pagenumber(bool persistent);
void quit_restart(); void quit_restart();
void on_text_selectionChanged(); void on_text_selectionChanged();
void on_nightModeBtn_clicked(); void on_nightModeBtn_clicked();
@ -132,6 +132,8 @@ private slots:
void on_searchBtn_clicked(); void on_searchBtn_clicked();
void searchRefreshScreen(); void searchRefreshScreen();
void setupSearchDialog(); void setupSearchDialog();
void saveReadingSettings();
void setupLocalSettingsEnvironment();
private: private:
Ui::reader *ui; Ui::reader *ui;