2021-07-30 Fred Gleason <fredg@paravelsystems.com>

* Refactored the layout code of the 'RDCardSelector' widget.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason
2021-07-30 18:09:46 -04:00
parent 60f39a8c17
commit 0636ff068d
17 changed files with 189 additions and 113 deletions

View File

@@ -2,7 +2,7 @@
//
// Audio channel assignments widget for Rivendell
//
// (C) Copyright 2002-2019 Fred Gleason <fredg@paravelsystems.com>
// (C) Copyright 2002-2021 Fred Gleason <fredg@paravelsystems.com>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
@@ -26,49 +26,36 @@ RDCardSelector::RDCardSelector(QWidget *parent)
card_id=-1;
yoffset=0;
//
// Fix the Window Size
//
setMinimumSize(sizeHint());
setMaximumSize(sizeHint());
yoffset=0;
//
// Title
//
card_title=new QLabel(this);
card_title->setGeometry(0,0,geometry().width(),19);
card_title->setAlignment(Qt::AlignHCenter);
card_title->setAlignment(Qt::AlignCenter);
card_title->hide();
//
// Card
//
card_card_box=new QSpinBox(this);
card_card_box->setGeometry(60,yoffset,50,19);
card_card_box->setSpecialValueText("None");
card_card_box->setSpecialValueText(tr("None"));
card_card_box->setMinimum(-1);
card_card_box->setMaximum(RD_MAX_CARDS-1);
card_card_box->setValue(-1);
connect(card_card_box,SIGNAL(valueChanged(int)),this,SLOT(cardData(int)));
card_card_label=new QLabel(tr("Card:"),this);
card_card_label->setGeometry(0,yoffset+2,55,19);
card_card_label->setAlignment(Qt::AlignRight);
card_card_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
//
// Port
//
card_port_box=new QSpinBox(this);
card_port_box->setGeometry(60,yoffset+22,50,19);
card_port_box->setSpecialValueText("None");
card_port_box->setMinimum(-1);
card_port_box->setMaximum(RD_MAX_PORTS-1);
card_port_box->setValue(-1);
connect(card_port_box,SIGNAL(valueChanged(int)),this,SLOT(portData(int)));
card_port_label=new QLabel(tr("Port:"),this);
card_port_label->setGeometry(0,yoffset+24,55,19);
card_port_label->setAlignment(Qt::AlignRight);
card_port_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
for(int i=0;i<RD_MAX_CARDS;i++) {
card_max_ports[i] = 0;
cardData(i);
@@ -87,7 +74,7 @@ RDCardSelector::~RDCardSelector()
QSize RDCardSelector::sizeHint() const
{
return QSize(110,41+yoffset);
return QSize(90,40+yoffset);
}
@@ -225,3 +212,29 @@ void RDCardSelector::portData(int port)
emit portChanged(port);
emit settingsChanged(card_id,card_card_box->value(),port);
}
void RDCardSelector::resizeEvent(QResizeEvent *e)
{
int label_width=defaultFontMetrics()->width(tr("Card:"));
if(defaultFontMetrics()->width(tr("Port:")>label_width)) {
label_width=defaultFontMetrics()->width(tr("Port:"));
}
card_title->setGeometry(0,0,width(),19);
card_card_label->setGeometry(0,
yoffset,
label_width+5,
19);
card_card_box->setGeometry(label_width+10,
yoffset,
width()-label_width-10,
19);
card_port_label->setGeometry(0,
yoffset+21,
label_width+5,
19);
card_port_box->setGeometry(label_width+10,
yoffset+21,
width()-label_width-10,
19);
}