Issue 149

8th February 2009 by Danny Allen

This Week...

Amarok 2 reached cue sheet feature parity with Amarok 1.4, a first draft of a playlist layout config editor, and various other improvements across Amarok. C# bindings for Phonon. Beginnings of an effort to deliver a working debugger for KDevelop 4.0. Write support added to kio_svn. A Kross scripting backend, and Postgres support is added to Kamala. An initial D-Bus interface added to parts of Marble. Further development work on KHotKeys and the LionMail widget. Text-to-speech support added to the Translatoid Plasmoid, and a new Plasma widget: Fortunoid (fortune quotes). Continued improvements to Sonnet and KWin. Progress on the Virtuoso backend for NEPOMUK. Basic support for importing for SVG patterns in Karbon. Work on porting KControl and Konversation to KDE 4. Initial import of the "Peg-E" game, a "Google data Akonadi resource", KDE 4 versions of the SLP KIO-slave and Filelight, and "plasma2jolie". The Nuvola iconset moves back to kdeartwork from an unmaintained state. Eigen 2.0.0 is tagged for release.
Michael Pyne tells the story of a recent potential security issue in KDE, and steps taken to remedy it:
First off, before saying how what I'm doing fixes the problem, we have to determine what exactly the problem is.

Recently a blogger who goes by the name "foobar" posted an article called "How to write a Linux virus in 5 easy steps", discussing vulnerabilities with the current handling of .desktop files. .desktop files are used in KDE, GNOME, and other environments complying with the freedesktop.org Desktop Entry Specification. They handle such diverse tasks as application launching, internet protocol handlers for KDE, desktop and panel/taskbar icons, and even plugins. These files provide some information regarding other files. For example, KDE executable files don't have icons embedded within them, so the information on what icon to use is contained in the associated .desktop file.

.desktop files are used for many things but one use in particular is of concern: launching applications. .desktop files can be used to launch a program, which is normally used to good purpose. But what if someone were to send you a .desktop file with a nice KSirtet icon that ran a malicious program and told you it was a game? Would you run it by mistake? Would a new Linux user run it by mistake?

The traditional defense against this has been requiring executable programs on POSIX systems to have an "executable" attribute set before the system would run it. .desktop files have never used the "executable" attribute, and desktop environments including KDE and GNOME do not enforce that rule. This was actually discussed on a shared desktop development list in 2006 but no action came of it. Now I figured it was time to change that.

So, the idea here is to bring .desktop file security up to the same level of other POSIX executables. This won't defend a user who blindly follows instructions from getting cracked, just as executable bits don't defend against that for malicious Perl or Python scripts.

My work has been in several areas:
  1. Requiring .desktop files to be executable before they launch a program.
  2. Changing KDE to make new Link to Applications correctly executable.
  3. Drafting ideas to allow current KDE users to safely upgrade.
  4. Drafting ideas to allow current .desktop files to be fixed.
1 and 2 are easy enough. What was harder was thinking about how to add security without breaking existing systems. The result was to add a couple of exceptions to allow launching programs:
  • If the .desktop file is owned by root, allow. This exception covers most desktop environment files (such as a KDE installation to /usr). This is possible since a user unwittingly saving a trojan .desktop file won't be able to save it as root without additional action. (Remember, we're only defending against "click-through" cracking).
  • If the .desktop file is installed in a standard KDE location, allow. This is required to allow users to install KDE to their home directory without root permissions. This is allowable because although it is possible to tell a user to navigate to a certain spot and save their file, users competent enough to run their own KDE in ~/ should not fall for it. Users not running a self-KDE will not be able to save into the KDE installation directory without additional action.
The "standard KDE location" used to be a more fine-grained exception protecting the standard KDE application and service directories, and protecting the shared XDG application store. The initial implementation left out an exception required for autostarted services however, and so the exception was broaded out to .desktop files installed for KDE (XDG applications will still be allowed).

There is still the issue of what to do with custom launchers already created. After enabling the security there is no guaranteed way for KDE to tell apart user-created shortcuts from user-downloaded trojans. So, it was decided to add a method to explain what's going on and automatically fix the shortcut if necessary. (Other methods explored included an upgrade script which would "+x" (add the executable bit to) detected .desktop files automatically, but doing a thourough search would take awhile and have to start from /, not $HOME to accurately detect them all. In addition if the user already had trojans they'd be marked executable too!).

The dialog box used has gone through a few revisions:


