diff options
Diffstat (limited to 'kcontrol/kicker/menutab_impl.cpp')
-rw-r--r-- | kcontrol/kicker/menutab_impl.cpp | 50 |
1 files changed, 49 insertions, 1 deletions
diff --git a/kcontrol/kicker/menutab_impl.cpp b/kcontrol/kicker/menutab_impl.cpp index 1d1053af8..b85db9fc7 100644 --- a/kcontrol/kicker/menutab_impl.cpp +++ b/kcontrol/kicker/menutab_impl.cpp @@ -16,12 +16,16 @@ */ #include <tqcheckbox.h> +#include <tqgroupbox.h> #include <tqdir.h> #include <tqlabel.h> #include <tqlayout.h> #include <tqpushbutton.h> #include <tqradiobutton.h> +#include <tqcombobox.h> +#include <tqbuttongroup.h> +#include <dcopref.h> #include <kapplication.h> #include <kdebug.h> #include <kdesktopfile.h> @@ -148,12 +152,47 @@ void MenuTab::load( bool useDefaults ) } } + c->setGroup("General"); + m_comboMenuStyle->setCurrentItem( c->readBoolEntry("LegacyKMenu", true) ? 1 : 0 ); + m_openOnHover->setChecked( c->readBoolEntry("OpenOnHover", true) ); + menuStyleChanged(); + + connect(m_comboMenuStyle, TQT_SIGNAL(activated(int)), TQT_SIGNAL(changed())); + connect(m_comboMenuStyle, TQT_SIGNAL(activated(int)), TQT_SLOT(menuStyleChanged())); + connect(m_openOnHover, TQT_SIGNAL(clicked()), TQT_SIGNAL(changed())); + m_showFrequent->setChecked(true); if ( useDefaults ) emit changed(); } +void MenuTab::menuStyleChanged() +{ + if (m_comboMenuStyle->currentItem()==1) { + m_openOnHover->setEnabled(false); + m_subMenus->setEnabled(true); + kcfg_UseSidePixmap->setEnabled(true); + kcfg_MenuEntryFormat->setEnabled(true); + kcfg_RecentVsOften->setEnabled(true); + m_showFrequent->setEnabled(true); + kcfg_UseSearchBar->setEnabled(true); + kcfg_MaxEntries2->setEnabled(true); + maxrecentdocs->setEnabled(true); + } + else { + m_openOnHover->setEnabled(true); + m_subMenus->setEnabled(false); + kcfg_UseSidePixmap->setEnabled(false); + kcfg_MenuEntryFormat->setEnabled(false); + kcfg_RecentVsOften->setEnabled(false); + m_showFrequent->setEnabled(false); + kcfg_UseSearchBar->setEnabled(false); + kcfg_MaxEntries2->setEnabled(false); + maxrecentdocs->setEnabled(false); + } +} + void MenuTab::save() { KSharedConfig::Ptr c = KSharedConfig::openConfig(KickerConfig::the()->configName()); @@ -179,9 +218,18 @@ void MenuTab::save() } } c->writeEntry("Extensions", ext); + c->setGroup("General"); + bool kmenusetting = m_comboMenuStyle->currentItem()==1; + bool oldkmenusetting = c->readBoolEntry("LegacyKMenu", true); + + c->writeEntry("LegacyKMenu", kmenusetting); + c->writeEntry("OpenOnHover", m_openOnHover->isChecked()); c->sync(); + if (kmenusetting != oldkmenusetting) + DCOPRef ("kicker", "default").call("restart()"); + // Save KMenu settings c->setGroup("KMenu"); c->writeEntry("CustomIcon", m_kmenu_icon); @@ -195,7 +243,7 @@ void MenuTab::save() config->sync(); if (m_kmenu_button_changed == true) { - system("dcop kicker kicker restart &"); + DCOPRef ("kicker", "default").call("restart()"); } } |