Issue 199
4th September 2011 by KDE Commit-Digest TeamContributors
Vladislav Blanton
Danny Allen
Jaka Kranjc
This Week...
Statistics
Commits | 2747 by 208 developers |
Open Bugs | 23446 |
Open Wishes | 17351 |
Bugs Opened | 337 in the last 7 days |
Bugs Closed | 246 in the last 7 days |
Commit Summary
Module | Commits |
/trunk/l10n-kde4 |
231
|
/branches/stable |
136
|
/trunk/l10n-support |
72
|
/branches/trinity |
42
|
/branches/work |
39
|
/trunk/www |
37
|
/trunk/KDE |
30
|
/src/plugins |
23
|
/libs/kotext |
22
|
/trunk/extragear |
17
|
Files | Developer | Commits |
246
|
Marco Martin |
87
|
234
|
Aaron J. Seigo |
81
|
204
|
Patrick Spendrin |
72
|
204
|
Laurent Montel |
68
|
165
|
Boudewijn Rempt |
55
|
159
|
Iñigo Salvador Azurmendi |
53
|
156
|
Chusslove Illich |
52
|
153
|
Klemen Košir |
51
|
126
|
Timothy Pearson |
42
|
93
|
Stephane Mankowski |
41
|
Internationalization (i18n) Status
Language | Percentage Complete |
Ukrainian (uk) |
100%
|
Swedish (sv) |
99%
|
Brazilian Portuguese (pt_BR) |
99%
|
Spanish (es) |
95%
|
Estonian (et) |
94%
|
Dutch (nl) |
94%
|
Polish (pl) |
93%
|
German (de) |
93%
|
British English (en_GB) |
90%
|
Italian (it) |
90%
|
Bug Killers
Person | Bugs Closed |
Christoph Feck |
27
|
lamarque gmail com |
19
|
Christophe Giboudeaux |
18
|
Laurent Montel |
18
|
Gilles Caulier |
16
|
Myriam Schweingruber |
16
|
Peter Penz |
8
|
Sven Langkamp |
8
|
Ben Cooksley |
7
|
haumann kate-editor org |
7
|
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 79 selections this week
Bug Fixes
Development Tools
If a while expression is unfinished, don't execute it at all.
Educational
Fixed two segmentation faults in QalculatePlotAssistant
Graphics
use timer signal to cancel thread
Fail early if an ImageTagPair is created with either invalid image id or invalid tag id
There is a big problem in curves implementation if curves data are free (not smooth)
This patch add missing code to ImageCurves to factorize implementation and missing code to fillFromOtherCurves in case of free data.
In other word, to fill curves from another one using smooth data work fine, not with free data. This is reproducible with BQM Adjust curves tool.
missing to apply curves type to batch convert to B&W
remove "A tool to" prefix to all BQM tools
KDE Base
Fix akonadi multiuser on Windows
When two users tried to start an akonadiserver on Windows
the default NamedPipe conflicted causing akonadi to crash.
With this patch the NamedPipe will include the Windows Username
to avoid such conflicts.
Tested to work with Spaces and special characters in the Username.
Fix icons and descriptions of CDs/DVDs on FreeBSD
HAL on FreeBSD is stricter than on Linux, and marks them as
storage.cdrom/volume.disc instead of only storage/volume. Checks for
those categories as well.
Add the UI for replacing the matches (replace not ready yet)
Fix escaping of html in matches
Fix file name for local files in the match tree
Preserve extensions when renaming multiple files
Thanks to Chiraq Anand for the patch! The commit is based on the
patch at https://git.reviewboard.kde.org/r/102495/ with some
minor modifications.
REVIEW: 102495
Inserts the program version in more cases in bug reports.
As it turns out the release of KDE 4.7.0 is called "4.7.00"
so with two 0s, as was also true for 4.6.0.
Yet on bugs.kde.org there often is just e.g. version "4.7.0"
available, thus DrKonqi does not insert the version in the version
field.
Now DrKonqi treats "4.7.0" and "4.7.00" as equal when determaining
if the verion should be entered in the version field.
REVIEW:102479
Fix layout flickering
Due to the focus-patch a flickering has been introduced as the
size-hint included mnemonics. Also the focus should only be applied
when a tab-key has been pressed.
Add Wicd backend to kded's networkstatus module.
FIXED-IN: 4.7.1
KDE-PIM
Fix akonadi multiuser on Windows
When two users tried to start an akonadiserver on Windows
the default NamedPipe conflicted causing akonadi to crash.
With this patch the NamedPipe will include the Windows Username
to avoid such conflicts.
Tested to work with Spaces and special characters in the Username.
Fix bug 281169 - turning off all "Local Subscriptions" makes IMAP account disappear
Fix the Akregator segfault when the feed list is damaged, and we try to add a new feed.
The reason for this is that the FeedList object to be used is never correctly created,
do it stays at 0. This patch provides possibly the easiest solution to the problem:
when the feed is damaged, we use the default feed.
FIXED-IN: 4.7.1
REVIEW: 102333
Fix Bug 233376 - Icon for attachments with unknown mimetypes broken
Office
Fix odf loading/saving of chart shape
REVIEW:102488
Fix horizontal vs vertical bar charts
probably even more bug-reports...
bug: Various correction in bookmarks (enable/disable in menu, bad management in parent/child relation)
feature: New function to bookmark all opened page in one click
Fix TOC is broken in the attached doc file
Fix regression that was introduced with commit 099217dbc. I fear the
invisiblespace will provide us even more problems cause now all the
code that wasbefore working using isEmpty() will not work any longer
cause now the equivalentwould be to use .remove(0x200B).isEmpty().
Long term we probably like to introducea common method that handles
such special characters in such situations.
Don't populate the filter node twice when removing an entry
When the filter node was cleared and being repopulated, the rowCount()
function would get called in the middle of the repopulation, when would
call repopulate again, thus doubling the count.
FIXED-IN: 2.3.4
some small fixes for latex export
Check the array index before accessing the array.
Change the check of the array index from <= to <.
Check zone abailability before accessing it.
change a=a+1 to a++.
REVIEW: 102467
Fix crash is observed while opening the attached ppt file
: The import logic should use an existing account based on bank name read from :20: and the account number read from :25:
Try to ensure that Amazon secret key is written to the config file
I still can't reproduce the bug, but someone on the email list reported
that it seemed to be some issue with Tellico trying to read the secret
key from kwallet instead of the config file, when appropriate.
catch exception when saving with exiv2, don't crash just skip the data
Multimedia
Networking Tools
Fix SSL widget crash
This was the crash (probably) occurred during ds2011 presentation.
Check if a list is empty before pulling something (with QList::first()
method).
Update current connectin pointer when it is deleted.
Sort connection list by type and then by activation state (activated,
activating, unknown).
Default type order is: wifi, hidden wifi, VPN, Gsm, other
connection types (ethernet, dsl, cdma, etc), unconfigured access points
(wifi), unconfigured interface. This order is hard-coded.
FIXED-IN: nm09
Fix people having squashed avatars in the default theme
REVIEW: 102486
Reviewed by: Martin Klapetek
Improve error display of syndication plugin errors
User Interface
remove offset added to tooltip shadows as it has become unnecessary with more recent gtk
(likely a bug fixed upstream). Painting is now consistent with gtk2.
Utilities
Multiple fixes/enhancements, making generic matching work correctly
- Fix non-greedy KleenePlus/KleeneStar matching, by also testing
following items of parent syntax items (stored in new MatchData
structure).
- Match functions in SyntacticalAnalyzer now have the same signature
"function(MatchData *matchData, MatchItems *matchedItems);".
The MatchData object contains information about the current item
to be matched, following items, the parent MatchItem to add output to,
etc. The MatchedItems list contains a list of all items matched in
the function (it's a list for KleeneStar/KleenePlus).
- Change SyntacticalAnalyzer::analyze() to use the new generic parsing
system, ie. using a root SyntaxItem.
- Remove AnalyzerRL and old (non-generic) parsing functions from
SyntacticalAnalyzer. Right-to-left parsing is not needed anymore,
thanks to the new generic parsing system using syntax item trees.
- Updated syntax definition for journey searches to also allow stop
names without double quotes (works thanks to fixed KleenePlus).
- New method for updating a matched input string (adding, removing,
changing items). This is done using a syntax item tree, ie. it for
example inserts new syntax items at the correct places.
- Macros for printing pretty debug output while parsing.
- Removing invalid characters from input (instead of rejecting input
in lexical analyzer).
- Update and enhance unit tests.
- Spelling fix: Errornous => Erroneous.
APT MultiArch support. On multiarch-enabled systems it:
- Prevents foreign-arch packages not explicitly supporting multiarch from being added to
QApt::Backend's central package list
- Provides a Backend::isMultiArchEnabled() to return whether or not dpkg/apt are set up
for multiarch
- Provides a Package::architecture() to determine the architecture of a package.
- Provides a Package::isMultiArchEnabled() to return whether or not a package explicitly
supports multiarch installation.
I am considering this a bugfix, since with APT 0.8.16+ behavior of clients that do not
have a way to distinguish foreign arch packages from native packages to the user are
quite obnoxious, displaying two identical packages with no sane way to tell them apart,
doing this for just about every package available. With this patch, consumers will not
list foreign arch packages that aren't multiarch-enabled, but they will still have to
use the two new QApt::Package functions to disambiguate packages that are multiarch-
enabled.
FIXED-IN:1.2.1,1.2.65
Suspend the idle timer when updating the apt-xapian index, as this is an asynchronous
operation that will not block the timer thread.
Fixes the qaptworker quitting during the middle of an update, resulting in a loss of
progress info to applications watching the update progress.
Merge CheckOperations with NewOperations so when a new partition is deleted
before applying we don't get a dangling pointer in the CheckOperation.
Games
Fix doubling of playernumbers with non default playernames
Seach for smallest missing playerNum instead of first missing default name.
List is sorted by playerNum to acheive that.
Other
Fix bug: filenames in filelisting are not shown for files without extension
patch by Elias Probst
Features
Development Tools
Educational
Adds scripting functionality to Kst.
PyKst scripts can control and share data with a kst session.
ABOUT PYKST
===============================
(The following information is also available inside the svn tree at pyKst/README)
Currently python scripting is implemented. If you are interested in adding Kst support to
other languages, see below.
PyKst (available inside the svn tree at pyKst) is, at the time of writing, not stable
enough for serious use. For the time being, do not write scripts with it except to
test and to send feedback.
Scripting does not introduce any new dependencies to Kst, but PyKst will not run
without certain libraries.
PyKst is tested on Python 2.6 and does not work with Python 3.x.
PyKst needs NumPy 1.6 and does not work with NumPy 1.5. If it is very important
that it should work with NumPy 1.5, modify pykstpp.py to work with the old
API (and submit these changes to kst!!) or send an email to the devel list.
PyKst currently is not portable as pykstpp.py contains C++ code which is
compiled upon first use. It should, instead, create a dynamic library at
Kst compile time. Also, it does not detect the location of the Qt library or
include files, so to get it to compile you might have to modify pykstpp.py.
Please email the Kst list with feature requests and bug reports. I am not able to work on
scripting as much as I have had the chance to do in the past two weeks because of
high school, but can certainly try to help with relatively minor fixes.
The fastest way to get started is to take a look at the examples inside the svn tree
at pyKst/
Documentation is available for now at hen.astro.utoronto.ca/pyKst or inside the
svn tree at pyKst/doc.
DEVELOPPER INFORMATION
===============================
(The following information is also available inside the svn tree at README.kstScript)
Kst implements a client-server interface for scripting. Scripts interacts with a running kst session.
This server is implemented in scriptserver.cpp.
Upon receiving a socket message from QLocalSocket, ScriptServer parses it. ScriptServer implements a map
between command strings and ScriptServer member functions.
These commands include "newVector()", "getPlotList()", etc.
To edit a vector, you would call "beginEdit(Vector Name)". This would open an "interface". One interface
is DialogScriptInterface which simply allows a script to control a hidden dialog. Where speed is important,
other (hard-coded) interfaces are created. To close the interface, one would call "endEdit()".
ScriptServer also implements a very minimalistic language providing:
- if statements in the form:
if(...)
fi()
- variables in the form:
$a=blah
setText($a)
- macros in the form:
newMacro(a,d=c)
setText($a)
setColor($d)
endMacro()
Note that 'c' is not a default argument: they initialize a and d so you can run a macro while writing it.
newMacro(...) runs the macro while it is being written. newMacro_(...) does not)
Note that kstScript (that is, the simple language ScriptServer understands) never uses quotes. It is therefore
important that extra spacing is not added. Comments are also not supported. I feel that it is not worth improving
this 'language'. If someone should have time, a port to javascript would certainly be better.
You can use tests/kstcontrol to write kstScript macros. A list of possible commands is shown inside kstcontrol on the
right hand side. To make macros permanent (i.e., load on start of kst) add them to the file "kstScript.txt".
kstcontrol outputs macros you create to stdout on endMacro().
Writing macros is preferred over implementing them directly in a language (say, python) because the underlying API is
not guaranteed to be consistent and macros allow multiple languages to all have similar functionality with better code
reuse.
To get a feel for how they are written, please see kstScript.txt.
To give a language the ability to communicate with kst, implement functions which use QLocalSocket to communicate with
ScriptServer. Refer to pykst whose source is available in pykst/pykst.py and pykst/pykstpp.py.
Graphics
Album deletion (including all photos in the album)
Store last selected scale type in scale/resize dialog
Handle settings save/restore from the scale/resize dialog only
inside the dialog itself.
Code cleanup (the names of the config entries need not be QStrings
as KConfigGroup converts them then to UTF-8)
Add new KIPI plugin - Photo Layouts Editor
./photolayoutseditor
KDE Base
load homescreen based on the config
* remove the old unmaintained tablet homescreen
* default to the contour homescreen, now called org.kde.active.contour-tablet-homescreen
* the loaded homescreen depends from the entry HomeScreenPackage in [General] of plasma-mobilerc
First iteration of file reception using obexd, a success!
With this commit we're starting to add some obexd-server dependency, so
be aware of that!
We''ve implemented the file reception into two isolated classes called:
FileTransfer and ObexdAgend.
FileTransfer: Listens to org.openobex and track file transfers, it will
be who shows the jobs.
ObexdAgend: Basically sits quiet until obexd needs some authorization.
Also you may notice the inclusion of bluedevil-reception, it is only for
development proposes it will never be installed. I got tired of
restarting kded so since FileTransfer is totally isolated from the kded
I decided to use it in a separate process.
Change timers to QElapsedTimers
Instead of calculating the elapsed time from epoch clock, using
a QElapsedTimer as well as reusing the timer object instead of
creating a new one in the scene each frame.
REVIEW: 102473
loading bookmarks works
AppletContainer c++ element
used by containments to wrap around applets and be able to better control their geometry and status
use it in the systray and contour containment
will replace AppletStatusWatcher
new completion model for the URL completion widget
R +3 -3 applications/webbrowser/src/bookmark.h [from: applications/webbrowser/src/bookmarksmodel.h - 096% similarity]
implement line modification system
TODO:
- unit test
- improve visual appearance
- enable / disable in config page
- optionally show modified lines in scroll bar
- fine tuning
PS: Qt Creator's line modification system is totally buggy :^)
Example: http://wstaw.org/m/2011/09/03/plasma-desktopgz5185.jpg
interactive flickable only when needed
when the web page size is less or equal the size of the screen don't flick, permitting the web page to cotrol drag by its own (often useful for web apps such as google maps)
streamline activity switching, and fix initial position of recommendations panel
Q: why does it take a few seconds to switch activities?
A: because there was a 2s pause animation and then the activity was scaled in(!)
Q: what happens when that is removed?
A: things get faster.
:)
i left the actual states in place as we may wish to later re-instate some sort of visual effect.
however, as they are completely non-visible (probably due to framerate possibilities on the tablets;
in fact, i only noticed this scaling in on my laptop!), i don't see a point to them right now.
allow switching of layouts temporarily (e.g. on demand)
Office
FEATURE:Add copy menu in contextual menu for cells
Do not use QRegion in KisToolFreehand
The use of QRegion was responsible for about 25% of execution time.
Changing it to QVector<QRect> makes painting noticeably faster. Now
the canvas calling qpainter::drawImage tops the execution time chart.
feature: In krunner, A string like "buy 10 ESSO" allows to quickly prepare add a new operation in skrooge. Advices in dashboard allows to finalize the creation
Add cstrunner: run cstester in multiple processes
cstrunner is a tool to run cstester on multiple processes at the same time. It will create a report of the files
that where terminated by a signal. This can either happen if there is a bug in the calligra or the allowed amount of
time or cpu has been exceeded. It also creates a file md5.txt in each output directory which contains the ms5sums of
the generated thumbnails.
cstrunner uses the scripts cstwrapper and cstmd5gen
- cstwrapper
limits the resources cstester is allowed to use and makes sure the correct exit code is returned to cstrunner
- cstmd5gen
generates md5sums for a given thumbnail directory and stores them in the file md5.txt in the directory.
Multimedia
Implement the new subtitle api
adding automatic iterating of youtube el param
For some videos Youtube allow only the playback
when using a special el parameter while video
requesting. The following patch iterates
automatically over different parameters before
stopping with an error message shown to the user.
Networking Tools
Add option to close window by closing last tab
Usual behavior in Firefox/Chrome. Let it be configurable here :)
Also sort connections by name (or ssid if applicable).
Utilities
Add the initial work on the QApt::Changelog class. QApt::Changelog is an interface to
Debian changelog files, allowing easy access to changelog information for making
human-readable changelogs.
Improved documentation
Informations on the Circuit Macros backend have been added
Other
new changes (e.g. show events) by Bart Visscher
added labels for the other advanced fields, thanks to Elias Probst for the suggestion
Updated Google Android bits to latest, fix some build_sdk.sh bugs.
Add Android API 13 (3.2_r01)
Update Android ndk version from r6 to r6b (ANDROID_NDK_VERSION)
Update Android platform tools from r04 to r06 (ANDROID_PLATFORM_TOOLS_VERSION)
Update Android sdk version from r11 to r12 (ANDROID_SDK_VERSION)
Fix some calls to doSed when editing paths (changed delims to #)
Make patchPackage function ok in the face of missing folders (it warns too)
Initial work on resetting forgotten passwords. It works, but still need to email a token to allow reset
Buttons for play/add albums works. Folding albums too.
Optimization
Utilities
Lower CPU usage when fading between departures in the popup icon
- Cache drawn vehicle pixmaps in DeparturePainter.
For monochrome icons, drawing the transport line string (using
QPainterPath::drawPath) into the icon takes the most time.
- Cache drawn polygons for visualizing the time until departure.
- Cache transition pixmaps for fading between departures in one group.
- Lower the animation time for transitions between departures in one
group and higher the pause between these animations.
- Altogether this lowers the approx. CPU usage here (3,4GHz single core)
from ~15% to ~1% while showing the popup icon with fading departures
(tested in plasmoidviewer).
Other
Development Tools
Educational
HttpDownloadManager: neither take ownership of nor expose StoragePolicy
The StoragePolicy is accessed outside of HttpDownloadManager, where methods are accessed that are only available in subclasses.
Since it was unsafe to keep a pointer to the concrete StoragePolicy around, downcasts from HttpManager's storagePolicy() were needed to access these methods.
By not having HttpDownloadManager take ownership, it is now safe to keep a concrete object of StoragePolicy around.
As a result, casts are unnecessary.
Office
Use a stack of stacks for the inline object start/end matching
Previously, if you had a document that contained a table with a bookmark
start before and bookmark end after the table, all table cells would
be written out with a bookmark-end because we call writeblocks recursively,
even on nested documents.
This patch creates a stack of stacks which gets pushed at the start
of writeBlocks and popped at the end of writeblock. Hopefully, there's
not more KoTextWriter::Private state that gets confused because we
call writeBlocks recursively.
Networking Tools
Unify reloading methods
All code paths for reloading methods and slots now end up at reloadTab
and do proper handling of the about scheme
REVIEW: 102481
User Interface
when something is launched, close the panel
Games
Eliminate set{Max/Min}Volume and query the OpenAL for the current volume
Test cases can be removed, if there are any.
It is better to not complicate the code unneccesarily, so the max volume value
is set to a value during the source loading. It can be re-discussed, if the
need arises. Summary, there is no exposed setter for those provided by the API.
We decided that way: the volume setter/getter works properly only if there is a
source loaded, and we do not need to add any unneccesary code here either that
way.
It should also fix the test cases and the operation in general when there is a
maximum value set (in this special case: 10.0f), but the volume getter does not
return bigger value anymore, even if the value is set for a bigger one.