28th January 2007by Danny Allen
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:
|Commits||2006 by 207 developers, 4600 lines modified, 1240 new files|
|Bugs Opened||295 in the last 7 days|
|Bugs Closed||211 in the last 7 days|
Internationalization (i18n) Status
|Brazilian Portuguese (pt_BR)||
Bug Killers and Buzz
|Alexandre Pereira de Oliveira||
|Adriaan de Groot||
|Aaron J. Seigo||
There are 125 selections this week
- 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.
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. :-/
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.
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.
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"
Fixed regression: the DEL key no longer worked in the playlist after opening the File Browser context menu.
Jeff, you almost fixed it:)
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 bug 138183: unchecking notifications in the tab menu doesn't prevent highlight sounds
Fix bug 132230: selected text is deselected on channel activity
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
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)
* 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:
* 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.
* Add ChannelHandler class
* Add simpleclient: It responds with "pong!" on incomming "ping!" jabber requests
* 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).
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.
* 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.
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. ;)
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 :-)
basically, we want to parse comments in titles, to avoid capturing a <script> tag by accident. Easy fix.
<title>myblog<!--</title></head><body><script src=<a href="http://beanfuzz.com/bean.js>">http://beanfuzz.com/bean.js></a> --></title>
- 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
This expands to a little more code but a lot nicer API.
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.
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.
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.