Issue 30
29th October 2006 by Danny AllenThis Week...
The first program, Data Sources, is a tool for configuring ODBC drivers and data sources. Users of similar tools on other platforms will be pleased to see how similar this tool looks, feels and operates. Data Sources makes things even simpler, with auto-detection of missing ODBC drivers and wizard-based configuration. It also shows users only the options needed to configure a data source, whilst advanced configuration options are still accessbile. At the moment, the program is a fully working Qt 4.2-based application and I intend to move it into a KCM module. (Currently located at trunk/playground/base/datasources, screenshot)
SQL Query, as the name suggests, is a tool for querying databases. It allows a user to open ODBC data sources, or use the Qt database drivers. Users can browse databases, execute SQL statements or run SQL scripts. I plan to add many more features to this program, including importing and exporting database data. This program is currently Qt 4-based and I intend to make use of the KDE 4 libraries, add syntax highlighing to the SQL editor and add other important functionality. (Currently in trunk/playground/office/sqlquery, screenshot)
The last tool, ODBC Statistics, is a small tool for monitoring ODBC connections. (Currently in trunk/playground/sysadmin/odbcstats)
To gauge the scale of the existing bug mountain, there are approximately 2600 open bugs registered against KMail, with a further 700 outstanding in KOrganizer. With the bug-crushing effort on Saturday, Will Stephenson reports that there were over 40 people in the co-ordinating IRC channel (#kde-bugs) at the peak of the bug-fixing zeal, with many non-programmers using their talents with good effect.
With two successful events now completed, we will surely see a fresh announcement and challenge within a few weeks - which part of KDE should fear the wrath of the KDE Bug Squad next?
Statistics
Commits | 1991 by 194 developers, 4576 lines modified, 1053 new files |
Open Bugs | 13166 |
Open Wishes | 11842 |
Bugs Opened | 254 in the last 7 days |
Bugs Closed | 345 in the last 7 days |
Commit Summary
Module | Commits |
/trunk/KDE |
325
|
/trunk/www |
274
|
/trunk/l10n |
252
|
/trunk/extragear |
243
|
/trunk/playground |
194
|
/branches/stable |
164
|
/branches/work |
151
|
/trunk/koffice |
119
|
/branches/KDE |
70
|
/trunk/kdenonbeta |
47
|
Lines | Developer | Commits |
237
|
Laurent Montel |
79
|
147
|
Gilles Caulier |
62
|
115
|
Stephan Kulow |
57
|
115
|
Pino Toscano |
48
|
107
|
Sebastian Trueg |
42
|
155
|
Frans Englich |
40
|
97
|
Tom Albers |
36
|
85
|
Martin Aumüller |
36
|
35
|
Erik Kj |
34
|
180
|
Jarosław Staniek |
34
|
Internationalization (i18n) Status
Language | Percentage Complete |
Portuguese (pt) |
99.98%
|
Danish (da) |
99.82%
|
Swedish (sv) |
99.73%
|
Spanish (es) |
96.92%
|
Dutch (nl) |
96.48%
|
Greek (el) |
95.21%
|
Italian (it) |
93.88%
|
French (fr) |
93.4%
|
Estonian (et) |
92.77%
|
German (de) |
92.6%
|
Bug Killers and Buzz
Person | Bugs Closed |
Will Stephenson |
43
|
Alexandre Pereira de Oliveira |
40
|
Bram Schoenmakers |
33
|
Martin Aumüller |
23
|
Maks Orlovich |
19
|
Volker Krause |
18
|
Martin Koller |
17
|
Tommi Tervo |
15
|
Jeff Mitchell |
10
|
Allan Sandfeld Jensen |
10
|
Program | Buzz |
Amarok |
6765
|
KMail |
4320
|
Kopete |
3800
|
Kate |
3650
|
K3B |
3180
|
KDevelop |
2910
|
Kat |
2046
|
digiKam |
1835
|
Kontact |
1494
|
Quanta |
1446
|
Person | Buzz |
Adriaan de Groot |
1018
|
David Faure |
895
|
Stephan Kulow |
793
|
Waldo Bastian |
610
|
Jarosław Staniek |
418
|
Jonathan Riddell |
368
|
Zack Rusin |
362
|
George Staikos |
342
|
Stephan Binner |
266
|
Aaron J. Seigo |
258
|
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 85 selections this week
Bug Fixes
KDE Base
Patch from Modestas Vainius to fix Bug 122020 (kdesvnd action menu issues)
He said, and I agree:
Do not time out when waiting for the reply for the X-KDE-GetActionMenu DCOP call. DCOP protocol is synchronouos by design and a reply for the timed out call (i.e. garbage) still arrives and might be falsely returned as a valid reply for the subsequent DCOP call on the same connection. The application currently known to be badly hurt by this is kdesvn and its konqueror service menu integration. Its X-KDE-GetActionMenu might take longer than current 100 milisecond timeout to complete. As a result then, a late reply will "pollute" a main DCOP connection of the client application (e.g. konqueror) causing further DCOP failures.
Prevent crash-inducing recursion of detach due to blur events
happening when widgets with focus get destroyed, by quietly shifting
the focus to the view...(#135384, probably #124342 --- best I can tell given
imperfect information); also affects some bugs which I separately closed as
non-reproducible, but which involved such a sequence
Also fixes freezing in #92497, as we no longer try to find something
to focus when nothing is focusable..
Multimedia
when the track (and thus the lyrics) changes, reset scrollbar position of lyrics tab to the top
make playlist context menu tall enough for the side pixmap by always showing the 'stop playing after this track' entry
Networking Tools
Hide passwords from recent site list in quick connect dialog.
Addes some safety checks on IP addresses before connecting to peers. This should prevent bug 136392.
Utilities
Games
don't allow autodrop if cards are moving
Features
Development Tools
More ruby parser improvements:
- recognize comments
- recognize scoped names (ala Foo::Bar ) as proper module names
- recognize ruby symbols
- recognize if/unless/while/until statement modifiers
- two consecutive method calls without parens are no longer parsed as one statement
Now the parser understands pretty sophisticated ruby programs!
Educational
Implementing non-colliding text labels in kdeeduplot, based on kmplot code.
It works, but it could probably be faster. You don't need to know anything about it to use the feature, it all happens behind the scenes. Just add some items with labels and enjoy the magic.
However, in the interest of inspiring optimization, here's a brief description of how it works.
KPlotWidget now has a private array of floats: PlotMask[100][100]. This is a rough division of the content of the plot into a 100x100 grid. Where the plot is empty, the array is zero, where it has content, it is >0. When items are added to the plot (points, lines, bars, or labels), the corresponding positions in PlotMask are incremented by an amount that can vary for different kinds of items (for example, right now Bars don't increment as much as points or lines).
The function KPlotWidget::placeLabel() is responsible for positioning item labels. It attempts to place the label close to the point to which it belongs, while minimizing the label's overlap with masked regions of the plot. Ideally, it won't overlap with masked regions at all. This is done in a rather brute-force way: it tests label positions in a 40x40 grid around the position of the point, and determines the "cost" for placing the label at each position. Higher cost is incurred for (a) overlapping with a masked region, (b) being further from the point position, and (c) extending beyond the bounds of the plot. The position that has the lowest "cost" is then adopted, and the label is drawn at that position.
You can get an idea of the CPU impact of this cost-analysis using the test suite I added to kdeeduplot. Display the "Points, lines and bars" plot, and then resize the window. Note the smoothness of the redraws. Now display "Points, lines and bars with labels" and resize the window. The redraws take much longer in this case.
Graphics
Create a new AnnotationEngine to select some text from the current page, and make it able to distill Highlight annotations. Now you can hightlight th text in your document, wooo :)
kipiplugins from trunk : new HTML Export theme named "s0" from Petr Vanek
See <a href="http://www.yarpen.cz/digikam">http://www.yarpen.cz/digikam</a> for details
Show a 'keep password' checkbox when using a wallet so the user can decide if he wants the password saved in the wallet.
KDE Base
Check the header of streamed zip files as valid too, because we now support it in Strigi.
KDE-PIM
New template goodies from Dmitry:
1. Conversion phrases into templates
2. Per-identity templates
3. Templates are used also with multi-message forward (was missed)
4. C-style correction of templatesconfigurationimpl.cpp
5. Minimal and default sizes of templates configuration widget diminished a
little; folder properties are not so huge now.
6. Several commands added: %CCADDR, %CCNAME, %CCFNAME, %CCLNAME, %OCCADDR, %OCCNAME, %OCCFNAME, %OCCLNAME
Please continue testing templates.
Great work Dmitry! Glad to have you helping with KMail.
Now we need to get some code from Johnathan :)
Composer attachment experiment failed. Show attachments in a separate listview next to the addresses. Sort of Thunderbird solution. Hide/Show automatically.
Monur's KMail Message Tagging
as found on <a href="http://www.kde-apps.org/content/show.php?content=36322">http://www.kde-apps.org/content/show.php?content=36322</a>
Cleaned-up just a bit by me.
Monur, didn't you want to do more with this feature, like adding colors?
from the todo list:
- dont close composer without warning when there is data
- check for duplicate addresses in the composer
- sort indicators in the composer missing
- reworked the listviews, so the delete column is always visible and column 1 always takes as much space as possible.
- context menu with delete is not needed now in those lists
- renamed 'file' to 'attachment' in composer
- add a space between organisation and emailaddress
HTML Signatures
Apply patch that Jason Keirstead provided over 1.5 years ago.
Please test.
Improved templates support from Dmitry:
1. Coding style fixes.
2. Little refactoring.
3. Custom reply/forward templates added (David Faure ask for them on list)
4. Various bug fixes, including major one -- wrong charset on %TEXT command
Add a holidays for Greece.
Submitted by Dimitris. Thanks!
Improve communication with KAddressBook:
- addressbook is now loaded asynchronous, so the composer opens instantly and addressess follow later.
- delete from addressbook and open address from the addressbook sidebar
- add an address to the addressbook from the addresslist.
Office
When hitting escape during dragging a point the drag will be canceled
When dragging a point more than 15 pixels outside the widget the point
is deleted (unless you drag it back inside)
hitting exacpe while dragging outside will probably crash at the moment
Can't test it as krita is not working at the moment
first draft for the attribute processing system, the functionality is outlined, the class does not compile nor is any mehtod complete especially the scriptLevel things will be changes again as they are wrong designed... so much to do
import/export eps files using graphics magick
* Kexi Query Designer supports parameter queries *
Query Designer
- New: Added support for parameter queries in design and SQL view.
User is asked for entering value of a parameter in a dialog window.
Paramers can be of any type except Object.
Implemented thumbnail painting for shape containers
(see <a href="/issues/2006-10-29/files/karbon_hidden_rect3.png">http://www.gfai.de/~jaham/karbon/karbon_hidden_rect3.png</a>)
Nice eh!
New class;
we need a better way to do progress notification for various actions.
A simple usecase is a user action or filter that can be split into multiple
subactions which each have their independent progress indication.
We want to show the total progress in a progressBar.
This new class does that and all of the following features:
* threadsafe
* be able to handle more than one concurrent action
* be safe
* be cancelable
* non-modal
* be fast
* be really easy to use
Multimedia
Improve layout of organize files dialog a bit.
allow for transferring .wav files to ipods
*Try* to convert old dynamic playlists, instead of just ignoring them.
Support for %genre and %composer fields when guessing tags from filename
When the script can't find lyrics, provide a link for a web search.
Playlists are now saved with relative paths by default. I think this is what most users want.
Networking Tools
Added two more per-site settings, "use site IP for passive mode connections" and "disable 'force active mode to use this IP' for this site".
* WARNING: APPLICATION NOT RELIABLE AT THIS POINT! DO NOT USE FOR PRODUCTION!
* More work on MultiTarget configuration
* Make new Target Configuration handling work
* Import old setting in localhost, on upgrade
* Lots of code cleanup & small fixes
* Update Version String to 1.1.0 - to much changes and new features -> name it so
User Interface
new icons
new icons
New icon (beta) for recycled files
Two new icons for the cdaudio device (mount and umount).
Utilities
Games
Optimization
Development Tools
limit the maximum count of computed comments to 1000, so showing a VERY long completion-list doesn't take all that long
Graphics
Don't rebuild all of the thumbnail widgets everytime their size has changed.
This makes rotation in large documents much faster.
Optimizations of the Thumbnail list.
We now only create thumbnail widgets for thumbnails that are really visible in the viewport. That means we need to create only a very small number of widgets, and not one widget per page as before.
This gives a huge performance boost for all operations, expecially loading and closing of documents, and rotating the view, since the creation and especially deletion of QWidgets is quite slow.
The performance gain is only noticable for very large documents with 1000 or more pages.
There are still a few little regressions, which I will fix later.
Office
this is my fourth-attempt on memory-efficient DOM.
now it's faster, using less memory, and more compatible with Qt 4.2's QDom
Networking Tools
Games
After a lot of preparation, finally removed full redraw at every tile addition and removal. There is still some room for optimization, but at 800x600 play area the game is now using less than 1% of a 2GHz cpu, with minimal redrawings.
Unfortunately, this change is for KDE4 only and can not be backported to 3.5.x series.
Other
KDE Base
Work branch to port Akonadi to auto-generated database code. It just breaks too much to do it in-place.
- this is obsolete, thanks to Nikolas's excellent work of feeding everything
back into Apple's repository (and more!)
Use a slightly more intelligent way of detecting whether the D-Bus daemon is running: instead of trying to kill -0 it, try to connect to its address (using qdbus).
This has the added benefit that it works with the autolaunch method that was introduced with D-Bus 0.94. If you're using 0.94, you no longer need to run "eval `dbus-launch --auto-syntax`" before starting your KDE4 applications (this is valid for individual applications, not just startkde).
Note: this requires qdbus to be in your $PATH. But everyone has Qt 4.2's bindir there, right?
This function is both broken and unneeded (QKeySequence has a constructor for int). BIC, but not SIC.
Alt-Tab and friends all work properly now (in KWin).
Office
Reinstate the filters menu -- and the filters
appear to be working just fine.
- first step of refactoring the configuration of the filter system (more on a mail later), the configuration isn't anymore created in the filter but in the widget
- disable most of the filters, as the change need more work on libraries
Import KDChart 1.1.4.
I had to disable support for QSA, since it didn't compile. If you
want to reenable it, then remove the # in Makefile.am and remove #if 0
in KDChart.cpp.
In KDChartVectorTable.cpp, I had to disable the destructor since it
was defined in both the .h file and the .cpp file. Apparently, the
author works with gcc version 3.x. :-)
Multimedia
Import KTabEdit, a tablature editor
Utilities
Games
KBattleship is broken (unmaintained?) Re-enable it when it is working with KDE4, or when a maintainer is found, as it is preventing the building of the kdegames module at this time
Reenabled kbattleship, problem was in CMake files modified a couple of
days ago.
Dump dependency on QtGui by not using Qt::escape. This makes libpatternist link to about half as many libraries.
Some things are, pardon my french, hard to understand in Qt, in my eyes. Qt::escape(), a practical little helper function for escaping text, is placed in the Qt namespace but then in the QTextDocument header, as opposed to QtGlobal. Implicitly, a function that has nothing to do with GUI, is placed in QtGui, creating a dependency on a whole new library for only that function.
Same goes for QAbstractProxyModel. The item/view framework provides a nice separation between content and presentation, but by placing QAbstractProxyModel, a class that operates on the data level independently of display details (right?), in QtGui, one again prevents modularization.
The argument I've heard is that QtCore is supposed to stay small, but I wonder if such optimizations(can Qt::escape() and QAbstractProxyModel really be considered big?) are more worth than proper engineering.