Commit graph

648 commits

Author SHA1 Message Date
Frank Reininghaus 70aac0f1e6 Remove workaround for bug 304986 which is not needed in master
Commit ea6a7c09a0 added a workaround for
bug 304986 (high CPU usage because KFileItemModelRolesUpdater requests
previews for the same files over and over again after, e.g., a rename
operation). The KDE/4.10 branch of kdelibs contains the real fix for
this issue (b8f64ca3f4b6311519c21046031d66d9d0a570c6), so the workaround
can be removed.
2012-10-30 07:29:44 +01:00
Frank Reininghaus 1d9d83b434 Merge remote-tracking branch 'origin/KDE/4.9' 2012-10-30 07:26:30 +01:00
Emmanuel Pescosta c503452d56 Fix Bug 153984 - Clicking cancel on the authentication dialog for fish/sftp/ftp kioslave gets dolphin stuck on "Loading folder"
BUG: 153984
REVIEW: 107116
2012-10-29 20:54:53 +01:00
Emmanuel Pescosta 726cd768c9 Fix wrong function call in KFileItemModelSortAlgorithm::sequentialSort (Bug introduced in commit 429218eaf2) 2012-10-28 20:59:55 +01:00
Emmanuel Pescosta b4800d794c Implemented multithreading in KFileItemModelSortAlgorithm. Use as many threads as possible.
Thanks to Frank Reininghaus for all his suggestions.

REVIEW: 107025
2012-10-28 17:58:06 +01:00
Frank Reininghaus 37a54c053e 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.

BUG: 304986
FIXED-IN: 4.9.3
2012-10-27 09:48:51 +02:00
Christoph Feck c1bc83dfdb Merge remote-tracking branch 'origin/KDE/4.9' 2012-10-26 01:58:50 +02:00
Christoph Feck 282f5cb869 Fix color role of tree view arrows
BUG: 307734
FIXED-IN: 4.9.3
REVIEW: 107031
2012-10-26 01:52:20 +02:00
Emmanuel Pescosta b6396ca721 Use QPixmapCache for KStandardItemListWidget::pixmapForIcon(const QString& name, int size) -> Avoid KIcon loading and rescaleing
REVIEW: 107039
2012-10-25 19:53:53 +02:00
Emmanuel Pescosta a9b04801db Port Dolphin from Nepomuk to Nepomuk2 according to the Nepomuk2Port mini guide on techbase - http://techbase.kde.org/Projects/Nepomuk/Nepomuk2Port
REVIEW: 106825
2012-10-15 21:46:59 +02:00
Dawit Alemayehu bc66254304 Merge branch '4.9' 2012-10-03 15:09:58 -04:00
Frank Reininghaus 0e49df9214 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.

BUG: 306459
FIXED-IN: 4.9.3
2012-09-29 19:53:14 +02:00
Dawit Alemayehu 65b7e3b785 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.

CCBUG: 302329
REVIEW: 106569
2012-09-28 14:01:21 -04:00
Dawit Alemayehu b7a8327c30 Merge branch '4.9' 2012-09-27 17:48:56 -04:00
Emmanuel Pescosta 814611ca36 Some speed improvements in KFileItemModelRolesUpdater:
- Use QSet.erase() instead of QSet.remove() => no expensive Rehashing
- Get rid of += in sortAndResolvePendingRoles()
- Some other small changes

REVIEW: 106577
2012-09-27 18:47:55 +02:00
Emmanuel Pescosta 63561edb45 Fix a Bug in KFileItemModelRolesUpdate::setEnabledPlugins.
Changes were never overtaken because of a wrong comparison.

FIXED-IN: 4.9.2
2012-09-26 17:36:51 +02:00
Dawit Alemayehu 7cef34939d Fixed CTRL+Tab not working when using Dolphin's filemanagement part in Konqueror.
BUG: 302329
FIXED-IN: 4.9.2
REVIEW: 106569
2012-09-26 10:16:44 -04:00
Amandeep Singh 509464cce9 Adding license header in kitemlistviewaccessible
Added the license header in kitemlistviewaccessible.*
Accessibility headers not included when QT_NO_ACCESSIBILITY defined
Removed unnecessary debug statement
2012-09-26 04:36:31 +05:30
Frank Reininghaus a5d8edb8c2 Fix coding style and unnecessary complexity in KItemListViewAccessible
CCMAIL: aman.dedman@gmail.com
CCMAIL: gladhorn@kde.org
2012-09-25 22:01:03 +02:00
Emmanuel Pescosta c330be5f5c 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.

BUG: 305783
REVIEW: 106381
FIXED-IN: 4.9.2
(cherry picked from commit 9ab8bcd6aa)
2012-09-25 17:06:34 +02:00
Amandeep Singh c08a4794ff Removing layouter from public, adding TableModelChanged update
REVIEW : 106555
2012-09-25 04:01:48 +05:30
Frank Reininghaus 631f97a6d9 Revert part of 20b0cb68bf
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!

CCBUG: 304752
2012-09-24 23:32:51 +02:00
Frank Reininghaus a740120fe1 Fix crash when receiving Nepomuk info for a recently deleted file.
BUG: 306036
FIXED-IN: 4.9.2
2012-09-24 22:59:59 +02:00
Amandeep Singh 2fafb33240 Removing unneccessary case for Sibling in navigate 2012-09-23 02:15:24 +05:30
Frederik Gladhorn 8f816c8d95 Make cell indices work. 2012-09-22 22:41:54 +02:00
Frederik Gladhorn 174749c349 Accessibility: Fix cellAt
Row and column are 0 based, the cell function
uses 1 based indices.
2012-09-22 21:41:36 +02:00
Amandeep Singh 1b5b731621 Merge branch for accessibility 2012-09-22 23:49:15 +05:30
Amandeep Singh 990c7d260f Returning correct rowCount. 2012-09-22 23:47:18 +05:30
Amandeep Singh 4196026cd8 Making code confirm to policy 2012-09-22 23:47:18 +05:30
Amandeep Singh 28239e6ca8 Removing in-class functions and unnecessary destructor 2012-09-22 23:47:18 +05:30
Amandeep Singh 0ae031a4e6 Modify code according to dolphin policy 2012-09-22 23:47:17 +05:30
Luca Beltrame f1b822d926 Merge branch 'KDE/4.9'
Conflicts:
	konq-plugins/dirfilter/dirfilterplugin.cpp
	konq-plugins/dirfilter/dirfilterplugin.h
2012-09-21 10:55:08 +02:00
Emmanuel Pescosta 904d7b0701 Restore old behavior: Navigating by double-clicking in folder panel (Double-Click - show folder content and expand folder)
BUG: 295573
REVIEW: 106497
FIXED-IN: 4.9.2
2012-09-20 17:56:32 +02:00
Emmanuel Pescosta 580bcae62c Fixes Bug 293200 - Drag&drop files in dolphin doesnt preserve origin
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.

BUG: 293200
FIXED-IN: 4.9.2
2012-09-19 19:00:52 +02:00
Emmanuel Pescosta 186141f4d3 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.

BUG: 305783
REVIEW: 106381
2012-09-12 19:33:28 +02:00
Frank Reininghaus 7de641316a 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.

BUG: 306167
FIXED-IN: 4.9.2
2012-09-11 19:34:23 +02:00
Dawit Alemayehu 2da3823b74 Implemented the new KParts extension, KParts::ListingiNotificationExtension.
REVIEW: 106333
(cherry picked from commit acef4b1c28)
2012-09-07 08:54:14 -04:00
Dawit Alemayehu 8b11c747a0 Implemented the new KParts extension, KParts::ListingiNotificationExtension.
REVIEW: 106333
2012-09-07 08:52:53 -04:00
Frank Reininghaus 85dfec046f 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.

