mirror of
https://github.com/Quill-OS/quill.git
synced 2024-12-26 23:57:22 -08:00
Improve Online Library search
This commit is contained in:
parent
a24b84acf4
commit
48a4a9e3e7
2 changed files with 51 additions and 41 deletions
|
@ -368,14 +368,14 @@ void generalDialog::on_okBtn_clicked()
|
|||
unsigned long syncEpoch = readFile("/external_root/opt/storage/gutenberg/last_sync").toULong();
|
||||
unsigned long allowSyncEpoch = syncEpoch + 86400;
|
||||
if(currentEpoch > allowSyncEpoch) {
|
||||
syncCatalog();
|
||||
syncGutenbergCatalog();
|
||||
}
|
||||
else {
|
||||
noGutenbergSyncToDo = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
syncCatalog();
|
||||
syncGutenbergCatalog();
|
||||
}
|
||||
|
||||
QTimer * syncTimer = new QTimer(this);
|
||||
|
@ -386,41 +386,10 @@ void generalDialog::on_okBtn_clicked()
|
|||
syncTimerDone = true;
|
||||
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;
|
||||
|
||||
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()));
|
||||
connect(searchResultsWidgetWindow, SIGNAL(showToast(QString)), SLOT(showToastNative(QString)));
|
||||
connect(searchResultsWidgetWindow, SIGNAL(closeIndefiniteToast()), SLOT(closeIndefiniteToastNative()));
|
||||
connect(searchResultsWidgetWindow, SIGNAL(hideDialog()), SLOT(hide()));
|
||||
searchResultsWidgetWindow->setListViewContents(searchResults);
|
||||
ui->mainStackedWidget->insertWidget(1, searchResultsWidgetWindow);
|
||||
QFile::remove("/inkbox/gutenberg-search/search_done");
|
||||
break;
|
||||
}
|
||||
else {
|
||||
global::toast::delay = 3000;
|
||||
emit showToast("No results found");
|
||||
keyboardWidget->clearLineEdit();
|
||||
global::keyboard::keyboardText = "";
|
||||
QFile::remove("/inkbox/gutenberg-search/search_done");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
global::toast::modalToast = true;
|
||||
global::toast::indefiniteToast = true;
|
||||
emit showToast("Searching");
|
||||
QTimer::singleShot(100, this, SLOT(waitForGutenbergSearchDone()));
|
||||
}
|
||||
}
|
||||
} );
|
||||
|
@ -643,10 +612,10 @@ void generalDialog::quit_restart() {
|
|||
qApp->quit();
|
||||
}
|
||||
|
||||
void generalDialog::syncCatalog() {
|
||||
void generalDialog::syncGutenbergCatalog() {
|
||||
global::toast::modalToast = true;
|
||||
global::toast::indefiniteToast = true;
|
||||
showToast("Sync in progress");
|
||||
emit showToast("Sync in progress");
|
||||
|
||||
string_writeconfig("/opt/ibxd", "gutenberg_sync\n");
|
||||
QTimer * syncCheckTimer = new QTimer(this);
|
||||
|
@ -664,7 +633,7 @@ void generalDialog::syncCatalog() {
|
|||
gutenbergSyncDone = true;
|
||||
gutenbergSyncStatus = false;
|
||||
emit closeIndefiniteToast();
|
||||
showToast("Error");
|
||||
emit showToast("Error");
|
||||
global::keyboard::searchDialog = false;
|
||||
global::forbidOpenSearchDialog = true;
|
||||
global::keyboard::keyboardDialog = false;
|
||||
|
@ -677,3 +646,43 @@ void generalDialog::syncCatalog() {
|
|||
} );
|
||||
syncCheckTimer->start();
|
||||
}
|
||||
|
||||
void generalDialog::waitForGutenbergSearchDone() {
|
||||
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;
|
||||
|
||||
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()));
|
||||
connect(searchResultsWidgetWindow, SIGNAL(showToast(QString)), SLOT(showToastNative(QString)));
|
||||
connect(searchResultsWidgetWindow, SIGNAL(closeIndefiniteToast()), SLOT(closeIndefiniteToastNative()));
|
||||
connect(searchResultsWidgetWindow, SIGNAL(hideDialog()), SLOT(hide()));
|
||||
searchResultsWidgetWindow->setListViewContents(searchResults);
|
||||
ui->mainStackedWidget->insertWidget(1, searchResultsWidgetWindow);
|
||||
QFile::remove("/inkbox/gutenberg-search/search_done");
|
||||
emit closeIndefiniteToast();
|
||||
break;
|
||||
}
|
||||
else {
|
||||
global::toast::delay = 3000;
|
||||
emit showToast("No results found");
|
||||
keyboardWidget->clearLineEdit();
|
||||
global::keyboard::keyboardText = "";
|
||||
QFile::remove("/inkbox/gutenberg-search/search_done");
|
||||
emit closeIndefiniteToast();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -62,7 +62,8 @@ private slots:
|
|||
void showToastNative(QString messageToDisplay);
|
||||
void closeIndefiniteToastNative();
|
||||
void quit_restart();
|
||||
void syncCatalog();
|
||||
void syncGutenbergCatalog();
|
||||
void waitForGutenbergSearchDone();
|
||||
|
||||
private:
|
||||
Ui::generalDialog *ui;
|
||||
|
|
Loading…
Reference in a new issue