diff options
Diffstat (limited to 'src/mainwindow.cpp')
-rw-r--r-- | src/mainwindow.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
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 <QFileDialog> #include <QMessageBox> @@ -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) { |