summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt21
-rw-r--r--config.h.cmake4
-rw-r--r--kicker/kicker/ui/k_new_mnu.cpp9
3 files changed, 34 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9ff608393..df16178e8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -278,6 +278,27 @@ else()
message( STATUS "Selected man-db for tdeio-man on your system" )
endif()
+##### Checks for a distribution-specific 1st menu item, generally a control center
+if(EXISTS "/usr/share/applications/YaST.desktop")
+ set( KICKOFF_DIST_CONFIG_SHORTCUT1 "/usr/share/applications/YaST.desktop" )
+endif()
+if(EXISTS "/usr/share/applications/mageia-drakconf.desktop")
+ set( KICKOFF_DIST_CONFIG_SHORTCUT1 "/usr/share/applications/mageia-drakconf.desktop" )
+endif()
+if(EXISTS "/usr/share/applications/pclinuxos-drakconf.desktop")
+ set( KICKOFF_DIST_CONFIG_SHORTCUT1 "/usr/share/applications/pclinuxos-drakconf.desktop" )
+endif()
+if(EXISTS "/usr/share/applications/mandriva-drakconf.desktop")
+ set( KICKOFF_DIST_CONFIG_SHORTCUT1 "/usr/share/applications/mandriva-drakconf.desktop" )
+endif()
+
+##### Checks for a distribution-specific 2nd menu item, generally a shortcut to graphical package manager
+if(EXISTS "/usr/share/applications/package-manager.desktop")
+ set( KICKOFF_DIST_CONFIG_SHORTCUT2 "/usr/share/applications/package-manager.desktop" )
+endif()
+if(EXISTS "/usr/share/applications/rpmdrake.desktop")
+ set( KICKOFF_DIST_CONFIG_SHORTCUT2 "/usr/share/applications/rpmdrake.desktop" )
+endif()
##### write configure files #####################
diff --git a/config.h.cmake b/config.h.cmake
index 282e3a80d..4fbb33915 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -195,3 +195,7 @@
// Use makewhatis manpage support
#cmakedefine WITH_MAKEWHATIS "@WITH_MAKEWHATIS@"
+
+// Kickoff menu
+#cmakedefine KICKOFF_DIST_CONFIG_SHORTCUT1 "@KICKOFF_DIST_CONFIG_SHORTCUT1@"
+#cmakedefine KICKOFF_DIST_CONFIG_SHORTCUT2 "@KICKOFF_DIST_CONFIG_SHORTCUT2@"
diff --git a/kicker/kicker/ui/k_new_mnu.cpp b/kicker/kicker/ui/k_new_mnu.cpp
index e2ecf40cb..24d751a33 100644
--- a/kicker/kicker/ui/k_new_mnu.cpp
+++ b/kicker/kicker/ui/k_new_mnu.cpp
@@ -1342,6 +1342,15 @@ void KMenu::insertStaticItems()
m_systemView->insertSeparator( nId++, i18n("Applications"), index++);
+#ifdef KICKOFF_DIST_CONFIG_SHORTCUT1
+ KService::Ptr kdcs1 = KService::serviceByStorageId(KICKOFF_DIST_CONFIG_SHORTCUT1);
+ m_systemView->insertMenuItem(kdcs1, nId++, index++);
+#endif
+#ifdef KICKOFF_DIST_CONFIG_SHORTCUT2
+ KService::Ptr kdcs2 = KService::serviceByStorageId(KICKOFF_DIST_CONFIG_SHORTCUT2);
+ m_systemView->insertMenuItem(kdcs2, nId++, index++);
+#endif
+
KService::Ptr p = KService::serviceByStorageId("KControl.desktop");
m_systemView->insertMenuItem(p, nId++, index++);