2023-09-27 Fred Gleason <fredg@paravelsystems.com>

* Fixed a bug in 'RDSoundPanel' where clicking a non-configured
	button in Setup mode would fail to open the 'Edit Button' dialog.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason 2023-09-27 13:57:56 -04:00
parent 2f995c509b
commit f49d03682b
2 changed files with 14 additions and 4 deletions

View File

@ -24388,3 +24388,6 @@
2023-09-27 Fred Gleason <fredg@paravelsystems.com>
* Refactored the 'RDSoundPanel', 'RDPanelButton' and 'RDButtonPanel'
classes to avoid races when changing the current Rivendell user.
2023-09-27 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'RDSoundPanel' where clicking a non-configured
button in Setup mode would fail to open the 'Edit Button' dialog.

View File

@ -716,6 +716,8 @@ void RDSoundPanel::setupClickedData()
void RDSoundPanel::buttonMapperData(int grid_pos)
{
printf("buttonMapperData(%d)\n",grid_pos);
RDPanelButton *button=GetCurrentPanel()->
panelButton(grid_pos/PANEL_MAX_BUTTON_COLUMNS,
grid_pos%PANEL_MAX_BUTTON_COLUMNS);
@ -1420,7 +1422,15 @@ void RDSoundPanel::UpdatePanels(const QString &username)
list=panel_panels.value(username);
}
for(int i=panel_panels.value(username).size();i<size;i++) {
list.push_back(new RDButtonPanel(type,this));
RDButtonPanel *panel=new RDButtonPanel(type,this);
for(int j=0;j<PANEL_MAX_BUTTON_COLUMNS;j++) {
for(int k=0;k<PANEL_MAX_BUTTON_ROWS;k++) {
RDPanelButton *button=panel->panelButton(k,j);
connect(button,SIGNAL(clicked()),panel_mapper,SLOT(map()));
panel_mapper->setMapping(button,k*PANEL_MAX_BUTTON_COLUMNS+j);
}
}
list.push_back(panel);
}
panel_panels[username]=list;
}
@ -1477,9 +1487,6 @@ void RDSoundPanel::UpdatePanels(const QString &username)
button->setColor(QColor(q->value(5).toString()));
button->setDefaultColor(QColor(q->value(5).toString()));
}
connect(button,SIGNAL(clicked()),panel_mapper,SLOT(map()));
panel_mapper->setMapping(button,
q->value(1).toInt()*PANEL_MAX_BUTTON_COLUMNS+q->value(2).toInt());
}
}
delete q;