Thanks to Todd Jennings for the patch!
BUG: 304752
REVIEW: 106304
(cherry picked from commit 20b0cb68bf)
2012-09-06 07:57:48 +02:00
Frank Reininghaus cad870df3b Do not show '-' for additional info which is not available for an item
Thanks to Todd Jennings for the patch!
CCBUG: 304752
REVIEW: 106304
2012-09-06 07:51:22 +02:00
Dawit Alemayehu 055ad286aa Implemented the new KParts' listing filter extension, KParts::ListingFilterExtension.
REVIEW: 106289
(cherry picked from commit cb79ee6a88)
2012-09-05 11:31:38 -04:00
Dawit Alemayehu 1bac8668d7 Implemented the new KParts' listing filter extension, KParts::ListingFilterExtension.
REVIEW: 106289
2012-09-05 11:25:37 -04:00
Frank Reininghaus ca6459ea5a 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.

CCBUG: 304524
(cherry picked from commit a9c2bdc3b5)
2012-08-24 23:29:17 +02:00
Frank Reininghaus 09775ec745 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.

BUG: 304524
FIXED-IN: 4.9.1
2012-08-24 23:27:03 +02:00
Frank Reininghaus 89a678241d 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 199fabbaa8.

Thanks to Christoph Feck for investigating this issue!

CCBUG: 305228
(cherry picked from commit 168d0511c7)
2012-08-24 19:00:03 +02:00
Frank Reininghaus 2727715cdd 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 199fabbaa8.

Thanks to Christoph Feck for investigating this issue!

CCBUG: 305228
2012-08-24 18:57:47 +02:00
Albert Astals Cid fac19c757e Fix translations not showing in the Sort by and Additional Information submenus
Acked by Frank
REVIEW: 106049
BUGS: 305228
FIXED-IN: 4.9.1
(cherry picked from commit 199fabbaa8)
2012-08-16 22:29:56 +02:00
Albert Astals Cid 90e1e4e9f0 Fix translations not showing in the Sort by and Additional Information submenus
Acked by Frank
REVIEW: 106049
BUGS: 305228
FIXED-IN: 4.9.1
2012-08-16 22:27:12 +02:00
Emmanuel Pescosta 15b687a270 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.
BUG: 303133
FIXED-IN: 4.9.1
(cherry picked from commit b3c3da9851)
2012-08-15 15:04:55 +02:00
Emmanuel Pescosta b039392f34 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.
BUG: 303133
2012-08-14 22:02:24 +02:00
Amandeep Singh 9140d00259 Correcting code according to KDE Policy 2012-08-14 20:27:57 +05:30
David Faure bbf6c3af88 Fix bug 303375 - Dots in directory names treated as file extension.
Patch by Emmanuel Pescosta <emmanuelpescosta099@gmail.com>

BUG: 303375
REVIEW: 105575
FIXED-IN: 4.9.0
2012-08-14 20:27:56 +05:30
Amandeep Singh 7ac839a234 Reverting KListSelectionManager, removing unneccessary a11y factories 2012-08-14 20:27:56 +05:30
Amandeep Singh dc85bf39c9 Remove unneccessary dependency and polish the Accessibility Interfaces 2012-08-14 20:27:56 +05:30
Amandeep Singh 6770e617cb Enclose accessibility code within QT_NO_ACCESSIBILITY 2012-08-14 20:27:56 +05:30
Amandeep Singh 48fcc54aeb Adding calls to updateAccessibility
Items location changes when scrollbar is moved in dolphin.
Accordingly calls to updateAccessibility should be made.
2012-08-14 20:27:56 +05:30
Amandeep Singh 88b16b38ba Minor fixes to accessible interfaces 2012-08-14 20:27:56 +05:30
Amandeep Singh e43492a6d8 Focus-tracking for widgets in Dolphin View now works.
Added the calls to updateAccessibility, for DragDrop & Focus scenarios
2012-08-14 20:27:56 +05:30
Amandeep Singh 9437c93f07 Improving Accessibility implementation 2012-08-14 20:27:56 +05:30
Frederik Gladhorn 9149dc84b8 Accessibility: Implement rect for cells and view.
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.
2012-08-14 20:27:56 +05:30
Amandeep Singh 9def70cf8b Renaming the a11y classes and adding implementation 2012-08-14 20:27:56 +05:30
Frederik Gladhorn 6eb2884db0 Do not claim HasInvokeExtension.
This leads to crashes since it implies that
casting to QAccessible2Interface is valid.
2012-08-14 20:27:56 +05:30
Frederik Gladhorn ce1adc8f09 Remove some dubious code for now (crash less) 2012-08-14 20:27:56 +05:30
Frederik Gladhorn 0739a10a0c Add some fixmes, comment out broken rect() 2012-08-14 20:27:56 +05:30
Frederik Gladhorn c34fa9b025 Remove reimplementation of functions.
The base class implementations are actually good and without some problems.
Save one pointer's worth of memory by not having m_container.

rect was returning a relative rectangle always.

State was wrongly returning HasInvokeExtension which can lead to crashes.
2012-08-14 20:27:55 +05:30
Frederik Gladhorn cc7343815a Remove unused function.
And also bad use of "" instead of QString().
2012-08-14 20:27:55 +05:30
Frederik Gladhorn 9211640f39 Use KDebug in favor of qdebug. 2012-08-14 20:27:55 +05:30
Frederik Gladhorn ac2661d6ca Fix parent navigation for KItemListContainerAccessible. 2012-08-14 20:27:55 +05:30
Frederik Gladhorn af344f2eec Instantiate KItemListContainerAccessible when needed. 2012-08-14 20:27:55 +05:30
Amandeep Singh cd1d45c831 Adding the Accessibility classes 2012-08-14 20:27:55 +05:30
David Faure eb14263c48 Fix bug 303375 - Dots in directory names treated as file extension.
Patch by Emmanuel Pescosta <emmanuelpescosta099@gmail.com>

BUG: 303375
REVIEW: 105575
FIXED-IN: 4.9.0
2012-08-13 22:25:49 +02:00
Emmanuel Pescosta ab61d9d3ba Fix wrong text color in places and in folders panel.
FIXED-IN: 4.9.1
REVIEW: 105832
BUG: 303133
2012-08-13 19:10:50 +02:00
Emmanuel Pescosta 220d0d522d Fix wrong text color in places and in folders panel.
FIXED-IN: 4.9.1
REVIEW: 105832
BUG: 303133
2012-08-13 18:40:43 +02:00
Frank Reininghaus 5ae3d9c0ae Fix the size of the rating stars in Icons View
Moreover, make sure that the selection rectangle is large enough to
include the stars.

Patch by Emmanuel Pescosta. Thanks for the patch!

CCBUG: 302624
REVIEW: 105830
(cherry picked from commit 146c77eaa2)
2012-08-07 22:55:45 +02:00
Frank Reininghaus e534bc08f0 Fix the size of the rating stars in Icons View
Moreover, make sure that the selection rectangle is large enough to
include the stars.

Patch by Emmanuel Pescosta. Thanks for the patch!

BUG: 302624
FIXED-IN: 4.9.1
REVIEW: 105830
2012-08-07 22:54:35 +02:00
Frank Reininghaus 0d742b44df Stop preview jobs when closing Dolphin
Patch by Benni Hill. Thanks for the patch!
CCBUG: 304467
(cherry picked from commit 4d39dbc962)
2012-08-06 02:32:16 +02:00
Frank Reininghaus d7f18f5284 Stop preview jobs when closing Dolphin
Patch by Benni Hill. Thanks for the patch!
BUG: 304467
FIXED-IN: 4.9.1
2012-08-06 02:27:49 +02:00
Patrick Spendrin c7cce33067 msvc needs to have the class definition for reference parameters in methods 2012-07-29 01:13:59 +02:00
Patrick Spendrin c62146f9ff msvc needs to have the class definition for reference parameters in methods 2012-07-29 01:11:21 +02:00
David Faure 149975a004 Fix bug 303375 - Dots in directory names treated as file extension.
Patch by Emmanuel Pescosta <emmanuelpescosta099@gmail.com>

