Issue 259
28th October 2012 by KDE Commit-Digest TeamContributors
Jürgen Appel
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 104 selections this week
Bug Fixes
Development Tools
Don't count the default parameters twice if getting the param count of a function.
Should now really fix that crash bug.
Prevent crash when opening the config dialog
When returning the additional plugins, make sure we're not returning a
null one. This can happen in case the builder wasn't found.
Fix C++ code completion bug: don't insert a ";" if there's already one
The functionality for that was there, but it didn't work since it
checked for the character at the position where it would be after
the text was inserted by the completion action, but before it actually
inserted that text.
Fix c++ completion bug: don't insert "::::"
If you have something like
Foobar::var;
then you replace Foobar by another namespace (or just complete
it again by pressing Ctrl+Space Enter with the cursor somewhere
in the word), then you would have two double-colons. This patch
fixes that and also adds a unit test to verify the changes.
instead of adding moved/copied item reload the parent
this fixes issues when inserting an item that already existed with the same name and KIO
showed the dialog where you could enter a different name - which we didn't know about
Bug fix not displaying widgets after load.
Graphics
Fix annotations bug
The annotations created in tiles mode were not shown unless the user
changed the zoom level.
Currently, after switching to ViewMainPage the next image is not preloaded.
This patch sets the preload direction to forward and triggers the preloader.
REVIEW: 106964
KDE Base
Fix KMimeTypeTest::testAllMimeTypes
Don't use QEXPECT_FAIL for mimetypes with possible conflicting defenitions.
That will cause the test to fail on clean systems without the conflicting
defenition in XDG_DATA_DIRS. Instead just skip the QCOMPARE for those mime
types.
REVIEW: 107006
Make sure deleted tabs do not reappear next time homerun starts
Note: previously deleted tabs which now appears empty will have to be
deleted again.
Give preference to x-scheme-handler over old-style exec=...
Otherwise apps cannot register themselves for protocols which have
an exec line (e.g. magnet.protocol has exec=ktorrent).
This fix comes from a discussion on forum.kde.org (t=107938)
Fix for #269530 Usage of QDir::separator() instead of regexp \/\\\\ for directory separtors. Not sure on windows, is it possible to have a file with a somehow escaped \ in the filename. This would still produce a wrong tree hierarchy
fix filtering, the inbuild delay make the filter lineedit not usable directly, if you want to have expanded results
fix typo that killed line continue behavior
this fixes that line continue messes with the highlighting stack
now it is "transparent" to the context stack
Check if referenced objects are valid
This kills plus 96c8478aef two ReferenceErrors I'm seeing when using
ListItems inside VisualItemModels (in this case, there's no view and
visual parent attached on creation).
REVIEW:106937
Fix KSystemTimeZonesPrivate::setLocalZone()
If the time zone file for the kconfig configured local time zone does not
exist in the kconfig configured zoneinfo directory, setLocalZone() would
set a time zone where isValid() returns true, but all time zone information
is garbage. This commit changes setLocalZone() to instead set the utc fallback
time zone as the local time zone.
REVIEW: 107038
tvdb/tvdb_mail can crash the pthon interpreter when the tvdb_api.tvdb_episodenotfound exception is raised
The tvdb python plugin seems to cause the KROSS::Interpreter to crash if tvdb_api.tvdb_episodenotfound is raised.
This happens when one asks for a episode number tha tdoes not exist in the season.
Current solution is to disable this explicit error and handle it like any othe unknown exception.
fix reload all when docs are modified
Thanks to Paul Eggleton for the initial patch.
REVIEW: 106383
remove ambiguous shortcuts
Ctrl+ and ctrl- are already assigned to zooming. Since zooming is more commonly
used, the shortcuts for the code folding are removed. The shortcuts themselves
were loaded/saved correctly, so bug 304326 should be ok.
fix java annotations
Patch by Vincent Ricard
Fix: crash of plasma during resizing of panel
There is a strange behaviour when width of arrow area may be set to zero.
If user resizes panel then plasma will crash (somewhere in QtDeclarative
and QtScript). There is more strange thing: before crashing of plasma
the systrem tray can handle items from other applets.
So, there may be better way to fix (or this is a problem of Qt) but
this workaround (this commit) really fixes problem I think.
simplify moveLinesUp/Down
All you guys having put time into fixing this: Can you please test this
implementation again? Thanks!!!
REVIEW: 106867
commit patch by Gerald Senarclens de Grancy
as requested by dh in bug 301162
fixes inconsistent behavior between move and duplicate line
Don't skip looking for duplicate glob->mimetype associations.
Skipping doesn't simply create a performance problem as I thought,
it actually creates a fake "ambiguity" ("more than one mimetype found for
this glob"), which leads to determination-from-contents.
Testcase:
kmimetypefinder kdeplasma-addons/applets/nowplaying/package/contents/ui/PositionSlider.qml
(any QML file that starts with a C-like comment)
with two lines "50:text/x-qml:*.qml" in /usr/share/mime/globs2.
I'll add a unit test in Qt 5 and fix the bug there as well.
Then I'll look into fixing the same bug in xdg-mime itself...
fix button order and button icon/size in save document dialog
thanks for hints
If an application has no generic name return the application name as the title.
In this case we return nothing as the subtitle. If the subtitle is the same as the new title, hide the subtitle.
This fixes a bug in which "Find Files" would show with a subtitle but no title as well as "Utilities" having a pointless subtitle
never remove trailing spaces on load
This was discussed over the years again and again, and we get bug reports
that criticize that files are modified directly after opening. From now on,
Kate only supports the removal of trailing spaces on save, and not on load.
, 239077
add some highlighings,
the others did have checkdtd problems or clash with variants in our git
Don't show an error if the user aborts saving of files on app exit, just return to the dialog. If saving fails, there are still some dialogs one after another, since they are from different levels, not optimal, but I don't have a plan to fix that yet
Fix for #280885. If a document saved, a name change is triggered. Don't remove the representing item from the view and edit histories, but replace it with the new item, therefore the highlighting is kept now
add KFileItem d-pointer checks
The default KFileItem ctor sets d to 0, so we need to check d for
validity to avoid crashes. This is based on similar code from QImage.
REVIEW: 106902
Do not try to insert a template into a readonly document -> 1) semantic issue 2) crashes -> should fix bug #284450
Fix performance issue with JPEG-2000 loader
Instead of reading each component value individually,
convert complete rows to a temporary matrix, and fetch
the values from there.
Additionally, make sure the QImage allocation succeeds.
FIXED-IN: KDE 4.9.3
Workaround for failed comparison of items in KFileItemModelRolesUpdater
The real fix is in the KDE/4.10 branch of kdelibs
(commit b8f64ca3f4b6311519c21046031d66d9d0a570c6). We work around the
problem that the KFileItem that a preview has been requested for is
different from the KFileItems in the sets m_pendingVisibleItems and
m_pendingInvisibleItems by refreshing those sets when we detect that
the bug has been triggered.
FIXED-IN: 4.9.3
Add *.svg graphics for arrow keys and tab.
Fix PowerDevil generateProfiles to properly detect if toRam is available
The problem is that the DBus interface of powerdevil is being setup AFTER
generateProfile is executed, so libsolid will fail to query powerdevil
for the available suspend methods because powerdevil haven't made them
public yet.
The approach in the fix:
There are many ways of fixing this, the simpler one is to execute the dbus registering before generateProfiles is executed,
the others are based on the same principle of moving the current code around to make libsolid work.
REVIEW: 106859
KDE-PIM
Verify payload type before calling Akonadi::Item::payload()
Apparently Akonadi sometimes sends us Item with an invalid
or empty payload, so direct access to it throws PayloadException.
The only place where we can't use hasPayload() is in itemRemoved()
since removed items don't have payload.
FIXED-IN: 4.9.3
Don't error out when CollectionModifyJob is simply sending "VIRTUAL 0".
If the collection isn't virtual, this isn't a change.
CollectionModifyJob is simply setting all existing attributes back.
This fixes CollectionModifyJob, which fixes the imap resource not being
able to store the uidnext value, so it was constantly re-listing folders.
(scary, when your inbox disappears, before it reappears...)
Start to fix Bug 309041 - Aggregation setting is not folder dependant,
only affects first tab
Now we apply setting to current tab.
Office
move the calligra specific headers out of the way so dox generation
on api.kde.org follows the default styling there.
Calligra people: please create a project Mainpage.dox with some useful
content so the top-level dox looks nice and gives an overview.
R +0 -0 doc/api/calligra-header.html [from: doc/api/header.html - 100% similarity]
R +0 -0 doc/api/calligra-mainheader.html [from: doc/api/mainheader.html - 100% similarity]
Fixed composite ops to handle destination with zero alpha properly
When alpha is zero the color channels do not matter. That is
(1,2,3,0) and (4,5,6,0) are completely the same colors. Our composite
ops knew about it but they didn't handle it properly when some channels
were disabled by the channelFlags. Now the channel is zeroed if it is
disabled and alpha mask of the pixel flipped to non-zero value.
Load 3d transform correctly.
Don't crash when moving layers
If the active layer is being deleted without telling the activeselection,
we get a crash when accessing the active layer.
Fixed loading of masks with the offset
That patch introduces the following changes:
1) Removed lazy initialization of masks' selection. Now you always must
call initSelection after the creation of the mask (probably, we can
move it into c-tor).
2) KisMask::setSelection must only be used when we need to switch the
underlying selection explicitly (like, e.g. in
KisImage::setGlobalSelection). In the rest of the cases you need to
work with already existent selection.
Fix issues from review, and going one step further and remove any trace of QTextCursor in the
KoTextRange API
By default Adjustment Layers should have COMPOSITE_COPY op
Otherwise it makes users perplexed with the result.
Fixed various unittests
1) Broken by yesterday's commit changing the interface of masks
2) Broken by KisPart2 port
3) FreehandStrokeTest -- updated images for Vc version of brush
4) Added barriers to KisCloneLayerTest
Multimedia
Fix autotrack motion_est param names
Fix crash when dropping clip in timeline
Networking Tools
Allow sending messages with the enter key as well as return.
Utilities
Add crash protection, use KUniqueApplication
- Add simple crash protection by storing a boolean value in the
settings, gets set to true on program start and false on
(successful) program exit, stays true on crash
- Use KUniqueApplication to prevent a second TimetableMate instance
to show the crash dialog, because another instance is running
- The crash dialog allows to not open previously opened
projects/tabs to prevent another crash
Features
Development Tools
Improve ParseJob API and push some common functionality there.
For one thing, we are now using IndexedString directly there instead
of KUrl just to convert it into an IndexedString afterwards again.
Futhermore there are two new helper functions that should reduce
some copy'n'paste code sharing between php, ruby, python, ... language
plugins.
Otherwise the ParseJob API is cleaned up some more.
Make a tuned-down implementation of the filtering feature i just reverted
It displays the number of filtered rows in the parent item instead of a new
item. But it works great now.
Ensure the old active document is still activated if you e.g. rename two files.
Otherwise we rely on the (random) order of files in the changes hash which
can easily break if you have e.g. foo.h and foo.cpp open (with .h activated)
and rename both. You always want newname.h opened, never newname.cpp.
Reconsider the way we add launch configurations
>From the Add button we'll always get a menu from which we'll be able to
create either a scripted or a native executable launch
Implement suggestions for the Plasmoid Launcher
This way you can get a list of all plasmoids in the project
Make it possible to rename files from a document change set
This is useful because it makes it possible to rename the file before
renaming the class.
REVIEW: 106316
Rename file if a class/struct with the same name as the current file gets renamed.
In order to not crash we must apply the changes in a delayed manner to
give the dialogs a chance to be destroyed first - otherwise we'll crash.
Also, the idea to create widgets on the stack is just insane...
Merged the ClassDeclaration and the ModuleDeclaration classes.
In the DUChain's point of view, Ruby classes and modules are almost the same
structure. The only difference is that classes may have a base class. By
merging both classes and adding a new "isModule" attribute to the data, we
are able to finally differentiate between both structures (previously there
were some crazy bugs for this topic).
Add a configuration dialog to the context menu of 'Open With'.
REVIEW: 106388
The Ruby::ParseJob class is now taking care of warnings from the parser.
In the RubyParser class some warnings may be raised when dealing with
version incompatibilities. In this commit, these warnings are finally
written in the DUChain.
Refactor OpenWithPlugin.
- Cleanup code
- fix memory leak of config dialog
- sort actions
- prefer embedded parts over external apps
Implement tag and revision options for git modules.
This makes the 'tag' option allow for checking out a given git tag for a
module (which is enforced by using refs/tags/$foo when passing to git).
Additionally, the 'revision' option has been adopted for git modules as
well, to allow for checking out any other git "tree-ish" that git
supports (i.e. anything supported by 'git checkout $foo').
Both options should leave the source directory in a detached HEAD state,
although kdesrc-build will adapt as necessary with each source update.
The auto-stashing is still attempted for both types, and a failure to
apply an auto-stashed change will cause the module to fail to build.
Ensure you're in a clean working directory if you want to avoid issues
due to this.
The test suite continues to pass (not that it's very extensive).
FIXED-IN:1.16
add bookmarks functionality to Filesystem toolview
inspired by kate
make the python3 stuff build, and attempt to fix some crashes
Improve the native app job error reporting
At least, make it possible to figure out if it crashed, failed or finished
successfully
Educational
Have Marble registered as handler for application/x-gpx+xml, application/x-osm+xml, application/x-esri-shape
To have Marble registered as handler for application/x-esri-shape only if the related plugin
is installed, separate desktop files are installed for application/x-esri-shape, following
the advise given in http://lists.kde.org/?l=kde-devel&m=135083816331959&w=2
REVIEW: 106977
Thanks to Torsten for review
Initial version for documentation widget.
This widget provides initial support for the online version of
the Rocs handbook and by this to the data structure plugin
commands. In the future, this plugin must be extended with
native support for scripting engine documentation.
drop hard dependency on X11
The keyboard layout detection depends on X11 and because of that
KTouch couldn't even build on other platforms. Now we provide a menu to
manually configure the keyboard layout on those platforms.
It's accassible via the main menu in the spot there on X11 the menu
entry to configure the system's keyboard layout would be. That one
would be defunct on other platforms anyways.
Migration of graph editor toolbars.
This correctly sets the toolbars to the left and helps users to
migrate to the new layout. For this the config file stores the
value of the Rocs version it was opened by, last. If this value
is below a specific threshold we now can perform automatic
migrations.
Graphics
compile if Exiv2 is do not support XMP
FIXED-IN: 3.0.0
KDE Base
Make iconName() virtual so that it can be determined on demand.
Right now kuriikwsfilter.cpp loads all the icons for all the search
providers upfront (see the call to setIconName), leading to lots of
dbus calls to the favicon kded module, even when simply selecting text
in konsole... It would be much more efficient to do this on demand
in KUriFilterData::iconNameForPreferredSearchProvider, i.e. only if a match
was found and only if the app cares for the icon.
Not sure how to fix this in KDE-4.x though.
KATE & KWrite show [read only] in the caption if a document is set read only. Perhaps kdevelop should do the same. The KTextEditor::Document has a new signal readWriteChanged(Document) which is emitted if the state changes. It should be used together with the related KParts functions
New Maximize Window Effect
Animation for going from restored to maximized and vice versa.
FIXED-IN: 4.10
REVIEW: 107050
ResourceIdentifier: Properly implement storeResourcesFlags
The flags did not follow what the documentation specificed.
Additionally, the IdentifyNone mode ignored the nie:urls, which often
results in multiple files have the same nie:url. This is wrong.
Also, in the IdentifyNew mode, the exists(..) check would run twice,
which results in an extra useless query.
Allow using space bar key to open menus in QML shutdown dialog. Use ENTER
key to trigger the selected menu item.
FIXED-IN: 4.9.3
implement remove-trailing-spaces-on-save as combo box
options now are:
- Never
- Modified Lines
- Entire Document
This works now thanks to the Line Modification System. I.e. all lines,
that are were touched during editing (green or orange vertical bar), are
cleaned up. This now reflects the "remove trailing spaces while editing" option.
todo: implement better way in the modelines, while staying compatible if possible
Finished porting KIO away from KUrl. Woohoo.
Shorten Comment in desktop files of autostart kcm and solid actions kcm.
They are shown as title in the KCM and so there is no need for "A tool for..."
REVIEW: 106865
use fontmetricsF
that fixes positioning (and using qreal for calc)
new style without dotted lines is wanted
dirty version to pass QActions to QML runtime
This commit contains a few tries to pass QList<QAction*> and
QDeclarativeProperty<Action> across to the QML runtime, both fail (only
one item gets shown, and it's empty).
The working solution is to pass a list of strings with the action texts
to the ListView as model, and set the actions through a QAction*
toolAction(QString) from the containment. This lets us access text, icon
and trigger() of the action.
AppletContainer binding for containments
This adds a class to manipulate applets in more detail in context of
containments. The type will only be available from Containments, not
Applets or PopupApplets.
This binds the necessary functionality of Applets to build fully
features containments. The code has been moved from MobileComponents,
untangling another piece there and putting the functionality where
it belongs, into the specific component type bindings to allow this
functionality also outside of plasma-mobile and further reduce the
delta between the shell implementations.
REVIEW:106817
implement modeline remove-trailing-spaces
keep compatibility of replace-trailing-spaces-save and
remove-trailing-space as good as possible. However, warn
the user on the console if the deprecated stuff is used.
Merge branch 'nicer-available-source-items'
KDE-PIM
Support read-only Google calendars + bump LibKGAPI dependency
Make collections representing read-only Google Calendars read-only.
This requires LibKGAPI>=0.4.3 otherwise all calendars would be
read-only because of a bug in previous versions of LibKGAPI.
Office
disable Voice combobox in SimpleEntryTool for Music shape for now (otherwise crashes)
The SimpleEntryTool just has 4 voices preset, without synchronizing to the
actual part, which results in a crash if another voice is selected there.
Do disabled until the support for voices is complete.
REVIEW: 105674
Thanks Boudewijn for review
Move the theme manager to KoMainWindow
This makes per-app theming available to all Calligra applications, makes
sure the initial dialog is themed as well and finally avoid a nasty
problem with some styles where the menubar and toolbar aren't themed if
they aren't created after the theme is applied.
Add the following enhancements to videoshape
1) Enable videoshape in Words
2) Add playback controls to Video playback(Volume Control, Playback seeker)
3) Ability to save video within ODF documents.
4) Ability to change video of a video shape
5) Ability to play the video from the video tool
6) Thumbnails for videoshape(using phononexperimental api's)
Tables/Forms: show indication that edited or pasted text is trimmed
REVIEW:107068
DIGEST:Kexi shows indication that edited or pasted text is trimmed, more at http://blogs.kde.org/2012/10/27/kexi-26-text-trimming
Multimedia
ScanManager: better dialog on collection scanner errors
We now link to http://userbase.kde.org/Amarok/Manual/Various/TroubleshootingAndCommonProblems#Duplicate_Tracks
and format the message much more nicely.
FIXED-IN: 2.7
move playhead to mouse curser position if p key is pressed
when dealing with multitracks and different tools it is handy beeing
able to align the playhead to mouse position by pressing a key.
hopefully now all kde scm/qm rules are satisfied for pushing
Networking Tools
Use option's palette instead of storing app's palette in class var
Reviewed-by: Rohan Garg
REVIEW: 107008
Rekonq reports the open/close document events to activity manager daemon.
By knowing which window contains which documents and which one is in
focus, we can do the following:
- collect the statistics about visited pages. Further, this provides a
score for each document visited, that depends on the number of times it
was open, the time the user spent on that location, and the time passed
since the last visit.
- availability of a global/workspace applet that allows sharing the
current document via e-mail, social networks; bookmarking and rating the
link, or connecting it to the current activity. (advantage of this is a
unified UI for sharing/rating/linking that works with any
application)
- jump-lists (not impl. yet in plasma) to list top rated documents on a
launcher icon or in the task manager applet
- krunner can sort the documents based on the score
- more things that I haven't thought of yet
There is no need to *use* ativities to have these benefits. Activities
just serve as manual data clustering to provide more useful scores
compared to the one-activity approach.
REVIEW:106912
Utilities
Replace QMutex to protect QScriptEngine with QSemaphore
- Replace QMutex with QSemaphore to protect access to the QScriptEngine
- It is not used like a normal mutex, ie. gets locked/unlocked in
different functions (to lock while the engine is evaluating)
Optimization
Development Tools
Improvements on the launch configuration dialog
- Fix a meomry leak with the stack widget
- improve size hints (avoids flickering)
- some polishing
Remove the ExecuteScriptOutputModel.
It didn't do anything besides a bit of filtering, which is now also
provided by the KDevelop OutputModel. Thus, there's not really a point
in keeping it.
Adapt to KDevplatform changes.
Use IndexedString instead of KUrl in some places, use new helper functions
where appropriate to simplify the ParseJob::run implementation.
Remove dependency to plasma.extras and the Heading component
It's not available in KDE 4.8 which quite some people are using
Before sleeping in DUChain::waitForUpdate, trigger a call to BackgroundParser::parseDocuments.
This greatly improves the performance of unit tests like e.g. Ruby which rely
on waitForUpdate. If this is not done, than you'd e.g. wait the default of 500ms
before documents are processed and then wait one second more again...
KDE Base
Call Editor::readConfig() with KGlobal::config() as parameter only once
Consider two KFileItems 'equal' if they share the same URL
Up to now, KFileItem::operator==(const KFileItem&) only returned true if
both items shared the same d pointer. However, the implicitly shared
d pointer is an implementation detail of the class, and making the
comparison depend on it might not be expected by the developer using the
class. Fixes a problem in Dolphin, where the unexpected outcome of the
comparison caused permanent high CPU usage.
Resource: Avoid running event loops for the jobs
Event Loops cause all kind of problems. It is better to block for that
small amount of time, than to run an event loop.
Eventually, these dbus calls should be replaced by socket calls.
KDE-PIM
Don't always recompress contact photos when saving
The patch from RB did not apply cleanly so I had to hand-patch
in a few files. I hope I didn't screwup.
Thanks for the patch Sebastian!
REVIEW: 106745
FIXED-IN: 4.9.3
Office
Optimized Vector Composite Over to special cases of alpha
Alpha: 255 and 0 are too common in Krita, so these checks do really
good work.
Now some of the Stroke Benchmark execute 10 or 20% faster. For others
there is no change.