#pragma once #include #include #include #include #include "archive/base_archive.h" #include "src/list_item.h" #include "src/settingsdialog.h" #include "src/recent_files.h" #include "src/widgets/tab_activity_list.h" #include "src/widgets/tab_actor_info.h" #include "src/widgets/tab_welcome.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); public slots: //void select_list_item(QListWidgetItem* item); //void set_search_text(const QString &text); signals: void search_text_changed(const QString &text, bool search_immediately = false); void new_archive_opened(bool is_valid); private slots: void on_actionOpen_triggered(); void on_actionSettings_triggered(bool checked); void on_actionQuit_triggered(bool checked); void on_actionAbout_triggered(bool checked); private: void create_initial_tabs(); void reset_view_filters(); void relist_statuses(); void open_file(const QString &filename); void archive_thread_watcher_done(); Archive::InitError start_listWidget_itemActivated(StatusListItem* status); void finish_open_file(const Archive::InitError& parse_error); void settingsDialog_done(int result); SettingsDialog* settings_dialog = nullptr; TabWelcome* welcome_tab = nullptr; TabActivityList* activity_list_tab = nullptr; TabActorInfo* actor_info_tab = nullptr; QString open_file_filename; RecentFiles recent_files; RecentFiles::QMenuPtr recent_files_menu; Ui::MainWindow *ui; Archive *data_archive = nullptr; QFutureWatcher archive_thread_watcher; QLocale locale_context; };