BUG: 303375
REVIEW: 105575
FIXED-IN: 4.9.0
2012-07-20 12:09:04 +02:00
Christoph Feck 3dbe88e42a Respect platform's icon sizes
Use QStyle icon sizes instead of hard coding 16 or 32 pixels.
Using styles that follow KDE settings (every KStyle, e.g.
Oxygen) the icon sizes can be configured by the user in
System Settings.

The size for the icon/details view can be later changed
by the user, overriding the defaults. The icon size for the
places panel is not (yet?) configurable separately.

(Not resolving the bug, see comment in review request)

CCBUG: 301959
REVIEW: 105548
(cherry picked from commit 79211f6e48)
2012-07-18 01:30:32 +02:00
Christoph Feck 13dfc7fa2b Respect platform's icon sizes
Use QStyle icon sizes instead of hard coding 16 or 32 pixels.
Using styles that follow KDE settings (every KStyle, e.g.
Oxygen) the icon sizes can be configured by the user in
System Settings.

The size for the icon/details view can be later changed
by the user, overriding the defaults. The icon size for the
places panel is not (yet?) configurable separately.

(Not resolving the bug, see comment in review request)

CCBUG: 301959
REVIEW: 105548
2012-07-18 01:22:55 +02:00
Frank Reininghaus b8ef5ebca1 Re-implement dropping of files on folders in the Places Panel.
This resolves a regression caused by the Places Panel rewrite. There is
a small glitch left when reordering items (dragging below the last or
above the first item only shows the drop indicator when first dragging
out of the item and then back), but I prefer not to fix this glitch
right now because this would require a more intrusive change, and I do
not want to risk regressions because is not much time left to fix them
before 4.9.0 is released.

Thanks to Peter Penz for providing some advice about this issue.

BUG: 302557
FIXED-IN: 4.9.0
(cherry picked from commit f4c9600251)
2012-07-12 00:41:20 +02:00
Frank Reininghaus cd5d20ff8a Re-implement dropping of files on folders in the Places Panel.
This resolves a regression caused by the Places Panel rewrite. There is
a small glitch left when reordering items (dragging below the last or
above the first item only shows the drop indicator when first dragging
out of the item and then back), but I prefer not to fix this glitch
right now because this would require a more intrusive change, and I do
not want to risk regressions because is not much time left to fix them
before 4.9.0 is released.

Thanks to Peter Penz for providing some advice about this issue.

CCBUG: 302557
2012-07-12 00:36:32 +02:00
Peter Penz 53b01d5aff Renaming: Don't select unknown extensions
If a file with an unknown extension gets renamed, it is assumed
that the letters after the last point represent the extension and
won't be selected.

BUG: 301893
FIXED-IN: 4.9.0
2012-06-16 22:53:32 +02:00
Peter Penz e9463ffe2a Fix regression: Open file if entering it in the URL-navigator
The regression has been introduced when hiding the DolphinDirLister
inside KFileItemModel. Now the signal urlIsFileError() gets forwarded
to the container again where the file will be opened.

BUG: 301757
FIXED-IN: 4.9.0
2012-06-13 15:18:21 +02:00
Peter Penz fb15dac975 Drag pixmap: Turn off the hover-state 2012-06-12 13:26:23 +02:00
Peter Penz c95255eb90 Drag-pixmap fixes
- Don't use the selection-tinted icon when dragging a single item
- Decrease the vertical gap for the hotspot
- Prevent drawing tree-lines when dragging items for the Places Panel

CCBUG: 301624
2012-06-12 13:21:17 +02:00
Peter Penz 6c15705528 Update "isExpandable" and "size"-roles
If the "isExpandable"- or "size"-role is shown for a folder, the
number of sub-items must be watched to be able to update the
state of those 2 roles.

This fixes the issue that e.g. no expanding-toggle is shown
if an sub-directory has been created inside an empty directory.

BUG: 293972
FIXED-IN: 4.9.0
2012-06-11 15:46:55 +02:00
Peter Penz dbf233ea28 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
directories.

BUG: 299997
FIXED-IN: 4.9.0
2012-06-09 13:37:42 +02:00
Peter Penz 57cde56158 Inline renaming: ESC should cancel the renaming
When emitting the roleEditingCanceled-signal it must be prevented
that a roleEditingFinished-signal is emitted because of some
action taken in the receiver-slot.

BUG: 301480
FIXED-IN: 4.9.0
2012-06-09 13:12:23 +02:00
Peter Penz 1ddd9c4032 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
this issue.

CCBUG: 301252
2012-06-08 22:51:01 +02:00
Peter Penz b2f5de9744 Krazy fixes 2012-06-08 22:08:29 +02:00
Peter Penz 98a4aa10ef Inline renaming fixes
- Don't use an outdated KFileItem when renaming an item more than once
- Use the same font as the view
- Don't lose the focus when an editor-popup is shown

BUG: 299327
BUG: 298883
BUG: 301253
FIXED-IN: 4.9.0
2012-06-08 16:40:01 +02:00
Frank Reininghaus c0533e1aaa Ctrl+Shift+click should have the same effect as Shift+click
This makes Dolphin 2.0's behaviour consistent with Dolphin 1.x.

BUG: 300788
FIXED-IN: 4.9.0
2012-06-03 23:03:27 +02:00
Peter Penz 931e180400 Always support a moving animation in case of the details view
This fixes the issue that resizing items results in flickering
when expandable items are shown.
2012-06-02 16:09:24 +02:00
Frank Reininghaus 397f8783d9 Improve arrow key navigation in Details View with expanded folders
If the current folder is collapsed, pressing the left arrow key now
moves the focus to the parent folder.

CCBUG: 300582
(cherry picked from commit 93daadae28)
2012-05-30 09:26:31 +02:00
Peter Penz 4e2f3dcffe Implement dropping of items into the Places Panel
Some polishing regarding the icons and group-alignment must still
be done, but at least the basic functionality is back again.
2012-05-28 23:11:52 +02:00
Frank Reininghaus 23ab605157 Show all items in the directory when the name filter is cleared
The problem was the following: While a QMutableSetIterator iterates the
items in the QSet m_filteredItems, all items that match the new filter
are removed from the set. However, to ensure that the iterator still
reaches all items in the set, one must not use QSet::remove(), but
rather the iterator's remove() method (see QMutableSetIterator docs).