It was recognized that this was not optimal however. The text was so long that the user was likely to simply click "Continue" and be done with it. Finally after some discussion with Celeste Lyn Paul and Tom Albers, Tom managed to reach into the root of the issue (does the user think they're running a program or not?), which led to the following mockup, which will probably be much closer to the final product after the design is worked up:


This will hopefully allow the user the opportunity to make a more informed decision without feeling they need to simply click "Continue", without breaking all of their existing program shortcuts. If the user chooses to continue then the service is automatically made executable to prevent the dialog from popping up again for the same .desktop file.

There is more to do of course. Alexander Larsson is working on the same issue with GNOME and has implemented code to show a generic icon and the actual filename for .desktop files that are not executable in Nautilus, and I'll probably see to it that the same thing happens in KDE to prevent deceptive .desktop files from causing confusion or damage. In addition, testing still needs to be done to make sure nothing else was inadvertently broken by adding more security. But this is a good start to restoring customary levels of security to KDE users.

Statistics

Commits 3554 by 288 developers, 8411 lines modified, 2711 new files
Open Bugs 16875
Open Wishes 14940
Bugs Opened 806 in the last 7 days
Bugs Closed 612 in the last 7 days

Commit Summary

Module Commits
/trunk/l10n-kde4
746
 
/trunk/KDE
745
 
/branches/stable
418
 
/trunk/extragear
342
 
/trunk/playground
323
 
/branches/work
305
 
/branches/KDE
160
 
/trunk/l10n-support
120
 
/trunk/koffice
91
 
/trunk/kdesupport
89
 
Lines Developer Commits
232
 
Pino Toscano
100
 
86
 
Chusslove Illich
81
 
178
 
Gilles Caulier
79
 
157
 
Thomas McGuire
78
 
32
 
Cyrille Berger Skott
56
 
113
 
Nikolaj Hald Nielsen
52
 
51
 
Kevin Patrick Scannell
51
 
113
 
David Faure
48
 
67
 
Patrick Spendrin
48
 
97
 
Davide Bettio
47
 

Internationalization (i18n) Status

Language Percentage Complete
Ukrainian (uk)
100%
 
Portuguese (pt)
100%
 
Low Saxon (nds)
99%
 
Swedish (sv)
99%
 
Galician (gl)
97%
 
Greek (el)
96%
 
Estonian (et)
94%
 
Dutch (nl)
94%
 
Brazilian Portuguese (pt_BR)
93%
 
German (de)
92%
 

Bug Killers and Buzz

Person Bugs Closed
Darío Andrés
101
 
Will Stephenson
55
 
Pino Toscano
25
 
Martin Gräßlin
20
 
Andreas Pakulat
20
 
Mark Kretschmann
19
 
Maks Orlovich
17
 
Christian Ehrlicher
16
 
Kevin Krammer
14
 
Andreas Hartmetz
13
 
Program Buzz
Amarok
9815
 
K3B
4875
 
KMail
4840
 
Kopete
3320
 
KDevelop
2595
 
Plasma
2489
 
Kaffeine
2037
 
Kate
2001
 
Solid
1873
 
Kontact
1790
 
Person Buzz
David Faure
2110
 
Stephan Kulow
1749
 
Aaron J. Seigo
1390
 
Torsten Rahn
1367
 
Jonathan Riddell
1132
 
Laurent Montel
1030
 
Stephan Binner
782
 
Thiago Macieira
668
 
Zack Rusin
638
 
Adriaan de Groot
631
 

Commit Countries

Commit Demographics

Sex

Age

Contents

  Bug Fixes Features Optimization Security Other

Accessibility

     

Development Tools

  []    

Educational

  []    []

Graphics

[] []    []

KDE Base

[] [] []   []

KDE-PIM

[] []    []

Office

  []    []

Konqueror

     

Multimedia

[] []    []

Networking Tools

  []    []

User Interface

  [] []   []

Utilities

[] []    []

Games

[] []    []

Other

  []    []

There are 138 selections this week

Bug Fixes

Graphics

Andi Clemens committed changes in /trunk/extragear/graphics/digikam:

Fix saveViewState() for folderviews with CheckListItems, like TAlbumListView and TagFilterView.

With current implementation, we are not able to have one common loadViewState() and saveViewState() method, so we need to re-implement them in TAlbumListView and TagFilterView. This is not nice because we have duplicate code now, but since we are going to switch to ModelView concept next release, it would be a waste of time to create a new common interface or abstract class now.

We can not call virtual methods in constructors / destructors, so every view inherited from FolderView needs to call saveViewState() in its own destructor instead.

KDE Base

Will Stephenson committed changes in /trunk/playground/base/plasma/applets/networkmanager:

Make openVPN + x509 + password work again. Was sending the value of the settings "secrets" field as a 3rd map layer keyed to "secrets" like every other setting. In fact the value of the vpn settings' VpnSecrets members is sent as is in the 'vpn' key of the 2nd layer map.

No thanks to the undocumented sh1t that is the NM settings interface.

Diffs: 1, 2, 3, 4, 5, 6 Revision 919940
Shaun Reich committed changes in /trunk/KDE/kdebase/apps/dolphin/src/settings/navigationsettingspage.cpp:

Changed group config reference pertaining to the "kcminputrc" file. The Navigation page setting of whether to use single/double click navigation now saves itself properly, instead of insisting on using single-click. :)

P.S. Bear in mind that the setting still does not apply itself until a restart of Dolphin.

David Faure committed changes in /trunk/KDE/kdelibs/kdeui/widgets:

Better fix for 65877, which doesn't require disabling "Tab means Down" in the completion box (#167135 says some people like that :-).

I think I found a solution that makes everyone happy: if there's only one entry then Tab autoselects the first entry and completes again, allowing to use it like a shell for local files:

/hom<tab>dfau<tab>Docu<tab> for /home/dfaure/Documents.

If there's more than one entry, then Tab does "Down" as before.

John Tapsell committed changes in /trunk/KDE/kdebase/workspace/ksysguard/gui:

Add a crude versioning system so that we don't restore the old graph settings for the new graph widget

Dario Freddi committed changes in /trunk/KDE/kdebase/workspace:

Applying Jacopo's patch, and removing generation of (now) useless kscreensaver interface.
This should solve every kind of problems with DPMS. I will backport to 4.2 soon

Maks Orlovich committed changes in /branches/KDE/4.2/kdelibs:

Google maps seems to wants the DOM objects' prototypes' constructor properties to point to something other than the default Object constructor. Make them point to the Node pseudoctor for now. Probably want to give it more distinct values later on, but that's better done w/autogen.

Maks Orlovich committed changes in /branches/KDE/4.2/kdelibs/khtml:

Some fixes for our stylesheets collection to fix <a href="http://www.webtoolkit.eu/wt:">http://www.webtoolkit.eu/wt:</a>;

