Search in local storage implemented

Now I have to implement an "Open" function
This commit is contained in:
Nicolas Mailloux 2021-09-04 22:18:17 -04:00
parent f4a842a55d
commit f670ba207b
9 changed files with 164 additions and 1 deletions

View file

@ -10,6 +10,9 @@
#include <QScreen>
#include <QTimer>
#include <QMessageBox>
#include <QDirIterator>
#include <QStringListModel>
#include <QListView>
generalDialog::generalDialog(QWidget *parent) :
QDialog(parent),
@ -252,6 +255,43 @@ void generalDialog::on_okBtn_clicked()
connect(dictionaryWidgetWindow, SIGNAL(destroyed(QObject*)), SLOT(restartSearchDialog()));
ui->mainStackedWidget->insertWidget(1, dictionaryWidgetWindow);
}
else if(ui->searchComboBox->currentText() == "Local storage") {
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);
searchResultsWidgetWindow->setListViewContents(storageSearchResults);
ui->mainStackedWidget->insertWidget(1, searchResultsWidgetWindow);
}
else {
emit showToast("No results found");
}
}
else {
;
}

View file

@ -9,6 +9,7 @@
#include "virtualkeypad.h"
#include "dictionarywidget.h"
#include "otamanager.h"
#include "searchresultswidget.h"
using namespace std;
@ -62,6 +63,7 @@ private:
virtualkeypad *keypadWidget;
dictionaryWidget *dictionaryWidgetWindow;
otaManager *otaManagerWindow;
searchResultsWidget * searchResultsWidgetWindow;
signals:
void gotoPageSelected(int value);

View file

@ -218,6 +218,11 @@
<string>Dictionary</string>
</property>
</item>
<item>
<property name="text">
<string>Local storage</string>
</property>
</item>
</widget>
</item>
</layout>

View file

@ -25,6 +25,7 @@ SOURCES += \
quit.cpp \
reader.cpp \
savedwords.cpp \
searchresultswidget.cpp \
settings.cpp \
settingschooser.cpp \
textwidget.cpp \
@ -49,6 +50,7 @@ HEADERS += \
quit.h \
reader.h \
savedwords.h \
searchresultswidget.h \
settings.h \
settingschooser.h \
textwidget.h \
@ -72,6 +74,7 @@ FORMS += \
quit.ui \
reader.ui \
savedwords.ui \
searchresultswidget.ui \
settings.ui \
settingschooser.ui \
textwidget.ui \

View file

@ -18,7 +18,7 @@ savedwords::savedwords(QWidget *parent) :
checkwords();
QStringListModel* model = new QStringListModel(this);
QStringListModel * model = new QStringListModel(this);
QStringList list = words.split("\n", QString::SkipEmptyParts);
model->setStringList(list);
ui->wordsList->setModel(model);

25
searchresultswidget.cpp Normal file
View file

@ -0,0 +1,25 @@
#include "searchresultswidget.h"
#include "ui_searchresultswidget.h"
#include <QDebug>
searchResultsWidget::searchResultsWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::searchResultsWidget)
{
ui->setupUi(this);
ui->listView->setStyleSheet("font-size: 9pt");
ui->backBtn->setProperty("type", "borderless");
ui->backBtn->setStyleSheet("font-size: 9pt; padding: 10px; font-weight: bold; background: lightGrey");
}
searchResultsWidget::~searchResultsWidget()
{
delete ui;
}
void searchResultsWidget::setListViewContents(QStringList searchResults) {
QStringListModel * model = new QStringListModel(this);
model->setStringList(searchResults);
ui->listView->setModel(model);
}

24
searchresultswidget.h Normal file
View file

@ -0,0 +1,24 @@
#ifndef SEARCHRESULTSWIDGET_H
#define SEARCHRESULTSWIDGET_H
#include <QWidget>
#include <QStringListModel>
namespace Ui {
class searchResultsWidget;
}
class searchResultsWidget : public QWidget
{
Q_OBJECT
public:
explicit searchResultsWidget(QWidget *parent = nullptr);
~searchResultsWidget();
void setListViewContents(QStringList searchResults);
private:
Ui::searchResultsWidget *ui;
};
#endif // SEARCHRESULTSWIDGET_H

63
searchresultswidget.ui Normal file
View file

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>searchResultsWidget</class>
<widget class="QWidget" name="searchResultsWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<widget class="QListView" name="listView"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="searchResultsLabel">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Search results</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QPushButton" name="backBtn">
<property name="text">
<string>Back</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View file

@ -900,6 +900,7 @@ void settings::launchOtaUpdater() {
}
void settings::openUpdateDialogOTA(bool open) {
emit closeIndefiniteToast();
if(open == true) {
global::otaUpdate::isUpdateOta = true;
openUpdateDialog();