CCBUG: 300504
(cherry picked from commit 288473a96c)
2012-05-26 16:35:31 +02:00
Frank Reininghaus f061d2a6b3 Use an italic font for symbolic links
BUG: 298218
FIXED-IN: 4.9.0
2012-05-26 15:32:57 +02:00
Peter Penz e76ec71536 Minor coding style fixes 2012-05-26 13:46:30 +02:00
Peter Penz 073f8cae13 Further preperations for drag & drop support in the places panel 2012-05-26 13:41:30 +02:00
Peter Penz ff9ce4dab3 Colorize icons when an item is selected
BUG: 295515
FIXED-IN: 4.9.0
2012-05-21 22:41:57 +02:00
Peter Penz 894232ebda Places Panel: Show drop indicator
The dropping itself has not been implemented yet.
2012-05-21 21:48:45 +02:00
Peter Penz e9d29bcf30 Enable basic drag and drop support for the Places Panel
The dropping has not been implemented yet, however in the context of
this step the creating of the drag-pixmap is now forwarded to
the item-widgets. This allows creating some optimized dragging-pixmaps
e.g. for the details-view, where only the name and icon should
be provided as drag-pixmap.
2012-05-18 23:31:44 +02:00
Peter Penz a6241cf8ea Fix index-range issue 2012-05-17 22:10:18 +02:00
Peter Penz 727fd64e12 Create unit-test for KStandardItemModel 2012-05-17 22:00:39 +02:00
Peter Penz bd02faa982 KStandardItemModel: Fix inconsistent internal state
Assure that the index-cache is kept consistent with the items when
a removing or inserting is done. A unit-test will be created as soon
as possible.
2012-05-17 13:34:31 +02:00
Peter Penz bca055a38e Add unit-test to test a possible crash when updating group-headers 2012-05-17 11:47:21 +02:00
Peter Penz ff6e4341c5 Fix crash related to group-headers
If multiple ranges are inserted or removed, the updating of
the group-headers may only be done after _all_ ranges have been
inserted/removed and not after each individual range. Otherwise
the layouter-cache is not in a consistent state yet.
2012-05-17 11:16:19 +02:00
Peter Penz 855560dd32 Shorten the "path" content if possible
Replace the home-path by '~' for having a shorter content.
2012-05-16 23:42:13 +02:00
Peter Penz f74c72b965 Fix several bookmark synchronization issues 2012-05-14 17:42:10 +02:00
Peter Penz 77ad7c431a PlacesItemModel: Automatically save bookmarks
Prevent that a manual call to save changed bookmarks is
necessary.
2012-05-14 14:58:34 +02:00
Peter Penz 6e9713c558 PlacesItemModel: Remove setItemHidden and isItemHidden
This should be handled automatically when the hidden-state of
the item itself gets toggled.
2012-05-13 23:30:38 +02:00
Peter Penz 1426b8d3c7 Places Panel: Prepare code to save state of bookmarks
The saving is still disabled currently until 100 % backward
compatibility with KFilePlacesView has been reached.
2012-05-13 21:45:59 +02:00
Peter Penz 9641672247 Let the group-headers respect the item-offset 2012-05-09 14:04:04 +02:00
Peter Penz a024e3e2aa Remove workaround to start/stop the resource watcher
Using the latest resource-watcher from kde-runtime does not make
this workaround necessary anymore.
2012-05-06 22:08:02 +02:00
Peter Penz 5cf40dba79 Remove kde-runtime dependency "nepomukdatamanagement"
Follow the suggestion from Vishesh Handa and copy the ResourceWatcher
code from kde-runtime instead of creating a dependency. This will of
course get removed again as soon as Nepomuk's resource watcher will
get a public API.
2012-05-06 21:52:33 +02:00
Peter Penz 814a64681d Show "duration" in the format hh::mm::ss 2012-05-06 13:32:20 +02:00
Peter Penz d4173443ab Fix sorting issues for Nepomuk-roles
Just use a string-comparison as default-compare.
2012-05-06 13:00:42 +02:00
Peter Penz 9419f0f3a5 Fix issue that no Nepomuk-data is shown when searching 2012-05-06 12:43:57 +02:00
Peter Penz 37bd2116cb Additional information: Use "Audio" instead of "Music"
This is consistent to the term used in the places panel.
2012-05-06 11:57:14 +02:00
Peter Penz 23fff35aeb Places Panel: Provide access to devices 2012-05-05 21:38:37 +02:00
Peter Penz aacf20282d Places Panel: Allow showing of hidden items 2012-05-02 23:57:04 +02:00
Peter Penz f158bf097a Places Panel: Fix implementation issues when hiding items 2012-05-02 21:24:16 +02:00
Peter Penz d76b113ad1 Places Panel: Allow hiding of items
Related changes:
- Animate changed items for the details-view in case it is not expandable
- Remove the hardcoded "isHidden"-code in KStandardItemListWidget and
  allow derived widgets to define themselves what means "hidden" within
  their context.

The current code needs a lot of bugfixing, but lets make this in smaller
steps during the next days...
2012-05-01 23:14:52 +02:00
Peter Penz 6a7cb5ff7d Fix crash when closing Dolphin during generating previews
BUG: 299108
FIXED-IN: 4.9.0
2012-04-30 18:55:48 +02:00
Peter Penz b419cfc597 Places Panel fixes
Implement adding, editing and removing of entries. Note that the
result currently is still not stored in bookmarks.xml (this needs
to wait until the hiding is implemented in the model).
2012-04-29 00:00:38 +02:00
Peter Penz 2854a69fca Reset to ascending sort order when changing the column
When changing the sort-column the sort order should always be reset
to 'ascending' to by consistent with the QListView behavior.

BUG: 298830
FIXED-IN: 4.9.0
2012-04-26 21:29:33 +02:00
Peter Penz 804021a8db Provide correct labels for Nepomuk resources 2012-04-25 21:15:14 +02:00
Frank Reininghaus c3bd4b44e4 When the current item is removed, make -1 the current index temporarily
This fixes two problems:
1. KItemListKeyboardSearchManger can cancel the current search when a
   new folder is opened (note that this action removes the current item
   from the view).
2. The view can underline the new current item (which is the item that
   used to be below the removed item). Note that this did not work
   before because the view did not receive a currentChanged() signal in
   this case and therefore did not update the "current item" status of
   the new current item.

CCBUG: 297488
CCBUG: 298782
REVIEW: 104709
(cherry picked from commit 68ce395a19)
2012-04-25 09:20:23 +02:00
Frank Reininghaus 90baf5a897 When Esc is pressed, clear the selection and cancel the keyboard search
This patch restores the Dolphin 1.x behaviour that Esc clears the
selection (Dolphin 2.0 did not have an easy way to clear the selection
using the keyboard so far). Moreover, Esc now also cancels the current
keyboard search. This fixes the problem that the only way to cancel the
search is to wait until the timeout has expired.

CCBUG: 298742
CCBUG: 297458
(cherry picked from commit d3b1312d3e)
2012-04-25 09:17:43 +02:00
Frank Reininghaus fa447df642 Reduce the timeout in KItemListKeyboardSearchManager to 1 second
It turned out that the longer timeout, introduced recently in
02eab49b2d, not only made multi-letter
keyboard searches easier, but also had some unwanted side effects. I
hope that 1 second, which is between the previous value of 5 seconds and
the pre-KDE 4.8.2 value of 0.4 seconds, is a compromise which will fit
most users' needs.
We will try to improve the situation further in future releases by
providing visual feedback about the keyboard search, but such a change
would not be suitable for a bug-fix release.
(cherry picked from commit d8732a59d3)
2012-04-25 09:16:39 +02:00
Peter Penz d9de391720 Provide additional default groups for the Places Panel
If Nepomuk is enabled, it is now possible to easily search for
some most common queries by having additional groups.
2012-04-24 23:18:34 +02:00
Peter Penz cbf83085be Details mode: Fix wrong required column-width calculation
BUG: 298577
FIXED-IN: 4.9.0
2012-04-23 00:24:40 +02:00
Peter Penz 007907be20 Bring back basic bookmark support for the Places Panel
The folders-panel signals have been adjusted too for consistency.
2012-04-21 23:29:11 +02:00
Peter Penz e3f46c3b20 Inline renaming: Fix wrong assertion
BUG: 298512
FIXED-IN: 4.9.0
2012-04-21 21:41:24 +02:00
Peter Penz ae4d11d918 Prepare view-engine for non-KFileItem usecase
Up to now the view-engine only provided a model-implementation that
supports file-items. The view-engine always had been designed to be able
to work with any kind of model, so now a KStandardItemModel is available.
The plan is to convert the places panel to the new view-engine. It should
be no problem to fix this until the feature freeze - in the worst case
the places-panel code could be reverted while still keeping the
KStandardItemModel changes.
2012-04-21 21:32:42 +02:00
Peter Penz 7afd2f0ae1 Inline renaming fixes
- Increase the editor-height in the icons-view if required
- Don't try to react on resizings of the parent, just finish
  the renaming