1) Make sure that we create a stylesheet object even for empty <style> elements
2) Keep track of dirtiness of stylesheets list separately from that of the style selector, and make sure to rebuild it if the collection is accessed. While I am at it, instead of having confusingly similarly named recalcStyleSelector and rebuildStyleSelector, have rebuildStyleSelector and rebuildStyleSheetList, the difference between which should be evident. Also make them private.
(Though updateStyleSelector is not renamed, so things aren't 100% clear, still)

KDE-PIM

Thomas McGuire committed changes in /trunk/KDE/kdepim/kmail:

setTooltip -> setHelpText

This makes the status tips actually appear in the status bar.
However, this doesn't work in KMail standalone (or in KOrganizer standalone), anybody got an idea why?

You'll need an up-to-date kdelibs for this.

Diffs: 1, 2, 3, 4, 5, 6 Revision 919756

Multimedia

Mark Kretschmann committed changes in /trunk/extragear/multimedia/amarok/src/context/engines/wikipedia/WikipediaEngine.cpp:

Forward-port NHN's Wikipedia parsing fix to trunk. This seems to fix the layout issues with the Wikipedia Applet.
PS: Screen-scraping sucks ass. Is there no API?

Michael Pyne committed changes in /trunk/KDE/kdemultimedia/juk:

Two bugfixes:

1. Don't allow JuK to shutdown until Phonon has definitely returned to StoppedState to prevent some backends from crashing on shutdown.

2. Delay system tray creation until after the collection list has been loaded from the cache. If we're trying to create the system tray before this process then half the time we end up freezing all of Plasma until the cache finally loads, which is especially noticable on initial KDE startup.

I will give this a few days of testing in /trunk and will then probably backport both.

Diffs: 1, 2, 3, 4, 5 Revision 921339
Mark Kretschmann committed changes in /trunk/extragear/multimedia/amarok/src/widgets:

Fix one crash on exit, caused by double-freeing QWidgets stored in a private d-pointer class of another QWidget.

Dear Amarok devs, please don't _ever_ use d-pointers in QWidgets. Here is an article that explains the dangers of doing so:

<a href="http://www.purinchu.net/wp/2009/02/04/another-programming-tidbit/">http://www.purinchu.net/wp/2009/02/04/another-programming-tidbit/</a>;

Jeff Mitchell committed changes in /trunk/extragear/multimedia/amarok/src/context/popupdropper/libpud:

This fixes the SVGs being wonky sized. In fact, the SVGs now scale to the item, instead of the item scaling to the SVGs.

Still TODO: fix the hover bar.

Utilities

Darío Andrés Rodríguez committed changes in /branches/KDE/4.2/kdeutils/kdf/mntconfig.cpp:

Don't blame the user on the first icon load (the _mount/_umount naming scheme is only needed when the icon is set by the user)
This is already fixed in my rework of KDF/KwikDisk for 4.3
Backporting the small fix to 4.2 branch

Games

Mathias Kraus committed changes in /trunk/playground/games/granatier/src:

the player doesn't moves into walls anymore and moves smooth around corners.each direction is managed separately.

it should be possible to merge it into at least right/left and up/down but after three days hacking I'm happy it works without bugs.

will do it sometime else.

Diffs: 1, 2, 3, 4 Revision 919943

Features

Development Tools

Arno Rehn committed changes in /trunk/KDE/kdebindings:

* Add Phonon C# bindings.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 21 more) Revision 919441
Aleix Pol Gonzalez committed changes in /trunk/playground/devtools/kdevelop4-extra-plugins/qthelp:

first kdevelop documentation provider which will have QtHelp support. Does not do anything by now.

Diffs: 1, 2, 3, 4, 5, 6 Revision 919464
Nick Shaforostoff committed changes in /trunk/KDE/kdesdk/lokalize/src:

implement note editing for gettext po format.
years ago custom comments were being stripped during msgmerge (ran by scripty).
if I'm not misktaken, this is no more the case.

also wrap note setting into qundocommand to have edit history

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 20 more) Revision 919920
Hamish Rodda committed changes in /trunk/playground/devtools/kdevelop4-extra-plugins/debugger:

Beginning of an effort to deliver a working debugger for kdevelop 4.0 (see mailing list post).

First step: initial porting, compiles but 100% untested.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 11 more) Revision 920538
Gael Courcelle committed changes in /branches/work/kbugbuster-isi/KBugBuster-v2:

Last version of Central Widget (Final Version ?)

Diffs: 1, 2, 3, 4, 5, 6 Revision 920669
Mickael Marchand committed changes in /trunk/KDE/kdesdk/kioslave/svn:

Here comes write support for kio_svn (taken from "svnput" hack)

* big fat WARNING *

ok so now you can do:
kwrite svn+ssh://user@host/home/user/myrepos/myfile.txt
and when you save it creates automatically a commit for you.

BUT:
you really can break other people work when working in team, there is NO single safety check to ensure you are not erasing a just-committed version by someone else. So use with real care.

on the other hand, it's just great for your own small repository where you write some book/article/small code.

for some reason I could not understand, kwrite keeps saving remotely even when the file has not been changed (I mean press save twice, it will actually do 2 commits to the repository ... I don't know what I missed there, if anybody knows, I am interested to find a way to stop that behavior)

PS: please don't test with KDE's SVN or I will be hated ;)

Educational

Torsten Rahn committed changes in /trunk/KDE/kdeedu/marble/src/lib:

- Adding an initial D-BUS interface for MarbleWidget and MarbleMap as requested by Andy Allan.

Diffs: 1, 2, 3, 4 Revision 921896

Graphics

Angelo Naselli committed changes in /trunk/extragear/graphics/digikam:

Added print management to ShowFoto.
Don't need to reinvent the wheel, so i used gwenview code - that is a great improvement of my old one :)

Thanks Aurelien

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 4 more) Revision 921944
Mathias Soeken committed changes in /trunk/KDE/kdegraphics/kruler:

With Qt 4.5 we can create real ARGB translucent widgets.
Now kruler can be made transparent, but with painting the scale fully opaque.
This makes it more the ruler feeling!

Diffs: 1, 2, 3 Revision 922751

KDE Base

Sebastian Kügler committed changes in /trunk/playground/base/plasma/applets/lionmail/emailmessage:

Change appearance based on available space

By resizing the applet, it'll take advantage of extra space and displaymore information, such as recipients, and the body of the message.

Diffs: 1, 2, 3 Revision 919472
Lucas Murray committed changes in /trunk/KDE/kdebase/workspace/kwin:

Extracted mouse polling out of the composite timer to allow effects to detect mouse movement and modifier key changes even when KWin is idle.

As the track mouse effect requires polling to always be active disablingit by default to prevent wasting CPU usage in the default install.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 7 more) Revision 919711
Thomas Schildknecht committed changes in /trunk/playground/base/plasma/applets/activewindowcontrol:

initial commit - still needs some work, especially for the svg... feel free to help me :)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision 919975
Kurt Hindenburg committed changes in /trunk/KDE/kdebase/apps/konsole/src:

Add checkbox to allow Scrollback->Scrollback Options dialog to save to current profile.

Michael Jansen committed changes in /trunk/KDE/kdebase/workspace/khotkeys:

Initial version of the window trigger and condition infrastructure

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 34 more) Revision 920449
Michael Jansen committed changes in /trunk/KDE/kdebase/workspace/khotkeys:

Fully implemented window event trigger.
Don't know how good the work but i guess i will know in time -> b.k.o.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 920451
Michael Jansen committed changes in /trunk/KDE/kdebase/workspace/khotkeys:

Implement conditions on directories (for now)

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 27 more) Revision 920454
Michael Jansen committed changes in /trunk/KDE/kdebase/workspace/khotkeys:

Implement keyboard input actions.
At least the gui.

The ShortcutsHandler::send_macro_key() method has to beimplemented to make it working again.
Will try that later.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 5 more) Revision 920455
Michael Jansen committed changes in /trunk/KDE/kdebase/workspace/khotkeys:

Implement displaying and editing of gestures.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 13 more) Revision 920456
Will Stephenson committed changes in /trunk/playground/base/plasma/applets/networkmanager/applet:

Show a 'hide' link on the VPN extender so that the user can easily hide it if not needed on first run.

Eventually I want the VPN extender to autohide when there are no VPN connections but that is expensive to do with current ConnectionLists.

Diffs: 1, 2, 3, 4 Revision 920459
Sebastian Kügler committed changes in /trunk/playground/base/plasma/dataengines/akonadi:

Fetch a list of collections from Akonadi

The dataengine now offers the collections from Akonadi by name, id.

This way, an applet can offer collections to choose from (that's actually next up in lionmail).

Sebastian Kügler committed changes in /trunk/playground/base/plasma/applets/lionmail:

We can now request an email folder

Updating while running doesn't work yet, but shouldn't be hard to do now we have the basics in place.
Note that this should probably be moved into the EmailExtender.

Lucas Murray committed changes in /branches/KDE/4.2/kdebase/workspace/kwin/effects:

Backport: Use the opacity of the window that a taskbar thumbnail is displayed on when displaying the thumbnail.

This allows thumbnails to fade in and out with the Plasma tooltip for example instead of always being opaque.

Beat Wolf committed changes in /trunk/playground/base/plasma/wallpapers:

Interesting new wallpaper plugin, with artificial life

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 7 more) Revision 920632
Daniel Nicoletti committed changes in /trunk/extragear/base/PolicyKit-kde/authorization:

Created a new model from scratch, now everything works :D

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 8 more) Revision 920685
Sacha Schutz committed changes in /trunk/playground/base/plasma/applets/translatoid:

Add TTS support! ( voice to speak ).

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 920843
Marco Martin committed changes in /trunk/KDE/kdelibs/plasma/widgets:

ability to hide the tabbar, now can be used like it's a QStackedWidget :)

Sacha Schutz committed changes in /trunk/playground/base/plasma/applets/fortunoid:

add new plasmoid that shows fortune's quote.

Diffs: 1, 2, 3, 4, 5 Revision 921324
Sacha Schutz committed changes in /trunk/playground/base/plasma/applets/fortunoid:

Add fortunoid settings... ( not Kconfigured yet)
Add transparency, arguments, delay, font option!

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision 921359
Jakub Stachowski committed changes in /branches/work/sonnet-multilang/kdecore:

Beginnings of tokenizer API

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision 921375
Martin Gräßlin committed changes in /trunk/KDE/kdebase/workspace/kwin/effects/cube:

Option to invert mouse and cursor keys in cube mode.

Martin Gräßlin committed changes in /trunk/KDE/kdebase/workspace/kwin/effects/cube:

Option to not animate the panels during desktop switching animation.

Martin Gräßlin committed changes in /trunk/KDE/kdebase/workspace/kwin:

Adding mouse wheel support to effects.
First one to use is cube effect.

Diffs: 1, 2, 3 Revision 922031
Lucas Murray committed changes in /trunk/KDE/kdebase/workspace/kwin:

Added support for inter-effect communication through the use of proxy classes.
Example code has been added to present windows and desktop grid, if this code is not to be used by KDE 4.3 it should be removed and added to a test effect instead.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Revision 922039
Lucas Murray committed changes in /trunk/KDE/kdebase/workspace/kwin:

Raise electric border windows when an effect mouse input window iscreated to allow effects to be toggled by active screen edges.

Diffs: 1, 2, 3, 4, 5, 6 Revision 922121
Artur Duque de Souza committed changes in /trunk/KDE/kdeplasma-addons/applets/pastebin/pastebin.cpp:

Make drop of text files also work on pastebin

So you can drag & drop a file from dolphin and voila!

My first commit from tokamak II ;)

Martin Gräßlin committed changes in /trunk/KDE/kdebase/workspace/kwin:

Split cube mode and animation of desktop switching in separate effects: say hello to CubeSlide effect.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 6 more) Revision 922342
Lucas Murray committed changes in /trunk/KDE/kdebase/workspace/kwin/effects/diminactive:

