Issue 137
16th November 2008 by Danny AllenThis Week...
Statistics
Commits | 3033 by 258 developers, 8207 lines modified, 1694 new files |
Open Bugs | 16419 |
Open Wishes | 14658 |
Bugs Opened | 557 in the last 7 days |
Bugs Closed | 886 in the last 7 days |
Commit Summary
Module | Commits |
/trunk/KDE |
909
|
/trunk/l10n-kde4 |
846
|
/trunk/extragear |
330
|
/trunk/koffice |
172
|
/trunk/playground |
172
|
/branches/work |
141
|
/branches/stable |
122
|
/branches/KDE |
60
|
/branches/kdepim |
59
|
/trunk/l10n-support |
53
|
Lines | Developer | Commits |
176
|
Thomas McGuire |
195
|
925
|
Laurent Montel |
91
|
222
|
Aaron J. Seigo |
87
|
371
|
Marc Mutz |
65
|
140
|
Gilles Caulier |
60
|
157
|
Stephan Binner |
56
|
72
|
Burkhard Lück |
41
|
41
|
Chusslove Illich |
40
|
95
|
Mark Kretschmann |
40
|
150
|
Allen Winter |
40
|
Internationalization (i18n) Status
Language | Percentage Complete |
Galician (gl) |
100%
|
Portuguese (pt) |
100%
|
Ukrainian (uk) |
100%
|
Greek (el) |
99%
|
Low Saxon (nds) |
99%
|
Swedish (sv) |
99%
|
German (de) |
93%
|
Estonian (et) |
93%
|
Dutch (nl) |
92%
|
French (fr) |
92%
|
Bug Killers and Buzz
Person | Bugs Closed |
Leonardo Finetti |
266
|
Thomas Zander |
142
|
Darío Andrés |
131
|
Aaron J. Seigo |
54
|
Mark Kretschmann |
32
|
Marco Martin |
23
|
Gilles Caulier |
21
|
Roman Jarosz |
18
|
David Faure |
15
|
Peter Penz |
15
|
Program | Buzz |
Amarok |
9815
|
K3B |
4875
|
KMail |
4840
|
Kopete |
3320
|
KDevelop |
2595
|
Plasma |
2489
|
Kaffeine |
2037
|
Kate |
2001
|
Solid |
1873
|
Kontact |
1790
|
Person | Buzz |
David Faure |
2110
|
Stephan Kulow |
1749
|
Aaron J. Seigo |
1390
|
Torsten Rahn |
1367
|
Jonathan Riddell |
1132
|
Laurent Montel |
1030
|
Stephan Binner |
782
|
Thiago Macieira |
668
|
Zack Rusin |
638
|
Adriaan de Groot |
631
|
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 88 selections this week
Bug Fixes
Development Tools
Apparently someone thought its cool to have accelerators (Alt+<Letter>) for context menus, that broke the external tools because they use the menu text to find the right group in the config file.
This fixes that by storing a mapping between the popup-entry-id and the actual text of the config group.
Fix counting files for unified diff.
Make analyzer actually emit collected data.
20x speedup.
This analyzer was taking over 80% of indexing time, so if you disabled strigi because of its slowness it is time to try again.
Graphics
Fixing the bug with non-gmail.com user names.
Earlier the code used to append @gmail.com to a username if not already present.
As I learned from others Google login doesn't need to be a gmail.com id.
Now the user name field needs to be complete Google Login.
This change has been made in the LoginWindow code to show "Google Login" instead of "Username:" but it will need translation changes to show up.
KDE Base
Some system update buggered HAL again, no two batteries show up in my lshal output, and hence in Solid, and hence in the Battery applet.
So quickly fix the battery applet to work with more than one battery (I don't have a physical second battery, so it's a great opportunity I get now).
Thanks to the HAL people and my OSV's QA department forletting this slip through -- it'll improve the battery applet in 4.2.
icons, and other ui work
We're now compressing the notficiations when a new wireless network appears by (re-)starting a timer when a new network appears and collecting the network's essids in the meantime.
This prevents the event notification storm when you start the applet and there are existing networks found.
Much, much better this way ... :)
Also, fix lots of icons. media-playback* is semantically incorrect, use network-(dis)connect instead.
And be a lot less noisy doing all that.
KDE-PIM
When piping a message to an external command, be sure to check the return value of kByteArrayToFile().
This fixes mail loss when the tmp partition is full and spam filtering is used.
Features
Development Tools
Begin the Database
Rewritten as SAX analyzer with following improvements: does not try to read whole file, can work inside archives, actually recognizes valid .ts files, does not burn insane amounts of CPU time while trying to read weird binary files into QString, uses the same field names as .po analyzer.
Educational
Graphics
Add support for links in document.
Internal links are not completely reliable yet.
basic implementation of RemoteFolderView widget.
It's a first start.
- Add basic functionality to support collection on network shares.
There is no autodetection, you have to give the mount path and say it is a network share.
The collection will be considered available if the directory is not empty.
The identification in the database is done via mount path.
As usual we are free to add other means of identification is they are available in the future.
- Extend checkLocation (and add checkNetworkLocation) to always provide meaningful information and a good icon symbolising the kind of storage
Import the first version of the SVG stamps for stamp annotations.
The elements represents the "standard" stamp types as defined in the PDF specs.
Nice work kindly provided you by Eugene 'it-s' Trounev, raise your hand and say "thanks" to him!
KDE Base
this is really more of a core feature as we're using places just about everywhere
tonights shinyness: make meters progress smoothly instead of jump if the change is both large enough and animations are enabled
also: keep the value within the min/max bounds and don't update if the value hasn't actually changed.
first draft of draggable toolbox; doesn't work quite properly yet due to historical oddnesses of the toolbox itself.
will finish up in the days to comes; all TODOs are documented
1. Implement session handling for applications using the KWallet API.
If an application with an open wallet exits or even crashes, kwalletd will know and close the wallet (if autoclose if last client exits is set).
For this to work I added the handleSession parameter to the openAsync call. Clients not using the API can continue to use the old DBus open call (no changes needed).
Drawback: If an application exits/crashes while the password entry dialog is shown, the wallet will still be opened (albeit autoclosed afterwards).
I don't intend to change this as it would be too messy and this cornercase is just not important enough.
2. Implement asynchroneous handling of openPath calls. openPath now uses transactions as well (almost identical to openAsync).
3. Create tests for the new changes and one for tracking concurrency problems (kwalletmany).
* Make it possible to change refresh rate and rotation for enabled screens (by employing a more fine-grained change condition).
* Only attempt to change outputs/CRTCs if there is actually something that needs to be changed.
* Further improved debug output.
This essentially makes the KCM work as expected (while keeping krandrtray in a working state too), just in time for the upcoming beta.
The Clone/Position combo box and the graphics view still like to ignore newly enabled/disabled outputs, but hey, I can now configure my screen without the xrandr command line utilty! Whoo.
Nicer icon for wired networks, busy animation while connecting
Things start to work here now.
I can connect to my wireless network with a preconfigured connection now.
The applet shows correctly the connection process (for both wired and wireless) and updates the icon.
Even the messages in the tooltips make sense.
All is still very brittle, though...
Added support for draged images.
This way you can use ksnapshot with pastebin applet just dragging/dropping your image on it.
Also fixed variable names.
Show the remaining time in the battery's popup.
Often, the remaining time is invalid, since at least some data needs to bet gathered until the time can be sensibly guessed. We show the percentage left per battery in those cases.
Support for unloading/reloading plasmoids etc from the Python interpreter.
if compositing is available, show a subtle glow where the hidden panel is when the pointer gets within 30px of the trigger area.
the idea is to give a hint as to where the hidden panel is as we only trigger on its foot print, not the whole screen edge. and... well... it's a cool idea. =P
the mechanics actually work without compositing except the painting of the glow, which looks like ass because it really requires proper blending to look nice.
so no fancy for the compositeless.
re-using the button glow artwork for now, should probably be using something designed specifically for this.
KDE-PIM
Add Sonnet Spellchecker to the composer.
Read and write the spell check language from the identities, add an option to configure the spellchecker and add an option to start the manual spell check.
Some code freely taken from KMail...
Multimedia
Implements the 'Do not show under various artists' context menu item in the collection browser.
Unfortunately, I have not been able to introduce persistence over rescans, after each rescan no items will be marked as a collection.
A ton of improvements to the SQL playlists ( the user playlists in the playlist browser )
1. Playlist generated from files during collection scanning now have a urlid, this is used to ensure that duplicates are not added when rescanning. Instead the playlist is recreated so any updates to the playlist file is reflected in the SQL playlist
2. Streams loaded from a playlist are now given propper title, album and artist values if no service recognizes them. This means that it now works well for keeping a list of, for instance, favorite books from the librivox service.
3. After a collection rescan, any SQL playlists generated or updated based on a playlist file would contain many tracks with no metata at all since the scanner did not give them any. Now a reload of the playlist is forced when it is subsequently used, giving collections a chance to add info about any tracks they know.
All this goodness comes at a cost though.
After this update, all old SQL playlists will be deleted ( no files are affected, only playlists stored in the database ).
Any playlists based on files on disk can be recovered simply by rescanning the collection.
If you have any custom made playlists that you care about, they can be added to the playlist and exported to a file ( and later readded ) _BEFORE_ this update is applied.
Networking Tools
- Added shortcuts for a lot of actions
- Get rid of duplicate actions (start, stop, remove, speed limits and check data)
Utilities
7zip-plugin uses KPtyProcess to enable password querying.
Now can list archives with encrypted headers (-mhe option)
Games
Optimization
Development Tools
Another optimization - use strncmp instead of QString::startsWith.
This allows to avoid costly creation of QString object if there is no regexp matching required.
This gives another 6.5x speedup on indexing text files or unified diffs.
KDE Base
Paints usually originate somewhere up the parent chain making all icons repaint at the same time.
Prior to this commit, each icon called render on the parent meaning that, for example, the panel was being painted to an offscreen pixmap as many times as there are icons.
This commit consolidates those offscreen paints into one, meaning that with 10 icons there is a 10x speedup. :)
After this, I'll move the paint compression/timer stuff over as well to cut down on the timers.
Change how we store the scope chain --- instead of always using a separate ScopeChainNode, we store a single link inline inside ActivationImp's when possible.
This gives a (disappointing) 3.1% speedup on SunSpider, but on the plus side:
1. Control-flow-intensive benchmarks are as much as 10-20% faster
2. Improvements are pretty much accross the board.
Plus, this should mesh nicely with multi-level static binding lookup improvements.
Some more optimizations to snow effect:
* move position updates of flakes to shader
* remove the for-loop which updates the flakes. This is handled in the loop for painting the flakes
* Don't test in each frame if a flake is on the screen. Precalculate the number of frames when then flake is on the screen and count the flakes.
* Set PAINT_SCREEN_TRANSFORMED
* Remove all unneeded code (like a QTime object when we already get the time in the method)
Now it takes ~ 17 % of CPU usage on my system. Seems to be the maximum of what is possible.
Fixed counting of comment lines - find_first_of("//") does not actually search for "//"
Optimization - about 6.5x speedup.
Other
Educational
Graphics
digiKam from KDE3 : use QScrollView to host sidebar tab content everywhere to improve usability with small screen.
Now digiKam can be used on small computer screen, as with EEEPC for ex.
TODO: KDE4PORT
Accordingly with Unai Garo, move Raw thumbnail loader for Dolphin from playground to kdereview.
scale down images in "Fast" mode, to reduce computation time for very high-res images.
This might increase false negatives, so new / additional methods for detecting the eyes are required.
- Adjusted namespace
- provided exe (testgallery) to see library at work. For now just wizard..
- let wizard work
- checked item.h against flickr, picasaweb and gallery item implementation
- rewamp ui
Gilles,
I'm not really sure I can implement it, but what I'm trying to is a simple mechanism that substitutes ALL remote plugins. So just ONE plugin.
KIPI::Talker should be the class that talks to ev'ry remote gallery. Every time with the same interface. The mechanism to implement is something like:
switch(GALLERYTYPE)
{
case GALLERY2:
talker = new GalleryTalker();
case FLICKR:
talker = new FlickTalker();
..
}
And that's all! Then we can port it to the dedicated model/view.
Sorry I can't explain well my idea in Genova..
KDE Base
move this into base to merge the uiserver applet into systemtray
Rewrite most of the code to get a sane API.
Merge the coverswitch branch from git://github.com/Zarin/kwin.git (<a href="http://github.com/Zarin/kwin/tree/coverswitch">http://github.com/Zarin/kwin/tree/coverswitch</a>)
This includes:
* use of RotationData instead of glRotate
* use of x/y/zTranslate instead of glTranslate
* does not define own projection matrix
* changed the direction of the animation (consistent with Cover Flow)
* no special code for start/stop animations.
That's now covered in the code for "normal" switching, thanks to not using glTranslate any more. Therefore
minimized windows are faded instead of moved from panel
* zoom - define how far away the windows appear (only in config dialog possible)
* additional thumbnail bar which is shown when there are many (>= 8, configurable) windows
* window covers can be clicked and become selected window
(Sorry for the one big commit - looking forward to the days when we don't lose commit history when using git ;-))
Launch Konqueror if the user enters an unsupported protocol
Tooltip works like in the KDE 3.5's pager but it miss windows icons.
Probably we need to add a new method to ToolTipContent that allows us to add icons to tooltips.
change default in accordance with Celeste's testing spurred by the Oxyteam's request; let's see what feedback we get from the upcoming beta on it.
Moved kephal from kdereview to base.
new panel theme
with composite on the panel is more transparent to be colorized
with composite off it's colorized
pager effect is stronger so more noticeable with the new panel
load and save toolbox position between restarts!
still to come:
* don't paint when zoomed, replace with tool strip instead
* respect available area during drag
* smarter positioning (right now it just loads the saved position whenever it needs to reposition)
merge my work on dict plasmoid.
applet part now looks for qstardict dataengine (should come with qstardict package) and if it's not found, uses dict dataengine from kdebase-workspace.
i moved wnToHtml() to dict dataengine as it is specific to it.
one important applet change is switching from QWebView to KTextBrowser: this saves ~5 megs ram.
Unavailable is now part of the battery theme
The "n/a" was really just awful, this is much more clear and as a bonusmuch more beautiful.
Thanks to Davide Bettio for the suggestion.
Move Quicklaunch-Applet from Playground to plasma/applets
Everything discussed here: <a href="http://mail.kde.org/pipermail/plasma-devel/2008-November/002310.html">http://mail.kde.org/pipermail/plasma-devel/2008-November/002310.html</a>
KDE-PIM
Don't set the minimum size as that's smaller than kmmainwin's and kontact's default size anyway.
Voila, you can make kmail as small as you want now :)
No longer create a an initial identity with the name "Default".
That is confusing.
Instead, create a name from the user's email address (if one exists);
else, create a name from the user's full name (if one exists);
else, use "Unnamed" for the name.
As discussed with tmcguire the other day.
Office
add some code to the formula dialog to make it somewhat usable with a style where single-clicking is used to activate items in a listview (like I think all kde styles).
Multimedia
Enable Last.fm scrobbling by default.
This is how Amarok 1 did it, and it's also what most users would expect from the Last.fm service.
Scrobbling is one of its main features after all.
Add document that explains how to build Amarok 2 in your $HOME.
Hide the banshee and rhythmbox import options as they don't actually exist
Disable Amarok debug output by default.
What we used until now was a hack for the beta releases (debug always enabled).
Remember guys: From now on you need to use the -d option to get debug output from Amarok.
relicense of decibel from LGPLv2only to LGPLv2+
All source code was commited by 2 persons:
- Tobias Hunger's work was done as employee of basysKom GmbH
Being the managing director of basysKom GmbH I agree with the relicensing
- George Goldberg agreed to the relicensing by email to me
All other commit have been checked and were identified as build system fixes.
Hide options in the mp3tunes config dialog until the features are fully supported.
Networking Tools
Move the wlm plugin into kopete proper.
MSNP15 support is almost here. :)
Enable the new WLM plugin for Kopete.
This new plugin replaces the MSN plugin and requires an external library
called libmsn which can be gotten from <a href="http://sourceforge.net/projects/libmsn">http://sourceforge.net/projects/libmsn</a>
We're working towards a 0.4 release of that library but until then, please download the beta versions.
The new WLM plugin provides support for the MSNP15 protocol version and in general lays the groundwork for a better MSN plugin.
Thanks go to Tiago Salem Herrmann, Gustavo Boiko, and Roman Jarosz for doing all the heavy lifting.