You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
2.5 KiB
104 lines
2.5 KiB
// configuredialog_p.cpp: classes internal to ConfigureDialog |
|
// see configuredialog.cpp for details. |
|
|
|
// my header: |
|
#include "configuredialog_p.h" |
|
|
|
// other KMail headers: |
|
#include "settings/globalsettings.h" |
|
|
|
// other KDE headers: |
|
#include <QTabWidget> |
|
#include <QDialog> |
|
|
|
// Qt headers: |
|
#include <QShowEvent> |
|
#include <QVBoxLayout> |
|
|
|
// Other headers: |
|
#include <assert.h> |
|
#include <KConfigGroup> |
|
|
|
ConfigModuleWithTabs::ConfigModuleWithTabs(QWidget *parent) |
|
: ConfigModule(parent), mWasInitialized(false) |
|
{ |
|
QVBoxLayout *vlay = new QVBoxLayout(this); |
|
vlay->setMargin(0); |
|
mTabWidget = new QTabWidget(this); |
|
vlay->addWidget(mTabWidget); |
|
} |
|
|
|
void ConfigModuleWithTabs::addTab(ConfigModuleTab *tab, const QString &title) |
|
{ |
|
mTabWidget->addTab(tab, title); |
|
connect(tab, SIGNAL(changed(bool)), |
|
this, SIGNAL(changed(bool))); |
|
} |
|
|
|
void ConfigModuleWithTabs::showEvent(QShowEvent *event) |
|
{ |
|
mWasInitialized = true; |
|
ConfigModule::showEvent(event); |
|
} |
|
|
|
void ConfigModuleWithTabs::load() |
|
{ |
|
const int numberOfTab = mTabWidget->count(); |
|
for (int i = 0 ; i < numberOfTab ; ++i) { |
|
ConfigModuleTab *tab = dynamic_cast<ConfigModuleTab *>(mTabWidget->widget(i)); |
|
if (tab) { |
|
tab->load(); |
|
} |
|
} |
|
KCModule::load(); |
|
} |
|
|
|
void ConfigModuleWithTabs::save() |
|
{ |
|
if (mWasInitialized) { |
|
KCModule::save(); |
|
const int numberOfTab = mTabWidget->count(); |
|
for (int i = 0 ; i < numberOfTab ; ++i) { |
|
ConfigModuleTab *tab = dynamic_cast<ConfigModuleTab *>(mTabWidget->widget(i)); |
|
if (tab) { |
|
tab->save(); |
|
} |
|
} |
|
} |
|
} |
|
|
|
void ConfigModuleWithTabs::defaults() |
|
{ |
|
ConfigModuleTab *tab = dynamic_cast<ConfigModuleTab *>(mTabWidget->currentWidget()); |
|
if (tab) { |
|
tab->defaults(); |
|
} |
|
KCModule::defaults(); |
|
} |
|
|
|
void ConfigModuleTab::load() |
|
{ |
|
mEmitChanges = false; |
|
doLoadFromGlobalSettings(); |
|
doLoadOther(); |
|
mEmitChanges = true; |
|
} |
|
|
|
void ConfigModuleTab::defaults() |
|
{ |
|
// reset settings which are available via GlobalSettings to their defaults |
|
// (stolen from KConfigDialogManager::updateWidgetsDefault()) |
|
const bool bUseDefaults = GlobalSettings::self()->useDefaults(true); |
|
doLoadFromGlobalSettings(); |
|
GlobalSettings::self()->useDefaults(bUseDefaults); |
|
// reset other settings to default values |
|
doResetToDefaultsOther(); |
|
} |
|
|
|
void ConfigModuleTab::slotEmitChanged(void) |
|
{ |
|
if (mEmitChanges) { |
|
Q_EMIT changed(true); |
|
} |
|
} |
|
|
|
|