From 1539f9fe0d0c5ddf9203d74df0e240a083e57d22 Mon Sep 17 00:00:00 2001 From: Nicolas Mailloux Date: Tue, 22 Jun 2021 22:51:28 -0400 Subject: [PATCH] Fine-tune Kobo Mini ePUB rendering, new nightmode switch --- eink.qrc | 2 ++ functions.h | 4 ++-- reader.cpp | 43 +++++++++++++++++++++++++++++++++- reader.h | 2 ++ reader.ui | 41 ++++++++++++++++++++++---------- resources/nightmode-empty.png | Bin 0 -> 11678 bytes resources/nightmode-full.png | Bin 0 -> 3221 bytes 7 files changed, 77 insertions(+), 15 deletions(-) create mode 100644 resources/nightmode-empty.png create mode 100644 resources/nightmode-full.png diff --git a/eink.qrc b/eink.qrc index d279313..5a8eb14 100644 --- a/eink.qrc +++ b/eink.qrc @@ -44,5 +44,7 @@ resources/kobox-icon.png resources/X11.png resources/info.png + resources/nightmode-empty.png + resources/nightmode-full.png diff --git a/functions.h b/functions.h index 38342fa..d90e81e 100644 --- a/functions.h +++ b/functions.h @@ -323,8 +323,8 @@ namespace { void defineDefaultPageSize() { string_checkconfig_ro("/opt/inkbox_device"); if(checkconfig_str_val == "n705\n") { - defaultEpubPageWidth = 425; - defaultEpubPageHeight = 425; + defaultEpubPageWidth = 365; + defaultEpubPageHeight = 365; } if(checkconfig_str_val == "n905\n") { defaultEpubPageHeight = 425; diff --git a/reader.cpp b/reader.cpp index 56db373..b314a11 100644 --- a/reader.cpp +++ b/reader.cpp @@ -49,6 +49,7 @@ reader::reader(QWidget *parent) : ui->saveWordBtn->setProperty("type", "borderless"); ui->previousDefinitionBtn->setProperty("type", "borderless"); ui->nextDefinitionBtn->setProperty("type", "borderless"); + ui->nightModeBtn->setProperty("type", "borderless"); // Icons ui->alignLeftBtn->setText(""); @@ -108,6 +109,19 @@ reader::reader(QWidget *parent) : ui->fontChooser->setCurrentText(checkconfig_str_val); } } + // Night mode + if(checkconfig(".config/10-dark_mode/config") == true) { + string_writeconfig("/tmp/invertScreen", "y"); + ui->nightModeBtn->setText(""); + ui->nightModeBtn->setIcon(QIcon(":/resources/nightmode-full.png")); + isNightModeActive = true; + } + else { + string_writeconfig("/tmp/invertScreen", "n"); + ui->nightModeBtn->setText(""); + ui->nightModeBtn->setIcon(QIcon(":/resources/nightmode-empty.png")); + isNightModeActive = false; + } // Stylesheet + misc. QFile stylesheetFile(":/resources/eink.qss"); @@ -407,7 +421,16 @@ reader::reader(QWidget *parent) : infoLabelContent.append(" ― "); infoLabelContent.append(bookTitle); int infoLabelLength = infoLabelContent.length(); - if(infoLabelLength <= 50) { + int infoLabelDefinedLength; + string_checkconfig_ro("/opt/inkbox_device"); + if(checkconfig_str_val == "n705\n") { + infoLabelDefinedLength = 35; + } + if(checkconfig_str_val == "n905\n") { + infoLabelDefinedLength = 50; + } + + if(infoLabelLength <= infoLabelDefinedLength) { ui->bookInfoLabel->setWordWrap(false); } else { @@ -1312,3 +1335,21 @@ void reader::on_text_selectionChanged() { } } } + +void reader::on_nightModeBtn_clicked() +{ + if(isNightModeActive == true) { + // Disabling night/dark mode + string_writeconfig("/tmp/invertScreen", "n"); + string_writeconfig(".config/10-dark_mode/config", "false"); + ui->nightModeBtn->setIcon(QIcon(":/resources/nightmode-empty.png")); + isNightModeActive = false; + } + else { + // Enabling night/dark mode + string_writeconfig("/tmp/invertScreen", "y"); + string_writeconfig(".config/10-dark_mode/config", "true"); + ui->nightModeBtn->setIcon(QIcon(":/resources/nightmode-full.png")); + isNightModeActive = true; + } +} diff --git a/reader.h b/reader.h index b74a1c6..d13d073 100644 --- a/reader.h +++ b/reader.h @@ -54,6 +54,7 @@ public: bool remount = true; bool showTopbarWidget; bool wordwidgetLock; + bool isNightModeActive; QString book_1; QString book_2; QString book_3; @@ -113,6 +114,7 @@ private slots: void writeconfig_pagenumber(); void quit_restart(); void on_text_selectionChanged(); + void on_nightModeBtn_clicked(); private: Ui::reader *ui; diff --git a/reader.ui b/reader.ui index e04b548..4fbde53 100644 --- a/reader.ui +++ b/reader.ui @@ -801,16 +801,13 @@ 0 - - - - - 75 - true - + + + + QFrame::Plain - - Battery + + Qt::Vertical @@ -821,7 +818,14 @@ - + + + + Night mode + + + + Qt::Horizontal @@ -834,7 +838,20 @@ - + + + + + 75 + true + + + + Battery + + + + Battery Icon @@ -848,7 +865,7 @@ - + QFrame::Plain diff --git a/resources/nightmode-empty.png b/resources/nightmode-empty.png new file mode 100644 index 0000000000000000000000000000000000000000..3ce6cea4374174f26938b618b516fcb9aa71358a GIT binary patch literal 11678 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∈s6%dPy_#QIe%oqx1KED1vJNIsk5A5_DQn}Nzghy9x zR(&McOPXA9({^l|zu6~xCMOqhmD9Tts0=F25CA zln}TZXYI{bqGJ%wz&w-Go=>~KMqi~WLxH%{&%U9z{`LSAK~@hcM0^k9+MM<6N{n?% z7N6H=Eza}>U&Ofz5IH>=`&D^tylypl*Rggz1XJUzdrk0Z$WMdkosv+$Y+w6+YT;v# z^Oo7v;=^tPay@#R^4mAEpEFy$O6;ev70c9j){^oSb(&z=UzRT6aC?j7n%h_91_WY; zq0TO^bwNprXsh&4XFJ%&>aCB0AUJ~O-e|ACptqqYVUfKPy(Uv1FRa_QjVJn3TkMmI zY{~^^7?JYZmKogkElNK*owtijR}6ztv^7O+m<%Dz@62hi$H;ElwxlAIX3=v$ty0Fe z+_IK6I(LA2__;d13&Mwqk6tyUUQQpEM&;R(qiR_hC+J#bq=pRfBNC(1ovjXfHb%_- zZ73UV8q=>X(EeFC5!Ge;LDQ@4Qk#vg1Z>Z?s=pSJK@2uDvf0(bI>$^9E=oa5ONR(W z63z!-VPTF)Yu!f7vKz{_?ljLw&SJ>-iemGTlooBMmh87T`EjG^zgJeMbr;(GMHVHS z!SH$O2HnteD&U*^=R23AfEyMY^^dr2@CrA!PJ@$i%1B?(20R}heYsL*=u?aTgQdGz zoA~G|Qfu+9a?9>EX8NKrO!A-G*Y?pIkG1T|KhIqq|DL!MmPqv}^XY@NfP4 zNuRi#yU(`O$Y};we&?bPkdAB0$xOD%oCV4_!VJT3b3vgp-d9rCawYpt>&MBMs1b;h zy{WaKCSIT5S#iI^)PJ^{r$o9b(TOG_0|jKjoE)vK^)(4^SN7EvR+<~z3`+BQ)ae#` zpM#9xI}}?`Ydg3B$`6;Y7P8$f%NsmzIQw9h=NdCx^K?V#6&}UM+uv8*m(8D;?{nck zBy%pvVw)1oi)xs88Oq)I`YzvrK8JWXxvFLJw&>TB3P<_;FZ^jI=rxOShLs@J1t>2- z!DYjue%EzQ|B{kZYWgmg(Q;uxpVR|ul)9Q$iNa+?Htgh^EIsrbAl)0Kvl9&wX+(yz zjgG!atr@ zKPMIDhrnuTR=l6OLS4l?8h!yfgdK#m;MDEH|6b~kzr5=y#~%7L@O*N*@5!6Wnd-%T z!%m7ekdAirVuB&a{QIM>5)K*O*;kMdgZgeUVx-)0?TX?njRzKW4tV?e?Q zqqP4y^|n<3EOK`ReOaBS%0*+8u-rJQmI0E1ojL2-@m1lKPBk#rVBGBkQ)K=RnS?V$ zxMa#@5o)F~@d8-gCL^6TvK-F{7bd=Q&Z!!m88KOZu8EmhdO~#}pT2p^_i1#dDfVNP zBVm9b9~YSp18l%{@Do_n8AqOnzGuN*Ubjv5pn9onB_}goOW@f&&`+?0VLTi6Ahr^x zOyX)suSrAuD?H62t!)Z1fi-Ov9x+rV15XGH>v*mbV_w0CwLGk?b;{dd-9r|#)KUN! z=7A4wH%)NO)_WzpsIsX*iX~PF_rBU)zrE*5|MQsxP_Xjt_%Tg>!2_A4`krKunAC(a zLJ!oci=L1NR0T2E+{V5q6qwceu7zuW>%IU^&c_>Xe{ovsO$JUS$ztfqXv-g@(C;MgviX>H@E39UF946 zd59&tOJe;uZS~6^5eLJgF@}uVUI_P6{j6(_gSGKC*Hi=AjX#aEtCSjD>S7AIF0mAT zDnaNVD0ls%3M9>rCRXLF2VjfGUNf;XIJ+Fr^7#jUgWy@5{3+3GzPx?V81y4;(J}$U@+RU%C#I*`EIFrE9?z(`rlCp>a-YLSn||N0+GMj>Zj-|%nZFfv$`Y*dG!tw%b!?!V zg~du2B3DxFI4sWf@O_rlUk1oS$OKC?VON2E@#b(~JCd^Trj?ID! zEcg1P$cojiNZmFr#?ZiHe%2vm67^iKKsjo+u5zG&$VW%29CFPT5X) o^m0zV(AFjusfB*mh literal 0 HcmV?d00001 diff --git a/resources/nightmode-full.png b/resources/nightmode-full.png new file mode 100644 index 0000000000000000000000000000000000000000..527bf89b3ad03dee8a5ba05ba57da979ee1f5799 GIT binary patch literal 3221 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 R{HB0YPfnN