quill/searchresultswidget.cpp
2021-12-28 19:08:14 -05:00

90 lines
2.8 KiB
C++

#include "searchresultswidget.h"
#include "ui_searchresultswidget.h"
#include "functions.h"
#include <QMessageBox>
searchResultsWidget::searchResultsWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::searchResultsWidget)
{
ui->setupUi(this);
ui->listView->setStyleSheet("font-size: 10pt");
ui->backBtn->setProperty("type", "borderless");
ui->backBtn->setStyleSheet("font-size: 9pt; padding: 10px; font-weight: bold; background: lightGrey");
ui->openBtn->setProperty("type", "borderless");
ui->openBtn->setStyleSheet("font-size: 9pt; padding: 10px; font-weight: bold; background: lightGrey");
if(global::library::libraryResults == true) {
global::library::libraryResults = false;
libraryResults = true;
}
}
searchResultsWidget::~searchResultsWidget()
{
delete ui;
}
void searchResultsWidget::setListViewContents(QStringList searchResults) {
QStringListModel * model = new QStringListModel(this);
model->setStringList(searchResults);
ui->listView->setModel(model);
}
void searchResultsWidget::on_openBtn_clicked()
{
if(libraryResults == true) {
// Get currently selected row number
int selectedRow = ui->listView->currentIndex().row();
// So that row 0 becomes row 1
selectedRow = selectedRow + 1;
QString selectedRowQstr = QString::number(selectedRow);
QString prog ("sed");
QStringList args;
args << "-n" << selectedRowQstr + "p" << "/inkbox/gutenberg-search/search_results_ids";
QProcess *proc = new QProcess();
proc->start(prog, args);
proc->waitForFinished();
QString bookIdQstr = proc->readAllStandardOutput();
proc->deleteLater();
unsigned long bookId = bookIdQstr.toULong();
global::library::bookId = bookId;
index = ui->listView->currentIndex();
itemText = index.data(Qt::DisplayRole).toString();
global::library::bookTitle = itemText;
bookInfoDialog * bookInfoDialogWindow = new bookInfoDialog();
bookInfoDialogWindow->setAttribute(Qt::WA_DeleteOnClose);
bookInfoDialogWindow->show();
global::keyboard::searchDialog = false;
global::keyboard::keyboardDialog = false;
searchResultsWidget::close();
}
else {
index = ui->listView->currentIndex();
itemText = index.data(Qt::DisplayRole).toString();
if(!itemText.isEmpty()) {
emit openBookFile(itemText, true);
global::keyboard::searchDialog = false;
global::keyboard::keyboardDialog = false;
searchResultsWidget::close();
}
else {
QMessageBox::critical(this, tr("Invalid argument"), tr("Please select a search result."));
}
}
}
void searchResultsWidget::on_backBtn_clicked()
{
global::forbidOpenSearchDialog = false;
searchResultsWidget::close();
}