imsory / gnome2-globalmenu

Automatically exported from code.google.com/p/gnome2-globalmenu
GNU General Public License v2.0
0 stars 0 forks source link

GlobalMenu implementation under KDE 4 #380

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
Hello, i've participated in KDE4 GSoC 2009 project, implement global menu
under kde.
My thought is to make :
1. plasma applet as the menu "server"
2. qt patch/plugin
Can i follow Global Menu Specification (EWMH method) ?
since i see you guys are writing Global Menu Specification v2,
how is the status of the spec, freezed ?

Original issue reported on code.google.com by Zealot....@gmail.com on 23 Mar 2009 at 2:33

GoogleCodeExporter commented 8 years ago
Sorry for double post, now i successfully hook into and get the xml,
and the next step is about the MENU_EVENT,

its format is simple path string (like 123:/xx/xxx/xxxx), not xml ?

And about keyboard shortcut handle,
The shortcut seems always working(handled by the active window), so i didn't 
need to
register global shortcut according to the XML's accel field ?

Btw, when client change the menu context, are you sure there's now performance 
problem, 
i see pixmap marshal, and whole menu need to be modified, not the changed menu 
entry ...

Original comment by Zealot....@gmail.com on 24 Mar 2009 at 1:34

GoogleCodeExporter commented 8 years ago

>its format is simple path string (like 123:/xx/xxx/xxxx), not xml ?
Yes. Something like an XPath?
>
>And about keyboard shortcut handle,
>The shortcut seems always working(handled by the active window), so i didn't 
need to
>register global shortcut according to the XML's accel field ?

Supposingly so.

>Btw, when client change the menu context, are you sure there's now performance
>problem, 
>i see pixmap marshal, and whole menu need to be modified, not the changed menu 
entry ...

On GTK there was no performance issue. The only issue we have is issue 365.
The number of xml introspections can be reduced by adding a timer or so.

Original comment by rainwood...@gmail.com on 24 Mar 2009 at 6:48

GoogleCodeExporter commented 8 years ago
I've implemented the specification basically (exclude pixmap demarshal, keyboard
shortcut), 
take a look at:
http://qiacat.blogspot.com/2009/03/gnome-global-menu-in-kde4.html

Original comment by Zealot....@gmail.com on 25 Mar 2009 at 6:14

GoogleCodeExporter commented 8 years ago
@comment1: 
I bet neither does Thomas have heard about your GSOC project. 
As your hardwork has already accomplished gtk->KDE, the v2 spec will 
concentrate on
QT->GNOME. 

@comment3:
Good work! When do you plan to publish the code repository?

Original comment by rainwood...@gmail.com on 25 Mar 2009 at 3:00

GoogleCodeExporter commented 8 years ago
Find a way to make things happen style independently,
now it's working based on Thomas's patch in his QStylePlugin,

code is simple,PropertyNotify handled ...

the code is there.
browse:
http://websvn.kde.org/trunk/playground/base/plasma/globalmenu/
check out:
svn co svn://anonsvn.kde.org/home/kde/trunk/playground/base/plasma/globalmenu/

Original comment by Zealot....@gmail.com on 25 Mar 2009 at 11:42

GoogleCodeExporter commented 8 years ago
I didn't understand how you construct a path from the id. But if it works then 
it works.

Original comment by rainwood...@gmail.com on 25 Mar 2009 at 11:57

GoogleCodeExporter commented 8 years ago
the only ways to get this style "independent" are:
- patch Qt4 and make the Trolls accept the patch
- use KStyle (and thus all styles inheriting it can make use of it)
- link out the patching code from bespin into a mini lib (it's designed to be
encapsulated) and so allow other styles to link it (styles are the only plugins 
loaded
by all Qt4 apps for sure)
- just extend KDEs kmenubar (what i personally don't like, as it would not 
allow plain
Qt apps to make use of this)

i assume the fastest solution would be the minilib (the usage in other style is 
really
simple and it allows us to play on the private backend without having Qt/KDE or 
using
styles to care about), while the best one was to have integrated Qt support 
(but the
spec should be entirely finished then)

