extern int64_t current_pts;
-template <class Model>
-void replace_model(QTableView *view, Model **model, Model *new_model, MainWindow *main_window)
-{
- QItemSelectionModel *old_selection_model = view->selectionModel();
- view->setModel(new_model);
- delete *model;
- delete old_selection_model;
- *model = new_model;
- main_window->connect(new_model, &Model::any_content_changed, main_window, &MainWindow::content_changed);
-}
-
MainWindow::MainWindow()
: ui(new Ui::MainWindow),
db(global_flags.working_directory + "/futatabi.db")
// for Player to shut down, we could have a deadlock here.
promise<pair<Clip, size_t>> clip_promise;
future<pair<Clip, size_t>> clip = clip_promise.get_future();
- post_to_main_thread([this, &clip_promise] {
+ post_to_main_thread([&clip_promise] {
int row = playlist_clips->get_currently_playing();
if (row != -1 && row < int(playlist_clips->size()) - 1) {
clip_promise.set_value(make_pair(*playlist_clips->clip(row + 1), row + 1));
StateProto state = undo_stack.back();
ui->undo_action->setEnabled(undo_stack.size() > 1);
- replace_model(ui->clip_list, &cliplist_clips, new ClipList(state.clip_list()), this);
- replace_model(ui->playlist, &playlist_clips, new PlayList(state.play_list()), this);
+ replace_model(ui->clip_list, &cliplist_clips, new ClipList(state.clip_list()));
+ replace_model(ui->playlist, &playlist_clips, new PlayList(state.play_list()));
db.store_state(state);
}
ui->redo_action->setEnabled(!redo_stack.empty());
const StateProto &state = undo_stack.back();
- replace_model(ui->clip_list, &cliplist_clips, new ClipList(state.clip_list()), this);
- replace_model(ui->playlist, &playlist_clips, new PlayList(state.play_list()), this);
+ replace_model(ui->clip_list, &cliplist_clips, new ClipList(state.clip_list()));
+ replace_model(ui->playlist, &playlist_clips, new PlayList(state.play_list()));
db.store_state(state);
}
lock_guard<mutex> lock(queue_status_mu);
return {queue_status, "text/plain"};
}
+
+template <class Model>
+void MainWindow::replace_model(QTableView *view, Model **model, Model *new_model)
+{
+ QItemSelectionModel *old_selection_model = view->selectionModel();
+ view->setModel(new_model);
+ delete *model;
+ delete old_selection_model;
+ *model = new_model;
+ connect(new_model, &Model::any_content_changed, this, &MainWindow::content_changed);
+}