Commit graph

59 commits

Author SHA1 Message Date
Peter Penz 9e6d73aef8 Fix issue when moving items to trash
KDirLister does not emit a completed() signal when deleting files,
only when files are listed.
2011-09-01 15:48:22 +02:00
Frank Reininghaus 4582bca90b Implement DolphinView::simplifiedSelectedUrls()
Makes it possible to trash and delete items.
2011-08-30 19:05:09 +02:00
Frank Reininghaus 9dc7cd79e7 KItemListKeyboardSearchManager improvements and unit tests
This commit implements a 'repeated key search' feature, similar
to QAbstractItemView, and adds unit tests for keyboard searching.
2011-08-30 18:22:56 +02:00
Vishesh Yadav 7c99bf5f6b DolphinView zoom with CTRL+MouseWheel REVIEW: 102490 2011-08-30 18:16:27 +05:30
Peter Penz a087d77ba7 Fix context-menu selection issue
When requesting a context menu above a non-selected item, the
existing selection must be cleared.
2011-08-29 20:46:37 +02:00
Peter Penz 1b88652b85 Renamed some signals for consistency with KItemViews classes 2011-08-29 20:14:33 +02:00
Tirtha Chatterjee 6e6b4ce75c Added the functionality to activate items by pressing 'enter' or 'return' key on them, equivalent to a mouse click.
REVIEW: 102450
2011-08-29 21:13:36 +05:30
Tirtha Chatterjee d8ce0bfe56 Removed a warning of unused variable 2011-08-29 14:29:19 +05:30
Tirtha Chatterjee afca8efa26 Added support for highlighting items by typing their name on the keyboard. 2011-08-29 04:12:05 +05:30
Frank Reininghaus b01c73607b Control-rubberband selection toggles the selection state 2011-08-28 19:16:14 +02:00
Peter Penz 7f5fb3ae2c Adjust the current item when selecting an expansion toggle 2011-08-27 23:38:08 +02:00
Peter Penz d99d5fbea7 Improve the autoscrolling for the rubberband selection
This modifications will also allow to do an autoscrolling in an
easy way for drag and drop operations (not fully implemented yet).
2011-08-27 20:13:22 +02:00
Peter Penz 4905667ada Minor simplification 2011-08-27 13:38:14 +02:00
Tirtha Chatterjee 12921754e1 Respect the KGlobalSettings::singleClick() attribute, function accordingly
REVIEW: 102447
2011-08-27 16:01:02 +05:30
Frank Reininghaus 78a38f2000 Remove unneded function KItemListSelectionManager::anchorItem() 2011-08-27 10:23:40 +02:00
Frank Reininghaus ea765ba573 Simplify KItemListSelectionManager
1. The anchorChanged() signal is not needed.
2. The only place where setAnchorItem() is called is in
   beginAnchoredSelection() -> merge both functions.
2011-08-26 18:39:32 +02:00
Peter Penz 26648a0264 Fix issue that removing an item is not recognized
Thanks to Tirtha Chatterjee for the patch!

REVIEW: 102435
2011-08-26 08:09:50 +02:00
Peter Penz a14d8bf655 Fix smooth-scrolling issue in combination with key-presses
If e.g. the down-arrow-key is pressed constantly the view does not
scroll as the animation always will get restarted. Assure that
the animation proceeds in this case.
2011-08-25 16:53:45 +02:00
Peter Penz 04dec30c80 Fix smooth-scrolling issue
The smooth-scrolling may only get turned off after finishing the
animation, if the scrollbar is not currently modified by the user.
2011-08-25 15:44:23 +02:00
Peter Penz cae90c168e Fix issues with the anchor selection
Don't change the selection if the anchor is invalid. This fixes
the issue that items might get selected during changing a directory.
2011-08-24 22:37:16 +02:00
Peter Penz bf20b404c8 Dragging and selection fixes
- Don't clear the selection on mouse-press events, do it (if
  allowed) in the mouse-release-event. Otherwise dragging of
  multiple selected items would not be possible.
