diff --git a/src/settingsdialog.cpp b/src/settingsdialog.cpp index 26da968e1..9b87cee30 100644 --- a/src/settingsdialog.cpp +++ b/src/settingsdialog.cpp @@ -153,36 +153,53 @@ SettingsDialog::~SettingsDialog() void SettingsDialog::createIcons() { + /// Not fun but QListWidget sucks. Do our max-width calculation manually + /// so the icons arre lined up. + // Resolvers is the longest string... in english. fml. + + int maxlen = 0; + QFontMetrics fm( font() ); QListWidgetItem *accountsButton = new QListWidgetItem( ui->listWidget ); accountsButton->setIcon( QIcon( RESPATH "images/account-settings.png" ) ); accountsButton->setText( tr( "Accounts" ) ); accountsButton->setTextAlignment( Qt::AlignHCenter ); accountsButton->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled ); + maxlen = fm.width( accountsButton->text() ); QListWidgetItem *musicButton = new QListWidgetItem( ui->listWidget ); musicButton->setIcon( QIcon( RESPATH "images/music-settings.png" ) ); musicButton->setText( tr( "Music" ) ); musicButton->setTextAlignment( Qt::AlignHCenter ); musicButton->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled ); + maxlen = qMax( fm.width( musicButton->text() ), maxlen ); QListWidgetItem *lastfmButton = new QListWidgetItem( ui->listWidget ); lastfmButton->setIcon( QIcon( RESPATH "images/lastfm-settings.png" ) ); lastfmButton->setText( tr( "Last.fm" ) ); lastfmButton->setTextAlignment( Qt::AlignHCenter ); lastfmButton->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled ); + maxlen = qMax( fm.width( lastfmButton->text() ), maxlen ); QListWidgetItem *resolversButton = new QListWidgetItem( ui->listWidget ); resolversButton->setIcon( QIcon( RESPATH "images/resolvers-settings.png" ) ); resolversButton->setText( tr( "Resolvers" ) ); resolversButton->setTextAlignment( Qt::AlignHCenter ); resolversButton->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled ); + maxlen = qMax( fm.width( resolversButton->text() ), maxlen ); QListWidgetItem *advancedButton = new QListWidgetItem( ui->listWidget ); advancedButton->setIcon( QIcon( RESPATH "images/advanced-settings.png" ) ); advancedButton->setText( tr( "Advanced" ) ); advancedButton->setTextAlignment( Qt::AlignHCenter ); advancedButton->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled ); + maxlen = qMax( fm.width( advancedButton->text() ), maxlen ); + maxlen += 16; // padding + accountsButton->setSizeHint( QSize( maxlen, 60 ) ); + musicButton->setSizeHint( QSize( maxlen, 60 ) ); + lastfmButton->setSizeHint( QSize( maxlen, 60 ) ); + resolversButton->setSizeHint( QSize( maxlen, 60 ) ); + advancedButton->setSizeHint( QSize( maxlen, 60 ) ); connect( ui->listWidget, SIGNAL( currentItemChanged( QListWidgetItem* ,QListWidgetItem* ) ), this, SLOT( changePage( QListWidgetItem*, QListWidgetItem* ) ) ); } diff --git a/src/stackedsettingsdialog.ui b/src/stackedsettingsdialog.ui index 15db3cd58..1ecb9b4ee 100644 --- a/src/stackedsettingsdialog.ui +++ b/src/stackedsettingsdialog.ui @@ -6,7 +6,7 @@ 0 0 - 561 + 629 362 @@ -23,21 +23,45 @@ - 68 + 16777215 16777215 + + Qt::NoFocus + + + QFrame::Panel + + + QFrame::Raised + + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + true + - 64 - 64 + 48 + 48 QListView::Static + + QListView::Adjust + + + QListView::Batched + - 4 + 1 QListView::IconMode @@ -334,16 +358,9 @@ - scriptList - scriptList - - label - layoutWidget_2 - verticalSpacer_4 - groupBox_3