]> git.sesse.net Git - ultimatescore/blobdiff - client/mainwindow.cpp
Unbreak the carousel.
[ultimatescore] / client / mainwindow.cpp
index 3dd371516f8d6c13e2202bdc4de352569263a2d8..9787ecbea584caa21e519075765b5c38ae38e8c0 100644 (file)
@@ -120,7 +120,21 @@ MainWindow::MainWindow(QWidget *parent) :
        connect(ui->show_lower_third_btn, &QPushButton::clicked, this, &MainWindow::show_lower_third_clicked);
        connect(ui->hide_lower_third_btn, &QPushButton::clicked, this, &MainWindow::hide_lower_third_clicked);
 
+       connect(ui->quick_lower_third_edit, &QLineEdit::returnPressed, this, &MainWindow::quick_lower_third_activate);
+       connect(ui->show_quick_lower_third_btn, &QPushButton::clicked, this, &MainWindow::quick_lower_third_activate);
+
+       connect(ui->show_scorebug_btn, &QPushButton::clicked, this, &MainWindow::show_scorebug_clicked);
+       connect(ui->show_group_a_btn, &QPushButton::clicked, this, [this]() { show_group_clicked("Group A"); });
+       connect(ui->show_group_b_btn, &QPushButton::clicked, this, [this]() { show_group_clicked("Group B"); });
+       connect(ui->show_schedule_btn, &QPushButton::clicked, this, &MainWindow::show_schedule_clicked);
+       connect(ui->show_carousel_btn, &QPushButton::clicked, this, &MainWindow::show_carousel_clicked);
+       connect(ui->show_nothing_btn, &QPushButton::clicked, this, &MainWindow::show_nothing_clicked);
+
        autocomment_update();
+
+       const set<pair<unsigned, unsigned>> usb{{ 0x0e8f, 0x0041 }};
+       event_device = new EventDevice(usb, ui->quick_lower_third_edit);
+       event_device->start_thread();
 }
 
 MainWindow::~MainWindow()
@@ -244,6 +258,24 @@ void MainWindow::hide_lower_third_clicked()
        acmp->send_command("cg 1 invoke 1 hidelowerthird");
 }
 
+void MainWindow::quick_lower_third_activate()
+{
+       string code = ui->quick_lower_third_edit->text().toUpper().toStdString();
+       if (code == "A") {
+               add_goal(ui->score_1_box, 1);
+       } else if (code == "B") {
+               add_goal(ui->score_2_box, 1);
+       } else if (code == "C") {
+               acmp->send_command("cg 1 invoke 1 hidelowerthird");
+       } else {
+               map<string, string> param;
+               param["code"] = code;
+               acmp->send_command("cg 1 update 1 \"" + escape_quotes(serialize_as_json(param)) + "\"");
+               acmp->send_command("cg 1 invoke 1 quicklowerthird");
+       }
+       ui->quick_lower_third_edit->clear();
+}
+
 void MainWindow::autocomment_update()
 {
        int score1 = ui->score_1_box->value();
@@ -260,3 +292,38 @@ void MainWindow::autocomment_update()
        }
        ui->autocomment_edit->setText(QString::fromStdString(msg));
 }
+
+void MainWindow::show_scorebug_clicked()
+{
+       acmp->send_command("cg 1 invoke 1 stopcarousel");
+       acmp->send_command("cg 1 invoke 1 hidetable");
+       acmp->send_command("cg 1 invoke 1 showscorebug");
+}
+
+void MainWindow::show_group_clicked(const std::string &group_name)
+{
+       map<string, string> param;
+       param["group_name"] = group_name;
+       acmp->send_command("cg 1 invoke 1 stopcarousel");
+       acmp->send_command("cg 1 update 1 \"" + escape_quotes(serialize_as_json(param)) + "\"");
+       acmp->send_command("cg 1 invoke 1 showgroup_from_state");
+}
+
+void MainWindow::show_schedule_clicked()
+{
+       acmp->send_command("cg 1 invoke 1 stopcarousel");
+       acmp->send_command("cg 1 invoke 1 showschedule");
+}
+
+void MainWindow::show_carousel_clicked()
+{
+       acmp->send_command("cg 1 invoke 1 stopcarousel");
+       acmp->send_command("cg 1 invoke 1 showcarousel");
+}
+
+void MainWindow::show_nothing_clicked()
+{
+       acmp->send_command("cg 1 invoke 1 hidescorebug");
+       acmp->send_command("cg 1 invoke 1 stopcarousel");
+       acmp->send_command("cg 1 invoke 1 hidetable");
+}