]> git.sesse.net Git - pkanalytics/commitdiff
Move EventsModel into the MainWindow constructor.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Mon, 1 May 2023 15:05:33 +0000 (17:05 +0200)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Mon, 1 May 2023 15:05:33 +0000 (17:05 +0200)
main.cpp
mainwindow.h

index 0f66603d015e600d520080393816652d3f598cf8..b65895d38a278b2edff0bc9b614a231eac5db5d8 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -30,7 +30,7 @@ string format_timestamp(uint64_t pos)
        return buf;
 }
 
-MainWindow::MainWindow()
+MainWindow::MainWindow(EventsModel *events) : events(events)
 {
        player = new QMediaPlayer;
        //player->setSource(QUrl::fromLocalFile("/home/sesse/dev/stats/ultimate.mkv"));
@@ -40,6 +40,12 @@ MainWindow::MainWindow()
        ui = new Ui::MainWindow;
        ui->setupUi(this);
 
+       ui->event_view->setModel(events);
+       connect(ui->event_view->selectionModel(), &QItemSelectionModel::currentRowChanged,
+               [this, events](const QModelIndex &current, const QModelIndex &previous) {
+                       player->setPosition(events->get_time(current.row()));
+               });
+
        connect(player, &QMediaPlayer::positionChanged, [this](uint64_t pos) {
                position_changed(pos);
        });
@@ -107,16 +113,6 @@ void MainWindow::position_changed(uint64_t pos)
        update_status();
 }
 
-void MainWindow::setModel(EventsModel *model)
-{
-       ui->event_view->setModel(model);
-       this->model = model;
-       connect(ui->event_view->selectionModel(), &QItemSelectionModel::currentRowChanged,
-               [this, model](const QModelIndex &current, const QModelIndex &previous) {
-                       player->setPosition(model->get_time(current.row()));
-               });
-}
-
 void MainWindow::seek(int64_t delta_ms)
 {
        int64_t current_pos = buffered_seek ? *buffered_seek : player->position();
@@ -131,7 +127,7 @@ void MainWindow::seek(int64_t delta_ms)
 void MainWindow::insert_event(int button_id)
 {
        ui->event_view->selectionModel()->blockSignals(true);
-       ui->event_view->selectRow(model->insert_event(player->position(), button_id));
+       ui->event_view->selectRow(events->insert_event(player->position(), button_id));
        ui->event_view->selectionModel()->blockSignals(false);
 }
 
@@ -142,7 +138,7 @@ void MainWindow::set_current_event_type(const string &type)
                return;
        }
        int row = select->selectedRows().front().row();  // Should only be one, due to our selection behavior.
-       model->set_event_type(row, type);
+       events->set_event_type(row, type);
        update_status();
 }
 
@@ -154,14 +150,14 @@ void MainWindow::delete_current_event()
        }
        int row = select->selectedRows().front().row();  // Should only be one, due to our selection behavior.
        ui->event_view->selectionModel()->blockSignals(true);
-       model->delete_event(row);
+       events->delete_event(row);
        ui->event_view->selectionModel()->blockSignals(false);
        update_status();
 }
 
 void MainWindow::update_status()
 {
-       EventsModel::Status s = model->get_status_at(player->position());
+       EventsModel::Status s = events->get_status_at(player->position());
        char buf[256];
        snprintf(buf, sizeof(buf), "%d–%d | %s | %d passes, %d sec possession",
                s.our_score, s.their_score, s.offense ? "offense" : "defense", s.num_passes, s.possession_sec);
@@ -195,8 +191,7 @@ int main(int argc, char *argv[])
        QApplication app(argc, argv);
        sqlite3 *db = open_db("ultimate.db");
 
-       MainWindow mainWindow;
-       mainWindow.setModel(new EventsModel(db));
+       MainWindow mainWindow(new EventsModel(db));
        mainWindow.resize(QSize(1280, 720));
        mainWindow.show();
 
index 1f4f29c8b3babfb7c43ec754fa7d35d2dc58f426..a51b88bd3e7ff99f420e4f90884de883275492a7 100644 (file)
@@ -12,8 +12,7 @@ class MainWindow : public QMainWindow
        Q_OBJECT
 
 public:
-       MainWindow();
-       void setModel(EventsModel *model);
+       MainWindow(EventsModel *events);
 
 private:
        void position_changed(uint64_t pos);
@@ -24,7 +23,7 @@ private:
        void update_status();
 
        Ui::MainWindow *ui;
-       EventsModel *model;
+       EventsModel *events;
        bool seeking = false;
        bool playing = true;
        std::optional<uint64_t> buffered_seek;