| Age | Commit message (Collapse) | Author |
|
|
|
Summary:
This patch aims to improve user experience by not allowing the user to drag and drop a folder into itself.
The current behavior shows a red message at the top which can then be closed by the user, instead of relying on that, this patch disables the option of dropping onto self and uses the "Invalid drop target cursor" to highlight the behavior.
BUG: 307747
Since spectacle is unable to screenshot the cursor overlay, find attached a photo of the screen.
{F3787651}
Test Plan:
1. Drag a folder.
2. Drop it onto itself.
Reviewers: #dolphin, elvisangelaccio, ngraham, rkflx, dfaure
Reviewed By: #dolphin, elvisangelaccio, rkflx, dfaure
Subscribers: rkflx, ngraham, elvisangelaccio, dfaure, anthonyfieroni, #konqueror
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D6281
|
|
Summary:
Make renaming of files/folders faster by clicking a second time on the items text to start renaming.
BUG: 205157
Test Plan:
This feature works as follows:
1. select an item by single-click, or one is already selected
2. wait the "double-click-interval"
3. click on the items text
4. none of the cancellations (see below) happens within the double-click-interval
5. inline-renaming starts
Cancellations:
* open any file/folder
* select different item(s)
* start dragging items
* Dolphin loses focus
This feature is just enabled while "Double-click to open files and folders" in system-settings and "Rename inline" in Dolphin are enabled.
Reviewers: #dolphin, #kde_applications, elvisangelaccio, emmanuelp, ngraham, markg, rkflx
Reviewed By: #dolphin, #kde_applications, elvisangelaccio, ngraham, rkflx
Subscribers: rkflx, markg, funkybomber, sars, elvisangelaccio, ngraham
Differential Revision: https://phabricator.kde.org/D7647
|
|
If the QMimeData object created by PlacesItemModel doesn't have any url
set (e.g. when dragging unmounted devices), it is detected by the
resulting DropJob as "drop raw data" because the mimeData has one format set
(the internalMimeType() used for dragging between places items).
This results in a crash because the DropJob schedules a PasteJob, but in
the meantime the QDrag from Dolphin ends and deletes the mimeData object
that was passed to the paste job.
The fix is to prevent the DropJob in the first place. We can introduce a
new internal mimetype that we use to blacklist drops-onto-items (while
still allowing drops-between-items). This way PlacesItemModel can set
the blacklist flag if the mimeData is being created without urls.
BUG: 373005
FIXED-IN: 17.04.3
Test Plan:
Drag and drop an unmounted device to another place item or the DolphinView, doesn't crash anymore.
Dropping the unmounted device between two places item still works.
Differential Revision: https://phabricator.kde.org/D5535
|
|
There is a bug that can happen in the following situation:
- user right clicks to open a menu
- that context menu grabs input
- the QGrabphicsView also notes the mouse was pressed, but not that the
mouse was released because it doesn't have mouse events any more
- when a user clicks to dismiss the menu and then without moving clicks
quickly again to send, we don't get another press event because the
QGraphicsScene still thinks the mouse is pressed from the first time the
context menu was shown and
QGraphicsScenePrivate::lastMouseGrabberItemHasImplicitMouseGrab still
points to the old object.
This is a known bug in QGraphicsView and you can see
QGraphicsScenePrivate::sendMouseEvent has a workaround to reset the
lastMouseGrabberItemHasImplicitMouseGrab on mouse moves, with the
comment: "This is a temporary fix for until we get proper mouse
grab events."
Realistically this isn't going to happen in QGraphicsView now.
We do get a double click event though. By checking for double click
events we can grab those missed clicks. It doesn't cause any other side
effects because normally the context menu will fire after the first
click and this rarely gets processed.
REVIEW: 129960
|
|
|
|
present, because KFileMetaDataWidget is in KDELibs4Support)
Reviewed-By: Vishesh Handa
|
|
|
|
instead of implementing the single/double click settings on our one.
REVIEW: 122311
|
|
|
|
Qt5: Replace Qt::XButton1 by Qt::BackButton and Qt::XButton2 by Qt::ForwardButton
|
|
|
|
Since the master branch had never been merged into frameworks since the
creation of the frameworks branch, I had to fix a couple of merge
conflicts and make another change in order to make it build - I hope I
did not get anything wrong.
We should probably merge master into frameworks on a regular basis from
now on.
CCMAIL:[email protected]
Conflicts:
dolphin/src/dolphinmainwindow.cpp
dolphin/src/search/dolphinfacetswidget.cpp
dolphin/src/statusbar/dolphinstatusbar.cpp
dolphin/src/views/dolphinview.cpp
|
|
This conversion was performed automatically using convert2qt5signalslot.
The only manual changes required were changing the overloaded signal
KDirLister::redirection and KDirLister::completed from KUrl to QUrl. All
other cases were no problem since these signals are not overloaded and a
static_cast for disambiguation is not necessary.
Code inside HAVE_BALOO is not converted yet, will do that once I can build
a version with Baloo.
|
|
FIXED-IN: 4.13.0
REVIEW: 116028
BUG: 299328
|
|
Before this patch, pressing one of these buttons while an item is
hovered selected this item. The motivation for this behavior was to
provide a fast way to select items. However, this was counter-intuitive
and confusing for many users.
BUG: 310288
FIXED-IN: 4.13.0
REVIEW: 116469
|
|
|
|
If we detect that the user pressed the back/forward buttons while
hovering the empty space of the view, such that
DolphinView::slotMouseButtonPressed(int, Qt::MouseButtons) will request
that Dolphin navigates back/forward in the history, handling the mouse
press event should stop. This prevents the possible unexpected selection
of items in the new directory.
BUG: 327412
FIXED-IN: 4.11.4
|
|
Since Dolphin 2.0, we have stored the selected items in a QSet<int>,
which is neither space-efficient nor particularly fast when inserting
many items which are in a consecutive range.
This commit replaces the QSet<int> by a new class "KItemSet", which
stores the items in a sorted list of ranges. For each range, we only
store the first index and the length of the range, so we need a lot
less memory for most common selection patterns, and we also save quite
a few CPU cycles in many situations, because adding an item to the
KItemSet will in many cases not need a memory allocation at all, and
it's particularly easy when inserting sorted items into the KItemSet in
a row.
KItemSet contains a minimal subset of QSet's API which makes it
suitable as a drop-in replacement for our needs. It also has iterators,
such that the items can be iterated through easily, also with foreach.
One advantage of KItemSet compared to QSet<int> is that the items are
always iterated through in ascending order.
REVIEW: 113488
|
|
BUG: 323181
FIXED-IN: 4.12.0
REVIEW: 113234
|
|
Before this commit, we only added pressed keys to the search string if
they have no other meaning. This means that files containing a Space in
their name could not be searched because Ctrl+Space toggles the
selection state of the current item, and Space alone selects the
current item.
After this commit, Space is added to the search string if
(a) the key press did not have any other effect, i.e., if Ctrl was not
pressed, and the current item is selected already, and
(b) a keyboard search has been started already (to prevent unexpected
effects when pressing Space accidentally - I think that it's rather
uncommon to have files whose names start with a Space - and to make
the unit test simpler).
I modified the unit test of KItemListController, which did not test
keyboard search yet. This uncovered a small problem in
KItemListController::slotChangeCurrentItem() when NoSelection mode is
used. It's not really relevant for anything that is executed inside
Dolphin, but I still fixed it to make the unit test happy.
BUG: 324479
FIXED-IN: 4.11.3
REVIEW: 113071
|
|
This fixes the problem that the drop indicator might still be shown
after the drag&drop operation in the Places Panel is finished.
REVIEW: 111037
|
|
When doing a drop, a check is performed to see if it is within x pixels
from the top or x pixel from the bottom of the rect. If it is, then the
drop is considered a drop between items.
This x was fixed to qMax( 4, myStyleOption.padding ) which would
generally be 4. This is fine for some cases, but when the rectangle size
increases then this 4 pixels is not enough. Hence this 'x' is now being
set to 30% of the rectangle height.
By default the rectangle height is 20 pixels, so x is now 6 instead of 4
in the default case, which does make it slightly easier.
Also, this in-between-items check is only performed when moving from one
item to another. This is not good since if you enter the item and the
bottom, the indicator is shown, and then as to start moving it up it
stops showing, and then it should start showing again as you approach
the top edge.
Modified the code to run the check on every mouse drag event even if the
hovered item has not changed.
Both these changes combined make it much easier to drag and drop items.
REVIEW: 110342
|
|
Fixes a regression introduced by commit
7a364cbf489af25e123d18713523151a3a53f814.
Patch reviewed and pushed by Frank Reininghaus.
BUG: 313342
FIXED-IN: 4.10.1
|
|
|
|
in Konqueror. The original fix, commit 4f7ed2b, prevents drag and drop from
working correctly.
CCBUG: 302329
REVIEW: 106569
|
|
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 9ab8bcd6aa3ce5d96ee380d5f22d77c2f0a38881)
|
|
|
|
Conflicts:
konq-plugins/dirfilter/dirfilterplugin.cpp
konq-plugins/dirfilter/dirfilterplugin.h
|
|
(Double-Click - show folder content and expand folder)
BUG: 295573
REVIEW: 106497
FIXED-IN: 4.9.2
|
|
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
|
|
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
|
|
|
|
Added the calls to updateAccessibility, for DragDrop & Focus scenarios
|
|
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 f4c960025167b7c7e04e1290ac9d9fee03a9b62d)
|
|
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
|
|
- 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
|
|
This makes Dolphin 2.0's behaviour consistent with Dolphin 1.x.
BUG: 300788
FIXED-IN: 4.9.0
|
|
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 93daadae28f7e3b5cffd7b713a2a287e4fa62ccd)
|
|
|
|
The dropping itself has not been implemented yet.
|
|
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.
|
|
BUG: 299108
FIXED-IN: 4.9.0
|
|
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 68ce395a192362969783615e50a8004d3029eb7e)
|
|
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 d3b1312d3edc615b03fb17c1a5fa62ccb61cdabd)
|
|
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.
|
|
- 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
|
|
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
|
|
Thanks to Sebastian Dörner for the patch!
REVIEW: 101335
BUG: 181823
FIXED-IN: 4.9
|
|
BUG: 295584
FIXED-IN: 4.8.2
|