From e2f9b630c52e1edac8823e7aeff1235b3dc6e7fd Mon Sep 17 00:00:00 2001 From: Michael Mandl Date: Wed, 20 Mar 2024 10:16:46 +0100 Subject: [PATCH] feat: generate word list --- QVectorSearch/CMakeLists.txt | 3 ++- QVectorSearch/mainwindow.cpp | 23 +++++++++++++++++++++++ QVectorSearch/mainwindow.h | 8 ++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/QVectorSearch/CMakeLists.txt b/QVectorSearch/CMakeLists.txt index 3193977..6b4aaac 100644 --- a/QVectorSearch/CMakeLists.txt +++ b/QVectorSearch/CMakeLists.txt @@ -33,7 +33,8 @@ else() endif() endif() -target_link_libraries(QVectorSearch PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) +target_link_libraries(QVectorSearch PRIVATE Qt${QT_VERSION_MAJOR}::Widgets + vector_search) # Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1. If # you are developing for iOS or macOS you should consider setting an explicit, diff --git a/QVectorSearch/mainwindow.cpp b/QVectorSearch/mainwindow.cpp index df8aa76..ac878e0 100644 --- a/QVectorSearch/mainwindow.cpp +++ b/QVectorSearch/mainwindow.cpp @@ -1,9 +1,32 @@ #include "mainwindow.h" #include "./ui_mainwindow.h" +#include "timer.h" +#include "word_list_generator.h" + MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); + ui->resultView->setModel(&result_model_); + + generate_word_list(); } MainWindow::~MainWindow() { delete ui; } + +void MainWindow::generate_word_list() { + Timer timer; + word_list_ = WordListGenerator().generate(); + timer.stop(); + + std::stringstream status_message; + status_message << "generated " << word_list_.size() << " words in " << timer; + ui->mainStatusBar->showMessage(QString::fromStdString(status_message.str())); + + QStringList words; + for (auto word : word_list_) { + words.append(QString::fromStdString(word)); + } + + result_model_.setStringList(words); +} diff --git a/QVectorSearch/mainwindow.h b/QVectorSearch/mainwindow.h index 94cd27c..a54de85 100644 --- a/QVectorSearch/mainwindow.h +++ b/QVectorSearch/mainwindow.h @@ -2,6 +2,7 @@ #define MAINWINDOW_H #include +#include QT_BEGIN_NAMESPACE namespace Ui { @@ -12,10 +13,17 @@ QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT +private: + std::vector word_list_; + QStringListModel result_model_; + public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); +private: + void generate_word_list(); + private: Ui::MainWindow *ui; };