summaryrefslogtreecommitdiffstats
path: root/kcontrol/taskbar/kcmtaskbar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kcontrol/taskbar/kcmtaskbar.cpp')
-rw-r--r--kcontrol/taskbar/kcmtaskbar.cpp65
1 files changed, 47 insertions, 18 deletions
diff --git a/kcontrol/taskbar/kcmtaskbar.cpp b/kcontrol/taskbar/kcmtaskbar.cpp
index cd1c67a1d..25f2c778d 100644
--- a/kcontrol/taskbar/kcmtaskbar.cpp
+++ b/kcontrol/taskbar/kcmtaskbar.cpp
@@ -36,44 +36,55 @@
#define protected public
#include "kcmtaskbarui.h"
#undef protected
+
#include "taskbarsettings.h"
#include "kcmtaskbar.h"
#include "kcmtaskbar.moc"
+#define GLOBAL_TASKBAR_CONFIG_FILE_NAME "ktaskbarrc"
+
typedef KGenericFactory<TaskbarConfig, TQWidget > TaskBarFactory;
K_EXPORT_COMPONENT_FACTORY (kcm_taskbar, TaskBarFactory("kcmtaskbar") )
TaskbarAppearance::TaskbarAppearance(TQString name,
bool drawButtons,
bool haloText,
- bool showButtonOnHover)
+ bool showButtonOnHover,
+ TaskBarSettings* settingsObject)
: m_name(name),
m_drawButtons(drawButtons),
m_haloText(haloText),
- m_showButtonOnHover(showButtonOnHover)
+ m_showButtonOnHover(showButtonOnHover),
+ m_settingsObject(NULL)
{
+ m_settingsObject = settingsObject;
+ if (m_settingsObject)
+ {
+ m_settingsObject->readConfig();
+ }
}
TaskbarAppearance::TaskbarAppearance()
: m_drawButtons(false),
m_haloText(false),
- m_showButtonOnHover(true)
+ m_showButtonOnHover(true),
+ m_settingsObject(NULL)
{
}
bool TaskbarAppearance::matchesSettings() const
{
- return TaskBarSettings::drawButtons() == m_drawButtons &&
- TaskBarSettings::haloText() == m_haloText &&
- TaskBarSettings::showButtonOnHover() == m_showButtonOnHover;
+ return m_settingsObject->drawButtons() == m_drawButtons &&
+ m_settingsObject->haloText() == m_haloText &&
+ m_settingsObject->showButtonOnHover() == m_showButtonOnHover;
}
void TaskbarAppearance::alterSettings() const
{
- TaskBarSettings::self()->setDrawButtons(m_drawButtons);
- TaskBarSettings::self()->setHaloText(m_haloText);
- TaskBarSettings::self()->setShowButtonOnHover(m_showButtonOnHover);
+ m_settingsObject->setDrawButtons(m_drawButtons);
+ m_settingsObject->setHaloText(m_haloText);
+ m_settingsObject->setShowButtonOnHover(m_showButtonOnHover);
}
// These are the strings that are actually stored in the config file.
@@ -137,17 +148,27 @@ TQStringList TaskbarConfig::i18nShowTaskStatesList()
return i18nList;
}
-TaskbarConfig::TaskbarConfig(TQWidget *parent, const char* name, const TQStringList&)
- : KCModule(TaskBarFactory::instance(), parent, name)
+TaskbarConfig::TaskbarConfig(TQWidget *parent, const char* name, const TQStringList& args)
+ : KCModule(TaskBarFactory::instance(), parent, name),
+ m_settingsObject(NULL)
{
TQVBoxLayout *layout = new TQVBoxLayout(this, 0, KDialog::spacingHint());
m_widget = new TaskbarConfigUI(this);
layout->addWidget(m_widget);
+ m_configFileName = GLOBAL_TASKBAR_CONFIG_FILE_NAME;
+ if (args.count() > 0)
+ {
+ m_configFileName = args[0];
+ m_widget->globalConfigWarning->hide();
+ }
+ m_settingsObject = new TaskBarSettings(KSharedConfig::openConfig(m_configFileName));
+ m_settingsObject->readConfig();
+
// TODO: Load these from .desktop files?
- m_appearances.append(TaskbarAppearance(i18n("Elegant"), false, false, true));
- m_appearances.append(TaskbarAppearance(i18n("Classic"), true, false, true));
- m_appearances.append(TaskbarAppearance(i18n("For Transparency"), false, true, true));
+ m_appearances.append(TaskbarAppearance(i18n("Elegant"), false, false, true, m_settingsObject));
+ m_appearances.append(TaskbarAppearance(i18n("Classic"), true, false, true, m_settingsObject));
+ m_appearances.append(TaskbarAppearance(i18n("For Transparency"), false, true, true, m_settingsObject));
for (TaskbarAppearance::List::const_iterator it = m_appearances.constBegin();
it != m_appearances.constEnd();
@@ -158,7 +179,7 @@ TaskbarConfig::TaskbarConfig(TQWidget *parent, const char* name, const TQStringL
connect(m_widget->appearance, TQT_SIGNAL(activated(int)),
this, TQT_SLOT(appearanceChanged(int)));
- addConfig(TaskBarSettings::self(), m_widget);
+ addConfig(m_settingsObject, m_widget);
setQuickHelp(i18n("<h1>Taskbar</h1> You can configure the taskbar here."
" This includes options such as whether or not the taskbar should show all"
@@ -207,6 +228,14 @@ TaskbarConfig::TaskbarConfig(TQWidget *parent, const char* name, const TQStringL
TQTimer::singleShot(0, this, TQT_SLOT(notChanged()));
}
+TaskbarConfig::~TaskbarConfig()
+{
+ if (m_settingsObject)
+ {
+ delete m_settingsObject;
+ }
+}
+
void TaskbarConfig::slotUpdateCustomColors()
{
m_widget->kcfg_ActiveTaskTextColor->setEnabled(m_widget->kcfg_UseCustomColors->isChecked());
@@ -279,17 +308,17 @@ void TaskbarConfig::load()
KCModule::load();
slotUpdateComboBox();
updateAppearanceCombo();
- m_widget->showAllScreens->setChecked(!TaskBarSettings::self()->showCurrentScreenOnly());
+ m_widget->showAllScreens->setChecked(!m_settingsObject->showCurrentScreenOnly());
}
void TaskbarConfig::save()
{
- TaskBarSettings::self()->setShowCurrentScreenOnly(!m_widget->showAllScreens->isChecked());
+ m_settingsObject->setShowCurrentScreenOnly(!m_widget->showAllScreens->isChecked());
int selectedAppearance = m_widget->appearance->currentItem();
if (selectedAppearance < m_appearances.count())
{
m_appearances[selectedAppearance].alterSettings();
- TaskBarSettings::self()->writeConfig();
+ m_settingsObject->writeConfig();
}
KCModule::save();