|
| This Week... |
|
Amarok gets the roots of support for the Magnatune music store. Work begins on a LiveUI Designer application. Mass import of KBoard code, a lightweight canvas intended for games. Work on supporting the XML Paper Specification format in okular. Support for multiple galleries in kipiplugins, on which Digikam and KPhotoAlbum depend. Support for compressed Scalable Vector Graphics (SVGZ) in kdelibs. Solid gets Network Management and CPU Monitoring capabilities. Continued improvements in KArchiver.
|
Adriaan de Groot describes his efforts in improving KDE code quality with the English Breakfast Network:
|
The EBN, or English Breakfast Network (I have a habit of registering silly domain names) is the KDE project's quality-checking site. It keeps track of a lot of things that are "wrong" in our code base and produces nice graphs and charts and summaries so that developers can go out and fix what's wrong. It's not a bug-tracking site - we have bugs.kde.org for that - but more a guidelines checker: what is wrong with code with respect to our coding guidelines, the human-computer interface guide, API documentation norms, accepted English usage for user documentation, and so on.
We just count stuff right now, so we can say "there's sixteen thousand things wrong with KDE4" and compare that to how many there were last week and see if we're getting better. The actual number doesn't mean much, certainly not when comparing different software projects (even within KDE's software repository) because the guidelines vary considerably. So 16000 means "there is room for improvement" and never "good" or "bad".
One of the important ideas behind the EBN is that it should enable developers who are looking for simple stuff to fix - "low hanging fruit" as we call it, for easy-to-reach stuff - can do so quickly by checking the EBN and picking some reports that it produces. For instance, you may wonder "what's wrong with the kdelibs user documentation" in order to fix something simple there. There is one report, for kspell, and that report explains what is wrong (a missing license for the user documentation) and suggests a fix. Bam, that's a quick way to improve KDE's code quality with a single commit.
The EBN grew out of my own annoyance at incomplete API documentation and collected more bits along the way; Frerich Raabe wrote the user documentation checkers with the guidelines from the documentation team; Allen Winter has introduced a tool called Krazy that checks our basic coding guidelines. So we cover the documentation and some fairly simple code stuff with our checking right now. That provides ample opportunity to improve the codebase, and we believe that as KDE4 gets closer to release the numbers should drop off considerably - after all, the guidelines are what we believe *make* good code and good documentation, and we want to release the best stuff we can.
The coding guidelines and API documentation checks have received a lot of attention from some developers. I'm really pleased to hear from people who have taken the EBN checks to improve their own code - or to complain about the checks themselves, since they're certainly not infallible. It shows that our approach to checking does pay off: it moves people to make tiny incremental improvements when there's nothing bigger to do. Compare this also with the effect that Coverity's checks had on KDE's codebase: there were many small errors found and a small group of focused developers went through and fixed them all, thus ridding KDE of a whole class of potential crashes.
In the long run we want more sophisticated checks, including semantic analysis of the code and automated usability checks. The latter has been partly done by Frerich using FrogLogic's Squish tool - a fair amount of our HCI guide can be quantified and tested automatically - but it takes quite some time and patience to get everything set up right on the server. So we will expand our coverage at some point, and that will *increase* the number of bad things we find. It shouldn't be disheartening, though, because it's all low-hanging fruit: simple to find, clearly reported, quick to fix.
Besides expanding the coverage with new tools, we're also looking into ways to make the reporting better on the EBN. You can not yet ask "what's wrong with kicker?" because we don't have the information sorted like that yet. We *have* it all, just scattered in different log files that need better collation. At some point, you may be able to subscribe to an RSS feed of your favorite app, waiting for low-hanging fruit to be dangled in front of you to pick.
The *real* goal is to make the EBN obsolete, really, because all the numbers go to zero and everyone is writing such tremendously good quality code that there's nothing to complain about at this level. *Then* we'll have had a real impact on KDE's code quality.
|
|
Keeping with the theme of code quality, according to Stephan Kulow, KDE is now back to zero reported defects from the Coverity scan.
|
Also worth mentioning is the 74 bugs closed by Sebastian Trueg in K3b this week, a great number considering the imminent release of K3b 1.0.
|
|
| Statistics |
|
| Contents |
|
|
Bug Fixes |
Features |
Optimise |
Security |
Other |
|
Accessibility |
|
|
|
|
|
|
Development Tools |
|
|
|
|
|
|
Educational |
|
|
|
|
|
|
Graphics |
|
|
|
|
|
|
KDE-Base |
|
|
|
|
|
|
KDE-PIM |
|
|
|
|
|
|
Office |
|
|
|
|
|
|
Konqueror |
|
|
|
|
|
|
Multimedia |
|
|
|
|
|
|
Networking Tools |
|
|
|
|
|
|
User Interface |
|
|
|
|
|
|
Utilities |
|
|
|
|
|
|
Games |
|
|
|
|
|
|
Other |
|
|
|
|
|
|
|
Bug Fixes |
|
KDE-Base |
|
Andreas Kling committed changes in /branches/KDE/3.5/kdelibs/kdecore:
|
Have KIconLoader catch KIPC::IconChanged and make the necessary reconfigurations.
Makes all toolbar icons update when KDE's icon theme is changed.
Reviewed by David. |
|
|
|
|
|
|
|
|
David Faure committed changes in /branches/KDE/3.5/kdebase/kioslave/trash:
|
Only remove the entry (.trashinfo file) if the deletion succeeded; otherwise report the error.
This ensures that we don't end up with "trash appears to be empty but it still takes much hdd space". |
|
|
|
|
|
|
Joseph Wenninger committed a change to /trunk/KDE/kdelibs/kate/part/kateview.cpp:
|
|
make the cursor keys work for menus, if they were opened by Alt+Key. Without enabling/disabling the action collection the editor actions would have a higher priority than the key press events in the menu |
|
|
|
|
|
|
|
|
Networking Tools |
|
Giovanni Venturi committed changes in /trunk/playground/network/ksniffer:
|
|
Fixed the "Quitting from KSniffer". Now works correctly and let you save captured packets into a file if you need. Corrected also the removing of the temporary file correctly when quitting from KSniffer. |
|
|
|
|
|
|
Features |
|
|
|
|
|
|
|
|
|
Brad Hards committed changes in /trunk/playground/graphics/okular/generators:
|
Add in very rough first version of the XML paper specification renderer.
This doesn't work yet. And it crashes a lot. You can help!
If you want to test this, a search for "xps sample documents" will give you a sample set that you can unzip. |
|
|
|
|
|
|
Brad Hards committed a change to /trunk/playground/graphics/okular/generators/xps/generator_xps.cpp:
|
It looks like Microsoft must have at least two completely different code bases for generation of XPS files.
In any case, we now handle FixedPage files where the path provided is relative to the FixedDocument, not an absolute path.
This allows us to load XPS samples from the Office2007 set. |
|
|
|
|
|
|
|
|
Pino Toscano committed changes in /trunk/playground/graphics/okular/ui:
|
Annotations: reverting back the drawing of InPlace Text annotations to the unbuffered ones, but with a more clever behaviout than before: - the text is drawn wrt the size of the page, and thenscaled to the real annotation boundary size. this makes the drawing of the annotation more similar to the page layout - the bounding rectangle is drawn to be max 1pixel wide: if the drawn page is smaller than the page, then the rect is scaled along with the text, otherwise it's drawn after the scaling, so it won't appear huge at high levels of zoom
The AnnotationEngine's had to be modified by adding a page pointer parameter to the event() function, necessary to compute correctly the bounding rect of an inline text annotation. |
|
|
|
|
|
|
|
|
Oswald Buddenhagen committed changes in /trunk/KDE/kdelibs:
|
svgz support.
also, zero out the image before rendering - nobody except the kernel does this for us, and we don't want to rely too much on the allocator, do we? |
|
|
|
|
|
|
|
|
|
|
|
|
Will Stephenson committed changes in /branches/work/kdehw/solid:
|
|
Initial import of network managment classes. Currently just the frontend classes. Merge of Christopher Blauvelt's work and NetworkManager class to follow. |
|
|
|
|
|
|
Josef Spillner committed changes in /branches/work/knewstuff2/kdxs/src:
|
- make startup window a provider selection dialog instead of just test button - handwritten translation dialog instead of Qt Designer ui file - better HCI compliance - keep engine separate from the view - tooltips for email address links in KHTML view |
|
|
|
|
|
|
KDE-PIM |
|
Marco Gulino committed changes in /trunk/playground/pim/kmobiletools/kmobiletools:
|
Big improvements on the new device wizard: - Removing retry, since now lockfile management is much better. - Improving bluetooth: now automatically scanning ALL services, and showing user a list of good devices only. Also scanning automatically starts if bluetooth is enabled. Invalid services will be removed from config file. - Typo fixes.
Also better serial port management, fixing timeouts, and closing automatically device after an error, instead of making the user wait wondering for what's happening. |
|
|
|
|
|
|
|
|
|
|
|
|
Seb Ruiz committed changes in /trunk/extragear/multimedia/amarok:
|
When dragging podcast episodes to the playlist, reverse their orders so that oldest is first in the playlist. this works for multiply selected podcast of different channels, too!
Thus completing the "insert episodes chronologically" usability decision |
|
|
|
|
|
|
|
|
|
|
|
|
Mark Kretschmann committed changes in /trunk/extragear/multimedia/amarok:
|
* Fade-out for xine-engine when pressing Stop or Pause. Patch by Tuomas Nurmi.
Everyone please enable this and test extensively! Do we even have a configure option for it? Maybe not. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sebastian Trueg committed changes in /trunk/extragear/multimedia/k3b/src/rip:
|
* No duplication of the default file naming pattern. Instead simply read the first entry from the combobox. * New Audio ripping default file naming pattern. It is probably way to complicated for the average user but IMHO it simply provides the best results. It creates a directory with album artist and title and then names the files as follows: the tracknumber, followed by the artist if it differs from the album artist, followed by the track title. |
|
|
|
|
|
|
Networking Tools |
|
Giovanni Venturi committed changes in /trunk/playground/network/ksniffer:
|
now when capturing packets with the "display packets after stopped sniffing" option you get alway a correct behaviour: you'll see packets in the view after you stopped capturing
now I have to ask to the user to save the data when I exit from the application in all cases he has packets avaible or will have them availbale later in the view |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Thomas Zander committed changes in /trunk/koffice/kword/part:
|
New feature. Well, its going to be invisible for most users, but thats the good kind of feature; where KWord does what its suppost to do without any work :)
I added padding to each document-page which means that the printed page will be printed slightly bigger to the PDF. This is done so normal printers ignore this, but professional printing studios will use this for so called 'bleed'.
This implies that there is now a space in the (virtual) document coordiante system between each page. Keep that in mind for loading/saving frames that work in an absolute coordinate system instead of relative to the page top. |
|
|
|
|
|
|
Thomas Zander committed changes in /trunk/koffice/kword/part:
|
Feature; Implement undo/redo basis for texts + shapes. This behaves exactly the way I want it to, it undoes the actions on the current text document first and when there are none it will start undoing things on the document. Note that since the actions are not yet properly enabled/disabled you'll get asserts (and crash) if you undo when there is no undo available ;) |
|
|
|
|
|
|
Jan Hambrecht committed changes in /trunk/koffice/libs/flake:
|
* implemented breaking a path at a selected point or segment * implemented joining two subpath at their selected end nodes * added some helper functions like reversing a subpath, closing a specified subpath or finding a point in the path * introduced a new type KoPointPosition do describe a path points position inside the path * added setProperty, unsetProperty functions to the KoPathPoint to add or remove a single point property * made some documentation updates
There are no commands yet to undo/redo the new functions. I am working on them next. |
|
|
|
|
|
|
Jan Hambrecht committed changes in /trunk/koffice/libs/flake:
|
Implemented a command for changing a segment from curve to line or from line to curve.
The border insets is now used when calculating the size/boundingrect of a path. This fixes painting of paths which only consist of line segments whose points are on a horizontal or vertical line (x-size or y-size is zero). Additionally made some cleanups. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Eric Coquelle committed changes in /trunk/kdenonbeta/karchiver:
|
|
When a huge archive is loaded, a little animation is now presented, while the archive's files are beeing read. The animated dialog is displayed only if reading time > one sec. |
|
|
|
|
|
|
Eric Coquelle committed changes in /trunk/kdenonbeta/karchiver:
|
|
Added new functions that allow to better detect errors in Zip, Rar, Lha and 7z archives. Also, when an archive is checked for errors, one can repair damaged Rar and Zip archives |
|
|
|
|
|
|
|
|
|
|
|
|
Eric Coquelle committed changes in /trunk/kdenonbeta/karchiver:
|
|
Now, KArchiver Part component can browse rar, zip, tar* archives directories by directories. I couldn't so far set the ComboBox into the toolbar (like KArchiver's standalone window), so it stays in the statusbar... |
|
|
|
|
|
|
|
|
Optimise |
|
|
|
|
|
Multimedia |
|
Seb Ruiz committed changes in /trunk/extragear/multimedia/amarok:
|
Improve application startup times dramaticaly by lazy loading podcast episodes. ie - wait until they are explicitly needed before querying the database.
regression testing needed! |
|
|
|
|
|
|
Utilities |
|
Eric Coquelle committed changes in /trunk/kdenonbeta/karchiver:
|
*HUGE* speed improvement in handling (display) of Rar archives. It now uses KArchiveDirectory, and the MyKRar class can be seen as a "read-only" analog of KZip, except that it contains no Rar algorithms but calls to KProcess and the rar/unrar tools.
Rar archives can now be displayed directories by directories, as a file browser. |
|
|
|
|
|
|
Other |
|
KDE-Base |
|
Aaron J. Seigo committed a change to /trunk/KDE/kdelibs/kdeui/widgets/klineedit.cpp:
|
wow.that made absolutely no sense at all. *sigh* new years resolution: don't start a patch, go to a meeting and then get bored during it and start idly committing what had been started .. or better yet, no more of those meetings. they suck. ;) |
|
|
|
|
|
|
David Faure committed changes in /trunk/KDE:
|
KIPC is gone, dbus signals replace it. The API has been cleaned up too: the signals moved from kapp to kglobalsettings [which now provides a singleton], as well as most of the gui-settings-related code. |
|
|
|
|
|
|
|
|
Multimedia |
|
Sebastian Trueg committed changes in /trunk/extragear/multimedia/k3b/src:
|
Removed the K3bProjectTabBar. All it did is now done in K3bProjectTabWidget::eventFilter I experimentally added the welcome widget as a tab to the project tab bar. This way the user always has access to it. I am not sure yet if I like it though. |
|
|
|
|
|
|
Utilities |
|
Max Howell committed changes in /trunk/extragear/utils/filelight:
|
The English Breakfast Network is actually wrong about this code fix, but I want to see Filelight with a 0 next to it so no matter.
It's wrong as I'm adding a string to the QString not a character, but the rest of the string is inside a macro so it looks otherwise. |
|
|
|
|
|
|
|
|
Security |
|
|