Bug 116618 - [patch] - major new functionality
Summary: [patch] - major new functionality
Status: RESOLVED FIXED
Alias: None
Product: superkaramba
Classification: Miscellaneous
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR wishlist
Target Milestone: ---
Assignee: Ryan Nickell
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-11-18 12:41 UTC by Luke Kenneth Casson Leighton
Modified: 2006-01-20 19:59 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
new functionality, extra files (16.40 KB, patch)
2005-11-18 12:51 UTC, Luke Kenneth Casson Leighton
Details
update to enhanced functionality patch (14.21 KB, patch)
2005-11-18 17:19 UTC, Luke Kenneth Casson Leighton
Details
updated patch (15.87 KB, patch)
2006-01-15 12:32 UTC, Luke Kenneth Casson Leighton
Details
sub-theme (stop autoloading) and unique naming. (12.45 KB, patch)
2006-01-16 11:27 UTC, Luke Kenneth Casson Leighton
Details
sub-theme (stop autoloading) and unique naming and kpopup (16.26 KB, patch)
2006-01-16 12:57 UTC, Luke Kenneth Casson Leighton
Details
updated patch (48.35 KB, patch)
2006-01-16 13:27 UTC, Luke Kenneth Casson Leighton
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Luke Kenneth Casson Leighton 2005-11-18 12:41:02 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources
Compiler:          gcc 3.4 
OS:                Linux

where to begin :)

http://hands.com/~lkcl/kroller.sez/sk.kde.3.51.sez.tgz

some major strategic feature enhancements to superkaramba,
which make it possible to write kicker-replacement themes.

i've added:

1) a means to read the KSystemGroup and KSystem information
from the user's menu - you can run kmenuedit and the changes
will be reflected in superkaramba themes, immediately.

2) receiving the x,y coordinates of the mouse on a drag-drop,
not just the filename of what's drag-dropped.  in this way,
you can look up the icon that's associated with a program,
for example, and you can run the appropriate command with the
filename that was drag-dropped onto the icon.

i'm surprised and puzzled that this hasn't been added to
superkaramba before now.

3) a function for communicating between themes, and also a
means to give themes "pretty" names.  the pretty names is
essential, because if you have a theme class which can be
used repeatedly (more than once instance) e.g. as a menu
and also as a submenu, then it's friggin useless to not be
able to contact it because the menu and submenu themes have
the same name.

4) a function for calling (starting up) new themes from inside
superkaramba, and giving them a pretty name.

5) a function for changing the refresh rate.  this is
_essential_ for saving CPU time, but also to up the CPU
usage during times where it's needed.  for example, on
mouse move, change the refresh rate to 100ms, and record
the last update time, then after a certain amount of
inactivity, reduce it to 5000ms.

6) a function for sending window signals to themes.  e.g.
raise, lower, maximise, toggleOnTop, that sort of thing.
the original patch also made it possible to send the same
signals to "Tasks", but i am running into difficulties
with KWin::WindowInfo and am therefore leaving that out,
for now.


... btw, some idiot's ripped the src/*_python.h files
around significantly, making it impossible for robodoc
to auto-generate the python API documentation.
Comment 1 Luke Kenneth Casson Leighton 2005-11-18 12:51:05 UTC
Created attachment 13532 [details]
new functionality, extra files

contains a patch file plus the missing files that i couldn't get svn to include
with a svn diff command.
Comment 2 Luke Kenneth Casson Leighton 2005-11-18 17:19:02 UTC
Created attachment 13539 [details]
update to enhanced functionality patch

update.  removed duplicate functionality (pythonIface-related).
merged KWindow stuff into karamba class, instead of deriving.
bit messy, but it works.
updated comments in src/misc_python.h.
added "disable/enable management popup" function, which works
added "call management popup" function which locks up XServer-Xorg!!!!
Comment 3 Luke Kenneth Casson Leighton 2006-01-15 12:32:54 UTC
Created attachment 14259 [details]
updated patch

missed couple of files.
Comment 4 Luke Kenneth Casson Leighton 2006-01-16 11:27:21 UTC
Created attachment 14268 [details]
sub-theme (stop autoloading) and unique naming.