2012-04-18 01:15:49 +02:00
Peter Penz beeb9078f5 Ensure authentication data is cached properly
The attached patch sets the main window on the main directory
lister in DolphinView and KIO jobs in DolphinMainWindow to ensure
that login data for remote protocols such as sftp, ftp are cached
properly for the duration of the application. Otherwise, the end
user is going to end up being unnecessarily re-prompted to enter
password login information.

Thanks to Dawit Alemayehu for the patch!

REVIEW: 104614
FIXED-IN: 4.9.0
2012-04-17 22:21:55 +02:00
Peter Penz 9f94aac23f Documentation update for KItemListRoleEditor 2012-04-17 18:18:10 +02:00
Peter Penz b2e54c3a31 Implement inline-renaming for the new view-engine
BUG: 286893
FIXED-IN: 4.9.0
2012-04-17 18:15:12 +02:00
Peter Penz 60b8681081 Allow to optionally limit the maximum number of text lines
Showing the whole filename unclipped seems to be a good default,
however for users with a lot of files that have extremely long names
this might get a problem especially in the icons-view.

- Allow to limit the maximum number of lines in the icons-view
- Allow to specify a maximum width in the compact-view

(No limit is required for the details-view, as the name is shortened
automatically to show other columns)

BUG: 288596
FIXED-IN: 4.9.0
2012-04-14 00:28:24 +02:00
Peter Penz 40c71d5ce0 KFileItemModel: interface cleanups
Fix some naming inconsistencies regarding the usage of 'dir' vs.
'directory' vs. 'folder'.
2012-04-11 21:53:45 +02:00
Peter Penz ff0a86288e Fix compile issue resulted by commit 2caff15b 2012-04-11 20:45:19 +02:00
Peter Penz 6c3d9acbc2 KItemViews: Internal directory restructuration
- Move all private headers from the kitemviews-directory into
the 'private' subdirectory.

- Get rid of DolphinDirLister and just use a directory-lister
  internally in KFileItemModel.

- Minor interface-cleanups for signals
2012-04-11 16:08:32 +02:00
Peter Penz d9dbd3398a Improvements for slow sorting roles
If the sorting is done for data which is resolved asynchronously
(e.g. rating), it is important to give a visual feedback about
the state of the sorting. This is done now by a progress
indication in the statusbar.

Also optimizations for "Sort by type" have been done: Although
resolving a type can be expensive in the most often case it is a
very cheap operation. So it the sorting is done by type, try
to resolve the type synchronously for at least 200 ms to prevent
a asynchronous resorting. This is usually sufficient to have
resolved types even for directories with several thousands of
items.

BUG: 292733
FIXED-IN: 4.9.0
2012-04-10 16:36:26 +02:00
Peter Penz 16e5740828 Revert the 2.0 decision to always use KB for file-sizes
The feedback on bugs.kde.org has shown that the previous behavior
(= show size with best-matching unit) is preferred by most users.
I initially wanted to make this configurable, but for implementing
it in a non-hacky way extending KLocale from kdelibs would have
been required. I'm not sure whether the usecase in Dolphin justifies
having such a configuration in KLocale - however as kdelibs is frozen
at the moment this is no option and the old behavior has been
restored.

BUG: 289850
FIXED-IN: 4.9.0
2012-04-09 09:50:17 +02:00
Peter Penz 05082aed16 Ignore maximum size for local files when creating previews
It is up to the plugins to decide what sensible size is required for
creating a preview, this cannot be decided by the user for all
plugins. A maximum size only makes sense for remote files, where
the user implicitely decides how much of the bandwith may be used
for having previews.

BUG: 273226
FIXED-IN: 4.9.0
2012-04-08 16:12:06 +02:00
Peter Penz 02f122f33c Remove unneeded/wrong signal-slot-connection 2012-04-08 15:25:38 +02:00
Peter Penz 1fe46e7dcc Fix drag & drop cursor issue
When dragging a file within the same Dolphin window and the Ctrl, Shift
or Alt-key is pressed the shape of the cursor was not changed to
indicate the copy/move/link-operation.

BUG: 293850
FIXED-IN: 4.8.3
2012-04-07 23:14:43 +02:00
Peter Penz 1ea1f351d6 Use stars for showing the rating in the group headers 2012-04-07 20:59:54 +02:00
Peter Penz 305ecd86f9 Just use "-" instead of "No destination" for the destination-role 2012-04-07 15:09:44 +02:00
Peter Penz 94a44c03e4 Provide proper translation for orientation-EXIF-value 2012-04-07 09:49:31 +02:00
Peter Penz f4fd2c201f Show a placeholder for roles that are empty 2012-04-07 09:15:42 +02:00
Peter Penz 99f19a820b Icons Mode: Fix wrong width calculation of additional roles 2012-04-07 00:03:42 +02:00
Peter Penz dc555b8e56 Allow to specify whether an upscaling of images should be done
The option is currently hidden as up to now only Nuno requested it,
but it seems to be urgent: "my icon making productivity has drop subtantialy"
((c) 2012 Nuno)

As I don't want to get blamed for an outdated Oxygen-icon-set I have
no other choice ;-)

CCMAIL: nuno.pinheiro@kdab.com
2012-04-06 23:12:07 +02:00
Peter Penz 5d27eb81cd Update items if a Nepomuk property has been changed
If a Nepomuk property has been changed (e.g. by changing the rating
in the Information Panel) the corresponding item in the view must
be updated.
2012-04-06 18:04:56 +02:00
Peter Penz c9a6760f9f KItemListView: Minor internal cleanup 2012-04-05 16:34:09 +02:00
Peter Penz f28377f1e3 Fix filtering issue
When filtering items it might be possible that the update of
the widgets is wrong although the model internally has a correct
state.

BUG: 297269
FIXED-IN: 4.8.3
2012-04-05 16:13:59 +02:00
Peter Penz 1e6031c04d Extract sorting-algorithm from KFileItemModel into custom class 2012-04-04 13:37:07 +02:00
Peter Penz 4657459937 Show the ratings as stars instead of text 2012-04-04 00:21:05 +02:00
Peter Penz b8a12851b8 Minor internal cleanup 2012-04-02 22:24:16 +02:00
Peter Penz fdab593c01 Fix focus-rectangle issues
Assure that the focus-rectangle exactly matches to the bottom of
the rendered text.

BUG: 297203
BUG: 289804
FIXED-IN: 4.9.0
2012-04-02 22:20:10 +02:00
Peter Penz a4ede4e0eb Allow showing Nepomuk metadata inside views
Metadata like image-size, rating, comments, tags, ... can be shown
now in the view (e.g. as column in the Details mode).

Still open: The rating-information needs to be shown as stars.

In the context of this feature also the following bugs have been
fixed:
- Fix visual glitches in the header of the Details mode
- Improve the minimum column width calculation to respect also
  the headling and not only the content

BUG: 296782
FIXED-IN: 4.9.0
2012-04-01 16:46:54 +02:00
Frank Reininghaus aced85db1f KItemListKeyboardSearchManager: make it possible to choose the timeout
It's now possible to change the timeout, after which any call of
KItemListKeyboardSearchManager::addKeys(const QString&) starts a new
search, from the default value of 5000 milliseconds. This is not used
in Dolphin at the moment, but it permits to reduce the timeout to a
small value in the unit test. Before this change, the unit test took
more than 5 seconds to complete.
(cherry picked from commit 82fc1b54bd)
2012-03-29 20:05:49 +02:00
Frank Reininghaus bd26bf2a20 Increase the timeout in KItemListKeyboardSearchManager to 5 seconds
The previous timeout [QApplication::keyboardInputInterval()] was too
short to do a multi-letter search for users who do not type extremely
fast.
(cherry picked from commit 02eab49b2d)
2012-03-28 19:22:12 +02:00
Peter Penz 793311dac1 KItemListView interface and implementation simplification
- Remove KItemListView::preferredRoleColumnWidth() and allow implementing
  this as part of derived classes from KItemListWidget. Those derived
  classes are aware about the layout and hence also can provide the
  preferred role width.

