improve compact skin by using smaller font size if the name is too long

This commit is contained in:
Volker Fischer 2020-07-20 19:26:05 +02:00
parent 63ebc28a18
commit e832ac09bb
3 changed files with 41 additions and 8 deletions

View file

@ -9,10 +9,9 @@
- if network name/address contains spaces, they are removed now, - if network name/address contains spaces, they are removed now,
coded by dingodoppelt (#462) coded by dingodoppelt (#462)
- improve compact skin by using smaller font size if the name is too long
TODO improve compact channels: smaller font size of name is too long

View file

@ -28,7 +28,8 @@
/******************************************************************************\ /******************************************************************************\
* CChanneFader * * CChanneFader *
\******************************************************************************/ \******************************************************************************/
CChannelFader::CChannelFader ( QWidget* pNW ) CChannelFader::CChannelFader ( QWidget* pNW ) :
eDesign ( GD_STANDARD )
{ {
// create new GUI control objects and store pointers to them (note that // create new GUI control objects and store pointers to them (note that
// QWidget takes the ownership of the pMainGrid so that this only has // QWidget takes the ownership of the pMainGrid so that this only has
@ -91,7 +92,6 @@ CChannelFader::CChannelFader ( QWidget* pNW )
// setup fader tag label (black bold text which is centered) // setup fader tag label (black bold text which is centered)
plblLabel->setTextFormat ( Qt::PlainText ); plblLabel->setTextFormat ( Qt::PlainText );
plblLabel->setAlignment ( Qt::AlignHCenter | Qt::AlignVCenter ); plblLabel->setAlignment ( Qt::AlignHCenter | Qt::AlignVCenter );
plblLabel->setStyleSheet ( "QLabel { color: black; font: bold; }" );
// set margins of the layouts to zero to get maximum space for the controls // set margins of the layouts to zero to get maximum space for the controls
pMainGrid->setContentsMargins ( 0, 0, 0, 0 ); pMainGrid->setContentsMargins ( 0, 0, 0, 0 );
@ -203,6 +203,8 @@ CChannelFader::CChannelFader ( QWidget* pNW )
void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign ) void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign )
{ {
eDesign = eNewDesign;
switch ( eNewDesign ) switch ( eNewDesign )
{ {
case GD_ORIGINAL: case GD_ORIGINAL:
@ -601,15 +603,46 @@ void CChannelFader::SetChannelInfos ( const CChannelInfo& cChanInfo )
// Label text -------------------------------------------------------------- // Label text --------------------------------------------------------------
// break text at predefined position
const int iBreakPos = MAX_LEN_FADER_TAG / 2;
QString strModText = cChanInfo.strName; QString strModText = cChanInfo.strName;
// apply break position and font size depending on the selected design as
// well as the length of the name
if ( ( eDesign == GD_SLIMFADER ) && ( strModText.length() > 6 ) )
{
// in slim mode, if the text is longer than 6 character, use a small font
plblLabel->setStyleSheet ( "QLabel { color: black; font: 6pt bold; }" );
// break at every 4th character
for ( int iInsPos = 4; iInsPos <= strModText.size() - 1; iInsPos += 4 + 1 )
{
strModText.insert ( iInsPos, "\n" );
}
}
else
{
plblLabel->setStyleSheet ( "QLabel { color: black; font: bold; }" );
// break text at predefined position
int iBreakPos;
if ( eDesign == GD_SLIMFADER )
{
// for slim design if the text is shorter than 6 characters, break
// at half of the 6 characters
iBreakPos = 3;
}
else
{
// default break position (used for other skins than slim)
iBreakPos = MAX_LEN_FADER_TAG / 2;
}
if ( strModText.length() > iBreakPos ) if ( strModText.length() > iBreakPos )
{ {
strModText.insert ( iBreakPos, QString ( "\n" ) ); strModText.insert ( iBreakPos, QString ( "\n" ) );
} }
}
plblLabel->setText ( strModText ); plblLabel->setText ( strModText );

View file

@ -121,6 +121,7 @@ protected:
int iGroupID; int iGroupID;
QString strGroupBaseText; QString strGroupBaseText;
int iInstrPicMaxWidth; int iInstrPicMaxWidth;
EGUIDesign eDesign;
public slots: public slots:
void OnLevelValueChanged ( int value ) { SendFaderLevelToServer ( value, false ); } void OnLevelValueChanged ( int value ) { SendFaderLevelToServer ( value, false ); }