X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=mainwindow.cpp;h=60f2c85dfb6e8952e63b18399ed67217310c8a54;hb=f006b5b162841dbc764fb620025b87a3272ac79a;hp=5535c151bfcf2594390d5bdb141785acfa4c77de;hpb=593173ffcdbccff777720b3c41c3e771fa93a10a;p=nageru diff --git a/mainwindow.cpp b/mainwindow.cpp index 5535c15..60f2c85 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -90,8 +90,9 @@ void MainWindow::mixer_created(Mixer *mixer) // Hook up the click. connect(ui_display->display, &GLWidget::clicked, bind(&MainWindow::channel_clicked, this, i)); - // Let the theme update the text whenever the resolution changed. + // Let the theme update the text whenever the resolution or color changed. connect(ui_display->display, &GLWidget::resolution_updated, this, &MainWindow::update_channel_name); + connect(ui_display->display, &GLWidget::color_updated, this, &MainWindow::update_channel_color); // Hook up the keyboard key. QShortcut *shortcut = new QShortcut(QKeySequence(Qt::Key_1 + i), this); @@ -280,8 +281,9 @@ void MainWindow::relayout() remaining_height -= audiostrip_height + ui->vertical_layout->spacing(); // The previews will be constrained by the remaining height, and the width. - double preview_label_height = previews[0]->title_bar->geometry().height() + ui->preview_displays->spacing(); // Wrong spacing? - int preview_total_width = ui->preview_displays->geometry().width(); + double preview_label_height = previews[0]->title_bar->geometry().height() + + previews[0]->main_vertical_layout->spacing(); + int preview_total_width = ui->preview_displays->geometry().width() - (previews.size() - 1) * ui->preview_displays->spacing(); double preview_height = min(remaining_height - preview_label_height, (preview_total_width / double(previews.size())) * 9.0 / 16.0); remaining_height -= preview_height + preview_label_height + ui->vertical_layout->spacing(); @@ -292,14 +294,12 @@ void MainWindow::relayout() // Set the widths for the previews. double preview_width = preview_height * 16.0 / 9.0; - double remaining_preview_width = preview_total_width; - for (unsigned i = 0; i < previews.size(); ++i) { ui->preview_displays->setStretch(i, lrintf(preview_width)); - remaining_preview_width -= preview_width + ui->preview_displays->spacing(); } // The preview horizontal spacer. + double remaining_preview_width = preview_total_width - previews.size() * preview_width; ui->preview_displays->setStretch(previews.size(), lrintf(remaining_preview_width)); } @@ -330,6 +330,15 @@ void MainWindow::update_channel_name(Mixer::Output output) } } +void MainWindow::update_channel_color(Mixer::Output output) +{ + if (output >= Mixer::OUTPUT_INPUT0) { + unsigned channel = output - Mixer::OUTPUT_INPUT0; + string color = global_mixer->get_channel_color(output); + previews[channel]->frame->setStyleSheet(QString::fromStdString("background-color:" + color)); + } +} + void MainWindow::transition_clicked(int transition_number) { global_mixer->transition_clicked(transition_number);