/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel Project *
+ * Copyright (C) 2005-09 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "settingsdlg.h"
+#include "iconloader.h"
+
SettingsDlg::SettingsDlg(QWidget *parent)
: QDialog(parent),
_currentPage(0)
{
- setModal(false);
ui.setupUi(this);
+ setModal(true);
+ setAttribute(Qt::WA_DeleteOnClose, true);
+ setWindowIcon(SmallIcon("configure"));
updateGeometry();
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;
if(!cats.count()) {
cat = new QTreeWidgetItem(ui.settingsTree, QStringList(sp->category()));
cat->setExpanded(true);
- cat->setFlags(Qt::ItemIsEnabled);
+ cat->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
} else {
cat = cats[0];
}
- QTreeWidgetItem *item = new QTreeWidgetItem(cat, QStringList(sp->title()));
- item->setData(0, SettingsPageRole, qVariantFromValue<QObject *>(sp));
+
+ QTreeWidgetItem *item;
+ if(sp->title().isEmpty())
+ item = cat;
+ else
+ item = new QTreeWidgetItem(cat, QStringList(sp->title()));
+
+ item->setData(0, SettingsPageRole, QVariant::fromValue<QObject *>(sp));
+ ui.settingsTree->setMinimumWidth(ui.settingsTree->header()->sectionSizeHint(0) + 5);
pageIsLoaded[sp] = false;
+ if(!ui.settingsTree->selectedItems().count())
+ ui.settingsTree->setCurrentItem(item);
}
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;
}