From db0091f96f03c70f1d82c40a0a985947e6acbc59 Mon Sep 17 00:00:00 2001 From: lostjared Date: Thu, 15 Nov 2018 15:57:58 -0800 Subject: [PATCH] added tolerance level in Chroma Window --- src/chroma_window.cpp | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/src/chroma_window.cpp b/src/chroma_window.cpp index cbebd20..4b07c59 100644 --- a/src/chroma_window.cpp +++ b/src/chroma_window.cpp @@ -78,8 +78,8 @@ void ChromaWindow::createControls() { color_okay = new QPushButton(tr("Set Keys"), this); color_okay->setGeometry(320-10,210, 75, 20); - lowColor = new QLabel("Set", this); - highColor = new QLabel("Set", this); + lowColor = new QLabel("", this); + highColor = new QLabel("", this); lowColor->setGeometry(330, 65, 25, 20); highColor->setGeometry(330, 90, 25, 20); @@ -101,12 +101,16 @@ void ChromaWindow::openColorSelectRange() { // set to use range string_low->setText(tr("BGR Low: ")); string_high->setText(tr("BGR High:")); + highColor->show(); + highButton->show(); } void ChromaWindow::openColorSelectTolerance() { // set to use tolerance string_low->setText(tr("Tolerance -")); string_high->setText(tr("Tolerance +")); + highColor->hide(); + highButton->hide(); } void ChromaWindow::colorAdd() { @@ -127,8 +131,23 @@ void ChromaWindow::colorAdd() { key_id.high = high; if(button_select_range->isChecked()) key_id.key_type = ac::KeyValueType::KEY_RANGE; - else + else { key_id.key_type = ac::KeyValueType::KEY_TOLERANCE; + int low_color[] = { set_low_color.blue()-low[0], set_low_color.green()-low[1], set_low_color.red()-low[2]}; + for(int i = 0; i < 3; ++i) { + if(low_color[i] < 0) + low_color[i] = 0; + key_id.low[i] = low_color[i]; + } + int high_color[] = { set_high_color.blue()+high[0], set_high_color.green()+high[1], set_high_color.red()+high[2]}; + for(int i = 0; i < 3; ++i) { + if(high_color[i] > 255) + high_color[i] = 255; + key_id.high[i] = high_color[i]; + } + low = key_id.low; + high = key_id.high; + } colorkeys_vec.push_back(key_id); QString text; QTextStream stream(&text); @@ -194,7 +213,8 @@ void ChromaWindow::setColorLow() { set_low_color = color; lowColor->setStyleSheet("QLabel { background-color :" + color_var + " ; }"); lowColor->setText(""); - setEditFromColor(0, color); + if(!button_select_range->isChecked()) + setEditFromColor(0, color); } void ChromaWindow::setColorHigh() { @@ -205,6 +225,7 @@ void ChromaWindow::setColorHigh() { set_high_color = color; highColor->setStyleSheet("QLabel { background-color :" + color_var + " ;}"); highColor->setText(""); - setEditFromColor(1, color); + if(!button_select_range->isChecked()) + setEditFromColor(1, color); }