Add slight animations to the dim inactive effect.
Also don't dim windows when a fullscreen effect is active, fixes dimmed windows during coverswitch.

Richard J. Moore committed changes in /trunk/playground/base/plasma/applets/crystal:

- Improve the mediawiki api. You can now set a timeout and cancel requests.
- Now autodetects the base of the wiki correctly so it can form urls as well as just page titles.

Sebastian Kügler committed changes in /trunk/playground/base/plasma/applets/crystal:

Update Crystal to work with Rich's updated MediaWiki class

We're now actually getting results from userbase, techbase and wikipedia.

KDE-PIM

Dmitry Ivanov committed changes in /trunk/playground/pim/krss:

Nepomuk tag provider implementation:
- tested manually and basically works
- as Nepomuk lacks support for resource monitoring the provider can't detect when a tag has been added/modified/deleted. It can only detect changes made by the application itself.
- it allocates a new Nepomuk resource for a feed/item when a Nepomuk tag gets attached to this feed/item
- it breaks FeedListModel because the signals from Akonadi and the Nepomuk tag provider (when deleting a tag) arrive unordered (the fix is coming)

Not recommended until Nepomuk gets support for resource monitoring.
Bugs and spaghetti code included.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 4 more) Revision 919891
Frank Osterfeld committed changes in /trunk/playground/pim/krss:

Add client-side ImportJob to import an OPML document from any URL

Diffs: 1, 2, 3, 4, 5, 6 Revision 919916
Julien Bertolini committed changes in /branches/work/nokia-pim-suite/trunk/calendar/views:

Journal can be created (save button works)

Diffs: 1, 2, 3, 4 Revision 921075

Office

Lukáš Tvrdý committed changes in /trunk/koffice/krita/plugins/paintops/dynadraw:

Added support for drawing line strips.
GUI is quite ugly.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 919587
Cyrille Berger Skott committed changes in /trunk/koffice/krita/image/metadata:

implement parsing of .schema files

Diffs: 1, 2, 3, 4 Revision 919938
Jan Hambrecht committed changes in /trunk/koffice/filters/karbon/svg:

basic support for importing for svg patterns

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 919988
Jan Hambrecht committed changes in /trunk/koffice/filters/karbon/svg:

implemented pattern fill export so we can roundtrip pattern fills

Multimedia

Casey Link committed changes in /trunk/extragear/multimedia/amarok/src:

Initial Qt4 port of the CueFile feature from the 1.4 series. Doesn't do much right now except compile.

Diffs: 1, 2, 3 Revision 919491
Casey Link committed changes in /trunk/extragear/multimedia/amarok/src/meta/cue:

Introduced the private pointer model for MetaCue.
At this point amarok 2 is feature complete cue-sheet-wise with amarok 1.4.

Style fixes

Diffs: 1, 2, 3 Revision 919494
Casey Link committed changes in /trunk/extragear/multimedia/amarok/src/meta/cue:

Cue Tracks now have the TimecodeLoadCapability, which means all the cue points show up as timecodes in the progress bar.

This is the first stepbeyond the basic cue support that existed in Amarok 1.4.

Woo!

Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src:

The bulk of a pretty big refactoring, moving all the file layout specific enums and methods into the dialog ( perhaps it should really go into a new class to keep ui and logic a bit more separated... ).

This allows me to start using the Tokens, and related classes for a new playlist layout editor.

Needs cleanup and regression testing/fixing

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 919578
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src:

First draft of a playlist layout config editor.
It is currently working, but missing a lot of features suppored by the playlst rendering, such as individual element sizes and layouts, so it is not super usable yet.

I also cannot save layouts, but it will load the setup of the selected layout (click the "edit" icon in the layout selection combobox to activate it) and pressing the preview button will make the playlist display the currently defined layout.

Lots of work to be done on this one still, so no bug reports just yet please!

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 919623
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src/playlist:

use KRatingPainter to paint a pretty star rating in the playlist instead of showing the rating numerically.

Now how to actually edit these ratings in the playlist (if we are going to allow this) is a bit tricky.

Diffs: 1, 2, 3, 4 Revision 920023
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src:

First (well, second, but the first one working well enough to commit) attempt at a gui for setting the individual sizes of elements in the playlist editor.

If left at 0 (the default) elements will auto size.

When dragging the slider, it will not allow the total width of all items to go above 100%, so it might be necessary to make another element smaller before making a gven element larger.

Diffs: 1, 2, 3, 4 Revision 920055
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src:

Add basic save support to the Playlist::LayoutManager. For now, pressing Ok will save the current layouts as "userTest". Now comes the hard part with figuring out how to distinguish between default ( non editable ) and user layouts and how to distinquish between editing an exsting layout an creating a new one, and possibly cloning a default one if only slight modifications are desired. Also add the year token!

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 920333
Sven Krohlas committed changes in /trunk/extragear/multimedia/amarok/playground/src/scripts/free_music_charts_service:

Voting support.
YEEEEEAAH! :)

Diffs: 1, 2, 3 Revision 920443
Bart Cerneels committed changes in /trunk/extragear/multimedia/amarok/src:

Implement rename for groups.

This was very difficult since I turn a tree structure into a flat model and back to a tree model in the proxy.I might turn SQL playlists into a flat structure by removing the playlist_groups table and adding the column label to playlists, just like in SQL podcasts.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 920820
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src:

Add a simple vertical divider that can be added to playlist layouts.
I need about a ton of new custom icons by now...

Diffs: 1, 2, 3, 4, 5 Revision 920985
Bart Cerneels committed changes in /trunk/extragear/multimedia/amarok/src/playlist/view/listview:

Add PUD to The Playlist.
By making the PUD contain all the actions that would otherwise be only accesible from the contextmenu it becomes a perfect alternative for touchscreens.

