Drastic speed improvement when reading big books. Initial EPUB support.

UI fixes.
This commit is contained in:
Nicolas Mailloux 2021-03-27 19:08:05 -04:00
parent 69327c5363
commit 2f0c8d2a30
3 changed files with 620 additions and 550 deletions

View file

@ -104,14 +104,17 @@ reader::reader(QWidget *parent) :
// Hiding the menubar + definition widget + brightness widget // Hiding the menubar + definition widget + brightness widget
ui->hideOptionsBtn->hide(); ui->hideOptionsBtn->hide();
ui->menuWidget->setVisible(false);
ui->brightnessWidget->setVisible(false); ui->brightnessWidget->setVisible(false);
ui->menuBarWidget->setVisible(false); ui->menuBarWidget->setVisible(false);
ui->wordWidget->setVisible(false); ui->wordWidget->setVisible(false);
if(checkconfig(".config/11-menubar/sticky") == true) { if(checkconfig(".config/11-menubar/sticky") == true) {
ui->menuWidget->setVisible(true);
ui->spacerWidget->setVisible(true); ui->spacerWidget->setVisible(true);
ui->statusBarWidget->setVisible(true); ui->statusBarWidget->setVisible(true);
} }
else { else {
ui->menuWidget->setVisible(false);
ui->spacerWidget->setVisible(false); ui->spacerWidget->setVisible(false);
ui->statusBarWidget->setVisible(false); ui->statusBarWidget->setVisible(false);
} }
@ -277,9 +280,8 @@ reader::reader(QWidget *parent) :
// Counting number of parsed files // Counting number of parsed files
split_total = setup_book(book_file, 0, true); split_total = setup_book(book_file, 0, true);
split_files_number = split_total;
split_total = split_total - 1; split_total = split_total - 1;
split_files_number = setup_book(book_file, 0, true);
split_files_number = split_files_number / 2;
// Get text // Get text
QDir::setCurrent("/mnt/onboard/.adds/inkbox"); QDir::setCurrent("/mnt/onboard/.adds/inkbox");
@ -365,6 +367,7 @@ void reader::on_nextBtn_clicked()
QMessageBox::critical(this, tr("Invalid argument"), tr("You've reached the end of the document.")); QMessageBox::critical(this, tr("Invalid argument"), tr("You've reached the end of the document."));
} }
else { else {
parser_ran = true;
split_total = split_total - 1; split_total = split_total - 1;
setup_book(book_file, split_total, false); setup_book(book_file, split_total, false);
ui->text->setText(""); ui->text->setText("");
@ -379,6 +382,7 @@ void reader::on_previousBtn_clicked()
QMessageBox::critical(this, tr("Invalid argument"), tr("No previous page.")); QMessageBox::critical(this, tr("Invalid argument"), tr("No previous page."));
} }
else { else {
parser_ran = true;
split_total = split_total + 1; split_total = split_total + 1;
setup_book(book_file, split_total, false); setup_book(book_file, split_total, false);
ui->text->setText(""); ui->text->setText("");
@ -519,6 +523,7 @@ void reader::menubar_show() {
ui->hideOptionsBtn->show(); ui->hideOptionsBtn->show();
ui->optionsBtn->hide(); ui->optionsBtn->hide();
ui->menuWidget->setVisible(true);
ui->menuBarWidget->setVisible(true); ui->menuBarWidget->setVisible(true);
ui->statusBarWidget->setVisible(true); ui->statusBarWidget->setVisible(true);
@ -529,6 +534,13 @@ void reader::menubar_show() {
else { else {
ui->brightnessWidget->setVisible(true); ui->brightnessWidget->setVisible(true);
} }
if(checkconfig(".config/11-menubar/sticky") == true) {
ui->spacerWidget->setVisible(false);
}
else {
// Safety measure
ui->spacerWidget->setVisible(false);
}
menubar_shown = true; menubar_shown = true;
} }
@ -536,9 +548,10 @@ void reader::menubar_show() {
void reader::menubar_hide() { void reader::menubar_hide() {
string_checkconfig("/opt/inkbox_device"); string_checkconfig("/opt/inkbox_device");
if(checkconfig_str_val == "n705\n") { if(checkconfig_str_val == "n705\n") {
; ui->brightnessWidget->setVisible(false);
} }
else { else {
// Safety measure
ui->brightnessWidget->setVisible(false); ui->brightnessWidget->setVisible(false);
} }
ui->hideOptionsBtn->hide(); ui->hideOptionsBtn->hide();
@ -552,6 +565,7 @@ void reader::menubar_hide() {
ui->spacerWidget->setVisible(false); ui->spacerWidget->setVisible(false);
ui->statusBarWidget->setVisible(false); ui->statusBarWidget->setVisible(false);
} }
ui->menuWidget->hide();
menubar_shown = false; menubar_shown = false;
} }

View file

@ -32,6 +32,9 @@ public:
bool menubar_shown = false; bool menubar_shown = false;
bool selected_text_lock = false; bool selected_text_lock = false;
bool nextdefinition_lock = false; bool nextdefinition_lock = false;
bool is_epub = false;
bool parser_ran = false;
bool booktostr_ran = false;
QString book_1; QString book_1;
QString book_2; QString book_2;
QString book_3; QString book_3;
@ -71,7 +74,6 @@ public:
}; };
int setup_book(QString book, int i, bool run_parser) { int setup_book(QString book, int i, bool run_parser) {
// Parse ebook // Parse ebook
// TODO: Use BeautifulSoup with Python to parse ePUBs and display them... somehow (?
QString mount_prog ("sh"); QString mount_prog ("sh");
QStringList mount_args; QStringList mount_args;
mount_args << "split.sh"; mount_args << "split.sh";
@ -79,18 +81,29 @@ public:
mount_proc->start(mount_prog, mount_args); mount_proc->start(mount_prog, mount_args);
mount_proc->waitForFinished(); mount_proc->waitForFinished();
if(booktostr_ran != true) {
if(epub_file_match(book) == true) { if(epub_file_match(book) == true) {
// Parsing ePUB with epub2txt, thanks to GitHub:kevinboone // Parsing ePUBs with epub2txt, thanks to GitHub:kevinboone
QString epubProg ("sh");
QStringList epubArgs;
epubArgs << "/mnt/onboard/.adds/inkbox/epub.sh" << book;
QProcess *epubProc = new QProcess();
epubProc->start(epubProg, epubArgs);
epubProc->waitForFinished();
is_epub = true;
booktostr_ran = true;
} }
else { else {
// This is likely not an ePUB. // This is likely not an ePUB.
;
}
// Copying book specified in the function call // Copying book specified in the function call
QFile::copy(book, "/inkbox/book/book.txt"); QFile::copy(book, "/inkbox/book/book.txt");
is_epub = false;
booktostr_ran = true;
}
}
// Checking if the user has defined an option for the number of words per page; if not, then setting the default. // Checking if the user has defined an option for the number of words per page; if not, then setting the default.
QDir::setCurrent("/mnt/onboard/.adds/inkbox"); QDir::setCurrent("/mnt/onboard/.adds/inkbox");
string_checkconfig(".config/07-words_number/config"); string_checkconfig(".config/07-words_number/config");
@ -100,12 +113,26 @@ public:
} }
// Parsing file // Parsing file
if(parser_ran != true) {
if(is_epub == true) {
QString parse_prog ("python3"); QString parse_prog ("python3");
QStringList parse_args; QStringList parse_args;
parse_args << "split.py" << checkconfig_str_val; parse_args << "split.py" << checkconfig_str_val;
QProcess *parse_proc = new QProcess(); QProcess *parse_proc = new QProcess();
parse_proc->start(parse_prog, parse_args); parse_proc->start(parse_prog, parse_args);
parse_proc->waitForFinished(); parse_proc->waitForFinished();
parser_ran = false;
}
else {
QString parse_prog ("python3");
QStringList parse_args;
parse_args << "split-txt.py" << checkconfig_str_val;
QProcess *parse_proc = new QProcess();
parse_proc->start(parse_prog, parse_args);
parse_proc->waitForFinished();
parser_ran = false;
}
}
// Changing current working directory // Changing current working directory
QDir::setCurrent("/inkbox/book"); QDir::setCurrent("/inkbox/book");
@ -141,7 +168,6 @@ public:
QString valuestr = int_config.readAll(); QString valuestr = int_config.readAll();
int value = valuestr.toInt(); int value = valuestr.toInt();
int_config.close(); int_config.close();
qDebug() << value;
return value; return value;
} }
void string_checkconfig_ro(QString file) { void string_checkconfig_ro(QString file) {
@ -200,11 +226,9 @@ public:
QString fileExt = file.right(4); QString fileExt = file.right(4);
if(fileExt == "epub" or fileExt=="EPUB") { if(fileExt == "epub" or fileExt=="EPUB") {
qDebug() << "True.";
return true; return true;
} }
else { else {
qDebug() << "False.";
return false; return false;
} }
}; };