- Make KItemListView::itemSizeHint() non-virtual and also allow
  implementing the size hint as part of derived classes from KItemListWidget.
2012-03-27 00:48:34 +02:00
Peter Penz 8c986e22fd Rename KItemListView::preferredColumnWidth() to preferredRoleColumnWidth() 2012-03-26 22:19:38 +02:00
Peter Penz 829e5070ef Add missing 'virtual' to preferredColumnWidth() 2012-03-26 00:01:40 +02:00
Peter Penz b7f0091733 Internal interface cleanup
Let derived classes from KItemListView just implement
preferredColumnWidth() for one role of an item instead of returning
a hashtable for a given item-range.
2012-03-26 00:00:12 +02:00
Peter Penz e70c2f8aa4 Details view: Don't reset to automatic resizing when adding columns
Until now when a new column is added in the case where custom column widths
are used, the automatic resizing has been turned on again. The patch fixes
this so that the current widths stay and the new column gets a proper default
width.
2012-03-25 22:58:16 +02:00
Peter Penz 1cbe55b97c Cleanup and minor fixes for column-handling 2012-03-24 23:47:42 +01:00
Peter Penz 3f88f79f86 Details view: Optionally remember user changed column-widths
If the user changed a column-width in the details-view, up to now
the width got reset when changing a directory or when restarting
Dolphin. Now the column-widths automatically get remembered for each
directory in case if the user has modified the width. The automatic
resizing is still turn on per default. The storing of the custom
column-width can easily be reset by right clicking on the header and
selecting "Automatic Column Widths" from the context-menu.

Some finetuning is still necessary (e.g. the "Adjust View Properties"
dialog currently is not aware about this setting) but this will
be fixed during the next weeks.

BUG: 264434
FIXED-IN: 4.9.0
2012-03-23 22:31:55 +01:00
Peter Penz 3fc96ef97b Details view: Expand the name-column like in Dolphin 1.x
With the new view-engine the name-column always has been expanded
to the maximum width of all available names. But this makes it
impossible to see other columns without scrolling when having long
filenames, so per default the Dolphin 1.x behavior has been applied
to the new view-engine so that the name-column-width gets decreased
to be able to show the other columns.

This patch will be released with KDE applications 4.8.2. For
Dolphin 2.1 (KDE applications 4.9) user-modified widths of the
columns will be remembered per directory also between different
sessions.

CCBUG: 264434
2012-03-22 15:47:01 +01:00
Peter Penz 403aa0bff3 KFileItemModel: Fix triggering of wrong assertion
When switching from the details-mode of a search-view into any other
mode, the m_expandedParentsCountRoot is set to ForceExpandedParentsCountRoot.
2012-03-21 16:54:02 +01:00
Peter Penz 982ce7ae20 Prevent flickering when updating items
When downloading images from e.g. the camera-IO-slave the files
will be downloaded as *.part files and renamed afterwards. The renaming
results in an undetermined mimetype and hence the probably already available
preview or icon gets replaced by a dummy icon. The patch fixes this by
keeping the old values as long until they have been resolved by
KFileItemModelRolesUpdater.
2012-03-21 12:12:35 +01:00
Peter Penz d3a2f1ba82 Fix sorting-issue when "Sort folders first" is disabled
The comparison of expanded trees may not assume that directories
are always sorted first and must respect the "Sort folders first"
setting.

The sorting-unittest has been extended by a sub-tree and the usecase
of bug 296437. The already deactivated test for
KFileItemModel::expandedParentsCountCompare() has been completely removed
as it has been replaced by testSorting().

BUG: 296437
FIXED-IN: 4.8.2
2012-03-20 23:35:43 +01:00
Peter Penz 4815fbd00b Bypass crash with Polyester-style
The Polyester style crashes when drawing a header where the
parent widget is 0.

BUG: 296453
FIXED-IN: 4.8.2
2012-03-20 21:09:52 +01:00
Peter Penz 03a65da80a KFileItemModel: Remove minimum-update timer
The timer became unnecessary after introducing the behavior to
collect all new items until KDirLister emits a completed()-signal.
2012-03-20 17:23:28 +01:00
Peter Penz 0dcb51b927 Fix alternate background issue
When items get inserted or deleted, the alternate background
must be updated.
2012-03-20 17:23:27 +01:00
Peter Penz 5798e081f5 Let additional mouse buttons trigger history navigation
Thanks to Sebastian Dörner for the patch!

REVIEW: 101335
BUG: 181823
FIXED-IN: 4.9
2012-03-19 16:53:53 +01:00
Peter Penz d6e10a5942 Use sub-menus for the "Sort By"- and "Additional Information"-menu
This allows doing some grouping for the visible roles by e.g. Image,
Document, Music or whatever.
2012-03-14 16:53:31 +01:00
Peter Penz f041099904 Remove RolesInfoAccessor
Now KFileItemModel provides a way to access the available roles
including their translations. Note that the 3 roles "comments",
"rating" and "tags" have not been implemented yet in KFileItemModel
and turning them on does not work currently.
2012-03-13 16:29:45 +01:00
Peter Penz 956d32ed16 Prevent endless scrolling of list when dragging items
BUG: 295584
FIXED-IN: 4.8.2
2012-03-09 17:58:57 +01:00
Peter Penz 475f8b1261 Details view: Allow to turn off expandable folders like in Dolphin 1.7
The option for turning off expandable folders has been removed with
the new view-engine. Due to several requests this option has been
readded again.

As for 4.8.x no new user-interface strings may be introduced, the
line
  ExpandableFolders=false
must be manually added below the section "[DetailsMode]" in the file
~/.kde/share/config/dolphinrc if the expandable-folders feature
should be disabled.

Thanks to H.H. "cyberbeat" for the initial patch!

BUG: 289090
FIXED-IN: 4.8.2
2012-03-09 16:19:19 +01:00
Peter Penz 08a485349f Allow custom sorting of details-view columns
Fix regression that Dolphin 2.0 did not allow to adjust the sorting
of the details-view columns.

BUG: 164696
FIXED-IN: 4.8.2
2012-03-07 22:18:59 +01:00
Peter Penz 90e6190f13 Update siblings when turning on/off grouping 2012-02-28 17:17:55 +01:00
Peter Penz ee31c709a5 Finetuning of margins and alternate row colors
Thanks to Martin Zilz for the ongoing support.
2012-02-28 16:43:53 +01:00
Peter Penz 21a5a890b3 Whitespace cleanups and documentation fixes 2012-02-23 17:28:03 +01:00
Peter Penz dbc5fd7a49 Fix alternate backgrounds when enabling grouping
Up to now the alternating backgrounds just have been calculated by
checking whether the item index is odd. This does not work well when
grouping is enabled: In this case the alternate background color
of the first item of a group should stay consistent.
2012-02-22 18:31:03 +01:00
Peter Penz bdd0fdf246 Fix possible crash if no model is set
When updating the siblings-information by e.g. a call to
setSupportsItemExpanding() it is possible that the model is not
set yet.
2012-02-21 17:20:27 +01:00
Peter Penz 7deb601f31 Don't trigger assert when switching to details-view
If the visible roles of the details-view are equal to the visible roles
of other views, then switching to the details-view will trigger an
assert because the invisible roles don't get updated.

Thanks to Frank Reininghaus for the detailed analyses!

In the context of this fix optimizations have been done when switching
view-modes: The "don't-animate-workaround" could be removed.

BUG: 294531
FIXED-IN: 4.8.1
2012-02-21 16:49:38 +01:00
Peter Penz 51bd6cfdfa Remember the row- and column-information for visible items
Up to now KItemListView has not been aware to which column or row
an item belongs to. This has been handled internally in
KItemListViewLayouter. But for deciding whether a move-animation
might result in overlapping items it is mandatory to be aware about
the column/row. The current approach to guess a column/row change
by comparing the source- and target-rectangle works very well but
breaks on some corner-cases when e.g. zooming.