so i'll just do, and promote it on kde-look - then we'll see what's gonna happen

Original comment by thomas.l...@gmail.com on 26 Mar 2009 at 12:06

GoogleCodeExporter commented 8 years ago
@comment 3
recursively parse the xml, pass the parent's id as an argument.

@comment 7
I personally prefer make KStyle linked with that minilib.
Seems above methods except patch Qt can't make Qt programs which use QGtkStyle 
have
global menu ??

Original comment by Zealot....@gmail.com on 26 Mar 2009 at 4:15

GoogleCodeExporter commented 8 years ago
Seems above methods except patch Qt can't make Qt programs which use QGtkStyle 
have
global menu ??

yes, and this would of course be a little mean, because the QGtkStyle is likely 
the
one used on gnome desktops...

the good news is however that i /may/ know another way that will
- not require changes to Qt or KDE (ever)
- not require changes to any existing style plugin (ever)
- work regardless of the style you use
- betray my bespin pet... hey wait - that's not a good one ;-)

it remains however some kind of hack -> Qt should have support for this as soon 
as we
might have an official fdo protocol

i'll try this first and push it to playground - iff it works.
(if not, i didn't make a fool out of myself by posting idiotic ideas around)

Original comment by thomas.l...@gmail.com on 26 Mar 2009 at 12:24

GoogleCodeExporter commented 8 years ago
basically works ;-)

there may still turn out problems with specific apps (that we'll have to 
workaround
then) but the general approach is ok

i'll now try to drag in the tab transition code as well, maybe the amarok hacks 
and
make it transparent (if possible, not sure on this) so the user doesn't have to 
do
anything but installing.

btw (OT), i got /one/ mail from some "rob sheepmaker" because of GSoC.
i told him to ask around here, as i though the project wasn't accepted (i know
/nothing/ about GSoC beyond it exists and every year about the same time a lot 
of guys
with more or less half baked ideas popup and pollute mailing lists ;-)

so did he call? is this in GSoC? is it one of you?

Original comment by thomas.l...@gmail.com on 26 Mar 2009 at 3:10

GoogleCodeExporter commented 8 years ago
GSoc rejected us. We are now providing ideas into accepted upstream 
organizations.
Refer to Issue 331.

I am not sure what 'the tab transition code' means. To summarize you've found a 
way
to write a QT-plugin for global menu clients, right? That will be a very good 
news.

Original comment by rainwood...@gmail.com on 26 Mar 2009 at 3:31

GoogleCodeExporter commented 8 years ago
bespin allows to crossfade between tabs (+some other animated transitions)
there're some more hacks (e.g. for amarok) that have been demanded to "work in 
other
styles as well, please" that i could add to this plugin (being optional, of 
course)

and yes, we can now inject this into any Qt (see: Qt, like "cute") app w/o 
further
assistance from any 3rd party side

Original comment by thomas.l...@gmail.com on 26 Mar 2009 at 3:39

GoogleCodeExporter commented 8 years ago
Issue 381 has been merged into this issue.

Original comment by rainwood...@gmail.com on 28 Mar 2009 at 11:13

GoogleCodeExporter commented 8 years ago
NOTABUG

Original comment by rainwood...@gmail.com on 28 Mar 2009 at 11:13

GoogleCodeExporter commented 8 years ago
Tag this on 0.8 to match up with the roadmap.
@thomas. We gonna hurry up on the v2 spec. I'll be able to concentrate on the 
topic
in late April.

Original comment by rainwood...@gmail.com on 29 Mar 2009 at 5:10

GoogleCodeExporter commented 8 years ago

Original comment by pierre.s...@gmail.com on 13 Apr 2009 at 4:03

GoogleCodeExporter commented 8 years ago
well, after errr... some "lag" i implemented support in the XBar plasmoid to 
cover the timeframe before canonical will push dbusmenu as std...

so actually this could be closed

(oh, and sorry for the silence from my side)

Original comment by thomas.l...@gmail.com on 27 Aug 2010 at 5:26