Located at http://commit-digest.org/issues/2008-02-24/
|
|
| This Week... |
|
More work on runners, bindings into WebKit, and the beginnings of better composite manager support in Plasma, with support for multiple feed sources in the RSS Plasmoid. The addition of a "BBall", "Show Desktop", "KMLDonkey", and "IM Presence" (using Decibel) Plasma applets. An alternative alt+tab window switcher (similar to Compiz Fusion's "Cover Switch" effect). SuperKaramba gets support for Qt 4.4 "widgets-on-canvas". A long-overdue "major" rewrite of KCron is undertaken. Undo support in the KShortcutsEditor dialog. New plugins in Digikam and Krita. Various improvements in KTorrent and Amarok 2.0. Interface work and MusicBrainz integration in KsCD (student project). Lots of work on page transition effects in KPresenter. The start of work on integrating online reader support into Akregator. Kubrick, a Rubik's Cube game, is imported into playground/games. KDiamond moves from playground/games to kdereview, Kollision from kdereview to kdegames for KDE 4.1. kdebase (trunk, KDE 4.1) now requires Qt 4.4. Akonalendar (a small app to demonstrate Akonadi KCal models), and the Quasar graphics library are imported into KDE SVN.
|
Inge Wallin talks about new developments in Marble 4.1:
|
Marble is a virtual globe that is fast, versatile, and uses few resources. It is part of the KDE-Edu suite of applications, and is often used as a demonstrator for the "breathtaking beauty" vision that drives KDE 4. We will here show some of the exciting developments that are happening with Marble right now for the KDE 4.1 release.
Marble Now Marble in KDE 4.0 is a virtual globe. It is a stand-alone application that can show you the earth, zoom in and out, and give you a view of the world in either Globe Projection or Flat Projection. It is based on tiles, i.e data sets that are just big pixmaps that we get from sources like NASA.
The user can choose a number of Map themes, i.e. datasets like a standard Atlas view or a night map with city lights or a set of satellite photos. He or she can also control what is shown on the basic map, such as country borders, cities or other placemarks like mountains or ship wrecks (you can locate the Titanic using Marble).
In addition to being a full application, Marble is also a set of widgets that the programmer can integrate into other applications. The set of widgets provided by marble comprises the map widget and two control widgets. The widgets have full integration with Qt Designer, so the developer can simply drag and drop the marble components as any ordinary button or combobox.
Marble, the Vision While Marble is a virtual globe now, the vision is much more than that. We expect so called "Geo Services" to become very common on the desktop in the near future. Already now, Digikam can geotag the photos if the camera has a GPS. Geotagging will simply be a common thing to do.
The manifesto file in the Marble source states: "Marble is meant to become for "geo browsers" what KHTML/WebKit is for web browsers already". In other words, Marble will be the central component in the geo services infrastructure.
Marble exists in two different incarnations: A KDE version which uses the full power of kdelibs, and a Qt-only version which is more portable. The Qt-only version has already been ported to Windows, Macintosh, Windows CE, and the OLPC. We hope that, given some time, Marble will be the standard Geo Browser on all desktops, including GNOME.
Marble, the Development To reach the vision, we need integration. Marble needs to be fully integratable into almost anything, and also to integrate other components into itself. In fact, we think this is so important that we have assigned the code name "Integration" for Marble 4.1.
The Marble widget is already able to be integrateg into any KDE or Qt application. However, not all frameworks uses widgets; Plasma and KOffice Flake Shapes are two notable exceptions, although Plasma in KDE 4.1 will actually be able to use them.
Refactor to Allow Integration of Marble Without Widgets We have just finished a refactoring where we split the MarbleWidget into two classes:
- MarbleMap, which is an abstract map class that can paint on any device.
- MarbleWidget which is like the old Widget, but uses MarbleMap as the actual painter.
The developer who do not want to use a widget can just use the MarbleMap and tell it to repaint whenever necessary.
Refactor to Allow External Plugins There is also development going on in the internals of Marble. The internal machinery is rather complex, due to the extreme performance demands that a smooth update puts on the hardware. Remember that Marble doesn't need hardware acceleration to be able to work well.
The layer system is much better defined now, and a refactor is going on that will allow external plugins to create new stand-alone tile layers, combined tile layers, vector layers or placemark layers or any combination thereof. These plugins will also be able to plug into the configuration system of the legend, thus letting users turn on and off subfunctions at will.
Support for KML and GPX Files KML is the XML format that is used to create data that can be inserted into Google maps and Google Earth. Marble 4.1 will have support for the most-used parts of KML, and eventually for all of KML. Thus any data that can be shown in Google Earth can also be shown in Marble.
Marble 4.1 will also support standard GPS track files (the so-called "GPX" files), and maybe also other file formats.
Support for Custom Scenes Marble supports DGML files, a new XML format created directly for Marble itself. DGML describes a Map Theme or general setup that combines one or more tile sets with data of other types, such as vectors and placemarks. For Marble 4.1, we have extended the DGML format into DGML2, which is very powerful. Examples of usages are: scientists can describe specialized maps for tracking earth quakes, weather maps with complete legends of all weather symbols, integration with OpenStreetMap and so on.
Support for Other Geo Infrastructure If possible, Marble 4.1 will also integrate into already existing geo frameworks such as GeoClue which tries to use GPS, IP number and other means to get the current position. It already supports gpsd, the GPS daemon, but that feature will be more easy to use in 4.1.
What we hope is that people will use all these ways of integrating Marble and create new and wonderful ways to use geo services on the desktop. I don't think we can imagine all the new uses yet, they will develop as the potential of KDE 4 unwraps in KDE 4.2 and on. Already now, you can use the Marble widget and the Marble map in your own projects, and soon you will be able to write custom plugins to Marble. Contact me (ingwa) or Torsten Rahn (tackat) on irc://irc.freenode.com/#kde-edu. We will answer almost any question. You can also subscribe to marble-devel@kde.org and get the insider story on all this.
|
|
Ivan Čukić presents a new tool, Puck, the Plasma UI Compiler:
|
This time I'm not talking about Lancelot per se, although you get screenshots of it, but rather of a tool that is being created to ease it's development and development of other Plasma-based applications.
The name of the tool is "Puck" (Danny's idea) which could stand for Plasma UI Compiler K. Puck is a tool for converting XML-based UI definition into C++ Plasma code.
It is not that difficult to create a more complex UI by coding it directly in C++, but changing or rearranging an already coded UI is a pain. With an XML-defined UI, it's just a matter of cut-and-paste - which is essentially what was done to create a more compact version of Lancelot, or even to make it look like Kickoff. (the sole purpose of those layouts was to take the screenshots for this Commit-Digest - the final Lancelot will not look like this):
Currently, Puck supports only widgets and layouts that are used in Lancelot, and is able to generate only C++ code. This means that UI files can not be loaded at runtime yet.
The main goals for the future are:
- support for all Plasma's widgets and layouts
- support for ECMAScript or Python, and then loading and relayouting of UIs at runtime
- figure out what to do with the QWidget on QGV support introduced in Qt 4.4
Currently, Puck is a part of Lancelot's build system, and it can be found in extragear/plasma/applets/lancelot/tools/puck. It's not meant to be used elsewhere, at least not yet. If you would like to use it for your project (or extend or develop it) you should contact me - the address is ivan(dot)cukic(plus-sign)kde(at)gmail(dot)com
|
|
Urs Wolfer introduces a new feature in KGet for KDE 4.1: the web interface:
|
KGet got a new feature for KDE 4.1: a web interface to control downloads over the internet.
This is especially useful for large downloads, which will take quite some time to download. This will for example be the case for torrent downloads, which will be possible with KGet from KDE 4.1. You can run KGet on one computer (server) in your local network, which probably runs all the time anyway! Just enable the web interface on that machine and you will be able to control the downloads on that machine from anywhere you have network/internet access.
The web interface should work in any standards-compliant web browser. Technologies used for it are XHTML, CSS, JavaScript, JSON, and Ajax. It will work very fast also on slow internet connections, since it does not reload the whole page all the time. It only transfers the download list, which is a very lightweight JSON file. The "webserver" behind it is based on Qt's QTcpServer. This might be interesting for any Qt application which wants to provide a web-based control.
The web interface is fully translatable, like any other KDE application. The visual design is by Mensur Zahirovic. Thanks a lot to him for the very nice layout.
|
|
|
| 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 |
|
|
|
|
|
|
There are 128 selections this week.
|
|
Bug Fixes |
|
|
|
|
|
|
|
|
|
Joris Guisson committed changes in /branches/extragear/kde3/network/ktorrent:
|
- Fix stop all and start all from system tray menu (it used to apply to the current view, now it applies to all torrents) - Make sure that set download location and add to group are disabled when no torrent is selected |
|
|
|
|
|
|
Utilities |
|
Frerich Raabe committed changes in /trunk/KDE/kdenetwork/knewsticker:
|
- This configuration widget exists from the first show() until the end of the applet. Consequently, it got notified about all feeds loaded and kept adding them to the list widget in the configuration dialog. This bug was reported in Bug 157948.
The primary fix is to not stay connected to the NewsFeedManager all the time but only while we're adding a feed. We do an aditional check for the URL which was loaded, just in case a feed update of some other URL finishes while we're retrieving the to-be-added feed. |
|
|
|
|
|
|
Features |
|
|
|
|
|
Nickolai Shaforostoff committed changes in /trunk/KDE/kdesdk/lokalize/src:
|
- animate statusbar changes (untranslated, approved or need review) - disable webquery view temporarily, as it is reported to cause crashes - fix bug with permanent 'total:0' in statusbar |
|
|
|
|
|
|
|
|
|
|
|
|
Graphics |
|
Adrian Schroeter committed changes in /trunk/extragear/graphics/digikam/imageplugins:
|
Add an optional plugin for automatic correction of lens variations based on the lensfun database (and library). The current status of the lensfun database seems not to be too helpful for most users yet. We need to find a way to help improving this. See the STATUS file for details.
The code in klensfun.h and klensfun.cpp might be used also elsewhere later, for example for automatic correction during picture import.
This plugin gets not compiled, if lensfun library is not installed. |
|
|
|
|
|
|
|
|
|
|
Arnd Baecker committed changes in /branches/extragear/kde3/graphics/digikam:
|
|
When using the aspect ratio crop, it is now possible to ensure that the aspect ratio is fulfilled exactly. This is done by only allowing those combinations of width/heights which lead to the correct aspect ratio (thanks to Roberto Castagnola who wrote the patch). |
|
|
|
|
|
|
|
|
|
|
KDE-Base |
|
Maksim Orlovich committed changes in /branches/work/kjs-frostbyte/kjs:
|
- CodeGen for FuncDeclNode, BlockNode, EmptyStatementNode, ExprStatementNode, ReturnNode.
- Some helpers for making immediate values.. - Preload this/scope.. - Disable some AST optimizations, as they're becoming moot, and are getting in the way.. |
|
|
|
|
|
|
|
|
|
|
Maksim Orlovich committed changes in /branches/work/kjs-frostbyte/kjs:
|
Begin preparation for getting stuff running - Put in proper union into LocalStorageEntry - Various fixes to typos, etc., in codes.def - Make tablebuilder provide line numbers from codes.def in output, for more useful error messages.
machine.cpp now compiles, though some pieces of the runtime are still missing (in particular, JSGlobalObject, proper initialization of LocalStorage and themark/non-mark descriptor therein) |
|
|
|
|
|
|
Maksim Orlovich committed changes in /branches/work/kjs-frostbyte/kjs:
|
Get things running! Yahoo! (for the subset we handle, anyway):
- Hook in compilation on-demand in FunctionBodyNode::execute. - Properly compute mark descriptors in compileState - Store localStore and markDescriptor info in ExecState, markDescriptor in variable object, use as appropriate - Fix ScopeLookup ops to advance iterator chain.- Hijack ~ temporarily as a debug tracing op. |
|
|
|
|
|
|
|
|
Maksim Orlovich committed changes in /branches/work/kjs-frostbyte/kjs:
|
- CodeGen for: - if/if-else - while - do while - with - comma operator (wow! ;-) )
- Portions of exception code, partly because it interacts with 'with' - Fixes for to handling of toObject failure in SymGet/SymPut- Remove some dead stuff |
|
|
|
|
|
|
|
|
|
|
|
|
Aaron J. Seigo committed changes in /trunk/KDE/kdebase/workspace/libs/plasma:
|
This lets the View have a desktop set to it and when drawing a Containment we pass in the effective desktop # being currently painted. The Containment is free to ignore this information, or it can try and cast the passed in options to a Containment::StyleOption to retrieve this information.
This should be used for any per-desktop painting that happens (e.g. separate background per desktop) and opens the way to having View-per-Desktop for better composite manager support (think: desktop grid or cube where more than one desktop is simultaneously visible) |
|
|
|
|
|
|
|
|
Maksim Orlovich committed changes in /branches/work/kjs-frostbyte/kjs:
|
Implement exception handling: - add a deferred exception stack to permit temporarily suspending exceptions for the duration of a 'finally' - codegen for try, throw. The former manages the exception handler stack, including pushing cleanup entries for the scope stack, and the deferred exception stack - setException now applies any scope/deferred exception scope unwinds, and updates the PC based on the active handler |
|
|
|
|
|
|
|
|
|
|
|
|
KDE-PIM |
|
Tom Albers committed changes in /trunk/playground/pim/mailody/src:
|
Instead of passing a QString with the mailbox name everywhere, pass the Akonadi::Collection around.
This makes it possible to store drafts again. I don't know how to adjust the xml for this. |
|
|
|
|
|
|
Urs Wolfer committed changes in /trunk/KDE/kdepim:
|
Unify look and feel of KMail and Akregator system tray icon a bit more.
This makes the KMail trayicon better readable and requires less code. Also do small optimizations where possible. |
|
|
|
|
|
|
Tom Albers committed changes in /trunk/playground/pim/mailody/src:
|
Restore the delete action, as it actually works.
What does not work, is the strike through for deleted items, it seems they are drawn 100 pixels to the left. I've no idea why. Anyone an idea? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Nikolaj Hald Nielsen committed a change to /trunk/extragear/multimedia/amarok/src/playlist/PlaylistGraphicsItem.cpp:
|
Use SourceInfo ( if available ) to show a small emblem on top of the album cover that shows where the album/track is from.
For now, it only works for Magnatune content. Also, I dont know if on top of the cover is the rigth place, but the emblem is very small and does not really obscure the cover much. In any case, the display of emblems should probably be made configurable" |
|
|
|
|
|
|
|
|
|
|
|
|
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src:
|
Make the shoutcast service (sort of) work again. The problem really had very little to do with the service itself, but was more a symptom of the new playlist handling code still needing some love.
I am quite sure that this is NOT the right way to do this in the long run, but it was the best I could come up with. |
|
|
|
|
|
|
|
|
|
|
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src:
|
|
The return of the CloudView. Long thought dead, the cloud view has returned in the form of the Cloud plasma applet. Its purpuse will be much the same as the initial version, which initially will be to show moods or other cluds for the services. Hence it is also currently controlled via the ServiceInfoProxy. |
|
|
|
|
|
|
|
|
Harald Sitter committed changes in /trunk/extragear/multimedia/amarok/supplementary_scripts/neon:
|
* initial ruby port of Neon * ubuntu packaging stuff still needs a lot of cleanup (dependencies etc.) * you can enable/disable almost anything in neon.rb, well, not the packaging bits, they should all be stripped to distros/$DISTRO.rb * some parts require configurations (ftp upload data for example), those are queried as needed using console input * note that neon will only work if you run it from it's working directory * please give it a code/structure revu :) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Jan Hambrecht committed changes in /trunk/koffice:
|
|
Made it possible to change the hot position of the current selection by middle clicking the corresponding selection handle of by pressing keys 1-5 on the keyboard. It would be possible to remove the position selector from the default tool options widget to save some space. |
|
|
|
|
|
|
|
|
|
|
|
|
Dag Andersen committed changes in /trunk/koffice/kplato:
|
Scheduling stuff: * Move scheduling direction from project to schedule. * Improve scheduling of subschedules (takes into account completion data) |
|
|
|
|
|
|
|
|
|
|
|
|
Utilities |
|
Nicolas Ternisien committed changes in /trunk/KDE/kdeadmin/kcron/src:
|
Improve ergonomy in Variable editor and Task editor Reduce default size dialog of the Task Editor, it is now more clear and usable Fix a bug with 'Set All' buttons (due to automatic defining of Improve ergonomy in Variable editor and Task editor Reduce default size dialog of the Task Editor, it is now more clear and usable Fix a bug with 'Set All' buttons (due to automatic defining of & in text) Improve code lisibilityRemove some old Qt3 stuff in text) Improve code lisibilityRemove some old Qt3 stuff |
|
|
|
|
|
|
Sebastian Sauer committed changes in /trunk/KDE/kdeutils/superkaramba:
|
SuperKaramba supports now Qt4.4 widgets on the canvas.
* we are able to embed any kind of QWidget into a karamba script written in python or ruby (javascript and qtscript not tested yet). * the WebBrowser example does load the KHTML KPart and embeds the browser widget though webkit should work too (untested too). * those ~20 line of python sample code also demonstrate how to dynamic control the KHTML KPart using JavaScript. * to give it a try, you need Qt4.4 and SK+krosspython from current trunk :) * some refactoring to allow even more control will follow later. |
|
|
|
|
|
|
Nicolas Ternisien committed changes in /trunk/KDE/kdeadmin/kcron/src:
|
Major rewrite of KCron : - Improve file names - Replace the old tree view by 2 separated list : 1 for the Cron Tasks, 1 for the Environment Variables - Improve the usability (integrates a contextual menu, key processing) - Remove useless actions in menu bar and status bar - Generate a more clear and clean description for the next schedules of a tasks - Generate a more clever string for crontab saves (use the */x periods if possible) - Display in the view the raw crontab format for scheduling - Reorganize the lists (to looks like the crontab config file) - For the moment root access does not work anymore, it will be reenabled in the next commits |
|
|
|
|
|
|
|
|
Optimise |
|
Development Tools |
|
David Nolden committed changes in /trunk/KDE/kdevplatform:
|
Completely rework the way uses are stored and attached to their declarations. 1. Make uses extremely memory-efficient by reducing each use to 5 integers stored in a vector(range + declaration-index). 2. Manage the uses locally within the context that contains them, and hold a parallel vector that eventually contains smart-ranges when available. That way we lose no memory for the 99.99% uses that don't have smart-ranges. 3. Like done with definitions, use an intermediate structure that uses the declaration-id for the mapping from declarations to uses. That way, we will never get problems from documents parsed in multiple versions, the declarations all share the same uses.
Now we can actually start thinking about building uses for all parsed files(If it just was faster). |
|
|
|
|
|
|
Educational |
|
Frederik Gladhorn committed changes in /trunk/KDE/kdeedu:
|
Make caching of the vocabs of sublessons work, now recursive view of lessons is fast enough. Still disabled by default as modeltest doesn't like me and asserts when attempting to insert an entry. Start some feeble attempt to implement Cut for vocabs. |
|
|
|
|
|
|
|
|
Aaron J. Seigo committed changes in /trunk/KDE/kdebase/workspace/libs/plasma:
|
* eliminate the three search lists and have just one * remove add*Match since they broke the pattern of usage (who owns the match? do you have to add it again? etc..) * add addMatch to compliment addMatches for those runners that just ever have one match * make the default SearchMatch type Possible rather than Exact (making Exact and Informational the exceptions, which matches usage patterns) * const'ify the API a bit better
generally more performant, lower memory usage and clearer API having seen what is beign done in the runners. also makes it a bit easier to turn the Matches into a qt model |
|
|
|
|
|
|
David Faure committed changes in /branches/KDE/4.0/kdebase/apps/konqueror/src:
|
Performance: finally optimized "konqueror " so that it doesn't load the about page first.
if (serviceName == "konq_aboutpage" && forcedUrl.protocol() != "about") { // No point in loading the about page if we're going to replace it with a KHTML part right away serviceType = "text/html"; serviceName = "html"; } |
|
|
|
|
|
|
|
|
Other |
|
Development Tools |
|
Michaël Larouche committed changes in /trunk/playground/devtools:
|
Add a rough port of a small plugin I've done for KDE3 (no release for KDE3 sorry guys)
This plugin implement the QuickText feature found in certains text editor like TextMate, Notepad++. The QuickText allow to associate snippets of text to text shortcut
For example, suppose I type "dptr" then I press Ctrl+Enter, the plugin will select and replace the dptr with a text snippet.
dptr -> class Private; Private *d;
Still not working for the KDE4 port, but I commit because mattr is willing to help me of that matter :) |
|
|
|
|
|
|
Andreas Pakulat committed changes in /trunk/KDE/kdevplatform:
|
|
Update to new installation style. If you don't want to rebuild kdelibs read the announcement from Alexander Neundorf on kde-devel. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sven Burmeister committed changes in /trunk/extragear/plasma/applets/fuzzy-clock:
|
behave in a vertical environment. Due to readability I do not think that it makes sense to break the timestring into several lines.
Thus the plasmoid will not fit in a small vertical panel for most timestrings. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Zack Rusin committed changes in /trunk/playground/base/quasar:
|
|
commit quasar so that we can work on it together (me, and you, the reader, my greatest and only love, whoever you are... you're a woman, right? otherwise this could be a little awkward) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Allen Winter committed changes in /trunk/KDE/kdepim:
|
First use of the new kdepim-compat.h.
The purpose of kdepim-compat.h is to keep us backward compile-able to the most recent kdelibs minor release. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Nikolaj Hald Nielsen committed changes in /trunk/extragear/multimedia/amarok/src/context/applets:
|
|
After spending many years in the mental asylumn, undergoing radically new and hightly experimental treatment programs, including infusions of QWebKit, the Wikipedia Applet is now deemed sane enough to be let back out into the world. Dont expect wonders just yet though, as all it currently shows is a blank stare! |
|
|
|
|
|
|
Networking Tools |
|
Manolo Valdes committed changes in /trunk/KDE/kdenetwork/kget:
|
|
now multisegkio use the search capabilities of mirrorsearch engine. so remove all search engine code form multisegkio plugin. now it dwell on mirrorsearch plugin |
|
|
|
|
|
|
|
|
Urs Wolfer committed changes in /trunk/KDE/kdenetwork/krdc:
|
Ability to build a Qt-only version of the KRDC VNC backend. This way Qt-only probjects can use these files without changes, and thus backporting fixes or improvements will be a lot easier.Please see krdc/vnc/qtonly/README for more information. |
|
|
|
|
|
|
|
|
Thorsten Zachmann committed a change to /trunk/koffice/kpresenter/plugins/pageeffects/TODO:
|
o Added a TODO list
For all that have waited to work on page effects. The framework is finished. At least so far that the work on the effects itself can start.
Loading and saving is also working.
I have set up a TODO file where everyboy who wants to work on a page effect can select one by putting his name under it so that everybody can see what the status is. The file also contains a short explanation on what needs to be implemented. This might be to short but it is a start.
If there are questions please send me a mail, and I try to come back to you as fast as possible.
Up to now the existing effects are no plugins yet. They still reside under kpresenter/part/pageeffects so you can have a look there. |
|
|
|
|
|
|
Utilities |
|
Rolf Eike Beer committed changes in /trunk/KDE/kdeutils/kgpg:
|
Remove usage of K3ListBox
Now KGpg should be free of KDE3 compat code (but not Qt3 compat code). It still links against the compat library, I think this is from libkabc. |
|
|
|
|
|