diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-09-03 20:49:48 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-09-03 20:49:48 +0000 |
commit | fd7a608ffe99df747f0496300276b95f766c18b9 (patch) | |
tree | c54dfe97fb682af9705d2cb09c424c60db861228 /kicker/kicker/core | |
parent | 27856879bf962f178d88e79144e37a47e731b122 (diff) | |
download | tdebase-fd7a608ffe99df747f0496300276b95f766c18b9.tar.gz tdebase-fd7a608ffe99df747f0496300276b95f766c18b9.zip |
* Added Kickoff menu
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1171422 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kicker/kicker/core')
-rw-r--r-- | kicker/kicker/core/Makefile.am | 8 | ||||
-rw-r--r-- | kicker/kicker/core/applethandle.cpp | 23 | ||||
-rw-r--r-- | kicker/kicker/core/container_button.cpp | 11 | ||||
-rw-r--r-- | kicker/kicker/core/containerarea.cpp | 3 | ||||
-rw-r--r-- | kicker/kicker/core/kicker.cpp | 5 | ||||
-rw-r--r-- | kicker/kicker/core/kmenubase.ui | 300 | ||||
-rw-r--r-- | kicker/kicker/core/kmenubase.ui.h | 9 | ||||
-rw-r--r-- | kicker/kicker/core/main.cpp | 2 | ||||
-rw-r--r-- | kicker/kicker/core/menumanager.cpp | 32 | ||||
-rw-r--r-- | kicker/kicker/core/menumanager.h | 9 | ||||
-rw-r--r-- | kicker/kicker/core/unhidetrigger.cpp | 2 |
11 files changed, 366 insertions, 38 deletions
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<TQWidget*>(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 @@ +<!DOCTYPE UI><UI version="3.3" stdsetdef="1"> +<class>KMenuBase</class> +<widget class="QDialog"> + <property name="name"> + <cstring>KMenu</cstring> + </property> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>723</width> + <height>580</height> + </rect> + </property> + <property name="caption"> + <string>KMenu</string> + </property> + <property name="frameShadow" stdset="0"> + <string>MShadow</string> + </property> + <property name="frameShape" stdset="0"> + <string>MShape</string> + </property> + <widget class="QLayoutWidget"> + <property name="name"> + <cstring>m_search</cstring> + </property> + <property name="geometry"> + <rect> + <x>20</x> + <y>40</y> + <width>190</width> + <height>54</height> + </rect> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <property name="margin"> + <number>0</number> + </property> + <property name="spacing"> + <number>0</number> + </property> + <widget class="QFrame"> + <property name="name"> + <cstring>m_searchFrame</cstring> + </property> + <property name="sizePolicy"> + <sizepolicy> + <hsizetype>5</hsizetype> + <vsizetype>0</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>0</width> + <height>52</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>32767</width> + <height>52</height> + </size> + </property> + <property name="frameShape"> + <enum>StyledPanel</enum> + </property> + <property name="frameShadow"> + <enum>Raised</enum> + </property> + <property name="lineWidth"> + <number>0</number> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLayoutWidget"> + <property name="name"> + <cstring>layout18</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>m_searchLabel</cstring> + </property> + <property name="backgroundOrigin"> + <enum>ParentOrigin</enum> + </property> + <property name="font"> + <font> + <pointsize>14</pointsize> + </font> + </property> + <property name="text"> + <string>Search:</string> + </property> + </widget> + <widget class="KHistoryCombo"> + <property name="name"> + <cstring>m_kcommand</cstring> + </property> + <property name="sizePolicy"> + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>0</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>m_searchPixmap</cstring> + </property> + <property name="sizePolicy"> + <sizepolicy> + <hsizetype>1</hsizetype> + <vsizetype>1</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>32</width> + <height>32</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>32</width> + <height>32</height> + </size> + </property> + <property name="backgroundMode"> + <enum>PaletteBackground</enum> + </property> + <property name="backgroundOrigin"> + <enum>ParentOrigin</enum> + </property> + <property name="scaledContents"> + <bool>true</bool> + </property> + </widget> + </hbox> + </widget> + </hbox> + </widget> + <spacer> + <property name="name"> + <cstring>spacer5_2</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Preferred</enum> + </property> + <property name="sizeHint"> + <size> + <width>16</width> + <height>20</height> + </size> + </property> + </spacer> + </hbox> + </widget> + <widget class="QLayoutWidget"> + <property name="name"> + <cstring>m_footer</cstring> + </property> + <property name="geometry"> + <rect> + <x>20</x> + <y>110</y> + <width>407</width> + <height>34</height> + </rect> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <property name="margin"> + <number>4</number> + </property> + <property name="spacing"> + <number>4</number> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>m_userInfo</cstring> + </property> + <property name="sizePolicy"> + <sizepolicy> + <hsizetype>3</hsizetype> + <vsizetype>0</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>User&nbsp;<b>user</b>&nbsp;on&nbsp;<b>host</b></string> + </property> + </widget> + <spacer> + <property name="name"> + <cstring>spacer13_2</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>MinimumExpanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>10</width> + <height>20</height> + </size> + </property> + </spacer> + <widget class="QToolButton"> + <property name="name"> + <cstring>m_branding</cstring> + </property> + <property name="sizePolicy"> + <sizepolicy> + <hsizetype>4</hsizetype> + <vsizetype>4</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="maximumSize"> + <size> + <width>90</width> + <height>24</height> + </size> + </property> + <property name="text"> + <string></string> + </property> + <property name="iconSet"> + <iconset>image0</iconset> + </property> + <property name="usesBigPixmap"> + <bool>true</bool> + </property> + <property name="autoRaise"> + <bool>true</bool> + </property> + </widget> + <spacer> + <property name="name"> + <cstring>spacer13</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Fixed</enum> + </property> + <property name="sizeHint"> + <size> + <width>14</width> + <height>20</height> + </size> + </property> + </spacer> + </hbox> + </widget> +</widget> +<customwidgets> +</customwidgets> +<images> + <image name="image0"> + <data format="PNG" length="347">89504e470d0a1a0a0000000d494844520000005a0000001808060000007a38ea6500000122494441546881ed98610e83200c85c7e2a93c0087e6005c0b7f754152ea43a532ec972c512cf5f96c28d3c5183f467fbe4f0b780b66b41266b41266b412cbd302b4594348d2f5e8bd93e2e83a9a93e2ada21b397a51355e57d1794592695c954af16b08899b23e5f955f41a42a25fbbfcbe709a9ed0c9998eb25b3aa2f72e7aef4634fbdf395c3a72d3f346811c73f390b172fcac36eefc2a522172e3746fd1e8b3a2a579523e3ae7c6b9fbf434f46e764623cda18ce78cc973213950b108b99e1ee6235b398e050d44e2f2f1abb966e3f43eba5c0e466ba03df4d4fa0982b8469706b65469f9a0b57d271787beb89ab63b970da9c1b5c4ba59bf4723464b3de9eebfe0531a3de20e64ba6f1da3f50a62ca8a1e91e92a7a54cc6825cc6825cc682536f10e058bc1bcdf310000000049454e44ae426082</data> + </image> +</images> +<includes> + <include location="local" impldecl="in implementation">kmenubase.ui.h</include> +</includes> +<functions> + <function access="private" specifier="non virtual">init()</function> +</functions> +<layoutdefaults spacing="6" margin="11"/> +<includehints> + <includehint>kcombobox.h</includehint> +</includehints> +</UI> 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 <X11/Xlib.h> + +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 <tqvaluelist.h> class PanelKMenu; +class KMenu; class KickerClientMenu; +class KMenuStub; class PanelPopupButton; typedef TQValueList<PanelPopupButton*> 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<KickerClientMenu*> 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()) ); } |