Issue 23

10th September 2006 by Danny Allen

This Week...

Work begins on Ruby language support in KDevelop 4. Work continues in the KReversi code rewrite. Kalzium gets functionality to visually show the country an element was discovered in. Automatic regression testing for Kate. Mimetype and metadata support for the XML Paper Specification format. Strigi can now use outside applications to index files outside its core scope, such as PDF files. KJots gets greatly improved find and replace functionality. Many improvements in supporting different archive formats in KArchiver.
Matt Rogers discusses the latest developments in KDevelop:
Development on KDevelop 4 is looking very promising at the moment. Hamish Rodda has done great work on the C++ parser, improving the speed, providing some nice custom highlighting that uses the parser, etc. Eventually, we hope to offer some refactoring features for C++ in addtion to navigation, code templates (eg. switch generation), integrated documentation. We have lots of ideas. :) Java and C# support are also being worked on and they'll get many of the same features as the C++ support as well.

We've also started integrating CMake and Autotools into KDevelop 4 for use as build systems. They should provide more and better features than their KDevelop 3 counterparts.

I'd also like to mention that the integrated Qt Designer support for KDevelop completely rocks. The trolls have done a marvelous job of providing a very useful framework for those wanting to embed designer in their own apps for use during development.

Also in the works, as part of Google's Summer of Code program are three very interesting projects. C# Support, Teamwork mode, and a generic refactoring API were all submitted as part of the Summer of Code program, and we've gotten some very promising results:
  • Jakob Petsovits is the student working on the C# support, and he is a parsing genius. He's done some really nice work with both the C# and the Java parsers and I'm sure the results will be outstanding.
  • David Nolden is the student working on the Teamwork mode for KDevelop and that's really coming along. Teamwork mode will feature some nice patch management and review, the ability to send and receive text messages, very similar to IM, and file collaboration has also been worked on.
  • Tom Stephenson is the student working on the generic refactoring framework. Sadly, due to the slightly undeveloped state of our code model, parser, and other things that will be needed for refactoring during the SoC period, Tom only has a few small refactorings to show for his SoC project, but it does highlight the many possibilities in store for refactoring support and I hope that Tom has time during his studies to continue to help out in that area.
KDevelop 4 - It's gonna be great and you're gonna love it! :)

Screenshots of KDevelop 4 during various stages of development (mostly showing off what I was working on at the time):



Please note that none of these are current, but show off some of the functionality KDevelop will get.
An important project noted above is the KDevelop Teamwork Summer Of Code effort. I talked to David Nolden, the developer behind this feature about his work:
When I first heard about Summer Of Code I thought about proposing a project called "Advanced Code Completion for KDevelop 3"(with full support for templates, comments, etc.), but when that didn't go down well with most of the KDevelop developers (since they were already focused on KDevelop 4), I just started implementing it. I spent a lot of time working on that until SOC started (and even quite some time since then), and you can see the result in the current KDevelop 3.4 SVN tree. I finished everything I planned and more.

Some of the features:
  • Intelligent resolution of types.
  • Support for templates like for example shared pointers.
  • Support for implicit template-instatiation
  • Nicer and more useful completion-list with items ordered in a useful way and indented by inheritance-depth, with popups that include comments and any other interesting information
  • Many improvements in the parser, for example all comments are extracted and used in any possible way, macros are dealt with correctly, Enums are handled in a more useful way, and much more
  • A powerful navigation-menu: Click any item within a function and see it's real type, a trace of all typedefs on the way to that type, information on all involved typedefs, classes, variables, functions, etc., and the same as a submenu for all involved template-parameters, argument-types, base-classes, etc.
  • Improved jump-to-menus and navigation-bar.
  • Highlighting of function-names in the navigation-bar and class-tree.
And countless other major improvements in code-completion and navigation.. see the feature list of the beta releases or the commit log to see all of them.

KDevelop 3 is doing well feature-wise, but currently lacks developers since the focus already is on KDevelop 4, but it'll take a long time until that is really usable, so I hereby encourage anyone interested to start using the SVN version of KDevelop 3.4 and hunt down a few bugs, to make sure that a stable version can be released soon.

Collaboration through the internet is fundamental to most open-source-software. Almost any open- and even closed-source-software might profit from better collaboration-possibilities. If you work for a project that has a collaboration-server, you can directly ask other developers working on the same project for very specific help, patches can be reviewed very quickly, and discussion can instantly take place within the documents themselves. File Collaboration may also be useful for discussion of new ideas, teaching, for friends less experienced in programming requesting help (Or am I the only one who is asked how to program something through ICQ again and again?), and simply because it's cool ;)

