10th June 2012by KDE Commit-Digest Team
|Commits||2595 by 176 developers|
|Bugs Opened||438 in the last 7 days|
|Bugs Closed||419 in the last 7 days|
Internationalization (i18n) Status
|Brazilian Portuguese (pt_BR)||
|Low Saxon (nds)||
|Chinese Traditional (zh_TW)||
|Jeroen van Meeuwen||
There are 78 selections this week
Improve favorite mode.
Previously the favorite only mode was implemented by each plugin on its
own as a filter on the bbox selection. This causes a huge overhead in
network requests (most of the data is filtered) and prevents retrieving
all favorite item data at once (without artificially creating bbox
requests). Now the favorite mode is handled by the base plugin directly,
which prevents all bbox queries in favorite only mode and instead queries
the item data directly from the plugin, which only has to implement direct
access to (download of) item data.
Do not remove comments from script before starting engine.
The include-script method removed all comment lines before the script
file was given to the engine. This caused that the line numbers of
script errors, possibly given back by the engine and displayed at the
debug output, were wrong.
This partily fixes the problem for script files _without_ includes.
Fixes in presentation page switch logic
Do not assume that oldPage == m_document->viewport().pageNumber, because
it's false if we are processing a viewport change notification.
It caused presentation drawings to turn into persistent annotations,
when switching page from the main okular window.
In general, this patch also tidies up PresentationWidget::changePage a bit:
- Removed redundant checks: they are always true
- Removed duplicated code that performed the page opening actions:
Previously the first slide and the other ones followed different code
paths, both doing the same things. I unified them.
I also changed slotNextPage so that it never sets m_frameIndex = -1, because
it confuses changePage and makes it skip page closing actions.
Change orientation when inside an applet automatically
Change the orientation to occupy minimum visible area
on the panel
Set a minimum and a default size when the battery
monitor is on desktop
Hide "Recently Accessed" and "Search for" if indexing is disabled
The bookmarks for "Recently Accessed" and "Search for" require
enabled indexing not only an enabled Nepomuk.
do not clear the applet list since the code relies on that to remove / add entries
fixes a regression introduced in 6c7cf245
Folders Panel: Also count directory links
... otherwise no expansion toggle will be shown. The implementation
is a compromise between performance and correctness: If the directory
contains links that are not directories, an unnecessary expansion
toggle will be shown. But this is better than showing no expansion
toggle in case if the directory contains links that point to other
Update init process's total cpu
This bug caused the problem that the summary of cpu load never stopped increasing
Inline renaming: Improve focus handling
Fix issue that cancelling the inline-renaming by clicking
on the other split view applies the wrong focus.
Thanks to Frank Reininghaus for the initial patch and noticing
Fix launching KCM from settings:// kio slave
Do not ask for confirmation of closing when logging out.
This effectively reverts the change which was made to ask for
confirmation when powering off. That issue needs to be reworked in
next feature release, but for now just revert it since the current
implementation should cause more annoyance than benefit.
Bug 285153 - kmail2: missing filename entry in message body after
Fixed as on thunderbird.
Fix Bug 301152 - Kontact - Personal Information Manager has been
too late for 4.8.4
Parse OAuth code from page title instead of body
The OAuth code used for obtaining access tokens is provided
in webpage <title> as a string. The title is guaranteed not to change
syntax, while the body of the page, from which we were parsing the token
before, can change anytime, which breaks the authentication process.
Fix Bug 290150 - When filter action "Set Reply-To To" executes on an
email which has no "Reply-To:" header, KMail segfaults
opengl canvas: use the float and half texture formats correctly
This enables the exposure shader; it also means that the hdr colorspaces
don't use the monitorprofile. (I bet those bits of the code were never
Remove connection shape from "add shape" and Flow's insert thingy
ConnectionTool is supposed to be the only way to create connections
KexiDB: Remove limits for Text data type, leave as option
Now: by default there are no limits in Text data type
Relayout footnotes in an even better way.
Also move the hardcoded constant for contiuned notes to
KoTextDocumentNoteArea.cpp and #define it
Finally the overlapping of the continue notice with text was actually a bug
in KoTextLayoutObstruction (it's still not completely right)
Improve hovering over footnotes/endnotes.
This also removes a lot of Qt warnings about QTextCursor::setPosition out of bounds
Save the shortcuts in the krita.rc file
This has two advantages:
* krita now can remember the shortcuts of the user even if they install
a new version of krita with a higher kritarc version number
* for plugins, where kde tries to save the shortcuts to the installed rc
file (like /usr/share/apps/kritaplugins/modify_selection.rc) instead of
in a .kde rc file, we save and restore the shortcuts correctly.
Disadvantate: KDE natters on startup that setShortcut is used on a QAction
that's a KAction.
Fix bug 301326 - Export to pdf does not respect reports page layout
Make sure we draw the caret when in footnotes correctly.
This actually uncovered a big problem with rootAreaForPosition
I was able to work around using that method, and in the responsivenes branch
I'm working around it for updating too, which only leaves some variables
Fixes: have page navigation actions updated on setting a page by number with the KoPageNavigator
all other navigation code also sets the active page via KoPAViewProxyObject::updateActivePage(...),
not with KoPAView::setActivePage(...), as only that updates the navigation actions
okay'ed by Thorsten
Set limit to 255 for Text type in MySQL Driver
*set limit to 255 characters for Text type (VARCHAR)
*call "SET SESSION sql_mode='TRADITIONAL'" on opening database - needed to turn warnings about trimming string values into SQL errors
*practical solution for 'Kexi shows no indication that text is trimmed' bug in case of MySQL: error is displayed eg. "Record inserting on the server failed.Message from server: Data too long for column 'hn' at row 1. SQL statement: INSERT INTO table4 (hn) VALUES ('...................'). Server result: 1406"
More info on VARCHAR support in databases: http://www.ispirer.com/wiki/sqlways/mysql/data-types/varchar_n
Make sure we create extra pages when footnote continuation requires it
And fix a crash in the process, in fact the entire code was wrong
Also renamed a method to be slightly more telling
: 'To Account' of an existing money transfer is displayed incorrectly in edit area
fix separating a path into its subpath
do not use the buggy KoPathSeparateCommand, rather create
a macro ommand using alreday existing create and delete commands
IpodCollection: don't crash when ejecting while the db is being written
Piotr, I think this solves your crash, can you please pull, rebuild &
re-test? Let me know whether the crash is fixed or not.
Amazon store: several fixes related to the config
* trivial code cleanup
* do not attempt to query the store if there is no valid config. I missed
a corner case there
* correctly write the config if the user just presses OK when being
presented our best guess. this is the ugliest hack I have ever written.
Isn't there a better solution?
IpodCollection: prevent crash on early disconnect and double-freeing
We were deleting Itdb_Playlist's twice, once in itdb_free and for the
second time in IpodPlaylist::~IpodPlaylist. Ensure we delete it only in
the second call by using trick we already do with tracks.
Also, try to prevent crashes when IpodCollection is destoryed while
IpodPlaylistProvider is still in parseItdbPlaylists() (needs testing)
ContextView: fix crash in addCollapseAnimation, dedicated to Mamarok
With some gdb fu, I was able to investigate that the root cause of the
bug was invalid static_cast<>, I wish static_casts were (almost) never
used in Amarok.
This crash-fix is a day-late present for Myriam Schweingruber's
birthday - cheers, Myriam! :-)
[this crash existed (in its current form) since at least 2011-07-14 as
reported by Marian Kyral. We thought we have fixed it already, but we
have in fact just reduced its probability by defaulting to a different
configuration wrt collapsing applets. My last patch touching this
7ff8068a993b3ef08 was rather a blind guess and debugging patch than
a real fix.]
CCMAIL: Myriam Schweingruber
DIGEST: Amarok crash-fix, please mention dedication ;-)
fix crash due to wrong placed return
always returned after fist append. this in turn caused the pending buffer
to be no longer a multiple of the channel count ultimately leading to
a mismatch between per-channel buffer sizes (as catched by the
assert introduced 2 commits ago)
IpodCollection: finally safe solution for crash on early eject
We now (asynchronously) wait for the job that parses iPod tracks and
playlists before destroying IpodCollection.
Other change is that we factor playlists parsing into
IpodParseTracksJob, it really belongs there. (previously it was just
called from that thread and it made false impression that the method
is only called from the main thread)
Apply update from QtGroupingProxy.
commit 42febf5 from https://gitorious.org/qtgroupingproxy/qtgroupingproxy
Call endRemoveRows in reverse order as begin...
This is a hack, because beginRemoveRows() should always be followed
by endRemoveRows() before the next remove. But since QAbstractItemView
uses a stack to apply changes it works with those. Might break proxyies
Fixes QVector crash in QSortFilterProxyModel with Qt debug builds.
IpodCollection: Don't hit ulimit -n when copying covers
This was because QTemporaryFile holds its file open. It cannot be
forced to close its file, so use slightly more dumb solution.
Read year on Musicbrainz lookups
Add code for reading the year when looking up releases from Musicbrainz.
Added a test-case (musicbrainztest-fulldata), where the date
is "2011-04-29", which should be parsed as only "2011".
Also, while adding the test case, I ran into a bug, the titles
and track artists were always taken from the recording, while
ones from the "release credits" are preferred, fixed this as well,
and updated the other tests to reflect the fixes.
Handle sound systems when libVLC gives no devices for them
libVLC offers an empty device list for sound systems such as OSS. Create
a default device for the sound system in this case.
Additionaly, if multiple sound systems are found, return devices for all
of them, not just for the first one.
Thanks to Franz Fellner for reporting the issue.
Signed-off-by: Harald Sitter
Ignore focus when picking the color role.
This was a vestige from when the color group wasn't taken into
account (where focus does matter) and broke color selection with
"Inactive selection changes color" disabled in System Settings.
Fix showing the away overlay icon in the nicklist What's This.
Also lays out the text a bit nicer and makes the code backing the
tooltip a little less batshit insane.
It would be nicer to show a blended example, but stuffing the
blended pixmap into a temp file to be able to access it from HTML
isn't worth it. Once more I wish the resource system could register
content dynamically at runtime.
Unbreak build without QCA2.
Made multiline LaTeX code work; fixed context menu for text+latex entry
Made note widget text editable through doc window.
This also fixes doc window related inconsistences after selecting note widgets.
Have .qml files and similar appear in QtCreator projects
Uses a dummy target to make cmake aware of additional files which need
no build step, but still should appear in project files. This results
for example in .cbp files listing those files in Unit tags, which are
then picked up by QtCreator.
Support layers where both data and rendering are done from QML
Think of it as a QML (List,Grid)View where the layout is defined
by the geo position of the items in the model (instead of their
order transferred to some grid).
Based on a patch by Anton Chernov - thanks! Please see
examples/qml/data-layers/ how to use it. Basically you append one
or more DataLayer items to the dataLayers property of MarbleWidget.
Each DataLayer has a model property (use e.g. a ListModel), where
the lon, lat properties of elements define their geoposition. Optionally
the alt and identifier properties can be set. Those and all additional
properties are available in the qml context of each delegate (assigned
to the DataLayer via the delegate property). The delegate can be any
Make it possible to type a page number and press enter in Print Preview
Do not close Print Preview if enter is pressed
Allow Pate plugins to add confi pages to Kate's settings.
1. Add support to the Engine and to the kate module to allow modules
to decorate functions as returning config pages. Also a small further
reorganisation of the save/load configuration logic.
2. Hook the above up through the Plugin itself.
Initial commit of a shiny new sample plugin
A plugin for the GNU idutils lookup function, intended as a functional
Initial work on the PPD model to support recommends drivers
Add "?" binding
Pressing "?" in vi Normal mode starts a search.
initial commit of Script IDE
Add powerdevil activities settings in battery
monitor's settings dialog
Added hidden configuration option to enable/disable closing windows by clicking on menu button.
Option is called "CloseFromMenuButton"
It is false by default.
To turn it on, add
in [Windeco] section of $HOME/.kde4/share/config/oxygenrc.
Note that it results in poor usability of the menu button, if enabled.
Finish features for a non editable view of Animations
- Synchronize shape selection with Animations Time Line View
- Update Time Line View if a shape is removed from current page.
- Store presentation-preset tags in KPrShapeAnimation.
- Save presentation-preset tags in ODF document
- Set order numbers on Time Line View depending on the node-type (trigger
- Read begin and end time from animations and set length of time bars
- Informative features (not edition) in Animations Time Line View almost
Make ui and a ClipCommand to create (or remove) contour data by
analysing the image data and trace an outline around the actual contents of the image
Use the rendering intent setting for displaying the image
Instead of relying on the implicit conversion inside bitBlt, which uses
INTENT_PERCEPTUAL by default, convert the bytes ourselves. This might
even give a small speedup since we call the conversion method only once
It also makes it possible to use different ways of convering the
projection bytes, for instance with opencolorio.
Adds: a page/slide navigator control for the statusbar, used in Stage & Flow
it has 2 states:
in first state it displays
* type of slide/page (incl. if Master one)
* the number of the current page/slide
* the number of the page/slide count
in second state it offers control to
* go to first/previous/next/last slide/page
* go by entered number to slide/page
operator selection added to have more than one filters
KexiDB: Add option for setting default length limit of Text values
*Added maxLengthIsDefault property of table field for Text types to extended schema
**stores a hint that limit comes from default setting
*Added DefaultMaxLengthForTextFields config in Tables group
**specifies default maximum length for fields of type Text
**0 (the default) means unlimited or up to engine's limit
DIGEST: Kexi gets option for setting default length limit of Text values
mount blurayrom devices to check for blurayvideo
due to DRM libblueray only plays mounted disks, and solid fails to
detect them as video completely, so this approach should(tm)
make it work
dragon now mounts blurays and checks if they are video, if so it
wants to play them...
New KDevelop-like TimetableMate GUI, update accessor file format, fixes
(Too) big commit, much code moved from TimetableMate to new files for
docks/tabs and a new Project class, improved GUI, etc.
- Much improved TimetableMate GUI, more KDevelop like
- Move Debugger code to subdirectory "debugger"
- Add dock/tab base classes and derivates for all available dock widgets
and tabs, in subdirectories "docks"/"tabs"
- Allow multiple projects to be opened in one TimetableMate window,
add a Project class and a ProjectModel to manage multiple projects
- Update TimetableMate XML GUI, menus of the kate part are now separated
from own menus like in KDevelop (copied some lines of code)
- Shortcut clashes with the kate part are now solved by using an own
katepartui.rc, which removes shortcuts from actions in the kate part
that are also used by timetablemate (the same way KDevelop does it)
- Opened projects and tabs are remembered when TimetabeMate gets started again
- Add preferences dialog, currently only one option: "Restore Projects"
- Add fixed dock toolbars to toggle the shown dock for the left, bottom,
right areas (like in KDevelop), add "shown docks" context menu
- Move much code from class TimetableMate to the project/dock/tab classes
- The new Project class provides actions (Project::ProjectAction),
it manages a set of actions internally (created when needed) and allows
to create and connect external actions. This makes it possible to create
project actions for the main window and connect them with one project
at a time (this one project is the "active project")
- Use KMessageWidget when the status bar is hidden
- Add new docks:
ProjectsDockWidget (visualizing ProjectModel)
TestDockWidget (visualizing TestModel)
WebInspectorDockWidget (showing the QWebInspector for web tabs)
NetworkMonitorDockWidget (visualizing NetworkMonitorModel)
- ProjectModel manages opened projects, makes sure that one project is
always the "active project", ie. connected with main window actions
- TestModel provides a set of test cases with tests, results are
visualized by TestDockWidget, tests are started from class Project,
can start individual tests/test cases
- NetworkMonitorModel collects all network requests and replies for the
QNetworkManager used in a web tab, NetworkMonitorFilterModel can filter
by type (GET/POST/reply) and content type (eg. html/css/images)
- Add new overview tab, written in QML, using Plasma Components,
works great with the new Project class
- New mime type "application-x-publictransport-serviceprovider"
for PublicTransport engine service provider plugins, ie. "accessor XMLs"
- Add "operation" argument to TImetableMateHelper to allow to specify
if a project should be installed or uninstalled
- Add actions for uninstallation of projects
- Improve about dialog, add translator about data dummy strings
(to be "translated" with translator names/authors),
add OCS username to aboutdata, replace "(c)" with "©"
- Changes in the Debugger:
- Add signals waitingForSignal() and wokeUpFromSignal(),
emitted when script executions waits for a signal to continue,
previously stopped()/started() signals where emitted instead
- Add statistics to the stopped() signal, eg. execution time
- Use new debugger models with thread safe handling of changes:
BacktraceModel, BreakpointModel, VariableModel
- More control over jobs running asynchronously in the Debugger,
can enqueue/connect jobs of base type DebuggerJob
- Use ThreadWeaver::ResourceRestrictionPolicy to control jobs,
ie. only one job can run in the debugger at a time, but if
a running job is interrupted, one job can be run in the current
- Add parent argument to TimetableAccessor constructor, make m_info member
completely constant (const TimetableAccessorInfo *const)
- Fix changelog version comparison
- Add methods to TimetableAccessorInfo: shortUrlFromUrl() and
shortAuthorFromAuthor() for suggestions if the short versions are missing
- Provide the associated functionName() in RequestInfo
- Remove unused arguments from StopSuggestionRequestInfo constructor
- Better member variable names for ChangelogEntry
- New enum ErrorAcceptance for reading, the engine uses
OnlyReadCorrectFiles, TimetableMate uses ReadErrorneousFiles
- Add sample stops / city to the XML file format
- Write used script extensions in the writer
as attributes to the <script>-tag
Allow faster computation of shortest path distances.
Add script accessor for distance values to avoid computing
distance for each pair for graph nodes (improves running time by
factor n^2 for those cases).
check to handle issue w/ fillWithDefaultChar given huge -count
Previously, the count could be a huge negative number which could
exceed what an int can handle. Also, there's no reason to calculate
this number if it will be negative.
Allow to not set the project model to not searchable
This prevents multiple models being added when not required.
sprintf: fix buffer overflow
PlacemarkPainter: turn into layer and rename to PlacemarkLayer; reverse composition with PlacemarkLayout
PlacemarkLayout used to be both responsible for laying out placemarks and painting them.
After having determined the layout, it realized painting by delegating the acutal work to PlacemarkPainter.
By reversing composition, PlacemarkPainter would ask PlacemarkLayout to update the layout before it would paint the placemarks itself.
That way, PlacemarkPainter becomes a layer and PlacemarkLayout would be the layer's model, which is a common pattern in Marble.
Flip mouse wheel directions for zooming.
This is the more popular way to zoom in/out.
Rendered image is at the same size of viewport
Previously we were rendering the current viewport but the image provided
by poppler was as big as the scaled page.
Remove nascent auto-reload capability.
Reloading plugins can never be guaranteed safe, but I also realised
that just because a developer saves a file does not mean she wants a
reload, especially in the middle of a debug session. So, get rid of the
Also, a few minor GUI tweaks.
Use the same text color as C++ Plasma::LineEdit
Plasma::LineEdit uses the button text color for its text. Do the same
in PlasmaComponents.TextField to avoid white text on white background with
Also use button text color for PC.TextArea because it uses the same
background frame as PC.TextField (P.TextEdit, its C++ equivalent, does not
have any background frame)
Animation tool is only relevant to Stage
And make it's optionwidget use the SpecialSpacer
Also change its tool tip
Rename all occurances of "accessor" to "(service) provider (plugin)"
- I think the new names are much better and easier to understand
- Rename everywhere: Class names and it's file names, variables,
functions, comments, documentation, path names
- Also rename variables named "info" or "accessorInfo" to "data"
- Rename "/engine/accessorInfos" to "/engine/serviceProviders",
also rename the installation directory for provider plugins
- To have the path in one place it can now be retrieved from
- Retrieve provider plugin file patterns/extensions using
ServiceProvider::filePatterns() / fileExtensions(),
these functions use the mime type to get patterns/extensions
- Add support for the new mime type
"application/x-publictransport-serviceprovider", ie. let the engine
search plugin files with all patterns of the mime type
TODO: Move engine/timetablemate/timetablemate.xml to
- Rename the log file from "accessors.log" to "serviceproviders.log"
- Rename TimetableAccessor to ServiceProvider and
TimetableAccessorScript to ServiceProviderScript
- Rename TimetableAccessorInfo to ServiceProviderData
- Rename AccessorInfoTester to ServiceProviderDataTester
- Rename AccessorInfoXmlWriter/Reader to
- Rename AccessorInfoDialog to ServiceProviderDataDialog
- Rename fields in TimetableMateHelper:
"filenameAccessor" to "filenameProvider" and
"contentsAccessor" to "contentsProvider"
- Update Provider XML format: The root tag is now called
<serviceProvider> instead of <accessorInfo>
- Some provider scripts are also updated to the new script API
Added ResultItems, and changed layout code for the Worksheet
- Added ResultItem and subclasses, removed ResultProxy and
ResultContextMenu. Added context menus to results
- Wrote the layout code for the Worksheet by hand, removed the
QGraphicsLinearLayout, and made the WorksheetEntry only inherit from
QGraphicsObject instead of QGraphicsWidget.