- Don't clear the selection when the context-menu gets opened
  by a right-click.
- Fix issue that dragging is not possible after the first
  drop that has been canceled.
2011-08-24 21:31:19 +02:00
Peter Penz 649cfb02af Improve KFileItemModel::createMimeData()
Use the same approach like in KDirModel::mimeData().
2011-08-24 20:24:50 +02:00
Peter Penz 8401080778 Interface cleanups for drag and drop support 2011-08-24 18:12:52 +02:00
Peter Penz 5ba4aeba3e Rough draft for getting back drag and drop support
Includes a lot of TODOs but is a base for getting back full drag
and drop support quite soon.
2011-08-23 20:58:22 +02:00
Peter Penz 6a228cdbd9 Fix rubberband-issue in combination with Shift- and Control-key
The old selection must be remembered before starting the rubberband
selection, otherwise it would not be possible anymore to deselect
items that have been selected by the rubberband itself.
2011-08-20 23:27:23 +02:00
Peter Penz 2f0ceedae0 Respect Shift- and Control-key for the rubberband selection
If the user has pressed the Shift- or Control-key during the
rubberband selection, the previous selection should not be cleared.
2011-08-20 23:12:54 +02:00
Peter Penz c9f4e1baae Simplify rubberband selection for views that have only one column
In this case the rubberband automatically uses the whole width of
the view.
2011-08-20 23:04:01 +02:00
Peter Penz 4aedb07674 Select items when using the rubberband 2011-08-20 22:53:19 +02:00
Peter Penz afcb8cd53c Respect rubberband direction when autoscrolling
The autoscrolling should not be triggered if the rubberband
direction is different from the autoscroll direction
2011-08-20 14:21:05 +02:00
Peter Penz 074acd8009 Fix possible endless recursion when using the rubberband
If the autoscrolling has been activated when using the rubberband,
it was possible that an endless recursion occured as the
autoscrolling triggered a change of the rubberband which triggered
a change of the autoscrolling etc.
2011-08-20 13:54:20 +02:00
Peter Penz dbe2152912 Provide basic rubberband functionality
This is just a rough draft: The rubberband gets visible and an
automatic scrolling is done if the autoscroll-margins have been
reached. However currently no items get selected yet. Currently
the autoscrolling has a severe bug if the scrollbars are manually
changed before or after a rubberband selection.
2011-08-18 23:14:30 +02:00
Frank Reininghaus 63e82a2b3b Add unit test for expanding folders in KFileItemModel 2011-08-15 21:06:06 +02:00
Frank Reininghaus dd71994b6c Fix for KFileItemModel::expansionLevelsCompare
Before this commit, expanding and collapsing folders in the details
view would lead to strange results in a folder with the items "a",
"a/a/", "a/a/1", "a/a-1/", and "a/a-1/1".  The problem was that the
comparison between "a/a/1" and "a/a-1/1" went wrong: the first
character in which the paths differ is a "/" in one of the items, such
that the code that reduces this 'index' in
KFileItemModel::expansionLevelsCompare in order to find the 'common
path' did nothing because it checked that only *one* of the two items
does not have an "/" at the position 'index'.
2011-08-15 13:05:53 +02:00
Frank Reininghaus c12f0f8c61 Remove incorrect asserts
They could lead to crashes if the Details View is used and the
view is not wide enough to show all columns for the items.
2011-08-14 19:35:06 +02:00
Frank Reininghaus 2476f632de Keep the current item visible in the view 2011-08-14 17:21:18 +02:00
Frank Reininghaus a7060e6fec Enable switching rows or columns using the keyboard 2011-08-14 17:19:47 +02:00
Peter Penz 188d1a9c7d Move drawing of textbackground to KItemListWidget
As the textbounding-rectangle is now a property of KItemListWidget
also the default visual appearance is moved now from
KFileItemListWidget to KItemListWidget.
2011-08-14 16:11:57 +02:00
Peter Penz 5472115751 Rename KItemListWidget::hoverBoundingRect()
It has been split now to iconBoundingRect() and textBoundingRect().
This is required to implement the rubberband in an efficient way
and makes it more explicit what rectangle is returned.
2011-08-14 15:47:31 +02:00
Frank Reininghaus 7b911df33e Two small selection improvements in DolphinView
1. Implement DolphinView::clearSelection().
2. Simplify DolphinView::invertSelection().
   I found, fixed, and unit-tested a bug in the selection
   manager which was uncovered by this change.