Now the layouter allows to access the information. This assures
that in the vertical alignment no move-animation is done between
rows and the in the horizontal alignment no move-animation is
done between the columns.
2012-02-17 16:02:14 +01:00
Peter Penz a5becac42c Compact view: Fix of left margin for first group 2012-02-16 16:37:36 +01:00
Peter Penz 613758b5ec Compact view: Padding- and margin-improvements for grouped alignments 2012-02-16 16:23:00 +01:00
Peter Penz 749362987b Folders Panel: Use the whole width as selection region
As no rubberband-selection is enabled for the Folders Panel it does
not make sense to keep the selection region as small as possible.

BUG: 294111
FIXED-IN: 4.8.1
2012-02-15 16:20:47 +01:00
Peter Penz cf72e48111 Minor padding optimizations 2012-02-14 23:27:01 +01:00
Peter Penz 83130d8e16 Details view: Fix filter issue with sibblings
When the filter has been enabled, the sibblings got not updated. Explicitely
update the sibblings when inserting, removing or moving items. For layouting
implicitely update the sibblings only for recycled widgets.
2012-02-14 23:00:48 +01:00
Peter Penz 55f46ceb9c Details view: Siblings fixes
The siblings should only range within one group.
2012-02-14 20:59:08 +01:00
Peter Penz 0397658b81 Details view: Fix indicator-branches
Up to now no indicator-branches have been drawn when showing a tree. The patch
fixes this so that that the style-dependent branches are drawn.

The main part of the patch is the implementation of
KItemListView::updateSiblingsInformation(). Most of the other changes are
related due to an internal renaming of the expansionsLevel-role to
expandedParentsCount and some related cleanups.

BUG: 290276
FIXED-IN: 4.8.1
2012-02-14 18:05:29 +01:00
Peter Penz 056d12d60f Group header layout fixes
- Don't use a margin for the first group header
- Provide margins between the groups
- Use a more subtle coloring
- Prevent animation glitches when resizing a window
2012-02-11 18:04:53 +01:00
Peter Penz e29e1cda15 Icon-rectangle and selection-toggle optimizations
- No padding should be applied to the icon-rectangle
- Base the selection-toggle size on the icon-size of the style not
  the actual pixmap content, as this might lead to smaller selection-toggles
  when having pixmap-previews with a small height.
2012-02-09 16:05:03 +01:00
Peter Penz 03415d9078 Layout optimizations
- Differ internally between margins and paddings
- Add a small padding in the icons-view and the compact-views
- Optimize the width of the icons-view if previews are shown
2012-02-08 17:48:32 +01:00
Peter Penz 3c83d8f14d Drag and drop: Adjust destination if the item is no directory or desktop-file
The URL of the view should be used as destination target if a dropping is not
done above a directory or desktop-file.

BUG: 293511
FIXED-IN: 4.8.1
2012-02-08 17:48:28 +01:00
Peter Penz a3a19f4a06 Compact view: Don't hide items at the bottom when grouping is turned on
When grouping has been turned on, it was possible that items aligned
at the bottom have been hidden.

BUG: 291640
FIXED-IN: 4.8.1
2012-02-07 17:18:47 +01:00
Peter Penz 5369ee6819 Group header improvements
- Use a simpler background and colors as suggested by Martin Zilz.
  This is just an early draft, I need to post some comparison screenshots to
  Martin for review.
- Fixes of some layout issues that have been revealed because of adjusting
  the group header heights.
- More clever animation/no-animation detection when doing listview-property
  changes in parallel.
2012-02-06 23:31:49 +01:00
Peter Penz 7af39fb960 Fix potential endless loop in layout
Usecase:
- No scrollbar is shown
- Window size will be decreased so that a scrollbar gets necessary

The decreased window size minus the space required for the scrollbar
results in a relayout of the items. In 99 % of all
cases a decreased window size won't result in showing more items in parallel in
comparison to a larger window size. However in the remaining 1 % this can
happen (e.g. see bug 293318 for a sample). This results in an endless loop as
now no scrollbar is required anymore, the layout changes again, the scrollbar
is required again, ...

BUG: 293318
FIXED-IN: 4.8.1
2012-02-05 19:22:34 +01:00
Frank Reininghaus d0933155e2 Replace setExpanded(const QSet<KUrl>&) by expandParentItems(const KUrl&)
The use case of this function (Folders Panel) requires the expansion of
the parent items of a single URL, so it's not needed to handle a full
set of URLs in this function. Moreover, the issue that not only the
parents, but also the URLs themselves were expanded is fixed by this
commit.
(cherry picked from commit 89082ca391)
2012-02-05 15:59:59 +01:00
Peter Penz 72af3125a8 Icons view: Layout optimizations
- Assure that landscape-previews use the whole available width of the icon-area
  instead of only using the square width. This waste of space occured if the
  text-width was larger than the icon-width.

- Only use one margin instead of two between the icons and the text to improve the
  visual appearance (thanks to Martin Zilz for the hint)

BUG: 293268
FIXED-IN: 4.8.1
CCMAIL: martin@kreativkonzentrat.de
2012-02-04 22:22:19 +01:00
Peter Penz 1041f340a2 Show the value "Unknown" for the item-count only after it has been verified
During determining the item-count for directories just show an empty string
until either the item-count has been calculated or if the item-count is unknown.

Thanks to Nikita Skovoroda for the initial proof-of-concept patch.

BUG: 291823
FIXED-IN: 4.8.1
2012-02-03 23:12:12 +01:00
Peter Penz 313a03d448 The autoscroll timer should be only a single-shot timer 2012-02-03 17:06:59 +01:00
Peter Penz e20a6e59ea Folders Panel: Show expansion toggles for directories on ISO-images
When counting the number of sub-directories consider unknown file types
as potential directories. In the "worst case" an expansion toggle will be
shown although the directory contains only files, however from a performance
point of view this seems to be an acceptable compromise.

BUG: 292642
FIXED-IN: 4.8.1
2012-02-03 16:15:22 +01:00
Peter Penz 452c8b8ec8 Fix sorting issue when sorting by "size"
Root cause of the issue was an overflow in:
result = a - b;
where result is 'int' and a and b are 'KIO::filesize_t'.

BUG: 293086
FIXED-IN: 4.8.1
2012-02-02 16:03:15 +01:00
Peter Penz 110dd6de3c Fix pending zooming animation
If doLayout() is invoked with the 'NoAnimation' hint, it must be assured
that any ongoing animations are stopped.
2012-02-02 09:39:28 +01:00
Frank Reininghaus 6db0bec325 First version of a unit test for KItemListController
At the moment, only key press events are tested, and the current item
and selection after the event are verified.
Moreover, this commit makes sure that
KItemListController::keyPressEvent() really does not select anything
if the selection mode is NoSelection.
(cherry picked from commit 7457f4868c)
2012-02-01 22:08:16 +01:00
Peter Penz e854a3221a KFileItemModelRolesUpdater: Optimize updates
The asynchronous resolving to bypass performance bottlenecks is not necessary
anymore as multiple ranges can be inserted in one step now. This solves the issue
that e.g. opening a tree resulted in temporary unknown icons for a short period
of time.
2012-02-01 20:47:19 +01:00
Peter Penz 39348650d5 Don't animate items if the number of grid elements has been changed
Having animated items is useful when e.g. deleting or inserting one
item or when the size or position slightly changes by increasing the
zoom level or the window size. However if the number of rows or columns
change, the animation gets obtrusive and in this case lets just apply
the final layout.
2012-02-01 15:33:27 +01:00
Frank Reininghaus 530b91b9c7 Fix keyboard navigation issue when Home or End are pressed
The problem was that m_keyboardAnchorIndex and m_keyboardAnchorPos were
not updated when Home or End are pressed. This causes the following
unexpected behavior in Icons View: Press Home, then Right, then Down,
then Home, finally Down. One would expect that the first item in the
second row is the current item then, but before this commit, it was the
second one because the controller still remembered that the second
column was active before Home was pressed.
(cherry picked from commit 999234a94a)
2012-01-31 23:19:09 +01:00
Peter Penz 3872938944 Animation optimizations
Prevent that the moving-animation crosses other items when zooming or
changing the window size.
2012-01-31 21:24:38 +01:00
Peter Penz 8121bb14b1 Fix sorting issues
For some roles the sorting has not been implemented.

