|
| This Week... |
|
Work on a "Grid" containment for Plasmoids. A Plasma applet to monitor the WiFi signal strength (on Linux systems). Infrastructure in place for a network settings daemon in the NetworkManager Plasmoid. An Akonadi Plasma data engine, intended for initial use by a "Plasmobiff" applet. "Previewer", a new Plasmoid for previewing files using KParts technology. KDevPlatform (the basis of KDevelop4) gets a plugin for basic Git source versioning control. Start of resurrecting C# support in KDevelop. Key bindings added to display various debugging information in KStars. Progress in sound and scripting support in Parley. KTron gets a new maintainer, with work on porting to KDE 4 and moving to SVG graphics. "Find duplicates" tool in Digikam is now regarded as fully functional. Initial efforts at using PolicyKit for the management of system-wide fonts. Work on scrolling interaction in KOrganizer, and further development in the new "Message List View" of KMail. Copying music tracks to an MP3Tunes locker, and experimental auto-fetching of album artwork in Amarok 2.0. Support for authentication algorithm selection for WEP connections in KNetworkManager. Early beginnings of scripting plugin for KTorrent. Initial support for searching for placemarks, and undo/redo support in the "GeoShape" of KOffice. Beginnings of work on the "Presenter View" in KPresenter, with two synchronised canvasses. "Web forms" component of Kexi becomes based on the kde.org template, for consistency and accessibility reasons. Provisional .wav support in TagLib. Initial import of a Perldoc KIOSlave for KDE 4. Import of a KDE 4 port of sysinfo:/ (as seen in openSUSE 11). KDE 4.1 Beta 2 is tagged for release.
|
Szymon Stefanek introduces the concepts behind his Summer of Code for KMail, "Enhancements and porting to native Qt4":
|
Now that KDE 4.1 is about to be released and we should be doing bugfixes only, what are these large commits, file additions, deletions, moves, giant SVN merges that jump out in Commit-Digest once in a while?
...it's me playing in branches :)
Well... in fact it's me working on my Google Summer of Code project and specifically on KMail.
My Summer of Code project has the following goals:
- Help, and possibly complete, the port of KMail to native Qt4
- Replace the old Qt3-based KMHeaders with a super-cool "Message List View"
- Implement a view for "whole threads" of messages
I'm actually in the middle of the project. Several widgets have already been converted to native Qt4 and i'm working on the super-cool "Message List View" which already displays the contents of folders.
Just to make you a bit curious about the sources i'll introduce an interesting problem encountered in the development: the message list view filling algorithm.
The Rich Message List View When you click on a folder in any e-mail client you usually get its contents displayed in some window. The contents of a folder are obviously messages and you likely want the list to be displayed with some kind of "preferred arrangement". When you're searching for the latest messages received or sent you probably to want the messages to be sorted by date. When you're searching for a particular sender you might want the messages to be sorted by that field. When you're looking at a mailing list you usually want the messages to be arranged in trees which represent discussion threads. Many e-mail clients (soon including KMail) allow you to group the messages and threads by some kind of criteria. For example, you might want to group the messages by "smart" date ranges: "Messages received Today", "Messages received Yesterday", "Messages received Last Week", "Messages from Last Year"...
The mail folders can be very large. It's not unusual to find folders with more than 50000 messages inside (just stay subscribed to the linux-kernel mailing list - or kde-commits! - for some weeks and you'll end up having an example of such a folder). Scanning and organizing all the messages inside such a folder *will* be time consuming. The current KMail implementation is blocking in this sense and even if it uses clever optimisations it still tends to freeze for several seconds when opening a large folder. Freezing is a symptom we need to avoid.
So now you should be getting the big picture. Large folders but no freezing, grouping or no grouping, threading or no threading, sorting by that or by something else. How to approach such an algorithm?
Well.. the actual kmail-soc branch source code has an implementation for this :) I'll leave you the fun of finding the details by reading the comments in the source and i'll outline only the general idea.
First of all, we take care of the freezing problem. The idea is that the UI must be able to process events while the filling algorithm is running. KMail structure is not thread safe at all: multithreading is not an option. Calling "processEvents()" once in a while is also not very nice: it looks so "visual basic"-ish and may lead to a lot of unnecessary calls. So we approach the problem by idle time processing. This is a typical algorithm for UI-based programs.
We set up a zero-interval timer that the Qt core will trigger every time it has nothing else to do (that is, the event loop is "idle"). Once we're called we will be able to do a chunk of work. Idle time processing imposes an obvious restriction on our implementation: it *must* be interruptible. That is, it must be able to perform a part of the work, stop at a certain point and later resume exactly from that point.
The underlying folder is assumed to be a "flat" structure in that the messages can be retrieved by using a numeric index. The natural splitting approach is to cover a contiguous part of the message index space in each work chunk.
We start at the initial index and go upwards... well... the direction and order of the messages to access in the underlying storage is yet another part of the story but i'll omit it for now.
We actually define a "maximum chunk processing time" as a constant in the sources and while processing messages, once in a while, we check if we ran out of time. If we did, then we store our current index as initial index for the next job and return control to Qt. And this works nicely, even if the real-world implementation is really more complex than the one i've just described.
Next we take care of message threading. Have you ever wondered how your e-mail clients knows that a message is a reply to another message? The answer is, it either gets this information (and trusts) the sender's e-mail client or it attempts to guess. The basic idea is that each message should contain a "Message-Id" field with an unique ID string. Then every (direct) reply to that message should contain this unique ID in the "In-Reply-To" header field. This doesn't always work because of broken or featureless clients. There is also a problem when one of the thread messages is missing since it literally breaks the tree in two non-joinable pieces. So we have the "References-Id" field. Smart e-mail clients put there several unique identifiers of messages belonging to the same thread. There is a complex rationale for that we're using only one specific entry in that References-Id (see sources for more information). But anyway, we have two somewhat "direct" means for threading messages. Then there are hopeless e-mail clients which do not include these fields in replies. So we try to guess by looking at the subjects... but i'll leave the details here and go on with the algorithm.
Messages then "come in" from the folder in some order. The order does not necessarily need to be the "right one". That is, a reply to a message X may come in before the message X itself. This means that initially we'll miss the parent for the reply and *later* we have to find out that the original message is its (perfect?) parent. This complicates the things a bit since we can't just append the messages to the trees. We can append them when a perfect parent is found but when no parent is found we don't know if there will be one later. The current solution tries to keep the message without a parent unattacched as long as possible (during a single execution of the fill view algorithm) hoping that the parent will jump out. When we reach the end of the folder without finding the parent then the parentless child must be attacched to the view and shown to the user (even if an orphan, it's still a valid message).
But then the user presses the "check mail" button and new messages are downloaded from the server... and the missing parent suddently appears. Then we have an additional hazard: we must be able to change the hierarchy of the already displayed messages... and we must do it on-the-fly, possibly without bothering the user that might be actually reading *another* message in the same folder (and maybe, as per Murphy's Law, belonging to the very same thread).
Then we have message grouping. Determining the group that a *single* messsage belongs to is quite simple. A bigger problem comes out when we want to be able to group threads by something that is not the first e-mail in the thread. Maybe it's not totally obvious but think of a group of "all the discussions that had activity today". This is actually the group of threads for that the user has received at least one message today. To implement this, in certain configurations, groups must be held up until the end while in others they can be attached directly to the view.
Anyway, at the moment of writing, the sources in the kmail-soc branch have a nearly working 4 pass solution for the problem (which in fact has several additional hardcore details). It works but it's complex and hard to read. This might also mean that it will be hard to mantain in the future. Something must be done in this direction too.
Then there is the potential Akonadi port... but that's yet another part of the story. Ah, and skinning too! ...we have both eye-candy lovers and conservators that want the view "just like it was in KMail 1.0" :D
Well...I hope to have interested you at least a bit :)
I always try to make sure that the branch code compiles. You're encouraged to try it out and send feedback!
About Me My name is Szymon Stefanek. I live in Italy and i'm studying Informatic Engineering at the University of Siena. Currently i've passed 29 of the 31 required exams and i'm planning to graduate in December 2008.
i'm an open source software enthusiast and I have written free code since 1998. i'm the leader of the KVIrc project that is actually in a mature state. Other developers are taking care of it and i'm trying to expand my horizons by joining another open source team.
I have used KDE since 1998. In the past, I have contributed some artwork and several pieces of my code have indirectly ended up in the KDE codebase.
|
|
Because we can't get enough of Parley, Daniel Laidig writes about how he is adding a welcome screen to Parley:
|
A few days ago I committed a rather small addition to Parley that changes the visual appearance a lot: a welcome screen. Until now, Parley appeared showing a table view which is not exactly the most beautiful appearance I can think of, and certainly doesn't give the impression that learning vocabulary is fun (which is true, but the aim of Parley should be to make it fun!).
One way to make Parley look more appealing and to make it easier to use at the same time was to introduce a welcome screen. This screen is displayed instead of the table when no document is loaded and provides easy access to the most important actions, like creating a new collection, opening existing collections, and downloading new files via Get Hot New Stuff. There is a list of recent files which coincidentally resembles the welcome page of Gwenview a lot and provides Goya-powered buttons for opening the file or directly start practicing. With this, in 99% of the cases you just need one click to get started, however users who prefer the old behavior can still choose to automatically open the last file in the settings dialog.
My hope is that this will not be the last change to create an even better user interface for Parley in KDE 4.2. Frederik and I were discussing to start using KParts for the different modules (welcome, editor and practice) to create a more consistent interface. I don't know yet how easy that will be, since KParts don't support dock widgets yet, but hopefully that will change in the next few months.
|
|
|
| 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 131 selections this week.
|
|
Bug Fixes |
|
Educational |
|
Frederik Gladhorn committed changes in /trunk/KDE/kdeedu:
|
Nice catch Avgoustinos! And in time for 4.1.
Editing languages should work now. - after adding and then immediately removing a language one of the existing languages would be blown away - reload the languages after they have been changed |
|
|
|
|
|
|
David Capel committed changes in /branches/work/soc-parley/parley/src:
|
Fix fixes, timers added (for now its only invisible ones -- visible ones will come later) the theme was updated so a button could be shown (makes things more obvious for testing purposes)
Note to the wise: distro kde4 packages can cause trouble... |
|
|
|
|
|
|
Jason Harris committed changes in /trunk/KDE/kdeedu/kstars/kstars:
|
Fix UI bugs in the Options window, Catalogs tab. Certain controls (the star magnitude limits and deep-sky catalogs) did not enable the Apply button when modified. The deep-sky catalogs changed the map immediately without needing Apply or Ok, which is inconsistent. Now these controls behave like all of the other options: Apply, Ok, and Cancel should all work on them as expected.
Thanks for pointing this out, James. |
|
|
|
|
|
|
Jason Harris committed changes in /trunk/KDE/kdeedu/kstars/kstars:
|
Fixing a usability issue in the options window. Toggling the view toolbar buttons now toggles the corresponding control in the options dialog. This is useful for those who keep the options window open while using the program.
TODO: there's no meta-option for deep-sky objects in the options window. I'll ask translators if it's ok to add one for 4.2.
Thanks for pointing this out, James. |
|
|
|
|
|
|
Games |
|
Ian Wadham committed changes in /trunk/KDE/kdegames/kubrick/src:
|
Fix the integration of Singmaster moves with all menu actions. Change Demo shortcut to Ctrl+D and the Down move to D. Clean up and remove debugging outputs. |
|
|
|
|
|
|
Graphics |
|
Jesper Pedersen committed changes in /trunk/extragear/graphics/kphotoalbum:
|
Deleting an image that was no longer on disk resulted in an error dialog telling that it could not be deleted.
Now it will just act as if it did actually delete it, and take the image out of the database. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Multimedia |
|
Michael Pyne committed changes in /trunk/KDE/kdemultimedia/juk:
|
Really mostly fix bug 161168 (JuK crossfading is teh suck).
We cache the VolumeFaderEffect object and include it in the pipeline at all times. What this does is allows the volume changing to go smoothly when we try to start changing the volume of our playing track.
In addition phonon-gst crashes if I try to remove the fader effect afterwards and skips horribly if I don't cache the fader effect.
Unfortunately phonon-xine suffers from crackling sounds with the fader effect left in the chain, so now phonon-gst is the best backend to use for JuK. Both sound much better during the fading process though, although phonon-xine still suffers from initial high volume on the incoming song.
This pretty much works for me now though, so I'm closing the bug. |
|
|
|
|
|
|
|
|
Mark Kretschmann committed changes in /trunk/extragear/multimedia/amarok/src:
|
Refactor Meta::Observer so that we automatically unsubscribe all Meta subscriptions in the dtor.
This fixes many issues, e.g. you are now actually able to listen to more than 5 tracks in a row without crashes ;)
Also, it makes the code simpler, since we don't have to do manual bookkeeping.
The important API change is that you now subscribe/unsubscribe to Meta objects with subscribeTo(MetaPtr) / unsubscribeTo(MetaPtr); these two methods are built into the Observer base.
This was quite a bit of work, but I think it was worth it :) |
|
|
|
|
|
|
|
|
Utilities |
|
Rolf Eike Beer committed changes in /trunk/KDE/kdeutils/kgpg:
|
Rework file decryption
If the decryption fails the filenames of those files are shown. The error message given in this case is not perfect, but because we are in string freeze I reused one that already existed.
Before this for every file to decrypt one KgpgLibrary object was created and never deleted again.
Now only one object is created for every decryption job (which may contain several files at once) and afterwards is properly destroyed. |
|
|
|
|
|
|
Features |
|
Development Tools |
|
Richard Dale committed changes in /trunk/KDE/kdebindings/csharp:
|
* Add C# Plasma bindings * Marshallers for the QHash based types needed * A generic plugin like korundum/kpluginfactory is needed to start the Mono runtime in embedded mode |
|
|
|
|
|
|
|
|
|
|
David Nolden committed changes in /trunk/KDE/kdevplatform/language/duchain:
|
Implement global item-repositories for the identifiers and use it. This is a bit complicated because the identifiers need to be kept manipulatable, so they internally keep two different states using specialized private classes, one "in repository", and one "changed" state.
Since now most identifiers should be shared in the item repository, this will reduce memory-usage, and we can easily store them to disk centrally. |
|
|
|
|
|
|
Evgeniy Ivanov committed changes in /trunk/KDE/kdevplatform/plugins:
|
|
Added gitplugin with basic functionality. It can be used to create git-based projects ('git init' and 'git add' would be used) and it can do 'git add/commit/remove' inside Projects View. Also there are some little tests and another code whish is not used now. Somewhere the code needs cleanup, but it's ok. |
|
|
|
|
|
|
|
|
|
|
Akarsh Simha committed changes in /branches/kstars/summer/kdeedu/kstars/kstars:
|
+ Adding key binding 'F' to verify StarBlockList integrity (checks for large jumps in magnitudes between neighbouring StarBlocks in an SBL)
+ Adding key binding 'G' to print the structure of the LRU Cache
+ Adding timing code to output time elapsed in various segments of the most recent draw() loop, bound to key 'B'
+ Fixing quite a few serious bugs
+ Adding more error / warning messages |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sebastian Kügler committed changes in /trunk/playground/base/plasma/applets/grid:
|
New cell applet. It just paints a color.
The cell applet will fill the empty cells in the grid, provide hover effects and should be replaced when a new applet is put in its place in the Grid.
Right now, it has "yellow" as its single feature. |
|
|
|
|
|
|
|
|
|
|
Aaron J. Seigo committed changes in /trunk/KDE/kdebase/workspace/libs/plasma:
|
support multiple drag from applet browser and multiple drop on containment
someone went to all the trouble to make the pixmap painting cute for the multiple situation, but didn't do the actual drag bit =P |
|
|
|
|
|
|
|
|
|
|
|
|
Szymon Stefanek committed changes in /branches/kdepim/kmail-soc/kmail:
|
Yet more work on the MessageListView.
The view filling algorithm is starting to become very powerful but also complex. I guess I'll have to add a lot of comments.
Work in progress :) |
|
|
|
|
|
|
|
|
Thomas Thrainer committed changes in /trunk/KDE/kdepim/korganizer/views/monthview:
|
Add scrolling support to the new month view. Scrolling is possible now using the mouse wheel, PgUp and PgDown and the buttons provided next to the month view.
This also fixes some issues in the month view (wrong size of scene rect, incidence scrolling issues). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Seb Ruiz committed a change to /trunk/extragear/multimedia/amarok/src/collection/sqlcollection/SqlMeta.cpp:
|
Implement autofetching of images if there is no cover set and the album is non-empty. Adding this as a preliminary test to get feedback as to whether we want to include it by default.
I'm going to say that this can use a lot of optimizing, there are a few pathological cases that I have thought of and haven't handled: - Cover auto-fetched, user removes. Restart application, cover gets autofetched again. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Office |
|
Carlos Licea committed changes in /trunk/koffice/filters/kpresenter/kpr2odf:
|
->Added the converter of the background: color, gradient (still incomplete) and picture ->Added the function to create the PageLayout (KPR only has one of those) ->Added the function to create the MasterPage (same, only one in KPR) ->Changed the id of the pages to "page(No)" |
|
|
|
|
|
|
|
|
|
|
|
|
Benjamin Cail committed changes in /trunk/koffice/filters/kword/msword-odf:
|
|
some work on lists and headers. Headers now display, and there's support for different headers for odd and even pages. There's still some cleanup to do in the code, though, now that it's finally working. |
|
|
|
|
|
|
Thorsten Zachmann committed changes in /trunk/koffice:
|
* let the action know its id so that we can get to its factory and option widget. * added KoActionEventData base class that can be passed to the option widget * added KoActionEventWidget base that is used for configuring the special event action. * work on sound action: * use commands so that undo/redo work * added option widget * added way tp get the sound data from the event action * export sound collection so it can be used in plugins
The new sound event action is not yet used during the presentation. |
|
|
|
|
|
|
|
|
|
|
Fredy Yanardi committed changes in /trunk/koffice/kpresenter/part:
|
Initial work for Presenter View feature, currently it is disabled by default, and if enabled it only shows two synchronized canvasses, one canvas on each monitor. I hope this doesn't break anything. |
|
|
|
|
|
|
Fela Winkelmolen committed changes in /trunk/koffice/karbon/plugins/tools:
|
Semplify the outline path of the calligraphic shape. A function to simplify path shapes is added in KarbonSimplifyPath.{cpp|h}
It's still a bit unpolished, and one piece is missing, but for what I needed it already does the job. |
|
|
|
|
|
|
|
|
Optimise |
|
Graphics |
|
Jesper Pedersen committed changes in /trunk/extragear/graphics/kphotoalbum:
|
Speed up populating the datebar with a factor of 4. Before it took 6 seconds to delete an image due to that, now it only take 1.5 second on my machine.
This speed up should also be there for any operation that changes the amount of images shown in the datebar. |
|
|
|
|
|
|
|
|
Other |
|
|
|
David Nolden committed a change to /trunk/KDE/kdevplatform/language/duchain/duchainutils.cpp:
|
Cache the icons used in the completion list, and force them to be loaded by converting them to a pixmap, and then back to an icon.
This was necessary because on my quite ok computer(Athlon 64 3200+), the completion list has become unusably slow due to permanent icon loading.
Since we're supposed to have an icon cache, and it was faster before, this seems like a bug in KDE. However, it will always be faster creating and loading the icons statically like this.
For me this makes the completion-list usable again. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Educational |
|
David Capel committed changes in /branches/work/soc-parley/parley:
|
Various changes
Languages to use are no longer hardcoded, and should follow parley's preferences. The input box now follows the practice_text_translation_background element The prompt text kinda follows the practice_text_background element (this needs work)
The useless eduwidget.h header is now gone.
Themes are now accessed through a .desktop file and are stored in $APPDIR/parley/themes/
TODO: gui fixes, get KNS repo up and working |
|
|
|
|
|
|
|
|
David Capel committed changes in /branches/work/soc-parley/parley/practice:
|
Enabling sound and image prompts -- for now they share the same layout element, but should never be shown at the same time, so it's not a big deal.
I still need to do more testing on sound prompts... |
|
|
|
|
|
|
|
|
|
|
|
|
David Capel committed changes in /branches/work/soc-parley/parley/src:
|
A couple of changes: * The bar now measures progress instead of % correct. TODO change the names of the elementIds to reflect this (perhaps "bar_background" and "bar") * Incorrect entries are added to the back of the active vocab list. You now must answer them all correct to finish successfully. * cmake now installs the themes... * New design: the logic classes (Statistics, PracticeEntryManager, AnswerValidator, Hint) can now keep pointers to each other (since they will exist in every mode); however, the other gui, ui, etc classes will still be in the void, since they are optional and volatile. * Update of TODO |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sebastian Kügler committed changes in /trunk/KDE/kdebase/workspace/plasma/applets/battery:
|
Make the minimumwidth depend on the label on top of the battery.
This fixes the label being cut off when (in horizontal panels) the width of the text label > content height. Likewise for vertical panels, but here it's actually a different issue since the text cannot be printed without some clipping in really small panels -- text normally is a bit wider than tall.
Maybe just rotating the text makes sense ...? |
|
|
|
|
|
|
|
|
Sebastian Kügler committed changes in /trunk/playground/base/plasma/applets/grid:
|
* loadApplets becomes initApplets * loading of an applet gets two functions, one taking a pointer to an applet, the other one taking a name, which will load a new applet
Dragging an applet from the appletbrowser into one of the grid's cells now actually works, yay :-) |
|
|
|
|
|
|
|
|
|
|
Jaroslaw Staniek committed changes in /trunk/KDE/kdelibs/kio/kfile:
|
Add native mode to KFileDialog without affecting its API
It is useful for MS Windows (and Mac?) for improving native experience. Native mode is the default on Windows. Users demanding powerful facilities of KDE dialogs can set the following in kdeglobals:
[KFileDialog Settings] Native=false
The same setting shall be available in the forthcoming "Integration" page of KDE system settings on Windows/Mac.
Details: - qtFilter() added for converting filters from KDE format to Qt format - In KDE code, KFileDialog instances are allocated and QDialog::exec() is executed; since we are using static QDialog functions in the native mode, exec() is reimplemented to call them - KFileDialogPrivate::Native member added for storing information for KFileDialog instances so we know what to do when exec() is called; moreoved selectedUrl*() and selectedFile() methods work as expected for native mode too - on the other hand, static functions like KFileDialog::getOpenFileName(), check the "native" setting directly using static bool KFileDialogPrivate::isNative() - setMimeFilter() sets filter for use in Qt dialogs - KFileWidget is instantiated as the code uses its subwidgets but we do not show any widget, it does not seem to be overhead - to add more consistency, KFileDialog::getExistingDirectory*() functions use native dialog only for native mode (before native dialog was always used through #ifdef'd code on Windows) - _qt_filedialog_*_hook hooks are now only used for KDE mode; and similarly to getExistingDirectory*() change, qt_filedialog_existing_directory_hook is set for KDE mode on Windows too; make KFileDialogQtOverride a class since it looks and smells like a class - fix declaration of _qt_filedialog_*_hook functions: Qt exports them using Q_GUI_EXPORT, not C linkage as "extern" word would suggest before - Native::startDir() and staticStartDir() are used for getting default start dir value when executing exec(). Thus we can call setSelection() before calling exec(). - QFileDialog handlers: clear hooks as soon as native mode is detected (we cannot check native setting in KFileDialogQtOverride() before KComponentData is instantiated) |
|
|
|
|
|
|
Michael Leupold committed changes in /trunk/KDE/kdelibs:
|
Separate kwalletd from kded and make it a stand-alone executable. It's started whenever the Wallet client API needs it.
Disabling wallet support in the options makes kwalletd not launch. |
|
|
|
|
|
|
|
|
|
|
Albert Astals Cid committed changes in /trunk/KDE/kdelibs/kdeui/widgets:
|
Make kcombobox minimumsize bigger if the lineedit is a KLineEdit and it's editable otherwise looks ugly because the clear button will cover the last 2/3 letters of the biggest entry
Nobody opposed for a week. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Thomas McGuire committed changes in /trunk/KDE/kdepim:
|
Merge most of Kleopatra and libkleo from the enterprise4 branch, as discussed on the release team mailing list.
This needs an up-to-date kdepimlibs.
Surprisingly, svnmerge didn't choke on the huge list of commits, there were only two conflicts, in kleopatra/tests/gnupg_home/pubring.kbx and kleopatra/pics/kleopatra_splashscreen.png Since those were binary files, I simply manually copied them over from the e4 branch instead.
I'm sure I'll get the price for the longest commit message for this. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Office |
|
Adam Pigg committed changes in /trunk/koffice/kexi/plugins/reportspgz:
|
HTML export the 'correct' way. Instead of copying the pre-renderer, which is a complex piece of code, extend the existing pre-renderer and pre-rendered document object to support 'sections' as well as 'pages'.
This allows the html exporter to be much simpler as it just iterates over the sections/objects in the pre-rendered document. |
|
|
|
|
|
|
Thomas Zander committed changes in /trunk/koffice/libs:
|
The toolbox is something I initially based on some hacks in Qt3, but those didn't really seem to work the same in Qt4 leading to rather a broken toolbox.
The correct solution was to write my own layout manager so I did. The layout now is heightForWidth() capable, but QDockWidget does not yet support that. I hope to change that in the future to have even better usability for the toolbox.
A huge advantage of this toolbox is that the 2-columns concept is no longer hardcoded. The layout is much more dynamic. |
|
|
|
|
|
|
Lorenzo Villani committed changes in /trunk/koffice/kexi/webforms:
|
* New template: it's based upon kde.org website so produced web pages are more consistent with KDE in general * Persistent table listing on the left * Some small improvements toward accessibility * Reorgainzed webroot contents * New table look (a bit improved, IMHO) * Adapted some of the code in Read.cpp toward accessibility |
|
|
|
|
|
|
|
|
Other |
|
Allen Winter committed changes in /trunk/quality/krazy2:
|
kpartgui .rc files are now supported. to start, the following checks are being done: contractions, spelling, endswithnewline, i18ncheckargs |
|
|
|
|
|
|
|
|
|
|
|
|
Harald Sitter committed changes in /trunk/playground/artwork/Oxygen/firefox:
|
Welcome to Firefox 3 :-D First public release is probably going to be next week, so read the README and give the theme a testride.
It replaces (almost) all GTK/Tango icons ... < 10 are missing oxygenish replacements (no really important ones though) |
|
|
|
|
|
|
|
|
|