In April, several of us will be coming together in Milano, Italy, for a four day Plasma developer sprint codenamed "Tokamak" (continuing the tradition of bad high energy physics puns in the project ;).
We've also gotten the necessary permission from the translation teams to backport some of the more requested features from 4.1 into the 4.0 branch, so a number of features that impact the panel and other parts of the Plasma workspace have made their way into svn for 4.0.2. Over 80 commits have been backported thus far, and we'll be doing another batch of backports for 4.0.3 next month.
Plasma itself has continued to be refined with numerous bugs being squashed and configuration for things such as SVG Plasma themes appearing in the user interface. Speaking of SVG themes, the theme system now adapts automatically to non-composited environments as well as low color displays. This is driven in part by people starting to use Plasma in both thin client as well as mobile device systems.
Not to be left out, KRunner is also being improved. A number of performance improvements were checked in this week, and work is underway to improve the user experience including better ranking of matches, the ability for users to discover the syntax offered by the various runners (e.g. "spell <word>" checks spelling via Sonnet, but who knows that?) and an improved interface display.
As an interesting aside, with just two lines of code (one using Solid and the other Threadweaver), the number of threads used by krunner to perform matches with now scales along with the number of CPU cores available on the machine (with the abiity to set a hard upper limit on it via the configuration). This shows just how powerful and useful the new frameworks in KDE4 are.
Except for Jeffrey, we are relatively new to Linux. We've all chosen KDE because it was already widely spread in our environment and while programming with Qt and kdelibs, I saw yet again that it was the right decision. Some years ago (in the Windows era of my life), I've worked with some Microsoft libraries. Compared to kdelibs, what I got there was quite uncomfortable and data-centric while the design of kdelibs is more based on what a developer actually needs. If you have some basic C++ skills, I really recommend you to try kdelibs for your next program.
KDiamond is a Bejeweled clone or, more generically, a three-in-a-row game.
KDiamond is available from KDE SVN in playground/games since last Friday, and has evolved quickly: Like most other games in KDE, it is now based on QGraphicsView, and includes some basic animations. It was imported to KDE SVN after its first release (with many help from the friendly guys at the #kdegames channel). What you're seeing here is not the mentioned classic theme, but the new default theme created by Eugene Trounev:
To make the list of contributors complete, many thanks to Dmitry Suzdalev, Albert Astals Cid, Riccardo Iaconelli, and Pino Toscano for their help on improving the code. Also, as I learned to develop with kdelibs by reading code from others, I think this is the right place to thank the developers of Klipper, KLines, KMines, and KNetwalk for your clean and readable code. Now the contributors' list is really complete!
If you always have wanted to play a Bejeweled game on your KDE desktop, this is your chance to contribute: the gameplay of KDiamond needs balancing, so tell me about your impressions of the difficulty of the different levels: Was the game too easy or too hard, and what about the difficulty levels? (Bug reports are also welcome!).
Send your reports to my email address, which you can find in KDiamond's about dialog.
I look forward to reading (and then publishing!) your introductions - send them to me!
|Commits||2830 by 245 developers, 6750 lines modified, 1558 new files|
|Bugs Opened||355 in the last 7 days|
|Bugs Closed||239 in the last 7 days|
|Aaron J. Seigo||
|Albert Astals Cid||
Internationalization (i18n) Status
Bug Killers and Buzz
|Aaron J. Seigo||
|Adriaan de Groot||
There are 137 selections this week
Hopefully fix the crash in goHome in the qt only version. Unfortunately untested on the qt-only version, where there used to be a crash.
There is a hurry because tackat need this for his train ride and I don't have time to build a qt only version before the train leaves.
Fix four bugs. All patches have been provided by David Benjamin.
Set the size to 1 instead of asserting and crashing.
Aaron, as this is controversial, I'll let you decide if this fix is ok. (read the bugreport to know more)
Fix a huge bug in deepgrep. deepgrep has been broken since version 0.5.2. In this version, deepgrep used an IndexManager that provides the IndexWriter, instead of using the GrepIndexWriter directly.
The manager returned a dummy writer instead of the required GrepIndexWriter.
Now the right IndexWriter is returned.
Apply patch by David Benjamin fixing LTR layout of QToolBox he gave me two options and i chose the one that mirrored the sloping divider.
It also fixes icons from appearing twice in QToolBox
Additional fix for bug 157531.
Remove the top bar resizing issue : now, instead of having a disappearing line edit (and a lot of resizes because of this), we use setEnabled(true/false) on the line edit.
It means much improved performances, no more bad looking resizes/repaints... Only good things.
Change the way grades are handled fundamentally.
Too bad, I didn't have the idea long ago.
* One grade for each word, no longer the fromTranslation.
So whenever the user gets abc right, abc gets it's grade increased.
* Translation inherits from the new Text class.
* The new class KEduVocText will be used instead of QString in many places to for ex allow grades for individual conjugation forms etc.
* Add initial unittests for translation class.
kipi-plugins from trunk (KDE4): digiKam has a new tool to edit a GPS track list using googlemaps!
More than one point can be edited over the ma at the same time...
A fresh screenshot of the tool in action is available here: <a href="/issues/2008-02-10/files/gpstracklisteditor.png">http://digikam3rdparty.free.fr/Screenshots/gpstracklisteditor.png</a>
this is a quite massive change to the comic applet, yeah i know quite hard to review sorry for that.
the main changes are:
- i've added a provider to <a href="http://www.osnews.com/comic">http://www.osnews.com/comic</a> (got permission from them) it uses a rss feed so only last 15 will be available but i think is enough
- now the applet can be resized (option that can be disabled if you want to see the comic as is)
- the dataengine now gives more data that can also be cached at the moment it has only the url of the comic of the day, but i plan to use it also to pass the date of the previous and the next comic (useful for comics that don't have a strip every day)
- the url of the comic is displayed at the bottom of the applet and clicking on it it opens a web browser on that page (useful if the comic is scaled down and some (osnews) explicitly asks it)
add new helpers to handle the backend interfaces.
The idea is that when a backend interface needs a new virtual function the old interface is renamed but the Q_DECLARE_INTERFACE is kept (with the changed interface name).
That way implementations from backends compiled against older libphonon can still be casted to that renamed interface. A new interface is added with the name the old interface had before and a new Q_DECLARE_INTERFACE statement is added. That way backends automatically get source incompatible (kind of) which helps to find the places where new implementations are needed.
To make it easier on the frontend side to access the backend I added template magic structs/functions that will return either 0 or the correctly casted pointer.
Now I'm praying that all compilers we need to support can handle this code.
Extend the interface used for account storage integration:
* Add openStorage/closeStorage method.
* Add signal to show whether the storage is available.
Use this functionality in the account manager.
* Add an dataReset signal to the accountmanager to efficiently make a disappearing storage visible in the GUI.
Update accountmodel (in addons/kcm_accountmanager) to evaluate the new dataReset signal.
Ingo's patch to make cached imap local subscription work for top-level folders.
"while checking whether GMail can be used as lightweight groupware server. I noticed that local subscription only works for non-top-level folders, i.e. all top-level folders were shown unconditionally and KMail started to sync my kde-commits folder (very bad idea!).
The reason for this problem is that setHonorLocalSubscription( true ) is only called for the ListJobs of subfolders, but not when listing the top-level folders in the namespaces."
Add XSL script to convert a KConfigXT file into a D-Bus interface description. This can be used to make application settings available (and changeable) over D-Bus.
It's mostly a proof of concept for now to see if it helps us with configuring Akonadi resource agents with external applications.
o Use of Qt style sheets to define appearance of month view cells
o Month have now alternating colors (computed automatically from the colors defined in the configuration). This makes it easier to see what's going on while scrolling.
o The month view is now scrollable. Four buttons are provided to go back and forward one week or one month. The mouse wheel works too. Going back and forward one month using PgUp and PgDown works too.
o Added an option in the configuration to turn on/off the display of icons in the month view (can save some space, if the icon is not so important).
o Some optimizations, mainly related to scrolling the month view.
- removed the hash mDateToCell. It is about 3 times faster to compute the index in the mCells array using the start date and the date we want to get cell from. getCell() does this now.
o ToDo's with only a due date (but no due-time) were not displayed (because KDateTime is invalid in such a case, altough KDateTime::date() returns a valid date). This is fixed now.
o When clicking on the background of a month view cell, the cell was not selected. This is fixed now.
New feature for KGet: Webinterface.
The webinterface lets you control your downloads over network and KGet.
This is just initial work; at the moment you are able to list your current downloads and add new ones.
Patch from Matej Laitl
* kmilo generic plugin is now configurable (no gui yet, one have to use kwriteconfig) - one can set which kmix channels to mute and set volume on (separately - needed for Intel HDA soundcards) and one can now fine-tune "slow" and "fast" volume steps (bugs 149183, 92730)
* when channels are not configured, query kmix for master channel
* some cleanups (removal of dupe code) and new volume computation algo changed
a bit (see comments is patch)
* unregister global shortcuts in destructor (bug 75169)
* support for controlling an extra channel, for people with surround sound
* README extended to contain relevant information
Introduce support for themeable border around the game field.
Idea belongs to (guess who) Eugene. He already adjusted current default theme to include border for me to play with while implementing this feature. Not sure if it's the final one :)
Ah, and older themes still will work - KLines will figure out whether theme has a border element and act accordingly.
Waiting for new themes to come up! ;)
Lay foundations for KGamePopupItem: remove Greeter, block any input to Game after finishing.
There are also some smaller items:
* remove Debug headers
* fix time measurement in Game
* fix visibility of selection markers when resuming the Game after a pause
* fix behavior of selection markers in mouse events* make "Quit" action functional
* set the palette on theme changes only
* don't grab the data until actually shown
* show the right size and position when we are showing the tip
* allow the tooltip to figure out it's size with the help of the widget (it knows when to do this, the widget only knows how)
* don't show the tip on every item's mouse over, respect the small timeout
* only create a ToolTipData struct for those items that actually use it (memory savings as well as makes the check for showing the tip a lot simpler)
* Regenerated KDE classes from the 4.0 headers
* Added kimono runtime
* Only added classes from core, gui and sonnet. KIO classes won't compile at the moment due to a bug in gmcs. As the other modules like DOM and KParts have dependencies on KIO they can't be included, too.
Maybe the gmcs crash can somehow be avoided.
* Added Kimono example app. Install Qyoto & Kimono and compile it with
gmcs -r:qt-dotnet,kde-dotnet test.cs
* When looking up a type by it's name in the Qyoto runtime, scan through all referenced and used assemblies.
* Don't try to call virtual methods and don't do anything in qyoto_event_notify if the application has already terminated. Fixes some segfaults on application quit.
* Install all qyoto headers.
* Use partial classes all over the place and nested classes instead of namespaces when generating the C# sources.
Sets on Applet::constraintsUpdated() the maximum content width for horizontal panels and the maximum content height for vertical panels as IconSize(KIconLoader::Panel) this makes vertical larger panels actually usable.
- it works only for applets that aren't forced to square
- in horizontal panels only for applets that don't have expandingDirections()=Qt::Horizontal
- in vertical panels only for applets that don't have expandingDirections()=Qt::Vertical
On other news the kickoff applets are modified to use this new feature
Make Plasma's pager applet use kcolorscheme and the font from the taskbar. Also make Plasma's colorscheme use colors from the Oxygen palette.
With this patch, the pager should be nicely themable.
Review: <a href="http://matt.rogers.name/r/51">http://matt.rogers.name/r/51</a>
This code is _very_ old (it's a leftover from the first KDEMM prototype for KDE3) and I can't find a reason why it's still needed.
To the contrary I think it made VideoPlayer behave different than described in the docs. (I.e. it would start playing even if you called only load())
* add ContentAtOrigin for panel / dialogs; masively broken atm, will work on that next
* it's not an Svg::ImageSet
* don't hold on to so many value that are only ever used during
* various formatting issues
bottom line: it now works for the applet case and works nicely. have tested in plasma as well. next: panels and dialogs htne into libplasma and porting the code over to it
tired of the "expect crashes" output all the time, i just fixed it properly by deleting the existing layout. since the layout makes itself the parent of the child layout and already deletes it in the dtor, this only makes sense. hello greater safety and goodbye scary console output ;)
Disable animation if there is only one window.
This patch adds two items to the dataengine: "Next identifier suffix" and "Previous identifier suffix" that says where to search the previous and next comics (if any) so now it's not tied to a date and to the concept of having one update a day.
and this fixes the xkcd comic (bug 153872) that uses integer identifiers instead of dates for the comic so now the logic to where search the next/previous is delegated to the comicprovider, and if there is no suffix the dataengine simply loads the today's comic.
the cache still works, but is disabled for today's comic, because it can become stale if it was actually an old comic and a new one is published today, and of course today it won't have a "Next identifier suffix" but tomorrow will.
For now, as we are using a hard coded opml podcast url, use the noadult version as the adult podcasts feature very prominently at the top of the podcast list otherwise.
The plan is to make this service configurable so people can add whatever directory they wish, so this is just what we considder a more sensible default for now...
Less code, less ifdefs, should compile on Solaris.
I knocked out Win 9x support on the way since it simplified things, and, well, I don't care about supporting Windows releases that have been outdated for 7 years.