Setting a proper minimum width for the settings treewidget according to it's content
[quassel.git] / src / qtui / settingsdlg.cpp
index 5f255b1..4bcd7d8 100644 (file)
 
 #include "settingsdlg.h"
 
+#include "iconloader.h"
+
 SettingsDlg::SettingsDlg(QWidget *parent)
   : QDialog(parent),
     _currentPage(0)
 {
   ui.setupUi(this);
+  setModal(true);
+  setAttribute(Qt::WA_DeleteOnClose, true);
+  setWindowIcon(SmallIcon("configure"));
 
   updateGeometry();
 
@@ -32,12 +37,14 @@ SettingsDlg::SettingsDlg(QWidget *parent)
 
   connect(ui.settingsTree, SIGNAL(itemSelectionChanged()), this, SLOT(itemSelected()));
   connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton *)), this, SLOT(buttonClicked(QAbstractButton *)));
+
+  setButtonStates();
 }
 
 void SettingsDlg::registerSettingsPage(SettingsPage *sp) {
   sp->setParent(ui.settingsStack);
   ui.settingsStack->addWidget(sp);
-  
+
   connect(sp, SIGNAL(changed(bool)), this, SLOT(setButtonStates()));
 
   QTreeWidgetItem *cat;
@@ -51,6 +58,7 @@ void SettingsDlg::registerSettingsPage(SettingsPage *sp) {
   }
   QTreeWidgetItem *item = new QTreeWidgetItem(cat, QStringList(sp->title()));
   item->setData(0, SettingsPageRole, qVariantFromValue<QObject *>(sp));
+  ui.settingsTree->setMinimumWidth(ui.settingsTree->header()->sectionSizeHint(0) + 5);
   pageIsLoaded[sp] = false;
 }
 
@@ -80,6 +88,7 @@ void SettingsDlg::selectPage(SettingsPage *sp) {
 
   if(sp != currentPage()) {
     ui.pageTitle->setText(sp->title());
+    setWindowTitle(tr("Configure %1").arg(sp->title()));
     ui.settingsStack->setCurrentWidget(sp);
     _currentPage = sp;
   }