this is an ADDITIONAL patch that sorts out some
ussies with theme loading.
1) sub-themes opened with openNamedTheme can be excluded
from the "OpenThemes" functionality which is that superkaramba
auto-starts themes when it's started up
2) if a theme with a particular pretty name already
exists, the theme is _not_ loaded a second time.
if you want multiple themes under the same name (unique doesn't matter)
then use openTheme not openNamedTheme.
Comment 5 Luke Kenneth Casson Leighton 2006-01-16 12:57:35 UTC
Created attachment 14269 [details]
sub-theme (stop autoloading) and unique naming and kpopup

also fixed problem in management popup which locked
up xorg until i killed superkaramba.
use kpop->popup instead of kpop->exec().
Comment 6 Luke Kenneth Casson Leighton 2006-01-16 13:27:35 UTC
Created attachment 14270 [details]
updated patch

updated to include the sub-theme stuff and unique naming etc.
reason: damn invonvenient for anyone looking at this stuff
to have to apply two patches.
the  separate patch is for p0z3r who is in the middle of wading
through this stuff...
Comment 7 Ryan Nickell 2006-01-18 18:26:09 UTC
SVN commit 499776 by nickell:

BUG:120262 - itemDropped callback now has x/y cooridinates
BUG:116618 - Many new functions added:
callTheme - Pass a string to another theme
changeInterval - Change the refresh interval of the theme
createServiceClickArea - Create a Service-named Click Area Sensor
getIncomingData - Get incoming data passed from another theme
getPrettyThemeName - Get the pretty name of the theme
getServiceGroups - Get KDE Service Groups
getSystraySize - Get the size of the Systray
getUpdateTime - Get last updated time
managementPopup - Activates the Management Popup menu (i.e. SK right click config menu)
openNamedTheme - Open a new theme giving it a new name
removeClickArea - Remove a Click Area Sensor
run - Execute a command with KRun
setIncomingData - Set incoming data passed in another theme
setUpdateTime - Set last updated time
setWantRightButton - Set to 1 to deactivate management popups (i.e. SK right click config menu)
setWidgetOnTop - changes 'on top' status

Patch reviewed by Matt Rogers.



 M  +7 -1      AUTHORS  
 M  +16 -16    src/Makefile.am  
 M  +32 -12    src/clickarea.cpp   [POSSIBLY UNSAFE: KRun::runCommand]
 M  +4 -0      src/clickarea.h  
 M  +3 -0      src/dcopinterface.h  
 M  +1 -0      src/imagelabel_python.cpp  
 M  +97 -12    src/karamba.cpp  
 M  +40 -4     src/karamba.h  
 M  +53 -5     src/karamba_python.cpp  
 M  +3 -2      src/karamba_python.h  
 M  +20 -0     src/karambaapp.cpp  
 M  +1 -0      src/karambaapp.h  
 M  +29 -2     src/karambainterface.cpp  
 M  +3 -0      src/karambainterface.h  
 M  +2 -0      src/karambasessionmanaged.cpp  
 M  +1 -0      src/main.cpp  
 M  +5 -0      src/meter.cpp  
 M  +4 -0      src/meter.h  
 M  +270 -3    src/misc_python.cpp   [UTF-8 ENCODING PROBLEMS]
 M  +239 -4    src/misc_python.h   [UTF-8 ENCODING PROBLEMS]
 M  +4 -0      src/systemtray.cpp  
 M  +1 -0      src/systemtray.h  
 M  +22 -0     src/systray_python.cpp  
 M  +1 -0      src/systray_python.h  
 M  +20 -0     src/widget_python.cpp  
 M  +1 -0      src/widget_python.h  
Comment 8 Jetchko Jekov 2006-01-20 11:06:07 UTC
I don't if here is right place to post that bug, but this patch introduces following errors on my x86_64 platform:

/var/tmp/portage/superkaramba-7/work/branches/KDE/3.5/kdeutils/superkaramba/src/misc_python.cpp: In function 'long int removeClickArea(long int, long int)':
/var/tmp/portage/superkaramba-7/work/branches/KDE/3.5/kdeutils/superkaramba/src/misc_python.cpp:322: error: cast from 'ClickArea*' to 'int' loses precision
/var/tmp/portage/superkaramba-7/work/branches/KDE/3.5/kdeutils/superkaramba/src/misc_python.cpp: In function 'long int createServiceClickArea(long int, long int, long int, long int, long int, char*, char*, char*)':
/var/tmp/portage/superkaramba-7/work/branches/KDE/3.5/kdeutils/superkaramba/src/misc_python.cpp:341: error: cast from 'ClickArea*' to 'int' loses precision
/var/tmp/portage/superkaramba-7/work/branches/KDE/3.5/kdeutils/superkaramba/src/misc_python.cpp: In function 'long int callTheme(long int, char*, char*)':
/var/tmp/portage/superkaramba-7/work/branches/KDE/3.5/kdeutils/superkaramba/src/misc_python.cpp:397: error: cast from 'karamba*' to 'int' loses precision
/var/tmp/portage/superkaramba-7/work/branches/KDE/3.5/kdeutils/superkaramba/src/misc_python.cpp: In function 'long int setIncomingData(long int, char*, char*)':
/var/tmp/portage/superkaramba-7/work/branches/KDE/3.5/kdeutils/superkaramba/src/misc_python.cpp:407: error: cast from 'karamba*' to 'int' loses precision
/var/tmp/portage/superkaramba-7/work/branches/KDE/3.5/kdeutils/superkaramba/src/misc_python.cpp: In function 'long int openNamedTheme(char*, char*, bool)':
/var/tmp/portage/superkaramba-7/work/branches/KDE/3.5/kdeutils/superkaramba/src/misc_python.cpp:446: error: cast from 'karamba*' to 'int' loses precision

Build environment:

default-linux/amd64/2005.1, gcc-4.1.0-beta20060113, glibc-2.3.6-r2, 2.6.15-gentoo x86_64)

CHOST="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=nocona -mtune=nocona -pipe -O2 -fno-ident"
CXXFLAGS="-O2 -march=nocona -mtune=nocona -pipe -O2 -fno-ident -fvisibility-inlines-hidden -ffriend-injection"
Comment 9 Ryan Nickell 2006-01-20 15:38:53 UTC
There were some compile fixes submitted this morning.  Can you update and report back?
Comment 10 Jetchko Jekov 2006-01-20 16:31:34 UTC
Yes, it compiles & works now, thanks.

Comment 11 Luke Kenneth Casson Leighton 2006-01-20 19:59:38 UTC
compiles fine.

On Fri, Jan 20, 2006 at 02:38:56PM -0000, Ryan Nickell wrote:
[bugs.kde.org quoted mail]