So I took the basic Idea for the Summer Of Code project "KDevelop Teamwork" from the Wiki where someone proposed it, and developed it using my own Ideas, trying to add some of the teamwork features I always missed in any IDE I ever used. :)

Generally it consists of four parts:
  • Client/Server Architecture
    I created a multi-threaded library for networking, including client/server- and user-management, and a standalone server not dependent on Qt which can be run on any webserver and administrated using the console.

  • File Collaboration
    An arbitrary count of developers can collaboratively edit a dynamic set of files, and the edited documents can be dynamically transformed (for example chosen changes made by exactly one user could be undone, which will allow single-user undo, redo, etc.)

  • Conversation
    All users connected to any of the connected servers, as well as the servers themselves (in the case they are not standalone) can be contacted by using instant messages, collaboration-requests, patch-requests, in-document messages, etc.

    The most interesting message for conversation is the in-document message: It can reference a position or piece of text within any document, and the receiver of the message automatically jumps to that document and highlights the referenced piece of text as the message is selected, and pops up a chat-window within the document itself at the found position, where other messages of the same thread may be selected and discussion can take place.

    Any answers written into the chat will automatically reference the currently selected text. Referencing is simply done by marking a piece of text before sending a message, and the reference-position is being found by a fuzzy algorithm I developed which tries to find the correct place even within totally different documents (and is pretty successful at doing so).

  • Patch Management
    Every user can manage a set of patches (or other file types) for each project. They can either be files or dynamic patches which are automatically retrieved from commands on request (for example "svn diff"). Patches can be easily shared directly through the developer-list, using different access-levels.

    A modified version of Kompare's diff3-library is used to get information from patches. Using that the patch-manager can automatically highlight all changes made by an applied patch within all documents, and allows you to easily browse through those positions so you can review the patch within the correct context and directly discuss about it using in-document messages.

    They can be applied/reverted to the local tree using single buttons, and for diff-files it is possible to automatically determine whether the patch is already applied or not. If problems arise within the patching process they can be dealt with using an embedded console in the patch-management-window.
It is important that all those features are well integrated: For example you can store the results of a file-collaboration-session as a patch into your local patches-list, and thereby share it with other developers and easily revert it at any time, and you can use in-document messages directly within the temporary file-collaboration files.

To store all the project-specific data (like patches), a ".teamwork" subfolder is created within the project directory.

I encountered many problems during development. Apart from one harddisk crash, the most annoying problem was the very unstable and (in the begginning) difficult to compile kdelibs/qt-copy/qdbus/kdesupport etc. combination, which again and again cost me days and hours just to get it working.

The most challenging part was the file-collaboration. Getting a simple form of collaborative editing to work was quite fast, but making the document-transformation work correctly in all test-cases really took some time, and I had to finish it after the deadline without stress (luckily I didn't mention anything like it in my application ;)). The trick was writing everything down and trying to solve it mathematically as I learnt at university, unfortunately I got that idea after days of unsuccessful hacking and trying - well... you live and learn :)

I was able to finish nearly everything I planned until the deadline, but unfortunately I missed the week I planned in my application for "debug, make it perfect", so that work is missing, and it shows :) Most of the work I did after the Summer Of Code ended was in other, more important parts (finishing the text-transformation algorithm, or fixing file-collaboration which stopped working after a kdelibs-update), but it is work I'll surely do. Then there's one other big problem, the executable-size when the executable is built with debug-information. During my work on this project I fell in love with templates and meta-programming, but I think the main reason is my use of boost serialization, I'll still have to work on that. Then of course i'll need some nice icons. :)

Here are some screenshots showing the results of my work:

 


Now that the Summer Of Code has concluded, the first thing I will do is working intensively for the institute of my university that paid me the whole year, and that I neglected since March because of my work for KDevelop 3 Code Completion and then the Summer Of Code. Of course, I won't forget KDevelop and KDE in general, since I like the Open-Source Idea a lot. I started working on Open-Source Software before I started the Summer Of Code, and I won't stop it now that it's over :) I'll keep maintaining the teamwork-module (and of course finish it), I'll keep caring about KDevelop, and maybe I'll start a project to make KDE more Tablet PC friendly if I can find the time for it.
Max Howell announces the long-awaited release of Filelight 1.0:
It started some months ago. I'd awake at night with images of concentric segmented rings flashing around my mind, calling to me, commanding me, jeering me, begging me to finish what I'd started.