This will also allow dragging from The Playlist with the convenience of the PUD.

This is far from a perfect commit.

I will attempt to fix what is broken and cleanup later this week.

The Playlist is not really my speciality so might need some help.

Leo Franchi committed changes in /trunk/extragear/multimedia/amarok/src/context:

initial work on supporting scripted applets.
added an "install amarok script" button for TESTING PURPOSES ONLY until we get a GHNS dialog up.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 4 more) Revision 922869
Jesse Lee Zamora committed changes in /trunk/playground/multimedia/lintv:

This enhances the input selection in LinTV.

* When mplayer starts, it detects which inputs are avaibile on the current TV tuner.
* When LinTV starts, it selects the last selected input when LinTV was closed.

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

Networking Tools

Mehrdad Momeny committed changes in /trunk/playground/network/choqok/src:

Support for TightURL (a free shortening service) implemented.

Diffs: 1, 2, 3, 4 Revision 920703
Dariusz Mikulski committed changes in /branches/work/kopete/kopete-tpqt4/protocols/telepathy:

Rewriting all Telepathy Account

Diffs: 1, 2, 3 Revision 922271
Joris Guisson committed changes in /trunk/extragear/network/ktorrent:

WebSeeds can now be disabled and enabled individually and globally

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

User Interface

Christoph Feck committed changes in /trunk/playground/artwork/dekorator:

Initial work on new theme selector (not enabled yet)

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

Utilities

David Johnson committed changes in /trunk/KDE/kdeutils/kcalc:

Add configure option to display two's complement or not for non-decimal numbers.

Diffs: 1, 2, 3, 4 Revision 919487
Rafał Rzepecki committed changes in /trunk/KDE/kdeutils/ark/plugins/unace:

ACE archive listing.

Games

Ian Wadham committed changes in /branches/work/kgoldrunner/src:

Implement a hero who runs, under mouse or keyboard control, and collects gold.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 12 more) Revision 919490
Tadeusz Andrzej Kadłubowski committed changes in /trunk/playground/games/magazynier:

Implementing KGameTheme support

Diffs: 1, 2, 3, 4, 5, 6 Revision 919863
Stanislas Marquis committed changes in /trunk/playground/games/kamala:

Added some Kross scripting backend. Added base chart.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 9 more) Revision 920152
Stanislas Marquis committed changes in /trunk/playground/games/kamala/src:

Added postgres support.

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

Other

Keir Mierle committed changes in /trunk/kdesupport/eigen2:

Add full pivoting to LDLT decomposition.

Diffs: 1, 2, 3 Revision 920732
Thomas Goettlicher committed changes in /branches/work/~tpatzig/activitydiary/src:

added rudimentary support for HRM files

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 922279
Kevin Ottens committed changes in /branches/work/~ervin/sodep/tests:

Provide a more complete automated test which basically does the following:
- starts metaservice
- loads two services
- call them and check the replies
- unloads the services
- stop metaservice

Diffs: 1, 2, 3 Revision 922830

Optimization

KDE Base

Germain Garand committed changes in /trunk/KDE/kdelibs/khtml/khtmlview.cpp:

prevent smooth scrolling from taking too much time when resources are scarce.

we monitor the smooth scrolling time, and stop decelerating if it happens to be too far behind schedule.

that way the total scrolling time shouldn't exceed ~twice the default scrolling time (2*140ms) in the worst situation.

User Interface

Michael Pyne committed changes in /trunk/KDE/kdeartwork/kscreensaver/kdesavers/asciiquarium:

The new Qt 4.5 raster graphics system has *horrible* performance with this screensaver, so try to do the painting in a more uniformly performant manner.

This seems to make the X11 engine very slightly slower but it makes the raster engine *much* faster (and OpenGL still works...).

Will backport due to the extreme amount of slowdown experienced.

Major changes are to use Source composition mode in a lot of spots to avoid using alpha-blended bitBlts.
In addition the back buffer is always full blitted to the window, the dirty regions are ignored now.

Diffs: 1, 2, 3, 4 Revision 922447
Davide Bettio committed changes in /trunk/KDE/kdebase/runtime/pics/oxygen/CMakeLists.txt:

-60 mb: we don't need to install SVGs because no one needs to render Oxygen SVGs.

I will not backport this commit but I hope that distro will not waste space.

Other

Educational

Akarsh Simha committed changes in /trunk/KDE/kdeedu/kstars/kstars:

Applying Alexey Khudiakov's patch, making usability improvements to the FOV Editor:

+ Telescope eyepiece apparent fields are now measured in Degrees instead of arcminutes.
+ Make the Eyepiece tab default

Thanks Alexey!

Torsten Rahn committed changes in /branches/KDE/4.2/kdeedu/marble/src/lib/MarbleModel.cpp:

- First Make-Marble-work-on-Qt4.3-again patch by Matias Kallio.

Shashank Singh committed changes in /trunk/KDE/kdeedu/marble/src/plugins/render/twitter:

This will at least make twitter plugina valid plugin, and marble will load it without complaining though i have commented most of the code in plugin... and twitter plugin is itself commented in CmakeLists.txt of src/plugin/render

...i am still working on reviving this plugin :)

Diffs: 1, 2, 3, 4 Revision 921637
Shashank Singh committed changes in /trunk/KDE/kdeedu/marble/src/plugins/render/twitter:

commitng some stable working structure...

i will change json parser as early as possible and use twitlib [code.google.com/p/twitlib] instead of my own library for twitter interaction but that sadly would cause us to lose unicode support...

so i think i need to ponder more on this issue :)

Diffs: 1, 2, 3, 4 Revision 922002
Torsten Rahn committed changes in /branches/KDE/4.2/kdeedu/marble/src:

- Further patch from Matias Kallio to make Marble SVN compile on Qt 4.3

Now Marble 0.7.x should fully compile even with Qt 4.3

Graphics

