Issue 81
21st October 2007 by Danny AllenThis Week...
Cornelius worked on KOrganizer, Klaas introduced Strigi to KHelpCenter and tidied its user interface, Will worked on Kopete's usability, Stephan prepared a KDE 4.0beta3 openSUSE based LiveCD, Andre worked on Plasma, adding a context menu to the panel, Daniel prepared a new OpenSync release and worked on Kitchensync, and Dirk worked on the KDE 4.0 Beta 3 release and the new SVN server. Along the way we found time to show off KDE 4 to Novell management, and held the first openSUSE KDE community meeting to make community members' and users' voices heard and open the door to their contributions to KDE on openSUSE.
Feedback is greatly appreciated and will be incorporated into an updated version to be placed on konqueror.kde.org or so.
Will KHTML be the HTML rendering engine in KDE 4.0?
Yes. We are currently working on polishing it to get it into shape after so much of the frameworks around it have changed.
Are there any plans to drop KTHML?
No. Despite rampant rumors floating around there are no such concrete plans. We have had several discussions about alternatives but none of the them has yet crystallized as being accepted by the majority as a real option for KDE.
Why don't you pull all the good patches from Apple's WebCore and JavaScript libraries?
We do that to a certain degree since the beginning. More for KJS than for KHTML which is much bigger and platform dependent. Apple's code repository is publicly accessible now which has eased patch extraction. Prior to its opening the code had already forked a lot, unfortunately. Misaligned release schedules, design conceptions and platform needs have also sometimes resulted in incompatible solutions.
Are KDE patches ending up in Apple's code base?
To a small degree only. There were several attempts to establish a tradition of feeding our patches. Apple engineers also sometimes cherry-pick performance improvements on their own - possibly way later than we published it. As the patches at the same time often get reformatted to fit their coding style this does not make the "diff" between the code bases any smaller. As changes never get pushed back to us this is not an overly satisfying experience.
Does KDE profit from Apple's work?
We do in many ways. There are not only improvements and bug fixes that we can adopt but also an increased public awareness of our work and a group of skilled engineers to exchange ideas with. On the downside we are competing for independent contributors and have to live with the fact that some prefer to team up with a shiny and mighty company as opposed to joining our multi-faceted desktop project.
How about joining forces?
This is the obvious solution, of course, and since the beginning there have been various initiatives to establish a common project. So far all such attempts have failed. One has to realize that the Safari team is constantly under immense pressure to produce new features and benchmarks for the next Mac OS X release or whatever Steve Jobs will present at next year's WWDC keynote and does not want to risk giving up full control. As with the Windows version of Safari, work is sometimes done behind the scenes. We have not given up hope of course and hope to find some solution that accommodates the need of all parties.
Why is all of this important?
The attention paid to KHTML and interest in its future is amazing. The number of well-meaning advisors by far outweighs the number of developers actually writing the code. But the interest is fully warranted. The use of Internet technologies will inevitably continue to rise in our applications. And the degree to which we are involved in the development of these technologies will govern our freedom in advancing their use. The Web development environment Quanta built on top of KHTML is such an example. Further opportunities for our mail mail, IRC, blog, news, media, calendaring, messaging and you name it clients are sheer endless. Merely adding a GUI around ready-made 3rd party components will not add much extra value to our framework.
What are maintainers asking for?
To be able to satisfy our user's expectations we need to be able to provide a patched version in case they find a bug. This is particularly important in case of security problems. This requires access to the development repository as well as KDE producing packages out of that repository. Waiting for other vendors to ship bug fix releases is not an option. When it comes to development of new features KDE developers need to have some say into it even if it needs to be coordinated with other parties. In case of KDE-specific needs there needs to be some way to add them.
Isn't this all a rather trivial job?
A Web browser component is about more than plain HTML rendering. Apart from dynamic scripting there is Java, Flash, cookies, URI shortcuts, password managers, security and networking support. And KDE has invested a lot into providing this infrastructure that is being shared with other applications.
How about using QtWebKit ones it comes out?
QtWebKit is a port of the forked KHTML sources that aims at providing a ready-made HTML component to Trolltech customers without relying on KDE (other than incorporating the WebKit sources with KDE origin). It just is a platform port without any influence on the feature set and therefore useless for KDE's purposes. See the "Why is all of this important?" and "What are maintainers asking for?" questions for more details.
So what are the plans?
As the current alternatives would mean dropping our code and losing all influence on development these are not real options. So we'll simply stick to our code base for now and keep on merging in improvements ourselves. The code is pretty good, surpassing other browsers in speed and features in some areas.
Of course, we would be very much interested in joining forces with others having the same development goals. And we'll keep the discussion about cooperation going. One approach I could imagine is to merge our work (thousands of commits done over the recent years) into a WebKit branch and switch over to that one day. This wouldn't be a branch like Nokia's that diverges from the main line more and more. Instead we could branch it off trunk regularly and simply re-apply our KDE-specific patches.
Statistics
Commits | 2571 by 199 developers, 1000 lines modified, 1000 new files |
Open Bugs | 14645 |
Open Wishes | 13184 |
Bugs Opened | 292 in the last 7 days |
Bugs Closed | 219 in the last 7 days |
Commit Summary
Module | Commits |
/trunk/KDE |
118
|
/trunk/l10n-kde4 |
51
|
/trunk/koffice |
20
|
/trunk/extragear |
14
|
/trunk/l10n-kde3 |
12
|
/branches/work |
9
|
/trunk/www |
8
|
/branches/stable |
7
|
/branches/extragear |
7
|
/trunk/kdesupport |
6
|
Lines | Developer | Commits |
26
|
Pino Toscano |
12
|
11
|
Chusslove Illich |
11
|
45
|
Clarence Dang |
9
|
9
|
Karl Ove Hufthammer |
9
|
18
|
John Layt |
9
|
15
|
Laurent Montel |
7
|
10
|
Christian Ehrlicher |
7
|
18
|
Allen Winter |
7
|
6
|
Shawn Starr |
6
|
17
|
Christopher Blauvelt |
5
|
Internationalization (i18n) Status
Language | Percentage Complete |
Swedish (sv) |
100%
|
Portuguese (pt) |
100%
|
Greek (el) |
98.54%
|
Japanese (ja) |
95.02%
|
German (de) |
88.33%
|
Chinese Traditional (zh_TW) |
87.98%
|
Dutch (nl) |
86.47%
|
Spanish (es) |
85.17%
|
Brazilian Portuguese (pt_BR) |
81.5%
|
Low Saxon (nds) |
77.27%
|
Bug Killers and Buzz
Program | Buzz |
Amarok |
6305
|
K3B |
5640
|
KMail |
5120
|
Kopete |
4330
|
Kontact |
3948
|
Kate |
3880
|
KDevelop |
3205
|
digiKam |
2798
|
Kicker |
2436
|
SuperKaramba |
2154
|
Person | Buzz |
David Faure |
856
|
Sebastian Kügler |
854
|
Stephan Kulow |
771
|
Matthias Kretz |
654
|
Adriaan de Groot |
630
|
Allen Winter |
629
|
Waldo Bastian |
440
|
Aaron J. Seigo |
364
|
Boudewijn Rempt |
340
|
George Staikos |
322
|
Commit Countries
Commit Demographics
Sex
Age
Contents
Bug Fixes | Features | Optimization | Security | Other | |
---|---|---|---|---|---|
Accessibility | |||||
Development Tools | [] | [] | [] | [] | |
Educational | [] | ||||
Graphics | [] | [] | |||
KDE Base | [] | [] | [] | [] | |
KDE-PIM | [] | [] | |||
Office | [] | [] | [] | ||
Konqueror | |||||
Multimedia | [] | [] | |||
Networking Tools | [] | [] | [] | ||
User Interface | [] | [] | |||
Utilities | |||||
Games | [] | [] | [] | ||
Other | [] |
There are 106 selections this week
Bug Fixes
Development Tools
Prevent trying to translate cursors against an unopened file - revision 1 is always the "file has been opened" revision (unless starting a document from scratch... potential bug here but truly very minor if so, especially in comparison to the crashes this fixes for now)
KDE Base
Store all http-headers in the cache.
Helps bad PHP -> JavaScript abuse like jQuery
Fixes for C/C++ highlighters:
- Recogize comments after #define (#108370)
- Folding for for all proprocessor conditionals (only for "#if 0" before) (#124362)
- Folding for multi-line comments was missing in C++ highlighter
- Error marking for preprocessor lines not in #(define|elif|else|endif|if|ifdef|ifndef|include)
- Sync notice added
- Version number incremented to same value
On the Information panel the further information such as "Date", "Size", "Type" was being cut off if it was being shrinked. That shouldn't happen. This prevents this information to be hidden or cut off, and so this is always shown.
Albert: I also solved the previous bug you reported (places view not showing selected items at the first click) on a different commit
This code fixes the icon loading for 4.0. This code _needs_ to be reviewed when Qt 4.4 is out. I will personally take a look on this when the time comes. Right now, as the SVG renderer is just broken on Qt, what we do is to resize from PNG's.
The patch fixes sort indicator (PE_IndicatorHeaderArrow element):
only 'down' arrow was displayed before.
All KStyle-based styles were affected like Oxygen or Plastik, so only plastique worked properly.
As a sanity check I test QStyleOptionHeader::sortIndicator and State_UpArrow/State_DownArrow flag.
Sigh ... non-truecolor images have a palette, and it should not be just ignored as if everything was 32bpp. Convert to 32bpp to avoid the problem (bnc:334965)
Fix katepart so that the whole view does not re-layout and repaint on each keystroke.
This is essentially removing a hack I inserted when I was porting and having difficulties with drawing. It is a rather large change to how things work even though the amount of code changed is relatively small. Please notify me if you find any rendering regressions.
Office
Fix usecase where enlarging the actual document (like adding a page in kword) would move the view down a bit on every page-add.
Loading a big document (which adds pages after loading) now correctly keeps the canvas on the position it started on.
Networking Tools
Fix two crashes :
- One when trying to download an empty link with the RSS plugin (150879)
- Crash at exit when the RSS plugin was loaded
Reduce file transfer CPU usage from 100% to 2% during send :D
Games
There was a problem with the drag and drop: the 2nd time you wanted to move the same item, the initial position was initial position of the first move.
It's now fixed. :)
Finally fix a bug that has been there since the very dawn of Bovo.
When switching theme, the background was left untouched outside of the grid, which wasn't very pretty when the new theme had another background color.
(Don't tell anyone, part of this is a really, really duct tape solution.)
Also: remove previous duct tape fix from high contrast theme.
Features
Development Tools
Graphics
kipi-plugins from trunk (KDE4) : XMP metadata editor : new option to remove all XMP metadata from a selection of pictures. This option work exactly like Remove EXIF or Remove IPTC.
Merge changes to get information for new database schema in digikam:
GPS:
- split up in getGPSLatitudeNumber, getGPSLongitudeNumber, getGPSAltitude
- add checks that the denominator is not (I have one RAW image here, KODAK-DCSPRO.DCR, where invalid info with denominator 0 is returned. In any case, 1/0 is not 0)
- add getGPSLatitudeString, getGPSLongitudeString to get XMP-like GPS strings
- add a setGPSInfo method which takes the XMP-style strings
- add methods to convert from/to XMP-style string format
- add a method to convert to user-displayable numbers (in ° ' '' between 0 and 60)
Exif:
- add getDigitizationDateTime
Xmp:
- add getXmpTagVariant to get an XMP tag value as a QVariant (similar to getExifTagVariant, but with support for LangAlt etc.)
Add a namespaced enum of all those fields that will be retrieved from the metadata of a file and possibly stored in the database. This list is our choice for digikam.
- Add an initial implementation of the V4toV5 major schema upgrade - move Images and Albums to new tables - create one AlbumRoot from KConfig info - create file filter settings from KConfig info - TODO: one complete scan - port Rating, Comment, Date (overwrite values read by ImageScanner with those found in the db!)
- modify and rearrange parts of the updater logic
make print preview working again (of course, just for few document types, as QPrinter sucks and kdeprint is too good)
KDE Base
SolidDevice engine is feature complete and ready for inclusion in trunk.
KService: support for storing Actions defined in .desktop files into ksycoca4.
While writing the unit test for this, I noticed that the binary representation (like, in ksycoca) of a single KService was 3700 bytes. This is because KConfigGroup::entryMap returns all translated entries. After filtering those out, the KService is down to 755 bytes; and the whole ksycoca4 went from 9.0M to 1.5M!
Seems to be an unexplained KConfig behavior change, which should be fixed, though.
A major rework (really rewrite except for the graphics bits) of the <canvas> support, to fix the fundamental problems the previous implementation had. Essentially, it used to store all the bits in the renderer, and have the painting state split between an ephemeral painter (which went away on every repaint), and the JS context object. The way it's spec'd in HTML5 is that the canvas element/its context manage the canvas area and the painting state, and the renderer merely scales. So, I did the following:
1) The context, gradients, patterns, are all proper DOM objects, giving the information the expected lifetime.
2) The DOM context object keeps track of all the painting state itself, updating the painter as needed, and provides the canvas APIs
3) khtmlImLoad gets a new CanvasImage class, that provides a way of using its scaling cache features for this sort of thing. It's not a great fit (it's really meant for something more static), but it's reasonable
4) The JS part is now just a standard wrapper object, with some extra parameter checking, and a bit of code to split the type-unsafe things nicely.
Should we perhaps provide this as part of our C++ DOM in 4.1 or a later 4.0.x release?
5) In general, this was brought in line with HTML5 as best as I could, not being a graphics guy. At least the type checking should be close... assuming I understood it right
There are still gaps/missing features and bugs, of course, but this should serve as a solid foundation.
Various portions were reviewed by Allan, Germain, Harri and Fredrik, hopefully totally covering everything.
(Oh, and I need to figure out how to testcase this properly; I've been using a bunch of web-available testsuites, but we need something for khtmltests)
Make KFontAction mostly work -- at least enough for changing font in KolourPaint:
* Make changing the font in the GUI update the action (call i.e. setFont())
* Make programmatically calling setFont() update the GUI, but not fire a signal (mimicks KDE 3.5 behavior)
* Make createWidget() set the created combobox to the action's current font
This took a surprising amount of time to write (don't ask).
Improve appearance - especially when themed with oxygen
add erlang for kde4
Stephane, we just added your Scala highlighter for Kate to the KDE repository. Please forward future patches to kwrite-devel. Thank you!
Noweb highlighter by Scott Collins added
Add DTD highlighter by Andriy Lesyuk
Add a future method to call Solid Ui service when the notifier will be clicked
KDE-PIM
Implement a shared key cache. Oh, how I wish I could have used boost.multi_index for that :/
Initial KIPI Plugins support
- Added setupplugins Class.
Don't allow drag&drop from the favorite folder view to the folder tree.
It does not make sense and does not work.
Office
make the editing of a basic coloring program fully functionnal (hopefully)
Two things in this commit:
a) the qpainter canvas refactoring (that, as noted before, is still buggy)
b) lots of work on the node/layer/mask refactoring. Still very buggy, but there has been progress since my last commit on this topic: clicking the relevant buttons now do insert new layers. They are just not selectable.
More work will follow tomorrow.
More work on ChartProxyModel. Now most of the functionality that's needed is implemented. Changes now allow us to set
* the data direction ( setDataDirection( Qt::Orientation ) and dataDirection() )
* whether the first column or row is to be treated as a header:
- setFirstRowIsHeader( bool ) and firstRowIsHeader( bool )
- setFirstColumnIsHeader( bool ) and firstColumnIsHeader( bool )
Also, mapToSource( QModelIndex ) works, and mapFromSource( QModelIndex ) needs some testing as I haven't done that yet.
With this implementation of the proxy model, it's expecting pure table data.
Headers in the source model - that is, accessible through sourceModel()->headerData() -
will be ignored.
Add a new property that applications should set while they are 'loading' a document.
This allows all tools, dockers etc to ignore any changes and thus avoid slowness due to repaints or worse, race conditions and crashes.
Start of OpenDocument loading of charts!
This is the last large item on the TODO list before we can start working on the details. This patch handles ODF loading in the KChartPart. What we need now is some handling on the ChartShape side.
This should be fairly easy, since there is lots of code in the old KChart to steal from.
Multimedia
some more work on collabsible albums. I think I will need to optimize the playlist some before progressing further with this work as it stresses it quite hard at the moment. But we already knew that the playlist was not optimised at all and contains lots of lots of O(n) stuff still
Try out a new way of regrouping albums in the playlist. As of rigth now it is not much faster than the old one, but as it does not requre regrouping of the entire playlist in most cases, it has potential tp become a lot faster if the internal datatypes are optimised (such as using hashes instead of lists).
Grouping seems to work correctly, but there are still some issues with redrawing the playlist leaving some thing looking slightly broken untill a redraw is triggered.
This grouping aproach also has the advantage that information about collapsed groups are not disarded every time a regroup is triggered. Oh, one more thing, removing single items from the playlist seems to send it into some kind of an infinite loop at the moment...
initial prototype support for the yet_to_be_released magnatune streaming membership service
Dont animate items that when neithe rthe old or new y position is within the visible area of the playlist. This change actually makes the playlist usable with a large number of tracks (I tested it with just over 3000 tracks).
The only really bad performance problem with the playlist right now is collapsing and expanding albms wiht a large umber of tracks. 10-20 tracks are almost instantanious, but collapsing someting with about 100 tracks (yeah, kind of a corner case) takes 10-20 seconds...
Implement sorting in the collectionbrowser by Track Number.
We reimplement lessThan in the proxyModel to do so. Note that this sort order does not propogate down to the source model, which means that adding items to the playlist from the collection does not insert them in the sorted order. I'm not quite sure the proper way to fix this at present, will investigate.
Sort tracks when they are added to the playlist as well. This could possibly cause problems if the user does not want them sorted by track number on insertion, but I'm not sure if that would ever be the case
Networking Tools
Finished Kopete D-Bus interface initial version
- Porting KNewsTicker to KDE4 (and Plasma, and Qt4, and whatnot); unfortunately so many things changed (and so many other things I want to rewrite anyway) that I can just as well throw everything away and start from scratch. At least I don't have to do the RSS parsing anymore, I'll use the 'syndication' library from kdepimlibs.
This is a minimum plasmoid, it's visible in the list of applets. So far, so good.
- Start looking like a scrolltext by implementing the renderer a bit and adding some sample news items. Very crude yet. In particular, it's flickering somehow and I'm not sure how to fix this.
- Instead of doing the scrolling ourselves (like I did since KDE2), let's try using QGraphicsItems instead. Each item in the scroller is a QGraphicsItem and we scroll them by calling moveBy() on them.
Pro:
Very simple to implement, very little code.
A lot of features (event handling on the items) for free
Contra:
Slow as well (each KNT instance takes 15% for me, and I'm not sure why)
- Introducing a 'NewsTickerItem' which behaves like a hyperlink. Now you can click things to open the respective page.
User Interface
Add dividing line below titlebar
Fiddle with metrics of buttons ad text a bit
We are mostly done with win dec now - Only hover on buttons missing
glows: remove fuzz, increase bias - this way glows don't overlap the edge so much (in theory not at all but the AA is not perfect), and round slab glows don't look "broken" (i.e. gaps in the edge)
Games
Add Bovo documentation. Look out for:
* Bad English and lack of logic.
* It builds, but I can't seem to figure out how to view it.
Now, it just needs a review (and subsequent corrections).
Optimization
KDE Base
Don't do any compositing when nothing is visible anyway (e.g. when switched away from the X session).
Multimedia
dont animate items bound for beyond the visible area... This greatly speeds up expanding large groups of items, and looks almost as good during the animation. Also fix speed when collapsing large groups and a few crashes
Security
Development Tools
implement some basic html escaping to avoid injection issues in the help browser
Other
Exchange a Perl warning that dfaure found for a more understandable warning. Or in other words kdesvn-build may build all of extragear or playground in one pass but I'm loath to call it "supported"
Educational
So I hope that doesn't change anything for linux and will make it work for win32; As a result:<a href="/issues/2007-10-21/files/my.php?image=kstarsrw0.png">http://img141.imageshack.us/my.php?image=kstarsrw0.png</a>
Graphics
Finally, after years (!), all of trunk/KDE/kdegraphics/kolourpaint/ has been ported to Qt4 or marked with "COMPAT". Hopefully, there are no more silent semantic changes to Qt4 that I missed.
Port from KPrinter to QPrinter, remove dependency on KDE4_KDEPRINT_LIBS.
*** Note this is not a complete port, most of the generators use the printFiles method which Qt 4.3 does not support, these have simply been commented out until we find a solution. At least it removes the dependency so we can remove from kdelibs.
At the time it was a nice idea to write the absolute path and the status of album roots dynamically into the database so that they were available from SQL.
But now I see that this is not the way to go. It does not allow sharing DBs (not that we support that officially, or say that it works, but people will do it once we support MySQL, and this would break it), and it does not work with read-only DBs.
So now, we always have the album root id and use CollectionManager then which has all the necessary information.
Adapt a lot of SQL.
HUGE commit!!! Project build and runs. Most tests work.
Introduce ObjectStore, which is responsible for creating, naming, storing, and accessing all Kst::Objects.
many, many cleanups
rebuild Equation parser
fix Matrix::resize()
spacing fixes everywhere
Port from KPrinter to QPrinter, remove dependency on KDE4_KDEPRINT_LIBS.
I was unable to test as ligature segfaulted on startup even before I started work.
Normally I wouldn't commit this, but ligature will break on Monday anyway when KDEPrint is removed from kdelibs, so at least this way it builds OK.
Note this is only a partial port as QPrinter does not support printFiles or non-continuous print ranges required for the page selection side-bar. We are currently developing the solution for this and will finshing porting when that is ready in about 2 weeks.
KDE Base
- Use QtScript instead of launching bc - it's faster and avoids starting a new process. Could do with making the regexp that decides when to use this runner a bit more relaxed.
Try to make it a bit more friendly:
* If a process is stopped, the context menu will include "Resume stopped process", which prompts for root password if needed
* If a process is a zombie, no option to kill/renice will be given
* Added context menu option to select and jump to the parent process, if applicable
* Added context menu option to select and jump to the process that is debugging it, if applicable
* When multiple processes are selected, the context menu options change to "Kill processes" etc.
Bye bye kio media. Liked you, but unfortunately Solid and KFilePlacesModel are prettier now...
Added test for KConfigGroup::entryMap(). This shows that translated keys are present in the entryMap.
Any KConfig guru for removing them from there? (and hopefully from memory altogether, after parsing?)
KDE3 had them when using KConfig but not when using KDesktopFile, very weird stuff [see k-c-d].
This is a rather big patch that moves the code for the actual indexes into loadable plugins.
Strigi has always abstracted the index containing all the search terms. This means you can use any database by implementing three classes: IndexManager, IndexWriter and IndexReader. Only one thing was missing: loading these index types from plugins. In practice this meant that different indices need to be added at compile time. It also meant no GPLed databases can be used.
For Nepomuk, Sebastian Trueg has written an implementation of a Strigi index that stores the data in the Nepomuk storage. In doing so, he has created a direct need for indexes as plugins.
So I've writting the code to make this possible and I've attached it as a patch. Since we are in freeze I'm asking you all to have a look at it. The plugin loading part is basically the same as what we use for loading the analyzer plugins.
So what does the patch add:
- add a class IndexPluginLoader (not public) that looks in the strigi plugin directory for files named strigiindex_$name.{so,dll} and loads them if they define createIndexManager and deleteIndexManager.
- ports all strigi code to use it
- removes the compile-time lib${name]index.so libraries and uses the plugins instead
No public API is changed by this code. It does add a macro REGISTER_STRIGI_INDEXMANAGER for easily registering an IndexManager in a plugin.
In hindsight, we should have added this much earlier as it makes (will make) the build system dependencies much cleaner.
KIconLoader now returns more quality icons if the requested size is not a standard one. This means that if the size requested is not standard it will try to load the icon from the SVG format before than trying to load the PNG image and then resizing it (what leads to a worse image quality).
In the case that not SVG was found and PNG was, the change on KIconTheme assures that it will stop on the closest size bigger than the selected (for example, it will stop on 22x22 if you requested a 19x19 pixels icon size) and then resize it.
This will only happen if the SVG wasn't found. If the size is a standard one, go on with the normal procedure: load the PNG that is faster than drawing a SVG and since no resizes are needed no quality is lost.
media:/ and system:/ are no more
user friendly hand holding can go into the breadcrumb; this combo should be easily and predictably edittable. if the user switches to full edit mode, they know what $HOME is.
add Oxygen color palette
this assert hits here. I wasn't able to figure out why that happens, given that if one konsole crashes, all konsole's disappear (great concept!) hacking around seems to help.
- mockup implementation of progress indicator, which isn't linked to the engine yet
Revert <a href="http://websvn.kde.org/?rev=706570">r706570</a> which fixed a corner case in kaffeine and broke zoom settings on kpdf, kghostview, kview and basically anything using editable kselectations
You'll have to find a fix that does not break all the other applications using the same class as you
Please next time be extra careful when touching kdelibs code
KDE-PIM
Change various frames to make a nicer visual appearence
Mostly a matter of using styled frames rather than ugly win95 type
And also remove the big around-it-all frame.
Office
* remove the "purity" tab, it's not needed as hue/saturation/brightness can be associated with a sensor
* gives good name to widget in the ui file* make checking/unchecking the "enable" checkbox, enable/disable widgets
"Port" to QPrinter.
Printing hasn't worked before, and doesn't now, so "porting" was quite easy ;)
move the CMYK to a subdirectory of libs/pigment (this is probably not an optimal solution, but no reasonnable true solution appeared in two weeks, and as files are easy to move, if a better solution comes, those files will be easily moved to an other location, so don't worry !)
Little workaround for the chart not getting updated after setting a new source model. I myself think this is a pretty ugly fix, as it is done by recreating the entire diagram, so I marked it as a 'FIXME'. But still better than it was before, I'd say.
Yes!! KDChartAbstractDiagram::doItemsLayout() is the function I was looking for ;D
It updates the diagram after we changed the models data. Setting the data direction and firstRow/ColumnIsHeader for a chart now works flawlessly.
No real work on the legend tool so far, just a couple of ideas how we could arrange the config elements.
The position property is still missing in there, since I'll code some custom-tailored widget for that one later ;-)
Networking Tools
- These weren't implemented in the last seven years, they're probably not going to in the near future :-)
User Interface
This is going to be popular: reduce the size of toolbuttons in toolbars
Also fix the hover effect of toolbuttons outsie toolbars
And finaly move the menubar 2px up
Icon naming spec (and IANA MIME type) compliance:
Remove a lot of formerly used mimetype icons for which the proper replacement already exists, and move the other ones to their correct name.
As KDE 4 uses the XDG shared MIME database, no one should be affected by these changes anymore.
If someone is, remember not to directly load icons from the mimetype category by specifying their names.
Games
Since there are some glitches with theme switching, and some serious painting issues with the gomoku theme, disable the gomoku and spacey themes and change the background color of the high contrast theme to white.
Thus, there are no visible problems left with theme painting.
Revert this as 4.0 hits the world.
Other
Merge WrapArray into FromArray. Less code. The downside is that we're using one more const_cast. But I think that anyway trying to maintain const strictness in Eigen2 is not worth the hassle.
Konstantin: so the code snippet I sent you won't work anymore, replace wrapArray with fromArray.
make shameless use of const_cast to reduce code redundancy. This means Eigen2 gives up enforcing constness. I really tried to enforce it, but it really was much hassle because our expression templates can be lvalues (not only rvalues) and so much code had to be written twice.
so, I learned that the official way to build qca is via qmake and that cmake is just a hack. a hack that works, unlike qmake. except that it doesn't install man pages and that the pc file is different.
the remaining bit is to create the crypto cert directory, I haven't figured out how to do that with cmake yet