|
| This Week... |
|
Taskbar and KMenu functionality from KDE 3.5 returns to the Plasma panel, and work on clocks in Plasma, with the move of the binary-clock Plasmoid to kdereview. Improvements in annotation handling in Okular (which has been officially capitalised). Essential support for viewing bug contents in the rewrite of KBugBuster. More data export options (CSV, HTML, etc) in Kalzium. The CVS implementation in KDevelop moves to the Model/View framework. The start of JavaScript functionality in Kst plugins. Usability refinements in Konsole. Mailody begins to be ported to the Akonadi service. A "mirror search" plugin for KGet. IPv6 work in KTorrent. Colour docker improvements across KOffice. Optimisations in KDevelop and NEPOMUK. Various work in KJS and KHTML. Support for the MPRIS multimedia player interaction specification in Dragon Player, with Dragon Player moving from playground/multimedia into kdemultimedia for KDE 4.1. The Kopete Bonjour protocol moves to kdereview. The copy of Qt within KDE SVN is updated to be GPL version 3 compatible.
|
Aaron Seigo talks about Plasma and Release Events:
|
Plasma development is going on at a furious pace right now, with the focus remaining on polishing the 4.0 code base. 145 bugs were closed in the last month and a great commit rate is being achieved:
The line graph shows the rate of resolved bugs climbing at a rather steady pace. As for the commit level, the following image (thanks Simon St James!) shows all commits (green), code commits (red) and Plasma-related commits (yellow). Over the last year, Plasma-related commits have really taken off, as you can see.
So what have we been up to exactly? Besides bug fixes by the ton, we've been filling in missing features to the taskbar, like multiple rows of windows (all nicely animated!) and "show only windows on this desktop", to name a couple. Desktop icon loading has improved substantially, as has performance of many of the Plasma components.
Script support for DataEngines and Runners was recently added, and the Plasmoids continue to grow in number. The continued development has helped solidify the Plasma library even further as we discover common patterns in Plasmoids. It really didn't occur to me, for instance, how many Plasmoids would need to keep themselves in a perfect square shape. =)
In between all this great work, we also had the KDE 4.0 Release Event in Mountain View, California. Thanks to Google's amazing help in organization and financial sponsorship, the event was truly an impressive thing. The presentations were streamed lived around the world and now appear on Google Video. I've seen photos of the keynote on walls in German taverns, so I know the streaming was indeed working. ;)
It was terrific to see both industry people there, hard core developers (including kernel developers) and general community members. Highlights for me were experiencing Patrick Volkderding's first karaoke performance, the KDE-branded wine (thanks Celeste!), the truly astounding Konqi and Katie mascots, and listening to the KDE people who came to express just how much closer they felt to the project as a whole.
It was pretty hectic for me personally, with meetings lasting well into the night. That was exactly why we did this, of course: to gain exposure, get our message out, connect the community and do something worthy of a release such as this.
It will be a hard event to top, but then we don't get a 4.0 every year. However, it seems we'll be doing a KDE Americas event at the beginning of every year as a counterpoint to the Akademy events in Europe in the middle of the year.
|
|
In a Digest special, Tom Albers of Mailody presents "How to write a mail client in 10 minutes":
|
Currently the Mailody crew is working to rewrite Mailody using the Akonadi backend. Akonadi is a cross-desktop PIM Storage Service. It basically acts like a cache or proxy if you like.
On the one hand, you can feed things into it. This is done by agents or resources. This can be a simple Maildir resource, Mailody is developing an IMAP library resource, NNTP-resource, etc. etc. On the other hand it provides ways to get the data to the applications that want to use it. Not only an addressbook or mail client, but also it makes it possible for strigi to search it and recently I saw soneone interested in making a SyncML connection.
We (Mailody) were surprised how simple it is to display the data in Akonadi. How the data gets into Akonadi will be out of scope for this article, but I wil get back to that later. For now, I just assume the data is in Akonadi, for example by the Maildir resource, which simply reads the mails you have in a Maildir.
We will now show how to write a mail client, or rather a mail reader to keep it simple. First, let's see what we need for this basic client. If we look at a traditional mail client, it is usually build up out of three parts: we need an overview of the folders on the left, the headers at the top right and the display of messages happens on the bottom right.
The listing of the folders. A folder is represented in Akonadi by a Collection. The Collections hold the name to display, an internal value so you can map it in your resource and things like the amount of unread messages. Akonadi provides funtions to retrieve all those collection from a certain resource, but Akonadi goes further, it also provides a ready to use models and views to use.
So here we go with the mainwidget:
{ QHBoxLayout *layout = new QHBoxLayout( this ); QSplitter *splitter = new QSplitter( Qt::Horizontal, this ); layout->addWidget( splitter );
mCollectionList = new Akonadi::CollectionView(); connect( mCollectionList, SIGNAL(clicked(QModelIndex)), SLOT(collectionActivated(QModelIndex)) ); splitter->addWidget( mCollectionList );
mCollectionModel = new Akonadi::CollectionModel( this ); mCollectionProxyModel = new Akonadi::CollectionFilterProxyModel( this ); mCollectionProxyModel->setSourceModel( mCollectionModel ); mCollectionList->setModel( mCollectionProxyModel ); }
That's it. Now it will show the collections on the left side. If you want to see columns for unread messages and a total count, use the Akonadi::MessageCollectionModel instead. The proxy in above code is needed because Akonadi can hold different types of collection, it can also hold a bunch of vcards for example. We don't want to see those in the mail client (at least not here), we ideally we want to add a m_folderProxyModel->addMimeType("message/rfc822"); to the code.
So, next up is the headerlist. Akonadi provides the model for this as well. This model can be applied to the standard QTtreeView to show the headers. But you obviously want to have the messages displayed threaded, so you can easily spot which message is a reply to another. Here we go with the headerlist:
QSplitter *rightSplitter = new QSplitter( Qt::Vertical, this ); splitter->addWidget( rightSplitter ); mMessageList = new QTreeView( this ); mMessageList->setDragEnabled( true ); mMessageList->setSelectionMode( QAbstractItemView::ExtendedSelection ); connect( mMessageList, SIGNAL(clicked(QModelIndex)), SLOT(itemActivated(QModelIndex)) ); rightSplitter->addWidget( mMessageList );
mMessageModel = new Akonadi::MessageModel( this ); mMessageProxyModel = new Akonadi::MessageThreaderProxyModel( this ); mMessageProxyModel->setSourceModel( mMessageModel ); mMessageList->setModel( mMessageProxyModel );
For the display of messages, we will keep it simple. You don't expect this to be a finished mail client, right?
mMessageView = new QTextEdit( this ); rightSplitter->addWidget( mMessageView );
So, that are the basic display items. Of course we need to implement the two slots. CollectionActivated makes sure the correct headers are shown when you click on a Collection. Remember Collection is the term for a folder in our case.
mCurrentCollectionId = mCollectionList->model()->data( index, CollectionModel::CollectionIdRole ).toInt(); mMessageModel->setCollection( Collection( mCurrentCollectionId ) );
The other slot has to show the correct message when you click on a header. In fact, this creates a KJob to fetch the message from Akonadi. It can happen that Akonadi does not yet have the complete message. In that case it will ask the resource for the missing part and will emit the itemFetchDone after that.
DataReference ref = mMessageModel->referenceForIndex( mMessageProxyModel->mapToSource( index ) );
ItemFetchJob *job = new ItemFetchJob( ref, this ); job->addFetchPart( Item::PartBody ); connect( job, SIGNAL( result(KJob*) ), SLOT( itemFetchDone(KJob*) ) ); job->start();
You might be confused by the DataReference. A message is represented by an Akonadi::Item. That Item holds the actual data, for example via the payload functions. To reference a certain Item in the Collection a DataReference is used, basically a unique id. In our case you can use a mailbox name in combination with the message-id or uid as a unique key.
When the data arrives, we can display it to the user:
ItemFetchJob *fetch = static_cast<ItemFetchJob*>( job ); if ( job->error() ) { qWarning() << "Mail fetch failed: " << job->errorString(); } else if ( fetch->items().isEmpty() ) { qWarning() << "No mail found!"; } else { const Item item = fetch->items().first(); mMessageView->setPlainText( item.part( Item::PartBody ) ); }
That is it. Now you have your basic mail reader. I bet it took less than 10 minutes. You can understand that rewriting an existing mail client to use Akonadi is a bit more work. But it is fun, as it's deleting most of your own work (isn't that the real meaning of 'eating your children'??), and replacing it by Akonadi elements.
Of course when you have this foundation you want to extend it with more features. But you can easily do that, for example by writing the delegates. I hope this "how to" inspires you to write your own mail client, or to join the Mailody or Akonadi team.
Note: the above sections of code come from the mail client which is part of Akonadi. You can find it in KDE SVN. It is called "Akonamail", and is written by Bruno Virlet.
|
|
The post-KDE 4.0 commit surge continues this week, with 3043 commits. Part of this increase can be explained by the return of development branches (after several years of less-strict development), where certain feature and bugfix work is done in trunk/ and backported to the KDE 4.0 branch, essentially creating two commits for a single change.
However, that is not the whole story... there is something more, something that I can't readily prove with statistics. There is a real buzz to KDE development right now, an extra edge to what is already a vibrant atmosphere, and it is evident everywhere, from IRC to SVN.
More commits mean more work for me, but i'm definitely not complaining!
|
|
| Statistics |
|
| Contents |
|
|
Bug Fixes |
Features |
Optimise |
Security |
Other |
|
Accessibility |
|
|
|
|
|
|
Development Tools |
|
|
|
|
|
|
Educational |
|
|
|
|
|
|
Graphics |
|
|
|
|
|
|
KDE-Base |
|
|
|
|
|
|
KDE-PIM |
|
|
|
|
|
|
Office |
|
|
|
|
|
|
Konqueror |
|
|
|
|
|
|
Multimedia |
|
|
|
|
|
|
Networking Tools |
|
|
|
|
|
|
User Interface |
|
|
|
|
|
|
Utilities |
|
|
|
|
|
|
Games |
|
|
|
|
|
|
Other |
|
|
|
|
|
|
|
Bug Fixes |
|
Educational |
|
Jason Harris committed changes in /trunk/KDE/kdeedu/kstars/kstars:
|
Fixing bug #132994: We come to bury Pluto, not praise him.
We have already been deriving Pluto from the KSAsteroid class for practical reasons. With this change, Pluto is now labeled an "asteroid" in the details dialog. |
|
|
|
|
|
|
|
|
Maksim Orlovich committed changes in /branches/KDE/4.0/kdelibs/kjs:
|
Limit stack usage of libPCRE (and raise an exception when it runs out of stack space, for diagnosibility).
Also, do not accept some super old (>4 year old) pcre versions; as they can severely cripple regexp support, and intefere with this bugfix. Also tweak the message about missing PCRE in configure check --- libPCRE doesn't result in "better" regexp support; the support w/o it is a last-resort fallback...
Based on patch by Sune Vuorela (username debian, hostname pusling, tld com) |
|
|
|
|
|
|
Maksim Orlovich committed changes in /branches/KDE/4.0/kdelibs/khtml:
|
Move object loading to the DOM from the renderer, fixing the long-standing major bug that hidden iframes couldn't be interacted with.
The basic overview here is that a new DOM base class, HTMLPartContainerElementImpl is created, that manages the interaction with KHTMLPart when it comes to loading child parts.
KHTMLPart now keeps tracks of those per ChildFrame (along the way removing the confusion of having 2 m_frames in close quarters talking about different things); and the DOM objects for iframe/object/embed/frame/etc. request the loading themselves as needed.
The renderer "just" displays the part widget set from the DOM. |
|
|
|
|
|
|
|
|
Peter Penz committed a change to /trunk/KDE/kdelibs/kio/kfile/kicondialog.cpp:
|
Fixed issue that inside the .directory file the full path of an icon is given:
Icon=/home/jakob/dev/kde/install/kde/share/icons/oxygen/48x48/places/user-desktop.png
instead of
Icon=user-desktop
The full path leads to a blurry icon when showing the icon in an increased size (e.g. in the Dolphin information bar). |
|
|
|
|
|
|
Maksim Orlovich committed changes in /branches/KDE/4.0/kdelibs/khtml/rendering:
|
Do not emit onchange on synthetic toggling of radio buttons and checkboxes. That's incompatible, and also led to #155973, crash on the beta BBC's page location selector, as we have the following scenario:
1. JS sets checked. 2. We do updateFromElement, ask Qt to update the widget 3. The widget emits the change signal 4. The change signal handler does ref() [rc = 2] 5. The change signal handler does onchange(). The event running causes a detach, which does a deref() [rc = 1] 6. The change signal handler does deref() [rc = 0], so the Render* gets destroyed 7. The common parts of updateFromElement, such as RenderWidget::updateFromElement, etc., run on a deleted RenderCheckBox/RadioButton, trying to access deleted RenderStyle, etc. boom. |
|
|
|
|
|
|
Peter Penz committed changes in /trunk/KDE/kdebase/apps/dolphin/src:
|
Treeview fixes: * don't jump to the selected folder when expanding a sub tree within the treeview widget * don't reset the root of non-local URLs when there is no Places-URL available |
|
|
|
|
|
|
|
|
|
|
|
|
Maksim Orlovich committed changes in /branches/KDE/4.0/kdelibs/khtml/xml:
|
Simplify and robustify the TreeWalker implementation somewhat, fixing a couple of bugs along the way.
It actually seems very close to right (unlike the utterly wrong impl WebCore has :-) ) |
|
|
|
|
|
|
Maksim Orlovich committed changes in /branches/KDE/4.0/kdelibs/khtml:
|
Make node filters work in JS. Uff. Now all the treewalker tests in acid3 pass.
Remove some dead/commented-out stuff in dom2_traversal.*, which came from misunderstanding of the role of DocumentTraversal interface..tweak a comment |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Cláudio da Silveira Pinheiro committed a change to /branches/KDE/3.5/kdenetwork/kopete/libkopete/avdevice/videodevice.cpp:
|
Final fix for the sn9c1xx driver. I tested myself with actual hardware. sn9c1xx drivers have non-conformant behavior, diverging from V4L2 specification.
Instead of return an error when setting a given unsupported pixel format, it returns SUCCESS but the selected format is not the one you asked for.
The maintainer must be notified, so he will (hopefully) fix the driver. |
|
|
|
|
|
|
Christian Hubinger committed changes in /branches/extragear/kde3/network/kmyfirewall:
|
* Fix: KMFTarget sshPort save/load * no use of KShellProcess or KProcess::setUserShell() anymore * Move all process exec logic to new class KProcessWrapper * Lost of amsller fixes & cleanups * Fix: Templates* New: Web Server teplate for the iptables interface |
|
|
|
|
|
|
Office |
|
Thorsten Zachmann committed changes in /trunk/koffice/libs:
|
o Fix copy and paste of pages to not insert duplicate master pages. This broke by a fix :-) of some code.
I really hope we can get automated tests after each ci. That would have saved me quite some time figuring out what was wrong. |
|
|
|
|
|
|
Features |
|
|
|
|
|
|
|
|
|
Inge Wallin committed changes in /trunk/KDE/kdeedu/marble:
|
Continue with min and max zoom in .dgml files
Almost done now, just need to get the actual min/max zooms from the MapTheme within the Model from the Widget.
However, the widget can't get at the real map theme, just its name right now, so we'll have to do some refactoring of the marblemodel. |
|
|
|
|
|
|
|
|
|
|
|
|
Torsten Rahn committed changes in /trunk/KDE/kdeedu/marble:
|
- Committing Settings Widget for KDE 4.1.
This mockup-stage .ui file shows about what I have in mind in terms of features being supported for KDE 4.1 and how they should get offered in the settings dialog. |
|
|
|
|
|
|
Frederik Gladhorn committed changes in /trunk/KDE/kdeedu/parley/src:
|
Add the KCharSelect widget to let the user enter phonetic symbols in a nice way. The width of this widget is horrible.
(Taking away the extra info display doesn't help much because of the two combos and line edit next to each other. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Marcel Wiesweg committed changes in /trunk/extragear/graphics/digikam/libs/database:
|
Add (yet unused and untested) methods to imagequerybuilder to create an SQL query from a search XML description.
The list of supported fields comprises the Albums, Images, ImageInformation, ImageMetadata, ImagePositions and ImageComments (basic support) tables.
Future additions for copyright information and more properties is of course possible. |
|
|
|
|
|
|
|
|
Maksim Orlovich committed changes in /branches/work/kjs-debugger2/kdelibs/khtml/ecma/debugger-ipc:
|
Put in the back-and-forth, event-loop-less/blocking IPC core I put together while visiting my folks, as well as the IDL + marshalling stuff needed for the debugger.
This is neither hooked up to khtml or the debugger proper, nor really tested beyond inspecting IDL-generated code, but it's valuable to enough to have good backup :-) |
|
|
|
|
|
|
Dan Meltzer committed changes in /trunk/KDE/kdebase/workspace/plasma/applets/digital-clock:
|
Add support to the digital clock to show seconds.
This brings up an interesting timing bug where if there is a digital clock showing seconds, and one that isn't, the one showing seconds does not get updated at the :01 mark, where the one not showing seconds does. |
|
|
|
|
|
|
Robert Knight committed changes in /trunk/KDE/kdebase/apps/konsole/src:
|
Scroll the terminal display continually when the mouse is held down and then moved outside of the display, rather than requiring continual mouse movement to scroll. Make the scrolling rate proportional to the distance between the edge of the display and the mouse position.
Currently suffers from quite noticable flicker when scrolling quickly through a large scrollback buffer because the display is scrolled and repainted before the selection is extended.
Stop the cursor from blinking and text from blinking when the display loses focus and restart blinking when the cursor regains focus.
Ensure that the cursor is visible in a hollowed-out style when the display does not have focus. |
|
|
|
|
|
|
Sebastian Trueg committed changes in /trunk/playground/base/nepomuk-kde:
|
And here comes all my unstable nepomuk development: * An updated search Api which properly and generically searches tags and all other stuff. * The resource display framework which is pluggable to allow the display of arbitrary resources (keep in mind we have more than just files, way more)
It can be used to display resources in widgets, in listviews, and in plasma elements.
All using the same plugins. |
|
|
|
|
|
|
Maksim Orlovich committed changes in /branches/KDE/4.0/kdelibs/khtml:
|
For jQuery: support onload on script elements, so we can get past test 105. Partial merge from WC, minus code duplication, plus comments.
One thing I am not sure of: do we want to do error event as well?
I am not a fan of 50% legacy, 50% proprietary events that bubble. |
|
|
|
|
|
|
Olivier Goffart committed changes in /trunk/KDE/kdebase/workspace/plasma/applets/tasks:
|
Option to show only task of the current desktop in the taskbar.
I can't use KDE without this :-)
It's enabled by default because i think this is an importent feature for everyone using virtual desktops. But feel free to disable it by default if you don't like that. |
|
|
|
|
|
|
Rafael Fernández López committed changes in /trunk/KDE/kdelibs:
|
|
Smooth previews, as promised, for 4.1. This kind of animations should be configurable from a KCM so the user could decide whether he/she wants animations. |
|
|
|
|
|
|
Jure Repinc committed changes in /trunk/KDE/kdebase/workspace/plasma/applets/tasks:
|
Yay "Show only tasks from the current desktop" is back.
As a thank you I can at least polish it up a bit: * task buttons don't disappear for windows on all desktops after you switch to another desktop (used isOnCurrentDesktop()) * after you move the window to another desktop the task button now dissapears * changed the setting label a bit, hope it's a bit better now |
|
|
|
|
|
|
Sebastian Sauer committed changes in /trunk/KDE/kdebase/workspace/plasma/applets/kickoff/simpleapplet:
|
* Introduced menu-views to allow to define what menu should be displayed. Supported views are: Combined, Favorites, Applications, Computer, Recently Used or Leave
* Introduced format-option to allow to define the menu-caption. This is equal to the "Menu item format" option in KDE3.
Supported formats are: "Name only", "Description only", "Name Description" (default) or "Description (Name)" |
|
|
|
|
|
|
|
|
|
|
Sebastian Trueg committed changes in /trunk/KDE/kdebase/runtime/nepomuk:
|
* New Strigi configuration: The nepomuk server can now read and write the strigi config directly.
This is necessary anyway since strigi does not support the command line parameters we used before anymore.
* Configuration GUI for Strigi exclude filters. * Better Strigi runtime control including termination which is needed since Strigi does not care much about being exited during indexing. * Using Soprano's new SignalFilterModel (if available) to restrict the number of updates in libnepomuk. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dan Meltzer committed changes in /trunk/extragear/multimedia/amarok:
|
Add support for "oga" files in places where we can (That I can find).
I've left the media devices alone as some may not handle .oga properly, and users can always add the file format themselves if they so choose.
This still needs to be backported to stable, I don't have a checkout. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Joris Guisson committed changes in /trunk/extragear/network/ktorrent:
|
Changes : - Made DHT IPv6 ready - Add support for peers6 field in tracker announce responses (so we are IPv6 ready there to) - Fix bug displaying the wrong number of leechers |
|
|
|
|
|
|
|
|
|
|
Christian Hubinger committed changes in /branches/extragear/kde3/network/kmyfirewall:
|
* Redesigned auto configuration. Now based on a shell script. Works also on remote targets using SSH. Auto Config now vanished from the Configdialog and accessable in the My Network View. * Remove unused files * Add Config Valid Checks * Add Pointer to the mianWidget for all KIO:NetAccess methods to provide kwallet support |
|
|
|
|
|
|
|
|
|
|
|
|
Peter Simonsson committed changes in /trunk/koffice/libs/main:
|
Embed the filedialog in the start widget. Move the open button to bottom right in all panes. Also prepare the start widget to handle more then one custom widgets. |
|
|
|
|
|
|
Martin Pfeiffer committed changes in /trunk/koffice/libs/guiutils:
|
- remove things I commented out from the CMake file - commit an action to provide a drop-down menu to insert shapes:
motivation: personally I don't want to have a docker to insert shapes, though I like the new one. But screen space is limited :-)
So this is a menu, that I would really like to see as option to so that you can configure how you like to insert your shapes. |
|
|
|
|
|
|
|
|
|
|
|
|
Utilities |
|
Brad Hards committed changes in /trunk/playground/libs/kcabinet:
|
Refactoring to allow polymorphic decompression algorithms.
Polymorphism: all the cool kids were doing it, so I thought I should too. |
|
|
|
|
|
|
|
|
Ralf Habacker committed changes in /trunk/kdesupport/kdewin-installer/shared:
|
- added new download mirror type SourceforgeMirror. SourceforgeMirror is able to parse the file list generated from a mirror of the sourceforge downloader service system. - added filter function to select lated package versions.
This is required because sourceforge mirrors only supports one directory and there may be more than one version for a given package available. |
|
|
|
|
|
|
Optimise |
|
Development Tools |
|
David Nolden committed changes in /trunk/KDE/kdevelop/languages/cpp:
|
Give the completion-list items to the kate completion-model hiearchically, grouping items that have common role-values like InheritanceDepth and ArgumentHintDepth together.
Kate does not need to query the values that are inherited from the parent nodes any more, and in future it may even use the pre-computed grouping.
This makes the completion-list show up instantly, instead of waiting for seconds with blocked UI, even if it is very long.
This needs up-to-date kdelibs. |
|
|
|
|
|
|
KDE-Base |
|
David Nolden committed changes in /trunk/KDE/kdelibs:
|
Optimizations for very large completion-lists(see KDevelop): - Allow optionally passing data to kate hierarchically, so that grouping can take place without querying each item for 3 values.
Parent-nodes define data common for all sub-nodes(see interface documentation). - Change the vertical scroll-mode back to ScrollPerItem. ScrollPerItem is buggy while scrolling down the list, but ScrollPerPixel needed Qt to compute the size of each completion-item, which is extremely slow for very long lists. - Remove 2 old files.
Now the completion-list in kdevelop shows instantly instead of waiting for seconds, even when it's very long. |
|
|
|
|
|
|
Sebastian Trueg committed changes in /trunk/KDE/kdelibs/nepomuk:
|
Finally I can do my "little" commit: * I completely reimplemented the ontology classes. They are much cleaner and faster now and comply with QT/KDE coding styles (shared privates and return by value and stuff)
For compatibility the old classes are kept and should be fazed out after KDE 4.1. * Nepomuk::Resource has been improved and cleaned up a bit. A new ResourceFilterModel takes care of creating proper named grahs for the data. * Nepomuk::Resource now supports multiple types which will be needed soon. |
|
|
|
|
|
|
Jens Bache-Wiig committed changes in /trunk/kdereview/phonon/gstreamer:
|
Reduced latency on gstreamer messages
We now spin a glib eventloop in the backend to signal Qt directly about state changes rather than polling the bus. This should result in somewhat improved latency and battery consumption. |
|
|
|
|
|
|
|
|
Other |
|
Benoît Jacob committed changes in /branches/work/eigen2:
|
big architecture change dissociating "actual" dimensions from "maximum possible" dimension. The advantage is that evaluating a dynamic-sized block in a fixed-size matrix no longer causes a dynamic memory allocation.
Other new thing: IntAtRunTimeIfDynamic allows storing an integer at zero cost if it is known at compile time. |
|
|
|
|
|
|
Other |
|
|
|
Andreas Pakulat committed changes in /trunk/KDE/kdevplatform:
|
Change our SOVERSION to 1 as discussed. Claiming these libs had already 4 BiC releases is just false.
Sorry for being a bit late, I totally forgot about this on thursday.
Note for anybody with an existing kdevplatform build: After this update you first need to completely remove any libkdevplatform* in your builddir and installation dir and then start the build.
AFAIK no reason to completely remove the builddir for kdevplatform or kdevelop, just the above and then run a simple make in both. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Robert Knight committed changes in /trunk/KDE/kdebase/apps/konsole/src:
|
Avoid jumping to end of output when a modifier key (Control, Shift or Alt) is pressed on its own, as these keys are used to specify the selection mode.
This makes it easier to do block selection. |
|
|
|
|
|
|
|
|
David Faure committed changes in /branches/KDE/4.0/kdebase/apps:
|
Extracted a MimeTypeWriter from the filetypes kcontrol module, to have the code that writes out a xdg-shared-mime compliant mimetype in one place.
Ported nspluginscan to xdg-shared-mime so that it generates mimetypes that work. |
|
|
|
|
|
|
|
|
Thomas Reitelbach committed changes in /branches/KDE/4.0/kdebase:
|
revert 762802.
Hm, all necessary strings have already been extracted because scripty automatically extracts ui-files in the same dir where Messages.sh resides.
The reason for all those modules beeing untranslated must be something else. I'll have to investigate it. |
|
|
|
|
|
|
Sebastian Trueg committed changes in /trunk/KDE/kdelibs/kdeui/widgets:
|
Improved usability of KEditListBox both for the developer and the user: * Developers can now use setCustomEditor instead of specifying the editor in the constructor. This allows usage in QDesigner. * Users can properly deselect items to add new ones. The selection is not based on the current item anymore but on the selected one. Thus, users see the selection. * The lineedit always has focus, making editing easy while up and down keys are mapped to the listview for keyboard selection of items. * The tab order is now fixed. * Buttons have icons.
All in all KEditListBox should be really usable now. :) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Multimedia |
|
Jeff Mitchell committed changes in /trunk/extragear/multimedia/amarok/src:
|
Modification to the playlist SVG so that the side edges of tracks are separate.
The idea was that when you started dragging, the border on the sides would stay put while the rest was dragged, making it look significantly better since it wouldn't look like weird white space.
However, this doesn't work -- all three pixmaps are dragged around, with white underneath. If anyone can look at this before the demo tomorrow, I'd appreciate it. |
|
|
|
|
|
|
|
|
Sebastian Trueg committed changes in /trunk/extragear/multimedia/k3b:
|
Completely rewritten the K3bThreadJob API. K3bThread is now not part of the public API anymore.
Implementing a threaded job is now as simple as reimplementing the run method in K3bThreadJob.
Everything else works as with K3bJob. This makes for so much more readable code and is possible due to the nice signals and slots in QThread feature of QT4. :) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Utilities |
|
Jasen Minton committed a change to /trunk/KDE/kdeutils/superkaramba/src/karambaapp.cpp:
|
With this change, the action to open the theme dialog is turned into a toggle. If it's not open, open it. If it's already open, hide it.
This allows clicking on the system tray icon to be a means of closing the dialog much like many system tray items already behave and is coming to be expected. |
|
|
|
|
|
|
|