X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=mainwindow.h;h=f7c8830b8125ba6023cbe0f6a9f7eeb01f184ac2;hb=1dabb8bdf81cbdb19fc84278f7b9bb40d469ad0a;hp=f046b688746933e57db7d10b8fd1f8c147b55fd1;hpb=bf59a4e85aa415271885165e6b23bb3ee03f9bbf;p=pkanalytics diff --git a/mainwindow.h b/mainwindow.h index f046b68..f7c8830 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -7,28 +7,43 @@ class EventsModel; class PlayersModel; +class FormationsModel; class MainWindow : public QMainWindow { Q_OBJECT public: - MainWindow(EventsModel *events, PlayersModel *players); + MainWindow(EventsModel *events, PlayersModel *players, + FormationsModel *offensive_formations, FormationsModel *defensive_formations); + ~MainWindow() { + if (ui && ui->video) { + ui->video->stop(); + } + } private: void position_changed(uint64_t pos); void seek(int64_t delta_ms); - void insert_event(int button_id); + void insert_player_event(int button_id); + void insert_noplayer_event(const std::string &type); void set_current_event_type(const std::string &type); + void insert_or_change_formation(bool offense); void delete_current_event(); void make_substitution(); - void update_status(); + void formation_double_clicked(bool offense, unsigned row); + + void update_ui_from_time(uint64_t t); + void update_status(uint64_t t); + void update_player_buttons(uint64_t t); + void update_action_buttons(uint64_t t); Ui::MainWindow *ui; EventsModel *events; PlayersModel *players; + FormationsModel *offensive_formations; + FormationsModel *defensive_formations; bool seeking = false; bool playing = true; std::optional buffered_seek; - QMediaPlayer *video; };