aboutsummaryrefslogtreecommitdiffstats
path: root/src/mainwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainwindow.cpp')
-rw-r--r--src/mainwindow.cpp25
1 files changed, 8 insertions, 17 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 4ab0bb2..8f72f23 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -21,6 +21,8 @@ MainWindow::MainWindow(QWidget *parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
+ status_info_widget = new StatusInfoWidget(this);
+ ui->gridLayout->addWidget(status_info_widget, 1, 1);
connect(ui->buttonCopy, &QPushButton::clicked, ui->actionCopy_status, &QAction::trigger);
connect(ui->buttonRandom, &QPushButton::clicked, ui->actionRandom_status, &QAction::trigger);
connect(ui->buttonSearch, &QPushButton::clicked, ui->actionFind, &QAction::trigger);
@@ -85,22 +87,13 @@ void MainWindow::on_actionAbout_triggered(bool checked) {
QMessageBox::information(this, "title", "text");
}
-std::variant<QString, Archive::InitError> start_listWidget_itemActivated(StatusListItem* status, int text_zone_width, QLocale* locale) {
- return (QString)status->get_info_html(text_zone_width, locale);
-}
-
void MainWindow::on_listWidget_itemActivated(QListWidgetItem *item) {
StatusListItem* status = dynamic_cast<StatusListItem*>(item);
if (status != nullptr) {
- const QFuture<std::variant<QString, Archive::InitError>> status_info = QtConcurrent::run(start_listWidget_itemActivated, status, ui->statusInfoText->width(), &locale_context);
- archive_thread_watcher.setFuture(status_info);
+ status_info_widget->show_list_item(status);
}
}
-void MainWindow::finish_listWidget_itemActivated(const QString& status_info) {
- ui->statusInfoText->setHtml(status_info);
-}
-
void MainWindow::on_actionRandom_status_triggered(bool checked) {
if (data_archive == nullptr) return; // No archive open, avoids crashing
@@ -291,12 +284,10 @@ void MainWindow::archive_thread_watcher_done() {
std::variant<QString, Archive::InitError> result = archive_thread_watcher.result();
// For MainWindow::on_listWidget_itemActivated
- if (const QString* status_info = std::get_if<QString>(&result)) {
- finish_listWidget_itemActivated(*status_info);
- } else
- // For MainWindow::open_file
- if (const Archive::InitError* parse_error = std::get_if<Archive::InitError>(&result)) {
- finish_open_file(*parse_error);
- } else
+ if (std::get_if<Archive::InitError>(&result)) {
+ // For MainWindow::open_file
+ if (const Archive::InitError* parse_error = std::get_if<Archive::InitError>(&result))
+ finish_open_file(*parse_error);
+ } else if (not std::get_if<QString>(&result))
qDebug() << "What, the variant is weird";
}