From f4dab230c4d9f9e2aca86df98d2ee7398f9988aa Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Wed, 8 Oct 2014 00:33:34 -0500 Subject: [PATCH] Push the top menu banner support patches from Bug 1499 These are disabled by default and need additional repair but this is a good start --- kcontrol/kicker/menutab.ui | 16 +++++++++ kcontrol/kicker/menutab_impl.cpp | 18 ++++++++-- kicker/data/kmenu_side/CMakeLists.txt | 2 +- kicker/data/kmenu_side/Makefile.am | 2 +- kicker/data/kmenu_side/kside_top_left.png | Bin 0 -> 178 bytes kicker/data/kmenu_side/kside_top_right.png | Bin 0 -> 204 bytes kicker/data/kmenu_side/kside_top_tile.png | Bin 0 -> 158 bytes kicker/kicker/ui/CMakeLists.txt | 2 +- kicker/kicker/ui/Makefile.am | 2 +- kicker/kicker/ui/k_mnu.cpp | 40 +++++++++++++++++++-- kicker/libkicker/kickerSettings.kcfg | 38 +++++++++++++++----- 11 files changed, 103 insertions(+), 17 deletions(-) create mode 100644 kicker/data/kmenu_side/kside_top_left.png create mode 100644 kicker/data/kmenu_side/kside_top_right.png create mode 100644 kicker/data/kmenu_side/kside_top_tile.png diff --git a/kcontrol/kicker/menutab.ui b/kcontrol/kicker/menutab.ui index aa488c1b0..5d3f8fcfe 100644 --- a/kcontrol/kicker/menutab.ui +++ b/kcontrol/kicker/menutab.ui @@ -286,6 +286,22 @@ <p><b>Tip</b>: You can customize the image that appears in the TDE Menu by putting an image file called kside.png and a tileable image file called kside_tile.png in $TDEHOME/share/apps/kicker/pics.</qt> + + + kcfg_UseTopPixmap + + + Show top ima&ge + + + true + + + <qt>When this option is selected an image will appear on top of the TDE Menu. The image will be tinted according to your color settings. + + <p><b>Tip</b>: You can customize the image that appears in the TDE Menu by putting image files called kside_top_left.png and kside_top_right.png, and a tileable image file called kside_top_tile.png in $TDEHOME/share/apps/kicker/pics.</qt> + + kcfg_ShowKMenuText diff --git a/kcontrol/kicker/menutab_impl.cpp b/kcontrol/kicker/menutab_impl.cpp index 6be59c475..fe20f2302 100644 --- a/kcontrol/kicker/menutab_impl.cpp +++ b/kcontrol/kicker/menutab_impl.cpp @@ -84,6 +84,11 @@ MenuTab::MenuTab( TQWidget *parent, const char* name ) //connect(kcfg_ButtonFont, TQT_SIGNAL(fontSelected(const TQFont &)), TQT_SLOT(kmenuChanged())); connect(maxrecentdocs, TQT_SIGNAL(valueChanged(int)), this, TQT_SLOT(kmenuChanged())); + // FIXME + // When top pixmap support is ready for end-user visibility, replace + // the separate top/side checkboxes with either a drop down or radio buttons + kcfg_UseTopPixmap->hide(); + TDEIconLoader * ldr = TDEGlobal::iconLoader(); m_kmenu_icon = KickerSettings::customKMenuIcon(); if (m_kmenu_icon.isNull() == true) { @@ -109,7 +114,7 @@ void MenuTab::load() void MenuTab::load( bool useDefaults ) { TDESharedConfig::Ptr c = TDESharedConfig::openConfig(KickerConfig::the()->configName()); - + c->setReadDefaults( useDefaults ); c->setGroup("menus"); @@ -175,6 +180,7 @@ void MenuTab::menuStyleChanged() m_openOnHover->setEnabled(false); m_subMenus->setEnabled(true); kcfg_UseSidePixmap->setEnabled(true); + kcfg_UseTopPixmap->setEnabled(true); kcfg_UseTooltip->setEnabled(true); kcfg_MenuEntryFormat->setEnabled(true); kcfg_RecentVsOften->setEnabled(true); @@ -184,12 +190,13 @@ void MenuTab::menuStyleChanged() maxrecentdocs->setEnabled(true); kcfg_NumVisibleEntries->setEnabled(true); } - + // Kickoff Menu else { m_openOnHover->setEnabled(true); m_subMenus->setEnabled(false); kcfg_UseSidePixmap->setEnabled(false); + kcfg_UseTopPixmap->setEnabled(true); kcfg_UseTooltip->setEnabled(false); kcfg_MenuEntryFormat->setEnabled(false); kcfg_RecentVsOften->setEnabled(false); @@ -264,6 +271,13 @@ void MenuTab::save() forceRestart = true; } + bool toppixmapsetting = kcfg_UseTopPixmap->isChecked(); + bool oldtoppixmapsetting = c->readBoolEntry("UseTopPixmap", true); + + if (toppixmapsetting != oldtoppixmapsetting) { + forceRestart = true; + } + bool tooltipsetting = kcfg_UseTooltip->isChecked(); bool oldtooltipsetting = c->readBoolEntry("UseTooltip", false); diff --git a/kicker/data/kmenu_side/CMakeLists.txt b/kicker/data/kmenu_side/CMakeLists.txt index 4207e1361..197db4e39 100644 --- a/kicker/data/kmenu_side/CMakeLists.txt +++ b/kicker/data/kmenu_side/CMakeLists.txt @@ -9,4 +9,4 @@ # ################################################# -install( FILES kside.png kside_tile.png DESTINATION ${DATA_INSTALL_DIR}/kicker/pics ) +install( FILES kside.png kside_tile.png kside_top_left.png kside_top_right.png kside_top_tile.png DESTINATION ${DATA_INSTALL_DIR}/kicker/pics ) diff --git a/kicker/data/kmenu_side/Makefile.am b/kicker/data/kmenu_side/Makefile.am index 2d3e00932..3df9240ea 100644 --- a/kicker/data/kmenu_side/Makefile.am +++ b/kicker/data/kmenu_side/Makefile.am @@ -1,4 +1,4 @@ -kicker_kmenuside_pics_data_DATA = kside.png kside_tile.png +kicker_kmenuside_pics_data_DATA = kside.png kside_tile.png kside_top_left.png kside_top_right.png kside_top_tile.png kicker_kmenuside_pics_datadir = $(kde_datadir)/kicker/pics EXTRA_DIST = $(kicker_kmenuside_pics_data_DATA) diff --git a/kicker/data/kmenu_side/kside_top_left.png b/kicker/data/kmenu_side/kside_top_left.png new file mode 100644 index 0000000000000000000000000000000000000000..38a527aef7f5185d88a8f11179eae914c1746fc4 GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^T0ktq!2~2rE?Qg!Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jib6bH978-hpI+Q4ctC-NHPCq43;S~Ob?q$;hZUGpa}-QJ zq8U}fi7AzZCsS>Jit;>N978-h-%j2r*kHiJ{4iis{du!9&d!XDM_Aed6yH2n z|6zag@gAAx;tRhQmnCps40s!6y|6H_V+Po~-c6*+jiIEGZ*(&^aA%b>t>WQlU(|9QDH+S`~83EMHYKK*>~ zXOHFer7s(%@U8syx2%J65%07Y2?uia#oxZ{^Zhmx4} #include #include +#include #include "client_mnu.h" #include "container_base.h" @@ -156,7 +157,7 @@ void PanelKMenu::windowClearTimeout() bool PanelKMenu::loadSidePixmap() { - if (!KickerSettings::useSidePixmap()) + if (!KickerSettings::useSidePixmap() || KickerSettings::useTopSide()) { return false; } @@ -754,8 +755,15 @@ void PanelKMenu::createRecentMenuItems() if (RecentApps.count() > 0) { bool bSeparator = KickerSettings::showMenuTitles(); + bool bTitleTop = KickerSettings::useTopSide(); int nId = serviceMenuEndId() + 1; - int nIndex = KickerSettings::showMenuTitles() ? 1 : 0; + + int nIndex; + if( bTitleTop ) { + nIndex = KickerSettings::showMenuTitles() ? 2 : 0; + } else { + nIndex = KickerSettings::showMenuTitles() ? 1 : 0; + } for (TQValueList::ConstIterator it = RecentApps.fromLast(); /*nop*/; --it) @@ -775,6 +783,10 @@ void PanelKMenu::createRecentMenuItems() RecentlyLaunchedApps::the().caption(), font()), serviceMenuEndId(), 0); setItemEnabled( id, false ); + if( bTitleTop) { + id = insertItem(new PopupMenuTop(),serviceMenuEndId(),0); + setItemEnabled( id, false ); + } } insertMenuItem(s, nId++, nIndex); RecentlyLaunchedApps::the().m_nNumMenuItems++; @@ -791,6 +803,11 @@ void PanelKMenu::createRecentMenuItems() insertSeparator(RecentlyLaunchedApps::the().m_nNumMenuItems); } } + else if(KickerSettings::useTopSide()) + { + int id = insertItem(new PopupMenuTop(),serviceMenuEndId(),0); + setItemEnabled( id, false ); + } } void PanelKMenu::clearSubmenus() @@ -822,6 +839,8 @@ void PanelKMenu::updateRecent() RecentlyLaunchedApps::the().m_bNeedToUpdate = false; + bool bTitleTop = KickerSettings::useTopSide(); + int nId = serviceMenuEndId() + 1; // remove previous items @@ -829,6 +848,10 @@ void PanelKMenu::updateRecent() { // -1 --> menu title int i = KickerSettings::showMenuTitles() ? -1 : 0; + if(bTitleTop) { + i = KickerSettings::showMenuTitles() ? -2 : 0; + } + for (; i < RecentlyLaunchedApps::the().m_nNumMenuItems; i++) { removeItem(nId + i); @@ -842,6 +865,10 @@ void PanelKMenu::updateRecent() } } + if(bTitleTop) { + removeItemAt(0); + } + // insert new items TQStringList RecentApps; RecentlyLaunchedApps::the().getRecentApps(RecentApps); @@ -866,6 +893,10 @@ void PanelKMenu::updateRecent() RecentlyLaunchedApps::the().caption(), font()), nId - 1, 0); setItemEnabled( id, false ); + if(bTitleTop) { + id = insertItem(new PopupMenuTop(),nId - 1,0); + setItemEnabled( id, false ); + } } insertMenuItem(s, nId++, KickerSettings::showMenuTitles() ? 1 : 0); @@ -881,6 +912,11 @@ void PanelKMenu::updateRecent() insertSeparator(RecentlyLaunchedApps::the().m_nNumMenuItems); } } + else if(bTitleTop) + { + int id = insertItem(new PopupMenuTop(),serviceMenuEndId(),0); + setItemEnabled( id, false ); + } } void PanelKMenu::clearRecentMenuItems() diff --git a/kicker/libkicker/kickerSettings.kcfg b/kicker/libkicker/kickerSettings.kcfg index 0b022a30e..0abc51bf0 100644 --- a/kicker/libkicker/kickerSettings.kcfg +++ b/kicker/libkicker/kickerSettings.kcfg @@ -354,42 +354,62 @@ - + true - + false - + - + true - + + + false + + + + + kside_top_left.png + + + + + kside_top_right.png + + + + + kside_top_tile.png + + + kside.png - + kside_tile.png - + false - + i18n("Applications") - + QString("kmenu")