From dc65d3fe0a43ba6c4d640d6cccc8204ddc08f12d Mon Sep 17 00:00:00 2001 From: Phenom Date: Sun, 5 Mar 2017 13:22:30 +0100 Subject: [PATCH] Fix Setting list width. --- .../src/gui/settings/rsettingswin.cpp | 17 ++++++- retroshare-gui/src/gui/settings/settingsw.ui | 47 ++++--------------- 2 files changed, 25 insertions(+), 39 deletions(-) diff --git a/retroshare-gui/src/gui/settings/rsettingswin.cpp b/retroshare-gui/src/gui/settings/rsettingswin.cpp index 64a364b79..716c6777f 100644 --- a/retroshare-gui/src/gui/settings/rsettingswin.cpp +++ b/retroshare-gui/src/gui/settings/rsettingswin.cpp @@ -46,9 +46,12 @@ #include "rsharesettings.h" #include "gui/notifyqt.h" #include "gui/common/FloatingHelpBrowser.h" +#include "gui/common/RSElidedItemDelegate.h" #define IMAGE_GENERAL ":/images/kcmsystem24.png" +#define ITEM_SPACING 2 + #include "rsettingswin.h" //RSettingsWin *RSettingsWin::_instance = NULL; @@ -63,6 +66,11 @@ SettingsPage::SettingsPage(QWidget *parent) /* Initialize help browser */ mHelpBrowser = new FloatingHelpBrowser(this, ui.helpButton); + /* Add own item delegate to get item width*/ + RSElidedItemDelegate *itemDelegate = new RSElidedItemDelegate(this); + itemDelegate->setSpacing(QSize(0, ITEM_SPACING)); + ui.listWidget->setItemDelegate(itemDelegate); + initStackedWidget(); /* Load window position */ @@ -179,8 +187,13 @@ void SettingsPage::addPage(ConfigPage *page) { ui.stackedWidget->addWidget(page) ; - QListWidgetItem *item = new QListWidgetItem(QIcon(page->iconPixmap()),page->pageName()) ; - ui.listWidget->addItem(item) ; + QListWidgetItem *item = new QListWidgetItem(QIcon(page->iconPixmap()),page->pageName(),ui.listWidget) ; + QFontMetrics fontMetrics = ui.listWidget->fontMetrics(); + int w = ITEM_SPACING*8; + w += ui.listWidget->iconSize().width(); + w += fontMetrics.width(item->text()); + if (w > ui.listWidget->maximumWidth()) + ui.listWidget->setMaximumWidth(w); } void diff --git a/retroshare-gui/src/gui/settings/settingsw.ui b/retroshare-gui/src/gui/settings/settingsw.ui index b40ceda91..3fcfa50a8 100644 --- a/retroshare-gui/src/gui/settings/settingsw.ui +++ b/retroshare-gui/src/gui/settings/settingsw.ui @@ -13,14 +13,14 @@ Form - + - - - 0 - 0 - + + + 50 + 16777215 + @@ -39,42 +39,15 @@ Qt::ElideRight - - QListView::Static - - - QListView::TopToBottom - - - false - - - QListView::Fixed - - - QListView::SinglePass - - - 0 - - - QListView::ListMode - - - 0 - true - - -1 - - + - + @@ -125,7 +98,7 @@ - + Qt::Horizontal @@ -153,7 +126,7 @@ 849 - + 3