7th July 2013by KDE Commit-Digest Team
|Commits||1709 by 177 developers|
|Bugs Opened||256 in the last 7 days|
|Bugs Closed||315 in the last 7 days|
|Aaron J. Seigo||
Internationalization (i18n) Status
|Brazilian Portuguese (pt_BR)||
There are 78 selections this week
* Some references to the labelUpdater were not removed
* Initially, the system would unconditionally assume a low SNR
* Pause / resume of audio stream was not handled
* No wordwrap and very long message caused the Simon mainwindow to
Display the download file in the icon view for the selected items, like we did in digiKam 2.x.
I still think this is not the best solution, but it seems to work right now.
There is a refresh problem with the view, that has always been there and is not introduced by this patch.
If you change rename settings or if you download images, the icon view is only refreshed when you move the mouse out of the view and in again.
I tried fixing this issue, but failed.
Maybe someone who knows this code can take a look at the issue?
Fix pixmap leak when the tray icon changes (e.g. when it's animated).
This could easily leak 4KB/second of X pixmap memory.
All the actual difference comes from the QPixmap::ExplicitlyShared
argument, the rest is making some wonky-looking but working code look
Fix/workaround for legacy encoded filename handling
This patch works around the problem of filenames that are not valid
UTF8 strings: in KLocalePrivate::initFileNameEncoding() KDE sets the
QFile's encoding/decoding function, to to/fromUTF8() in QString, which
in turn calls QUtf8's converter function. I replaced this with the said
functions' copy/pasted version and changed it, so when it encounters an
invalid UTF8 string, it will encode it byte by byte, mapping the lower
128 their normal unicode place and the upper 128 to U+10FE00-U+10FE7F,
and the decoder reverses it.
don't query effects threaded
Use Phonon::PulseSupport to prevent device detection with PulseAudio
Previously whenever a device changed phononserver would rescan the
devices and display a pointless window informing the user about the
device removal. This is no longer the desired default experience as
we now recommend PulseAudio which handles device mapping and caching
Ths is wrong for two reasons.
a) With PA scanning Alsa/OSS for devices is just wrong, because we are not
going to use them anyway
b) The Phonon KCM with PA does not even visually present the Solid based
device cache as PA overrides everything there.
So in short whatever the user did with the notificaton window it had no
impact on anything as the cache was not used anyway and updating the cache
was pointless for the very same reason.
Now phononserver will check on the fly whether PA is active and if so,
refuse to scan for devices. This however has the disadvantage that now
phononserver actually becomes a PA client getting continous (noop)
updates about device/stream changes as we repeatedly check activity
just in case PA explodes and we actually need to update the cache.
In the long run this ought to be a one time check though as PA
auto-restarts unless something went terribly wrong, for the time being
continous checks seem less invasive to the runtime experience.
Fix crash when dropping URLs on the URL navigator's drop down menus
The problem was that the files were copied/moved inside the nested event
loop of the drag, which caused problems if the "File exists" dialog was
The solution is to make the copy/move operation delayed, such that it is
executed in the main event loop.
Note that dropping files on these menus does apparently not work at the
moment when using the Oxygen style (see bug 310016).
Fix for kio_file crash on non-utf filenames
The buffersize was too small for cases when more than one characters
You would think after 15 years I would know better than to backport and
push without typing "make" in between...
Make sure that KItemListSizeHintResolver is always consistent
This was the root cause of bug 317827. The assert tried to make sure
that we never access KItemListSizeHintResolver from
KItemListViewLayouter inside the loop over the item ranges. This would
be dangerous because it might be in an inconsistent state - the removed
item ranges were removed step by step, so accessing the item size hints
before the operation was finished could lead to wrong results.
The solution is to insert/remove all item ranges immediately. A nice
side effect is that there are no sources of O(N^2) complexity in
KItemListSizeHintResolver any more if many item ranges are
Don't let HTML-like filenames be interpreted as HTML strings
So that filenames that look like HTML don't get fancy-formatted when
we show info about them (i.e. on hover)
This patch fixes the same issue in two places:
- dolphin, by setting Qt::PlainText on the status bar's label
- konqueror, by escaping setStatusBarText strings emitted by
Cancel session request if imap idle manager is deleted before getting a session.
Same logic as commit a4299dbabf37e692f4355ed4871fc0e3681d765b, but for
the idle manager.
Same possible symptom later on, an infinite number of:
"Cancelling this request. Probably there is no more session available."
Nepomuk Feeder: Store the plain text context separately
We don't want to send it via dbus. Instead we just directly push it into
Also, only push the first x bytes of the email plain text, otherwise
virtuoso just crashes or goes mad. x has been experimentally chosen
after doing a number of tests.
akregator: when a Frame is not current, disable the GUI of its KPart
This avoids having multiple RSS or other widgets in the statusbar
Fix crash when incidence sends updates to observers.
This crash didn't happen before because icalformat was cloning
incidences, and the clones weren't observers.
- Fix inconsistencies in transactionform labelling.
- Fix 'Cannot enter transactions without a payee'.
Fix bug 317618 - Crash if choosing "First column as label" in default sheet
The bug was that the config widget didn't check that there was
actually at least one dataset before using the "first" one.
Ok to backport to 2.7 and 2.6?
SqlRegistry: delete orphaned entries from the urls table, too
...in addition to removing other orphaned items. It sometimes happened
that an url entry with non-existent directory remained in the db, which
prevented SqlScanResultProcessor from cleaning it up properly.
* Fix a problem where ghost tracks would remain in the Local Collection
until the database is wiped.
cache volume inside PAStreams when trying to set it on an invalid one
non-PA phonon caches all and everything and also the volume. in particular
you can set the volume before reaching playing state (which in fact is
not supported by VLC nor PulseSupport). Yet from a convenience POV this
has actual use so this change introduces caching inside PAStream.
When PASupport gets a cb about sink changes it tries to update the volume
in our PAStream accordingly. Before doing so we now try to apply a
possibly cached volume using queued invoke method as right now it's not
clear whether it's safe to change the volume from inside the callback
I'd like to get this fix verified by at least some people using knotify4
before considering the issue actually resolved. WRT knotify simply trying
to change the volume setting inside the KCM will do (upon sound output
the notification volume in pavucontrol/kmix should update accordingly)
Text color in toolbar below playlist is no longer always white.
Patch by Ricardo Varas.
Thanks for the patch, Ricardo :)
Now, if you could also figure out how to make the text stick less
close to the right border, that'd be gold.
Separate signals for game completion and won games
Since we now have a "Solve" menu option, these are two different cases.
Game completion triggers things such as disabling actions which are only
valid during a running game, stopping timers, removing highlights, etc.
Game won in turn triggers high score handling.
Do not display highlights if game solved by hint
If a hint is used to mark the final field, gameWon is emitted. This
causes 1) the scene to be refreshed, and 2) all highlights to be hidden.
In this case, calling refresh() is unnecessary, and hover() reenables
the highlights even though they should remain hidden.
make tag adding work
removal stilldoesn't work, occasional crashes duue res objects not
having json property defined
Clean up KDE dev scripts
Patch by Vadim Zhukov
"Many KDE development scripts were written in a hurry and are:
* unportable, e.g.: using bash instead of sh
* unreliable, e.g.: using of $* instead of $@ in shell scripts
* unsecure, e.g.: using open($file) idiom in Perl scripts
I tweaked most obvious stuff that I found. This patch allows to better integrate KDE development process into OpenBSD ecosystem, and, probably, in ecosystem of other OSes. Not saying about getting more reliable results for non-usual cases, such as filenames with non-ASCII-alphanum-characters in them.
Given that KDE5 is coming, I think it's a good time to improve some core stuff. :)"
make the collections work again
Improve the GenerationExpressionSolver
Make it possible to define variables in it, useful for INSTALL_PREFIX
Fix the parsing of expressions without a separator
Also process the predicate of the named expressions
Merge branch 'win-solid-next'
DIGEST: Added a new solid backend for windows wich is much faster and much more relaiable https://plus.google.com/u/0/113704854408536531920/posts/BSZ2PoJUjjp
Allow always forgetting devices (no dialog whatsoever) in phononserver
In kdedrc one can now add
> [Notification Messages]
which turns off the "do you want to remove these devices" window entirely.
Along with the previous change with not processing devices when Pulse is
used this should allow the majority of users to get rid of this annoying
thing once and for all.
Add "Zoom to DPI" setting.
Zoom to DPI allows users to automatically scale content
to match desktop resolution. This will cause images as
well as text to scale, and is therefore default off.
The setting is intended for use with HiRes monitors.
Merge branch 'kpeople'
This branch adds in _optional_ support for libkpeople
the nepomuk contact aggregation library. This brings:
- contacts when you are offline
- avatars + actions from other sources
DIGEST: Metacontacts in KTp!
Return child contact uri instead of fake uri for fake persons
This allows direct pass-through of the uri; shields clients from uris
We concluded the client does not have to know if it's a fake person or
not, it was meant mostly for merging purposes, but we run uri
identification now, so this is not needed anymore.
Reviewed-by: David Edmundson
Setup the three previous widgets as plugins : Email, Phone and Merge
PersonDetailsView is now loading plugins with the type: AbstractPersonDetailsWidget.
Each one has a weight property to order them when displayed (future review).
This patch also changes the AbstractDetailsView to use QIcon instead of KIcon.
This is useful because it lets us strip the KDEUI dependency and KIcon wasn't being
that used anyway.
REVIEW ID : 111378
Merging contacts dialog and the example to make it run
This dialog shows all your contacts that have duplicates.
The list view allows to see the name of the contact who is
concerned by the merge and the photos of the related matching
contacts. When click on the item of the list, the view extends
to show merging contacts details : name+merging reason(ex:mail)
The effective merge is not currently working due to a known issue :
Nepomuk service storage issue, so it's commented untill it get fixed
Review Request #111165
C +14 -17 src/examples/mergededicateddialog.cpp [from: src/match.h - 055% similarity]
feature: Addition of russian banks
feature: Reopen last page closed
Make the canvas input configurable
This adds a page to the preferences dialog that allows you to select a
profile and configure the input for that profile.
GUI: Added a new "Canvas Input Settings" page.
DIGEST: Krita's canva input is now configurable.
Make Ctrl+C copy the currently playing artist & title to clipboard.
PlaylistController: don't queue tracks on middle-click, just append & play
...if nothing is already playing.
This is the last change to mouse playlist-related behaviour, which
hopefully makes everyone happy. Sorry for all the bumps along the road.
Playlist::AddOptions::StartPlay behaviour was improved, it now tries
harder to start playing the first added track. However, if there is
something in the queue, it just gives up.
Revised ChanegLog entry:
* Playlist-related actions were harmonized, double-clicking or pressing enter will
append tracks to playlist, using any "play media" action will prepend tracks to queue
and immediately start playing; middle-clicking or will append & play while other
append or replace actions will no longer start playback. (BR 145468, BR 145490,
Save playlist to properly formed XML
Enable metacontact expanding on click
View's selection model behaves rather strangely and different contacts
get selected after expanding/collapsing, plus sometimes it does not
collapse the correct index. Therefore the index is stored manually.
Reviewed-by: David Edmundson
Add KPeople context menu based on person actions; brings optional KPeople dep
Reviewed-by: David Edmundson
Implement the Solve menu action
a very simple overview dashboard as default page
Fix O(N^2) complexity issue in KItemListView::slotItemsRemoved()
If many item ranges are removed, KItemListView::slotItemsRemoved()
could take very long because it looped over all items after the first
removed one for every removed range, even if most of these items are
not visible at all.
This commit improves this by just looping over the visible items (whose
number is limited by the window size) for each range.
Test case (for very large N):
(wait until all files are shown in the view)
Allow to disable deletion tracking.
This is responsible for big amounts of memory consumption.
Here it increases in 50MB after each restart of akonadi or
ETMCalendar reset (which call the calendar delete operation internally).
Memory usage can also be seen without restart akonadi, just by
deleting lots of events.
I suggest deprecating deletedEvent(), deletedTodo() and deletedJournal()
which is weird API that we don't use anywhere in KDE.
Reorder for performance.
Compare uid first.
Remove useless call and rename the catalog to the proper name
What you were doing seemed like it should work but it doesn't, i'll explain why
The thing is that when a program starts, it checks if its main catalog is
translated into the languages the user wants or not, so for example
in this case i say "I want ca" and then KLocale goes and checks if
the akonadi_newmailnotifier_agent catalog exists in catalan, and as it does not
it says "ok, no catalan translation, so we'll have to use default english for the whole program".
Then you go and insert the newmailnotifieragent that is indeed avaiable in Catalan
but it's too late, KLocale has decided already that since the main catalog is not
available it doesn't make sense to use "secondary" catalogs
Make the ITIP handler use the same calendar as korg, to save memory.
My production korg now uses 29 MB on startup, compared do 120 MB
a couple of weeks ago.
I guess that's it for now for optimizing korg.
Don't call the copy-ctor, we use shared pointers now.
Saves cpu for big calendars.
The calendar goes out of scope and will not delete the one we
MergeWidget code adpation to the new specific search form DuplicatesFinder
Now mergeWidget setup the URI of the specific person before launching the
duplicatesFinder research : give directly the results instead of getting
all of them to filter them afterward.
Review by Aleix Pol
Delay initialize the calendar.
Saves me about 50MB.
Reduces the memory usage by two. It's very rare that we have to
use itip message, no point in having a calendar in memory.
The setCalendar() method will allow the itip handler to share the
calendar with korg.
Improve DuplicatesFinder for the MergeContactWidget
Makes DuplicatesFinder capable to only fetch the duplicates for a given
contact. It makes it a bit faster and lets us save some iterations that
would be wasted otherwise.
Reviewed by Franck Arrecot
Make contacts merging/unmerging methods static
The reason being that not always the client application has access to
the instantiated PersonsModel as it might be hidden behind proxies and
only the proxy can be passed to the view/client app. For these cases,
it's very convenient to have these methods as static members, so we can
call it from wherever it's needed.
I've also made the createPersonFromUris return a KJob, which can be
tracked on the client side, it's also needed to obtain the new person's
uri and set the view to that uri.
Make arrays const which should be const
const char * x is a variable which points to const char, but can be changed itself
Fixed by either marking the * const - > const char * const x
or by removing the * and postfixing the var with the array marker  -> const char x
const char * x is an array (of fixed size, as initialized) whose elements point to const char, but which can be changed itself
Fixed by marking the pointers const -> const char * const x
These fixes both result in protecting against unwanted changes and remove
one indirection, as the compiler knows at compile time which data is
really referenced by the now non-variable but const x.
Playlist will now save other information about items as well. This makes it faster when loading.
Add an implementation of nutation.
Note that we use the exact method always, unlike in the
old implementation, where we use an approximation. However,
even the exact method here should be much faster than the
trig in the old method.
Note also that this implementation doesn't have a test yet, since
it's getting its numbers from a function which is known to give
incorrect results. When the AstroVars tests pass, then we
should add a nutation test.
cache some strings
First shot at compiling oxygen against KF5/QT5
- disabled all config UI
- disabled decorations
- disabled all X11 stuff
- renamed all signals: into Q_SIGNALS and slots into Q_SLOTS
- removed all path from include directives
- removed use of KComponentData. Use KSharedConfig directly instead.
- removed use of KIcon
- use QPointer instead of QWeakPointer
- updated plugin declaration
It's time to activate it. It's not free bug yet but it works fine :)
Please adopt application logo/icon for smaller resolutions ==> skrooge-mini can be choosen for small resolutions
D +- -- skrooge/hi128-apps-skrooge-mini.png
D +- -- skrooge/hi16-apps-skrooge-mini.png
M +- -- skrooge/hi16-apps-skrooge.png
D +- -- skrooge/hi22-apps-skrooge-mini.png
M +- -- skrooge/hi22-apps-skrooge.png
D +- -- skrooge/hi256-apps-skrooge-mini.png
D +- -- skrooge/hi32-apps-skrooge-mini.png
M +- -- skrooge/hi32-apps-skrooge.png
D +- -- skrooge/hi48-apps-skrooge-mini.png
M +- -- skrooge/hi48-apps-skrooge.png
D +- -- skrooge/hi512-apps-skrooge-mini.png
D +- -- skrooge/hi64-apps-skrooge-mini.png
M +- -- skrooge/hi64-apps-skrooge.png
C +- -- skrooge/hisc-apps-skrooge-initial.svgz [from: skrooge/hisc-apps-skrooge.svgz - 100% similarity]
D +- -- skrooge/hisc-apps-skrooge-mini.svgz
M +- -- skrooge/hisc-apps-skrooge.svgz
Fixed endless game-over message and undo
Fixed endless game-over message. And magically (I don't know why) undo
Also has changed copyright signs order.
KReversiView now controls game-flow, as it was done by KReversiScene
1) KReversiView now have same signal pattern as KReversiScene, used
before. Now game is playable. You can do only allowed moves and so on.
2) Showing of legal moves and last move already works.
3) You can change chip color.
1) History works, but Undo doesn't.
2) Game sometimes crashes, when you close it while demomode is running.
3) QML layout don't fit board image well, so you can see that last cells
have some bias.