2023-10-06 Fred Gleason <fredg@paravelsystems.com>

* Fixed a regression in 'RDSoundPanel' that caused updates to
	station buttons to fail to be applied.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason
2023-10-06 13:34:26 -04:00
parent 11140fbfd9
commit 7bbfa20381
2 changed files with 42 additions and 35 deletions

View File

@@ -24422,3 +24422,6 @@
2023-10-06 Fred Gleason <fredg@paravelsystems.com> 2023-10-06 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression in 'RDSoundPanel' that caused the output * Fixed a regression in 'RDSoundPanel' that caused the output
indicator on the buttons to fail to be cleared after events stopped. indicator on the buttons to fail to be cleared after events stopped.
2023-10-06 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression in 'RDSoundPanel' that caused updates to
station buttons to fail to be applied.

View File

@@ -795,6 +795,9 @@ void RDSoundPanel::buttonClickedData(int pnum,int col,int row)
default: default:
if(panel_setup_mode) { if(panel_setup_mode) {
if(button->isActive()) {
return;
}
if((panel_type==RDAirPlayConf::StationPanel)&& if((panel_type==RDAirPlayConf::StationPanel)&&
(!panel_config_panels)) { (!panel_config_panels)) {
ClearReset(); ClearReset();
@@ -954,12 +957,12 @@ void RDSoundPanel::notificationReceivedData(RDNotification *notify)
q=new RDSqlQuery(sql); q=new RDSqlQuery(sql);
if(q->first()) { if(q->first()) {
RDAirPlayConf::PanelType ptype= RDAirPlayConf::PanelType ptype=
(RDAirPlayConf::PanelType)q->value(10).toInt(); (RDAirPlayConf::PanelType)q->value(2).toInt();
if((q->value(1).toString()==rda->station()->name())&& if((q->value(2).toString()==rda->station()->name())&&
(ptype==RDAirPlayConf::StationPanel)) { (ptype==RDAirPlayConf::StationPanel)) {
if(panel_arrays.value("").size()>q->value(2).toInt()) { if(panel_arrays.value("").size()>q->value(3).toInt()) {
if((button=panel_arrays.value("").at(q->value(2).toInt())-> if((button=panel_arrays.value("").at(q->value(3).toInt())->
panelButton(q->value(3).toInt(),q->value(4).toInt()))!=NULL) { panelButton(q->value(4).toInt(),q->value(5).toInt()))!=NULL) {
if(!button->isActive()) { if(!button->isActive()) {
ApplyButtonFields(button,q); ApplyButtonFields(button,q);
} }
@@ -967,11 +970,11 @@ void RDSoundPanel::notificationReceivedData(RDNotification *notify)
} }
} }
if((ptype==RDAirPlayConf::UserPanel)&& if((ptype==RDAirPlayConf::UserPanel)&&
(panel_arrays.contains(q->value(1).toString()))) { (panel_arrays.contains(q->value(2).toString()))) {
if(panel_arrays.value(q->value(1).toString()).size()> if(panel_arrays.value(q->value(2).toString()).size()>
q->value(2).toInt()) { q->value(3).toInt()) {
if((button=panel_arrays.value(q->value(1).toString()). if((button=panel_arrays.value(q->value(2).toString()).
at(q->value(2).toInt())->panelButton(q->value(3).toInt(),q->value(4).toInt()))!=NULL) { at(q->value(3).toInt())->panelButton(q->value(4).toInt(),q->value(5).toInt()))!=NULL) {
if(!button->isActive()) { if(!button->isActive()) {
ApplyButtonFields(button,q); ApplyButtonFields(button,q);
} }
@@ -1377,8 +1380,8 @@ void RDSoundPanel::UpdatePanels(const QString &username)
panel_tablename+".`ROW_NO`"; panel_tablename+".`ROW_NO`";
RDSqlQuery *q=new RDSqlQuery(sql); RDSqlQuery *q=new RDSqlQuery(sql);
while(q->next()) { while(q->next()) {
RDPanelButton *button=panel_arrays.value(username).at(q->value(2).toInt())-> RDPanelButton *button=panel_arrays.value(username).at(q->value(3).toInt())->
panelButton(q->value(3).toInt(),q->value(4).toInt()); panelButton(q->value(4).toInt(),q->value(5).toInt());
if(!button->isActive()) { if(!button->isActive()) {
ApplyButtonFields(button,q); ApplyButtonFields(button,q);
} }
@@ -1793,16 +1796,17 @@ QString RDSoundPanel::ButtonSqlFields() const
{ {
QString sql=QString("select ")+ QString sql=QString("select ")+
panel_tablename+".`ID`,"+ // 00 panel_tablename+".`ID`,"+ // 00
panel_tablename+".`OWNER`,"+ // 01 panel_tablename+".`TYPE`,"+ // 01
panel_tablename+".`PANEL_NO`,"+ // 02 panel_tablename+".`OWNER`,"+ // 02
panel_tablename+".`ROW_NO`,"+ // 03 panel_tablename+".`PANEL_NO`,"+ // 03
panel_tablename+".`COLUMN_NO`,"+ // 04 panel_tablename+".`ROW_NO`,"+ // 04
panel_tablename+".`LABEL`,"+ // 05 panel_tablename+".`COLUMN_NO`,"+ // 05
panel_tablename+".`CART`,"+ // 06 panel_tablename+".`LABEL`,"+ // 06
panel_tablename+".`DEFAULT_COLOR`,"+ // 07 panel_tablename+".`CART`,"+ // 07
"`CART`.`FORCED_LENGTH`,"+ // 08 panel_tablename+".`DEFAULT_COLOR`,"+ // 08
"`CART`.`AVERAGE_HOOK_LENGTH`,"+ // 09 "`CART`.`FORCED_LENGTH`,"+ // 09
"`CART`.`TYPE` "+ // 10 "`CART`.`AVERAGE_HOOK_LENGTH`,"+ // 10
"`CART`.`TYPE` "+ // 11
"from "+panel_tablename+" "+ "from "+panel_tablename+" "+
"left join `CART` on "+panel_tablename+".`CART`=`CART`.`NUMBER` "; "left join `CART` on "+panel_tablename+".`CART`=`CART`.`NUMBER` ";
@@ -1813,34 +1817,34 @@ QString RDSoundPanel::ButtonSqlFields() const
void RDSoundPanel::ApplyButtonFields(RDPanelButton *button,RDSqlQuery *q) void RDSoundPanel::ApplyButtonFields(RDPanelButton *button,RDSqlQuery *q)
{ {
button->setDbId(q->value(0).toInt()); button->setDbId(q->value(0).toInt());
button->setText(q->value(5).toString()); button->setText(q->value(6).toString());
button->setCart(q->value(6).toInt()); button->setCart(q->value(7).toInt());
button->setLength(false,q->value(8).toInt()); button->setLength(false,q->value(9).toInt());
button->setLength(true,q->value(9).toInt()); button->setLength(true,q->value(10).toInt());
if((panel_playmode_box!=NULL)&&(panel_playmode_box->currentIndex()==1)&& if((panel_playmode_box!=NULL)&&(panel_playmode_box->currentIndex()==1)&&
(q->value(9).toUInt()>0)) { (q->value(10).toUInt()>0)) {
button->setActiveLength(q->value(9).toInt()); button->setActiveLength(q->value(10).toInt());
} }
else { else {
if(q->value(10).toInt()==RDCart::Macro) { if(q->value(11).toInt()==RDCart::Macro) {
button->setActiveLength(q->value(7).toInt());
}
else {
if(q->value(8).toInt()>0) {
button->setActiveLength(q->value(8).toInt()); button->setActiveLength(q->value(8).toInt());
} }
else {
if(q->value(9).toInt()>0) {
button->setActiveLength(q->value(9).toInt());
}
else { else {
button->setActiveLength(-1); button->setActiveLength(-1);
} }
} }
} }
if(q->value(7).toString().isEmpty()) { if(q->value(8).toString().isEmpty()) {
button->setColor(palette().color(QPalette::Background)); button->setColor(palette().color(QPalette::Background));
button->setDefaultColor(palette().color(QPalette::Background)); button->setDefaultColor(palette().color(QPalette::Background));
} }
else { else {
button->setColor(QColor(q->value(7).toString())); button->setColor(QColor(q->value(8).toString()));
button->setDefaultColor(QColor(q->value(7).toString())); button->setDefaultColor(QColor(q->value(8).toString()));
} }
} }