┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistcontroller.cpp
AgeCommit message (Collapse)Author
2023-02-05Add clang-format and format code as in FrameworksSerg Podtynnyi
2023-01-11Make space shortcut for selection mode view-local instead of globalFelix Ernst
Before this commit, the "Space" keyboard shortcut was bound to triggering selection mode by default. After this commit, pressing "Space" will only trigger selection mode when the file view area has keyboard focus. Pros: + Other buttons in the UI can be triggered with Space once again just like it is expected from an accessibility point of view. + "Type-ahead" searching works once more when typing the space char for file names containing such a space char. Cons: - "Space" can no longer be used to add the currently underlined item to the selection. Instead "Ctrl+Space" needs to be used. (However, this is the current status anyway unless a user has manually unbound "Space" as a shortcut from Selection Mode.) - The Selection Mode action will no longer show "Space" as its shortcut in menus. Overall, I see solutions to all of these problems, but they seem over-engineered for the issues they are trying to solve, so I believe this somewhat small commit is the best solution for now. BUG: 458282 BUG: 458281 CCBUG: 463048 FIXED-IN: 23.04
2022-10-08Replace context menu on long press with selection modeMarco Martin
on long touch (and not on mouse press) don't pop up the context menu anymore but enter selection mode, similar behavior to mobile applications. the full context menu is still available from the actions toolbar appearing in selection mode
2022-09-26Remove unused includesLaurent Montel
2022-08-27This commit removes the ability to enter selection mode byFelix Ernst
click-and-holding with a pointing device like a mouse. This functionality was originally implemented because it seemed useful to save users the effort of entering selection mode explicitly by using its corresponding action. However, click-and-holding to trigger anything is not really an expected behaviour. (This contrasts with touch devices where press-and-holding is common to trigger something.) Aside from the above reasoning, the click-and-hold behaviour was also buggy so that selection mode was entered in a couple of situations that weren't strictly about click-and-holding. So this commit removes the functionality and the bugs. BUG: 457973 BUG: 458129 CCBUG: 457975
2022-08-14Simplify implementation of mouse long-press detectionFelix Ernst
Now uses the same method as for touch long-press detection.
2022-08-14Address Nate's UX feedback: Episode 2Felix Ernst
- Make Esc leave selection mode and have it only clear selection when already outside selection mode. - Let translators know that the "More" overflow button should only have a short text on it. - Fix a crash that happened when any code tried to exit selection mode even though selection mode had never been enabled to begin with.
2022-08-14Make touch tap to select items work in selection modeFelix Ernst
Thanks to Steffen Hartleib for the help.
2022-08-14Improve naming consistency and leave mode on EscapeFelix Ernst
2022-08-14Keep working towards a reviewable stateFelix Ernst
- Various code improvements - Smoother animations - The bottom bar in General Mode only becomes visible if items are currently selected - Removed the selection mode action from the default toolbar since it can already be toggled in various ways - More documentation - Some cleaning
2022-08-14Add Selection ModeFelix Ernst
The selection mode action is a checkable toggle action named "Select Files and Folders" which has "Space" as the default shortcut. In selection mode a bottom bar with contextual actions is shown. These should mostly mirror the actions which are available through the right-click context menu aka DolphinContextMenu. Resizing of the window might make a overflow button appear in the bottom selection mode bar. This commit makes press and hold in the view activate selection mode. This behaviour is not triggered if the press and hold is used to either start a rubberband selection or a drag operation within a short time. The length of the short timeframe is defined by a QStyleHint. This is currently not implemented in touch because I can't test it. Mix the selection mode bars' background colors using a nice combination of colors from the current color scheme BUG: 427202
2022-07-11portalize drag urlsHarald Sitter
this enables sandboxed application to receive drop events
2022-06-16Don't consider drops on a row as drops on the row's itemFelix Ernst
Since d3839617193e92463806580699caa595c892b8a6 in details view mode clicking anywhere within the row is considered a click on the item. That commit also changed it so that dropping files anywhere inside a row would make it so the files are received by the folder of that row. This commit reverts the drop behaviour to be identical to the old one. I am having trouble explaining why this is better because one can look at it in different ways. Bottom line is that one doesn't really feel like one is dropping files inside a folder unless the mouse cursor is actually directly above a folder's icon or name. Another argument is that it is normal behaviour to just throw files onto an application and the files then being opened by it. Having potentially large parts of the view area covered by the rows of folders means that there has to be more of a conscious effort to not drop the files inside one of the folders by accident while with this commit one has to aim precisely onto a folder to do it intentionally. CCBUG: 453700
2022-05-27Remove hover highlight before opening view context menuFelix Ernst
If one was fast to open the right-click context menu on the row of an item in details view mode, the hover highlight would persist while the context menu for the view was open. This one-liner makes it so the highlight on the row is always removed before the right-click context menu for the view is opened so it is as clear as possible that the newly opened context menu has no relation to the fileItem.
2022-05-27Fix paste on row while in details view modeFelix Ernst
Before this change, right-clicking the row of an unselected item in details view mode would be in a weird state: - It didn't really count as a click on the item because the item didn't get selected by this click before opening the context menu. - It didn't really count as a click on the view background either because the actions that showed up depended on the item in that row. This commit fixes this by considering a right-click in the same row as an unselected item as a click on the view background. The behaviour of right-clicking the icon or name of a file directly is unchanged. This fixes the following bugs: - The Paste action that shows up when right-clicking in the unselected row of a folder now works (instead of doing nothing). It now pastes the clipboard contents onto the view background. - When right-clicking the unselected row of a file (not a folder) a Paste action once again shows up.
2022-04-20Don't deselect on Ctrl+Right-ClickFelix Ernst
(Part of my work towards !273) Currently, when items are selected and a user right-clicks a selected item while having the Ctrl key pressed down, the item is first deselected and then a context menu is opened that doesn't involve the item that was just deselected. This is slightly confusing because normally one right-clicks an item to see its context menu. Right-click being able to deselect an item seems like unintended functionality in the first place but in this scenario it also means that the intended opening of a context menu for the pressed item doesn't even happen. There is a good chance that nobody is even aware of this behaviour because the normal way to deselect an item would be to Ctrl+Left-Click if anything. Why would someone choose to open a context menu and deselect items in a single step? Why would they have selected an item they don't want to open a context menu for in the first place? Because of a discussion in this merge request deselecting on Ctrl+Middle-Click was also removed for consistency with Ctrl+Right-Click and Ctrl+Shift+Middle-Click. This commit also makes a later implementation of a selection mode more straightforward.
2022-04-04Merge branch 'release/22.04'Felix Ernst
2022-04-04Improve details mode ctrl-press rubberband creationFelix Ernst
Since d3839617193e92463806580699caa595c892b8a6 dragging the highlighted row of already selected items in the details view mode will begin a drag operation of all selected items. As a unintended side-effect of this change, dragging the row of a previously unselected item while holding the control key would also begin a drag operation. After this commit, dragging the row of a previously unselected item while holding the control key in details view mode will instead create a rubberband. Ctrl-dragging the item's icon or text directly will drag the item as expected. With this change, using multiple rubberbands to select scattered items among a list of items should be as convenient as it was previously. BUG: 452181
2022-04-01Merge branch 'release/22.04'Felix Ernst
2022-04-01Fix tooltip closing while mouse moves over itemGeorge Florea Bănuș
The itemHovered signal is emitted whenever the mouses moves causing the tooltip to close.
2022-03-23Using the gesture recognizer from KWidgetsAddonsSteffen Hartleib
Using the gesture recognizer from KWidgetsAddons, so that the source code for the gestures is only in one place
2022-03-04Always select items on activationFelix Ernst
There is an unintended side-effect in d3839617193e92463806580699caa595c892b8a6 which this MR fixes. Normally in Dolphin, when clicking on an item to open/activate it, it is both selected by the click and opened/activated. Prior to this MR, the item wasn't selected when all of these conditions were met: - Use ActivateItemOnSingleClick also knwon as single-click mode - Have more than one item selected already - Click on an item that was previously not selected Prior to this MR, the click would deselect all items and activate the clicked item but not select it. With this MR, the click will deselect all items, activate the clicked item and also select it and move the anchor there. When testing this with folders, make sure to navigate back after activating the folder. The folder should then still be selected. This is then consistent with the behaviour when the specific conditions mentioned above are not met.
2022-01-16Full row highlight implementationTom Lin
This commit implements full-row selection and hover highlights for the details view mode. This commit also contains fixes for 444680, 444753, both uncovered during this change. BUG: 181438 BUG: 444680 BUG: 444753 FIXED-IN: 22.04
2021-12-28kitemlistview: Port KItemListView::itemAt to std::optionalFushan Wen
Use `value_or(-1)` for those functions that don't use `std::optional`.
2021-12-17Enable Ctrl/Shift-Click to open folder in a new tab/windowAlessio Bonfiglio
and more
2021-01-10Emit "itemMiddleClicked" when Ctrl-clicking a view in single selection modeKai Uwe Broulik
When Ctrl can't cause a change in selection, so instead emit `itemMiddleClicked`. This way one can Ctrl-click a Place or folder in Folders panel to open it in a new tab, similar to what web browsers.
2020-10-23Compile with QT_NO_KEYWORDSAlexander Lohnau
2020-10-23Compile without foreachAlexander Lohnau
2020-10-04Don't trigger rubberband with back/foward mouse buttonsAhmad Samir
Right now the back/foward mouse buttons work, but also if you hold either of them and move the mouse the rubberband selection is triggered. This is the correct fix (instead of commit d0c71a1435bc9d), to match the original code before the touch events patches, we need to check the back/foward buttons after mouseButtonPressed is emitted and before triggering the rubberbad selection.
2020-09-26Fix build failure after last commitElvis Angelaccio
2020-09-26Allow interaction with folder/files with the stylus againSteffen Hartleib
This Patch works for Wayland and X. BUG: 426582
2020-09-20Fix mouse back/forward buttonsAhmad Samir
We need to emit mouseButtonPressed (now in the onPress method) before the check needed to not select items on back/foward mouse button press events.
2020-09-13Improve Touch supportSteffen Hartleib
With this patch dolphin now supports the following touch gestures: * Tap gesture to interact/open with directories, files and so on * TapAndHold and release gesture for access to the context menu (main window, panel folder, places and information) * TapAndHold and moving gesture for drag and drop action (main windows, panel folder and places) * pinch gesture for zoom in main window * kinetic scrolling (QScroller) for main window, panel folder, panel places, panel information, setting preview and service * two fingers swipe gesture to left, right and up as shortcut to navigate back, forward and up * two finger tap gesture to toggle item selection, similar to Ctrl and left mouse click FEATURE: 385066 FIXED-IN: 20.11.80 You are currently rebasing branch 'touch' on '85241a924'.
2020-09-05Merge branch 'release/20.08' into masterElvis Angelaccio
2020-09-05Revert "Set a better defaultDropAction for dragging"Elvis Angelaccio
This reverts commit 4440e961a07aaee5b5da7c8967ff05de14808ad4. BUG: 425757 BUG: 426196 FIXED-IN: 20.08.2
2020-08-31Port away from deprecated Qt::MidButtonLaurent Montel
2020-08-25Output of licensedigger + manual cleanup afterwards.Elvis Angelaccio
Unfortunately licensedigger does not strip the trailing * characters. While at it, use a common style for all source files.
2020-03-30Set a better defaultDropAction for draggingTranter Madi
Summary: Because we use KIO::DropJob to determine the dropAction, so changing this one does not change anything else except the default cursor from the copy icon to the closed-hand one. Test Plan: Drag files without holding any modifier key and see the cursor. Reviewers: #dolphin, ngraham Reviewed By: #dolphin, ngraham Subscribers: kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D28370
2020-03-25Update dragCursor while draggingTranter Madi
Summary: While dragging, the user could want to change the modifier, so we should call event->acceptProposedAction() to do update the dragCursor. FIXED-IN: 20.04.0 Test Plan: While dragging files, change modifiers between Ctrl/Shift/Alt... and move the mouse at least 1px to see the cursor changes. Reviewers: #dolphin, meven, ngraham, davidedmundson, elvisangelaccio Reviewed By: #dolphin, elvisangelaccio Subscribers: elvisangelaccio, kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D28017
2019-11-16Use URLs with transport encryptionYuri Chornoivan
2019-11-09Remove unnecessary semicolons after Q_UNUSEDElvis Angelaccio
GIT_SILENT
2019-10-26When the selection is deselected, restart the keyboard search from the beginningMéven Car
Summary: BUG: 411538 FIXED-IN: 19.12 Test Plan: Open a directory with 3 files starting with the same letter. 1. Press this letter key twice 2. The second file is selected 3. Deselect the file with the mouse or using Esc 4. Wait 1 second 5. Press the same key again Before: The third file gets selected After: The first file get selected ctest Reviewers: #dolphin, elvisangelaccio, ngraham Reviewed By: #dolphin, elvisangelaccio, ngraham Subscribers: ngraham, kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D23716
2019-10-20Avoid emitting twice twice selectionChanged when keyboard changes the ↵Méven Car
selection, fix slotChangeCurrentItem Summary: In KItemListController::slotChangeCurrentItem searchFromNextItem use was bugged : The two branches of `if (searchFromNextItem)` both looked for the next keyboard with indexForKeyboardSearch(text, currentIndex (the first one with just a +1 modulo). But when searchFromNextItem is false, we are supposed to start to look for the next indexKeyboard from the start of the list `0`, not from the `currentIndex` Reviewers: elvisangelaccio, #dolphin Reviewed By: elvisangelaccio, #dolphin Subscribers: kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D24505
2019-07-17Fix rubber band not going away after right-clickJackson Reed McNeill
Summary: Fix rubber band not going away after right-click in the folder view Test Plan: Hold left click Drag to make rubber band Right click Reviewers: #dolphin, ngraham, elvisangelaccio Reviewed By: #dolphin, ngraham Subscribers: elvisangelaccio, ngraham, kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D21590
2019-06-05Scroll when pressing PageUp/PageDownTranter Madi
Summary: Add `PageUp/PageDown` to the `navigationPressed` variable. Remove the `m_view->firstVisibleIndex()` and `m_view->lastVisibleIndex()` tests because sometimes it does not work correctly. BUG: 407118 Test Plan: Press PageUp/PageDOwn: it scrolls Press Up/DOwn: it always scrolls Reviewers: #dolphin, Zren, cfeck, elvisangelaccio Reviewed By: #dolphin, elvisangelaccio Subscribers: elvisangelaccio, kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D21573
2019-04-12Scroll to item if it's not visible on keyPressTranter Madi
Summary: Always scroll to item if it's not visible on keyPress, even if it's the current index. Test Plan: Select the last item, scroll up to make it not visible > press the `End` key > Dolphin now scrolls to that item. Reviewers: #dolphin, ngraham, elvisangelaccio Reviewed By: #dolphin, ngraham, elvisangelaccio Subscribers: elvisangelaccio, kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D20152
2018-12-02[KItemListController] Drop unused functionsElvis Angelaccio
2018-03-10Fix some compile warningsRoman Inflianskas
Reviewers: markg, elvisangelaccio Reviewed By: markg, elvisangelaccio Subscribers: chehrlic, rkflx, elvisangelaccio, #dolphin Differential Revision: https://phabricator.kde.org/D10995
2018-03-05Revert "Fix some compile warnings"Elvis Angelaccio
This reverts commit 533f050855a50212bba7be57a1590f9ce743e26d. D10995 has not been approved.
2018-03-04Remove unused #includeRoman Inflianskas
Summary: I used CLion inspection to hunt all unused #include Reviewers: #dolphin, elvisangelaccio, markg Reviewed By: #dolphin, elvisangelaccio, markg Subscribers: bcooksley, markg, elvisangelaccio, #dolphin Differential Revision: https://phabricator.kde.org/D10985