Issue 44
4th February 2007 by Danny AllenThis Week...
This isn't the first Javascript engine that Trolltech have released: QSA came out some time ago. QSA suffered from using a draft of Javascript 2 which was different enough from the Javascript people are familiar with to be problematic, and was also very limited in its scope. Since KJSEmbed and KJS offered a lot more facilities, and it wasn't possible to build those facilities with the APIs that QSA offered, I wasn't much interested in QSA. With QtScript, the Trolls have written a completely new implementation - nothing of the old QSA remains.
QtScript uses the standard Javascript we're all familiar with, and is similar in design to the Qt 4 version of KJSEmbed. The interpreter is new, and having looked over the code it seems well-thought out. The design of the interpreter is good, and seems well suited to optimisations like JIT compilers (this is something that the current KJS won't support without some major changes). That said, speed hasn't really been an issue for us anyway.
Like KJSEmbed, QtScript provides bindings that allow Javascript code to interact with QObjects. The facilities for binding in QtScript are very similar to those in KJSEmbed, with a template-based implementation similar to that used in the Qt 4 version of KJSEmbed.
I've been playing with the code since it was first made public, and talking to Kent, Roberto and Simon at Trolltech to make sure that this new Qt API will support the facilities required to implement APIs like KJSEmbed. The initial cut of the code wouldn't allow some of the facilities KJSEmbed offers, but thanks to some nice work by Kent and Roberto, and the fact QtScript was well-thought out, it can now provide a base on which a tool like KJSEmbed can be built.
The situation now is that QtScript can now support all of the features required to implement KJSEmbed, including nifty stuff like using Javascript to handle events on C++ widgets. This doesn't offer us any new features over the Qt 4 version of KJSEmbed, though in places I think the QtScript API is cleaner. The next step is to talk to the other KJSEmbed developers and decide how we want to proceed.
The core of Step is a physical simulation library named StepCore. StepCore can be used independently of Step to create complex simulations by hand, or in another program that requires physical simulation functionality. Unlike other similar libraries, StepCore focuses on accurate simulation with error estimation - it is very important for educational programs to show how things are in the real world and at least warn the user if it cannot do so. The library also tries to be extensible and easy to use.
Step is a very young project: many important features are still not implemented. There are therefore many interesting tasks for programmers, physicists, mathematicians and artists. I hope it will be fun to work on Step - if it seems interesting to you, you are welcome to join Step and StepCore development!
More information about Step is available at http://stepcore.sourceforge.net/
Step source code is currently at http://websvn.kde.org/trunk/playground/edu/step/
- Bug 33776: css background-color:transparent/inherit causes input elements become illegible (testcase)
- Bug 52880: [testcase] table floating at wrong position
- Bug 66740: Add icons for context menu on address in readerwin
Statistics
Commits | 2137 by 213 developers, 4943 lines modified, 1124 new files |
Open Bugs | 12860 |
Open Wishes | 12216 |
Bugs Opened | 314 in the last 7 days |
Bugs Closed | 306 in the last 7 days |
Commit Summary
Module | Commits |
/trunk/KDE |
433
|
/trunk/extragear |
342
|
/branches/stable |
314
|
/branches/work |
305
|
/trunk/playground |
213
|
/trunk/l10n |
156
|
/trunk/koffice |
110
|
/branches/KDE |
79
|
/trunk/www |
76
|
/trunk/kdesupport |
32
|
Lines | Developer | Commits |
308
|
Matthias Kretz |
128
|
162
|
Gilles Caulier |
58
|
69
|
Maximilian Kossick |
55
|
104
|
Mark Kretschmann |
55
|
128
|
Andreas Pakulat |
47
|
102
|
Pino Toscano |
46
|
105
|
David Faure |
45
|
95
|
Laurent Montel |
42
|
218
|
Richard Dale |
39
|
106
|
Allen Winter |
38
|
Internationalization (i18n) Status
Language | Percentage Complete |
Portuguese (pt) |
100%
|
Swedish (sv) |
99.74%
|
Danish (da) |
99.59%
|
Spanish (es) |
99.07%
|
Dutch (nl) |
97.44%
|
Greek (el) |
96.14%
|
Estonian (et) |
95.51%
|
German (de) |
95.45%
|
Italian (it) |
94.69%
|
Brazilian Portuguese (pt_BR) |
92.71%
|
Bug Killers and Buzz
Person | Bugs Closed |
Bram Schoenmakers |
77
|
Philip Rodrigues |
72
|
Tommi Tervo |
33
|
Andreas Pakulat |
17
|
Martin Aumüller |
15
|
Luboš Luňák |
13
|
Mark Kretschmann |
12
|
Seb Ruiz |
10
|
Germain Garand |
9
|
Robert Knight |
8
|
Program | Buzz |
Amarok |
4740
|
KMail |
3700
|
Kate |
3400
|
K3B |
3270
|
KDevelop |
3060
|
Kopete |
2978
|
Kicker |
2136
|
Kontact |
1776
|
Kaffeine |
1502
|
digiKam |
1280
|
Person | Buzz |
David Faure |
1396
|
Adriaan de Groot |
1009
|
Stephan Kulow |
978
|
Zack Rusin |
675
|
Waldo Bastian |
634
|
George Staikos |
406
|
Aaron J. Seigo |
390
|
Stephan Binner |
331
|
Albert Astals Cid |
297
|
Thomas Zander |
294
|
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 159 selections this week
Bug Fixes
Development Tools
Don't force the lower-case filename for the #include line
Graphics
digikam from trunk : forcing focus to Comments Edit Widget from Comments & Tags sidebar is not the right solution. Focus stuff is a complicated problem witch must be study indeep.
In fact the folder view and album icon view take the focus with the mouse. The previous implementation cannot work with that. Also, alots of menu shorcuts are broken if we force Comments edit widget to take focus.
My viewpoint is to implement a shortcut to toggle gui to captionning mode. It a better/simple solution. Please give me your viewpoint.
Fix Keyboard navigation in kpdf in konq only possible after focusing it with the mouse after changing tab
fix locking bugs -- this should fix bugs 141052 and 141054
fix tag testing
KDE Base
honour 'inherit' for background colour of form controls in strict mode.
only allow spilling of line boxes if it's consistent with current directionality.
(cherry picked in Webcore's r7692 from David Hyatt)
Reverting <a href="http://websvn.kde.org/?rev=617941">r617941</a>. This fixes jumping to the top right before loading a new page and also fixes page loading time increase.
Attention packagers! Please include this patch in new versions of your khtml-3.5.6 packages. Web surfing experience can be considered broken without it.
adapt float minMaxWidth calculation change by David Hyatt.
now considers flowAroundFloats, takes better care of clearing.
get the right position when inserting backreferences
Avoid various braindamage when deleting condition objects.
KDE-PIM
merge SVN commit 627761 by winterz:
Fix bug "Add icons for context menu on address in readerwin"
Thanks for the patch Mikolaj. Hey, we only took 3+ years to commit it! :)
Fix for "find journals doesn't display journal title".
Thanks for the patch Lars.
Emit the completed signal of KMCopyCommand after everything has been fully copied, not just after the copying has been started.
This fixes data-loss when aborting a folder move, however since the completed signal doesn't seem to be emitted in this case, we now have a crash on exit... :-/
Refresh the pointer stored to the addressbook whenever KABLock::self() is called, otherwise we risk that StdAddressbook::close() has deleted the reference addressbook and invalidated the pointer.
Fixed irritating bug (and very hard to find). When selecting another message, the previous message was redrawn first, this is caused because we set the external images to false before showing a new message, but that actually triggers to redraw the previous message without external images, even though it is no longer selected.
Fixed:
- set hscrollbar to disabled in the datawidget.
- disable smtp debug
- scroll to bottom only when sorting is asc?
- remove purge from toolbar
- composer called from viewer does not honor the storage folder?
- pasting an address in composer sucks.
Ever wonder why the category wasn't being checked when you asked for it? Cut and paste error that's been here for ages.
i18n In case of stale lock files, do not start timing, but warn.
Thanks to Tim Small for his report.
Office
* fix the png export by using the vcomputeboundingbox visitor to calculate the documents bounding box
* do not consider deleted objects when computing the bounding box
This fixes bug 140790 because when exporting to tiff the filter chain exports to png first and then uses a krita filter to convert to tiff.
Multimedia
Disable Google's javascript when loading images for the cover search, and make sure that any images we try to load have only one "http://" protocol header.
Based on a patch from Michal Bukovsky.
I don't get messages about exceptions right now but I also don't have kdelibs built with debugging so I'm leaving the bug open for now. I will forward port tomorrow.
Fix mem leaks in ManualDeviceAdder and do some cleanup.
For 2.0
adding tracks as queued would immediately unqueue them
ignore 'the' when sorting playlist by artist
initialize in order to avoid crashes with some .rm files
Let the horizontal scrollbar show when necessary in our html boxes.
Networking Tools
Fix treelist scrollbar not picking up on new palette when the KDE color scheme changes.
Features
Development Tools
New stuff: A useful basic type info display system in approx 60 lines of code - why don't we have this already?
Rework of the project related stuff:
- project dir contains only the model, the job and the interfaces (builder)
- projectcontroller and project are moved to shell with interfaces created
- project has quite some code commented out because the configuration stuff is missing in core still
Along the way fix installation for filemanager and persistenthash
Also along the way change some headers (like kdevlanguagesupport.h) to use IPlugin instead of Plugin to make the rest compile.
Educational
Complete the Kalzium 3D navigation system. Fix related bugs.
Graphics
Several changes:
- renamed signalRequestDone to signalPixmapRequestDone to allow a future signalTextPageRequestDone
- added error/warning/notice signals to TextDocumentConverter and add meaningful error messages to ooo and fictionbook generator
- code cleanup in chm generator
- print improvements and error notification in kimgio generator
digikam from trunk : connect batch Album Icon View actions to progress bar (on status bar of Album GUI). Actions are listed below :
- Assign Tags by drag and drop
- Assign Tags by pop-up menu
- Remove Tags by pop-up menu
- Assign Rating by Pop-up menu or Shortcuts.
- Fix Exif orientation tag.
Marcel, MetadataHub connection still todo in AlbumIconView. I have tagged source code with TODO annotations where MetadataHub must be used. Can you take a look ?
cleaned up Data Manager, adding "Create New Object" label and splitter
KDE Base
do it the right way, disable the editorpart dialog, use always the own one, if the user says: no, I don't want notifications, we don't wan't that the editor part still shows it's own dialog
join cullmann and do some work ;)
* simplify KateViewBar: remove KateViewBar::m_activeViews counter
* make `goto line` work
* make ESC hide the KateViewBar if the bar has focus
* KateSearchBar: do not handle ESC here
notes
* todo: make ESC hide the KateViewBar if the view has focus
* do we really need KateViewBarWidget::hideIsTreggered?
A usecase would help I guess :)
make Key_Escape behave like this:
1. close completion box (if visible)
2. close view bar (if visible)
3. remove selection
Redesign KAboutApplicationDialog and KAboutKDEDialog:
* these two classes have not very much together: no need to subclass both from KAboutDialog
* KAboutDialog is obsolete :) this class is a _mess_. I will remove it as soon as all is ported to the new classes. KAboutDialog is never ouside kdelibs used in trunk/KDE
* reduced code from over 2000 lines to less than 500 in all these classes
* KAboutApplicationDialog open now noticable faster and it's content is now KTextBrowser based
* it's way easier to understand and change the layout of both dialogs
* IMHO a bit nicer and more modern layout
easy to port:
* KAboutApplication renamed to KAboutApplicationDialog
* KAboutKDE renamed to KAboutKDEDialog* both classes lost their last argument (bool modal) -> by default not modal (false)
use read/writeSessionConfig to load/save session config data, i.e.:
* last 10 search patterns
* last 10 paths
* last 10 file filters
* recursive and case senstitive
This is the first plugin which uses read/writeSessionConfig, and - of course -
it does not work: Right now, the mainwindow-number is always -1 in readSessionConfig, however, writeSessionConfig seems to work.
- cleanup function for the engine which deallocates all internal object
- entry cache in addition to provider cache
- entry loader in addition to provider loader
- merge functionality for provider and entry cache (not finished yet)
- design document started for those who care (hi ruphy...)
- make feeds a first-class citizen and give them their own class (orthogonal to categories)
- do not involve QString in networking operations, since QByteArray is more than enough (and QDomDocument will handle the encoding so we don't need to do anything about it)
- compatibility with the KNS1 feeds: latest, most downloaded, highest rated are on by default
- describe the two major workflows (uploads and downloads) and mention some minor worksflows
Lots of changes:
* Some code cleanups
* Start using @brief, @params and @return in doxygen comments
Still a lot of the comments do not and need updating.
* Start work on an interface between Decibel and the desktop environment's PIM system (for contacts).
* Get ever closer to actually be able to initiate a connection from Decibel:-) This requires some contacts, which is why I started on that interface in the first place.
two line search bar, I think nicer than advanced button, and should be enough place for all needed options
add support for xrandr to kwin
Parse /proc/mdstat better to get more information out of it. This way we don't need to be root to parse /dev/md0
If, for some reason (xine's time reporting does not work very good), the aboutToFinish signal was not emitted and playback finished, first emit the aboutToFinish signal with a time of 0 ms, before emitting finished.
Added event debugging.
Sometimes (not sure what the condition is, but unit tests and fast sequences of stop-play-stop-play trigger this) calls to xine_play need a long time before playback really starts. Use a timer to regularly check for the status and staying BufferingState until then.
As the timing information from xine is bad, better not rely on it when setting a timer for the aboutToFinish signal. So we take the time info from xine minus 400 ms, too perhaps look at it again too early and then it's like full time polling for the right moment.
Make the 'About Application' dialog look a bit nicer.
* Line up tab widget and Close button
* Use a larger font for the application title
* Clearly separate application version and KDE version
* Put application icon and title side-by-side in the same frame
Make generic about dialog look more like About Application dialog.
Improved filtering algorithm. Now fast filtering is used by default, while (depending on SmoothScale in kwinrc) bilinear filtering is used on transformed windows and screens.
Optionally, if SmoothScale is set to 2, trilinear filtering will be attempted instead of bilinear. This requires GL_ARB_texture_non_power_of_two, GL_EXT_framebuffer_object, and valid mipmaps.
KDE-PIM
Set an appropriate error code when a job is killed. A copy/move from online IMAP to a local folder can now be canceled correctly.
Rewritten print routine. The previous routine could not print html messages. This new routine can do that. It creates a new khtmlpart, adds the headers and uses the default khtml print part to print it. Honours the settings for external images and fixed fonts and html/no-html.
Just the barest start of splitting out the copy HH <> PC data code like we did in vcalRecord, but it's bedtime.
Revert bits of last few commits so it compiles again and makes sense. I'm beginning to suspect that we need a much bigger basic rewrite of the abbrowser conduit so that it is documented and less convoluted.
Remove the M and T columns completely. Change from the blue info icon, to a nice little dot. Rewrite the calculation of total messages.
Office
Add in a couple more functions required by the OpenFormula specification - BITAND and BITOR, which do bitwise operations on their arguments. Note thatThe current implementation doesn't match the OpenFormula requirement for 48 bits - we only do 31 bits.
I've added these into the logic section of the KSpread formulas directory. Perhaps there might be a case for a new section (bitops.cpp and bitops.xml)?
Added the odfpyexport.py script to KSpread to produce custom OpenDocuments.
* The script uses the ODFPY python module (<a href="http://opendocumentfellowship.org/projects/odfpy">http://opendocumentfellowship.org/projects/odfpy</a>) to produce opendocument text files from within the KSpread sheets.
* Needs improvments within next days once the cmake-upgrade + whole recompile is done. Shouldn't be difficult to also add export to .g. OpenDoc Presentation ;)
* It's just an example how to use Kross+KSpreadScripting to produce easy custom opendocuments from within KSpread.
* Fantastic work done on the python-module, Soren. A lot of thanks!
* Solve the tool-actions problem. A tool can now have its own set of actions which will be plugged into the Gui via the ToolManager. This allows applications and users to add things like the 'bold' action to their xmlGui lists, while the tool (plugin) is the one that creates the action.
* Make KoTool use a d-pointer
* Slight cleanup of KoToolManager API. The addControllers() method now only has 1 arg; so rename it to addController()
Multimedia
Eject media via HAL if available to automatically unmount.
First support for transition elements, start w/ fade which nicely shortens the intro anim
when browsing songs by labels
- show 30 instead of only 10 songs
- order them them by favourite and then randomly
removed DCOP referencesDeviceManager still needs to be reimplemented using Solid
Converted the first global shortcut. Global shortcuts are now created via KAction instead of KGlobalAccel.
Many more shortcuts to do...
Disable fixHyperThreading(). I guess (I hope?) it will no longer be needed with Qt4 anyway.
Networking Tools
Refactor the emoticon handling to return *all* emoticons including "alternatives".
Besides being more correct semantically this makes it possible to "export" all emoticons as custom emoticons via e.g. MSN.
(Note that the latter doesn't work all that reliable though, but that is the MSN P2P protocol, at least the underlying code is now able to figure out that something has to be sent in the first place)
User Interface
Improved devices/printer. scales down much better. improved bottom shadow.
some improvements
Utilities
Initial Kamion commit.
libKamion:
The library has 95% of the functionality it is supposed to have. The code for extracting the kamion archives is removed until it is thoroughly tested.
Kamion GUI:
KDE4/QT4 GUI for the library is available for testing.
Improvements for error messages:
- increase/decrease size on demand and hide progress bar or space information if required
- provide close button
TODO: the code is far from being finished (e. g. no queueing of pending error messages, close button looks fugly, ...), but I decided to commit the changes to prevent getting an inconsistent state in combination with other commits...
Queue error messages so that a currently shown error message is not replaced until the user confirmed the reading. If there are no pending error messages and a timeout has been exceeded, the currently shown error messages automatically fades out as soon as the user triggered another action. This behavior should correspond to Ellens suggestions (I hope :-)).
Games
- Full rewrite of the central graphic widget with QGraphicsView to improve the user experience and to provide cool effects in the future ;)
- Full scalable central graphic widget (with some SVG elements: the balls and the cross): KBBScalableGraphicWidget.
- Old central widget KBBGraphic is still there and can be activated by changing 2 lines in the code.
- Set the version number to "0.4.0-SVN" as the changes are now big and visible.
- Bug correction: Number of placed balls is now immediately updated.- Small temporary regressions: It's not possible to play with the keyboard anymore. User documentation is now out-dated.
Other
Implemented registering and acknowledging of test calls and report the at the end.
Implemented Tests.Primitize. When testing against the java bindings it fails on one of the test data sets, but I am not sure a a{ss} is valid input data, since the dict value is not a variant
Optimization
Development Tools
Educational
Cache the background to a pixmap so that painting is faster
Graphics
speed up object insertion about 3 times -- this is very important with lots of objects
unnecessary but fun small optimizations, basically avoid unnecessary detach() calls by ensuring the const method is called
also remove a double search on a qmap
KDE Base
Added unit test for the crash on file modification.
Optimize QHash usage (shorter key)
Add constant strings that take a small memory footprint and can be compared very efficiently.
Other
Development Tools
New D-Pointer checker. Complains about private members in header files of public classes. Also complains if the D-pointer is not const.
For appliction headers, it will complain only if it finds a mixture of private members and a D-pointer.
During testing found 1800 issues in kdelibs.
Merged sublime-integration branch with trunk!
The branch was started just to use the new UI for KDevelop4 but transformed to large restructuring, reworking and cleaning effort.
In short, now we have:
- sublime-based UI
- interfaces for platform objects
- extension interfaces for platform plugins
Bye-bye sublime integration branch. I will miss you ;(
Educational
Graphics
KDE Base
Move some part of kcontrol to runtime as discussed with David some module from kcontrol (and kcontrol) is necessary under windows/macOsX to configure language/icons/styles (otherwise it's not possible to change it)
For the moment I disable kcontrol build because it's necessary to port it under other environment.
attempt to port to new completion interface, but it does NOT WORK (the completion popup doesn't display the items).
directional/shell completion works partly (i can fix that, since its just logical errors and not using any odd interface)
KDE-PIM
Since the KMail homepage has moved into kontact.kde.org, it's a good idea to point there instead of the deprecated kmail.kde.org. Not a string change.
Disable jscript, java, metarefresh and plugins for the printing khtmlpart, error spotted by David Faure.
Convert birthday dialogue to model/view framework
Remove kitchensync, as discussed and decided on kde-pim ML.
Commented-out the kitchensync lines in Makefile.am.in and retained other references to kitchensync since we hope to have the new-and-improved OpenSync implementation "real-soon-now".
Office
Multimedia
Dear translators, we are really sorry: we forgot to put i18n() around those five strings. Anyway, now there is at least a chance that some of you might be able to translate them.
reverted Untouchable's join order changeindices are now created at each startup. this will create SQL errors when they already exist
Removing the 1.3 Amarok branch, to make way for the 1.4 stable branch.
1.4 branch moving to stable. 2.0 here we come!
I'm about to commit the l10n branch stuff. If all goes well, it should take just a couple of commits.
now amarok successfully doesn't compile with cmake
good bye autocrap!
update to current version from <a href="http://svn.musicbrainz.org/libtunepimp/trunk/plugins/wma/">http://svn.musicbrainz.org/libtunepimp/trunk/plugins/wma/</a>
Networking Tools
User Interface
Add list of icons needed by KDevelop
Update KDevelop icon list, mostly incorporating latest comments from Jakob Petsovits
Updating kdelibs icon list. 69 icons set as final so far.
hack of the enerate_oxy_theme-ng.sh script, works incremental (i.e. keeps pngs and only generates updated ones, should be able to handle small icons, creates 48x48 action icons (as they're on the toolbars), doesn't worry about blanks and periods in filenames, doesn't use extern pograms like cut or sed (that's slow), has an easier to modify codebase)
ASK if you want sodipodi support
Utilities
Creating a branch for implementing html validation in klinkstatus.
I hope this code gets replaced by kpowersave, but just in case...
Games
move kttt from kdenonbeta to playground/games, i wanna port my small tictactoe game to kde4 :-)
Other
Patch by Ben Schleimer: provide CMakeLists to install GMM to
$INCLUDE_INSTALL_DIR/gmm
I checked, no other free-software project with name "gmm" seems to exist.
Question: how will Eigen include GMM ?
Will we do #include<gmm/gmm_something.h> ?
Then we need to add eigen/ to the include dirs when compiling the eigen tests and examples.
Import a full copy of GMM++ as a subdirectory of Eigen.
GMM++ is an advanced linear algebra library giving sparse matrices and other such goodness, currently useful for new advanced Krita filters.
Having a verbatim copy of GMM++ will make it easier to sync in the future.
Next step is to add to Eigen a wrapper exposing selected GMM functionality in a KDE-friendly way.
Remove the kdecore dependency by copying in KDateTime, and remove its dependencies and fix the warnings it has. This required some severe loss in functionality, but unfortunately this is only temporary.
KDateTime is GNU LGPL'd, as consistent with Patternist.
Further, simplify the build files to not bring in KDE stuff.