Issue 64
24th June 2007 by Danny AllenThis Week...
DataEngines are plugins that get loaded on an as-needed-basis to provide access to specific bodies of information. This week we saw DataEngines for looking up the meanings of words in online dictionaries, facebook updates, weather information (currently only Canada, but it is fully extensible to include other country information) and hardware events (interfaces with Solid).
With these engines, a Plasmoid can ask to be connected to specific pieces of information and all the data fetching, processing, updating and clean up is handled for it. The interface is also identical regardless of the type of information so there is no need to learn different library interfaces to create different kinds of applets.
Phase/Animator is a system to provide centralized management of animations and other graphical effects. Like DataEngines, Phase/Animator is also plugin-based for flexibility and makes it very easy to add animations to Plasmoids and other desktop elements.
Animating a whole item is one line of code while animating an element within an item is ~3 lines of code. Animations for appearing, disappearing, slide outs, etc.. are provided and it is extensible to easily add more. This gives us the ability to provide consistent, efficient and pervasive effects on the desktop while also allowing them to be turned off (or otherwise chnaged) with the flick of a configuration switch, which is pretty important for thin client systems or accessibility concerns.
On Monday, we easily wrote the plain text version of the Dict engine in a few hours after figuring out how to do TCP sockets in Qt. We were surprised at how easy it was to get working. That night, we started writing the beginnings of the applet until biological limits such as sleep overcame our enthusiasm about hacking on KDE. On Tuesday, we talked to Aaron J. Seigo on IRC about putting it into SVN. We then sent the engine to the Plasma (panel-devel) mailing list where we received some helpful responses on how we could improve the engine.
After we fixed a few things and resent the engine, Aaron committed it into playground. I also applied for a SVN account that day and received it that night. We were now able to commit directly to SVN. We continued hacking until we fell asleep that night too. On Wednesday, we committed the Dictionary applet and made the engine have pretty HTML output once we realized HTML was usable in the applet. We also added animation support in 1 line by using Phase. We continuously hacked at the applet and engine at a steady pace through Thursday. On Friday, I changed the layout/look of the applet after I received a cool mockup from the Oxygen team and Jeff recorded the screencast. On Saturday, I kept implementing cool new features like pages (which I just committed the preliminary version of) and dictionary selection, and I wrote these paragraphs.
The Dictionary applet mainly consists of 2 widgets, a word lineedit and a definition lineedit that is hidden until a definition comes from the engine. It currently looks ugly since the new background rendering code was committed to Plasma on Friday and the Oxygen team did not have enough time in the couple hours before the screencast was recorded to make a nice background. The word lineedit has instructional text that behaves like it does not exist except for a bug that is being currently worked on where the text sometimes stays grey. The definition lineedit is animated using Phase (that took only 1 line of code!) and has links to other related words given by the dictionary. There is also a bug with the definition lineedit disappearing leaving artifacts that is actively being worked on (an hour is not enough time to fix a bug that I had no idea about). The definition lineedit gets its text from the Dict engine. The Dict engine interfaces with dict.org using a Qt TCP Socket and can get definitions from various quality dictionaries that it hosts (but the applet can only select one right now... this is another feature that I will work on after I finish pages).
Getting started with KDE/Plasma development was extremely easy thanks to Qt, KDE's easy to use libraries, and the continuous help from Aaron and others in the #plasma IRC channel. If you want to start devloping or contributing for Plasma or KDE, just drop in to the #plasma or #kde4-devel channel on Freenode or visit http://techbase.kde.org/Contribute.
I hope not only to bring PHP into the KDE and Qt worlds, but also to bring Qt and KDE into the PHP world; thereby exposing people to KDE which may not otherwise have such exposure.
Currently developers using PHP-Qt can use a number of Qt technologies including meta objects, overriding virtual methods, most non-template classes, and slots. In the near future I will implement user-generated signals, write more examples and tutorials, and improve overall stablity. Also Katrina Niolet and I are working together on adding support for template based classes such as QList and QVector.
Long term goals for PHP-Qt include:
- Support for QtDesigner based interfaces
- Ability to extend desktop software, such as Plasma, with PHP.
- Experimenting with combining Web and Desktop in new and innovative ways.
There are already several projects which have started developing GUI applications with PHP-Qt, including a configuration application for Gentoo and translation tools for web environments. Additionally, Katrina Niolet is developing IQuiP on top of PHP-Qt which allows one to write AJAX applications with the PHP-Qt API. Since both PHP-Qt and IQuiP share the same API it is theoretically possible to run a large number of applications both on the web and on the desktop without a single line of code modification.
Statistics
Commits | 2974 by 238 developers, 6511 lines modified, 1575 new files |
Open Bugs | 13986 |
Open Wishes | 12765 |
Bugs Opened | 226 in the last 7 days |
Bugs Closed | 157 in the last 7 days |
Commit Summary
Module | Commits |
/trunk/KDE |
1076
|
/trunk/extragear |
388
|
/trunk/l10n-kde4 |
233
|
/trunk/playground |
222
|
/branches/work |
187
|
/branches/extragear |
153
|
/branches/stable |
144
|
/trunk/koffice |
128
|
/trunk/l10n-kde3 |
108
|
/trunk/www |
102
|
Lines | Developer | Commits |
662
|
Gilles Caulier |
293
|
371
|
Laurent Montel |
164
|
231
|
Aaron J. Seigo |
81
|
90
|
Oswald Buddenhagen |
63
|
147
|
Andreas Pakulat |
62
|
140
|
Allen Winter |
54
|
105
|
Thomas Georgiou |
49
|
102
|
Dirk Mueller |
48
|
55
|
Christian Ehrlicher |
45
|
92
|
Pino Toscano |
43
|
Internationalization (i18n) Status
Language | Percentage Complete |
Swedish (sv) |
99.49%
|
Portuguese (pt) |
98.8%
|
Dutch (nl) |
93.72%
|
Greek (el) |
92.24%
|
Spanish (es) |
92.14%
|
Estonian (et) |
91.45%
|
Danish (da) |
88.19%
|
German (de) |
86.75%
|
Italian (it) |
84.17%
|
French (fr) |
81.28%
|
Bug Killers and Buzz
Person | Bugs Closed |
Christian Esken |
17
|
Ferdinand Gassauer |
13
|
Thomas McGuire |
11
|
Oliver Kellogg |
10
|
Jan Kundrát |
10
|
Sebastian Trueg |
9
|
Marek Laane |
8
|
Oswald Buddenhagen |
8
|
Mark Kretschmann |
8
|
Kevin Funk |
7
|
Program | Buzz |
Amarok |
5645
|
Kopete |
3828
|
K3B |
3550
|
Kate |
3520
|
KMail |
3450
|
KDevelop |
2555
|
Kaffeine |
1728
|
Kontact |
1655
|
Kicker |
1654
|
Quanta |
1600
|
Person | Buzz |
David Faure |
746
|
Stephan Kulow |
662
|
Adriaan de Groot |
625
|
Allen Winter |
564
|
Jeff Mitchell |
540
|
Aaron J. Seigo |
518
|
Waldo Bastian |
466
|
George Staikos |
314
|
Robert Knight |
308
|
Luboš Luňák |
254
|
Commit Countries
Commit Demographics
Sex
Age
Contents
Bug Fixes | Features | Optimization | Security | Other | |
---|---|---|---|---|---|
Accessibility | |||||
Development Tools | [] | [] | [] | ||
Educational | [] | [] | |||
Graphics | [] | [] | |||
KDE Base | [] | [] | [] | ||
KDE-PIM | [] | [] | |||
Office | [] | [] | |||
Konqueror | [] | ||||
Multimedia | [] | [] | [] | ||
Networking Tools | [] | [] | [] | ||
User Interface | [] | ||||
Utilities | [] | [] | |||
Games | [] | [] | [] | ||
Other |
There are 147 selections this week
Bug Fixes
Office
Fix crash in squeezedcombobox when motif or cde style is selected. Not relevant for trunk, because there we'll stop using squeezedcombobox Real Soon Now.
Multimedia
Networking Tools
Some few lines, but a lot of work...
Fix crash if you for example connected to a host that no existed or if you entered a wrong password.
Make sure QM cannot start torrents which are currently moving their data files.
Features
Development Tools
* SQL Code generation for MySQL and PostgreSQL.
Generates code for everything that's supported in ER diagrams except Auto Increment ( which will be coming soon. I need to figure out a nice way to combine the auto increment of Mysql and Sequences of Pg )
Open and read the items from the .webprj file.
Educational
this commit adds the necessary files for gps any gps datastructures allong with any necessary changes made to the AbstractLayer implementation. AbstractLayer will change in accordance with its usage. AbstractLayer.cpp was not included in the CmakeLists.txt because of a problem with linking during build.
sharedkvtmlfiles class initial checkin, kanagram is using this locally, but Im going to iron out a few issues before checking it in.
Graphics
Allow rotating images from the thumbnail viewer as well
Added Canon and Panasonic makernotes to the list of available Exif items, so that the user's preference about what items to show doesn't get lost
Implemented lossless save.
Apply Mike Gashler's "Tone Enhance" patch of 2006-04-22 as verbatim as possible.
The patch was against KDE 3.x: /trunk/kdegraphics/kolourpaint/ -<a href="http://websvn.kde.org/?rev=385276">r385276</a>.
KDE4 port
Laurent : this widget implementation from Tom have been forked from digiKam to Krita.
I have re-backported this code from Krita to digiKam.
I propose to share this widget in kdelibs for the future...
KDE Base
Update green on black color scheme to use the new KDE 4 format and tweak the blue, red and green colors to make them more readable.
now with really nice wallpaper
New and powerful KListView. Still pending class renaming. There are two methods that I need to think about it, and boost. Small issues like reloading all data when sorting role suddenly changes. In general terms it will work nice when you sort by name or size. We have to work further when we sort by other roles. Nice times.
* use EaseIn for the icon button show
* show the button(s) in .2s rather than the very slow feeling .5s
* don't leak the timeline
* don't connect to the timeline signal more than once
* comment in code that is ifdef'd out anyways
* don't set the svg element for fg and bg unless it exists
* remove some dead code
* put focus on the source line edit after selecting an engine (follows my workflow a lot better)
* mute the debug; i know it works and don't need the extra output on konsole
* add a quit action so i can honour my muscle memory that always wants to hit ctrl-q when i'm done
* make mini buttons "click" on mouse release like a proper button
* don't click when moving (either the icon or the mini buttons)
* only show the buttons on hovered states, allowing for proper button/hover/pressed painting
* try and avoid unecessary if/else's and other codedamage
* get rid of some dead code
now it's about ready to be phased =)
Remove display of meta info - didnt actually add much value.
Let Dolphin act as Konqueror on KDE3 does when sorting. Folders have more priority than hidden items.
So now items are shown:
1. Hidden Folders
2. Visible Folders
3. Hidden Files
4. Visible Files
Dolphin has to react as Konqueror on KDE3. If we find files containing symbols, we wait for the first letter to categorize it. "((a.txt" goes on category "A", ")2.txt" goes on category "Others".
Add shade() to KColorScheme (get shades for 3d effects i.e. light, midlight, mid, dark, shadow)
WARNING: the current implementation sucks and may take a bit to get right (it may even be outright broken); the API is good though
Add rudimentary support for app-specific caches. This could be used by e.g. Plasma or kdeedu/kdegames apps to cache rendered svg pixmaps.
ok, now any right click on an applet gets the applet right click menu.
obviously this is fairly broken as now applets can't provide right click menus for anything. i have some thoughts on how to fix this but need to consider it more.
Allow to sort by rating, which can be quite useful in combination with the "Show in Groups" feature. Although still slow, it basically works. All the code is based on Rafael Fernández López patch available at <a href="http://media.ereslibre.es/2007/06/dolphin-21062007.diff">http://media.ereslibre.es/2007/06/dolphin-21062007.diff.</a>
If we are sorting by rating, we won't apply the general rule: folders before regular files. The user said that was more interesting for him/her, so we respect his/her decision. In this case folders and files are citizens of the same class.
Add ability to click on links to follow them, but the desktop must be locked for the clicking to work right now.
Implement sorting by "tags". Same performance problems occur as when using sorting by "rating", but we must get a feeling first how we use the Nepomuk API before thinking about caching...
add a place holder for widget backgrounds
Small fixes, but that have an impact of how things are visualized.
* Move "not tagged" elements to the end. We sort the rest (when they have tags), but keep untagged elements (the category) at the end of the view, since the user had "less" interest on them.
* Break the law again of "dirs first". If we have on a folder only a tagged file (and is a file) and the rest are folders, that file goes first, since it was tagged.
* If we are on the same category, dirs go first. Here we make them citizens of first class.
* Commas instead of spaces when building categories for tags, they make it more readable and less error-prone (we can have tags "a", "dog" and "a dog" as tags, right?, so spaces here make the thing a bit hard to distinguish, I have two tags "a", "dog", or the tag "a dog") ;)
* Return an empty string when the item is not tagged at the method tagsForIndex. This way we always show untagged items the latest ones very easily (without nasty string checks). We will let the categorizer put a fancy name for them, if the returned string was empty.
Added an about section avaliable by typing "about". Works in engineexplorer but applet sometimes goes bork
the ThreeStars EchoMode is gone.
KDE-PIM
The 'Picture of the Day' plugin now shows localized tooltips and is a link to the picture's description page.
Make authentication work with 'Desktop' type Facebook application api keys.
*) Use https for getSession
*) Process the 'secret' field returned by getSession and use that for subsequent method signature generation
NB: There is still a bug in the FB server/application registration system, that causes an empty 'secret' field to be returned if the application was originally registered as being of type 'Website'.
Create a new app, fill the 'Optional' fields out accordingly, and use those keys if this affects you.
Started working on the composer. Random cleanups and bugfixes:
- move subject below the splitter
- remove code used for storing the size which are now automatically handled by qdockwidgets.
- make addressess in the box editable again.
Made IMAP port and authentication configurable
Initial generic agent support.
Rework the Network Status module for KDE 4
*) Network Status kded module implements two interfaces under /Networking
*) Client provides network status info and signals to network aware apps
*) Service allows apps providing or monitoring network status to register their networks and change their status
Service changes are aggregated and signalled over the Client interface to listening apps.
*) Add a KConnectionManager class to make using the Client interface stupidly easy. This caches status, preventing unnecessary dbus calls, allows control over connect/disconnect policy and can call registered slots on connect/disconnect.
*) Add a NetworkStatusIndicator class which is a simple widget shown when offline, which automatically hides() itself when online
*) Add a pair of GUI test programs 'client' and 'service' which allow the curious to simulate network changes and their effects on a client.
To use:
1) make install
2) qdbus org.kde.kded /kded loadModule networkstatus, qdbus org.kde.kded /Networking status qdbus org.kde.kded /Networking networks
3) in builddir/tests ./service
4) likewise, ./client
5) Change the service's status and observe the changes in the client.
Set the client to Start Connect while the service is offline, then connect the service and see how the client responds.
6) Use KConnectionManager in your own code.
TODO: Move libs to kdelibs and the rest to kdebase. Merge my secret networkstatus 3.5 branches to trunk.
Office
o This is the start to add animations to kpresenter. Up to now only the framework for running page effects is done. Also we I did a cover page down effect to see that it is working.
Special thanks goes to David for pointing out syncX() so that I still get mouse events during a page effect. Otherwise X was 100% and no longer forwarding key events to the application :-(.
All the animations will be done by the KPrAnimationDirector once it has all the needed functionality.
There are still a lot of open points but it is a start.
o added some pages and a shape as test data to a kpresenter document for testing
o rework fullscreen mode of kpresenter
o split KoPAView::setActivePage to setActivePage and updateActivePage
setActivePage only sets the active page
updateActivePage also updates the gui
- make the opacity control affects the eraser painting operation
Flake:
* Introduce paste
Text:
* Allow creation and deletion of styles through the docker
* Integrate clipboard stuff better
* Set a trailing dot on numbered items
KoText:
* Add properties to support ODF features list headers and outlines
Added the yweather.py script that provides us the KSpread YWEATHER scripting function.
Those function does use the YAHOO! Weather web service to provide a scripting function that displays the current temperature of a defined location.
So, once those script got executed we are able to;
=YWEATHER("GMXX0151";"c")
where the "GMXX0151" is a US zip code or a Location ID.
You are also able to reference a cell where those location is defined;
=YWEATHER("=C13";"c")
Added the yfinance.py script that provides us the KSpread YFINANCE scripting function which uses the YAHOO! Finance web service to provide stock trading info.
Samples;
=YFINANCE("YHOO";"20060119";"Open")
=YFINANCE("=C14";"=C15";"=C16")
Multimedia
The Sliders view is now a generic View, that is capable of showing all kinds of MixDeviceWidget's.
Fix a long outstanding issue with a capture switch showing "off" state when it was in fact "on" (hint: Capture exclusive group). This happens rarely, and there was no bug item for that, but users were confused and/or cmplaining.
Finalized optimal ALSA support. The last open issue (pswitch cswitch) is now resolved.
Beginning of support for popupdropper. Uncomment line 743 to have it cycle on and off.
Problems:
1) Isn't actually transparent, can't figure out why yet.
2) Scroll bars on QGV turned off, but there are noticeable outlines of where they'd be.
3) Doesn't completely draw in the entire window, seems like there's a pixel-wide border that it doesn't cover.
4) Main window doesn't redraw right when the QGV is deleted, even though there's a repaint called.
* move the popup dropper init into the playlist window, as it is just so much simpler to do things from there
* have the popup init take the window to parent to as a param
* make the translucency actually work
* get the size of the graphics view right (essentially 2px more than size() reports =)
it really ought to use a qtimeline to fade the background in/out on ctor/dtor, but i can't do all of jefferai's work otherwise what would he have to hack on? ;)
Add XDG mimetypes (xml) for:
*.kg - KTabedit Tabalature
*.gp3 - Guitar Pro 3 Tablature
*.gp4 - Guitar Pro 4 Tablature
*.ptab - PowerTab Tablature
Added recently used images combobox.
added rudimentary wiki support to context view. the menu bar is gone, like the lyrics' one, because we can't easily put arbitrary widgets on the QGV.
better solution needs to be found.
Very slowly begin the delicate rituals needed to bring the Magnatune store back to life on top of the new service framework. Starting with its lifeblood, the specialized meta types needed
Wow, PUD is starting to get somewhere. Activates on drag from any collection view item. turns off if the mouse moves inside the widget and the button is released.
To turn it on edit the static bool ENABLED in PopupDropper.cpp to be true.
Known problem: releasing the drag anywhere other than the PUD keeps it up there. (move the mouse over it to destroy it in this event).
More chanting of the rituals of ressurection
dropping on one of the PopupDropper items now appends the tracks to the playlist
More work on magnatune store on new framework
Networking Tools
The KDE 4 port of ktorrent is taking shape :
- We can now load, start, stop and remove torrents
- Implemented a very basic view to show the current running torrents (this is by no means the finished view, but it is good enough for testing)
- Added icons (still using the old ones for now)
- Fixed crash in ChunkManager when loading a torrent
User Interface
Bringing the device icons in line with the freedesktop.org icon naming specification, part 2.1: cleaning up.
Specifically, I forgot to rename the small versions of the svg icons (in devices/small). Also, there were still PNGs of ksim-cpu (which now resides in apps/) in devices/, those are supposed to be deleted from here.
Utilities
New Features:
- Network sensors can specify a list of preferred devices: dev="eth1|eth0|ppp0"
a) added a format of "%dev" which substitutes the active device or '<none>'
b) added the ability to detect the IP and substitute it in the format for "%ip"
- Named program sensors
a) add "programname" to name and reuse an (existing) program sensor
b) progam can specify a 'format' using positional indicators
- Use double quotes with %quote
Patch from Jasen Minton
Add test theme for named program sensors
Games
Added highscores.
The game is pretty much done: artwork and sounds are still missing, but everything else is there.
* Modified welcome screen.
** Now KBattleship has a single menu where the user can select the game type with just one click.
** Clicking on a multiplayer game shows a modal dialog where connection parameters can be set.
* Buttons are vertically aligned in WelcomeScreen.
Optimization
Development Tools
Invent a new, on the long run much more efficient, way of hierarchically managing a global string-set repository. Intersection-tests and merging will be very cheap, so it will take away much of the overhead the lexer-cache created in kdevelop-3.4. It is not yet tested and not yet used.
Educational
Start of a system to only store UI data about visible placemarks instead of for all of them in memory
Optimize memory usage by only having QPixmaps for those PlaceMarks that are actually shown. This saves a little less than 10% of the memory used by Marble, bringing it down from 63 MB to 58 on my machine.
The saving comes from the fact that there can potentially be 100,000s of PlaceMarks, but only a few 100 of them are visible at any given time.
Details:
- Introduce a new class VisiblePlaceMark.
- Move members from PlaceMark to VisiblePlacemark
- Maintain a list of VisiblePlaceMarks.
A future improvement can be to move the list of VisiblePlaceMarks to the view, and have different lists for different views.
KDE Base
I apparently misunderstood the semantics of texture_from_pixmap a bit - rebind only when the compositing pixmap changes (as in: a new one), not when its contents change. This finally makes TFP faster than SHM (70% vs 45% of non-composited performance) and should about match Compiz/Beryl. After this change also strict binding may finally make sense.
Speed improvements in some places. All sortings and categories implemented.
Make "new tab" faster when the current view isn't an html view, e.g. when it's a directory view.
(it used to load a directory view in the new tab and then replace it immediately with khtml)
When the input config file does not exist at all, just skip the whole related update, this should noticeably decrease first login time (when all kconf_update scripts were otherwise run unnecessarily). I hope I was the only one stupid one to write .upd files in a way that'd break with this.
* it occurred to me just now how to avoid half of the repaints in the clock when showing the seconds hand. *duh*
* set the report seconds property in the ctor as well
(yes, i know that the direct qproperty method only works for idempotent methods)
Improve selection speed. I think we can still improve this a little bit, but I think we can live with this speed for now
Games
Slight optimisation in background drawing plus some vars renaming.
Still startup is kind of not-so-fast. I figured out that KLinesRenderer::rerenderPixmaps() is faulty - it takes about 600 ms for medium-sized main window...
It creates a bunch (about 100) of small QPixmaps and renders them from svg. Callgrind shows that most expensive call is QPixmap::fill(Qt::transparent).
But I have no idea how to implement this in other way. Scrathed my head for the whole day (while staring at this method) and came up with nothing useful... :) (tried to use QImage Slight optimisation in background drawing plus some vars renaming.
Still startup is kind of not-so-fast. I figured out that KLinesRenderer::rerenderPixmaps() is faulty - it takes about 600 ms for medium-sized main window...
It creates a bunch (about 100) of small QPixmaps and renders them from svg.
Callgrind shows that most expensive call is QPixmap::fill(Qt::transparent).
But I have no idea how to implement this in other way. Scrathed my head for the whole day (while staring at this method) and came up with nothing useful... :) (tried to use QImage & convert it to pixmap => same timings)
Perhaps some brilliant idea is floating somewhere near in atmosphere...
I'm prepared to catch it immediately after I spot it in my line of sight ;) convert it to pixmap => same timings)
Perhaps some brilliant idea is floating somewhere near in atmosphere...
I'm prepared to catch it immediately after I spot it in my line of sight ;)
Other
Development Tools
KDevelop is an application with no public libraries, so keeping BC is not needed.
This means dpointer is not needed, so exclude KDevelop from dpointer krazy check.
Graphics
IPTC Viewing/Management branch for KPhotoAlbum
KDE Base
Dump support for the KDE systray mechanism. Hurray.
Started the big design cleanup:
- Implemented visitor support to KonqFrameBase and children, to reduce interdependencies, moved printFrameInfo to visitor, and used visitor in unit tests too, to inspect structure.
- Simplify KonqMainWindow ctor
- Pass explicit mimetype to addTab() (fixed one performance bug, in kde3 branch as well)
- Simplify splitView arguments
- Unit tests for most of the KonqViewMgr API, to allow for further refactorings
* move the "[ ] Show in Groups" checkbox from "View->Sort By" directly to "View"* same for the viewproperties dialog: don't hide "Show in Groups" under "Sorting"
Move dict applet to playground.
make applet a QGraphicsItem not a Group; as bibr explained to me on irc this evening a group is really, really a group ;) iow, the children lose all sense of identity. this causes all sorts of problems for building the sort of interfaces we are aiming for.
however, making them items makes it possible to drag children outside of their parents (c.f. the button applet) which causes another set of problems. i'll look into this tomorrow though. it's 01:00 and i was trying not to work on kde tonight.
Make the color scheme entry animation faster. The downside is that sometimes it cannot be seen with the Oxygen style and the tab transitions enabled because of the time the transition takes.
initliazing variables is like buckling your belt. you may not need it today, but eventually a semi truck will try and access the dangling pointer.
stupid mixed metaphores. grrrr.
welcome our now system activity dialog overlord!
thanks to the awesome hacking of tapsell on ksysguard we now have access to the widget via a library and can therefore load the process table in-process. this makes popping up that window almost -instant- and with a very, very light UI.
we still have to do something about the slightly oddly placed buttons and add the expander to show system load, etc (and maybe a button/link to open the full sysguard app?). will talk and hack with john on these parts, but colour me one very happy camper right now.
prepare ground for experimenting
Instead of creating a new transparent pixmap and redrawing the original in it with the desired alpha value, create a copy of the original and use DestinationIn to reduce the alpha.
This works on the assumption that the pixmaps passed to the Animators always have a format with an alpha channel.
time to break everyone's plasmoids.
- add setDrawStandardBackground(bool) to get our common background
- make paint private and introduce paintInterface (with the same params) instead
this should make standardizing looks a bit easier and give us a way to paint the on-hover applet interface. we may need to do the same with boundingRect?
Replace QTabBar with KTabBar in tabbed view container. Partly to follow the KDE guideline of using KWidgetType instead of QWidgetType and to enable easier addition of some user requested features.
KDE-PIM
KFacebook library and plasma stuff
remove. this isn't used anymore.
hopefully we'll have all kinds of neat blogging stuff in kde4.x
slightly updated version from kdepim.
it was planned for KDE4.0, but now I don't know...
Konqueror
Source code reorganization: switch to .cpp extension, move konq sources to src subdir (like dolphin and konsole, and to separate it from all the kcontrol modules and plugins), remove '_' so that kdab-insert-header (xemacs macro) works.
Multimedia
second step of cleanup: introduction of supplementary_scriptsevery script which doesn't get installed by default (i.e. just gets revision controlled) and every script which might be useful to amarok users but doesn't get used in the app goes here
decoupling of Lyrics/Wiki stuff from contextview.* one problem remains: since the new WikipediItem and LyricsItem classes are singletons, they need to get instantiated by something. currently, its the constructor of ContextView, but obviously that negates the whole purpose of the decoupling. any ideas welcome...
Networking Tools
Do not use hardcoded colors like wihte and lightgray, instead use QColorGroup
After discussing with Matt Rogers about that, we decided that the infoPages() stuff is not the way to go.
The initial problem of inconsistent "user info" dialogs across protocols will be solved by itself as the user info will be set in the identity, not in the account.
Adding some more UI for the identity configuration
Utilities
disable resizing when loading modules, goes aginst HIG
experiment with no menu bar to save space, this might create accessibility issues
Move system settings to kdereview
Games
initial todo list for kollagame started