860
reader.ui
View file

@ -16,20 +16,36 @@
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="9" column="0"> <item row="16" column="0">
<spacer name="verticalSpacer_2"> <widget class="Line" name="line_2">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>2</number>
</property>
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Horizontal</enum>
</property> </property>
<property name="sizeHint" stdset="0"> </widget>
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item> </item>
<item row="1" column="0"> <item row="8" column="0">
<widget class="QStackedWidget" name="menuWidget">
<widget class="QWidget" name="page_20">
<layout class="QVBoxLayout" name="verticalLayout_8">
<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>
<widget class="QStackedWidget" name="statusBarWidget"> <widget class="QStackedWidget" name="statusBarWidget">
<widget class="QWidget" name="page_3"> <widget class="QWidget" name="page_3">
<layout class="QVBoxLayout" name="verticalLayout_3"> <layout class="QVBoxLayout" name="verticalLayout_3">
@ -46,6 +62,11 @@
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
<layout class="QGridLayout" name="gridLayout_17">
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_3"> <layout class="QGridLayout" name="gridLayout_3">
<property name="bottomMargin"> <property name="bottomMargin">
<number>0</number> <number>0</number>
@ -88,7 +109,7 @@
</item> </item>
</layout> </layout>
</item> </item>
<item> <item row="1" column="0">
<widget class="Line" name="line_5"> <widget class="Line" name="line_5">
<property name="frameShadow"> <property name="frameShadow">
<enum>QFrame::Plain</enum> <enum>QFrame::Plain</enum>
@ -101,6 +122,8 @@
</property> </property>
</widget> </widget>
</item> </item>
</layout>
</item>
<item> <item>
<widget class="QStackedWidget" name="spacerWidget"> <widget class="QStackedWidget" name="spacerWidget">
<widget class="QWidget" name="page_10"> <widget class="QWidget" name="page_10">
@ -143,301 +166,7 @@
<widget class="QWidget" name="page_5"/> <widget class="QWidget" name="page_5"/>
</widget> </widget>
</item> </item>
<item row="16" column="0">
<widget class="Line" name="line_2">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>2</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="12" column="0">
<widget class="QStackedWidget" name="wordWidget">
<widget class="QWidget" name="page_8">
<layout class="QVBoxLayout" name="verticalLayout_4">
<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> <item>
<widget class="Line" name="line_12">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>8</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_5">
<property name="bottomMargin">
<number>0</number>
</property>
<property name="spacing">
<number>6</number>
</property>
<item row="1" column="3">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="saveWordBtn">
<property name="text">
<string>Save</string>
</property>
</widget>
</item>
<item row="1" column="4">
<widget class="QPushButton" name="infoCloseBtn">
<property name="text">
<string>Close</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLabel" name="wordSearchLabel">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Word search</string>
</property>
</widget>
</item>
<item row="1" column="1">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_12">
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0">
<layout class="QGridLayout" name="gridLayout_14">
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="2">
<widget class="Line" name="line_14">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>2</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QLabel" name="definitionLabel">
<property name="font">
<font>
<family>Source Serif Pro</family>
</font>
</property>
<property name="text">
<string>Definition</string>
</property>
<property name="alignment">
<set>Qt::AlignJustify|Qt::AlignVCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="wordLabel">
<property name="font">
<font>
<family>Ubuntu</family>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Word</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="4">
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0">
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="3" column="0">
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="0">
<layout class="QGridLayout" name="gridLayout_9">
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="0">
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="previousDefinitionBtn">
<property name="text">
<string>Previous</string>
</property>
</widget>
</item>
<item row="0" column="4">
<spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="2">
<widget class="QLabel" name="definitionStatusLabel">
<property name="text">
<string>Status</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="nextDefinitionBtn">
<property name="text">
<string>Next</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="0">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line_13">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>8</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_9"/>
</widget>
</item>
<item row="3" column="0">
<widget class="QStackedWidget" name="brightnessWidget"> <widget class="QStackedWidget" name="brightnessWidget">
<property name="lineWidth"> <property name="lineWidth">
<number>0</number> <number>0</number>
@ -521,115 +250,9 @@
<widget class="QWidget" name="page_13"/> <widget class="QWidget" name="page_13"/>
</widget> </widget>
</item> </item>
<item row="10" column="0"> <item>
<widget class="QLabel" name="text"> <layout class="QGridLayout" name="gridLayout_19">
<property name="font">
<font>
<family>Ubuntu</family>
<italic>false</italic>
</font>
</property>
<property name="text">
<string>Text</string>
</property>
<property name="alignment">
<set>Qt::AlignJustify|Qt::AlignVCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="17" column="0">
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="4">
<widget class="Line" name="line_3">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QPushButton" name="previousBtn">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Previous</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="Line" name="line">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="optionsBtn">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Options</string>
</property>
</widget>
</item>
<item row="0" column="5">
<widget class="QPushButton" name="nextBtn">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Next</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="hideOptionsBtn">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Hide</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="11" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="8" column="0">
<widget class="QStackedWidget" name="menuBarWidget"> <widget class="QStackedWidget" name="menuBarWidget">
<property name="frameShadow"> <property name="frameShadow">
<enum>QFrame::Plain</enum> <enum>QFrame::Plain</enum>
@ -958,6 +581,415 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="page_21"/>
</widget>
</item>
<item row="12" column="0">
<widget class="QStackedWidget" name="wordWidget">
<widget class="QWidget" name="page_8">
<layout class="QVBoxLayout" name="verticalLayout_4">
<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>
<widget class="Line" name="line_12">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>8</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_5">
<property name="bottomMargin">
<number>0</number>
</property>
<property name="spacing">
<number>6</number>
</property>
<item row="1" column="3">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="saveWordBtn">
<property name="text">
<string>Save</string>
</property>
</widget>
</item>
<item row="1" column="4">
<widget class="QPushButton" name="infoCloseBtn">
<property name="text">
<string>Close</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLabel" name="wordSearchLabel">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Word search</string>
</property>
</widget>
</item>
<item row="1" column="1">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_12">
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0">
<layout class="QGridLayout" name="gridLayout_14">
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="2">
<widget class="Line" name="line_14">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>2</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QLabel" name="definitionLabel">
<property name="font">
<font>
<family>Source Serif Pro</family>
</font>
</property>
<property name="text">
<string>Definition</string>
</property>
<property name="alignment">
<set>Qt::AlignJustify|Qt::AlignVCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="wordLabel">
<property name="font">
<font>
<family>Ubuntu</family>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Word</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="4">
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0">
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="3" column="0">
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="0">
<layout class="QGridLayout" name="gridLayout_9">
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="0">
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="previousDefinitionBtn">
<property name="text">
<string>Previous</string>
</property>
</widget>
</item>
<item row="0" column="4">
<spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="2">
<widget class="QLabel" name="definitionStatusLabel">
<property name="text">
<string>Status</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="nextDefinitionBtn">
<property name="text">
<string>Next</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="0">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line_13">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>8</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_9"/>
</widget>
</item>
<item row="11" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="17" column="0">
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="4">
<widget class="Line" name="line_3">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QPushButton" name="previousBtn">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Previous</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="Line" name="line">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="optionsBtn">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Options</string>
</property>
</widget>
</item>
<item row="0" column="5">
<widget class="QPushButton" name="nextBtn">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Next</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="hideOptionsBtn">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Hide</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="10" column="0">
<widget class="QLabel" name="text">
<property name="font">
<font>
<family>Ubuntu</family>
<italic>false</italic>
</font>
</property>
<property name="text">
<string>Text</string>
</property>
<property name="alignment">
<set>Qt::AlignJustify|Qt::AlignVCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="9" column="0">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>