Issue 227
18th March 2012 by KDE Commit-Digest TeamContributors
Vladislav Blanton
Jaka Kranjc
Marta Rybczynska
This Week...
Krita 2.4 is dedicated to the memory of Jean Giraud Moebius.
Statistics
Commits | 2587 by 183 developers |
Open Bugs | 21884 |
Open Wishes | 16921 |
Bugs Opened | 504 in the last 7 days |
Bugs Closed | 498 in the last 7 days |
Commit Summary
Module | Commits |
/trunk/l10n-kde4 |
168
|
/branches/stable |
98
|
/trunk/KDE |
51
|
/muon-mobile/qml |
29
|
/src/harmattan |
27
|
/trunk/www |
25
|
/trunk/l10n-support |
23
|
/applications/filebrowser |
14
|
/krita/plugins |
13
|
/components/metadatamodel |
11
|
Files | Developer | Commits |
258
|
Aleix Pol Gonzalez |
87
|
222
|
Gilles Caulier |
76
|
183
|
Milian Wolff |
63
|
186
|
David Faure |
63
|
168
|
Marco Martin |
62
|
138
|
Laszlo Papp |
48
|
111
|
Boudewijn Rempt |
42
|
126
|
Yuri Chornoivan |
42
|
99
|
Ralf Habacker |
33
|
93
|
Jakob Gruber |
31
|
Internationalization (i18n) Status
Language | Percentage Complete |
Portuguese (pt) |
100%
|
Swedish (sv) |
99%
|
Polish (pl) |
98%
|
Spanish (es) |
96%
|
Dutch (nl) |
95%
|
German (de) |
94%
|
French (fr) |
92%
|
Estonian (et) |
92%
|
Italian (it) |
90%
|
Low Saxon (nds) |
87%
|
Bug Killers
Person | Bugs Closed |
Thomas Lübking |
113
|
Martin Gräßlin |
70
|
Jekyll Wu |
54
|
Christoph Feck |
42
|
Ben Cooksley |
40
|
Myriam Schweingruber |
15
|
Christophe Giboudeaux |
15
|
Andrea Diamantini |
13
|
Marcel Wiesweg |
11
|
Peter Penz |
10
|
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 107 selections this week
Bug Fixes
Development Tools
Fix a crash bug related to alias declarations
Fix a bug with generator ranges
The implementation of this really, really sucks... but I don't know of a better one. :(
Fix handling of kde_projects.xml on first-run.
Specifically, on first run in --pretend mode, where kdesrc-build has no
existing metadata of any sort downloaded, and no way to make a source
dir to hold incoming metadata.
Instead we just save it in a temp file.
The kde-build-metadata module still doesn't get downloaded though, and
so if you (for whatever reason) run kdesrc-build --pretend as your first
action upon installing kdesrc-build, you would not get 100% accurate
build plans.
Instead of special-casing that I think I would just add a --init or
--setup command line option and then tell the user to use that for
"--pretend in first-use" scenarios.
fix crash when loading multiple files in parallel
QRegExp is not thread safe, hence don't share it between
threads by making it static.
when frames don't contain filename and linenumber skip them and set the first with debug info as current
this happens when stopping inside a library without debug symbols
Fix bug 288164: don't crash if GraphViz binary not found
The bug only showed up on Windows, but could have happened
on Linux as well. This actually fixes 2 bugs:
* if it is detected that calling 'dot' fails before data
is written to the child process, a 0-deref SEGFAULT happens.
Now we use a local copy of the QProcess variable which is
not set to zero on error.
* with first bug fixed, we could show wrong message, as
the timer about warning on long layouting eventually
is started only after the error message is shown. This
error therefore soon is overwritting by misleading warning.
Use filled junction state widget on state diagram dot export.
Use neato generator for state diagram dot export and auto layout, which
gives better layouts.
Educational
All backends have completion again, plus minor bugfix.
- Completion works for R and KAlgebra, but it currently cannot find out the
identifier type in these two backends, so there are no automatic parentheses
or similiar. Adding this feature for KAlgebra should be easy, I just don't
know the library. Maybe I'll look into this.
In R one could use the function is.function to identify functions, but maybe
the RServer can do better? Again I havn't had a close look at the code.
Graphics
Handle moving sidecar files alongside main file when renaming the temp files in image editor
Check for null pointer
JPEGLossLess: bugfix ThreadWeaver Jobs
Rewrite addToGroup to handle more cases, especially grouping image b on a where a
is currently grouped on b
KDE Base
handle ungrab crossings for FFM & mouse preference
REVIEW: 104316
do not crash when passing a url in the ctor
Do not call setUrl in the ctor since m_dirLister does not exist yet.
Instead, assign m_url and call setUrl later in init().
Use Show desktop item instead of empty text in TabBox
If there are no windows for Alt+Tab the Show Desktop entry
is shown. This works better with both layouts and effects.
Before this change effects were not activated at all but
a fallback to the layouts was used. Concerning the layouts
some looked rather bad. E.g. Thumbnails did not show a
thumbnail but a legacy text had been shown.
When a window gets added to the empty list, the show desktop
window is removed and consequently when the last window goes
away the show desktop entry is added again.
There is a not considered corner case: if there is no desktop
window, the show desktop functionality is not available and
the behavior is unfortunately undefined. It is a corner case
as we can expect that there is always a desktop window when
using KWin. E.g. there is either Plasma Desktop or Netbook
and on PA there is always at least one window.
FIXED-IN: 4.9.0
REVIEW: 104379
fix crash: no double deletion any more
Don't highlight windows w/o mouse
REVIEW: 104264
remove overzealous maxmode_restore
there's no point in changing the behavior of the maximize button
fix crash: no double deletion any more
scale correctly when placed in a panel
1)Use setPreferredSize instead of setMinimumSize
2)Set the size policy to QSizePolicy::Minimum
Also, remove update() from constraintesEvent() as per the docs.
FIXED-IN:4.8.2
raise window during shade hover
REVIEW: 104280
Sanitize position on screen changes with different struts
REVIEW: 104233
Meant to use QPointer not QScopedPointer.
Note that the crash reported in the bug # below was supposed to be addressed by
the original commit db0ee97f. However, QScopedPointer causes the same problems
as using a plain pointer or creating the print dialog on the stack. For further
detailsi details, read http://blogs.kde.org/node/3919.
special case keepAbove Docks
This can be used by (autohiding) panels to get the panel above other keepAbove windows
Since the activation still impact the stacking order, the panel should still use
QWidget::raise() or eventually KWindowSystem::raiseWindow(WId win) to (forcefully) get the panel on top.
NOTICE: latter is actually a call for tools like pagers and taskbars, don't abuse it but
preferably use QWidget::raise() instead. Unless the user doesn't type into the keepAbove window while
activating the panel at the same time, this *should* be sufficient.
REVIEW: 104279
Drop workaround for
Workaround for a Qt4.4RC1 redrawing bug is no longer needed.
REVIEW: 104300
KDE-PIM
Fix detection of false, false positive conflicts.
revision isn't a kolab xml field, it gets lost, so my assumption
that after each modification, we would get a different incidence
was wrong.
Fixes a data loss bug.
Merge duplicate statements in the ResourceMerger
This happens in cases where two resources identifiy to the same resource and
their statements are resolved in the ResourceMerger. During the cardinality
checks, there exist identical duplicates (because of the merge) of certain
properties which result in cardinality errors.
Also added a unit test.
This should fix the problem with PIM Email Indexing
Recurrent events: "Missing time zone definition for start time" (bug #296111)
Office
Fixed: drop XFig polylines/polygones/splines with point number < 1
Fixes: write points of polylines and polygones with-in a svg:viewBox
Fix deep copying of KexiDB query schema and ORDER BY structures
KexiDB
*Fix deep copying of query schema and ORDER BY structures
**This removes crashes related, e.g. in reports based on queries with joins
FIXED-IN: Kexi 2.4.0 (Calligra 2.4.0)
Fixed: properly read XFig papersize (and drop ledger as being landscape tabloid)
Fixed displaying international characters in calculated values
Reports
*Fixed bug: setting a field's data source to a calculated value, results international characters not displaying correctly
Fix deep copying of KexiDB query schema and ORDER BY structures
KexiDB
*Fix deep copying of query schema and ORDER BY structures
**This removes crashes related, e.g. in reports based on queries with joins
FIXED-IN: Kexi 2.4.0 (Calligra 2.4.0)
FIX : Changing chart type from pie/ring chart to bar chart or vice versa ,doesn't works as expected
PATCH :
i) checks whether the dataDirection is vertical or horizontal and then returns the brush
ii) ensures that axis are saved no matter what be the chart type
Fixes for problems on changing field delimiter.
Fix for problem in CSVDialog::processQifLine() when importing a checking file
which contains debit and credit columns rather than an amount column, when both
fields are empty. This resulted in the previous value being used again.
libmsooxml: Don't process a blip in case Target="NULL" in relationships file.
ECMA-376 Office Open XML File Formats – Part 2
The Target attribute shall be a URI reference pointing to a
target resource. The URI reference shall be a URI or a relative
reference.
The test file attached to the bug seems odd, so I did not add the
condition to all places where embedded objects are processed.
Multimedia
ControlPool class. Provides better concurrency handling, required for asynchronous Backends (Pulseaudio, MPRIS2).
Prevent occasional corruption on multi-byte characters in tags
XML from scan was buffered as a QString, which might occasionally be fed
part of a multi-byte character, causing invalid UTF characters. Buffer
as a QByteArray instead and convert only complete sections to QStrings
to avoid this.
Thanks to Alexey Neyman for the patch!
REVIEW:104310
Networking Tools
Fix deadlock in webseeding code
Don't crash when pressing enter on the presence chooser
Reviewed-by: Daniele E. Domenichelli
Always hide the overlay buttons when mouse leaves the widget
This makes sure that the presence message is always shown for contacts
when you don't hover over them
Reviewed-by: Dominik Cermak
REVIEW: 104184
Do not fail installing on optional files
See http://trac.adium.im/wiki/CreatingMessageStyles
Fix individual download speed limit not working
Do not emit Kopete Contact signal statusMessageChanged when status message and status title was changed to same strings
This fixing problem that Kopete sometimes show notification that user changed status message or title which is not true
Get sure urlbar(s) are deleted when related webtab is
Heinz, Paul. Please test actual master before backporting this to
0.9 series. Many thanks for your help and for this bug report.
I'm crossing fingers to hear good news from your tests ;)
User Interface
moved settings of x/ypadding for GtkComboBox buttons from gtkrc to Oxygen::QtSettings.
used different settings for XUL applications.
Utilities
Remember to remove failed fetch jobs from our temporary records, or else we crash when trying to clean up already-deleted jobs later.
FIXED-IN:1.3.1
Correctly insert '\c{c}' for the cedilla character
Games
Dirk branched 2 hours before my commit and thus the fix was only available in the KDE 4.9 branch
FIXED-IN: 4.8.2
Features
Accessibility
Introducing additional "finalize" step for command plugins
If a plugin needs to perform cleanup that changes the scenario during
de-initalization it previously had to do that in the destructor as no
special method was available.
If the necessary cleanup required the scenario to be saved (serialized)
again, that lead to the problem that other command plugins of the same
scenario might have already been deleted. They would either not
serialize properly (resulting in a corupted / incomplete scenario) or
crash simon.
A separate finalize() method has now been implemented that can be
overwritten to provide a save way to do cleanup during de-
initialization.
Existing plugins were changed to take advantage of that where necessary
(AI and AT-SPI).
BUG: 296151
Development Tools
make include-path resolution using make optional on a per-project basis
Make can be invoked by the background parser if some include paths are
unresolved. However some projects do not use make for building and this
potentially induces an overhead for large projects. This patch adds a
project-wide option to disable this behavior.
This patch checks the setting thread safe when the IncludePathComputer
is created, which is always done in the main thread. An additional
assertion is put into place to make sure this continues to work as
intended.
REVIEW: 102883
Based on the patch by Alexandre Courbot, many thanks!
Add support for bzr (to support libdbusmenu-qt).
Aurélien Gâteau has informed me that libdbusmenu-qt has shifted
development awhile ago to be hosted on Canonical's Launchpad, which uses
the bzr SCM. He also informed me that the gitorious.org repository which
kdesrc-build had been recommending is no longer maintained, and very
politely requested help with having kdesrc-build support bzr.
On the one hand I really don't think it's necessary at this point to
allow for building bleeding-edge libdbusmenu-qt (I would be surprised if
kdelibs depended on a libdbusmenu-qt that hasn't been packaged for
months).
But on the other hand if it does become necessary we will be ready, and
this fits in well with the idea of building Qt and all of the
"kdesupport"-style libs in between Qt and kdelibs.
Unfortunately this shows I still have further to go in my
refactoring/documentation efforts since I still had to end up
implementing the support. But, it was certainly a much easier job than
it would have been before I had started fixing the codebase. This patch
was coded over no more than probably an hour or so (if that time were
consecutive... ;) and Aurélien tested overnight and after fixing my one
mistake reported that it worked swimmingly.
After installing bzr today I can report this works for myself as well,
and without having to insert "hacks" throughout the code to make it
work.
New KWin example script: demands attention on current desktop
The rational behind this script is to have only windows on current
desktop as demanding attention. Restricting the demands attention
state to the current desktop means for example that the tasks applet
won't show windows started on different desktops.
The script keeps track of the windows where it removed demands
attention and restores the state when the window's desktop becomes
active.
The debugger plugin loads and supports the debug launch method.
make it possible to open files at a given line via quickopen
quickopen now can parse strings like "some/file:123".
When a ProjectFileData item is executed, the file "some/file" will
be opened and the cursor position set to line "123".
REVIEW: 101054
Thanks to Dmitry Risenberg for the patch!
Loop through the new project directory and try to detect the first .kdev4 file.
If one is found this file will be used. So .kdev4 file can be stored in any
subdirectory and the project templates can be more complex.
REVIEW: 101853
Many thanks to Bastian Schmidt for this patch!
Educational
Tab completion seems to be working well now, for two backends.
- For Maxima and Qalculate everything is rather nice, though the code
in CommandEntry could be structered better. For other backends the
longer time needed for fetchCompletions could be a problem, when user
input comes in between.
- This is not the only problem though: A quick test shows that completion
in Sage does not work anymore, because Cantor crashes whenever a completion
is selected. Apparently some expression is deleted too early. Also this
backend (and probably others as well) are not prepared for the reuse of
CompletionObjects.
Smart completion for Octave added.
ToDo:
- Minor design change in CompletionObject, allowing for better results for
tabs after closing parens
Added missing files + improved completion in Sage
- Added sagekeyword.cpp and sagekeyword.h. Sorry for forgetting those...
- Made completion understand member functions ins Sage.
Completion now works for Sage and Scilab.
Further improvements; smart completion for functions in two backends
- Common code for smart completion, and backend specific code for Maxima and
Qalculate. Code for the other backends (as far as I can write it) is to be
added after a minor design change.
- Syntax help after every completion, with better recognition of identifiers.
- minor improvements/fixes
ToDo:
- Replace virtual completeLine with virtual identifierType, moving move
common code to Cantor::CompletionObject.
- Move the syntax information in mayIdentifierContain and
mayIdentifierBeginWith out of CompletionObject? Currently backend-specific
versions of these are not called, because they are used from within the
constructor of CompletionObject. But they do not belong into this class,
anyway.
- Make the completion popup update, not vanish, when a new character is
entered.
- Implement code to identify variables, functions, and keywords in additional
backends.
- Improve mayIdentifierContain and mayIdentifierBeginWith for some backends?
Identifier type is fetched asynchronously, no crash for Sage
- CompletionObject looks to be in a good shape, with everything potentially
time consuming being done asynchronously.
- The appropriate versions of mayIdentifierContain() and -BeginWith() are
now called at the construction of CompletionObject.
- (Popup-) Completion seems to behave nicely for Maxima and Qalculate. In
the other backends everything seems to be working at least as good as it
used to.
Graphics
Make video player behave similar to Adobe Acroread
Hide the video player initially until the user has clicked on
the annotation area. This ensures that an available 'first-frame' image
is always visible. Also change the appearance of the mouse cursor when
the annotation area is entered.
REVIEW:104159
KDE Base
Repaint Thumbnail Item on window damage
Allows to have live updates for thumbnails in tabbox.
FIXED-IN: 4.9.0
REVIEW: 104301
threaded model completely working
but still too crashy to be actually used
First step to introduce dynamic roles
Currently Dolphin is only capable of showing a fixed number of
roles (e.g. name, size, date, owner, ...). Dolphin 2.1 should
support also other roles like rating, tags, comments or other
meta-information of images or audio-files.
To support this the sorting-type and additional-type from
DolphinView has been replaced by a role-type represented as
QByteArray.
Support showing the context menu by pressing the "Menu" key
REVIEW: 104190
very experimental attempt at multitouch selecting
KDE-PIM
Now that we can work with openchange-1.0, we can get the complete
AppointmentRecurrenceType even from Exchange 2003. That in turn
means:
1. We can get exception information.
2. We need to migrate from KCal::Recurrence to KCalCore.
So, we now parse the information provided by Exchange. For now,
actually adding the exception rule is commented out
pending testing.
Display events in agenda widget
Framework for looking up contacts directly in nepomuk in addition to going through Akonadi and LDAP.
The results are added to the end, as a new section called "Contacts
found in your data", after any hits that come in through akonadi,
from addressbooks or from LDAP. They are relatively noisy, but still
useful in situations where you are trying to find someone you don't have
in your address books but have had dealings with in the past. In a
brighter future we might replace the whole completion thing with one
based on pimo:person, once we have meta contact merging and such in
place. For now, this is a first step.
REVIEW: 104404
Add initial support for fetching events
Office
doc: Improved processing of SHD and cvAuto colors in CHPs.
* There was a bug in SHD interpretation so a few solid shadings were missed.
* Changed the order of properties processing in case of named styles to:
PAP -> CHP to improve automatic colors support.
* The same order should apply for text chunks, but that's a bit complicated
at the moment so the background-color from PAP or parent's PAP is obtained
before any chunks are processed.
TODO:
> Use the background-color from CHP of a named text style if applicable
on the text chunk level.
Fixed: calculate ODG text base point by alignment, support rotation
Start working on a texturing paintop option
For now, it can load and save the pattern and the other settings that
david revoy proposed. Next, the gui. And then the real code, that does
the texturing.
I've also added a provisional option to apply texture on other than
the alpha channel, since I want to play with texturing lightness and
so on.
Added: write XFig object and document comments to odg
Added: XFigStreamLineReader which cares for reading line by line from the xfig stream
Multimedia
Load backends from C++
Play media
Use thumbs from metadatamodel
Image sequences can now start at an arbitrary frame, just select the first one in slideshow dialog:
Networking Tools
Check if user has a default search engine set and eventually
show a messagewidget to inform and let him set it.
REVIEW:104290
Google Sync Bookmarks support, first bits
Handle favorites in JoinChatroomDialog
Now one can maintain a list of favorite chatrooms.
Each account has it's own favorites.
REVIEW: 104173
Add loadUrl API to mainwindow
- Get rid of unused NewBackTab enum
- move loading url code to MainWindow class
- Remove ThreadWeaver API. (And take it easy...)
- Changed logic: calculate url BEFORE creating a tab...
REVIEW:104326
Implement BEP 32, IPv6 DHT
Ability to start chats
Working sorting + filtering
Utilities
*ADDED: Install on the boot sector of a partition instead of the MBR.
An advanced option which allows installing the bootloader on the boot
sector of a partition, instead of the Master Boot Record. Use with care.
Games
Basic save states
Board states can be saved and restored. Saved states are basically
pointers into the undo queue. Saving a state pushes the current undo
queue's size. Restoring a state pops the saved state stack and
repeatedly calls undo() until the undo queue's size equals the popped
size. Passing a save state through undo() deletes that saved state.
Currently, these actions are triggered by Ctrl + L and Ctrl + S.
Also, the current implementation very inefficiently recalculates the box
count and streaks after every single undo().
Other
Allow editing all items using text fields.
Option for coordinators to add users manually
Optimization
Development Tools
simplify and optimize QMakeFile::resolvefileName & resolveShellGlobbing
the speedup over 100 iterations of the globbing benchmark
shows a speedup of nearly 30% (ca. 63ms vs. 88ms on my machine)
optimize: leverage implitic QByteArray sharing to further reduce memory consumption
store labels on first encounter in a QHash and reuse copies of
the labels there, which are just shallow, implicitly shared copies.
further decreases the memory consumption considerably for my test case,
where the consumption goes down by about 50%.
Many thanks to André Wöbbeking for the suggestion.
optimize: drastically reduce memory footprint by using QByteArray instead of QString
we only convert to QString on demand when we actually display a string
to the user. most often, this is just a small subset of the data
we have lying around in total.
the memory consumption gain is esp. noticeable for big data files,
where it reduces the memory consumption by ~40%
Graphics
Fix memory leak. Thanks Mr Valgrind:
=14218== 40 bytes in 1 blocks are definitely lost in loss record 6,093 of 10,393
==14218== at 0x4C251D7: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==14218== by 0x4BE52D: Digikam::FiltersHistoryWidget::FiltersHistoryWidget(QWidget*) (filtershistorywidget.cpp:77)
==14218== by 0x4B798A: Digikam::ImagePropertiesVersionsTab::ImagePropertiesVersionsTab(QWidget*) (imagepropertiesversionstab.cpp:87)
==14218== by 0x4A07AD: Digikam::ImagePropertiesSideBarDB::ImagePropertiesSideBarDB(QWidget*, Digikam::SidebarSplitter*, KMultiTabBar::KMultiTabBarPosition, bool) (imagepropertiessidebardb.cpp:100)
==14218== by 0x50CCE6: Digikam::LightTableWindow::setupUserArea() (lighttablewindow.cpp:256)
==14218== by 0x50BED3: Digikam::LightTableWindow::LightTableWindow() (lighttablewindow.cpp:132)
==14218== by 0x50B91A: Digikam::LightTableWindow::lightTableWindow() (lighttablewindow.cpp:96)
==14218== by 0x5A544C: Digikam::DigikamApp::preloadWindows() (digikamapp.cpp:2546)
==14218== by 0x59014C: Digikam::DigikamApp::DigikamApp() (digikamapp.cpp:289)
==14218== by 0x6CB5D2: main (main.cpp:188)
KDE Base
moving GenericClassName out of data() makes another big speed improvement
Networking Tools
Revamp DHT code and follow spec more closely on routing table
Games
Use high-level SKGraph structures to shorten and simplify the file contents when saving and loading puzzles.
Other
KDE Base
Port to Qt5 removeRecursively API.
Port KConfig away from KStandardDirs:
* use QStandardPaths enum instead of resource name in the API, and
internally.
* Modify KAutostart to use the xdg config autostart subdir, rather than
the KStandardDirs-only "autostart" resource (which contained both KDE
and XDG dirs). This removes the KDE-specific autostart dir, which will
help simplifying the KCM.
* These API changes also propagate into KDesktopFile and KSharedConfig.
KToolInvocation -> QProcess. Possibly a tad slower, though.
Port KDED to new KConfig API, which requires quite some internal changes.
No more "resource names" (except in the databaseChanged signal), so everything
has to work with "subdirs of XDG_DATA_DIRS (GenericDataLocation)" internally.
Port from KUrl to QUrl
kauth-api-changes: Allow only asynchronous execution, remove ActionWatcher, and introduce the new ExecuteJob.
With these changes, now only async executions are allowed with a KJob-style asynchronous operation.
This relieves the pain from the backends to handle different methods (one can always suppose we're in an asynchronous realm),
and at the same time "hides" ActionReply from the client implementation.
Now all the relevant information for the client are advertised through the Job itself. ActionReply is still here to stay
since its serialization features are vital for the helper, and because we don't want to break the API too much.
Office
Dedicate Krita 2.4 to the memory of Moebius
Three people on #krita had the same idea at the same time -- to dedicate
Krita to Moebius, so let's just do that. It adds one translated string
to 2.4.
Networking Tools
nepomuk:/myself is now nepomuk:/me