Issue 292
16th June 2013 by KDE Commit-Digest TeamContributors
This Week...
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 92 selections this week
Bug Fixes
Accessibility
Fixing network communication corruption
The method to process the server replies was not reentrant. As our
custom thread safe tcp socket did not account for that, a race condition
would occasionally mess with the read cursor.
Fixing server -> client synchronization
* Send samples to client that are not essential for *right now* to cover
the case where the client receives an updated prompts making the
initial request outdated
* Rewrite to central send() method and make the network transfer
uninterruptible
Fixing Server > Client rollout on initial setup
* The built-in default scenario used to mark itself as "just created"
causing it to appear "newer" than a potentially modified scenario on
the server. Fixed.
* The built-in default scenario configuration defaulted to the current
time (first start). Again, this might overwrite a potentially modified
server configuration. Fixed.
* The server used to send the list of scenarios to activate before
synchronizing available scenarios. This may cause the client to
initialize non-existing scenarios, causing a crash. Fixed.
Development Tools
Fix crash when re-loading the file manager plugin
It was requesting the KPluginInfo before having it added to the
plugin controller and it was crashing. This patch delays the UI
registering. We're not in a hurry to do that anyway.
Educational
Fix distance computation for unconnected nodes.
If a path does not exist between any two vertices in a graph, the
distance between those vertices is defined to be infinity. The
GraphStructure::distances method was returning zero in this situation
and so this was a bug. A fix for this bug was implemented, a test case
was added to verify these changes, and related documentation was
updated.
Introducing two new strings, as requested at i18n list.
REVIEW: 110822
Prevent potential segfault in observing list.
While this does not really find and eliminate the source of the null
object, it at least prevents KStars from crashing while trying to add
objects to the observing list. The segfault can result in severe loss
of observing wishlist data because the data file is overwritten each
time and the data save could be aborted by a segfault.
It happened to me today, and I have to redo 2 hours of scouring
through observing lists.
Will not backport as we're going to release 4.11 soon.
BUG
Fix a reference to deleted memory, since QString::toLatin1().data() is a dangling pointer to the data of a temporary object which was already deleted.
Update the local time before we update the timebox.
Fixes the issue with time displayed being one step behind.
REVIEW: 110973
Graphics
Continue in case a category is missing
Missing categories are inserted nowadays automatically, so there is no
need to assert on it.
KDE Base
Don't init values with 0.
When the sourceRequestEvent is fired, it asks DBus for the brightness. Here it happened that the reply
came so fast that the 0 overwrote it. This fixes the battery monitor not knowing the current
brightness values on system startup (eg. if they've been modified earlier by a script)
Disable all TextAreas
Initializing a TextArea crashes the shell, there's a Qt bug
https://bugreports.qt-project.org/browse/QTBUG-30925 filed about this.
Since we now can't even build against an old-enough Qt, which doesn't
suffer from this crasher, disable the textareas in our code until it's
fixed.
Disregard non-powersupply batteries in the profile generator too.
If your mouse reports its battery status and you launch a fresh KDE SC install,
your powerdevilprofilesrc will be filled with unneeded config options.
kwin/glx: Relax the GLX_CONFIG_CAVEAT requirement
Allow drawable configs with caveats. The ARGB32 visual is marked as
non-conformant in the Catalyst driver.
use KWindowInfo to check for transients; take more care with transients
it does a rather more thorough job and fixes the problem of utility
windows that are transients (e.g. toolboxes pulled out of app windows)
preventing windows from being minimized properly from the tasks widget
this is probably far older than the 2.5 year old bug report.
kwin/blur: Fix a typo in the config dialog
Substituting "save" with "safe" completely changed the meaning of
the sentence.
If no connected outputs are found, do nothing
Our name is kscreen, we can handle dozens of configurations but we can't
handle having no screens (facepalm). This fixes that.
Fix Bug 320335 - Problem with tree view when using programs:/ protocol
Create directories without trailing slashes, like every other kio slave does.
REVIEW: 110924
FIXED-IN: 4.11
Do not rename files unexpectedly when changing the URL
If the role editor loses focus, it considers the current renaming
operation finished, and tells DolphinView to rename the file. This is a
problem when changing the directory, because the URL change happens
before DolphinView receives the signal, which results in a file in the
new directory being renamed unexpectedly.
The solution is to establish the connection to the
slotRoleEditingFinished signal only when the "rename inline" editor is
opened, and disconnect it when renaming is finished or canceled or the
URL changes.
FIXED-IN: 4.10.5
REVIEW: 110908
MainModel: Guess the virtuoso port number better
This shouldn't affect normal users, but for developers who work on
Nepomuk, virtuoso isn't always started on port 1113 because a previous
running virtuoso. In that case when a new virtuoso instance is started,
it is started on the next available port - 1114.
All the applications still try to connect to 1113 because the socket
file still exists, and that causes problems.
We now try to connect to the highest port number after 1113 which has a
socket file.
Fix Bug 321042 - "Report problems or whishes" does not work for KMail2
FIXED-IN: 4.10.5
Up/Down keys should not move to the left view when on the first/last position
Tested the whole kickoff menu keyboard navigation, everything works as
expected now: Right key into the submenu, left key to the parent menu;
when in the toplevel, it moves to the view on the right/left
when pressing Right/Left arrow keys respectively
Fix Bug 319119 - Dolphin doesn't notice when renaming failed
Change the data in the model before the real renaming is done by KonqOperations::rename(),
but when the rename operation fails, revert the data changes in the model.
REVIEW: 110922
don't crash when the list is empty
the do/while construct would die on an empty list. in theory this
shouldn't happen because we are asking with a Task pointer which
should only exist if there are, well, windows. however, due to the
async nature of windowing systems, during the time of the call all
of this can change.
Do not delete files when Shift-clicking "Trash"
Thanks to Dawit Alemayehu for making this fix possible with commit
8e023ae9e5051cb7b81af86a178e37c1f2c5da94 !
FIXED-IN: 4.11.0
KDE-PIM
Merge branch 'fix-backslashes-in-mailbox-names'
REVIEW: 110912
Add support for disable overriding jabber host & port when registring new jabber account
This is needed for all modern jabber servers, so override option is disabled by default
After this patch registring new jabber accounts should work again
Fix background of recurring to-do's.
Don't mark as overdue completed to-do instances.
Feeder: Do not assert when the mappings do not contain a resource
There are cases where the mappings do not contain a resoucce. This is
becase we use the MergeDuplicateResources flag in StoreResources and
the duplicates do not have mappings
Save/restore dialog size
composer config page: Move external editor group to its own tab
This saves vertical space and makes the page fit netbook screens.
REVIEW: 110977
Ignore events with invalid DTSTART.
Fixes kontact freezing for a couple of seconds.
Bug 219261: Fix sound repetition pause not working in audio alarms
Also requires commit f655050c5bdc1a0e47c2ede917a4a8df8fb71fec in
kdepimlibs KDE/4.10 branch.
Fix Bug 308008 - Filtering from checked accounts only not working for POP3 accounts
FIXED-IN: 4.11
Set current time for archive. (bug reported by kevin some weeks ago)
IMAP: do not doubly-encode backslashes when sending mailbox names
I've noticed this in an unrelated bugreport (thanks to Nicolas Sirolli
in bug 320828).
The encodeImapFolderName shall only convert the Unicode data into a proper
modified-utf-7 thing, not escape the backslashes. This escaping is done by the
Parser when queueing commands. Looks like this bug must have been around for
ages, literally.
When decoding from unknown encoding and assuming UTF-8, be sure to not stop at first NULL byte
This does *not* fix #321160 (this code is not even triggered in this situation),
but it's a sane thing to do anyway. I guess that the code shall be audited for
other instances where we might silently truncate the data here; it's caused by
an implicit conversion from QByteArray to uchar*.
Office
Fix drawing the cursor in XOR mode with opengl
However... ES 2.0 doesn't have
glEnable(GL_COLOR_LOGIC_OP);
glLogicOp(GL_XOR);
Which is, of course, why QPainter in OpenGL mode doesn't have it either.
Correction for account selection
Fixed a crash when opening JPEG files edited in Lightroom
We do not support nested arrays/nested structures in the XMP currently.
This means that all the information about Adjustment masks applied by
the Adobe Lightroom will be lost.
This is not ideal of course, but we can live with it for now.
Here is an example of XMP tag that will be dropped:
GradientBasedCorrections[1]/crs:CorrectionMasks[1]/crs:What
Fixed a crash when opening JPEG files edited in Lightroom
We do not support nested arrays/nested structures in the XMP currently.
This means that all the information about Adjustment masks applied by
the Adobe Lightroom will be lost.
This is not ideal of course, but we can live with it for now.
Here is an example of XMP tag that will be dropped:
GradientBasedCorrections[1]/crs:CorrectionMasks[1]/crs:What
Networking Tools
Attempt to prevent crash when restarting NetworkManager.
Implementing a workaround for invalid Tag URIs
The data of tags is cleared in the aboutToQuit signal
so no uri() call is valid when we are saving group
info. This commit "caches" the URI as the key of a
map that holds tags as the values
CCEMAIL
Distinguish between user deactivation and activation error for vpn connections
as well.
FIXED-IN: 0.9.0.9
(cherry picked from commit f5c57ab9ba95db528fa89906335f8dca44b43439)
Link custom rekonq QNAM to KDE proxy settings
This is a first attempt to link our needed QNAM to KDE proxy settings.
It will try to fix proxy problems when used.
Oh... I also added some new error strings in case of proxy problems :)
Fix: WEP key is never valid
Games
Enable ctrl-m (by default) to toggle the menubar
This is considered an accessibility/usability bugfix by the kdegames crew
The i18n teams have acked the new messages
REVIEW: 110650
FIXED-IN: 4.11.0
Fix Save/Load to include saving and loading game and player settings.
Features
KDE Base
Tags: Do not show tags which do not have any files
add OpenConnect VPN plugin
Merge branch 'wip/kfiledialog-remember-settings'
REVIEW: 106581
FIXED-IN: 4.11.0
Handle octal numbers (non-zero; leading 0; can be parsed as octal) with ctrl-a/x. Ensure that they retain their leading 0's.
KDE-PIM
Merge branch 'newMailTB'
REVIEW:110959
Cleanup: DRY when sanitizing the mailbox names before passing them to the SQL layer
This massaging is still needed due to qsqlite translating a null QString into
NIL; by now, this requirement is documented and its use is made consistent.
Thanks to ronny_ for pointing out that the old way was very ugly.
REVIEW: 110921
Merge branch 'modelfeatures'
REVIEW: 110961
Add support for Google accounts added by mission-control-uoa
Basically we have to implement X-OAUTH2 which besides the generic name
it does not seem to be generic at all.
This code maps 1:1 what Empathy does and of course it is working.
Activate webcam preview in settings dialog only if webcam tab is selected
FIXED-IN: 4.11
Add DataStoreInterface
DataStoreInterface allows to decouple akonadi access from the rest of
the application.
DataStoreInterface provides mecanism to override the current
implementation. In particulary uses for preventing akonadi access during
tests.
Text input field auto-resize for chat window
Chat window's input field now follows its internal text size. One can disable
this via "Format->Input auto-resize" and got back to the standard behaviour.
For technical reasons, manual resizing doesn't work properly with auto-resizing
enabled - size is reset to standard on every input.
This patch comes from old svn reviewboard request 7065 and was not commited to
old svn repository because of svn to git migration.
REVIEW: 7065
CC
Merge branch 'mailfromdraft'
REVIEW:110994
Office
feature: Option to auto download from backend on opening file (default=false)
Allow Bibtex text to be drag/dropped on the main window to import
The importing is fragile. A Bibliography type collection must currently
be open and the bibtex text must be valid.
FIXED-IN: 2.3.8
feature: Import Microsoft Money documents (.mny) protected or not
Microsoft Money import
Multimedia
lyrics: Handle playback stoppage.
Enable audio/video with "audio"/"video" options
Removes the need to select a platform dependant aout module which may
or may not exist, or be present under a different name.
Added benefit is that decoding of unwanted track is skipped entirely,
whereas before we would decode but not render.
Networking Tools
Allow to specify whether we want HEX/Passphrase WEP key
Finish L2TP VPN plugin
Other
Merge the incoming and published info.
When posting assets we need to know if the asset has already
been published and the posting is simply to update some of its
info, or whether it's the initial posting of a brand new asset.
The latter case comes with lots of requirements (tags, previews
and filled fields in the assets table), the latter just lets
everything through (e.g. just the description could be set).
add table for partner services (social media, etal)
add a "Partner Manager" role
will be used to know who can assign people to different roles in the partner
Implement publishing.
With this we can create new assets, post assets (send them for a
review) and publish (for people who are validators). Updating of
existing assets works as well. Previews and tags are supported.
Implement posting of assets.
Currently it also does publishing, but that will be
separated to another process. Posting makes sure that
the asset is 'complete' and does a lot of processing,
e.g. generation of extra icons.
add in a warehouse cut
we now *require* a row in warehouses with the name of 'main'
also, pricing is now calculated as percent of final price rather
than a markup on base price. makes calculations and communicating
final results far far easier.
Optimization
Development Tools
Delay templates initialization
It doesn't make sense to go through all the templates when kdevelop is
started.
KDE-PIM
GUI: do not "load" messages when the viewer is not visible
The idea is to save bandwidth (and prevent marking message as read) when the
message pane is not shown.
Thanks to Vayu on the ML for his suggestion.
Thomas Lübking also provided a better way of checking the sizing and suggested
loading the current message when the widget comes back into view.
REVIEW: 110978
Remove inode/directory from MailCommon::FolderCollectionMonitor
Don't watch collections in KMail that KMail is not really interested in.
This should improve performance a bit and fix a problem, that removing a
completely unrelated resource (like Google Calendar) was totally messing
up KMail's folder view (usually leading to crash).
I assume this was added as a workaround for a bug in Monitor, that collections
trees where the root collection did not match the mimetype filter were ignored.
This has been fixed some time ago, so this is not needed anymore.
REVIEW: 109259
Performance improvements for the summary view.
Don't call eventsForDate() 7 times, uses incidences() then
timesInInterval() for recurring ones, which is faster.
IMAP: speed up the search processing when filtering messages
The old algorithm was rather dumb -- finding a first element of a QHash is not
O(1), but O(n), leading to quadratic time complexity, and the excess memory
traffic doesn't help either. On my laptop, this change changes cuts runtime of
the newly added test to ~280ms from the original 15+ seconds.
REVIEW: 110925
Office
Better performances in import of multi files (or from backend) by applying "search & process" rules only one time
Other
make testdata.sql a lot less painful to read and maintain
basically, replacing a lot of raw id's from previous inserts with
helper functions that look up the id by the name of the thing
also clean up the stored procedures created when finished
there are still some raw IDs in the file, but this is a big step in
the sane direction
Security
KDE-PIM
Show big fat warning that smtp password will be saved on disk in clear text
REVIEW: 110904
Other
Development Tools
Refactored the QtHelp loading so that it is not synchronous
As it was being done at the moment, we were calling synchronously the qmake
process from the plugin constructor. This was bad and had problems, like
the one discussed in the bug.
Some logic for the lookup is being removed as well, but it seemed like an
overkill to me, the first qmake should be already working. If that's not
the case we can iterate over it.
Educational
Move the coordinate conversion functions out of SkyPoint.
This commit is rather more monstrous than anticipated, since in
order to do this, we have to touch every part of the KStars code that
uses the conversion functions of SkyPoint. This illustrates just
how screwed up this class is.
The main problem that the SkyPoint has is that it's really three
points bundled together into one, with no synchronization between the
coordinates. The three coordinates (catalog, equatorial, horizontal)
are supposed to represent the same point in some cases, but not in others.
We can't just add synchronization, for example, because it would break
all of the things that rely on being able to update things independently.
But not having synchronization causes all kinds of position bugs, and
makes the code incredibly difficult to reason about as well.
I suspect that there are, amongst the various parts of the codebase,
incompatible expectations about how the class should behave (i.e., there
is no correct behaviour).
The other problem with the SkyPoint, of course, is that it confuses the
relationship between "has a coordinate" and "is a coordinate". This may
be related to the problems above.
When we reimplement the functions now in the KSEngine::Old* namespaces,
we will not repeat these mistakes. I intend to keep the coordinates to
just a POD quaternion, with one type for each system, and have all of the
functions be *functions*, not methods, whose output depends only on their
input and are side-effect free. This also means that we can actually
unit test them, since they will both a) have "correct" behaviour
and b) not require the entire rest of KStars to be running to operate.
Begin refactoring the SkyPoint class.
We want to simplify the SkyPoint class and remove all of the
computation methods. We're going to do this by converting them into
functions in the namespace KSEngine::OldPointFunctions.
Eventually, we'll be able to remove them all, but for now we're going
to move them out, so that we can work on them seperately.
This commit moves the updateCoords function out of the SkyPoint.
Unfortunately, updating the coordinates is done in three different
ways using virtual methods, so we can't just remove it. Instead, we
have to settle for removing the bulk of the computation.
KDE Base
Small parser and first 3 parse steps
The three steps present in this commit are:
* Recognizing integers and float values. If prefixed or suffixed by an unit,
the value is multiplied by the unit's factor.
* Recognizing type hints. If I say "mails", I want to match emails.
* Recognizing "sent by X" and "from X" forms, to filter the emails or documents
by sender.
Start getting gj and gk to work with (real, not converted to spaces) tabs. This requires us to change tack, slightly: we now work out the real column at the start of the current (possibly wrapped) line, and calculate the (real column) offset past this that makes the visual column equal to (or greater than, if necessary) the visual position of the sticky column.
Also, various renames, documentation, etc.
Add methods for setting window (and user timestamp) on jobs.
move jobs from kdeui to kjobswidgets framework
V2: fix issues from RR
V3: remove unused includes
REVIEW: 110845
Multimedia
Remove the splash screen, as discussed on the mailing list.
Reasons include: Splash screens are a bit outdated. It didn't work on
Windows. And in fact it didn't work at all, but noone noticed.
Networking Tools
Hide progress info, since the user does not need to
know we are querying for HTTP Headers
Use KCharsets instead of manually listing all supported encodings
Less translations for the i18n team and less code for us to maintain
Thanks to Pino Toscano for showing KCharsets to me
Games
Initial porting to QML implementation
Added QML classes with simple realization to /qml folder.
KReversiChip and KReversiScene classes were deleted.
Added import of declarative libraries and /qml folder install code to
CMakeLists.txt.
KReversiView was rewriten completely to be QML container, now implements
simple user interaction.
Some changes to mainwindow.cpp due to absense of scene class, we will
use only KReversiView now.
Added install instruction to /pics/CMakeLists.txt for *.desktop theme
file.