Issue 326
9th February 2014 by KDE Commit-Digest TeamContributors
Alex Fikl
Giacomo Barazzetti
This Week...
Statistics
Commits | 1679 by 133 developers |
Open Bugs | 21472 |
Open Wishes | 15980 |
Bugs Opened | 261 in the last 7 days |
Bugs Closed | 240 in the last 7 days |
Commit Summary
Module | Commits |
/trunk/l10n-kde4 |
166
|
/branches/stable |
56
|
/trunk/l10n-support |
55
|
/trunk/www |
32
|
/pimcommon/storageservice |
22
|
/plasma/generic |
21
|
/krita/ui |
21
|
/krita/plugins |
20
|
/plasma/desktop |
17
|
/generic/applets |
15
|
Files | Developer | Commits |
390
|
Laurent Montel |
133
|
270
|
David Faure |
90
|
168
|
Boudewijn Rempt |
58
|
156
|
Vishesh Handa |
53
|
156
|
Marco Martin |
52
|
147
|
Burkhard Lück |
49
|
126
|
Sebastian Kügler |
44
|
114
|
Dan Vratil |
40
|
111
|
David Edmundson |
37
|
111
|
Iñigo Salvador Azurmendi |
37
|
Internationalization (i18n) Status
Language | Percentage Complete |
Brazilian Portuguese (pt_BR) |
99%
|
French (fr) |
97%
|
Dutch (nl) |
97%
|
Bosnian (bs) |
95%
|
Galician (gl) |
90%
|
Estonian (et) |
90%
|
Italian (it) |
88%
|
Danish (da) |
88%
|
Hungarian (hu) |
87%
|
Catalan (ca) |
85%
|
Bug Killers
Person | Bugs Closed |
Jekyll Wu |
55
|
Christoph Feck |
36
|
Boudewijn Rempt |
14
|
Jarosław Staniek |
9
|
Dmitry Kazakov |
7
|
Kurt Hindenburg |
7
|
Thomas Lübking |
7
|
Tom Hughes |
7
|
Harald Sitter |
6
|
Frank Reininghaus |
6
|
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 58 selections this week
Bug Fixes
Development Tools
Fix inspecting of nested STL containers.
The problem is that GDB MI shows no children for dynamic STL objects,
it just add "dynamic" attribute to it. Here is -var-list-children
output for std::map< int, std::vector<std::string> > object:
SEND: "-var-list-children --thread 1 --frame 0 --all-values "var1" 0 5
kdevelop(20230)/kdevelop (gdb debugger) GDBDebugger::GDB::processLine:
GDB output:
"^done,numchild="2",displayhint="map",children=[child={name="var1.[0]",
exp="[0]",numchild="0",value="0",type="const int",thread-id="1"},
child={name="var1.[1]",exp="[1]",numchild="0",value="{...}",
type="std::vector<std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, std::allocator<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >
> >",thread-id="1",displayhint="array",dynamic="1"}],has_more="0""
As you see, the second variable, std::vector<std::string> has
numchild="0", but dynamic="1". This patch adds extra check for
"dynamic" attribute in variables.
Educational
- change the font of the help panel to monospace
- escape spaces in the help messages, as they might be important for formatting
Patch by Yichao Zhou, thanks!
Removes gradient in grade statistics.
This closes the mentioned bugs, as it removes the gradient in learning statistics and uses solid color.
It also makes it even more intuitive for the user, as it uses a single color for all the grades with different alpha values, increasing as grades increase. Thus darker shades mean higher grades.
Also, the grade color settings in Parley configuration have been changed, removing the different color palletes for all grades and leaving just a single base color for all the grades.
The "Use colors" option has been removed from the configuration.
Also, the font color for the translations in the editor has been changed to be the default black, making the text more readable.
, #328279
REVIEW: 115449
KDE Base
Quick Open in tab bar: Show number of hidden documents
With this patch, the quick open button in the view space tab bar shows
the number of hidden documents by showing e.g. "+5" as button text. This
way, the users should always be aware that there are more documents open
that currently do not fit into the tab bar due to lack of space.
Further, this patch adds a What's This tip to the quick open button that
explains in detail what this is all about.
Restore --background-mode
For now restore this option that was removed for 2.11. This option
is somewhat a hack and abnormal feature. However, it seems a number
of people use it and I can see how it would be useful. So instead of
spending a lot of time right now trying to correct the issues, just
restore the previous code.
Ideally for KDE 5, this portion of the code can be better handled.
35bb9cf9e79465d252580615f50b4ce8d34e3d34
FIXED-IN: 2.13#
FileIndexerConfig: Disable initial update for files
When baloo_file starts it looks through every file in your filesystem
which should be indexed and compares the mtime of each of them with the
mtime stored in the db.
This is useful to detct changes which occured when baloo_file was not
running. However, baloo should always be running so we don't really need
to check this on startup. It causes large amount of disk io on startup.
Save filemetadata in a sqlite db if xattr are not supported
We are essentially making a triple store with (fileid, property, value)
where all the metadata is going to be stored.
port improve cache file dropping to plasma-framework
this ports revision c03052935b082 on kdelibs
improve cache file dropping
* fix regression: version the image cache file name
* version the svg elements
* drop old svg elements files
* respond to changes at runtime by watching the theme's metadata.desktop for changes
* move creation of the svg elements file into ThemePrivate::useCache()
REVIEW:115397
[plasma/digital-clock] Improve the time-format-extending regexp
Three small improvements in the regexp:
* No need for global matching
* Rather than .*h use anchored matching hh*
* Slight optimisation by replacing .* with .*?
Only initialize the hash m_items in KFileItemModel if it is needed
Moreover, clear the entire hash if items are added or removed.
This saves time and memory when loading a directory, and it fixes
problems that might occur if the model is in an inconsistent state, such
as crashes that can happen when we try to remove individual items from
m_items.
FIXED-IN: 4.13.0
REVIEW: 115432
be more aggressive about exiting zoom effect
REVIEW: 115453
KDE-PIM
Bug 293653 - filterbar should be similar like in Thunderbird
Improve search bar. Now we can specify if you want to search in subject/body/bcc etc.
Office
Disable Calligra-wide global Esc and Space shortcuts
We don't need it since we use a different shortcut handling.
Don't try to hide a popup if we are not a popup
The weirdest patch ever
There is a bug in Qt/X11 which prevents the QPainter::drawText() call
be used in any non-gui thread, even when
QFontDatabase::supportsThreadedFontRendering() returns true. It seems
like some function in the font rendering routine eats the X11 replies
which are awaited by the GUI thread, effectively making the GUI thread
to hang up. The hangup happens in xcb_wait_for_reply().
This dirty workaround makes the text brush be initialized in the
GUI thread, saved to a global singleton and then fetched by the
threaded code in the paintop. Yes, that is weird, but this is the
best thing we can do right now :(
Don't eat WinTab Proximity packets from the WinTab's queue!
Qt also needs these packets to issue the Enter/Leave events. So
just use the *Peek variant of the function instead of *Get.
Improve focus, keyboard interaction and painting in table and form views
- Focus combo box after accepting or cancelling selection in combo popup
- Show focus in combo box after accepting or cancelling row changes
- Remove focus from combo box after clicking outside of its popup
- Improve appearance of combo box' button in table view
- Fix missing re-display of table view combo box popup
- Fix focus in table view combo box popup
- Make clipboard shortcuts work again in table view cells
- Properly set focus inside table view after activation
REVIEW:115489
Fix the ignored mouse events after using the tablet
Now each Mouse Event corresponds exactly to one Tablet Event.
Fix a crash when trying to D&D too big layer (>20MiB)
Qt implements D&D using X11 window properties, which were probably
not supposed to be used for transferring 20+MiB between applications.
So we indroduced a new "application/x-krita-node-url" mime format
which saved the image into a temporary directory and passes the url only.
That is the way Qt handles "application/x-qt-image" itself.
Fixed the half of the Pen/Eraser flip bug
We should call the update slot explicitly when changing the paintop preset
and do not rely on the widgets, which would also emit the update signal, but
later. We can't wait for widgets because they use a deferring timer
internally.
Now it is left to fix the Windows-only problem.
Allow the user not to merge the last point in KoCreatePathTool
Now the user has a choice:
1) Shift+Click on the start point and the path will be merged and smoothed
2) Click and drag on the start point and the tangent of the last point
will be configured dynamically
Fix interprocess updates of the configuration and a shortcut scheme
This patch does two things:
1) Removes handwriten saving of the shortcuts into the kritarc. Now the
shortcuts are saved into XML gui tree as it is supposed to.
2) Added synchronization between different instances of Krita using
QFileSystemNotifier on kritarc file.
Fix for sending ini and exe files using Google Talk account
Each file transfer is checked for using Google Talk and forbidden extensions.
In that case, "_" character is appended to suggested file name. For all other
cases transfer process remains the same.
REVIEW: 115463
FIXED-IN: 0.8.0
User Interface
Fix multiscreen popup positioning
This patch makes two changes:
1) don't rely on window()->screen() it's rubbish.
2) if the dialog is parented to a desktop, we want to position
inside the parent, not outside the parent object
REVIEW: 115448
Units reads longDuration from config file.
This reads the global animation duration value from plasmarc, and gets
notified of changes: change the file, all animations are updated
automatically.
Put this into your plasmarc to disable animations globally:
[Units]
longDuration=0
As you might guess, other values will work as well.
shortDuration will always be 1/5 of this. (For now.)
Games
make Random shuffle work with both Python 2.7.5 and 2.7.6
2.7.6 changed the API for shuffle(), released in November 2013.
This fix may change the minimal python version needed (currently 2.6.0).
But since I do not have anything older than 2.7.5 installed, it is
difficult to tell. I checked the history of python lib random.py
and there _should_ be no problem.
People installing KDE/4.12 should already have some recent python,
so it should not matter. Anyway this is why I will not backport
this fix to KDE/4.11. And since 4.12.2 is about being released, I put
this fix into 4.12.3
FIXED-IN: 4.12.3
Features
Development Tools
SVN plugin: Never launch configured external diff and diff3 tools.
I have my command-line Subversion client set up to use colordiff
instead of the internal diff implementation, so of course instead of
seeing a nice diff in KDevelop, I got a mess of ANSI colour escape
codes.
This patch disables any external diff or diff3 tools configured in
the ~/.subversion/config file. It does this by modifying
configuration in memory right after it is parsed from disk (or
possibly the registry on Windows). This way, we can safely assume
that running a diff or merge will produce unidiff format, and the
config file doesn't have to be changed.
N.B., it may be necessary to override the merge-tool command
(SVN_CONFIG_OPTION_MERGE_TOOL_CMD) in the same way;
REVIEW: 115444
Implement IBuddyDocumentFinder interface.
Now it's possiple to switch between source/header files.
REVIEW: 115518
Add code navigation via mouse forward/backward buttons
REVIEW: 115436
Introduce NativeAppErrorFilteringStrategy
It's now possible to jump to runtime output error messages, such as
those from Qt:
Example (clickable) message:
ASSERT: "errors().isEmpty()" in file /tmp/foo/bar.cpp, line 49
REVIEW: 115533
Graphics
Tabbed interface
GUI
REVIEW: 110914
KDE Base
add puppet.xml syntax file
REVIEW: 115589
Keyword-based completion model
REVIEW:115422
[kwin] Re-enable KActivities support
* KWin lists the activities in the Alt+F3 menu
* Kcmrules though looks wrong
spatial present windows zoom calculation
instead 1/16 of the area, 1/4 of the bigger and 1/32
of the smaller screen/window ratio
(ie. a shaded window would typically zoom to 1/32 of the screen height)
FIXED-IN: 4.11.7
REVIEW: 115455
Port Dolphin to Baloo
Nepomuk is being replaced with Baloo
Introduce runtime platform support in KWindowSystem
This is a change similar to the one in KWindowInfo, but with variation
to the pattern due to the static container.
There is now a generic implementation of KWindowSystem which is
completely windowing system platform independent. This implementation
delegates all methods into a KWindowSystemPrivate class.
Each windowing system platform implementation needs to provide a
subclass (e.g. KWindowSystemPrivateX11) and provide all the methods
which are delegated. To make use of a platform implementation it needs
to be included in the ctor of KWindowSystemStaticContainer.
There is a dummy implementation for all not supported windowing system
platforms.
This change also includes some API changes:
* KWindowSystem::windows() returns a copy instead of const-ref
* All methods are provided, there is no longer X11 specific methods
* private methods and enums are removed
NOTE: This change breaks the implementation for Windows and Mac OS!
They are currently excluded from build.
REVIEW: 115459
Add window thumbnail to taskmanager
It forks the DefaultToolTip qml and adds the window thumbnails.
Window thumbnail size is currently hard-coded to the same value
as in old implementation. This needs to become DPI independent!
REVIEW: 115536
[Systemtray] DBus-activation for Plasmoids
This feature allows loading and unloading Plasmoids when dbus services
come and go. Applets can specify in their metadata which service should
control their lifecycle.
This has the following advantages:
- We can dynamically only load Plasmoids when they're useful
- Applications can provide Plasmoids that appear and disappear bases on
the application running
- We can load controls for system service dynamically as they come and
go
- It makes it easier to delay loading of Plasmoids on startup until when
a specific service appears
- It makes Plasmoids and features more discoverable
One immediate user for this is the media controller applet, which will
now only be loaded once an MPRIS2-compatible media player is running.
Internally, this works as follows:
- we collect a list of plugins and related services in
m_dbusActivatableTasks
- we query DBus for the list of services, async (initDBusActivatables())
- we go over that list, adding tasks when a service and plugin match
(serviceNameFetchFinished())
- we start watching for new services, and do the same
(serviceNameFetchFinished())
- whenever a service is gone, we check whether to unload a Plasmoid
(serviceUnregistered())
Adding the following to the metadata.desktop file will trigger loading
the applet whenever a service matching the service name appears. The
applet will automatically be unloaded once the service disappears.
X-Plasma-DBusActivationService=org.mpris.MediaPlayer2.
This feature was discussed and requested during the Plasma Sprint in
Barcelona.
DIGEST:[Systemtray] DBus-activation for Plasmoids in system tray
Syntax highlighting for the Mathematica language
KDE-PIM
Implement AgentSearchInterface into IMAP resource
The IMAP resource can now be queried by Akonadi server to perform
search via IMAP SEARCH command.
Squashed commit from akonadi/server-search branch.
KIMAP new search api.
Implement support for server-side search in Akonadi
Instead of using Nepomuk and SPARQL queries, we now use SearchQuery and SearchTerm objects
to construct queries (internally represented as a JSON query language based on Baloo's
query language.
We now also support server-search, so agents that implement AgentSearchInterface can search
their storage service (like IMAP SEARCH for example) and return results back to Akonadi. This
allows us to search even items that are not indexed by a local indexing service, like Nepomuk
or Baloo.
Big thanks to Christian Mollekopf for his help
Squashed commit from akonadi/server-search branch.
Port KMail's messagelist filter and search window to Baloo and SearchQuery
Big thanks to Christian Mollekopf and Vishesh Handa for their help
Squashed commit from feature/baloo
Merge branch 'server-search'
Akonadi server now supports searching via 3rd party search plugins (for
example Baloo plugin), which means we can retrieve results very quickly,
while not having to depend on 3rd party code, like we did with Nepomuk.
More importantly, we now support so called server search (or agent search).
Search results are not retrieved only from the search plugins, be the server
will also query agents and resources that implement AgentSearchInterface
to retrieve search results from their storage search service (for example
IMAP SEARCH extension). This makes it possible to retrieve search results even
for items that don't have full payload cached in Akonadi and therefore cannot
be indexed by Baloo or Nepomuk.
Big thanks to Christian Mollekopf for his help with implementing this.
Conflicts:
server/src/handler/search.cpp
Implement logging of Akonadi Session into a log file
Set AKONADI_SESSION_LOGFILE env variable, and Session will log all communication
between Akonadi server and client application. A file per PID per session is created.
Implement download
Start to implement gdrive suppport
Office
Allow importing older versions of applixword files (from 1995-1996 !)
Utilities
Merge branch 'drive'
Add support for Google Drive API.
Games
Re-organise zooming. Do just one rendering and scaling of the scene.
The zoom range (0 to 200) is adjusted to fit each puzzle as it loads,
with close-up view near one end and full-puzzle view near the other and
smoother operation in between. The close-up view is always larger than
the full view and can never be closer than a noticeable margin, even in
puzzles with a small number of pieces.
The scene is populated with items and sized only when all pieces have
been loaded from files, constructed, positioned and joined together (if
previously solved). A frame is added and the whole scene is fitted into
the view closely, showing the whole puzzle. Loading times are improved.
Start implementing piece-holders, for use in large puzzles.
Other
Add support for generating dependency diagrams to kgenframeworksapidox
Optimization
Development Tools
Use MatchQuality role for Best matches items.
Also sort Best matches items a little bit. From now on items from the
current file will be shown at the top of the completion list.
REVIEW: 115446
KDE Base
fix frontbuffer copying swap preference
REVIEW: 115523
Office
Performance optimization of the register view.
Instead of setting one delegate (the same) for each row by using
QAbstractItemView::setItemDelegateForRow() set the delegate for the
whole view using QAbstractItemView::setItemDelegate(). This way the
view will perform better because the delegate it uses does not depend
on the row on which it needs to be used.
QAbstractItemView::setItemDelegateForRow/Column should only be used if
a different delegate is needed for different rows/columns.
Wouldn't have spotted this without the help of callgrind. I must have
used setItemDelegateForRow() in the early days of my MV programming.
Performance optimization for MyMoneySeqAccessMgr::price().
Added testcases for this method.
According to valgrind this was the most expensive method of the
MyMoneySeqAccessMgr class which, in turn, was the most expensive
KMyMoney class considering the execution time.
After this price() moves bellow the transactionList() and
calculateBalance() methods and MyMoneySeqAccessMgr moves bellow
clases like MyMoneySplit and MyMoneyTransactionFilter.
Other
Other
Refacture object creation & property type handling
This commit brings a refactoring of how
- the meta code from the parser looks like (it's now using javascript
constructors more extensively)
- QML elements are constructed (mostly moving code around)
- property values are assigned to the properties. Now each property has a
proper type and the new value will be passed to a constructor to match the
type. This considers basic types like integer, strings, colors and lists as
well as object types like Item, Rectangle or Component (assigning a Rectangle
to an Item-property is handled correctly (create a rectangle) as well as
assigning it to a component (create a component)).
Moreover property values are now assigned to the properties during the object
construction. Bindings are assigned but not evaluated. The evaluation happens in
a second run after all objects are created (prior all property values were
assigned here). This fixes context problems with object type properties (like
states) in conjunction with components (see last commit) and fixes the issue
that those objects were created multiple times.