Find out the main window by calling the parent widget's window() member
KFileItemModel calls the dir lister's setMainWindow() method to make
sure that the dir lister caches authentication data. However, the method
used to determine the main window (qApp->activeWindow()) is not
guaranteed to yield the DolphinMainWindow or the KonqMainWindow. In
particular, if "Split View" is enabled in Dolphin's settings dialog, the
active window is the dialog, and when it is closed, any later access to
the stored pointer leads to a crash.
A better method is to verify that the model's parent is a QWidget and
then use this widget's window(). I had to make a small modification in
DolphinMainWindow to make sure that it also works correctly when the
view is split (the new view container had been created with a 0 parent
previously).
I tested it in Dolphin and Konqueror and verified that the "main window"
passed to the dir lister is really the application's main window.
Redo the fix for CTRL+Tab not working when using Dolphin's filemanagement part
in Konqueror. The original fix, commit 4f7ed2b, prevents drag and drop from
working correctly.
Some speed improvements in KFileItemModelRolesUpdater:
- Use QSet.erase() instead of QSet.remove() => no expensive Rehashing
- Get rid of += in sortAndResolvePendingRoles()
- Some other small changes
Add a new config option for the icon size in the Places Panel
To change the icon size in the Places Panel to, e.g., 60 pixels, add
the following lines to $KDEHOME/share/config/dolphinrc :
[PlacesPanel]
IconSize=60
A value of -1 means that the standard "Small" size should be used
(which has been the default before this commit).
It is planned to add an "Icon Size" submenu to the context menu of the
Places Panel in KDE 4.10, but we cannot do this in the 4.9 branch
because of the string freeze.
Added the license header in kitemlistviewaccessible.*
Accessibility headers not included when QT_NO_ACCESSIBILITY defined
Removed unnecessary debug statement
Fixes Bug 305783 - dragging a file over a directory #c4
does not expand the dir => Bug discovered: When you drag a
item onto a folder-view-item and then move it away
instantly before the autoactivation event is triggered
(After 750ms), the folder will be opened anyway.
That commit, which disregarded roles with empty text for the row number
calculation in Icons View, caused the problem that icons might jump
around while information was retrieved asynchronously because previously
empty roles could get a non-empty value, and the corresponding items
would need an additional row in the view.
Thanks to Hrvoje Senjan for testing this feature in master and reporting
this issue early, such that we could fix it quickly and prevent that
other users suffer from this bug!
Patch 106381 Comment #3:
When "Open folders during drag operations" is enabled, two things happen, both in the DolphinView and in the Folders Panel:
1) When hovering a folder that can be expanded (this is the case for folders with sub-folders in the Folders Panel and in the DolphinView if in Details View mode), toggle its "expanded" state.
2) When hovering a folder that can not be expanded (i.e., a folder without sub-folders or any folder in Icons or Compact View), open this folder in the DolphinView via the KItemListController's itemActivated(int) signal.
The bug described in bug 293200 comment 3 is that 1) is always wanted, but 2) is not wanted for the Folders Panel.
Prevent unwanted URL changes when using the Terminal Panel
The root cause of the problem was that TerminalPanel's member
m_konsolePartCurrentDirectory, which is used to determine in
TerminalPanel::sendCdToTerminal(QString& dir) if the Konsole part's
directory is aleady 'dir', such that issuing the 'cd' command is not
needed, was updated too late, namely when the part's
currentDirectoryChanged(QString) signal was received, which may be up
to one second after the 'cd' command.
When changing the directory from "dir1" to "dir2" and going back to
the "dir1" in less than one second (either by using the 'Back' action
or by activating a tab which still had "dir1" open), the 'cd dir1'
command was therefore suppressed because the Terminal Panel still
thought that "dir1" was the current directory in the part. However,
the directory of the part was actually "dir2", and when the
currentDirectoryChanged(QString) signal was received from the part, the
view's URL was set to "dir2" as well.
User feedback has shown that many users used the dialog for renaming
files. Since the dialog is still used when renaming multiple files, I
think there is no good reason not to use it for renaming single files
as well if the user wants.
Note that we cannot add an option in the settings dialog due to string
freeze issues. For the time being, you will have to add the line
"RenameInline=false" to the [General] section of
$KDEHOME/share/config/dolphinrc.
Fixes Bug 305783 - dragging a file over a directory #c4
does not expand the dir => Bug discovered: When you drag a
item onto a folder-view-item and then move it away
instantly before the autoactivation event is triggered
(After 750ms), the folder will be opened anyway.
Fix possible crash when refreshing the view while renaming inline
It is not reproducible on every machine for me, but it seems that it can
happen that DolphinView's slot slotRoleEditingFinished() is invoked
after the items have already been removed from the model. In that case,
we have to return from the slot immediately to prevent a crash.
Fix possible crash in KStandardItemListWidget::paint()
According to the backtrace in the bug report, it is possible that
KStandardItemListWidget::paint() is called if the hash m_textInfo has
not been initialised. The widget's index must be -1 in this case, see
KStandardItemListWidget::triggerCacheRefreshing(). It looks like this
can only happen if the item is about to be removed from the view, see
KItemListView::slotItemsRemoved().
I could not reproduce the crash, so I'm not sure why exactly this
happens, but this commit should at least prevent the crash.
Do not show '-' for additional info which is not available for an item
I'm only backporting the removal of the '-', not the update for the
line number calculation in Icons View, because this is the safest part
of the patch and also the one that fixes the most annoying part of the
bug.
`git merge -s recursive --log --edit KDE/4.9' was run first, and it looked
like the only conflicts were in some docbooks. I then aborted the merge and
ran `git merge' with `-Xours' to use this branch's version of the
conflicting files.
Even though a lot of changes are listed below, all but the last two are
already present in master because they were cherry-picked from one branch to
another.
Hopefully this sets a trend and people start using git as it was intended to
be used.
* KDE/4.9: (50 commits)
Adjust to Ark's drag'n'drop D-Bus interface changes.
Adjust to Ark's drag'n'drop D-Bus interface changes.
Fix wrong behaviour, when Dolphin is started with --split argument.
Do not crash when finishing inline renaming in unusual ways
Fix regression that caused "(I18N_EMPTY_MESSAGE)" sub menus in menus
Select the correct item in places-panel, when a directory is opened.
SVN_SILENT made messages (.desktop file)
avoid duplicate entries in konqueror address completion list
Fix translations not showing in the Sort by and Additional Information submenus
Fix wrong text color in Places Group Header. Use QPalette::Window for base color and QPalette::WindowText for text color. Also changed m_roleColor color mixing to 60% (from 70%) -> Better visible color difference when base color is darker than text color. Also changed styleOption().palette.brush(group, role).color() to styleOption().palette.color(group, role) in KStandardItemListWidget -> should be more efficient.
Fix wrong text color in places and in folders panel.
Show icon size as tooltip when adjusting icon size
Fix a long standing security issue with the hiding of Konqueror's location (address) bar through javascript.
Fixed the display of the security sheild icon for SSL sites.
SVN_SILENT made messages (.desktop file)
Follow-up to d7e7ca53bb95c7555bbf107d92b47ac25eda1918 - use correct icon
Use a better icon for recently accessed items in the Places Panel
Use a saner check for multimedia files in infopanel.
Fix the size of the rating stars in Icons View
Stop preview jobs when closing Dolphin
...
Adjust to Ark's drag'n'drop D-Bus interface changes.
Ark's drag'n'drop D-Bus interface needs to be changed: so far, the object
path was always /DndExtract, but this does not work if Ark is being used as
an embedded KPart (in Konqueror or Rekonq, for example), as all tabs will
end up calling QDBusConnection::registerObject() with the same path. Only
the first call will work, and the result is that dragging and dropping from
any tab previewing an archive with Ark will extract from the first archive
being previewed.
To fix that, applications that accept the application/x-kde-dndextract
mimetype should now be adjusted to check the
application/x-kde-ark-dndextract-service and
application/x-kde-ark-dndextract-path ones instead; the former contains the
same service information that used to be passed, while the latter tells
which object path should be talked to.
This is the Dolphin part of the change, which also needs to be made to
the folderview plasmoid.
Fix wrong behaviour, when Dolphin is started with --split argument.
Actual Results:
dolphin starts without split view
Expected Results:
dolphin starts with split view
New behaviour:
* no url given - use default url for all two views
* one url given - use given url for all two views
* two urls given - open the first url in the left view and the second url in the right view
Fix wrong behaviour, when Dolphin is started with --split argument.
Actual Results:
dolphin starts without split view
Expected Results:
dolphin starts with split view
New behaviour:
* no url given - use default url for all two views
* one url given - use given url for all two views
* two urls given - open the first url in the left view and the second url in the right view
Do not crash when finishing inline renaming in unusual ways
The crash was caused by a null pointer dereference when, e.g.,
minimizing Dolphin. The root cause was that
KStandardItemListWidget::closeRoleEditor() was called twice: once when
the role editor loses focus, and once again when the window is resized.
After m_roleEditor was set to 0, the second call dereferenced this null
pointer. I think the best solution is to disconnect from the role
editor's signals when the editor is not needed any more by the
KStandardItemListWidget.
Do not crash when finishing inline renaming in unusual ways
The crash was caused by a null pointer dereference when, e.g.,
minimizing Dolphin. The root cause was that
KStandardItemListWidget::closeRoleEditor() was called twice: once when
the role editor loses focus, and once again when the window is resized.
After m_roleEditor was set to 0, the second call dereferenced this null
pointer. I think the best solution is to disconnect from the role
editor's signals when the editor is not needed any more by the
KStandardItemListWidget.
Fix regression that caused "(I18N_EMPTY_MESSAGE)" sub menus in menus
For top-level roles like "Name" and "Size", the group translation is 0.
In that case, the "group" member of the corresponding RoleInfo struct
must be an empty string. This is expected by the code which generates
Dolphin's menus, which group the top-level roles into a sub menu with
the name "(I18N_EMPTY_MESSAGE)" otherwise. This is a recent regression
caused by 199fabbaa8d8a12fb49e4c9922c38ec8b033923c.
Thanks to Christoph Feck for investigating this issue!
Fix regression that caused "(I18N_EMPTY_MESSAGE)" sub menus in menus
For top-level roles like "Name" and "Size", the group translation is 0.
In that case, the "group" member of the corresponding RoleInfo struct
must be an empty string. This is expected by the code which generates
Dolphin's menus, which group the top-level roles into a sub menu with
the name "(I18N_EMPTY_MESSAGE)" otherwise. This is a recent regression
caused by 199fabbaa8d8a12fb49e4c9922c38ec8b033923c.
Thanks to Christoph Feck for investigating this issue!
Changed the behaviour when middle clicking folders in places- and folders-dockwidget. Now it opens the folders in a new background tab (General behaviour of Dolphin)
Fix wrong text color in Places Group Header. Use QPalette::Window for base color and QPalette::WindowText for text color. Also changed m_roleColor color mixing to 60% (from 70%) -> Better visible color difference when base color is darker than text color. Also changed styleOption().palette.brush(group, role).color() to styleOption().palette.color(group, role) in KStandardItemListWidget -> should be more efficient.
Fix wrong text color in Places Group Header. Use QPalette::Window for base color and QPalette::WindowText for text color. Also changed m_roleColor color mixing to 60% (from 70%) -> Better visible color difference when base color is darker than text color. Also changed styleOption().palette.brush(group, role).color() to styleOption().palette.color(group, role) in KStandardItemListWidget -> should be more efficient.
Remove comparison of QAccessibleInterfaces - these are pointers that get
instantiated again and again, so they cannot be compared. Use the object()
function in QAI instead for comparison.