BUG: 292941
FIXED-IN: 4.8.1
2012-01-31 17:18:05 +01:00
Peter Penz 03bed41e73 Only move the items if at least one direction is within the item size 2012-01-30 16:52:06 +01:00
Peter Penz 6c39b4622f Further animation optimizations
- Assure a proper minimim width in the compact mode.
- Don't calculate the old position of hidden items to animate the
  moving. Just show them directly.
2012-01-30 13:01:13 +01:00
Frank Reininghaus 0a33aad3d2 Fix crash in Compact View if view height is smaller then item height
CCBUG: 292816
FIXED-IN: 4.8.1
(cherry picked from commit f5ecaee9c4)
2012-01-30 10:10:15 +01:00
Peter Penz d05ffe96f9 Make moving animations less obtrusive
Only animate the moving of items if the new position is within the same
row or the same column. Otherwise just fade in the icon on the new position.
This makes the the animations when resizing the window or changing the zoom-level
a lot more pleasant.

CCBUG: 289238
2012-01-29 18:31:57 +01:00
Peter Penz 2f3e84d8fb Fix regression: Respect "natural sorting" setting
BUG: 292270
FIXED-IN: 4.8.1
2012-01-28 22:10:47 +01:00
Peter Penz a89ed94378 Assure to mark an item as unhovered on a drag-leave event
BUG: 292501
FIXED-IN: 4.8.1
2012-01-28 11:04:49 +01:00
Frank Reininghaus c7d6f43a94 Handle folder names containing spaces correctly in the Folders Panel
The problem was that KFileItemModel::setExpanded() used KUrl::url()
to determine the names of the subfolders. This method encodes special
characters, such that comparing the folder names with the unencoded URLs
stored in the model fails.
Using KUrl::path(), which does not encode special characters, fixes the
problem.

CCBUG: 291781
FIXED-IN: 4.8.1
(cherry picked from commit 80d9bfec58)
2012-01-25 21:35:00 +01:00
Frank Reininghaus fbb73966b2 Make sure that Control+click toggles the selection state
This commit fixes a regression caused by the recent commit
9f711b5f2e.
CCBUG: 292250
(cherry picked from commit 84a9cc4bf6)
2012-01-23 19:38:26 +01:00
Frank Reininghaus a043163b61 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.
CCBUG: 291841
FIXED-IN: 4.8.1
(cherry picked from commit cc8f5b4939)
2012-01-19 19:57:51 +01:00
Frank Reininghaus 0b0b2cba93 Make PageUp/PageDown work in Dolphin's new view engine
BUG: 288748
FIXED-IN: 4.8.0
REVIEW: 103721
(cherry picked from commit e56a363aa6)
2012-01-18 10:46:47 +01:00
Frank Reininghaus 375b35762d Fix typo, which caused a Qt runtime warning when closing Dolphin
(cherry picked from commit dbf0bfffa7)
2012-01-18 09:39:07 +01:00
Peter Penz e96af09351 Avoid unnecessary animations when switching view modes
Thanks to Nikita Skovoroda for the initial patch and the analyses.

BUG: 290947
FIXED-IN: 4.8.0
2012-01-17 23:44:28 +01:00
Peter Penz 8b8091f275 Fix probably wrong alternative background color
Thanks to Nikita Skovoroda for the patch!

CCMAIL: chalkerx@gmail.com
2012-01-17 21:19:34 +01:00
Peter Penz 7f718123b2 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.

BUG: 290953
FIXED-IN: 4.8.0
2012-01-17 21:11:49 +01:00
Peter Penz ab61a6174e 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.

BUG: 291740
BUG: 291607
FIXED-IN: 4.8.0
2012-01-17 10:04:00 +01:00
Frank Reininghaus 555364c006 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).

BUG: 290854
REVIEW: 103703
FIXED-IN: 4.8.0
(cherry picked from commit 9f711b5f2e)
2012-01-16 20:03:49 +01:00
Peter Penz 8d7a2c96ea Don't select items if the selection toggle has been disabled 2012-01-15 10:51:46 +01:00
Peter Penz 8306a0fa6c Don't show a expanding-toggle in the Folders Panel if there are no subdirectories
BUG: 290745
FIXED-IN: 4.8.0
2012-01-15 10:41:44 +01:00
Peter Penz b09986ef27 Fix current-item indicator in combination with the cleanlooks style
Thanks to Christoph Feck for the hint.

BUG: 290536
FIXED-IN: 4.8.0
2012-01-14 11:31:06 +01:00
Peter Penz d5d65f545a Fix selection issue when expanding a tree
The selection anchor must be reset when changing the current item
to the root of the tree.

BUG: 290832
FIXED-IN: 4.8.0
2012-01-12 07:01:24 +01:00
Peter Penz 6584f06cd1 Prevent accessing an item with an invalid index 2012-01-11 16:15:19 +01:00
Peter Penz 5289e852c1 Fix issue that shift + drag does not move files
BUG: 291103
FIXED-IN: 4.8.0
2012-01-10 17:23:56 +01:00
Peter Penz 69f68a2349 Prevent generating previews all the time during downloading a large file
When downloading a large file the preview should not be recreated each time
a change-notification has been received. Create the preview after getting
the first file change, but postpone creating the next previews until no change
has been done during a longer period of time.

BUG: 290698
FIXED-IN: 4.8.0
2012-01-09 22:18:24 +01:00
Peter Penz fc600ed255 Revert patch using the native graphicssystem as default
I'm trusting Christoph Feck's advice here. Additionally the smooth scaling
has been activated to fix bug 290865.

BUG: 290865
FIXED-IN: 4.8.0
2012-01-07 18:21:21 +01:00
Peter Penz 636292bfcb Details view: Fix wrong expansion level
The calculation of the root-expansion level had been incorrect which
lead to a wrong indentation on some directories.

BUG: 290757
FIXED-IN: 4.8.0
2012-01-06 18:03:15 +01:00
Peter Penz afc55cc985 Fix issue that an empty directory is shown in the split mode
Root-cause was that the signal KDirLister::completed(KUrl) must be watched
by the model and not KDirLister::completed().

BUG: 290182
FIXED-IN: 4.8.0
2012-01-05 21:25:33 +01:00
Peter Penz 33eea8c929 Folders Panel: Activate folders on single-click
Even if double-click is used as default setting, the folders panel should
open folders with a single-click.

BUG: 289971
FIXED-IN: 4.8.0
2012-01-05 20:44:46 +01:00
Peter Penz c8d8556950 Fix style-issues in items when not using Oxygen
Thanks to Jonathan Marten and Christoph Feck for the analyses
and the patch.

Still open: The focus frame in cleanlooks is not drawn.

CCBUG: 290536
2012-01-05 20:18:21 +01:00
Peter Penz 7953913c9f Fix inconsistency in selection manager
When a selection has been done with non-linear ranges, it was possible that
the anchor item pointed to an invalid index that resulted into an invalid
selection.

As part of this fix the sorting for DolphinView::selectedItems() has been
disabled (if the caller assumes a sorted selection he must manually adjust it).

BUG: 288908
FIXED-IN: 4.8.0
2011-12-30 00:09:42 +01:00