2011-08-14 11:05:19 +02:00
Frank Reininghaus 98e859b0c3 Implement basic keyboard navigation in Icons and Compact View
Things that are still missing:
1. Moving to the previous/next row with Up/Down in Icons View,
   moving to the previous/next columns in Compact View.
2. Navigation in Details View.
Note that scrolling to the current item doesn't work yet, and
that the view does not have keyboard focus initially, so one has
to click the view before keyboard navigation and seleciton works.
2011-08-13 18:24:02 +02:00
Frank Reininghaus fabf5681f5 KItemListContainer: show only the scroll bar that is needed
Up to now, KItemListContainer would show both a vertical and
horizontal scroll bar after a view mode change. This commit
fixes that by setting the maximum and the value of the scroll
bar that is not needed to 0 in
KItemListContainer::updateScrollBars().
2011-08-13 14:35:18 +02:00
Peter Penz c79949ed7f Fixes for "krazy" 2011-08-13 13:00:32 +02:00
Frank Reininghaus 58ab93541c Implement selection of items using mouse clicks. 2011-08-13 11:51:38 +02:00
Frank Reininghaus 9b83d15be4 Test signal emission on selection changes
This commit adds a unit test that changes the selection in various
ways, verifies the result and checks that the selection manager's
selectionChanged signal has been emitted correctly. The test is
data-driven, so I hope that most further testing needs can be
fulfilled by adding new test data.

Moreover, I changed selectedItems() such that the anchored
selection is only taken into account if anchor and current item
are different. The reason is that in some situation the anchor
should not be selected initially (i.e., if an already selected
item is Control-clicked). If the anchor should be selected from
the beginning, it must be selected manually.
2011-08-11 14:23:53 +02:00
Frank Reininghaus 01ff60edee Emit KitemListSelectionManager's selectionChanged signal correctly
This commit makes sure that the signal is emitted with the correct
current and previous selection after a selection change, and
that the signal is emitted exactly once in
KItemListSelectionManager::itemsInserted and
KItemListSelectionManager::itemsRemoved.
2011-08-11 12:23:21 +02:00
Frank Reininghaus a03f7dcd22 Implement beginAnchoredSelection() and endAnchoredSelection().
Unit test included.
2011-08-10 15:21:26 +02:00
Frank Reininghaus 6d6fe76dcf Make sure that key presses are handled in KItemListController
Key press events are forwarded from KItemListContainer to
KItemListController. Right now, only the 'Home' and 'End' keys
are handled (arrow keys require some more work because their action
depends on the view mode).
Note:
1. Before key presses are handled, the view has to be clicked with
   the mouse. It seems that the view does not have the keyboard
   focus initially.
2. The view does not scroll to the new current item yet.
2011-08-10 14:30:32 +02:00
Frank Reininghaus 2e3b7e6dd3 Always use the 'Select' mode for anchored selections
In Dolphin, we don't actually use the 'Deselect' and 'Toggle'
modes for anchored selections, so we can just remove these
modes and always use 'Select' to reduce code complexity.
2011-08-10 13:53:41 +02:00
Frank Reininghaus 258a29f61f Initial support for anchored selections in the selection manager 2011-08-10 11:43:05 +02:00
Frank Reininghaus bb80d1877a Update the anchor item when items are added or removed
If items are added or removed in the model, not only the
current item, but also the anchor item, which is the
starting point for any selections via Shift+Click or
Shift+Key, needs to be updated.
BUG: 262638
FIXED-IN: 4.8.0
2011-08-10 10:38:24 +02:00