Issue 343
8th June 2014 by KDE Commit-Digest TeamContributors
Danny Allen
Giacomo Barazzetti
This Week...
Statistics
Commits | 2235 by 148 developers |
Open Bugs | 22603 |
Open Wishes | 16088 |
Bugs Opened | 282 in the last 7 days |
Bugs Closed | 234 in the last 7 days |
Commit Summary
Module | Commits |
/trunk/l10n-kde4 |
97
|
/trunk/l10n-support |
59
|
/trunk/l10n-kf5 |
42
|
/branches/stable |
32
|
/trunk/www |
27
|
/gemini/qml |
12
|
/krita/ui |
12
|
/plugins/extensions |
10
|
/src/core |
10
|
/lookandfeel/contents |
9
|
Files | Developer | Commits |
573
|
David Faure |
193
|
471
|
Laurent Montel |
167
|
156
|
Aleix Pol Gonzalez |
54
|
147
|
Marco Martin |
50
|
129
|
Arjen Hiemstra |
43
|
102
|
Dan Leinir Turthra Jensen |
35
|
93
|
Denis Steckelmacher |
31
|
90
|
Martin Gräßlin |
30
|
87
|
Christian Mollekopf |
29
|
84
|
Ludovic Grossard |
28
|
Internationalization (i18n) Status
Language | Percentage Complete |
Portuguese (pt) |
100%
|
Ukrainian (uk) |
100%
|
Swedish (sv) |
99%
|
Brazilian Portuguese (pt_BR) |
99%
|
German (de) |
98%
|
French (fr) |
97%
|
Dutch (nl) |
97%
|
Spanish (es) |
95%
|
Bosnian (bs) |
92%
|
Italian (it) |
90%
|
Bug Killers
Person | Bugs Closed |
Christoph Feck |
43
|
Chao Feng |
20
|
Marco Martin |
15
|
Martin Gräßlin |
11
|
Jekyll Wu |
11
|
Gilles Caulier |
11
|
Albert Vaca Cintora |
9
|
Jan Grulich |
8
|
Dmitry Kazakov |
7
|
Jarosław Staniek |
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 68 selections this week
Bug Fixes
Development Tools
If a type name is unknown, don't create a new StructureType for it, but return mixed
If a QML component inherits from NotFound, typeFromClassName will create a
StructureType whose DeclarationId is "NotFound". The problem arises if NotFound
is later properly declared. declareComponent will therefore create another
StructureType, whose Declaration is "module::NotFound". The two StructureType
having nearly the same name but one having a declaration and not the other will
fight to death and cause random crashes.
This patch also modifies declareComponentSubclass so that special components
(components, modules, signals, ...) see their parent modules and can therefore
use their declarations. This allows "void foo(QtQuick::QModelIndex)" to be
properly recognized.
Ensure that the last declaration of ExpressionVisitor is cleared if no pertinent declaration has been found
For instance, when the declaration of an object member cannot be found, ensure
that ExpressionVisitor will return nothing, and not the declaration of the object.
"foo" in "object.foo" is not an use of "object" if "foo" does not exist in "object".
Graphics
With 4.0.0 release, blur filter algorithm have been changed, and radius argument precision have been dropped due to use an interger value intead a float value.
This commit fix this wrong cast to take a acre about radius precision with UnsharpMask filter
FIXED-IN: 4.1.0
KDE Base
Fix locale-aware reading in KDesktopFile
The underlying KConfig used QLocale::name() for getting the locale
aware part. But this returns "de_DE" while the desktop files store
"de".
In addition it constructs a QLocale object instead of using the
system locale. This has the advantage that the usage of
QLocale::setDafault() gets honored by KConfig.
REVIEW: 118564
fix: Prolog highlighting marks Swi-Prolog 7.x new dict syntax as warning
Thanks to Raivo Laanemets for the patch!
Fix KDirWatch to act more reliably against various backends.
- When KDirWatch used a FAM backend, it wouldn't actually wait for the
necessary watches to be put in place before returning, allowing for a race
where an application may think a watch is in place when it really isn't.
This was easily seen using gamin and running the testDeleteAndRecreateFile
test. Fix by delaying useFAM until the watch is in place by waiting until
the EndExist FAM event is received. This adds ~100-200ms per watch with
gamin.
- When a file is deleted and recreated, and scanEntry detects it, the dirty
signal would be emitted. Fix to emit a deleted + created signal, as expected.
- When a deleted signal was requested, other signals were dropped. Due to
the above point, this would stop the created signal from being emitted. Now,
all signals are emitted, even when a delete is detected.
- When watching recreated files, the created signal could get lost as there
was a race between when the created signal would be generated and its signal
spy would be created. Fix by making sure the spy is created before the signal
could be emitted.
- Make sure the created signal isn't emitted twice with both FAM and the
polling timer. This occurs as FAM doesn't fix up the fact the entry has been
created, and the poller thus assumes it needs to notify the world. Fix by
having FAM not emit the event in this case.
REVIEW: 118458
Formats KCM: Use QLocale::name() when writing to the configuration file
Currently the Formats KCM writes its configuration file using the
selected locale's bcp47Name(). This breaks locale loading as locales are in
the form "foo_FOO" (e.g., "it_IT" for my own locale) and instead the Formats
KCM exports LANG as "foo" (e.g. "it").
This causes a bunch of runtime warnings and locales don't get actually
loaded.
This is just part of the job: more work is needed for encoding and
script handling (see TODO in the comment).
Reviewed-by: Sebastian Kugler, John Layt, Lukas Tinkl
REVIEW: 118584
Do not crash if QApplication::clipboard()->mimeData() is a null pointer
According to a recent bug report, this can happen on Wayland. The root
cause of the problem might be a problem in Qt's Wayland support itself,
but this patch at least prevents that Dolphin and other applications
which check the clipboard state to determine the text of the paste
action crash on startup.
REVIEW: 118450
Port libtaskmanager away from QDesktopWidget
plasmoid.screen doesn't map to QDesktopWidget indexes anymore, therefore we
need to port it.
This patch uses the screen geometry to figure out what's the screen and then
passes around the screen rect so that we can filter out the screens that aren't
inside if the user asks for it.
REVIEW: 118548
Fix possible crash if a kioslave adds multiple items with the same URL
When opening the URL "man:", there are multiple items with the same
name (for example, _exit is shown twice here). When opening a new tab,
the kioslave reports some items as deleted (I have not quite understood
why). The problem is that it reports some of the duplicate items twice
in the list of deleted items. This confused KFileItemModel and
corrupted the internal data structures, and finally, caused a crash.
The fix is to remove all duplicates from
KItemRangeList::fromSortedContainer(const Container& container).
New unit tests included.
REVIEW: 118507
FIXED-IN: 4.13.2
[kcms] I18n fixes
* define TRANSLATION_DOMAIN in each KCM
* use ki18n_wrap_ui
This makes the KCMs load their own translations at least. There are
still quite some issues for code coming from libraries, so that needs
more investigation.
KCM for keyboard and font install are not yet fixed as they need a more
complex fixing.
KDE-PIM
Always restart a job that has failed due to invalid Google OAuth token
Once we refresh the tokens, we must restart the job, because otherwise
the Resource task won't be finished and ResourceScheduler will get
stuck forever.
FIXED-IN: 4.13.2
IMAP-Resource: Fixed detecting removed messages and clearing of empty folders.
The hack for local items that have not yet been uploaded doesn't work as
it keeps us from detecting remotely removed messages.
In the case of messageCount == 0 we need to ensure m_incremental is false,
otherwise we call both itemsRetrieved and itemsRetrievedIncremental.
Office
Change of addItem to insertItem in KexiDataSourceComboBox slot
In slotNewItemStored of KexiDataSourceComboBox there was called addItem
method that adds to the end of combobox. Method insertItem should be
called instead so that items are in correct order
FIXED-IN: 2.8.4
REVIEW: 118485
Floating message block input under Gnome.
Using Tooltip instead of Tool seems to fix that.
Fix crash when accessing a query with duplicated table names
Example query that crashed: SELECT t.foo FROM t, t.
Now error message is displayed so user can fix the statement.
FIXED-IN:2.8.4
REVIEW:118519
Networking Tools
load applet only when networkmanager is running
This makes the networkmanagement applet load automatically when the dbus service org.freedesktop.NetworkManager is present and unloads it when it's not.
In a normal setup shouldn't make much difference, but would automatically disable it for workstations when a fixed ip or dhcp over ethernet is used instead of networkmanager
REVIEW:118516
PauseMusicPlugin now stops music when it can't pause (ie: streams)
User Interface
Improve updating user timestamp
Use the timestamp from the xcb event which triggers the update whenever
possible. If we don't have access to the latest event, let's at least
update our own xTime prior to using it.
Slightly unrelated change included: Group switches the userTime from
XLib datatype to xcb datatype.
REVIEW: 118456
Other
The RunnerManager repeats the same results
It gives the results via a changed signal which contains ALL the
results, not just the new ones. This is why we were seeing a number of
duplicate entries in the list.
Right now, instead of checking each item against the entire list and
only updating the duplicates, we reset the entire model. It's simpler
this way (for now).
Features
Accessibility
Completed MprisPlayer plug-in
REVIEW: 118311
Development Tools
Support for object literals ("var a = {key1: value1, key2: value2}")
REVIEW: 118493
Support QML property aliases
Recognize QML slots and register them as uses of their corresponding signal
REVIEW: 118596
Added a customized title to the test output tab.
This patch adds a customized title to the test output tab pane informing about
the name of the suitcase and case running or, in the case of more than one test
case, about the name of the suitcase and the number of cases running.
REVIEW: 118589
Move assistant infrastructure to kdevplatform
Noteworthy changes:
* StaticCodeAssistant (from CPP plugin) is now StaticAssistantsManager,
now lives in kdevplatform, so all languages can benefit from it
* RenameAssistant was moved to kdevplatform, as it it useful for all
languages
* BasicRefactoring now has new virtual methods that control the behavior
for renaming actions
LanguageSupport got a new property: refactoring (so languages can expose
their custom BaseRefactoring implementation)
New API:
* New base class for "static" assistants: StaticAssistant
Static assistants exist during the whole session
They are notified when documents change and create solutions based on
that. Current implementations: AdaptDefinitionSignatureAssistant (CPP
language) and RenameAssistant (kdevplatform)
* New manager class: StaticAssistantsManager:
Tracks the StaticAssistant instances, takes care of notifying them
about changes in the editors. Single entry point for registering
StaticAssistants.
Entry-point: LanguageController::staticAssistantsManager
REVIEW: 118542
Support field member expressions in code-completion
REVIEW: 118465
Adds status icon to to indicate that a test is running
A new 'on-progress' state and icon have been added to the testview to
indicate that a test is running.
REVIEW: 118420
Educational
Polygon moving, node deletion and adding polygon holes
REVIEW: 118405
Marble input handling refactoring, event handling in MarbleQuickItem
Functionalities:
- Mouse, touch and pinch input handling for MarbleQuickItem (keyboard
was enabled earlier)
Other changes:
- Refactored input handling to reuse code, broke into smaller pieces
(functions)
- Extended the example (marbleQuick2)
Known issues:
- Some refactoring still should be done around input classes
- Inertial rotation is disabled by default in MarbleQuickItem because
of some issues (mostly touch-related). However, issues are rather
minor so feel free to enable it back.
REVIEW: 118495
Graphics
Added config dialog options for default stitch and backstitch strands
The configuration file has options for the default number of strands for
stitches and backstitches, but the configuration dialog had no options
for changing the values used. Two combo boxes have been added to the
palette configuration to allow setting this value in the configuration
file.
GUI: Two new strings have been added in PaletteConfigPage.ui
KDE Base
Add KPluralHandlingSpinbox to allow to add plural i18n when we port KIntSpinBox
Review and ok'ed by David.
Use it just when we need to add suffix with plural otherwise use QSpinBox
Provide i18nd wrappers in kdeclarative
As QML might combine multiple modules with different cataloges we need
to be able to specify the translation domain explicitly. If there is a
need to use a specific domain for all i18n calls (e.g. in a library
using QML) there is the possibility to set a global translation domain
through KDeclarative. If such a domain is set all i18n calls delegate
to the i18nd variant.
Due to the nature of KDeclarative we cannot mix i18n calls with
different domains. If two modules would require to set the translation
domain it's bound to fail. Thus the recommendation is to use the i18nd
variants in any QML code which is intended to be used as an import.
REVIEW: 118526
[calendar]Add time dataengine to calendar applet
To have properly updated date
Allow passing custom theme base path together with custom app themes
KIconTheme in kdelibs4 was searching
KGlobal::dirs()->resourceDirs("data") to find all icons; the status notifier dataengine was then setting custom resourceDirs(..) with custom SNI theme paths (which the SNIs can pass) and so the SNI icons always ended up in the theme search paths (the SNI icons are stored as a whole theme).
With the port to QStandardPaths, we lost the ability to pass custom dirs
into the theme search paths and that results in status notifier icons in
Plasma Next having "unknown" icons as their icon theme paths are not
searched and so icons are not found. This is the case mostly of the Qt4
apps running on Qt with the QSystrayIcon-to-SNI-patches (case of *buntu
and I heard opensuse too?)
KIconLoader however has "addAppDir(..)" method, so I expanded that
method to actually take an "app dir" and add it to the theme search
paths. Plasma Next now have proper icons in the systray.
REVIEW: 118561
Add a dedicated TermGenerator class
For now this class is just a wrapper over the Xapian class, but in the
future we will implement our own term generator.
Also, added a simple unit test to test the basic features of the term
generator.
Improve feature info for OpenGL(ES) detection
* print feature info for GL only if Qt is compiled against GL
* print feature info for GLES only if Qt is compiled against GLES
* add a feature info for GLU which is found by the OpenGL find package
but is also a required dependency for OpenGL support
Add timeToFull/timeToEmpty, recall notice and FullyCharged to Solid::Battery
This adds the following functionality to Solid::Battery:
- timeToFull and timeToEmpty (at the moment provided by PowerDevil but for all batteries combined, this patch does it individually for each)
- rename isPlugged to isPresent (as plugged always confused me - it has nothing to do with whether AC is plugged in but if the battery is "present in its bay", it's also the name of the UPower iface)
- FullyCharged battery state, we cannot rely on the battery being 100%, and since the info is provided by UPower (not on HAL), why not use it
- RecallVendor/RecallUrl when a battery has been recalled by the vendor, currently provided/handled by PowerDevil
- Serial number of the battery
Sorry for the hard to read patch but I also re-ordered some methods to have the order in all implementations and headers the same.
REVIEW: 117339
Implement a lock screen based on Andrew Lake mockups
KDE-PIM
Use credentials in the "Edit Host" window to query LDAP Server.
If the server needs authentification to connect, the "Query Server"
to get the namingcontexts should use the credentials.
FIXED-IN: 4.13.2
Office
Add code viewer for log window, which helps to find include path problems and parser errors.
GUI
[FEATURE] Added a Scalable Distance option to Weighted Smoothing
Now if you activate "Scalable Distance" option for a brush tool,
the distance will be corrected to your current zoom level. It means
that your stylus will be "stabilized" the same way at any zoom level
you choose.
Also support DOC and DOCX formats with the ODT Okular generator plugin
DIGEST: Calligra-powered Okular generator for DOC/DOCX, based on the one for ODT
REVIEW: 118541
Thanks sven for review
[FEATURE] Make the grabbing area for Transform Tool handles twice lager than the handles themselves
Added method to MyMoneyFile to calculate cleared balance
REVIEW:118107
Updates for the clone tool
The clone tool can now clone from the projection and it's possible
to change the clone source layer. Press ctrl-alt-click to select a
new clone source on the current layer. ctrl-click to select a new clone
source point on the layer that was active when you selected the clone
op.
steam: save to cloud dialog
Initial work on the Save-to-cloud dialog
Needs image provider and additional logic
Networking Tools
Add option to disable system tray
REVIEW:118455
Add support for specifing server host & port in GoogleTalk class
This patch allows to use GoogleTalk class (voice support) for other non Google jabber accounts
System tray Icon for KTp-call-UI
REVIEW: 118358
Add support for jabber audio calls via libjingle for all jabber accounts
Current version of libjingle library included in kopete tree supports both
google libjingle and real jingle protocol. It also supports connecting to
other (non google's) jabber servers (via special --s flag), but does not
support SRV dns lookups of jabber host name.
This patch enabling libjingle audio call support for all jabber accounts
(not only google) and adding code for xmpp-client SRV lookup which is
needed by external libjingle call application.
[ #49034 ] Refactor the video configuration code to be safer (1/3)
This commit implement the new daemon video getcapabilities() to load
the whole device configuration when using the video module for the
first time. This prevent the back and forth between the various
layers of both the client and the daemon. Those, created a feedback
loop that could crash the daemon or corrupt the Qt models.
While it will take a while to get to a stable point again, this
code is much more robust than the previous implementation.
The next few commits will replace the last bits of the old code
path by the new one.
User Interface
allow FS mapping of geometry restricted windows
and copy isSpecialWindow() check as rulebook input
to setFullscreen()
Client::isFullScreenable() checks:
* fullscreen rule
* fullscreen_hack (-> for normal windows)
* geometry restrictions
* special window
Client::manage() for fullscreeining checks:
* fullscreen rule (with correct "initial" parameter)
* fullscreen_hack
-> this breaks the fullscreen rule for geometry restricted windows
and causes inconsistent behavior between client requests at runtime
(which do not test ::isFullScreenable()) and on mapping.
Otoh, the specialWindow() protection should apply generally - those
kind of windows should not be fullscreened since the user can not
exit this state via kwin for them - and there's hardly a good reason
for them to be fullscreen, esp. not to enter that state at runtime
REVIEW: 118442
Cherry-picked from kde-workspace
43229afee9fac4303e3d280ea63f96f034b3ffb5
[scripting] Support loading translations for UI loaded configs
Scripts and scripted effects can provide a ui file which gets loaded at
runtime. Obviously such a ui file is not translated. This introduces
quite a hack to load the translated strings.
In the metadata.desktop file the scripted component can provide a key
X-KWin-Config-TranslationDomain. The genericscriptedconfig tries to
locate the metadata.desktop file and reads this entry. If it is present
we extract all string properties of the loaded UI and pass them through
ki18nd.
REVIEW: 118585
Utilities
Consider Super_L and Super_R as modifiers
Without this patch, I can't use the meta key to assign shortcuts, as
Super_L and Super_R are not considered as modifiers, so when I press
meta (Super_L on my system), the shortcut is immediately accepted,
before I get the chance to press another key.
This patch requires the fix in
https://bugreports.qt-project.org/browse/QTBUG-38428
to be applied. With both patches, KKeySequenceWidget works for me.
REVIEW:118581
Optimization
Development Tools
Greatly optimize the ManPageModel.
Instead of loading huge HTML files for the individual sections, we
simply use KIO::listDir and use its results.
Sadly, we cannot do the same for the top-most page as a listDir
on man:// returns not only the folders but also all entries...
Optimize and cleanup the plugin controller architecture.
We repeatedly queried for plugins using the KServiceTypeTrader API.
This is quite costly, esp. the amount of allocations it triggers is
huge. Also, we cached the useful results of that already, so why
not make use of that, no?
This patch does this. We only query for KDevelop plugins once and
then operate on that list. The API is cleaned up and duplicate
code removed while at it.
Constraints are now given as a QVariantMap instead of using the
trader language and the IPluginController static functions become
pure virtual.
Optimize ManPage plugin's parsing of section contents.
To find a page, we only need the identifier and the section ID.
That is enough to construct the KUrl on demand - no need to keep
thousands of them in memory.
KDE Base
Optimize KConfigIniBackend::parseConfig by reducing allocations.
Yet another awesome application of the Qt implicit sharing trick.
Since config files often contain only few different keys and even
value strings, we can share them. This reduces memory consumption
and also speeds up parsing, as we do not have to allocate the
duplicated strings, but can simply reuse the previous values.
The most extreme case for this of my knowledge, is KatePart:
katesyntaxhighlightingrc has more then 20k lines which triggered
nearly 30k allocations on startup. With this patch applied, this
value goes down dramatically. I added a simple static counter for
the cache hit/miss ratio, which resulted in 5442 cache misses compared
to 43624 cache hits across all KConfig files parsed by kwrite.
REVIEW: 118587
Separate width and height info in the layouting code
By separating the width and height info, we can save some unnecessary
overhead in terms of memory and CPU cycles, and make the calculation of
the height of a row (or the width of a column in Compact View) a bit
simpler.
To achieve this, this patch extends the concept of "logical rows"
(which are actually columns in Compact View) to "logical width" and
"logical height" (which is the actual height and width, respectively, in
Compact View). The distinction between rows/columns and "logical"
rows/columns may be a bit confusing, but the confusion is already in the
current code, and I hope that it will be mitigated a bit by prefixing
the corresponding variables with "logical".
REVIEW: 118454
KDE-PIM
Speed up opening the folder properties dialog in kmail.
An IMAP mail check schedules a large number of tasks.
Tasks that the user is waiting for, such as ItemFetch (reading one mail)
or SyncCollectionAttributes (as called by the folder properties dialog)
should have priority over that.
There might be more types of tasks that the user could potentially be waiting for.
Maybe we could even blacklist instead of whitelist, i.e. put folder-sync tasks
in a low-prio queue, while the default queue would be above it. Not sure.
325756
REVIEW: 118602
Office
Limit Pseudo Infinite canvas feature not to create too huge images
The changes:
1) The expansion is now limited by 100%. This is actually quite
easy way to double the dimension of the image: zoom out, move
to one side, press the button and one dimension of the image
is doubled!
2) If you press only on one side panel, then the image will be expanded
into exactly *one* direction. This allows you to expand an image in
a single dimension only.
3) If you press in the corner of the canvas (that is on two panels at
once), the image will be expanded in two corresponding dimensions.
Other
Educational
Initial port for step to Qt5/KF5
Everything builds and runs after porting to KF5
REVIEW: 118349
Ported to GStreamer 1.0
Artikulate has been ported to QtGstreamer 1.0 and it no longer supports QtMobility.
KDE Base
Implement a new strategy to get a fallback theme
It's pretty bad if the lockscreen greeter can't find the lookandfeel's
lock screen, so introduce a qrc file with a default simple lock screen that
we can fallback to.
KDE-PIM
Start to merge vcard4 support
User Interface
[kcmkwin/compositing] Show warning message when selecting "dangerous" options
The idea is to warn the user that changing the settings might break
the setup when we know it could be dangerous. The following cases are
considered:
* Scale filter Accurate
* Tearing prevention
* keep window thumbnail always
* EGL if EGL and GLX are available
* unredirect fullscreen not working on all hardware
In addition the OpenGL is Unsafe warning is turned int a KMessageWidget
which is also used for all the other warnings.
REVIEW: 118494
KWin activities usage ported to the new library paradigm
Since the KActivities library now keeps an internal cache (and is
non-blocking), there is no point in thread-based information
fetching.
REVIEW: 118443