#pragma once #include #include #include #include #include #include "archive_parser.h" #include "types.h" #include "command_line.h" QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); void act_command_line(CommandLineParsedOptions &options, QCommandLineParser &parser); private slots: void on_actionOpen_triggered(bool checked); void on_actionQuit_triggered(bool checked); void on_actionAbout_triggered(bool checked); void on_actionAll_toots_triggered(bool checked); void on_actionPublic_toots_triggered(bool checked); void on_actionUnlisted_toots_triggered(bool checked); void on_actionPrivate_toots_triggered(bool checked); void on_actionDirect_messages_triggered(bool checked); void on_actionOnly_with_attachment_triggered(bool checked); void on_actionReblogs_triggered(bool checked); void on_actionRandom_status_triggered(bool checked); void on_actionCopy_status_triggered(bool checked); void on_buttonSearch_clicked(); void on_menuView_aboutToHide(); void on_listWidget_itemActivated(QListWidgetItem *item); private: void reset_view_filters(); void relist_statuses(); void open_file(const QString &filename); void archive_thread_watcher_done(); void finish_listWidget_itemActivated(const QString& status_info); void finish_open_file(const Archive::InitError& parse_error); QString open_file_filename; Ui::MainWindow *ui; ViewStatusTypes view_filters; bool view_filters_changed = false; Archive *data_archive = nullptr; QFutureWatcher> archive_thread_watcher; QLocale locale_context; };