Aurélien Gâteau committed changes in /trunk/KDE/kdegraphics/gwenview/app/gwenview.desktop:

Associate Gwenview with folders too, but ensure we stay behind Dolphin and Konqueror.

KDE Base

Sebastian Sauer committed changes in /trunk/KDE/kdebase/workspace/kcontrol/access/kaccess.cpp:

activating e.g. SlowKeys cause someone pressed the shift-key for >=8 seconds is rather destructive (I spend last hours to figure out how to disable it again, grrr).

So, let's choose the 'No'-buttoon per default to prevent ugly situations if ppl (like me) tend to just get right of modal dialogs asap without reading what they like me to do.

Shaun Reich committed changes in /trunk/KDE/kdebase/apps/dolphin/src/settings/behaviorsettingspage.cpp:

Confirmations of the following settings now reset themselves to their defaults:
* Move to Trash
* Delete

These are located in the General page->Context Menu tab of the settings dialog.

Mathias Soeken committed changes in /trunk/playground/base/kcontrol4:

this should be a try for a kcontrol port. It is just the tree model so far

Diffs: 1, 2, 3, 4 Revision 920310
Matthew Adams committed changes in /trunk/playground/base/plasma/applets/welcome/cpp/source:

Enable plugins (enables flash in qt4.5)

Diffs: 1, 2, 3 Revision 920435
Shawn Starr committed changes in /trunk/KDE/kdeplasma-addons/applets/weather:

for the KDE 4.2.x keep weather in extragear but for future we're moving to kdeplasma-addons so we can develop this thing more within KDE officially

Lucas Murray committed changes in /trunk/KDE/kdebase/workspace/kwin/effects:

Remove the fade effect dependency from the highlight window effect by implementing the fade internally.

Fixes some fading bugs and will make off-screen window highlighting easier to implement whenever I get around to doing it.

Diffs: 1, 2, 3 Revision 920590
Peter Penz committed changes in /trunk/KDE/kdelibs/kfile:

Up to now when selecting the protocol combo of the URL navigator around 50 (!) protocols have been listed as top level menu items.

To fix this, the protocols have been categorized into several groups.

Rarely used protocols have been moved into sub menus.

The current groups are a rough suggestion, any input for improving the groups is welcome :-)

Beat Wolf committed changes in /trunk/playground/base/plasma:

initial import of plasma2jolie

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 920976
Lucas Murray committed changes in /trunk/KDE/kdebase/workspace/kwin/lib:

Change motion dynamics algorithm and class structure.
Animations are now smoother and less "bouncy" than before and produce the same result at any framerate.

The Motion1D and Motion2D classes are now available andreplace the Motion<T> template for external use.

Daniel Nicoletti committed changes in /trunk/extragear/base/doc:

Added PolicyKit-kde documentation

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 6 more) Revision 921319
Sebastian Trueg committed changes in /branches/soprano/experimental/backends/virtuoso:

Finally the Virtuoso backend works nearly 100%.
At least it is in a state where it can actually be used.
There are still some hacks in it, some of which will hopefully be resolved once I get the necessary information or Virtuoso is improved.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9 Revision 921322
Michael Jansen committed changes in /trunk/KDE/kdebase/workspace/systemsettings/mainwindow.cpp:

Set a minimum size for systemsettings main window.
Play nice and use 800x480 for eeepc and n810 (so i'm told).

The result is better but still not pretty.

If we really intend to support these resolution we have some work to do.

Martin Gräßlin committed changes in /trunk/KDE/kdebase/workspace/kwin/effects/cube:

Merge in the first changes from cube git branch (<a href="http://github.com/mgraesslin/kwin/tree/cube">http://github.com/mgraesslin/kwin/tree/cube</a>;):

* Code restructuring and clean-up
* Use of glLists to store the rotation and painting of the cube. That way things are only calculated when something changed. Painting the cube is still required in each frame as it would break all other effects.
* Use face culling to paint the cube in the correct sequence.
* Move loading of all settings to cube effect. In preparation of getting rid of cylinder and sphere classes

Known regression: cylinder and sphere caps are partly broken.

Martin Gräßlin committed changes in /trunk/KDE/kdebase/workspace/kwin/effects/cube:

Cube uses the pager layout to animate desktop switching (not the cube mode).

This requires some more work including an option to use the old way (ignoring pager layout).

Rob Scheepmaker committed changes in /trunk/KDE/kdelibs/plasma:

Qt4.5 hit qt-copy, and layouts behave properly now!
Let's remove the layout bug workaround hacks from extenders.
This improves behavior a lot. :)

Diffs: 1, 2, 3 Revision 922575
Sebastian Kügler committed changes in /trunk/playground/base/plasma/applets/lionmail:

Comment all the awful layout hacks.

We're just expecting Qt 4.5 for this plasmoid as Akonadi won't be widelyused before 4.5 can sensibly be required anyway.

Diffs: 1, 2, 3, 4, 5, 6 Revision 922610
Ben Cooksley committed changes in /trunk/playground/base/kcontrol4/src:

Add my version of it

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 20 more) Revision 922630
Lucas Murray committed changes in /trunk/KDE/kdebase/workspace/kwin/effects/highlightwindow:

Started writing code that would display a thumbnail of a window in the middle of the screen if it was offscreen when the highlight window effect was activated.

After getting half way through it however I determined that it was a useless feature so instead of deleting the code that was already written I am just commenting it out.

If anyone can find a purpose for this please let me know your ideas.

Anne-Marie Mahfouf committed changes in /trunk/KDE/kdeplasma-addons/applets/frame/TODO-Tokamak2:

add TODO from Tokamak ideas

KDE-PIM

Adenilson Cavalcanti Da Silva committed changes in /trunk/playground/pim/googledata:

Importing google data akonadi resource. For whole development history, please refer to <a href="http://repo.or.cz/w/akonadigoogledata.git">http://repo.or.cz/w/akonadigoogledata.git</a>;

Right now it is capable of retrieving your contacts and reporting them to akonadi. Add/edit/delete needs testing.

This plugin requires latest libgcal:
<a href="http://repo.or.cz/w/libgcal.git">http://repo.or.cz/w/libgcal.git</a>;

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 6 more) Revision 920729
Stephen Kelly committed changes in /trunk/KDE/kdepim/kjots:

Make it possible to build kjots without the kontact plugin.

This disables the build of the kontact plugin so that kdepim and build dependancies are not required.

Diffs: 1, 2, 3 Revision 922832

Office

Thomas Zander committed changes in /trunk/koffice/kword/part/KWDocument.cpp:

Make the poetry not so negative and remove all irony

Thomas Zander committed changes in /trunk/koffice:

Change default in KWord to be that we show the outlines of the frames.
In the 1.x time we got several requests to turn it off (it was confusing) but now I've seen and heard from more people getting confused because its not visible where the borders are.There probably is no perfect solution, but on is certainly pleasing more than off.

Multimedia

Mark Kretschmann committed changes in /trunk/extragear/multimedia/amarok/src/widgets/MainToolbar.cpp:

Increase the width of the volume slider widget by a factor of 2x, as discussed with Leinir and nhnFreespirit.

Reasoning: For use with touch screens, the precision of the shorter volume slider was insufficient.
E.g. it was impossible to select 1%; instead it jumped directly from 0% to 4%.

It would have been possible to increase the length as a special customization for touch screens, but we discussed on IRC that this change might also be beneficial for Amarok proper, so I'm committing it directly to trunk.

Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src/playlist:

Remove the StackedWidget from the playlist as there are curently no alternate playlist view implementations (that works or are developed on) and the new configurable playlist likely preempts most of the reasons for adding one.

If anyone later wants to do one, feel free to revert this commit.

Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src/playlist/view/listview/DefaultPlaylistLayouts.xml:

Get rid of most of the old demo layouts.
They are really not needed any more as people can now cook up their very own weird and wonderful layouts

Jeff Mitchell committed changes in /trunk/extragear/multimedia/amarok/src:

NOTE: I *know* this messes up the PUD.
This will eventually be fixed.

Start to refactor the PUD a bit to make calculating geometry much easier.
Instead of using SVG sizes to calculate item sizes, use a svgElmenRect which can be programatically set and (eventually) scale the SVG to fit.

This simplifies a lot of logic.

However until I am done the PUD graphics are a bit borked (though they do work).

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

Networking Tools

Carlo Segato committed changes in /branches/work/konvi-kde4/src:

merge the osd code from amarok, it works now but it still need some fixes

Diffs: 1, 2, 3, 4 Revision 919912
Pino Toscano committed changes in /branches/work/konvi-kde4/src:

remove old custom implementation of bookmark menu, dated back to a custom konsole implementation started on 2002 (!)

KBookmarkMenu is quite fine now

Diffs: 1, 2, 3, 4 Revision 920229
Eli MacKenzie committed changes in /branches/work/konvi-kde4/src:

Work around the fact that QPlainTextDocumentLayout::hitTest is useless.

This ressurects some code from the kde3 version.

The custom browser code is untested, saveLinkAs is missing, and the popup menus are probably broken.

Diffs: 1, 2, 3, 4 Revision 921008
Friedrich W. H. Kossebau committed changes in /trunk/playground/network:

Import of the slp kioslave (service:/ and slp:/), ported to KDE 4 based on the version 0.4.1 for KDE 3

This kioslave has been developed by Adrian Schröter in a SUSE repository before.

This is a 1:1 port of the code and the features.
I have started a large refactoring, to fix some things (different behaviour for stat, get, list, ...) and make the code to my likings, but that version is currently broken and needs more time to be fixed.

So all people being happy with the KDE3 version should be happy with this version for now (modulo bugs introduced by the port, as I have no SLP system set up to check).

But Adrian wants to test (and fix) this code in a heavily SLP burdened network, triggered by this commit :)

In the long run support for the SLP system might be merged with the one for the Bonjour system, becoming abstracted behind a wrapper (KDE 4, the happy layer system). Will see.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 7 more) Revision 921378
Pino Toscano committed changes in /branches/work/konvi-kde4/src/viewer/images.cpp:

Move the LED painting code in an icon engine.
This way, there's no need to create a static 36px-sized pixmap (the proper pixmap is created on demand), and no need for a temporary widget either (!).

User Interface

Davide Bettio committed changes in /tags/unmaintained/3/nuvola:

Moving nuvola back to kdeartwork. Now we are maintaining it.

Utilities

Martin Tobias Holmedahl Sandsmark committed changes in /trunk/playground/utils/filelight:

Prepare for import of filelight from the git repo.

Martin Tobias Holmedahl Sandsmark committed changes in /trunk/playground/utils/filelight:

inital import of the kde4 version of filelight

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 58 more) Revision 920321
Alessandro Diaferia committed changes in /:

moving devicenotifier refactor to kdereview

Games

Parker Coates committed changes in /trunk/KDE/kdegames/killbots/README.PACKAGERS:

Removed README.PACKAGERS file, as this plan has been abandoned.

Graeme David Gott committed changes in /trunk/playground/games/pege:

Initial import of Peg-E.

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

Other

Benoît Jacob committed changes in /tags/eigen/2.0.0:

tag eigen 2.0.0

Gael Guennebaud committed changes in /trunk/kdesupport/eigen2/unsupported:

add unsupported/ directory with a first contribution from myself:
a header file providing support for adolc's adouble type in forward mode. (adolc is an automatic differentiation library)

Diffs: 1, 2, 3 Revision 920551
Matt Rogers committed changes in /trunk/bugs:

Change the zero search results message to 'Zero Bugs found'