Issue 43
28th January 2007 by Danny AllenThis Week...
We decided around the beginning of KDevelop 4 development, along with the Quanta guys, that we would export an SDK that could be used by people who were wanting to build on top of what KDevelop was already for plugin management and manipulation along with some other things. Thus, what would be known in the beginning as the KDevelop Platform was born.
Somewhere down the line, we decided that in the spirit of providing nice names for KDE 4 technologies, we’d get in on the action too and provide a name for our nifty little SDK. Seeing as how we’re not very creative people (at least when it comes to naming things), we’d come up with only one name: “KDevPlatform”. Of course, that was much too boring. When Alexander Dymo proposed “Koncrete” a week or two ago on the IRC channel, we jumped all over it. Nearly everyone that had been active at some point in time within the last year was on IRC. We all liked it. Nobody disagreed. I made the changes and gave our SDK a nice namespace (seriously, don’t shoot me, I’m just the messenger).
Well, there actually ended up being a couple of people who weren’t too hot on the new name of the KDevelop SDK that we’re going to provide. One of those people couldn’t get over the fact that we had renamed a part of KDevelop and will most likely end up forking. We didn’t even rename the application or the name of the project. We only changed the set of libraries that will make up the SDK.
We haven’t decided what we’re going to do about the name. Right now, we’re more interested in fixing up the current code that we have in KDevelop 4 so we can get on to more useful things, like actually being able to use the IDE. I imagine once we get closer to that point, we’ll revisit the name issue.
The nice people from kde-usability and I have been working on the design of this new Gwenview. It's going to be a bit different from what you have been used to, but I believe it's more focused on the way most people use Gwenview: either to quickly view an image, or to browse all images in a folder.
To whet your appetite, here are two mockups of what Gwenview 2.0 will probably look like:
Statistics
Commits | 2006 by 207 developers, 4600 lines modified, 1240 new files |
Open Bugs | 12853 |
Open Wishes | 12162 |
Bugs Opened | 295 in the last 7 days |
Bugs Closed | 211 in the last 7 days |
Commit Summary
Module | Commits |
/trunk/KDE |
456
|
/trunk/playground |
280
|
/branches/stable |
265
|
/branches/work |
247
|
/trunk/extragear |
196
|
/trunk/l10n |
155
|
/trunk/koffice |
110
|
/trunk/www |
93
|
/branches/KDE |
76
|
/branches/kdevelop |
31
|
Lines | Developer | Commits |
286
|
Laurent Montel |
124
|
269
|
Matthias Kretz |
101
|
172
|
Stefan Nikolaus |
68
|
141
|
David Faure |
61
|
122
|
Gilles Caulier |
49
|
214
|
Richard Dale |
44
|
98
|
Pino Toscano |
42
|
92
|
Dirk Mueller |
38
|
66
|
Thomas Zander |
31
|
70
|
Tom Albers |
30
|
Internationalization (i18n) Status
Language | Percentage Complete |
Portuguese (pt) |
100%
|
Swedish (sv) |
99.75%
|
Danish (da) |
99.6%
|
Spanish (es) |
98.76%
|
Dutch (nl) |
97.45%
|
Greek (el) |
95.7%
|
Estonian (et) |
95.51%
|
German (de) |
95.45%
|
Italian (it) |
94.66%
|
Brazilian Portuguese (pt_BR) |
92.61%
|
Bug Killers and Buzz
Person | Bugs Closed |
Germain Garand |
22
|
Philip Rodrigues |
21
|
Luboš Luňák |
21
|
Bram Schoenmakers |
17
|
Martin Aumüller |
13
|
Mark Kretschmann |
12
|
Tommi Tervo |
10
|
Peter Simonsson |
9
|
Alexandre Pereira de Oliveira |
7
|
Sebastian Trueg |
7
|
Program | Buzz |
Amarok |
5300
|
KMail |
4280
|
Kate |
3840
|
K3B |
3210
|
Kopete |
3204
|
KDevelop |
2420
|
Kicker |
2364
|
Kontact |
1950
|
digiKam |
1676
|
Kaffeine |
1574
|
Person | Buzz |
David Faure |
1354
|
Stephan Kulow |
996
|
Adriaan de Groot |
981
|
Zack Rusin |
745
|
Daniel Molkentin |
678
|
Waldo Bastian |
656
|
Aaron J. Seigo |
470
|
George Staikos |
412
|
Thomas Zander |
347
|
Stephan Binner |
341
|
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 125 selections this week
Bug Fixes
Development Tools
- Removed some bugs undoing/redoing items with dependents, dependents re-insertion code moved to commands.
- class Document merged with class DiagramController.
- Added support to many to many relations.
- Added a icon to the QUndoView clean state :-)
- Small cleanup in MainWindow code.
- Relation list on edittable dialog display tables name instead of relations name.
- Fixed a crash in edittable dialog box when he table does not have relations.
- Foreign keys can be primary keys... duh!
- Tables receive modified notifications when primary keys property changes.
Educational
Fixing image viewer. The window is now properly sized to match its contents.
TODO: find a non-kludgy way to disable window resizing.
Graphics
The mimetype system is returning that the file at <a href="http://www.phydid.de/showpdf.php?artikel_id=91">http://www.phydid.de/showpdf.php?artikel_id=91</a> is an octet-stream for some strange reason.
As kpdf is a pdf viewer assume octet-stream are pdf.
This is a quick fix for KDE 3.5.7 but for KDE 4 and okular this fix is not admisible. :-/
KDE Base
Switch table rows to RenderBox and give them real dimensions.
Change table cell position so they don't end up in the same coordinate space as rows.
Fix cell background painting. Some other background related work.
Fix problem when resuming downloading actions.
Set base to support multiple slots on multiple objects for actions.
Some code beautification.
Enable/Disable action support.
And lo, here comes the lone hero, the one and only to wield the power to fix the unsolvable 3.5.6 showstopper. No wonder he's so awfully grumpy about it.
Fixed 6-years old bug 20532: Undoing a copy operation might delete a modified file causing loss of data.
A confirmation message box is shown when undoing a copy after modifying the file [this relies on copy preserving the mtime though, which might not be true for all protocols but we'll have to fix that].
The less severe case of move, modify, undo (no data loss, but the modified file is moved back) can't be fixed in all cases, since moving a whole directory can be done by a simple rename() call, so we have no information on all the files inside the directory. For single files it could be done though, but that's not implemented by this.
KDE-PIM
having a different accel for plural is nonsense, sorry (removes one string as it's correct some lines below)
Don't write out empty, invalid or superfluous fields. If we have an empty organizer, an invalid URI would be generated. Fields like Sequence, CLASS, etc. have a default value (defined in rfc 2445), so we don't have to write that default value out and grow the icalendar file even more....
Fix for the grave bug "kmail crash when I make a CTRL + J in inbox"
Multimedia
Potential fix for Stack Smashing Protection problems with WAV files.
Fixed regression: the DEL key no longer worked in the playlist after opening the File Browser context menu.
Jeff, you almost fixed it:)
Networking Tools
Fix bug 140138: onotice command doesn't print anything to the channel window
Fix bug 139891: Remember line doesn't appear when using Alt-Tab
Fix bug 139001: crashes upon auto-connect at application startup
Fix crash when clicking an account icon. Patch by Bruno Virlet - thank you very much, Bruno!
Fix bug 138183: unchecking notifications in the tab menu doesn't prevent highlight sounds
Fix bug 132230: selected text is deselected on channel activity
Features
Development Tools
make actions without a menu entry work:
1. a "hidden" menu in the ui.rc file that is not inside the <MenuBar> tag
2. a dummy QWidget to plug in
result: navigate context menu (default: ctrl+alt+space) and jump to declaration/definition (default: ctrl+',' / ctrl+'.') actions work
I've been wanting to add this for *years*: grep shortcut opens the dialog with the word at the cursor pre-inserted
Educational
Improving the tabledialog wrt copying the content and behaviour
Patch by Ian Monroe, thanks!
Improve the OpenBabel-converter dialog
Patch by Carsten Niehaus, thanks Carsten!
Graphics
Port kpDocument::getSelectedPixmap() for non-rectangular selections.
This logic is moved into the new kpSelection::givenImageMaskedByShape(),
to group as much selection code together as possible.
Factor code out into kpSelection::maskRegion().
We probably have off-by-one errors with the selection border.
In user terms, this means that you can now select an area containing transparent pixels and then Image / More Effects ...
Without XRENDER, this means you can now select any area and actually get something reasonable in Image / More Effects, rather than a yellow blob.
Digikam Editor and ShowFoto menu improvements:
- move View menu after Edit menu
- move Full Screen Mode from Settings to View menu
Full screen action improvement for Digikam:
- move action from Settings menu to View menu
- use KStdAction::fullScreen() on KDE 3.2 or newer (improved toggle support)
- use KToggleAction on older KDE
This makes it consistent with Editor, ShowFoto and other KDE applications.
Prefer Exif DateTimeOriginal for sorting images (DateTimeDigitized and DateTime only used as fallback)
Read information like 'title', 'author', 'editor', 'publisher', 'year' and 'volume' from DjVu documents, and make them visible in the Information dialog.
A big Thanks! to liquidat for pointing me in the right place to look for :)
KDE Base
* Modify kcm layout so as to have a settings menu
* Put "Font Management Mode" button into settings menu.
* Create a small kio_fonts_helper app to be run as root in order to modify fonts:/System. Works *much* faster than using SuProc for each individual font access.
* kfontinst now only handles GUI side of install
* Add font view functionality to kfontinst
* Use a custom FontLister class, as opposed to KDirLister - this way can stop KIO::listDir being called whilst installing/removing/etc. fonts.
* Fix crash when adding a font group.
Lots of improvements:
Houston:
* Add policyengine to reason about which component should handle a channel. Currently pretty rudimentary:-)
* Add signalhandler to allow for a graceful shutdown.
* On startup: Restore accounts to the state they were in on shutdown time.
Clientside Library:
* Add ChannelHandler class
Demos:
* Add simpleclient: It responds with "pong!" on incomming "ping!" jabber requests
Misc:
* Update email in copyright header.
* Update ChangeLog
* Update README
Create CJobRunner to handle add/del/enable/disable font actions. This way, when enabling/disabling can show font name as opposed to URL.
Pass application name to kfontinst - so that dialog caption matches that of calling app.
"Duplicate fonts" tool. Locate scalable fonts with multiple files, and allow user to remove - e.g. font files in multiple locations, or font files with different case (times.ttf/times.TTF).
Effects can now request windows to be subdivided into multiple quads.
Effects also get access to window's vertices. This can be used to change shape of the window, e.g. for wobble effect
implement scrolling of CSS containers with the mousewheel
Adding WavyWindows effect which makes all windows wavy. Meant to demonstrate possibilities of vertex transforming and for cool screenshots ;-)
Temporarily-unminimize hack doesn't seem to be necessary anymore.
Use transparency for minimized windows in the fade-in and fade-out phases (when the effect is not fully active yet)
Minimize e.g. dialogs onto taskbar entries of their mainwindows. If everything else fails, minimize to the center of the screen.
A notification about logout canceled by some application ... usually
one of those broken ones like Skype.
Better support for zip files: now uncompressed entries with a tailing signature are recognized.
Add support for BMP files. This was ported from the KDE KFilePlugin to a Strigi plugin by Miquel Torres.
KDE-PIM
Add 'AutoHideTabBar' feature. This will hide the tabbar when only one tab is open. Once a new tab is opened (3rd mousebutton on message/url) the tabbar is shown. No configure GUI yet, set AutoHideTabBar=true under the [General] group in mailodyrc to enable this.
aegypten issue718: "In the key creation dialog of Kleoptra, the selection box for the key length should be reduced by all entry below 2048 bits.
Currently, anything below 1900 is regarded as too insecure."
Office
Add DurationSpinBox + delgate and use in taskeditor.
This works as a double spinbox with the addition of changable units.
It's meant as a replacement for the (somewhat complicated) DurationWidget.
Caveats:
* Based on QDoubleSpinBox, should possibly be KDoubleSpinBox (KLocale vs QLocale).
* Precision is always 2.
* Rounding may change the value when the unit is changed. This shouldn't be a big problem as the *normal* use case is to select the unit, then enter a value.
Many improvements to the enhanced path shape.
The shape has now a concept of a viewbox with the original coordinate system and coordinates defined with the enhanced path parameters. The evaluating of parameters and formulae works with that to calculate the values used for creating the shape.
Those values get mapped into the shapes coordinate system and are then used for creating the outline.
This fixes the bounding box problems experienced with shapes changing its size when edited.
Implemented more commands and a circular-arc shape copied verbatim from oo2 to test these commands.
Splitted the template definitions into different functions inside the shape factory and use more complex structures as properties of the templates.
Use the KDE global keyboard shortcuts instead of hardcoding the keys
Added support for saving to encrypted files.
Multimedia
Since my comment is way to short and I cannot understand the reason anymore I just removed it and with it added support for CD-RW for auto project size detection.
This should be a reminder for me to write proper comments. ;)
Networking Tools
tried to make the appearance UIs look a bit better. dunno that i succeeded though.
Add option to force the mainwindow to be hidden on startup
User Interface
new icon base for the smiley icons
new shellscript mime
adding a first version of the binocular for search icon
added lots of cheap tab transition (for ppl w/o render)
config for the many transitions
some more work
some more work
Utilities
Use KNewMenu instead of custom implementation of Dolphin. TODO: currently errors are indicated automatically in a message box KNewMenu. In Dolphin modal dialogs having only an "OK" button are not used -> it would be nice if Dolphin could handle the errors in a custom way.
First step for making the details view usable again:
- accept drops
- Automatically resize the columns in a way that the whole available width is used by stretching the width of the 'Name' column. Qt4's QTreeView really rocks, only a few lines of code had been necessary to get this behavior :-)
Games
Optimization
Development Tools
Office
* Compile the mmx assembler for scaling (I will post the cmake solution I prepared with lots of help from Alexander to the build system ml). On an mmx-enabled system, scaling dropped from 30-100 ms to 6-30ms.
* Smaller checks apparently paint lot faster
Utilities
Further optimizations: do a delayed update of the geometry. This leads to a reduced flickering/resizing when e. g. the view is split or the window is resized.
Security
KDE Base
fix javascript insertion in <title> tags as described in:
<a href="http://www.securityfocus.com/archive/1/457763/30/30/threaded">http://www.securityfocus.com/archive/1/457763/30/30/threaded</a>
basically, we want to parse comments in titles, to avoid capturing a <script> tag by accident. Easy fix.
Testcase:
<title>myblog<!--</title></head><body><script src=<a href="http://beanfuzz.com/bean.js>">http://beanfuzz.com/bean.js></a> --></title>
Other
Development Tools
KDE Base
Made lots of methods non-virtual that were virtual for no good reason
Moved all protected member variables to the d-pointer
Made all internal slots true private slots
- as long as the rest of KComponentData is not threadsafe there's IMHO no reason to use an atomic refcount
- add logic between KComponentData and KSharedConfigPtr to delete itself when both of their refcounts have reached 1
- reenable the KLocale hack
- KConfig keeps a KComponentData object and uses KStandardDirs from that object instead of KGlobal::dirs()
- added KSharedConfigPtr (inherits KSharedPtr<KSharedConfig>) for special refcount handling with KComponentData
- make KSharedPtr::d protected instead of private for KSharedConfigPtr
One more API change for K_GLOBAL_STATIC (from what I know it's not used anywhere yet):
use an anonymous struct (POD) for the global object that provides the following functions:
- bool isDestroyed()
- operator TYPE*()
- TYPE *operator->()
- TYPE &operator*()
- static void destroy()
The latter is used for cleanup and can be used as a post routine with
qAddPostRoutine
This expands to a little more code but a lot nicer API.
Initial port of kdesktop bindings - somethings are disabled
krunner doesn't actually use these bindings yet
BUT, it builds/runs still, so I must not have b0rked it too badly.
I'm not sure how to pull bindings.h in from main.cpp
Disable kdesktop in favour of krunner
This is to force the broken kdesktop to finally die. Most of it's non-desktop functionality (mini cli, shortcut key definitions, locking/screensaver and Autostart folder processing) has been moved over.
ALT-F2 is currently broken - to get the runner to show up, you have to issue "qdbus org.kde.krunner /Interface display" in an xterm or equivalent. CTRL-ESC, CTRL-ALT-DEL, etc. work.
Lastly, you have to manually remove share/autostart/kdesktop.desktop to fully kill kdesktop, if you are not using a fresh install...
Move krunner-specific code into krunnerapp, to leave restartingapplication be about restarting only Connected signal to the display slot of Interface, which should hopefully fix Alt-F2.
Implemented newInstance so that launching krunner twice opens the interface again.
KDE-PIM
The Mailody Manual. Codename: "Something is better than nothing."
This patch uses the resource's own KABC::Lock to lock the cache file, which inhibits the file_copy operation that causes the error. The resource detects its cache is locked after having loaded the cache, but before refreshing the cache.
The result of adding this lock is that if two processes are simultaneously reloading the resource, the winner will first load the cached version (call it C-1) and then load C0 after fetching it. The loser will load C-1, encounter the lock and stop. On the next iteration, Winner gets C1 and Loser gets C0.
So the result of the lockstep is that loser is at most out of date by one version of the resource. A better synchronisation would be if we had distributed locks so that Loser is notified when Winner releases its lock and then loads the fresh cache file.
Forward port of SVN commit 627420 by kainhofe:
Work around Windows-isms. RFC 2445 clearly says that all linebreaks are always \r\n, even under Unix, where \n is used for text files. Just because windows apparently adds the \r automatically, when you add a \n, does not mean that other platforms will do the same. Here in Linux, the file contains exactly what you put into the char*, which is a \n only and thus invalid.
a few more renames left and kdepim compiles
Office
Create a branch for a new cell storage based on a sparse matrix data structure.
The copyright line; "Copyright (C) 2002 - 2005, The Karbon Developers" is not allowed; as it does not denote an entity. Replace with the real author from the svn log to make the libs copyrights a bit more sane.
Multimedia
aded proposal for a new collection architecture
Networking Tools
Branch for extra Now Listening backends, pending another 3.5 branch unfreeze
It's official, ktorrent is now making the jump to the land of KDE 4. It will be a big job to port it all, so don't expect much functioning in the next month or so.
This initial import is nothing more then a research project to get an ideal style gui app up and running. Seeing that nobody ever bothered to make an ideal library for KDE4 (kate and kdevelop seem to have gone their own separate ways), I decided to hack one together for ktorrent, it's pretty simple, but it works and remembers it state properly. I have put it in a separate directory and library, so maybe somebody else can some day find some use for it.
Utilities
Get rid of some KDE 3 relicts.
Other
script to help porting in the kinstance-redesign branch