|
| This Week... |
|
The KDE Commit-Digest 2006 retrospective. blinKen and KNetWalk become the latest applications to move to scalable graphics. KSquares further develops, with an AI player implemented. More maps and a more sophisticated divisions and capitals implementation in KGeography. Support for password-protected RAR archives in the kio_rar interface. Work to support drag-and-drop of transfers in KGet. Import of "koregressions" test suite for KOffice. Longstanding KWeather and KHTML bugs fixed. Major refactoring in the "sonnet" natural language checker. Version 1.0 of Eigen, the library for vector and matrix math, is released.
|
Here we are at the end of another exceptionally bright year for KDE. As always, one of the prime highlights of the year was the KDE World Conference, held in Dublin, Ireland. This year saw the welcome surprise of additional sponsored developer meetings, focused on pressing development issues: KDE Four Core in Trysil, Norway and the K3M session in the Netherlands, alongside several informal meetings of other groups. 2007 may see many more of these events organised as a high-bandwidth impetus toward KDE 4.
The KDE 3.5 series saw regular reinforcement through point releases in January, March, May and August, with KDE 3.5.5 released on October 11th 2006. Though hidden through seemingly-insignificant minor version numbers, the 3.5 series had a policy shift, allowing well-tested features to be added to the release - alongside the bugfixes-only allowed previously, this policy a recognition of the extended development cycle of the major KDE 4 desktop, which at the start of the year was a distant blur, now coming into ever-sharper focus at the year end. KDE 4 will be released in 2007.
More than any other year, 2006 registered the maturity of the base desktop, and became the year of the application. I asked the developers of some of the inspiring applications of the year to share their intimate experiences and successes of the year:
|
Mark Kretschmann, founder and maintainer of Amarok, recalls a 'rokking' year:
|
The past year has been a significant year for the Amarok project, I believe. A turning point in some ways. Let me try to summarize what made this year special for us.
Release of Amarok 1.4 In Spring 2006 we released the first "Fast Forward" titled version of Amarok. This series introduced a number of defining features:- Media Devices plugins, offering support for most portable players on the market (iPod, Generic USB, MTP, iRiver..)
- Built-in support for Last.fm streams
- Magnatune music store for online shopping
- Music sharing via DAAP
- Support for removable media in the collection
- Shoutcast stream browser
- Podcast support
- Music can be rated with a score
Last but surely not least we also fixed an incredible amount of bugs. This is in some ways the most important "feature" of the Fast Forward series. It is my impression that people started to perceive Amarok as a mature product, instead of merely a "featureful" player. Now Amarok became software that can be relied on for everyday use.
KDE Multimedia Meeting In Spring, our developer team had the unique chance to meet in person at the K3M multimedia meeting in the Netherlands. This meeting was incredibly inspiring and productive, and helped a lot to refresh our "team spirit", after we had gained several new developers. Additionally it was very interesting to learn about Phonon, KDE 4's all new multimedia framework, which is being created by Matthias Kretz. At this point I would again like to thank the people from KDE-NL for being fantastic hosts. You guys rock.
Overtaking XMMS In May 2006 we finally overtook XMMS in popularity, according to Google Trends. For me personally this was a special moment, because Amarok was started as a XMMS replacement. Seeing that people appreciate our work is certainly satisfying, maybe it is the "payment" of the free software developer.
Next year? 2007 could become another very significant year for Amarok, perhaps even more so than the past year. In January we plan to start working on Amarok2, which will be based on Qt4/KDE 4. At the same time we want to achieve making the program work natively on Windows and OSX. The future will tell if Amarok will ever become popular on the vast Windows platform. I hope it will, but as Sebastian Kügler noted back at the multimedia meeting, this could mean radical changes for the way Amarok is being developed, should there be a huge influx of new developers from the Windows world. I hope we will never lose our great family-like "Amarok Team" spirit :)
|
|
KOffice had a year packed with milestones of increasing importance. Boudewijn Rempt, lead developer of Krita, and Thomas Zander, KOffice developer, talk about their project and work. Boudewijn Rempt:
|
2005 was the year Krita got its first release, but 2006 saw two main releases of Krita: 1.5 and 1.6. These releases added features that no other free software raster graphics application had offered before, like pluggable managed colorspaces in 8, 16 or 32 bits per channel, cmyk, L*a*b, yCbCr, adjustment layers, as well as a host of features needed to move Krita past the XPaint level of functionality: filter plugins, paint operation plugins, support for the CREATE standard, curve tools (thanks to the Google Summer of Code), OpenGL support, HDR, raw inmport, lots of file import and export filters - 30,000 lines of code added and nary a day without a commit.
Work started on Krita 2.0 too, with integration with the new KOffice flake shape architecture, dynamic brushes, a Chinese ink brush and true resolution for images. For the 1.6.2 release in January or February 2007 we've got bugfixes, a truly wet watercolor colormodel and a smudge paintop.
Krita was represented at the Libre Graphics Meeting, Fosdem and in the picture in general, but the big news for me was the Akademy Award for Best Application! And even while writing this, coding continues - plenty done, plenty still to do!
|
|
Thomas Zander:
|
For most of the year I've been working on replacing some core parts of KWord. The text engine is replaced with Qt-scribe. The frames implementation has been replaced with Flake and we have ported all of this to the much cleaned up kdelibs4/Qt4.
This hard work is starting to show dividends; adding new functionality gets easier and features added to other KOffice applications are directly reusable in KWord. Though I try to minimize adding new functionality until we are on par with the feature set of KWord 1.6 we now already have various features that have been in our bugzilla for years, like page-spreads (ideal for having a big image over 2 pages), and better text-runaround for those that want more graphics in their documents. Also much better support for having lines, borders and other visual markers which, frankly, is a bit of a hack in the current KWord release. And most important, our fonts just look and print great now.
A winning strategy for many big software tools are plugins. I chose to have various types of plugins which will make it easier to add new functionality in future versions. A quick example of possible plugins specific to text; run a code-formatter on selected text in any KOffice application. For those colored source-code snippets. Or have perfect integration with a bibliographic engine.
|
|
Alexander Dymo reports from the KDevelop camp:
|
2006 was a very productive year for the KDevelop team. Since 2004, when we did our widely-regarded releases (3.0.2 and 3.1), we hadn't achieved anything near those impressive project milestones.
This all changed in 2006.
We spent the whole year working on two things: KDevelop 3.4 - our greatest 3.x release ever - and concurrently building what will eventually become 4.0. KDevelop 3.4 (started back in October 2005) is now almost ready (RC2 went public a week ago). A large number of impressive radical changes have gone into 4.0 already. New developers joined our team and new users followed.
Here are some impressive statistics that illustrate our success story (click to enlarge):
The first notable thing is constantly growing commit count. The highest number of commits in 2005 was 95, which is only 42 commits more than the lowest number in 2006. The highest number - 329 (August 2006) remains unprecedented in KDevelop history!
During 3.4 development we've fixed 403 bugs and wishes (this number is still growing so it might be even bigger by the time you read this!). Now, KDevelop 3.4 is ready to be released with only 292 outstanding bugs. We are also proud that we moved down to the middle of the list of top 20 KDE modules with the most bugs! Hopefully even more bugs will be fixed up to the 3.4 release date.
In 2006, our developer community was unusually lively! Three newcommers of 2006 - Andreas Pakulat, David Nolden and Megan Webb - occupied the list of top 10 KDevelop committers. Two affilitates of year 2005, Jakob Petsovits and Vladimir Prus still have an itch for committing. And our seasoned KDE contributors Matt Rogers and Hamish Rodda are driving 4.0 development.
We are looking forward to see what the next year brings KDevelop and have the realistic expectation that 2007 will be even more successful for KDevelop team than 2006 was!
The KDevelop Team reminds you to try the latest 3.4 version and wishes you Happy New Year!
|
|
Back to the here and now, Friedrich W. H. Kossebau talks about his recent work in the KDE PIM contacts framework:
|
The Contacts framework, which is currently developed in playground/pim/ for KDE 3.5, has signalled the beginning of the end for hardcoded support for contacts. No more will the framework be restricted only to merely emailing someone, but instead functionality will be limited only by the installed plugins.
The concept behind all this is that an entry in the addressbook, known as a "contact", is a collection of different properties, mostly addresses in different systems (email, phone, postal, chat). Some properties can have different items, like the phone numbers, others only one (birthday). For every property, certain services are possible.
I see three types of services: action services, action services for some given data, and status services. As an example, the contact property "email" is linked to services such as:- "Email to..." (a regular action service)
- "Email file/url to..." (a data action service)
- "Number of unread emails..." (a status service)
Available adapters to properties and services are all given by plugins. Code using the framework simply queries the property/service trader and the operates on the results in a general way, without really needing to know what the service offers. Those needing more fine-grained control over the data can use property and service ID's to filter.
The framework is still a work in progress, with emphasis on the concept up until recently. However, the code is relatively stable, with people reporting using it successfully in their daily work :)
I welcome everybody to try the framework and the two programs currently using it (the Contacts Kicker applet and the Contacts card server). I am especially looking for someone to help enhance the service plugins for making phone calls.
Discussion has started to prepare for the integration of the framework into KAddressBook for the KDE 3.5.7 release. So, go to trunk/playground/pim/contact{s,sapplet,cards} and take a look :)
More information is available at the kde-apps.org entry and in my blog.
|
|
It may be due to the holiday, but this week was an even better week than most for bug killing, with Alexandre Pereira de Oliveira taking care of 86 Amarok bugs, and Martin Koller crushing 76 KWeather, KHTML and more issues - not to mention the other operatives, not only this week but throughout the year. This is often silent, barely-noticed and yet such vital work, and together with translators, artists and documention people comprises an equal effort in the KDE partnership.
To all contributors, users and readers, have a great 2007!
|
|
| 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 |
|
Development Tools |
|
Alexander Dymo committed changes in /branches/kdevelop/3.4/parts/appwizard:
|
This is rather hackish solution to the project creation appwizard used to open files before opening project (opening project was delayed using QTimer::singleShot). Therefore several things (code completion, switch header/impl., etc.) in C++ support didn't work because they were activated only on activePartChanged signal.
And that signal was emitted long before C++ support part was loaded.
I believe this could cause problems not with c++ support only but with other project-wide plugins.
So the fix is to catch projectOpened signal in appwizard and open files afterwards. |
|
|
|
|
|
|
Jens Dagerbo committed changes in /branches/kdevelop/3.4/languages/cpp:
|
This patch does a few related things: #removes a lot of unused and weird stuff from problemreporter #all parser activation decisions are moved back into cppsupport where it belongs, problemreporter is just UI #fixes flickering problem tabs #fixes a case where already open documents don't get a problem icon marker #fixes sorting so it happens numerically, no lexographically #afaik fixes repeated entries. if this still happens, I don't think problem reporter is responsible #afaik fixes the remaining cases where the parser could be invoked against non-c/c++ files |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
KDE-PIM |
|
Tom Albers committed changes in /trunk/playground/pim/mailody/src:
|
|
Make a pull down action where you can select an address to forward the message to. The list is the 10 ten mailed addressess. Plug this in the toolbar instead of the default forward button. |
|
|
|
|
|
|
|
|
|
|
|
|
Networking Tools |
|
Manolo Valdes committed changes in /branches/work/make_kget_cool/kget:
|
|
fix download bug in multisegkio. Now the md5 check should be ok. now we can add search engines in the settings widget. I need ideas to implement it in the .kcfg file |
|
|
|
|
|
|
Office |
|
David Faure committed a change to /branches/koffice/1.6/koffice/kword/KWFrame.cpp:
|
Just wanted to send a recipe to someone, converted it to odt, checked how openoffice opened it, found two bugs....
1) frames with AutoExtendFrame need to have a min height superior to 0, otherwise the loading code won't say "min-height>0 -> AutoExtendFrame" 2) the background color of text boxes is saved using draw:fill-color in OOo; this must be new, I remember testing this. It would almost make sense (fo:background-color being then available for the color behind the text), except that for table cells it's fo:background-color.
On top of that, text boxes without draw:fill-color appear as blue in OOo. Bug filed, http://www.openoffice.org/issues/show_bug.cgi?id=72920 |
|
|
|
|
|
|
|
|
Features |
|
Development Tools |
|
Jens Dagerbo committed changes in /branches/kdevelop/3.4/parts/documentation:
|
|
If the text under the cursor of the active document resolves to a word when a document search tool is invoked, assume that word is interesting and use for the search. This should give the most intuitive and overall prefered behaviour. |
|
|
|
|
|
|
|
|
|
|
Andreas Pakulat committed changes in /branches/kdevelop/3.4:
|
Allow mixed case in new project names. Adapt all parts that use projectName() because that now returns the name without the suffix. This actually makes kdevelop adhere to its own API now. (The API for kdevprojectmanager states that openProject takes the project name without suffix as 2nd argument)
This is tested with autotools, qmake and custom makefile projects as well as importing a new project into CVS (I couldn't test svn because that somehow doesn't work here).
If anybody finds problems that may be related to this change please email kdevelop-devel or come to IRC/#kdevelop. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Albert Astals Cid committed changes in /trunk/KDE/kdeedu/kgeography/src:
|
Add the possibility of adding false capitals for a given division instead of pulling capitals from other divisions on the map, this can make it more interesting for divisions where the capital is a small city compared to others in falseCapital tags.
Now only need people to come and use the falseCapital tag all around on the existing maps :-D |
|
|
|
|
|
|
Albert Astals Cid committed changes in /trunk/KDE/kdeedu/blinken:
|
Rejoice! blinkenSVG is here, now you can play blinken in fullscreen glory :-) There are still some magic numbers to tweak but it is working quite good already. |
|
|
|
|
|
|
|
|
|
|
|
|
Dmitry Suzdalev committed changes in /trunk/KDE/kdegames/klines:
|
Score is working now. And game over condition is checked, so no more Great Hungry Infinite Loop at the end.
It magically transformed into nice "GAME OVER" message on stderr :). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Pino Toscano committed changes in /trunk/playground/graphics/okular:
|
Add support for showing icons in the page view top message. With simplier words: add an 'attach' icon in the message pane that informs about attachments in the current document. |
|
|
|
|
|
|
Pino Toscano committed changes in /trunk/playground/graphics/okular:
|
Improving the bookmark capabilities of okular. Adding a BookmarkManager class that takes care of handling them in a proper way.
Adding a new tab in the sidebar to manage them: - shows all the bookmarks in all the documents, or just in the current document - cliking on a bookmark will bring to that bookmark, loading the document if necessary - editing a bookmark title is possible either using F2 or right click -> Rename - right click -> Remove to remove a bookmark
The only way to add new bookmark for the moment is the "old" way, ie right click -> Add bookmark, and it's not possible add more than one bookmark per page (but the system does not limit that).
The whole system should not be too difficult to understand, I will check with our usability master Florian next days. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Matthias Kretz committed changes in /trunk/KDE/kdelibs:
|
add small lib that lists ALSA devices to be used in Phonon backends
now that I need FindAlsa in kdelibs should it be removed from kdemultimedia next monday? |
|
|
|
|
|
|
|
|
Aaron J. Seigo committed changes in /trunk/KDE/kdelibs/kdeui/dialogs:
|
allow the user to "roam" with the mouse while the button is depressed; this lets you see the colour that will get picked before you release the mouse button.
patch by Vic Fryzel |
|
|
|
|
|
|
KDE-PIM |
|
Tom Albers committed changes in /trunk/playground/pim/mailody:
|
|
Implement 'save all' to save all attachments in one go. Including a routine to check for existing files with that name, as it is perfectly allowed to attach two times a file with the exact same name. |
|
|
|
|
|
|
Tom Albers committed changes in /trunk/playground/pim/mailody:
|
|
Move away from a KTextBrowser and start using a KHTMLPart. This allowes me to make an option to load external images. Which is added with this commit as well. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Allen Winter committed changes in /branches/KDE/3.5/kdepim/korganizer:
|
Add a print button next to each journal entry. So, now you can print only 1 journal entry on a single sheet. TODO: uncomment the tooltip and whatsthis strings at the next unfreeze. |
|
|
|
|
|
|
Multimedia |
|
Andrew Turner committed changes in /trunk/extragear/multimedia/amarok/src:
|
Experiment changes to the Collection Browser: * Display (up to) 3 covers for artists * To fit them in, show them to the right of the text * For consistency, move the cover for an album there too * Blank covers are not shown for artists, but are shown for albums * Covers should be (implicity) shared by Qt.
The aesthetics could probably be improved, but I don't quite know how. Personally, I'm not even sure I like it at the moment.
Credit to the idea goes to Theory |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dario Massarin committed changes in /branches/work/make_kget_cool/kget/core:
|
A further step towards having the possibility to drag and drop transfers from one group to another. I don't know why after a drop operation the dropped transfer is not displayed anymore in the view, although the group has the decoration symbol indicating the presence of a transfer in it. On the other hand the underlying data structures are updated correctly. If you restart kget you'll see the transfer in the new position.
Anybody can catch this problem? |
|
|
|
|
|
|
Office |
|
Thomas Zander committed changes in /trunk/koffice:
|
The results of my christmas weekend offline... * Split the textlayout into a KWord and a KOffice-libs part so all KOffice apps can now enjoy all the ODF features (like borders/counters/etc) of the KoText shape. * Add a InlineText concept with a plugin API so we can have differnt plugins that implement different ways to place things in the text. Like a shape or like a variable. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bart Coppens committed changes in /branches/koffice/1.6/koffice/krita:
|
|
When deselecting the adjustment layer, don't do weird stuff, but something reasonable. (But should it make everything adjusted, or nothing at all? Currently it does the 'everything adjusted' thing...) |
|
|
|
|
|
|
Bart Coppens committed changes in /branches/koffice/1.6/koffice/krita:
|
|
Strange that this didn't work, but the new way is more consistent and actually works. Also changed the previously mentioned clearSelection on the adjustment layers to something sensible: Select All -> apply adjustment everywhere, Deselect -> apply nowhere. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Optimise |
|
|
|
|
|
Graphics |
|
Marcel Wiesweg committed changes in /trunk/extragear/graphics/digikam/libs/widgets/metadata:
|
Share world map pixmaps between GPS widgets of each sidebar. Saves >5MB memory.
Note (1): This memory for a pixmap is counted for the X.org server process, not the digikam process. Note (2): These megabytes were mentioned by someone on digikam-user when I removed the WDestructiveClose flag from ImageWindow. Here are the missing megabytes back. |
|
|
|
|
|
|
KDE-PIM |
|
Tom Albers committed changes in /trunk/playground/pim/mailody/src:
|
|
Optimisation: only parse the headers of the message when the headerlistviewitem wants to paint the cells. Also, optimized the cache for the flags of the messages, which is needed because the user can choose to hide the deleted message, so I need that info. All in all, it reduces the loading of 8000 message, back to 1200ms, which is roughly 3 times faster as it used to be. |
|
|
|
|
|
|
Other |
|
Development Tools |
|
Alexander Dymo committed changes in /:
|
|
Moved security plugin out of kdevelop3 source tree. It's not of production quality and was disabled anyways. |
|
|
|
|
|
|
|
|
|
|
Robert Knight committed changes in /branches/work/konsole-split-view/konsole:
|
* It is time to bite the bullet. This is the beginnings of an attempt to rewrite the Konsole front-end, the design is partly based on Kate.
* Everything kicks off in the kdemain function in start.cpp * KonsoleApp encapsulates the main application as a unique single-instance application. * KonsoleMainWindow is the main program window. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Office |
|
Cyrille Berger committed changes in /trunk/koffice:
|
|
initial port and refactor of the 16bit float colorspace for HDR (sorry for the warnings ;p) |
|
|
|
|
|
|
|
|
Other |
|
Clarence Dang committed changes in /branches/work/~dang/scripts:
|
Add 3 useful scripts I've had sitting around the place:
1. kbus (starts DBUS server safely) ~~~~~~~ Running a KDE 3 app starts the DCOP server. However, running a KDE 4 app does not start DBUS. This script ensures that DBUS is started exactly once for the current user, no matter how many times it is run.
Usage: ". kbus" or "source kbus".
Run this on every console and it will start DBUS the first time and setup the environment variables every time. In other words, you run it every time you need DBUS and it will take care of the details.
Maybe kdesdk/ already has a script that does this, not sure.
2. svnupfast (an "svn up" that takes half the bandwidth) ~~~~~~~~~~~~ When I was on a modem, "svn up" was far too slow so I experimented with an alternative: "svn up" in each subdirectory (and "svn up -N" in the root).
Benchmark: A checkout of https://svn.kde.org/home/kde/trunk/KDE/kdebase/konqueror was updated from r514723 to r532882.
Update Method | Wall Clock Time | Bytes In | Bytes Out ---------------+-----------------+-----------+----------- svn up | 3m32.312s | 1,022,071 | 82,589 svnupfast | 5m36.562s | 585,901 | 92,979
Conclusion: "svnupfast" is actually slower than "svn up" (probably due to handshake latency) but takes half the bandwidth (I've always suspected that SVN takes more bandwidth than needed).
"svnupfast" is therefore only faster on a shared connection where bandwidth is of the essence.
3. svn-import-changes (distributed revision control system) ~~~~~~~~~~~~~~~~~~~~~ Helps manually merge changes from one repository into another. Great for modem users.
The idea is that you take a checkout of the main repository and create a local repository using this checkout. You then work exclusively using the local repository.
When you have access to the main repository again, do a clean checkout and run this script inside this checkout, after modifying the script to point to your local repository.
It then merges your local repository into the main repository, revision by revision, pausing at each step. The pausing lets you CTRL+C to resolve conflicts and then you can restart the script again, after modifying it to point to the next revision.
The poor person's distributed revision control system. I'm sure SVK works much better but this is simpler and has fewer dependencies. |
|
|
|
|
|
|
|
|
|
|
Benoît Jacob committed changes in /trunk/kdesupport/eigen:
|
|
Release Eigen 1.0. Will mail the list with the details. In this commit, the only new code is the unary minus operator and the corresponding replaceWithOpposite() method. The rest is improvements in docs and website. |
|
|
|
|
|
|
|