From fd7a608ffe99df747f0496300276b95f766c18b9 Mon Sep 17 00:00:00 2001 From: tpearson Date: Fri, 3 Sep 2010 20:49:48 +0000 Subject: * Added Kickoff menu git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1171422 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kicker/kicker/core/Makefile.am | 8 +- kicker/kicker/core/applethandle.cpp | 23 +-- kicker/kicker/core/container_button.cpp | 11 +- kicker/kicker/core/containerarea.cpp | 3 +- kicker/kicker/core/kicker.cpp | 5 +- kicker/kicker/core/kmenubase.ui | 300 ++++++++++++++++++++++++++++++++ kicker/kicker/core/kmenubase.ui.h | 9 + kicker/kicker/core/main.cpp | 2 +- kicker/kicker/core/menumanager.cpp | 32 ++-- kicker/kicker/core/menumanager.h | 9 +- kicker/kicker/core/unhidetrigger.cpp | 2 +- 11 files changed, 366 insertions(+), 38 deletions(-) create mode 100644 kicker/kicker/core/kmenubase.ui create mode 100644 kicker/kicker/core/kmenubase.ui.h (limited to 'kicker/kicker/core') diff --git a/kicker/kicker/core/Makefile.am b/kicker/kicker/core/Makefile.am index 6986af604..25e7e733a 100644 --- a/kicker/kicker/core/Makefile.am +++ b/kicker/kicker/core/Makefile.am @@ -1,12 +1,14 @@ INCLUDES = -I$(srcdir)/../../libkicker -I../../libkicker \ - -I$(srcdir)/../ui -I$(srcdir)/../buttons -I$(top_srcdir)/libkonq \ - $(all_includes) + -I../ui -I$(srcdir)/../ui -I$(srcdir)/../buttons -I$(top_srcdir)/libkonq \ + $(all_includes) $(LIBBEAGLE_CFLAGS) $(GLIB_CFLAGS) noinst_LTLIBRARIES = libkicker_core.la +libkicker_core_la_COMPILE_FIRST = kmenubase.h + libkicker_core_la_SOURCES = extensionSettings.kcfgc \ main.cpp kicker.cpp kicker.skel \ - userrectsel.cpp containerarea.cpp \ + userrectsel.cpp containerarea.cpp kmenubase.ui \ applethandle.cpp container_base.cpp container_button.cpp \ container_applet.cpp container_extension.cpp extensionmanager.cpp \ menumanager.cpp pluginmanager.cpp showdesktop.cpp \ diff --git a/kicker/kicker/core/applethandle.cpp b/kicker/kicker/core/applethandle.cpp index 251cbc1bd..f5f398136 100644 --- a/kicker/kicker/core/applethandle.cpp +++ b/kicker/kicker/core/applethandle.cpp @@ -150,7 +150,7 @@ void AppletHandle::setFadeOutHandle(bool fadeOut) { if (!m_handleHoverTimer) { - m_handleHoverTimer = new TQTimer(this); + m_handleHoverTimer = new TQTimer(this, "m_handleHoverTimer"); connect(m_handleHoverTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(checkHandleHover())); m_applet->installEventFilter(this); @@ -177,11 +177,7 @@ bool AppletHandle::eventFilter(TQObject *o, TQEvent *e) m_drawHandle = true; resetLayout(); - if (m_handleHoverTimer) - { - m_handleHoverTimer->start(250); - } - break; + break; } case TQEvent::Leave: @@ -191,6 +187,11 @@ bool AppletHandle::eventFilter(TQObject *o, TQEvent *e) break; } + if (m_handleHoverTimer) + { + m_handleHoverTimer->start(250); + } + TQWidget* w = dynamic_cast(o); bool nowDrawIt = false; @@ -207,11 +208,6 @@ bool AppletHandle::eventFilter(TQObject *o, TQEvent *e) if (nowDrawIt != m_drawHandle) { - if (m_handleHoverTimer) - { - m_handleHoverTimer->stop(); - } - m_drawHandle = nowDrawIt; resetLayout(); } @@ -297,6 +293,11 @@ void AppletHandle::toggleMenuButtonOff() } m_menuButton->setDown(false); + + if (m_handleHoverTimer) + { + m_handleHoverTimer->start(250); + } } AppletHandleDrag::AppletHandleDrag(AppletHandle* parent) diff --git a/kicker/kicker/core/container_button.cpp b/kicker/kicker/core/container_button.cpp index 8ac39a47f..bb0249843 100644 --- a/kicker/kicker/core/container_button.cpp +++ b/kicker/kicker/core/container_button.cpp @@ -43,6 +43,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "desktopbutton.h" #include "extensionbutton.h" #include "kbutton.h" +#include "knewbutton.h" #include "kicker.h" #include "kickerSettings.h" #include "kickertip.h" @@ -326,14 +327,20 @@ KMenuButtonContainer::KMenuButtonContainer(const KConfigGroup& config, TQPopupMe : ButtonContainer(opMenu, parent) { checkImmutability(config); - embedButton( new KButton(this) ); + if(KickerSettings::legacyKMenu()) + embedButton( new KButton(this) ); + else + embedButton( new KNewButton(this) ); _actions = PanelAppletOpMenu::KMenuEditor; } KMenuButtonContainer::KMenuButtonContainer(TQPopupMenu *opMenu, TQWidget* parent) : ButtonContainer(opMenu, parent) { - embedButton( new KButton(this) ); + if(KickerSettings::legacyKMenu()) + embedButton( new KButton(this) ); + else + embedButton( new KNewButton(this) ); _actions = PanelAppletOpMenu::KMenuEditor; } diff --git a/kicker/kicker/core/containerarea.cpp b/kicker/kicker/core/containerarea.cpp index 7d63d562a..1bd80bc65 100644 --- a/kicker/kicker/core/containerarea.cpp +++ b/kicker/kicker/core/containerarea.cpp @@ -87,7 +87,8 @@ ContainerArea::ContainerArea(KConfig* _c, m_immutable(_c->isImmutable()), m_updateBackgroundsCalled(false), m_layout(0), - m_addAppletDialog(0) + m_addAppletDialog(0), + _autoScrollTimer(0, "ContainerArea::autoScrollTimer") { setBackgroundOrigin( WidgetOrigin ); diff --git a/kicker/kicker/core/kicker.cpp b/kicker/kicker/core/kicker.cpp index de37c609e..d91e1eaf9 100644 --- a/kicker/kicker/core/kicker.cpp +++ b/kicker/kicker/core/kicker.cpp @@ -48,6 +48,8 @@ #include "extensionmanager.h" #include "pluginmanager.h" #include "menumanager.h" +#include "k_new_mnu.h" +#include "k_mnu_stub.h" #include "k_mnu.h" #include "showdesktop.h" #include "panelbutton.h" @@ -106,6 +108,7 @@ Kicker::Kicker() KGlobal::iconLoader()->addExtraDesktopThemes(); + KGlobal::locale()->insertCatalogue("kdmgreet"); KGlobal::locale()->insertCatalogue("libkonq"); KGlobal::locale()->insertCatalogue("libdmctl"); KGlobal::locale()->insertCatalogue("libtaskbar"); @@ -212,7 +215,7 @@ bool Kicker::highlightMenuItem(const TQString &menuId) void Kicker::showKMenu() { - MenuManager::the()->showKMenu(); + MenuManager::the()->kmenuAccelActivated(); } void Kicker::popupKMenu(const TQPoint &p) diff --git a/kicker/kicker/core/kmenubase.ui b/kicker/kicker/core/kmenubase.ui new file mode 100644 index 000000000..1adb59b38 --- /dev/null +++ b/kicker/kicker/core/kmenubase.ui @@ -0,0 +1,300 @@ + +KMenuBase + + + KMenu + + + + 0 + 0 + 723 + 580 + + + + KMenu + + + MShadow + + + MShape + + + + m_search + + + + 20 + 40 + 190 + 54 + + + + + unnamed + + + 0 + + + 0 + + + + m_searchFrame + + + + 5 + 0 + 0 + 0 + + + + + 0 + 52 + + + + + 32767 + 52 + + + + StyledPanel + + + Raised + + + 0 + + + + unnamed + + + + layout18 + + + + unnamed + + + + m_searchLabel + + + ParentOrigin + + + + 14 + + + + Search: + + + + + m_kcommand + + + + 7 + 0 + 0 + 0 + + + + + + m_searchPixmap + + + + 1 + 1 + 0 + 0 + + + + + 32 + 32 + + + + + 32 + 32 + + + + PaletteBackground + + + ParentOrigin + + + true + + + + + + + + + spacer5_2 + + + Horizontal + + + Preferred + + + + 16 + 20 + + + + + + + + m_footer + + + + 20 + 110 + 407 + 34 + + + + + unnamed + + + 4 + + + 4 + + + + m_userInfo + + + + 3 + 0 + 0 + 0 + + + + User&nbsp;<b>user</b>&nbsp;on&nbsp;<b>host</b> + + + + + spacer13_2 + + + Horizontal + + + MinimumExpanding + + + + 10 + 20 + + + + + + m_branding + + + + 4 + 4 + 0 + 0 + + + + + 90 + 24 + + + + + + + image0 + + + true + + + true + + + + + spacer13 + + + Horizontal + + + Fixed + + + + 14 + 20 + + + + + + + + + + + 89504e470d0a1a0a0000000d494844520000005a0000001808060000007a38ea6500000122494441546881ed98610e83200c85c7e2a93c0087e6005c0b7f754152ea43a532ec972c512cf5f96c28d3c5183f467fbe4f0b780b66b41266b41266b412cbd302b4594348d2f5e8bd93e2e83a9a93e2ada21b397a51355e57d1794592695c954af16b08899b23e5f955f41a42a25fbbfcbe709a9ed0c9998eb25b3aa2f72e7aef4634fbdf395c3a72d3f346811c73f390b172fcac36eefc2a522172e3746fd1e8b3a2a579523e3ae7c6b9fbf434f46e764623cda18ce78cc973213950b108b99e1ee6235b398e050d44e2f2f1abb966e3f43eba5c0e466ba03df4d4fa0982b8469706b65469f9a0b57d271787beb89ab63b970da9c1b5c4ba59bf4723464b3de9eebfe0531a3de20e64ba6f1da3f50a62ca8a1e91e92a7a54cc6825cc6825cc682536f10e058bc1bcdf310000000049454e44ae426082 + + + + kmenubase.ui.h + + + init() + + + + kcombobox.h + + diff --git a/kicker/kicker/core/kmenubase.ui.h b/kicker/kicker/core/kmenubase.ui.h new file mode 100644 index 000000000..e1ed1ac25 --- /dev/null +++ b/kicker/kicker/core/kmenubase.ui.h @@ -0,0 +1,9 @@ +#include + +void KMenuBase::init() +{ + XSetWindowAttributes attrs; + attrs.override_redirect = True; + XChangeWindowAttributes( qt_xdisplay(), winId(), CWOverrideRedirect, &attrs ); + setWFlags( Qt::WType_Popup ); +} diff --git a/kicker/kicker/core/main.cpp b/kicker/kicker/core/main.cpp index 16090b9af..76e94a0e3 100644 --- a/kicker/kicker/core/main.cpp +++ b/kicker/kicker/core/main.cpp @@ -108,7 +108,7 @@ extern "C" KDE_EXPORT int kdemain( int argc, char ** argv ) appname.sprintf("kicker-screen-%d", kicker_screen_number); KAboutData aboutData( appname.data(), I18N_NOOP("KDE Panel"), - version, description, KAboutData::License_BSD, + version, description, KAboutData::License_GPL_V2, I18N_NOOP("(c) 1999-2010, The KDE Team") ); aboutData.addAuthor("Timothy Pearson", I18N_NOOP("Current maintainer"), "kb9vqf@pearsoncomputing.net"); diff --git a/kicker/kicker/core/menumanager.cpp b/kicker/kicker/core/menumanager.cpp index 908f6bdf9..61110de14 100644 --- a/kicker/kicker/core/menumanager.cpp +++ b/kicker/kicker/core/menumanager.cpp @@ -31,9 +31,12 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "client_mnu.h" #include "container_extension.h" #include "global.h" +#include "k_new_mnu.h" #include "k_mnu.h" +#include "k_mnu_stub.h" #include "kicker.h" #include "panelbutton.h" +#include "kickerSettings.h" #include "menumanager.h" #include "menumanager.moc" @@ -62,7 +65,11 @@ MenuManager* MenuManager::the() MenuManager::MenuManager(TQObject *parent) : TQObject(parent, "MenuManager"), DCOPObject("MenuManager") { - m_kmenu = new PanelKMenu; + if (KickerSettings::legacyKMenu()) + m_kmenu = new KMenuStub(new PanelKMenu); + else + m_kmenu = new KMenuStub(new KMenu); + kapp->dcopClient()->setNotifications(true); connect(kapp->dcopClient(), TQT_SIGNAL(applicationRemoved(const TQCString&)), this, TQT_SLOT(applicationRemoved(const TQCString&))); @@ -83,14 +90,8 @@ void MenuManager::slotSetKMenuItemActive() m_kmenu->selectFirstItem(); } -void MenuManager::showKMenu() -{ - m_kmenu->showMenu(); -} - void MenuManager::popupKMenu(const TQPoint &p) { -// kdDebug(1210) << "popupKMenu()" << endl; if (m_kmenu->isVisible()) { m_kmenu->hide(); @@ -120,7 +121,7 @@ void MenuManager::unregisterKButton(PanelPopupButton *button) m_kbuttons.remove(button); } -PanelPopupButton* MenuManager::findKButtonFor(TQPopupMenu* menu) +PanelPopupButton* MenuManager::findKButtonFor(TQWidget* menu) { KButtonList::const_iterator itEnd = m_kbuttons.constEnd(); for (KButtonList::const_iterator it = m_kbuttons.constBegin(); it != itEnd; ++it) @@ -173,7 +174,7 @@ void MenuManager::kmenuAccelActivated() const TQSize size = m_kmenu->sizeHint(); m_kmenu->resize(size.width(),size.height()); - PanelPopupButton* button = findKButtonFor(m_kmenu); + PanelPopupButton* button = findKButtonFor(m_kmenu->widget()); // let's unhide the panel while we're at it. traverse the widget // hierarchy until we find the panel, if any @@ -193,7 +194,6 @@ void MenuManager::kmenuAccelActivated() menuParent = menuParent->parent(); } - button->showMenu(); } } @@ -217,7 +217,7 @@ TQCString MenuManager::createMenu(TQPixmap icon, TQString text) void MenuManager::removeMenu(TQCString menu) { - bool iterate = true; + bool iterate = true, need_adjustSize = false; ClientMenuList::iterator it = clientmenus.begin(); for (; it != clientmenus.end(); iterate ? ++it : it) { @@ -228,15 +228,17 @@ void MenuManager::removeMenu(TQCString menu) m_kmenu->removeClientMenu(m->idInParentMenu); it = clientmenus.erase(it); iterate = false; + need_adjustSize = true; } } - m_kmenu->adjustSize(); + if (need_adjustSize) + m_kmenu->adjustSize(); } void MenuManager::applicationRemoved(const TQCString& appRemoved) { - bool iterate = true; + bool iterate = true, need_adjustSize = false; ClientMenuList::iterator it = clientmenus.begin(); for (; it != clientmenus.end(); iterate ? ++it : it) { @@ -247,9 +249,11 @@ void MenuManager::applicationRemoved(const TQCString& appRemoved) m_kmenu->removeClientMenu(m->idInParentMenu); it = clientmenus.erase(it); iterate = false; + need_adjustSize = true; } } - m_kmenu->adjustSize(); + if (need_adjustSize) + m_kmenu->adjustSize(); } bool MenuManager::process(const TQCString &fun, const TQByteArray &data, diff --git a/kicker/kicker/core/menumanager.h b/kicker/kicker/core/menumanager.h index e9d7dfef4..1139b0b61 100644 --- a/kicker/kicker/core/menumanager.h +++ b/kicker/kicker/core/menumanager.h @@ -28,7 +28,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include class PanelKMenu; +class KMenu; class KickerClientMenu; +class KMenuStub; class PanelPopupButton; typedef TQValueList KButtonList; @@ -50,13 +52,12 @@ public: bool process(const TQCString &fun, const TQByteArray &data, TQCString& replyType, TQByteArray &reply); // KMenu controls - PanelKMenu* kmenu() { return m_kmenu; } - void showKMenu(); + KMenuStub* kmenu() { return m_kmenu; } void popupKMenu(const TQPoint &p); void registerKButton(PanelPopupButton *button); void unregisterKButton(PanelPopupButton *button); - PanelPopupButton* findKButtonFor(TQPopupMenu* menu); + PanelPopupButton* findKButtonFor(TQWidget* menu); ~MenuManager(); public slots: @@ -67,7 +68,7 @@ protected slots: void applicationRemoved(const TQCString&); protected: - PanelKMenu* m_kmenu; + KMenuStub* m_kmenu; typedef TQValueList ClientMenuList; ClientMenuList clientmenus; diff --git a/kicker/kicker/core/unhidetrigger.cpp b/kicker/kicker/core/unhidetrigger.cpp index 7dcf1a127..0a5093a61 100644 --- a/kicker/kicker/core/unhidetrigger.cpp +++ b/kicker/kicker/core/unhidetrigger.cpp @@ -39,7 +39,7 @@ UnhideTrigger::UnhideTrigger() , _lastXineramaScreen( -1 ) , enabledCount( 0 ) { - _timer = new TQTimer( this ); + _timer = new TQTimer( this, "UnhideTrigger" ); connect( _timer, TQT_SIGNAL(timeout()), TQT_SLOT(pollMouse()) ); } -- cgit v1.2.3