2021-03-31 05:38:59 -07:00
|
|
|
#include "generaldialog.h"
|
|
|
|
#include "ui_generaldialog.h"
|
2021-04-05 06:50:58 -07:00
|
|
|
#include "functions.h"
|
2021-04-22 04:38:54 -07:00
|
|
|
#include "reader.h"
|
|
|
|
#include "mainwindow.h"
|
2021-03-31 05:38:59 -07:00
|
|
|
|
|
|
|
#include <QFile>
|
|
|
|
#include <QDebug>
|
2021-04-01 05:58:37 -07:00
|
|
|
#include <QProcess>
|
2021-04-02 18:06:15 -07:00
|
|
|
#include <QScreen>
|
2021-07-05 13:01:32 -07:00
|
|
|
#include <QTimer>
|
2021-07-05 19:21:20 -07:00
|
|
|
#include <QMessageBox>
|
2021-09-04 19:18:17 -07:00
|
|
|
#include <QDirIterator>
|
|
|
|
#include <QStringListModel>
|
|
|
|
#include <QListView>
|
2021-03-31 05:38:59 -07:00
|
|
|
|
|
|
|
generalDialog::generalDialog(QWidget *parent) :
|
|
|
|
QDialog(parent),
|
|
|
|
ui(new Ui::generalDialog)
|
|
|
|
{
|
|
|
|
ui->setupUi(this);
|
|
|
|
|
|
|
|
// Preventing outside interaction
|
|
|
|
this->setModal(true);
|
|
|
|
|
|
|
|
// Stylesheet, style & misc.
|
|
|
|
QFile stylesheetFile(":/resources/eink.qss");
|
|
|
|
stylesheetFile.open(QFile::ReadOnly);
|
|
|
|
this->setStyleSheet(stylesheetFile.readAll());
|
|
|
|
stylesheetFile.close();
|
|
|
|
|
|
|
|
ui->okBtn->setProperty("type", "borderless");
|
|
|
|
ui->cancelBtn->setProperty("type", "borderless");
|
2021-04-05 12:35:25 -07:00
|
|
|
ui->acceptBtn->setProperty("type", "borderless");
|
2021-03-31 05:38:59 -07:00
|
|
|
|
|
|
|
ui->okBtn->setStyleSheet("font-size: 9pt; padding: 10px; font-weight: bold; background: lightGrey");
|
|
|
|
ui->cancelBtn->setStyleSheet("font-size: 9pt; padding: 10px; font-weight: bold; background: lightGrey");
|
2021-04-05 12:35:25 -07:00
|
|
|
ui->acceptBtn->setStyleSheet("font-size: 9pt; padding: 10px; font-weight: bold; background: lightGrey");
|
2021-03-31 05:38:59 -07:00
|
|
|
ui->bodyLabel->setStyleSheet("font-size: 9pt");
|
2021-07-05 19:21:20 -07:00
|
|
|
ui->searchComboBox->setStyleSheet("font-size: 9pt");
|
2021-03-31 05:38:59 -07:00
|
|
|
|
2021-09-04 20:46:47 -07:00
|
|
|
if(QFile::exists("/inkbox/searchComboBoxFunction") == true) {
|
|
|
|
string_checkconfig_ro("/inkbox/searchComboBoxFunction");
|
|
|
|
if(checkconfig_str_val == "Dictionary") {
|
|
|
|
ui->searchComboBox->setCurrentIndex(0);
|
|
|
|
}
|
|
|
|
else if(checkconfig_str_val == "Local storage") {
|
|
|
|
ui->searchComboBox->setCurrentIndex(1);
|
|
|
|
}
|
2021-12-27 12:04:39 -08:00
|
|
|
else if(checkconfig_str_val == "Online library") {
|
|
|
|
ui->searchComboBox->setCurrentIndex(2);
|
|
|
|
}
|
2021-09-04 20:46:47 -07:00
|
|
|
else {
|
|
|
|
ui->searchComboBox->setCurrentIndex(0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-03-31 05:38:59 -07:00
|
|
|
if(checkconfig("/inkbox/resetDialog") == true) {
|
2021-04-06 10:40:43 -07:00
|
|
|
if(checkconfig("/opt/inkbox_genuine") == true) {
|
|
|
|
resetDialog = true;
|
|
|
|
ui->okBtn->setText("Proceed");
|
|
|
|
ui->cancelBtn->setText("Go back");
|
|
|
|
ui->bodyLabel->setText("This will erase any books you have on the device. Settings will be reset.");
|
|
|
|
ui->headerLabel->setText("Warning");
|
|
|
|
this->adjustSize();
|
|
|
|
string_writeconfig("/inkbox/resetDialog", "false");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
resetDialog = true;
|
|
|
|
ui->okBtn->setText("Proceed");
|
|
|
|
ui->cancelBtn->setText("Go back");
|
|
|
|
ui->bodyLabel->setText("Settings will be reset.");
|
|
|
|
ui->headerLabel->setText("Warning");
|
|
|
|
this->adjustSize();
|
|
|
|
string_writeconfig("/inkbox/resetDialog", "false");
|
|
|
|
}
|
2021-03-31 05:38:59 -07:00
|
|
|
}
|
2021-04-30 20:19:54 -07:00
|
|
|
else if(checkconfig("/inkbox/updateDialog") == true) {
|
2021-04-01 05:58:37 -07:00
|
|
|
updateDialog = true;
|
|
|
|
ui->okBtn->setText("Update");
|
|
|
|
ui->cancelBtn->setText("Not now");
|
|
|
|
ui->bodyLabel->setText("Do you want to update InkBox now?");
|
|
|
|
ui->headerLabel->setText("Update available");
|
|
|
|
this->adjustSize();
|
|
|
|
string_writeconfig("/inkbox/updateDialog", "false");
|
|
|
|
}
|
2021-05-01 12:53:52 -07:00
|
|
|
else if(global::settings::settingsRebootDialog == true) {
|
2021-04-05 12:35:25 -07:00
|
|
|
settingsRebootDialog = true;
|
|
|
|
ui->stackedWidget->setCurrentIndex(1);
|
2021-10-18 05:46:27 -07:00
|
|
|
if(global::kobox::koboxSettingsRebootDialog == true or global::encfs::enableStorageEncryptionDialog) {
|
2021-05-01 12:53:52 -07:00
|
|
|
koboxSettingsRebootDialog = true;
|
|
|
|
ui->bodyLabel->setText("The device will reboot now, since the settings you chose require it to work properly.");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
ui->bodyLabel->setText("The settings you chose might require a complete reboot of the device for them to work properly.");
|
|
|
|
}
|
2021-04-05 12:35:25 -07:00
|
|
|
ui->headerLabel->setText("Information");
|
|
|
|
this->adjustSize();
|
|
|
|
}
|
2021-04-30 20:19:54 -07:00
|
|
|
else if(global::mainwindow::lowBatteryDialog == true) {
|
2021-04-22 04:38:54 -07:00
|
|
|
lowBatteryDialog = true;
|
|
|
|
ui->stackedWidget->setCurrentIndex(1);
|
|
|
|
get_battery_level();
|
2021-04-23 05:47:05 -07:00
|
|
|
QString message = "The battery's level is low. Please charge your eReader.\nCurrent level: ";
|
2021-04-22 04:38:54 -07:00
|
|
|
message.append(batt_level);
|
|
|
|
ui->bodyLabel->setText(message);
|
2021-04-22 10:56:29 -07:00
|
|
|
ui->headerLabel->setText("Low battery");
|
2021-04-22 04:38:54 -07:00
|
|
|
this->adjustSize();
|
|
|
|
string_writeconfig("/inkbox/lowBatteryDialog", "false");
|
|
|
|
}
|
2021-05-09 11:07:05 -07:00
|
|
|
else if(global::usbms::usbmsDialog == true) {
|
|
|
|
usbmsDialog = true;
|
|
|
|
ui->okBtn->setText("Connect");
|
|
|
|
ui->cancelBtn->setText("Cancel");
|
|
|
|
ui->bodyLabel->setText("Do you want to connect your device to a computer to manage books?");
|
|
|
|
ui->headerLabel->setText("USB cable connected");
|
|
|
|
this->adjustSize();
|
|
|
|
}
|
2021-06-08 04:49:52 -07:00
|
|
|
else if(global::text::textBrowserDialog == true) {
|
2021-06-14 11:31:49 -07:00
|
|
|
textBrowserDialog = true;
|
2021-06-08 04:49:52 -07:00
|
|
|
textwidgetWindow = new textwidget();
|
|
|
|
ui->headerLabel->setText("Information");
|
2021-06-14 09:24:20 -07:00
|
|
|
ui->stackedWidget->setCurrentIndex(1);
|
2021-06-08 04:49:52 -07:00
|
|
|
ui->mainStackedWidget->insertWidget(1, textwidgetWindow);
|
|
|
|
ui->mainStackedWidget->setCurrentIndex(1);
|
|
|
|
this->adjustSize();
|
|
|
|
}
|
2021-06-14 11:31:49 -07:00
|
|
|
else if(global::kobox::resetKoboxDialog == true) {
|
|
|
|
resetKoboxDialog = true;
|
|
|
|
ui->headerLabel->setText("Warning");
|
|
|
|
ui->okBtn->setText("Proceed");
|
|
|
|
ui->cancelBtn->setText("Go back");
|
|
|
|
ui->bodyLabel->setText("This will erase all KoBox user data. KoBox settings will be reset.");
|
|
|
|
this->adjustSize();
|
|
|
|
}
|
2021-07-05 13:01:32 -07:00
|
|
|
else if(global::keyboard::keyboardDialog == true) {
|
2021-07-05 19:21:20 -07:00
|
|
|
setupKeyboardDialog();
|
2021-07-05 13:01:32 -07:00
|
|
|
}
|
2021-07-05 10:45:35 -07:00
|
|
|
else if(global::keyboard::keypadDialog == true) {
|
|
|
|
keypadDialog = true;
|
|
|
|
keypadWidget = new virtualkeypad();
|
|
|
|
ui->headerLabel->setText("Enter a number");
|
|
|
|
ui->okBtn->setText("OK");
|
|
|
|
ui->cancelBtn->setText("Cancel");
|
|
|
|
ui->mainStackedWidget->insertWidget(1, keypadWidget);
|
|
|
|
ui->mainStackedWidget->setCurrentIndex(1);
|
|
|
|
this->adjustSize();
|
|
|
|
}
|
2021-10-17 19:31:44 -07:00
|
|
|
else if(global::encfs::disableStorageEncryptionDialog == true) {
|
|
|
|
ui->headerLabel->setText("Warning");
|
|
|
|
ui->okBtn->setText("Proceed");
|
|
|
|
ui->cancelBtn->setText("Go back");
|
|
|
|
ui->bodyLabel->setText("This will delete all the files you have encrypted. Are you sure you want to continue?");
|
|
|
|
this->adjustSize();
|
|
|
|
}
|
2021-11-14 18:22:58 -08:00
|
|
|
else if(global::encfs::errorNoBooksInDropboxDialog == true) {
|
|
|
|
ui->stackedWidget->setCurrentIndex(1);
|
|
|
|
ui->headerLabel->setText("Error");
|
|
|
|
ui->bodyLabel->setText("Please put books in the 'encfs-dropbox' folder to repack your encrypted storage.");
|
|
|
|
this->adjustSize();
|
|
|
|
}
|
2021-03-31 05:38:59 -07:00
|
|
|
else {
|
|
|
|
// We shouldn't be there ;)
|
|
|
|
;
|
|
|
|
}
|
2021-04-02 18:06:15 -07:00
|
|
|
|
|
|
|
// Centering dialog
|
|
|
|
QRect screenGeometry = QGuiApplication::screens()[0]->geometry();
|
|
|
|
int x = (screenGeometry.width() - this->width()) / 2;
|
|
|
|
int y = (screenGeometry.height() - this->height()) / 2;
|
|
|
|
this->move(x, y);
|
2021-03-31 05:38:59 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
generalDialog::~generalDialog()
|
|
|
|
{
|
|
|
|
delete ui;
|
|
|
|
}
|
|
|
|
|
|
|
|
void generalDialog::on_cancelBtn_clicked()
|
|
|
|
{
|
2021-04-01 05:58:37 -07:00
|
|
|
if(updateDialog == true) {
|
|
|
|
string_writeconfig("/tmp/cancelUpdateDialog", "true");
|
|
|
|
generalDialog::close();
|
|
|
|
}
|
2021-06-29 11:42:51 -07:00
|
|
|
else if(usbmsDialog == true) {
|
|
|
|
global::usbms::usbmsDialog = false;
|
|
|
|
generalDialog::close();
|
|
|
|
}
|
2021-08-20 12:22:49 -07:00
|
|
|
else if(resetKoboxDialog == true) {
|
|
|
|
global::kobox::resetKoboxDialog = false;
|
|
|
|
generalDialog::close();
|
|
|
|
}
|
2021-10-17 19:31:44 -07:00
|
|
|
else if(global::encfs::disableStorageEncryptionDialog == true) {
|
|
|
|
emit cancelDisableStorageEncryption();
|
|
|
|
global::encfs::disableStorageEncryptionDialog = false;
|
|
|
|
generalDialog::close();
|
|
|
|
}
|
2021-06-08 04:49:52 -07:00
|
|
|
else {
|
2021-07-05 19:21:20 -07:00
|
|
|
if(global::keyboard::searchDialog == true) {
|
|
|
|
global::keyboard::searchDialog = false;
|
|
|
|
global::forbidOpenSearchDialog = true;
|
|
|
|
global::keyboard::keyboardDialog = false;
|
|
|
|
global::keyboard::keyboardText = "";
|
2021-12-27 12:04:39 -08:00
|
|
|
global::library::librarySearchDialog = false;
|
2021-07-05 19:21:20 -07:00
|
|
|
}
|
2021-07-06 07:04:28 -07:00
|
|
|
else if(global::keyboard::vncDialog == true) {
|
|
|
|
global::keyboard::vncDialog = false;
|
|
|
|
global::keyboard::keyboardDialog = false;
|
|
|
|
global::keyboard::keyboardText = "";
|
|
|
|
}
|
2021-10-10 12:02:20 -07:00
|
|
|
else if(global::keyboard::encfsDialog == true) {
|
|
|
|
global::keyboard::encfsDialog = false;
|
|
|
|
global::encfs::cancelSetup = true;
|
|
|
|
global::keyboard::keyboardText = "";
|
|
|
|
}
|
2021-11-16 04:47:49 -08:00
|
|
|
else if(global::encfs::errorNoBooksInDropboxDialog == true) {
|
|
|
|
global::encfs::errorNoBooksInDropboxDialog = false;
|
|
|
|
}
|
2021-05-09 11:07:05 -07:00
|
|
|
generalDialog::close();
|
|
|
|
}
|
2021-03-31 05:38:59 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
void generalDialog::on_okBtn_clicked()
|
|
|
|
{
|
|
|
|
if(resetDialog == true) {
|
2021-04-05 12:35:25 -07:00
|
|
|
if(checkconfig("/opt/inkbox_genuine") == true) {
|
|
|
|
// Soft-reset the device
|
|
|
|
// We set a custom boot flag and reboot silently in Diagnostics
|
|
|
|
string_writeconfig("/external_root/boot/flags/DIAGS_BOOT", "true");
|
|
|
|
string_writeconfig("/external_root/boot/flags/DO_SOFT_RESET", "true");
|
2021-06-22 05:22:27 -07:00
|
|
|
reboot(false);
|
2021-04-05 12:35:25 -07:00
|
|
|
}
|
|
|
|
else {
|
2021-05-09 11:07:05 -07:00
|
|
|
// Restore default settings, we're not on InkBox OS
|
2021-04-05 12:35:25 -07:00
|
|
|
QString prog ("sh");
|
|
|
|
QStringList args;
|
|
|
|
args << "reset-config.sh";
|
|
|
|
QProcess *proc = new QProcess();
|
2021-04-06 10:40:43 -07:00
|
|
|
proc->start(prog, args);
|
|
|
|
proc->waitForFinished();
|
2021-08-29 12:05:07 -07:00
|
|
|
proc->deleteLater();
|
2021-04-06 10:40:43 -07:00
|
|
|
|
|
|
|
// Relaunching InkBox
|
|
|
|
QProcess process;
|
|
|
|
process.startDetached("inkbox.sh", QStringList());
|
2021-04-05 12:35:25 -07:00
|
|
|
qApp->quit();
|
|
|
|
}
|
2021-03-31 05:38:59 -07:00
|
|
|
}
|
2021-04-01 05:58:37 -07:00
|
|
|
if(updateDialog == true) {
|
2021-08-19 05:23:18 -07:00
|
|
|
if(global::otaUpdate::isUpdateOta == true) {
|
2021-08-25 10:16:41 -07:00
|
|
|
this->hide();
|
|
|
|
|
2021-08-19 05:23:18 -07:00
|
|
|
global::otaUpdate::downloadOta = true;
|
|
|
|
otaManagerWindow = new otaManager(this);
|
|
|
|
connect(otaManagerWindow, SIGNAL(downloadedOtaUpdate(bool)), SLOT(startOtaUpdate(bool)));
|
|
|
|
otaManagerWindow->setAttribute(Qt::WA_DeleteOnClose);
|
2021-08-25 10:16:41 -07:00
|
|
|
|
|
|
|
global::toast::indefiniteToast = true;
|
|
|
|
global::toast::modalToast = true;
|
|
|
|
emit showToast("Downloading update");
|
2021-08-19 05:23:18 -07:00
|
|
|
}
|
|
|
|
else {
|
|
|
|
installUpdate();
|
|
|
|
}
|
2021-04-01 05:58:37 -07:00
|
|
|
}
|
2021-05-09 11:07:05 -07:00
|
|
|
if(usbmsDialog == true) {
|
|
|
|
global::usbms::usbmsDialog = false;
|
|
|
|
global::usbms::launchUsbms = true;
|
|
|
|
|
|
|
|
usbmsWindow = new usbms_splash();
|
|
|
|
usbmsWindow->setAttribute(Qt::WA_DeleteOnClose);
|
|
|
|
usbmsWindow->setGeometry(QRect(QPoint(0,0), screen()->geometry ().size()));
|
|
|
|
usbmsWindow->show();
|
|
|
|
}
|
2021-06-14 11:31:49 -07:00
|
|
|
if(resetKoboxDialog == true) {
|
|
|
|
resetKoboxUserData();
|
|
|
|
}
|
2021-07-05 10:45:35 -07:00
|
|
|
if(keypadDialog == true) {
|
|
|
|
int number = global::keyboard::keypadText.toInt();
|
|
|
|
emit gotoPageSelected(number);
|
|
|
|
global::keyboard::keypadDialog = false;
|
|
|
|
generalDialog::close();
|
|
|
|
}
|
|
|
|
if(keyboardDialog == true) {
|
2021-07-05 19:21:20 -07:00
|
|
|
if(global::keyboard::searchDialog == true) {
|
2021-09-05 07:29:52 -07:00
|
|
|
if(!global::keyboard::keyboardText.isEmpty()) {
|
2021-07-05 19:21:20 -07:00
|
|
|
if(ui->searchComboBox->currentText() == "Dictionary") {
|
2021-09-04 20:46:47 -07:00
|
|
|
string_writeconfig("/inkbox/searchComboBoxFunction", "Dictionary");
|
2021-07-05 19:21:20 -07:00
|
|
|
for(int i = ui->mainStackedWidget->count(); i >= 0; i--) {
|
|
|
|
QWidget * widget = ui->mainStackedWidget->widget(i);
|
|
|
|
ui->mainStackedWidget->removeWidget(widget);
|
|
|
|
widget->deleteLater();
|
|
|
|
}
|
|
|
|
ui->topStackedWidget->setVisible(false);
|
|
|
|
ui->stackedWidget->setVisible(false);
|
|
|
|
dictionaryWidgetWindow = new dictionaryWidget();
|
|
|
|
dictionaryWidgetWindow->setAttribute(Qt::WA_DeleteOnClose);
|
|
|
|
connect(dictionaryWidgetWindow, SIGNAL(refreshScreen()), SLOT(refreshScreenNative()));
|
|
|
|
connect(dictionaryWidgetWindow, SIGNAL(destroyed(QObject*)), SLOT(restartSearchDialog()));
|
|
|
|
ui->mainStackedWidget->insertWidget(1, dictionaryWidgetWindow);
|
|
|
|
}
|
2021-09-04 19:18:17 -07:00
|
|
|
else if(ui->searchComboBox->currentText() == "Local storage") {
|
2021-09-04 20:46:47 -07:00
|
|
|
string_writeconfig("/inkbox/searchComboBoxFunction", "Local storage");
|
2021-09-04 19:18:17 -07:00
|
|
|
QString onboardPath;
|
|
|
|
QStringList storageSearchResults;
|
|
|
|
if(checkconfig("/opt/inkbox_genuine") == true) {
|
|
|
|
onboardPath = "/mnt/onboard/onboard/";
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
onboardPath = "/mnt/onboard/";
|
|
|
|
}
|
|
|
|
QDirIterator dirIt(onboardPath, QDirIterator::Subdirectories);
|
|
|
|
while(dirIt.hasNext()) {
|
|
|
|
dirIt.next();
|
|
|
|
if(QFileInfo(dirIt.filePath()).isFile()) {
|
|
|
|
QString suffix = QFileInfo(dirIt.filePath()).suffix();
|
|
|
|
if(suffix == "txt" or suffix == "TXT" or suffix == "epub" or suffix == "pdf" or suffix == "PDF") {
|
|
|
|
if(dirIt.fileName().contains(global::keyboard::keyboardText) == true) {
|
|
|
|
storageSearchResults.append(dirIt.fileName());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(!storageSearchResults.isEmpty()) {
|
|
|
|
for(int i = ui->mainStackedWidget->count(); i >= 0; i--) {
|
|
|
|
QWidget * widget = ui->mainStackedWidget->widget(i);
|
|
|
|
ui->mainStackedWidget->removeWidget(widget);
|
|
|
|
widget->deleteLater();
|
|
|
|
}
|
|
|
|
ui->topStackedWidget->setVisible(false);
|
|
|
|
ui->stackedWidget->setVisible(false);
|
|
|
|
searchResultsWidgetWindow = new searchResultsWidget(this);
|
2021-09-04 20:46:47 -07:00
|
|
|
searchResultsWidgetWindow->setAttribute(Qt::WA_DeleteOnClose);
|
2021-09-05 07:06:56 -07:00
|
|
|
global::forbidOpenSearchDialog = true;
|
2021-09-04 20:46:47 -07:00
|
|
|
connect(searchResultsWidgetWindow, SIGNAL(destroyed(QObject*)), SLOT(restartSearchDialog()));
|
2021-09-05 06:37:07 -07:00
|
|
|
connect(searchResultsWidgetWindow, SIGNAL(openBookFile(QString, bool)), SLOT(openBookFileNative(QString, bool)));
|
2021-09-04 19:18:17 -07:00
|
|
|
searchResultsWidgetWindow->setListViewContents(storageSearchResults);
|
|
|
|
ui->mainStackedWidget->insertWidget(1, searchResultsWidgetWindow);
|
|
|
|
}
|
|
|
|
else {
|
2021-09-05 06:37:07 -07:00
|
|
|
global::toast::delay = 3000;
|
2021-09-04 19:18:17 -07:00
|
|
|
emit showToast("No results found");
|
2021-09-05 06:37:07 -07:00
|
|
|
keyboardWidget->clearLineEdit();
|
|
|
|
global::keyboard::keyboardText = "";
|
2021-09-04 19:18:17 -07:00
|
|
|
}
|
2021-12-27 12:04:39 -08:00
|
|
|
}
|
|
|
|
else if(ui->searchComboBox->currentText() == "Online library") {
|
2021-12-27 20:59:28 -08:00
|
|
|
string_writeconfig("/inkbox/searchComboBoxFunction", "Online library");
|
|
|
|
string_writeconfig("/inkbox/gutenberg_search_request", global::keyboard::keyboardText.toStdString());
|
|
|
|
string_writeconfig("/opt/ibxd", "gutenberg_search\n");
|
|
|
|
while(true) {
|
|
|
|
if(QFile::exists("/inkbox/gutenberg-search/search_done")) {
|
|
|
|
if(checkconfig("/inkbox/gutenberg-search/search_done") == true) {
|
|
|
|
QStringList searchResults = readFile("/inkbox/gutenberg-search/search_results_titles").split("\n");
|
|
|
|
global::library::libraryResults = true;
|
2021-12-27 12:04:39 -08:00
|
|
|
|
2021-12-27 20:59:28 -08:00
|
|
|
for(int i = ui->mainStackedWidget->count(); i >= 0; i--) {
|
|
|
|
QWidget * widget = ui->mainStackedWidget->widget(i);
|
|
|
|
ui->mainStackedWidget->removeWidget(widget);
|
|
|
|
widget->deleteLater();
|
|
|
|
}
|
|
|
|
ui->topStackedWidget->setVisible(false);
|
|
|
|
ui->stackedWidget->setVisible(false);
|
|
|
|
searchResultsWidgetWindow = new searchResultsWidget(this);
|
|
|
|
searchResultsWidgetWindow->setAttribute(Qt::WA_DeleteOnClose);
|
|
|
|
global::forbidOpenSearchDialog = true;
|
|
|
|
connect(searchResultsWidgetWindow, SIGNAL(destroyed(QObject*)), SLOT(restartSearchDialog()));
|
|
|
|
searchResultsWidgetWindow->setListViewContents(searchResults);
|
|
|
|
ui->mainStackedWidget->insertWidget(1, searchResultsWidgetWindow);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
global::toast::delay = 3000;
|
|
|
|
emit showToast("No results found");
|
|
|
|
keyboardWidget->clearLineEdit();
|
|
|
|
global::keyboard::keyboardText = "";
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
QFile::remove("/inkbox/gutenberg-search/search_done");
|
|
|
|
}
|
|
|
|
}
|
2021-09-04 19:18:17 -07:00
|
|
|
}
|
2021-07-05 19:21:20 -07:00
|
|
|
else {
|
|
|
|
;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
QMessageBox::critical(this, tr("Invalid argument"), tr("Please type in a search term."));
|
|
|
|
}
|
|
|
|
}
|
2021-07-05 21:13:11 -07:00
|
|
|
else if(global::keyboard::vncDialog == true) {
|
2021-10-08 20:37:32 -07:00
|
|
|
if(!global::keyboard::keyboardText.isEmpty()) {
|
2021-07-05 21:13:11 -07:00
|
|
|
if(vncServerSet != true) {
|
|
|
|
vncServerAddress = global::keyboard::keyboardText;
|
|
|
|
vncServerSet = true;
|
|
|
|
keyboardWidget->clearLineEdit();
|
|
|
|
ui->headerLabel->setText("Enter the server's password");
|
|
|
|
}
|
|
|
|
else if(vncPasswordSet != true) {
|
|
|
|
vncServerPassword = global::keyboard::keyboardText;
|
|
|
|
vncPasswordSet = true;
|
|
|
|
keyboardWidget->clearLineEdit();
|
|
|
|
ui->headerLabel->setText("Enter the server's port");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
vncServerPort = global::keyboard::keyboardText;
|
|
|
|
global::keyboard::vncDialog = false;
|
|
|
|
global::keyboard::keyboardDialog = false;
|
|
|
|
startVNC(vncServerAddress, vncServerPassword, vncServerPort);
|
|
|
|
generalDialog::close();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
QMessageBox::critical(this, tr("Invalid argument"), tr("Please type in the required argument."));
|
|
|
|
}
|
|
|
|
}
|
2021-07-14 15:23:54 -07:00
|
|
|
else if(global::keyboard::wifiPassphraseDialog == true) {
|
2021-10-08 20:37:32 -07:00
|
|
|
if(!global::keyboard::keyboardText.isEmpty()) {
|
2021-07-14 15:23:54 -07:00
|
|
|
this->hide();
|
|
|
|
wifiPassphrase = global::keyboard::keyboardText;
|
|
|
|
global::toast::indefiniteToast = true;
|
|
|
|
global::toast::modalToast = true;
|
|
|
|
emit showToast("Connecting");
|
|
|
|
QTimer::singleShot(100, this, SLOT(connectToNetworkSlot()));
|
2021-07-20 20:27:32 -07:00
|
|
|
global::keyboard::wifiPassphraseDialog = false;
|
|
|
|
global::keyboard::keyboardDialog = false;
|
2021-07-14 15:23:54 -07:00
|
|
|
}
|
|
|
|
else {
|
|
|
|
QMessageBox::critical(this, tr("Invalid argument"), tr("Please type in the required argument."));
|
|
|
|
}
|
|
|
|
}
|
2021-10-08 20:37:32 -07:00
|
|
|
else if(global::keyboard::encfsDialog == true) {
|
|
|
|
if(!global::keyboard::keyboardText.isEmpty()) {
|
|
|
|
global::encfs::passphrase = global::keyboard::keyboardText;
|
|
|
|
global::keyboard::encfsDialog = false;
|
|
|
|
global::keyboard::keyboardText = "";
|
|
|
|
global::keyboard::keyboardDialog = false;
|
2021-10-17 19:31:44 -07:00
|
|
|
this->close();
|
2021-10-08 20:37:32 -07:00
|
|
|
}
|
|
|
|
else {
|
|
|
|
QMessageBox::critical(this, tr("Invalid argument"), tr("Please type in the required argument."));
|
|
|
|
}
|
|
|
|
}
|
2021-07-05 19:21:20 -07:00
|
|
|
else {
|
|
|
|
global::keyboard::keyboardDialog = false;
|
|
|
|
generalDialog::close();
|
|
|
|
}
|
2021-07-05 10:45:35 -07:00
|
|
|
}
|
2021-10-17 19:31:44 -07:00
|
|
|
if(global::encfs::disableStorageEncryptionDialog == true) {
|
|
|
|
global::encfs::disableStorageEncryptionDialog = false;
|
|
|
|
emit disableStorageEncryption();
|
|
|
|
this->close();
|
|
|
|
}
|
2021-03-31 05:38:59 -07:00
|
|
|
}
|
2021-04-05 12:35:25 -07:00
|
|
|
void generalDialog::on_acceptBtn_clicked()
|
|
|
|
{
|
2021-04-22 04:38:54 -07:00
|
|
|
if(lowBatteryDialog == true) {
|
2021-04-22 07:10:47 -07:00
|
|
|
global::mainwindow::lowBatteryDialog = false;
|
|
|
|
global::battery::batteryAlertLock = false;
|
|
|
|
global::battery::showLowBatteryDialog = false;
|
2021-04-22 04:38:54 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
if(settingsRebootDialog == true) {
|
2021-10-18 05:46:27 -07:00
|
|
|
if(koboxSettingsRebootDialog == true or global::encfs::enableStorageEncryptionDialog) {
|
2021-05-01 12:53:52 -07:00
|
|
|
reboot(true);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
QProcess process;
|
|
|
|
process.startDetached("inkbox.sh", QStringList());
|
|
|
|
qApp->quit();
|
|
|
|
}
|
2021-04-22 04:38:54 -07:00
|
|
|
}
|
2021-06-08 04:49:52 -07:00
|
|
|
if(textBrowserDialog == true) {
|
|
|
|
global::text::textBrowserContents = "";
|
|
|
|
global::text::textBrowserDialog = false;
|
|
|
|
}
|
2021-04-23 05:47:05 -07:00
|
|
|
|
|
|
|
// We don't have any other option ;p
|
|
|
|
generalDialog::close();
|
2021-04-05 12:35:25 -07:00
|
|
|
}
|
2021-07-05 13:01:32 -07:00
|
|
|
|
|
|
|
void generalDialog::adjust_size() {
|
|
|
|
this->adjustSize();
|
|
|
|
QRect screenGeometry = QGuiApplication::screens()[0]->geometry();
|
|
|
|
int x = (screenGeometry.width() - this->width()) / 2;
|
|
|
|
int y = (screenGeometry.height() - this->height()) / 2;
|
|
|
|
this->move(x, y);
|
|
|
|
emit refreshScreen();
|
|
|
|
}
|
2021-07-05 19:21:20 -07:00
|
|
|
|
|
|
|
void generalDialog::restartSearchDialog() {
|
|
|
|
generalDialog::close();
|
|
|
|
}
|
|
|
|
|
|
|
|
void generalDialog::setupKeyboardDialog() {
|
|
|
|
keyboardDialog = true;
|
|
|
|
ui->stackedWidget->setVisible(true);
|
|
|
|
if(global::keyboard::searchDialog == true) {
|
|
|
|
ui->topStackedWidget->setCurrentIndex(1);
|
|
|
|
ui->searchHeaderLabel->setText("Search");
|
2021-07-05 21:13:11 -07:00
|
|
|
ui->okBtn->setText("Search");
|
|
|
|
ui->cancelBtn->setText("Close");
|
|
|
|
}
|
|
|
|
else if(global::keyboard::vncDialog == true) {
|
|
|
|
ui->headerLabel->setText("Enter the server's IP address");
|
|
|
|
ui->okBtn->setText("OK");
|
|
|
|
ui->cancelBtn->setText("Cancel");
|
2021-07-05 19:21:20 -07:00
|
|
|
}
|
2021-07-14 15:23:54 -07:00
|
|
|
else if(global::keyboard::wifiPassphraseDialog == true) {
|
|
|
|
ui->headerLabel->setText("Enter the network's passphrase");
|
|
|
|
ui->okBtn->setText("Connect");
|
|
|
|
ui->cancelBtn->setText("Cancel");
|
|
|
|
}
|
2021-10-08 20:37:32 -07:00
|
|
|
else if(global::keyboard::encfsDialog == true) {
|
2021-10-10 12:02:20 -07:00
|
|
|
ui->headerLabel->setText("Enter your encrypted storage's passphrase");
|
2021-10-08 20:37:32 -07:00
|
|
|
ui->okBtn->setText("OK");
|
|
|
|
ui->cancelBtn->setText("Cancel");
|
|
|
|
}
|
2021-07-05 19:21:20 -07:00
|
|
|
else {
|
|
|
|
ui->headerLabel->setText("Enter a string");
|
2021-07-05 21:13:11 -07:00
|
|
|
ui->okBtn->setText("OK");
|
|
|
|
ui->cancelBtn->setText("Cancel");
|
2021-07-05 19:21:20 -07:00
|
|
|
}
|
|
|
|
keyboardWidget = new virtualkeyboard();
|
|
|
|
connect(keyboardWidget, SIGNAL(adjust_size()), SLOT(adjust_size()));
|
|
|
|
ui->mainStackedWidget->insertWidget(1, keyboardWidget);
|
|
|
|
ui->mainStackedWidget->setCurrentIndex(1);
|
|
|
|
QTimer::singleShot(1000, this, SLOT(adjust_size()));
|
|
|
|
}
|
|
|
|
|
|
|
|
void generalDialog::refreshScreenNative() {
|
|
|
|
emit refreshScreen();
|
|
|
|
}
|
2021-07-05 21:13:11 -07:00
|
|
|
|
|
|
|
void generalDialog::startVNC(QString server, QString password, QString port) {
|
|
|
|
std::string server_str = server.toStdString();
|
|
|
|
std::string password_str = password.toStdString();
|
|
|
|
std::string port_str = port.toStdString();
|
|
|
|
string_writeconfig("/external_root/tmp/app_vnc_server", server_str);
|
|
|
|
string_writeconfig("/external_root/tmp/app_vnc_password", password_str);
|
|
|
|
string_writeconfig("/external_root/tmp/app_vnc_port", port_str);
|
2021-07-06 07:04:28 -07:00
|
|
|
string_writeconfig("/opt/ibxd", "app_start_vnc\n");
|
2021-07-05 21:13:11 -07:00
|
|
|
qApp->quit();
|
|
|
|
}
|
2021-07-14 15:23:54 -07:00
|
|
|
|
|
|
|
void generalDialog::connectToNetworkSlot() {
|
|
|
|
if(connectToNetwork(wifiEssid, wifiPassphrase) == true) {
|
|
|
|
emit updateWifiIcon(3);
|
|
|
|
emit closeIndefiniteToast();
|
|
|
|
emit showToast("Connection successful");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
emit updateWifiIcon(2);
|
|
|
|
emit closeIndefiniteToast();
|
|
|
|
emit showToast("Connection failed");
|
|
|
|
}
|
|
|
|
generalDialog::close();
|
|
|
|
}
|
2021-08-19 05:23:18 -07:00
|
|
|
|
|
|
|
void generalDialog::startOtaUpdate(bool wasDownloadSuccessful) {
|
2021-08-25 10:16:41 -07:00
|
|
|
emit closeIndefiniteToast();
|
2021-08-19 05:23:18 -07:00
|
|
|
if(wasDownloadSuccessful == true) {
|
|
|
|
global::otaUpdate::isUpdateOta = false;
|
|
|
|
installUpdate();
|
|
|
|
}
|
|
|
|
else {
|
2021-08-25 10:16:41 -07:00
|
|
|
emit showToast("Download failed");
|
2021-08-19 05:23:18 -07:00
|
|
|
global::otaUpdate::isUpdateOta = false;
|
|
|
|
}
|
2021-08-25 10:16:41 -07:00
|
|
|
generalDialog::close();
|
2021-08-19 05:23:18 -07:00
|
|
|
}
|
2021-09-04 20:46:47 -07:00
|
|
|
|
2021-09-05 06:37:07 -07:00
|
|
|
void generalDialog::openBookFileNative(QString book, bool relativePath) {
|
|
|
|
emit openBookFile(book, relativePath);
|
2021-09-04 20:46:47 -07:00
|
|
|
}
|