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

* Fixed a regression in rdairplay(1) and rdpanel(1) that caused
	extraneous buttons to appear when resizing the sound panel.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason 2023-10-05 10:55:28 -04:00
parent 18c3d85108
commit 7c46d99bc3
5 changed files with 17 additions and 12 deletions

View File

@ -24414,3 +24414,6 @@
2023-10-05 Fred Gleason <fredg@paravelsystems.com>
* Clarified the entries for the 'Pause Panel' ['PU'] and
'Stop Panel' ['PT'] RMLs in the Operations Guide.
2023-10-05 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression in rdairplay(1) and rdpanel(1) that caused
extraneous buttons to appear when resizing the sound panel.

View File

@ -257,13 +257,15 @@ QString RDButtonPanel::json(int padding,bool final) const
void RDButtonPanel::setVisible(bool state)
{
printf("Calling RDButtonPanel::setVisible(%d) @ %p\n",state,this);
RDWidget::setVisible(state);
for(int i=0;i<PANEL_MAX_BUTTON_ROWS;i++) {
for(int j=0;j<PANEL_MAX_BUTTON_COLUMNS;j++) {
panel_button[i][j]->setVisible(state);
}
}
if(state) {
UpdateViewport();
}
}
@ -271,9 +273,9 @@ void RDButtonPanel::buttonClickedData(int id)
{
int pnum=id/(PANEL_MAX_BUTTON_COLUMNS*PANEL_MAX_BUTTON_ROWS);
int pos=id%(PANEL_MAX_BUTTON_COLUMNS*PANEL_MAX_BUTTON_ROWS);
printf("emitting buttonClicked(%d,%d,%d)\n",
pnum,pos%PANEL_MAX_BUTTON_COLUMNS,pos/PANEL_MAX_BUTTON_COLUMNS);
emit buttonClicked(pnum,pos%PANEL_MAX_BUTTON_COLUMNS,pos/PANEL_MAX_BUTTON_COLUMNS);
emit buttonClicked(pnum,pos%PANEL_MAX_BUTTON_COLUMNS,
pos/PANEL_MAX_BUTTON_COLUMNS);
}
@ -287,6 +289,12 @@ void RDButtonPanel::resizeEvent(QResizeEvent *e)
PANEL_BUTTON_SIZE_Y);
}
}
UpdateViewport();
}
void RDButtonPanel::UpdateViewport()
{
for(int i=0;i<PANEL_MAX_BUTTON_ROWS;i++) {
for(int j=0;j<PANEL_MAX_BUTTON_COLUMNS;j++) {
RDPanelButton *button=panel_button[i][j];

View File

@ -70,6 +70,7 @@ class RDButtonPanel : public RDWidget
void resizeEvent(QResizeEvent *e);
private:
void UpdateViewport();
int panel_number;
QString panel_title;
QSignalMapper *panel_button_mapper;

View File

@ -18,7 +18,6 @@
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
#include <QDrag>
#include <QPainter>

View File

@ -673,7 +673,6 @@ void RDSoundPanel::panelDown()
void RDSoundPanel::panelActivatedData(int n)
{
printf("panelActivatedData(%d)\n",n);
QString username;
if(panel_type==RDAirPlayConf::UserPanel) {
username=rda->user()->name();
@ -754,8 +753,6 @@ void RDSoundPanel::setupClickedData()
void RDSoundPanel::buttonClickedData(int pnum,int col,int row)
{
// printf("buttonMapperData(pnum: %d,col: %d row: %d)\n",pnum,col,row);
if(panel_current_panel==NULL) {
printf("NO CURRENT PANEL!\n");
return;
@ -1300,9 +1297,7 @@ void RDSoundPanel::UpdatePanels(const QString &username)
}
for(int i=panel_arrays.value(username).size();i<max_panels;i++) {
RDButtonPanel *panel=new RDButtonPanel(type,i,this);
printf("new panel type: %d number: %d ptr: %p\n",
type,i,panel);
panel->setGeometry(0,0,size().width()-5,size().height()-60);
connect(panel,SIGNAL(buttonClicked(int,int,int)),
this,SLOT(buttonClickedData(int,int,int)));
panel->hide();
@ -1379,7 +1374,6 @@ void RDSoundPanel::ShowPanel(RDAirPlayConf::PanelType type,int offset)
if(type==RDAirPlayConf::UserPanel) {
username=rda->user()->name();
}
printf("username: %s\n",username.toUtf8().constData());
if(panel_arrays.value(username).size()>offset) {
if(panel_current_panel!=NULL) {
panel_current_panel->hide();