9th November 2008by Danny Allen
|Commits||2935 by 254 developers, 9186 lines modified, 1644 new files|
|Bugs Opened||590 in the last 7 days|
|Bugs Closed||742 in the last 7 days|
|Aaron J. Seigo||
Internationalization (i18n) Status
There are 92 selections this week
Fix Amarok support.
The old Amarok D-Bus interface is no longer supported by Amarok, but org.kde.Amarok still exists when Amarok is running, confusing the engine and making the applet ignore the working org.mpris.amarok interface.
Unfortunately missed 4.1.3 by two days. C'est la vie.
This was quite a porting mess. The old code would fill up qt/4.4/libraryPath in Trolltech.conf with all kinds of paths, most of them duplicates. This hurt startup time and made applications load plugins from incorrect plugin dirs.
I've rewritten the code to do what it was intended to do:
- look at libraryPath
- remove all entries that KDE added last time
- add all the paths KStandardDirs returns for the qtplugins resource
- store what we added to the list
- store the new list
my libraryPath entry is down from 50 to 1 (after I manually removed all the incorrect paths, which I recommend everybody else to do, too)
- Allow statically overriding the TopDUContext-features needed for a specific url, in ParseJob.
- Add a central function to ParsingEnvironment that determines whether the context needs to be updated due to not satisfied features of an import.
Enable intelligent use-searching that includes updating the duchain when required:
In the uses-widget: Collect all potential places where the use of a declaration can happen using the duchain include-structure, compute all files that need to be built/updated with complete use-information, and query an update of those files.
Once the update is ready, add the uses to the widget.
This only requires the simple processing enabled by "Full project parsing" to enable quite reliable use-computation across all loaded projects now. This btw. has nothing in common with a simple "grep", but is based on semantic language understanding.
Warning: This is quite slow when you use it on a very central declaration like QDialog..
Implement a generic infrastructure called DocumentChangeSet, that allows scheduling changes across a whole set of different documents, no matter whether they are currently open or closed.
It eliminates duplicates, and detects conflicts, with graceful recovery on problems.
When a change problem/inconsistency appears, all changes on all scheduled files are reverted.
This does not use smart-ranges yet, so no editing is allowed during a run.
This will be used for selective refactoring that touches many different files. For example simple declaration-renaming.
Say hello to refactoring!
- Implement a quite reliable project-wide rename functionality based in the duchain. It features a very nice preview using the uses-widget, and can rename everything, be it full classes including constructors/destructors/definitions, be it functions, which will be renamed overload-aware, or whatever else.
Don't expect 100% reliability yet, but it seems to generally work quite good. Of course it does not only rename the items themselves, but also all their uses in all loaded+processed projects, that's the interesting thing about it. ;-)
The functionality is accessible through the editor context menu, or the code-browser declaration menu.
Changes focused around refactoring the config dialog:
* Less unnecessary options
* Add a KTimeZoneWidget so that the user will be able to pick certain timezones to display on the map (e.g. where their family is or something).
This goes with the future change to using placemarks instead of painting over the map.
digiKam from trunk: Cameragui :
- For UMS camera, use UUID of the media provided by Solid interface to identify already downloaded pictures.
We use UUID of the card inside the camera instead a set of informations to identify the camera (mount path for ex.) because the media is removable and can be mounted in other place, with a CF card reader for ex.
- Fix several bug in freespace widget which does'st show informations.
expand and collapse folder view when using quick filter text search
When searching for albums and tags with the quick filter text search, the folder view has not been expanded when an item matched the search criteria.
For this to work, we have to use setOpen() on every matched item. In most of the cases the whole album or tag tree will be expanded after you reset the filter again, which will be very annoying when you have a lot of tags or albums.
This commit will introduce a new FolderView method collapseView(), that will collapse the tree when the search criteria is removed. Right now it has two modes:
* RestoreCurrentAlbum (default):
Collapse the folder view and re-open the current viewed album.
In this mode, all root items are collapsed, then the one containing the currently selected album is expand again.
This mode will make sure that the selected album is visible in the folder tree by scrolling the view to the selected item.
Collapse the folder view but omit the root item.
In this mode all items in the folder view are collapsed, and the first root item is expanded again (My Tags / My Albums etc)
Refactoring of systemtray notifications. Besides cleaner code this adds the following improvements:
* use PushButtons instead of the current buttons that are hardcoded.
* display a graphical close button on notification that don't supply actions.
* remove the icon from the notification and use that as icon for the extenderitem instead.
* make the sizehint depend on the length of the message.
Allow to configure no grid spacing.
This is useful if the icons view is used in the "column mode" with very small icons.
Implement creating connections by clicking the connect button on a wireless network, by launching the connection editor or making a dbus call to a running instance.
Currently this only works if the KCModule is already open; if it is not it attempts to pass the required parameters (essid, capability flags) to kcmshell4, but this requires a fairly ugly patch to kdebase-runtime to use these so I will probably add a stripped-down version locally.
Added converter between KPIM<->KABC distribution lists, i.e. between Addressee entries used as distribution lists through using a custom KDE property and distribution list as used by the KDE addressbook API.
The intended use case is for KABC resource implementations which use KPIM Distlists internally to easily convert between them and the ones required by the plugin API.
Initial version of a scripted service that allows you to browse and listen to your favorite NPR content, including audio from most NPR programs dating back to 1995 as well as text, images and other web-only content from NPR and NPR member stations.
This archive consists of over 250,000 stories that are grouped into more than 5,000 different aggregations.
Made significant performance improvements when handling torrents with a lot of files:
- No longer register one object for each file to DBus, instead expand DBusTorrent interface to include files too (results in much faster start up times))
- No longer use signals to get notified of download priority changes (connecting signals to a lot of object is slow)
Incorporate a copy of POLE (from <a href="http://developer.berlios.de/projects/pole/">http://developer.berlios.de/projects/pole/</a>), which was originally developed by Ariya Hidayat.
This will allow extraction of the EMF files from the Compound File Binary Format (aka Microsoft OLE file format).
This isn't quite enough.
We still need to extract the Compound File Binary Format from the Cabinet format.
Improve extender layout for larger fontsizes:
- Make pointers to controls and battery layout in the extender members
- Set larger default sizes so at leat fontsize 12 doesn't get cut off
I'm completely in the dark why the QGraphicsLayout seems to impose the size to the widgets, rather than the widgets to the layout.
It would be really nice if a change in the widget size (for example setting a different text on a label) would actually make the layout adjust the sizing).
Right now, it doesn't so we have to hardcode sizes in some places. :/
In the networkmanager applet, we're running into the same problem, adding an item to a layout doesn't cause the widget to be resized.
Any clues on this are most welcome.
move keyboardsLeds-applet back to playground.
The kbstateapplet does the same and more.
See also <a href="http://bugs.kde.org/show_bug.cgi?id=165402">http://bugs.kde.org/show_bug.cgi?id=165402</a>
Check if the program typed in the open-with dialog exists, to avoid downloading a huge file for nothing (when making a typo).
Testcase: <a href="http://bugs.kde.org/show_bug.cgi?id=81190#c2">http://bugs.kde.org/show_bug.cgi?id=81190#c2</a>
Seeing as the background is always being drawn, always attempt to place icons within the appropriate area.
This actually brings the behaviour back in line with 4.1 with regard to when two or more rows are shown and gives a more visually pleasing experience.
Icon minimum sizes are also now taken into account, which essentially causes icons to be centered rather than top(left)-aligned when the panel becomes too small to fit a whole icon.
* Delete the email related classes. They were an experiment but didn't work out.
* Change the way anchors are dealt with. Still need to finish some stuff in the MarkupDirector to create anchors with a name but no href.
* Move richtext.html into the tests directory.
* Create image tags in a better way, not adding width and height attributes where not needed.
* Better way of determining when to create a newline. Includes unit tests. There's still a qt-bug to workaround in the newline stuff.
* Move the MarkupDirector::Private class to separate files.
* Some style and indentation fixes to the Director stuff.
* Process block contents in an entirely different way to close and open tags in the correct order. Includes many unittests.
I know much of this should be in separate commits, but it's still in playground anyway...
Project Name: Akonadi/NokiaN810
Development Team: Audrey Speronel, Cédric Descamps, Guillermo Cabañas, Karim Dembélé, Romain Pécoult
Client: Till Adams
Technical Contact: Volker Krause
Manager: Kevin Ottens
The Akonadi/N810 project is a KDE development managed by a five-student team of the IUP ISI (Institut Universitaire Professionnalisé en Ingénierie des Systèmes Informatiques). It consists in the development of an PIM (personal information manager) application suite based on Akonadi for the Nokia N810 platform, MAEMO.
Merge the KMail summer of code branch back to trunk.
This brings a reworked folder tree and a new message list, which is much more powerful than the old one.
New features include grouping, multiline items and the ability to customize just about everything of the look of the message list.
Also, we have a tabbed interface for opening more than one folder at once now.
An important aspect of the new message list is that drawing speed is now fast again (there was a regression in Q3ListView that made huge folders a real pain to navigate, reading commit folders was not a nice thing to do).
There are probably more things which I forgot to list here.
Also, this is big step forward in getting rid of Qt3Support in KMail, now just some tiny bits are left.
Many thanks to SoC student Szymon Stefanek for his awesome work on his project!
I can't stress enough how great this achievment is.
He even added very good API documentation to his classes :)
This requires the lastest version of qt-copy, otherwise you'll get mysterious crashes in Qt painting code from time to time.
We hope that this patch will be added to the next Qt 4.4.x version.
And finally, this merge also brings many regressions, which is not unnatural for such a big change.
In the remaining time before the KDE 4.2 release, we'll have to work on those to get it polished and regression-free.
Help here is always needed, and is a good opportunity to start working on KMail, since many regressions are low hanging fruit.
It also means the message list and the folder tree need a bit of testing.
If you find bugs, report them under the "new message list" and "new folder tree" component of the bug tracker, thanks.
I also plan to setup a wiki page with known regressions.
Let's hope I didn't screw this up, otherwise we'll see interesting filtering bugs.
Now the only Qt3 things left are the manage sieve script dialog (Tom, feeling like porting this?) and the subscription dialog.
Also, remove duplicate code in deleteMessage: simply call the version for one message for each message in the list.
Ladies and gentlemen: "break my kwebforms" show begins:
DataProvider is undergoing a small refactoring (it becomes a Singleton class)
Add a method to "reopen" the connection to the database.
This will probably fix a bug with Authenticator::loadStore(), remove a global variable (ugh!) and provide a saner interface.
Drawbacks: not thread-safe, a little bit more complex introduces a serious point of failure...
Made the settings dialog remember its current page.
The dialog will now remember which page was last used, and will show the same page again the next time you open it.
However, it will not remember this across sessions, by design. After startup it will always show the first page (General Config), except on the first run, where it will show the Collection Config.
This is the same behaviour as in Amarok 1, and was discussed with our usability guru.
Additionally I've refactored some of the code and made it more modern and readable.
Remove seeqpod script from src and move an initial port to qtscript ( that I have had lying around for a little while ) into playground.
The old ruby script is kept around for refecence for now.
The new version basically works, but you have to hardcode your uid into the main.js source file, which is obviously not a valid solution, so I am commiting it in this state hoping that one of the people who has been asking for it to be ported soon will finish it up! :-)
Again allow to browse and open video files.
For a while canDecode() used to filter out all non audio/ mimetypes, but now we allow video/ too (as it used to be a while back), as Amarok is also able to play these (be it with sound only, or with the Video applet).
Don't overwrite plasma files.
Since Amarok is using plasma trunk, this causes big problems for users with KDE 4.1 plasma installed.
For anybody that has suffered at the hands of this indiscretion, you'll have to manually uninstall amarok, then replace your original plasma installation from your package manager.
A big sideeffect of this fix is that Amarok-plasma probably won't work for anyone with no plasma installation.
We need to resolve this.
i fire up kolf for the first time in kde4 because i haven't played a game in forever and shudder at all the jaggy lines.
so i make an AntiaAliasedLine class, start replacing all QGraphicsLineItem usage with it ... and then notice someone had already made an AntialisedLine (sic) class that was identical to mine but innexplicably didn't use it everywhere =)
well, problem solved.