I set to work. I created crop circles. I made elaborate handwoven murals with cotton and twine. I sailed the pacific in ever-increasing circles.

The dreams did not cease, instead they became ever more disparate and galling.

Then I realised they were actually asking me to finish Filelight. So I did. I hope you like it, my uncle did.

http://www.methylblue.com/filelight/

"Filelight 1.0 - it's a bit of alright." - Uncle Rodney

Statistics

Commits 2437 by 216 developers, 5572 lines modified, 1844 new files
Open Bugs 12890
Open Wishes 11539
Bugs Opened 273 in the last 7 days
Bugs Closed 340 in the last 7 days

Commit Summary

Module Commits
/trunk/KDE
453
 
/trunk/extragear
374
 
/trunk/www
336
 
/branches/stable
272
 
/trunk/playground
233
 
/branches/work
168
 
/trunk/l10n
150
 
/branches/KDE
117
 
/trunk/koffice
100
 
/branches/koffice
79
 
Lines Developer Commits
175
 
Dirk Mueller
80
 
159
 
Gilles Caulier
75
 
154
 
Thomas Nagy
65
 
157
 
Laurent Montel
63
 
88
 
Andras Mantia
59
 
129
 
David Faure
55
 
142
 
Stephan Kulow
53
 
110
 
Sebastian Trueg
42
 
202
 
Hamish Rodda
40
 
100
 
Thomas Zander
37
 

Internationalization (i18n) Status

Language Percentage Complete
Portuguese (pt)
99.98%
 
Swedish (sv)
99.28%
 
Danish (da)
99.12%
 
Spanish (es)
96.94%
 
Dutch (nl)
96.82%
 
Estonian (et)
94.03%
 
Italian (it)
93.42%
 
Greek (el)
93.35%
 
French (fr)
93.12%
 
German (de)
92.27%
 

Bug Killers and Buzz

Person Bugs Closed
Sebastian Trueg
40
 
Philip Rodrigues
30
 
Andras Mantia
30
 
Frank Osterfeld
29
 
Tommi Tervo
29
 
Alexandre Pereira de Oliveira
29
 
Seb Ruiz
26
 
Andreas Kling
23
 
Stefan Monov
11
 
Gilles Caulier
10
 
Program Buzz
Amarok
3461
 
Kontact
734
 
Kopete
703
 
KDevelop
693
 
Kate
691
 
KMail
689
 
SuperKaramba
687
 
K3B
686
 
Kicker
559
 
aKregator
460
 
Person Buzz
David Faure
310
 
zogje
281
 
telex
255
 
George Staikos
252
 
boud
243
 
pipitas
235
 
wheels
233
 
Stephan Kulow
230
 
Aaron J. Seigo
222
 
riddell
218
 

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 80 selections this week

Bug Fixes

Educational

Albert Astals Cid committed changes in /trunk/KDE/kdeedu/kgeography/data:

Fix bug 133499, serbia and montenegro are not together since summer 2006

Will ask the translators if it is ok to backport for KDE 3.5.5

Graphics

Jesper Pedersen committed changes in /trunk/extragear/graphics/kphotoalbum:

Ensure every action's keybinding in the viewer is configurable
(Thanks to Kimball Robinson for bringing it to my attention that they were not)

Diffs: 1, 2, 3, 4 Revision 582451

KDE Base

David Faure committed changes in /branches/KDE/3.5/kdebase/konqueror:

Apply patch for Bug 53642: Menubar is always visible after coming back from fullscreen

Thanks to Vinay Shastry for the patch!

Leo Savernik committed changes in /branches/KDE/3.5/kdelibs/khtml/khtmlview.cpp:

Fix accessibility bug wrt frames scrolling=no by allowing scrolling if content would be otherwise hidden. The scrollbars still remain hidden. This also complies with Mozilla.

Multimedia

Seb Ruiz committed changes in /trunk/extragear/multimedia/amarok:

Show proper tag dialog when viewing shares from DAAP - this allows seeing all metadata, not just title

Utilities

Max Howell committed changes in /trunk/extragear/utils/filelight:

Fixes the "bug" where Filelight didn't update the map after a delete, it just invalidated it. I tried to implement a nice delete dialog, but no matter what I try the fugly KDE ui-server dialog pops up. Nice. Annoyed I am yes.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 581950

Features

Development Tools

Matt Rogers committed changes in /branches/work/kdev-model-and-api-exper:

Now that I'm done doing the "yay! it works!" dance, it's time to commit!

Base the project model on QStandardItemModel and QStandardItem. This provides us a cleaner model implementation since we can use the APIs provided by Qt rather than using an abstract model and making up our own APIs.

The generic file manager is the only one that is correct in terms of display, and I have tons of bugs to fix, but this is a good first stopping point since i need to merge with trunk again.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 5 more) Revision 580251
Alexander Dymo committed changes in /trunk/KDE/kdevelop/languages:

This commit is the start of Ruby language support for KDevelop 4.
Implemented:
- ruby LL(1) parser with kdevelop-pg parser generator
- ruby lexer with flex
- ruby language support stub (it doesn't do anything now)

To this moment the parser is able to parse simple expressions, class and method declarations.
More stuff is pending, keep in touch ;)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 27 more) Revision 580568
Alexander Dymo committed changes in /trunk/KDE/kdevelop/src/ideal:

Implemented initial framework for toolview numbering (idea is similar to what we have in newui in 3.4 - to have <Alt+number> accelerators for toolviews).

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 580582
Hamish Rodda committed changes in /trunk/KDE/kdevelop:

Last night and tonight's work...:

1) Use static deleters for singletons

2) Use new KUrl for KDevDocumentRangeObject when working with non-smart cursors. I found that even a blank KUrl (QUrl) allocates a QUrlPrivate, and this was hurting us - 5Mb memory use on a 1Mb document. Found on
profiling with Massif.

3) Locking for the definition-use chain.
- One top-level lock per chain for most functions
- Per-object locking (internally) for external references - not finished
- Use locking in client code

I have left debugging enabled for now... if you hit an assert, please
email/irc me.

4) Disable the duchainviewer. For this to work, there is still a fair
bit of work to be done:
- need notification of major changes to a duchain while unlocked
- need to create a proxy model which can forward data from any thread to the gui thread

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 32 more) Revision 581178
Hamish Rodda committed changes in /branches/work/kdevelop-threadsafety/ktexteditor:

New retrieve a token representing the current revision of a document. At a later point in time, new cursors and ranges can be created and translated to the current revision from a specified previous revision.

For example, this enables:
- threaded programs can create cursors and ranges based on text they have received but which might have been changed by the user at the time they are to be created.

- editors can go accurately to the line,col position of a compilation error by saving a revision token for the last compilation.

Andras Mantia committed changes in /branches/KDE/3.5/kdewebdev/quanta:

Fix automatic updating of closing tags (don't search for the closing tag for single tags).

Andras Mantia committed changes in /branches/KDE/3.5/kdewebdev/quanta:

Make CSS completion work inside style attributes.

Hamish Rodda committed changes in /branches/work/kdevelop-threadsafety/kdevelop/languages/cpp/duchain:

Start working on incremental parsing support... context builder in theory supports it now (untested)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 3 more) Revision 582613

Educational

Carsten Niehaus committed changes in /trunk/KDE/kdeedu/libkdeedu/libscience:

support the new dataset discoverCountry

Diffs: 1, 2, 3 Revision 580381
Carsten Niehaus committed changes in /trunk/KDE/kdeedu/kalzium/data/maps:

add the maps for the new view

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 580394
Carsten Niehaus committed changes in /trunk/KDE/kdeedu/kalzium:

Cool, the new feature works: Now you can see a nice map-view :)

Diffs: 1, 2, 3, 4 Revision 580396

Graphics

Jesper Pedersen committed changes in /trunk/extragear/graphics/kphotoalbum:

* The checkboxes in the annotation dialog are now tristate, which means that there are no need for the "merge" and "remove" checkboxes.
Also the "and" checkbox has been replaced with an "and" and a "or" radio button to make their meaning more understandable.

* BUGFIX: Solved this crash: edit a category name in the settings dialog, press Apply and press OK. (thanks to Christoph Moseler for finding this.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 4 more) Revision 580265
Colin Guthrie committed changes in /trunk/extragear/libs/kipi-plugins/galleryexport:

Work towards supporting multiple galleries.
I wont commit the changes to existing files just yet as it's not ready to go live.
I am now able to define, edit, delete multiple galleries which save permanently in kipirc/wallet. Just need to update some more UI elements to use this new list of galleries when logging in.

Brad Hards committed changes in /trunk/KDE/kdegraphics/kfile-plugins:

Check in an initial version of the kfile (meta-data) plugin for the XML Paper Specification format, which is an emerging Microsoft format for e-documents. The format is broadly similar in capabilities to what most people use PDF for. The approach in this document would probably work for similarly packaged files, including some of the stuff from Microsoft's Office 2007 format.

This plugin isn't the greatest example of XML handling, but it does work on almost all the files I tried it on.

It is known to crash on some files - those that use the interleaved Zip format. I just don't know how to protect from this case. It also won't work on anything that uses digital signatures (just not handled - we don't have enough XAML tools) and also won't work on zip files that uses the Zip64 extensions (because KZip can't handle that).

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 582427

KDE Base

Andreas Kling committed changes in /branches/KDE/3.5/kdebase/kate/app:

Move focus to the logical place when activating the "console" and "grep" plugins.
This makes binding a key to e.g "show terminal" far more usable.

Jos van den Oever committed changes in /trunk/playground/base/strigi/src:

Started code with unit tests for the different indexing backends.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 580573
Jos van den Oever committed changes in /trunk/playground/base/strigi/src/luceneindexer/cluceneindexreader.cpp:

Add support for range queries (e.g. size:>1000) in the CLucene backend.

Jos van den Oever committed changes in /trunk/playground/base/strigi/src/streams:

Add an inputstream that takes input from an extermal program. This paves the way for support for helper applications for indexing from e.g. Word or PowerPoint files.

Diffs: 1, 2, 3, 4, 5 Revision 582283
Robert Knight committed changes in /trunk/KDE/kdebase/apps/konsole/konsole:

Allow multiple views to be connected to a terminal emulation. Looking at this as a model-view combination, the terminal image (TEScreen) becomes the model, and the terminal display (TEWidget) becomes the view.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 582300
Jos van den Oever committed changes in /trunk/playground/base/strigi/src/streamindexer:

Add support for helper programs in Strigi. At the moment pdftotext and wvText are used for parsing PDF and Microsoft Word respectively.

Diffs: 1, 2, 3, 4 Revision 582432
Brad Hards committed changes in /trunk/KDE/kdelibs/mimetypes/application:

Add in mimetype for the Microsoft XML Paper Specification format.

KDE-PIM

Allen Winter committed changes in /trunk/KDE/kdepim/kmail:

forward port SVN commit 571208 by winterz:

Approved by Till.
Put the state of the spell checker in a status box in a compose window.
Remove the status bar message "As-you-type spelling checking enabled/disabled."

This not only looks better, but also helps me as I'm trying to debug
why spell checking sometimes comes and goes for no good reason.

Marco Gulino committed changes in /trunk/playground/pim/kmobiletools/kmobiletools:

First template for filesystem configuration.

Diffs: 1, 2, 3, 4, 5 Revision 582183

Office

Thomas Zander committed changes in /trunk/koffice:

Make KWord old format styles-loading work again by filling the new data structures for parag/character/list styles and use that for the paragraphs.
Fix quite some little buglets in the process.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 580838
Thomas Zander committed changes in /trunk/koffice:

Implement recursive lists. So now you can again do things like
1
1.1
1.2
1.2.1
etc.

Diffs: 1, 2, 3, 4 Revision 581488
Jan Hambrecht committed changes in /trunk/koffice/libs/flake:

Implemented selection of multiple path points by using control key to add/remove points to/from the actual selection. All selected points can be deleted at once now. When dragging a node point, all selected path points can be moved at once. When dragging a control point, only the control point is moved. Rubberband selection of path points follows.

Diffs: 1, 2, 3 Revision 581550
Thomas Zander committed changes in /trunk/koffice/libs/flake:

Usability feature;
reorder the order in which we look which handle the mouse is over, first trying the scale ones. This has the effect that very small items first scale and only then we will look at skewing etc.

Also remove some unused code that an earlier refactor left behind.

Bart Coppens committed changes in /branches/koffice/1.6/koffice/krita/colorspaces/gray_u8/kis_gray_colorspace.cc:

Long overdue: now the grey8 colorspace also works antialiased when opacity<100% on adjustment layers

Bart Coppens committed changes in /branches/koffice/1.6/koffice/krita/kritacolor:

Put a templated base version of alpha darken in the abstract colorspace, so we should be able to easily add alpha darken to other colorspaces (finally!)

Diffs: 1, 2, 3 Revision 582196
Bart Coppens committed changes in /branches/koffice/1.6/koffice/krita/colorspaces:

Alpha darken for CMYK8 and CMYK16. Yay for code reuse :)

Cyrille Berger Skott committed changes in /branches/koffice/1.6/koffice/filters/krita/png/kis_png_converter.cc:

analyse the image and try to create a palette to reduce the size of the png

Multimedia

Joe Rabinoff committed changes in /trunk/extragear/multimedia/amarok/src:

The moodbar is now displayed in the systray icon tooltip if the Mood column is displayed in the Playlist.

Seb Ruiz committed changes in /trunk/extragear/multimedia/amarok/src/playlistbrowser.cpp:

Default streams should not be editable, whilst user added streams should be!

Alexandre Pereira de Oliveira committed changes in /trunk/extragear/multimedia/amarok/src:

New DCOP Calls for scripts: proxyForUrl and proxyForProtocol, that return the proxy settings in kde

Joe Rabinoff committed changes in /trunk/extragear/multimedia/amarok/src:

Moodbars are everywhere! Now they've even invaded the OSD! And they've cleaned up some of the code there too!

Diffs: 1, 2, 3 Revision 580622
Alexandre Pereira de Oliveira committed changes in /trunk/extragear/multimedia/amarok/src:

Lastfm streams work with proxies.
Mostly extracted from a patch by Martin Ellis.
Unfortunately we can't use the dcop call for this, since it would cause those timing problems again.
I tried hard not to break DAAP (what might even work with proxies as well, as soon as eean makes the necessary changes to his code, and stop using QHttp).

Sebastian Trueg committed changes in /trunk/extragear/multimedia/k3b/src/projects:

K3b now uses libiconv to check the encoding of filenames added to a data project.
Still missing is a dialog which allows the user to fix the encoding.

Diffs: 1, 2, 3, 4 Revision 581425
Alexandre Pereira de Oliveira committed changes in /trunk/extragear/multimedia/amarok/src/contextbrowser.cpp:

Let the context browser work with streams, for people without any collection.

Seb Ruiz committed changes in /trunk/extragear/multimedia/amarok/src/mediadevice/daap:

Place a button in the Daap toolbar "Share My Music". This allows for easy access to enabling/disabling the daap server.

This is an intermediary solution, this option should be moved to the collection config, but requies a shuffle of daap server stuff.

Seb Ruiz committed changes in /trunk/extragear/multimedia/amarok:

Add support for Undo/Redo across sessions

Sebastian Trueg committed changes in /trunk/extragear/multimedia/k3b/src/misc:

Moved the media selection widget out of the tab widget just like in the project burn dialogs.

Now all dialogs have the same basic layout.

Sebastian Trueg committed changes in /trunk/extragear/multimedia/k3b/src/projects:

I changed the GUI again!
And this time I like it. I moved the backup chekbox into the advanced file system settings (for now there is a mkisofs bug which prevents this option from working properly anyway). Furthermore I removed the outdated warning about multisession DVDs.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 582609

Networking Tools

Urs Wolfer committed changes in /branches/work/make_kget_cool/kget:

add a dbus call for adding transfers (only kurl yet; not kurl::list)

Diffs: 1, 2, 3 Revision 580214
Alan Jones committed changes in /trunk/extragear/network/ktorrent/plugins/rssfeed:

This should be a functioning rssfeed plugin. Please test it and mail any bugs to me

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 29 more) Revision 580605
Alan Jones committed changes in /trunk/extragear/network/ktorrent/plugins/rssfeed:

Updated download code so that it removes a match if it fails to find a
torrent and start it downloading

Rewrote the download processing code to remove the dependency on khtml -
it now processes using standard Qt classes

Diffs: 1, 2, 3, 4 Revision 581265
Alan Jones committed changes in /trunk/extragear/network/ktorrent/plugins/rssfeed/rssfeedmanager.cpp:

Update download code again to improve support for differing html pages

Adding exception handling for brute for torrent file detection (fixed crashes on some html files)

Added popup notifying user of failed download if the pressed the download button (automatic downloads don't throw popups)

Joris Guisson committed changes in /trunk/extragear/network/ktorrent:

Added HTTP tracker scraping

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 4 more) Revision 582527

User Interface

Nuno Fernades Pinheiro committed changes in /trunk/playground/artwork/Oxygen/theme/svg/actions:

new icons

Nuno Fernades Pinheiro committed changes in /trunk/playground/artwork/Oxygen/theme/svg/actions:

new icons

Utilities

Will Stephenson committed changes in /branches/work/suse_kickoff/kicker:

Draw buttons correctly when in top down mode and detect the orientation at startup automatically. I won't work on run time alteration of orientation right now, pending upcoming rendering changes.

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 580801
Max Howell committed changes in /trunk/extragear/utils/filelight:

Adding the amarok crash handler to Filelight as it works a treat and I'd be interested by the results.

Also commiting my release documentation so next time I don't get stuck.

Diffs: 1, 2, 3, 4, 5, 6 Revision 581019
Jaison Lee committed changes in /trunk/KDE/kdeutils/kjots:

After far more pain and hardship than I ever thought it would require, and pretty much the entirety of the past two weekends, I've finished refactoring the entire find/replace system for KJots. It now supports every kind of find/replace option generally available, including regexps and placeholders during replaces. And yes, you can also recursively search and replace all pages in the bookshelf, with or without a cute little Replace/Skip/All/Cancel dialog box if you wish to have one.

Diffs: 1, 2, 3 Revision 581033
Eric Coquelle committed changes in /trunk/kdenonbeta/karchiver:

Added support for comments in RAR archives Added support for comments in RAR archives & improved the Archive Infos dialog box improved the Archive Infos dialog box

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 14 more) Revision 581484
Eric Coquelle committed changes in /trunk/kdenonbeta/karchiver:

Added support fir .sit and .hqx archives

Alexander Wiedenbruch committed changes in /branches/KDE/3.5/kdeutils/superkaramba/src:

Allow themes to get the selected KDE user language

Diffs: 1, 2, 3 Revision 581587
Eric Coquelle committed changes in /trunk/kdenonbeta/karchiver:

Added support of comments for Zip archives

Eric Coquelle committed changes in /trunk/kdenonbeta/karchiver:

Added full support of HQX archives

Diffs: 1, 2, 3 Revision 582152
Jason Kivlighn committed changes in /trunk/extragear/utils/krecipes:

Localization update to allow *all* base data to be localized.

Instead of putting all this base data inside of a header file in the form of an array, they are loaded from a data file at runtime based on locale. There are four files to translate: property-data-LANG.txt, ingredient-data-LANG.txt, unit-data-LANG.txt, and prep-data-LANG.txt.

Also, the user gets a message if they ask to import nutrient data and there is no localized data for their language. They can continue, using English data, or decide not to do the import.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 12 more) Revision 582244

Games

Dmitry Suzdalev committed changes in /branches/work/kreversi_rewrite:

Now black & white chips may be used instead of colored ones.
You can even change this on the fly! ;)

Few crash fixes also.

You know what? It's getting near the end.
(Just joking - there's no end in software development ;) )

I'm in the mood of writing an overview of what to be done:

- Add number of chips statistics to status bar
- Add the moves history widget.
- Nice messagebox with stats at the end of the game
- HighScoreswhite chips may be used instead of colored ones.
You can even change this on the fly! ;)

Few crash fixes also.

You know what? It's getting near the end.
(Just joking - there's no end in software development ;) )

I'm in the mood of writing an overview of what to be done:

- Add number of chips statistics to status bar
- Add the moves history widget.
- Nice messagebox with stats at the end of the game
- HighScores

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 581275
Dmitry Suzdalev committed changes in /branches/work/kreversi_rewrite:

And here it is: Moves History Widget. Welcome! :)

Diffs: 1, 2, 3, 4, 5, 6 Revision 581378
Dmitry Suzdalev committed changes in /branches/work/kreversi_rewrite:

Initial highscores support (adapted from old sources)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 581722

Other

Benoît Jacob committed changes in /trunk/kdesupport/eigen:

Initial checkin for the fixed-size vector and matrix classes and for instantiations.cpp.
More reorganization.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 582189

Optimization

KDE Base

Andreas Kling committed changes in /branches/KDE/3.5/kdebase/kioslave/media/mediamanager:

Don't keep a timer firing every 500ms if there's nothing to poll for.

Multimedia

Mark Kretschmann committed changes in /trunk/extragear/multimedia/amarok/src:

Speed up playlist XML writing approximately 10 times. This patch considerably improves Amarok's overall performance with big playlists and also cuts down on shutdown time.

Details:
Problem was that Playlist::saveXML() would invoke methods like MetaBundle::score(), which accessed the database in many cases. This database access was extremely slow, so we circumvent it and use cached values instead.

Another optimization is that we now write the XML data to a string before writing to the target file.

Diffs: 1, 2, 3 Revision 580555

Other

KDE Base

Scott Wheeler committed changes in /branches/work/kde4/playground/base/tenor:

Moving some stuff over from another local project. There are still a couple of functions that I didn't convert and I haven't actually tested it, but moving towards synching with my local stuff.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision 581026
Sebastian Kügler committed changes in /trunk/playground/base/guidance/powermanager/guidance-power-manager.p:

powermanager:
* KUniqueApplication breaks dcop connectivity for no obvious reason
Work around it in an ugly way as a revenge and an exercise for others.

Leo Savernik committed changes in /trunk/tests/katetests:

Welcome, Kate regression test suite.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 78 more) Revision 581913
Leo Savernik committed changes in /branches/KDE/3.5/kdelibs/kate/part:

Introducing automatic regression testing for kate.

I lifted the regression tester from khtml, so you'll still find many debris from the conversion.

Conceptionally, it works like this:
- start with regression directory
- read testcases under directory tests/
- execute script on each test
- compare result with template under baseline/
- if both are equal, consider test as passed

The tool works fully automatically. Additional testcases can be added easily by providing an initial testcase under tests/ and an accompanying script containing the statements as well as a proposed result template under baseline.

Shortcomings:
- Testcase execution is *very* slow.
- Some results are not deterministic. I.e. if you invoke ./testkateregression indent/csmart/openpar1.txt it will fail. If you run it in batch, it will pass.
- Currently, there are only testcases for the c-style indenter.

Leo Savernik committed changes in /branches/KDE/3.5/kdelibs/kate/part/Makefile.am:

Integrated regression testing into buildsystem.
Now you can invoke

make check

and have kate automatically regression-tested.

Office

Bart Coppens committed changes in /branches/koffice/1.6/koffice/krita/plugins/filters:

All of these don't work sufficiently (IMO) with the adjustment layers. So disable them. I'm pretty sad about some of them (oilpaint, wave), but as long as they don't work, they'll be disabled. If people have suggestions on fixing any of them, feel free to do so, I'd be very happy to see them reappear.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 6 more) Revision 581621

Multimedia

Joe Rabinoff committed changes in /trunk/extragear/multimedia/amarok/src:

The incremental collection scanner, in conjunction with the AFT code, now causes the CollectionDB::fileDeleted() signal to be emitted when it detects files that were removed but not moved. This functionality was added to make it easier to add AFT support to the Moodbar; also, Jeff may use it in the Playlist. The API may change a bit when I actually write thef AFT+moodbar code, so don't use it before then.

Diffs: 1, 2, 3, 4 Revision 581681
Seb Ruiz committed changes in /trunk/extragear/multimedia/amarok/src/mediadevice:

Put in the infrastructure to allow the user to decide whether to broadcast a daap server. This complies with the popular "no-open-ports" policy that many distributions (eg ubuntu) are now enforcing.

We need to make these configuration options much more visible, not in this poor config dialog.

Diffs: 1, 2, 3 Revision 582144

Networking Tools

Joris Guisson committed changes in /trunk/extragear/network/ktorrent:

Major redesign of tracker handling, this is an overview of the changes:
- Everybody wishing to provide potential peers to a torrent should derive from PeerSource
- The AnnounceList class has been scrapped,
- To replace it there is a PeerSourceManager class, this manages the trackers and the custom PeerSources. PeerSourceManager is derived from
TrackersList so the page on the infowidget pretty much works the same.
- Status field of the tracker will now add more detailed error messages
- If a tracker sends a failure reason, we will now show this
- If a tracker cannot be reached anymore, the switching will be properly handled (i.e. a started event is sent)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 33 more) Revision 580877

Utilities

Max Howell committed changes in /trunk/extragear/utils/filelight:

Made all the fixes suggested at www.englishbreakfastnetwork.org, a fantastic resource that I only discovered thanks to Google. Whoever it is who runs this place, I thank you! And you should market the service some more..

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 30 more) Revision 581609