From 477a7257e3aaec13dac7096ab91749399543502e Mon Sep 17 00:00:00 2001 From: ConfuSomu Date: Mon, 26 Dec 2022 17:41:45 -0500 Subject: Implement initial archive parsing --- src/mainwindow.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 58ea9d9..8f4ebfe 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1,5 +1,6 @@ #include "mainwindow.h" #include "./ui_mainwindow.h" +#include "src/archive_parser.h" #include #include @@ -25,6 +26,31 @@ void MainWindow::on_actionOpen_triggered(bool checked) { outbox_filename = files[0]; ui->statusInfoText->setText(outbox_filename); } + + if (data_archive) { + delete data_archive; + data_archive = nullptr; + } + + // TODO: Do this in another thread + QApplication::setOverrideCursor(Qt::WaitCursor); + data_archive = new Archive(outbox_filename, ArchiveType::MASTODON); + auto parse_error = data_archive->init(); + QApplication::restoreOverrideCursor(); + + switch (parse_error) { + case Archive::FailedOpeningFile: + QMessageBox::warning(this, tr("Archive Parser"), tr("Failed opening file.")); break; + case Archive::JsonParseError: + QMessageBox::warning(this, tr("Archive Parser"), tr("Failed parsing outbox JSON.")); break; + case Archive::JsonEmpty: + case Archive::JsonNull: + case Archive::JsonNotObject: + case Archive::JsonNotActivityStream: + QMessageBox::warning(this, tr("Archive Parser"), tr("The outbox JSON is empty or invalid in another way. Not an outbox.json?")); break; + case Archive::NoError: + break; + } } void MainWindow::on_actionQuit_triggered(bool checked) { -- cgit v1.2.3-54-g00ecf