┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistcontroller.cpp
AgeCommit message (Collapse)Author
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
2018-03-04Fix some compile warningsRoman Inflianskas
Reviewers: #dolphin, markg Reviewed By: markg Subscribers: elvisangelaccio, #dolphin Differential Revision: https://phabricator.kde.org/D10995
2018-03-03Remove unused #includeRoman Inflianskas
Summary: I used CLion inspection to hunt all unused #include Reviewers: #dolphin, elvisangelaccio, markg Reviewed By: #dolphin, elvisangelaccio, markg Subscribers: markg, elvisangelaccio, #dolphin Differential Revision: https://phabricator.kde.org/D10985
2018-02-05Faster drag&drop in directories with thousands of filesJaime Torres
Summary: The check is called when the mouse is moved in a drag&drop operation. Dragging all files in a directory with 3000 files under callgrind, moving the mouse to the other panel and then canceling, doing it twice, callgrind shows that the method urlListMatchesUrl is called around 200 times, spending around 9,30% of the cpu in those calls. Applying the patch, callgrind tells it uses now 0.31% of the cpu in 1208 calls. CCBUG: 342056 Reviewers: #dolphin, elvisangelaccio, markg Reviewed By: #dolphin, elvisangelaccio, markg Subscribers: markg, anthonyfieroni, michaelh, elvisangelaccio, ngraham Differential Revision: https://phabricator.kde.org/D10085
2017-12-14Implemented support for hide/show groupsRenato Araujo Oliveira Filho
Summary: Added an option on PlacesPanel context menu to show or hide the entire group of places. Depends on D8855 Test Plan: Open Donlphin and use PlacesPanel context menu to hide and show groups Reviewers: franckarrecot, mlaurent, mwolff, elvisangelaccio Reviewed By: franckarrecot, mlaurent, mwolff, elvisangelaccio Subscribers: rkflx, mwolff, elvisangelaccio, ngraham, #dolphin Differential Revision: https://phabricator.kde.org/D9242
2017-11-21Modernize: Use nullptr everywhereKevin Funk
2017-11-11Prevent folders from drag and dropping onto themselves in dolphin main viewEmirald Mateli
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
2017-10-27Two clicks on file/folder to renameAndreas Krutzler
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
2017-06-11Ignore drops-onto-items from invalid places itemsElvis Angelaccio
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
2017-02-20Work round missing right click event after dismissing a context menuDavid Edmundson
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
2015-03-25Create drag pixmaps which match the device pixel ratioDavid Edmundson
2015-02-26Port away from KDELibs4Support (we only use KDELibs4Support when baloo isn't ↵Emmanuel Pescosta
present, because KFileMetaDataWidget is in KDELibs4Support) Reviewed-By: Vishesh Handa
2015-02-06Fix includesMontel Laurent
2015-02-01Port away from KGlobalSettings::singleClick() and use the mouse kcm module ↵Emmanuel Pescosta
instead of implementing the single/double click settings on our one. REVIEW: 122311
2014-10-27Port to QDebug*. KVBox--Montel Laurent
2014-09-11fixed TODO:Emmanuel Pescosta
Qt5: Replace Qt::XButton1 by Qt::BackButton and Qt::XButton2 by Qt::ForwardButton
2014-06-29Remove the automoc noiseChristophe Giboudeaux
2014-05-13Merge remote-tracking branch 'origin/master' into frameworksFrank Reininghaus
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
2014-05-05dolphin: convert kitemviews/ to qt5 signal slot syntaxAlex Richardson
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.
2014-03-03Add a hover effect for the selection toggle.Emmanuel Pescosta
FIXED-IN: 4.13.0 REVIEW: 116028 BUG: 299328
2014-03-01Always go back/forward in history when pressing the respective buttonsFrank Reininghaus
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
2013-11-14Merge remote-tracking branch 'origin/KDE/4.11' into KDE/4.12Frank Reininghaus
2013-11-14Do not select items when navigating back/forward with the mouseDavid Rosca
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
2013-10-30Store the selected items in a more efficient wayFrank Reininghaus
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
2013-10-16Abort loading the current URL if the user presses EscapeFrank Reininghaus
BUG: 323181 FIXED-IN: 4.12.0 REVIEW: 113234