Issue 219
22nd January 2012 by KDE Commit-Digest TeamContributors
Jaka Kranjc
Mutlu Inek
This Week...
Statistics
Commits | 2844 by 197 developers |
Open Bugs | 21696 |
Open Wishes | 17178 |
Bugs Opened | 565 in the last 7 days |
Bugs Closed | 516 in the last 7 days |
Commit Summary
Module | Commits |
/trunk/l10n-kde4 |
370
|
/branches/stable |
114
|
/trunk/KDE |
59
|
/trunk/l10n-support |
39
|
/trunk/www |
25
|
/branches/KDE |
18
|
/trunk/kdesupport |
17
|
/generic/tools |
17
|
/dolphin/src |
16
|
/branches/work |
16
|
Files | Developer | Commits |
258
|
Gilles Caulier |
88
|
240
|
Albert Astals Cid |
80
|
171
|
Sebastian Trueg |
59
|
171
|
Jörg Ehrichs |
58
|
150
|
Yuri Chornoivan |
51
|
147
|
Roman Paholík |
49
|
141
|
Laurent Montel |
47
|
141
|
Dennis Nienhüser |
47
|
114
|
Laszlo Papp |
45
|
123
|
Milian Wolff |
43
|
Internationalization (i18n) Status
Language | Percentage Complete |
Dutch (nl) |
94%
|
Estonian (et) |
94%
|
German (de) |
94%
|
French (fr) |
93%
|
Italian (it) |
91%
|
Low Saxon (nds) |
88%
|
Danish (da) |
86%
|
Chinese Traditional (zh_TW) |
85%
|
British English (en_GB) |
85%
|
Catalan (ca) |
84%
|
Bug Killers
Person | Bugs Closed |
Jekyll Wu |
79
|
Thijs Heus |
58
|
Aleix Pol Gonzalez |
34
|
Peter Penz |
19
|
Anne-Marie Mahfouf |
17
|
Dawit Alemayehu |
15
|
Myriam Schweingruber |
14
|
Ben Cooksley |
12
|
Gilles Caulier |
12
|
Andrea Diamantini |
12
|
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 153 selections this week
Bug Fixes
Development Tools
c++11 support: properly report uses for lamba captures
Fix execute in external terminal for executables with spaces in path
FIXED-IN: 4.3
Don't leave invalid pointers on the proxyModels hash.
When a variable is empty, resolve it as an empty argument
Doesn't have anything to do with the bug description but
it's what was going on there.
request spell dictionaries with their full code (language_COUNTRY),
because this is the format hunspell/myspell have their dicts named in
Educational
Fix colors on graph3d
In some occasions the colors used in 3D graphs were NaN and some
opengl implementations drew it differently than others. Find a
common place where it always works.
Patch contributed by Nikita Skovoroda.
Ignore invalid turn points.
Most notably this happened when a route consists only of one large,
unnamed segment (Yours).
Do not delete plugin instances. Fixes segfaults with multiple widgets.
(cherry picked from commit 8f5d08a5d4dd8a78536327bd73ac170303655790)
FIXED-IN: KDE-4.8.0
instantiate event loops in runner plugins rather than in RunnerTask and instantiate runners in background threads
Instantiating the event loops in the runner plugins rather than in RunnerTask resolves weired usage of QEventLoop: The synchronous runners were finished before QEventLoop::exec() was called. Somehow the finished signal of the runners still managed to quit the loop, such that exec() wouldn't block. Until Qt 4.8 we might just have been lucky...
Instantiating runners in the background thread avoids thread affinity issues wrt. to QEventLoop. In particular, QEventLoop instances would block a background thread forever because calling quit() or exit() wouldn't cause exec() to return.
FIXED-IN: 1.3.0
REVIEW: 103711
Graphics
Qt decided to start passing invalid indexes to mapFromSource, do not crash on them
FIXED-IN: 4.8.0
Remove SuperImpose tool from digiKam image editor. This one been pretty old and used yet Qt3 support class.
PhotoLayoutEditor tool from kipi-plugins must be used now instead. Template support using SVG file have been
added by Lukas during Coding Sprint 2012 at Genoa. It will be avaialble for next release 2.6.0.
CC
CC
CC
CC
KDE Base
UserInfo improvements
- don't connect more than once, dataUpdated will simply not be fired.
Makes updating from previously loaded users work.
- layout and info improvements
- better sizing of avatar in posting widget
load svg properly, get pixmap and make the qlabel load it
it WORKS!! nice to see it finally coming together...still a long ways to
go though of course.
Avoid using a nested event loops for synchronous XMLHttpRequest by letting
Qt's networking code, which can block without a need for a local event loop,
deal with such requests.
FIXED-IN: 4.8.0
Make sure that paths selected via the file dialog are properly quoted. Since the
line edit expects shell-style quoting, this patch avoids file-not-found errors
when selecting a path that contains whitespace or special characters.
FIXED-IN: 4.8
REVIEW: 103602
kwin: fixing high cpu usage bugs
In some unfortunate situations it is possible that a window is deleted
before it is marked ready_for_painting=true. The last point is
especially troublesome for effects that reference the deleted window.
Many thanks to Elias Probst for all the testing.
REVIEW: 103733
user image fixes, user info improvements
- Avatars have rounded corners
- user info reloading is made possible
- more sensible error handling, prevents eating stupid data and
generating nonsensical network requests
Make PageUp/PageDown work in Dolphin's new view engine
FIXED-IN: 4.8.0
REVIEW: 103721
(cherry picked from commit e56a363aa6106477fa1577cb0b1bc2a6389910c8)
Use relative paths in config file
konsolerc uses in 'Favorites Profiles' and 'Profile Shortcuts' the full
path. Changing this to relative path (if in a KDE location) allows
one user can copy then to another.
FIXED-IN: 4.9
REVIEW: 102749
fix eject button
Disable smooth-scrolling dependent on the graphics-effect level
If the graphics-effect-level has been set to NoEffects (systemsettings -> Appearance
-> Style -> Fine Tuning), the smooth scrolling in Dolphin will be disabled.
Additionally the duration for the smooth-scrolling has been decreased from 200 ms
to 100 ms to reduce the lag.
A wrong calculation of the end-value has been fixed that might trigger
a wrong position of the content.
FIXED-IN: 4.8.0
Avoid using a nested event loops for synchronous XMLHttpRequest by letting
Qt's networking code, which can block without a need for a local event loop,
deal with such requests.
FIXED-IN: 4.8.0
Do a synchronous layout for dynamic item sizes when changing the geometry
This prevents a delayed update when resizing the window e.g. in the details
view. As no animated item position changes can happen for dynamic item sizes
the synchronous relayout is fine from a performance point of view.
FIXED-IN: 4.8.0
Fix the icon text misalignment with the focus frame on icon shrink.
Several fixes:
. make EncryptionManager::Private::terminateActivityEncryption()
asynchronous.
. add signal EncryptionManager::activityEncryptionChanged()
to inform the activity dataengine when encryption option changes for an
activity.
. fix removing encfs configuration file when disabling encryption.
. emit signals EncfsInterface::mounted() and EncfsInterface::unmounted()
. some small optimizations.
more layout and interaction improvements
If an item is clicked to trigger it, clear the rest of the selection
Note that the clearing is not done on mouse press, but on mouse release.
The reason is that there are situations when multiple items are selected
and pressing the mouse on one of them should not clear the selection
(e.g., drag and drop of multiple items).
REVIEW: 103703
FIXED-IN: 4.8.0
(cherry picked from commit 9f711b5f2e1d1fd856cd6b033e6adb96f9b46d8a)
Make sure that paths selected via the file dialog are properly quoted. Since the
line edit expects shell-style quoting, this patch avoids file-not-found errors
when selecting a path that contains whitespace or special characters.
FIXED-IN: 4.8
REVIEW: 103602
When populating the "Show Remote Encoding" menu, put the check mark besides
the correct saved remote encoding charset.
FIXED-IN: 4.8.0
REVIEW: 103730
(cherry picked from commit 8f231bd08134f7b1870a9c1747429c1b05174d62)
Do not make items invisible when turning off previews
This commit fixes a problem in KItemListView::doLayout(): This function
assumed that firstVisibleIndex is a constant.
However, if the view is scrolled to the bottom with previews enabled,
and then previews are disabled (and the icon size is much smaller
without previews), this function changes the scroll offset, which also
changes the the first visible index. Using the unchanged variable causes
trouble later on (i.e., it makes items which are actually inside the
view area invisible).
lastVisibleIndex is not needed before the scroll offset change and is
const after that, so its calculation is moved a few lines down.
FIXED-IN: 4.8.1
(cherry picked from commit cc8f5b4939062df44ce0bd314ac4ae04973b9830)
KDE-PIM
Fix X-MESSENGER-OAUTH authentication when token is expired
in parts(), add a crash guard against an empty KMime::Message payload
MERGE: 4.8
FIXED-IN: 4.8.1
Fix Bug 285879 - show preview for search results to avoid open each mail
separately
FIXED-IN: 4.9
Improve thunderbird filter import
Rework handling of connection failures, to fix crashes.
Testcase: unplugging my network cable, waiting for timeouts, plugging it
back again later, check mail.
* Port from deprecated connectionLost to stateChanged, which has the major
benefit of not confusing "failure to connect" with "we lost our connection"
(due to KIMAP::Session emitting both signals for compat reasons).
* Failure to connect is now handled in the result slot for the LoginJob,
rather than via the connectionFailed signal, since the first one is called
anyway.
* Make sure we emit connectDone on error, even if m_initialConnectDone is true,
so that the resource sets itself to offline (rather than it attempting the
same task over and over again!).
* Don't set the resource status to Broken when it's simply offline
(login failure due to "could not connect" is handled separately now)
* Make sure not to pop up a password dialog when couldn't connect; this
is different from "we could connect but the server refused login".
Requires kdepimlibs commit acdb0f7e50 for ERR_COULD_NOT_CONNECT.
FIXED-IN: 4.8
(cherry picked from commit 757f464e5de7f992d0bfcb90dc97d4ea40df47d5)
Bug 290050: Ensure that Akonadi resources exist for all alarm types
If no Akonadi resource exists for any alarm type (active, archived,
template) on KAlarm startup, create a default alarm calendar
resource. This ensures that if by error a calendar type is missing,
the user can still operate KAlarm without needing to manuallly
create calendars.
Fix Bug 287180 - Missing Server Side Subscription context menu
FIXED-IN: 4.9
"Enable Reminder for New Events" is only for *new* events.
Do not turn on reminders for existing events/to-dos.
kolab/issue4813
Office
fix zotero sync bug where the etag value wasn't updated correctly
Make printing not show textselections or formatting characters
Fix the heading numbering and roundtripping issue in
www.ivoa.net%2Finternal%2FIVOA%2FIvoaGridAndWebServices%2FVOSupportInterfacesMandatory-%30.26.odt that Zagge reported
Attempt to fix crashing bug in scanner dialog
The multi-threading in the KSane library can still cause issues
enough that I can cause a crash if I cancel/close/open the dialog
several times. But at least now it doesn't crash immediately
fix Fix wrong function type descriptions in tables/functions/*xml files
changed all int/IntType/Integer to the proper Type string Int + Bool to Boolean
REVIEW:103710
add blogpost, forumpost, webpage and fix some im/export errors with it
Check if the list is actually stored in KoTextDocument before accessing it.
Refactor the sidbarwidget. Widget will not be created again and again after the selectio nchanged
* Widgets will only be created on startup
* Added new widgets for the search result view, library view and mail view
* this introduce some problems with the qcompleter. they won't get updated anymore
Fix changing of anchor properties
This also makes it possible to undo/redo the changing of anchoring of shape.
It makes sure that all is done inside a command so that it is undoable.
This also fixes a crash that happens when you do the following:
- Open a blank document
- Type some text
- Insert a rectangle.
- Make it anchored to paragraph
- Undo until the rectange is removed
- Insert a new rectangle.
- Anchor it to the paragraph.
-> crash
Check whether we have an image before dereferencing
Everywhere in KisDoc2 we check whether we've got an image before using
except in these two places.
Partial fix: preview of shiva filters
Fix: image generator not being centered
use image bounds to set the IMAGE_WIDTH and IMAGE_HEIGHT values in the filter/generator.
Setting a Character Style on a selection had several flaws which are
all fixed in this commit:
- the paragraph char properties were not used
- edit protection was ignored
- selection spanning blocks need to take into account that the
blocks may have different parstyles
- inline objects and changetracking properties were forgotten
- Use KFileDialog::getExistingDirectoryUrl() instead of KDirSelectDialog::selectDirectory() which clearly has some platform issues on
Windows.
This results in the same behaviour on Linux but on Windows it means that the native directory selection dialog will be opened.
I think this solution is better then waiting for a fix in kdelibs on Windows for the following reasons:
1. In the docs of KDirSelectDialog::selectDirectory() it is stated that it's equivalent with KFileDialog::getExistingDirectoryUrl()
2. The native directory selection dialog works on Windows while the KDE dialog needs a patch to avoid an infinite loop (will contact the KDE on
Windows team regarding this)
Fix crash when preset is invalid
o sometimes presets might be old or corrupted and does not contain
defintion for KisBrush (e.g. current default preset for spray )
In that case use the KisBrush definition set by brush editor
GUI defaults.
o fixes crash when you start krita, select spray brush,
uncheck "Spray shapes", paint, crash
Don't transform the TextShape of a TOS
This fixes bug 291751 - Text in rotated Shape is rotated twice as much as the shape
The text is rotated with it's parent so it does not need to be rotated too.
Filterop: handle the case when the current filter isn't set
Fix that underlining of lines that don't have a natural break space will
have underlining of a char too little.
We also follow the MS convention to not underline blanks at the ned of the
last line (LO does)
simplyfy bibtex/nepomuk im-/exporters fix some bugs on the way
fix wave filter neededRect
- OFX files with UTF-8 data can now be imported correctly.
Construct all strings that are comming from libofx with the QString::fromUtf8() function.
Multimedia
Stop dragon from releasing the same inhibition cookie twice.
Thanks to George Stephanos for the patch.
REVIEW: 6888
Update playlist selection at appropriate time when text changed in search
When "show only matches" is enabled the listview tries to select the track
and emit a signal about whether or not it matched before the proxy timeout
has triggered the update. This happens to work anyway when additional
keystrokes are narrowing the results but causes problems when I typo. For
example, in my play list, "laz" returns 15 results and "lazz" returns 0.
If I then backspace the second "z", it doesn't select the top track and
the lineedit widget still appears in red.
This is a fairly direct solution: moving the relevant selection code to
the timeout handler with some member vars to store the required arguments.
If there's a better way to go about it please let me know and I'll try to
bring it up to scratch.
Author: Thomas Karpiniec
REVIEW: 101974
Prevent FavoredRandomTrackNavigator choosing files chosen very recently
Author: Brendon Higgins
FIXED-IN: 2.6
REVIEW: 101836
Fix crash in Meta::MediaDeviceHandler::setupAlbumMap() (my bad)
Thanks for your report,, I made a mistake when
refactoring other code in Amarok.
Hold a reference to the pipeline so that we may delete it behind our backs safely
Fix lyrics autorefresh in some cases.
There were some issues mostly when playing streams. Lyrics would stuck
with empty text and wouldn't autorefresh until the track was changed or
manually refreshed. That's because cachedLyrics() is always empty for
streams. Therefore it makes sense to additionally check if either artist
or track title have changed as well.
Author: Modestas Vainius
REVIEW: 102110
Networking Tools
Rework on load/stop/reload action
Also clean up API, giving proper names to method
updateActions --> updateHistoryActions
browserTabLoading(bool) --> currentTabStateChanged()
...
also workaround problem that m_progress is (yet) 0 or 100 when load started
REVIEW:103651
Move icon manager download system to QNAM
& Search also for favicon.ico files
This seems to be the unique method to surely workaround this bug
rekonq encounters when tries to load an unextant favicon with KIO (see
)
Tooltip manager should store QPersistentModelIndexes not QModelIndexes
fixes a crash
Consider also editable content
Correctly rejoin chatrooms on reconnect
Reviewed by: Martin Klapetek
Do not use null pointer when updating WirelessInterfaceItem.
Show APN string for the APN seleted by the user in Mobile Connection
Wizard.
Thanks Swami Dhyan Nataraj (Nikolay Shaplov) for this patch.
User Interface
disable enable parent widget update when hiding. This seems to prevent some
artifacts in e.g. amarok, or dolphin (to be confirmed).
Utilities
Fix memory leak. Keep list of mounted encfs directories until it is not
used.
Do not null the package pointer when hiding the changelog widget.
If it hasn't downloaded the changelog yet, it will crash when the changelog is downloaded.
FIXED-IN:1.2.95
Properly quote filenames given to dpkg, or else filenames containing spaces will be
improperly truncated, causing dpkg to fail.
Check if the ped disk could actually be opened before trying to destroy it.
Games
Fix "Check that file ends with a newline [endswithnewline]..."
Fix "Check for foreach loop issues [foreach]..."
Fix "Check for C++ ctors that should be declared 'explicit' [explicit]..."
Update to 3.0:
- cleaned up clock format editor;
- replace placeholders menu by dialog exposing some additional options;
- new placeholders, no longer based on strftime() syntax;
- added possibility to to use simple conditional statements and display results of script expressions;
- allow to override mode of possessive form of month name (using + or - infix);
- allow to show time from multiple timezones (displayed in tool tip by default);
- allow to display events (displayed in tool tip by default);
- allow to display only characters range of substitution;
- allow to access placeholder dialog from format fields;
- allow to toggle use of standard background;
- allow to embed clickable links;
- improved formats storage;
- some code cleanups and fixes.
Fix loading of games.
Improve sgf parsing.
Leave it to gnugo to figure out the number of moves.
This went wrong even with the examples we ship since they contain variations.
Display more of the properties of loaded games.
Clean up the loading/starting of games and move it to the same position as the
status docker.
Fix "Check single-char QString operations for efficiency [doublequote_chars]..."
Other
Added missing resolutions to Castilla Sky wallpaper.
Features
Development Tools
c++11 support: properly handle override token in parser
add context menu to breakpoint mark in kate icon border
Depends on the latest kate 4.8 version (without the menu will
not be shown)
Will not be in KDevelop 4.3 because of new strings.
c++11 support: first work towards proper DUChain integration of lambda expressions
- a lambda expression now properly gets a function type associated
- the lambda declarator now is represented by a function context
which gets imported into the body of the lambda expression
known problems:
- the surrounding context is still implicitly imported into the
body context
- the return-type is not properly computed in cases where no
explicit trailing return type is given but only a single
return statement in the body instead
- lambda captures are still not handled at all
Select pasted widget.
Support fancy features for list generator variables.
Among them now: proper content type support for list/dict generators:
d = [1, 2, 3, "foo"]
l = [item for item in d] -> list of unsure(int, string)
and of course highlighting of iterator variables.
add break on change action to context menu in variables tool view
Won't be in KDevelop 4.3 because of new strings
c++11 support: properly handle class-virt-specifier tokens in parser
show error in variables view when gdb returns an error
don't use the returned msg from gdb as it has no real value
and refers to implementation details
("-var-create: unable to create variable object")
Graphics
Make Okular inhibit sleep and screen power management when in Presentation mode
REVIEW:103713
(cherry picked from commit 1a31dffca9f8e446d61cf0ffd889000d491797ca)
Add fine-grained control over rotation behavior to MetadataSettings via a RotationBehaviorFlag field
use ProgressManager with Import Tool
KDE Base
Add an operation for accessing screen power management inhibition facilities in the power management engine
Muchos more work
- more fine-grained config reading: some values are useful without
others (especially password)
- Simplify Avatar internally
- Use it in more places
- Clicking on an Avatar loads the user profile into the UserInfo
Needs sebas/userinfo branch from kdeplasma-addons for new dataengine
features, esp. userinfo.
Added preliminary C++ extension plugin, fixed Messages.sh
Add an operation for accessing sleep inhibition facilities in the power management engine
use solid apis for DPMS service jobs
renamed operations to beginSuppressingScreenPowerManagement, etc. just
like their libsolid counterparts. also combined screensaver and
powermanagement inhibition, since they achieved a unified goal and don't
make sense apart.
TODO: add suppress sleep operation job, also see where solid can be
included further
Support extended mouse coordinates.
Using the legacy method, mouse coordinates can be reported only up to 223. If
you have a wider terminal, you cannot use the mouse in the rightmost columns.
There exist two extensions to overcome this problem, a broken one invented by
xterm (the "DEC 1005" mode) which is supported by xterm, urxvt and iterm2; and
a good one invented by urxvt (the "DEC 1015" mode), supported by urxvt and
iterm2.
Many thanks to Egmont Koblinger for report and patch.
FIXED-IN: 4.9
add powermanagement engine un/inhibit powermanagement functionality
note that it doesn't actually do anything useful. apparently this is a
bug, of which a GCI student is hacking on.
in theory it should work out of the box when it's fixed...if my d-bus
calls are great. (e.g. qdbusviewer calling pm inhibit does nothing
even).
so now my applet should be good to go, well..after this is resolved.
support suspension and shutdown from the lock screen qml
Add the ResourceWatcher interface and header
Copied from kde-runtime/nepomuk/services/storage/lib/resourcewatcher.*
The ResourceWatcher is used to update the Nepomuk::Resource cache
Implement editable text accessibility interface.
This allows Orca to read the current document.
Added modification methods to the ResourceWatcher connection.
Thanks to the smart design of the RW this was more than trivial. :)
(Port from nepomuk-core)
KDE-PIM
Add fetch progress statistics to the GAL.
Add support for blog mozilla variable
Office
Add spreadsheet handler.
docker now has KConfig facility and stores users preferences
Introduce a Page Layout tool
The tool is supposed to handle page setup, headers, footers etc.
This is based on initial work by Jignesh.
For now it doesn't do more than move the functionality from the
format menu to it's option widgets. But it does place the
functionality in the modebox, which is important so users will
not have to relearn how to do pagelayout in a future version.
Plans are for this tool to be for page layout as the paragraph
tool was for paragraphs.
add dialog to change the project settings, allow to delete project folder if not necessary anymore
Words Statistics Docker with Reformed GUI,ready for use
first somehow working version of lindenmayer brush
Added the CELL, SHEET and SHEETS OpenFormula functions.
Add kbibtex IngentaConnect search. Raise dependency to kbibtex rev1065
And finally, presentation handler.
UI restoration and testing remaining.
Add a basic gui for the character styles in the style manager.
We will want to revisit this whole dialog after release. But for now this will suffice.
feature: "Search & Process" is now working on comments of sub operations
Multimedia
Added fading animation to Play/Pause Button.
Change committed on behalf of Stefan Burnicki with the following comment:
Moved TimerCounter to separate files as it's very useful for animations as
the new one I implemented.
MetaFile: guess album artist as in SQL collection scanner, compilations
Call albumArtist = ArtistHelper::bestGuessAlbumArtist( albumArtist,
artist, genre, composer ); afer the data are read from file tags.
This makes album artist field consistent for tracks in Local collection
and tracks in file browser or drag & dropped to Amarok playlist, but it
has some downsides:
* Amarok will essentially lie about what album artist is assigned to a
track, most notably will replace empty album artist by track artist
and will replace "Various Artists" by empty artist.
* Editing album artist will be strange in corner cases: in particular
if user sets album artist to "Various Artists", it will be written
to file tags as-is, but displayed as empty album artist. Other case
would be when user sets album artist to empty string, but this is
currently prevented due to a bug/feature in TagDialog.
(every occurrence of "Various Artists" also accepts localized version
of the string)
Above change is needed for upcoming "MemoryCollection: use also album
artist as identifying key in album map" change for UmsCollection, but
if someone opposes, similar change can be made on UmsCollection level.
Also, implement MetaFile::FileAlbum isCompilation() which is now easy
as it can return albumArtist.isEmpty()
DIGEST: unify album artist handling in Amarok
Support Outline Processor Markup Language
MemoryCollection: use also album artist as identifying key in album map
This has some far-reaching consequences which I believe are only
positive, most notably Amarok is able to differentiate between 2 albums
with same name but different album artists in USB Mass Storage
collection and in "new" iPod collection. This unifies album artist
handling across MemoryCollection and SqlCollection, 2 major collection
storage implementations in Amarok.
Technically, AlbumMap is changed from:
typedef QMap<QString, Meta::AlbumPtr> AlbumMap;
to:
class AlbumMap : public QMap<Meta::AlbumKey, Meta::AlbumPtr>
with insert(), remove(), value(), contains() QMap methods hidden and
reimplemented for convenience and to prevent coding mistakes. (you no
longer can add album under wrong key)
This change is tested to work with new iPod collection, UMS collection
(depends on previous "MetaFile: guess album artist as in SQL collection
scanner, compilations"), all tests still pass.
Only area that received just very basic testing are online
service collections that are also affected by this change.
Docstrings and comments extended thanks to suggestions by Maximilian
Kossick.
DIGEST: Albums with same name but different album artist are now
correctly separated in USB Mass Storage, iPod and various
online service collections.
REVIEW: 103715
Networking Tools
Start of a log viewer
User Interface
Utilities
Add a manual distribution upgrade feature to the Muon Updater. If a new release is
available via update-manager-kde, you can initiate it from muon-updater.
Games
Add the landscape, portrait backgrounds and start using them
A +- -- icons/common/kanagram-chalkboard-landscape.png
A +- -- icons/common/kanagram-chalkboard-portrait.png
Other
Added missing resolutions to Flying Field wallpaper.
Added missing resolutions to Storm wallpaper.
Optimization
Development Tools
Made xmi loading more robust by adding guards to prevent cycles in uml objects.
There are still problems with cycles in UMLListViewItem::deepcopy(), which will be
addressed in an additional patch.
KDE Base
Use previewengine's on-disk cache to locally cache avatars
Much less traffic on startup, way faster loading, more responsive UI and
avatars shared with the resource widgets. Yay. :)
Avoid unnecessary animations when switching view modes
Thanks to Nikita Skovoroda for the initial patch and the analyses.
FIXED-IN: 4.8.0
Multimedia
Remove collections/db/DatabaseMeta.h entirely. Was unused.
Only ScanResultProcessor.cpp included the file, but it didn't really
used it. 570 lines of code less, yay!
DIGEST: optimization: Dead code removal
Other
Educational
Auto navigation in navigation activity
Move voice navigation generation logic to the lib.
Phonon related part remains in the routing plugin.
Graphics
Add New Items Finder progress information for ProgressManager.
Original code for Marcel use StatusProgressBar indicator. We can do better with ProgressManager now.
The goal is to remove definitivly StatusProgressBar from AlbumGUI.
Code to manage StatusProgressBar event from icon view still active for actions Captions & Tags. Still TODO.
NOTE : The progress indication in percents from ScanControler sound like completly crazy and not suitable as well. Why ?
Factorize sync albums metadata and batch sync metadata tool to just one named MetadataSynchronizer
Port this one to ProgressManager.
Note : this batch tool can be used to sync metadata to DB and vis-versa, for an image list, one album, or whole collection of albums.
Marcel : read Metadata from Images to sync DB is multithreaded, through CollectionScanner.
Write Metadata from DB to images is not yet multithreaded. Still TODO...
At least, only on implementation need to be mutithreaded in the future.
KDE Base
Use new icon for "Show in groups"
This allows adding the "Show in groups" action to the toolbar with
a nice icon.
More visual improvements
- Load placeHolderimage from the engine as long as we can't find the
userimage in the QVariantHash-Hash
- Display character counter in the textarea
- performance of textChanged in PostingWidget ++
Use KCoreConfigSkeleton argument type where possible inside the KConfigDialog
Use case: there are applications, like kanagram, which would be nice to have
running on several platforms, as in handsets; for instance Harmattan on N9. It
would be nice to use the same settings code generation in certain cases for all
the platforms. The additions of KConfigSkeleton on the top of
KCoreConfigSkeleton are the font and color settings which are currently not
used in couple of KDE applications. Hence, it should not be mandatory. The
kdeui module is unlikely welcome on mobile platforms, especially in appstores
with its sizes and complexity for no real need.
KConfigDialogManager has apparently already two constructors (ie.: the need
already arised previously for such an approach); one with KConfigSkeleton
argument type, and yet another with KCoreConfigSkeleton. It looks like a
situation where the KCoreConfigSkeleton version was added for good.
The KConfigDialog constructor does not handle KCoreConfigSkeleton argument
type yet; it has probably somehow been missed so far. Changing the current
constructor to KCoreConfigSkeleton usage is a good way because it does not
cause any API break; a simple recompilation is enough in client applications.
Started porting quicklaunch to QML.
Networking Tools
rekonq 0.8.60
This "release" contains last code merged and starts feature freeze
for 0.9.
Our technologic preview will be released in one week from now, to let
us start testing code a bit.
Please, take care of rekonq bugs in bugzilla, expecially the ones with
target = 0.9
Moved access keys activation to release key event
This to copy konqueror behavior.
Also added some kDebug messages to better work with the "key event"
features:
- vi-like navigation
- access keys
- autoscroll
User Interface
Oxygen Regular 0.1 test release
M +- -- Oxygen-Regular/Oxygen.otf
progress regular and bold
M +- -- Oxygen-Bold/Oxygen-Bold.otf
Games
Improve status display.
Remove widgets that suggest that they are editable,
add some graphics, make the status look nicer.
Integrate the old KSudoku and the new generator/solver more closely.
Both now use the same data structures for puzzle and solution contents. The SKGraph class is now the central data-structure used by views, generator, solver, save file, load file and manual puzzle entry. It represents the type, size, shape and rules of a Sudoku puzzle, either in 2D or 3D, and has been streamlined and simplified. The PlainSudokuBoard, RoxdokuBoard and SamuraiBoard classes that inherited SudokuBoard (the generator/solver) have been deleted. SudokuBoard now works entirely by using SKGraph.
Modularize the whole kanagram tree into engine, desktop and harmattan for now
1) All the relevant CMakeLists.txt files were refactored according to their new
tasks inside the relevant subfolders
2) FindKanagramEngine.cmake was added for find the functionality (library)
easily sinde the frontend codes.
3) There was a kanagramharmattansettings.kcfgc addition because we cannot go
only for KCoreConfigSkeleton usage because the KConfigDialog only accepts
KConfigSkeleton for the time being. It is not even fixable inside the KDE 4.X
series, just only for frameworks.
4) We now use the VISIBILITY option with the KConfig XT technology in order to
get the generated KanagramSettings class exported. Otherwise, it would not be
available for the frontends.
5) Messages.sh was also moved to the desktop frontend because that is now
available only. Nevertheless, it is better to keep a separate Messages.sh file
for each frontend to avoid the complexity in the future.
6) A typical "kanagram_engine_export.h" file was added for defining the export
and import symbols so that they can be used inside the game engine itself.
7) The previous kanagram.desktop file is obviously now being moved to the
desktop frontend folder since the Harmattan and other players are gonna have
such a file with distinct contents.
There are also other minor changes, but the codebase is now feasible for getting
used with other frontends easily. There are still tasks left, like making a
proper versioning for the shared library and so on, but it is better to apply
such patches in different commits since this patch is already very huge itself.