┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphinmainwindow.cpp
AgeCommit message (Collapse)Author
2020-11-09Adress most of the second round of Angelaccio's review commentsFelix Ernst
This commit applies most suggestions which were made on the MR. Most notably the DolphinUrlNavigator class is split up which leads to the creation of a DolphinUrlNavigatorsController class. Additionally some minor coding style and const correctness changes are included. The error value of cached integers is changed from -1 to INT_MIN because situations could come up in which -1 would be a valid value.
2020-11-09Apply Méven Car's suggestionsFelix Ernst
2020-11-09Fix a crash and extract unrelated changesFelix Ernst
The secondary UrlNavigator is now created when and only when: - split view mode is activated for the active tab OR - switching to a tab that has split view already enabled. This fixes a crash that occurs when the setting to always start in split view mode is enabled. An animation for activating split view is also removed from this and moved into a separate MR. Another unrelated name change left over from a previous commit (viewContainers() -> activeViewContainers()) is dropped.
2020-11-09Make UrlNavigators in the toolbar the only optionFelix Ernst
The UrlNavigators will be automatically added to the toolbar. The Sort By action is removed from the default toolbar to make space. Remove all options to have UrlNavigators outside the toolbar and remove those code paths. Make it so the new NavigatorsWidgetAction contains two UrlNavigators when in split view mode. Spacing was also added to align these UrlNavigators with the ViewContainers when enough space is available. Force the toolbar to be either at the top or bottom of the window. Set a sane sizeHint for DolphinUrlNavigator. It would be better to do this in KUrlNavigator in the future. This commit also contains a changes which should be moved to a separate merge requests before this gets merged: - Add an expansion animation when split view is enabled by the user
2020-11-09Add the UrlNavigator to the toolbar automatically if neededFelix Ernst
This commit adds the DolphinUrlNavigatorWidgetAction::addToToolbarAndSave() method which changes the users toolbar configuration to contain an Url Navigator. This way the user doesn't need to do anything manually. Aside from that a bunch of minor fixes like renaming and reordering
2020-11-09Adress the first round of Angelaccio's review commentsFelix Ernst
- Split the viewContainers(bool includeInActive) into two methods without parameters - Prevent users from accidently hiding all Url Navigators by preventing the dangerous action and then displaying a helpful message instead Unrelated to review comments: Remove a useless line of code
2020-11-09trailing whitespacesFelix Ernst
2020-11-09Add an option to use an UrlNavigator in the toolbar insteadFelix Ernst
This commit adds a locationInToolbar KToggleAction to switch between using a location bar to navigate or using a new custom QWidgetAction in the toolbar. A big portion of this MR is refactoring because until now the UrlNavigator was tightly intertwined with the DolphinViewContainer. With this MR an UrlNavigator for controlling a View can be freely connected or disconnected with a single method call. A DolphinUrlNavigator class is created in the process which contains all Dolphin-specific UrlNavigator code which did previously reside in the DolphinViewContainer class. Other application parts that belong to UrlNavigator-management are also moved here.
2020-11-05Add support for KUserFeedbackElvis Angelaccio
This commit introduces KUserFeedback in dolphin with some basic data sources and with a settings page to configure the telemetry values. There are also a couple custom data sources as proof of concept: a bunch of settings and the count of available network shares as listed by Solid. The settings page is shown only if the user feedback framework is enabled, but currently in Plasma we don't have a global kill switch to disable it. At the moment we never show an encouragement message. We need to connect to the `Provider::showEncouragementMessage()` signal, but first we should agree to a common way to show a non-annoying message to the users.
2020-10-23Compile with QT_NO_KEYWORDSAlexander Lohnau
2020-10-23Compile without foreachAlexander Lohnau
2020-10-23Don't session-restore invalid pathsNate Graham
When session restore is populating the main window, it's unconditional; you'll get whatever was there before. This can be a problem if any of those things are now missing. For example, maybe you were browsing files on a removable disk, then quit Dolphin, and finally removed the disk. The next time you launch Dolphin again, it will try to show you the view from the now-missing removable disk. To prevent this, we now look at all the URLs in all of the view containers that were created after session-restore has finished doing its thing; if any of them are invalid local URLs, we change the URL to the home folder instead to avoid showing the user a view with an invalid location in it. BUG: 427619 FIXED-IN: 20.12
2020-10-23Show home folder if needed after unmounting mounted diskNate Graham
Right now, when you unmount a device that any active view containers are displaying, nothing in the view changes. As a result, it's possible to try to navigate to files or folders in that view, which cannot be done because the disk that the files or folders are located on has been unmounted! With this commit, we detect that case and switch the view containers to show the home folder after the disk whose contents they are displaying gets unmounted. BUG: 158934 FIXED-IN: 20.12
2020-10-23Fix DolphinMainWindow::viewContainers() to take into account split viewsNate Graham
The function was previously assuming that each tab view has exactly one view container, which is not necessarily accurate; some could have a split view open.
2020-10-23If include is define in .h remove it if it's defined in .cpp too (scripted)Laurent Montel
2020-10-05Merge branch 'release/20.08' into masterNate Graham
2020-10-03Don't warn when closing multiple tabs if restoring window stateNate Graham
When we're using the "restore window state" feature, there's no need to warn when closing multiple tabs, because they're saved and you can just re-open the window.
2020-09-20Check protocol Class before creating a StatJobAhmad Samir
StatJob::mostLocalUrl only works with ":local" protocols, adjust the code accordingly. Make the code async. Remove activeContainerLocalPath() method as it isn't needed anymore. Drive-by change: minimum required version of Qt should be 5.12 because that's what KF >= 5.73 already requires.
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-08-31Allow Open Terminal action on WindowsAlexander Lohnau
2020-08-26Text style fixesNikita Churaev
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-08-18Port KRun to OpenUrlJobAhmad Samir
In DolphinMainWindow, since KRun allows running executables by default, use setRunExecutables(true) so as not to change the behaviour. Remove the now redundant slotHandleUrlStatFinished, that whole StatJob logic is now handled by OpenUrlJob. Bump KF required version to 5.73, since that's where OpenUrlJob::setShowOpenOrExecuteDialog was introduced.
2020-06-29## SummaryYann Holme-Nielsen
* Adds a "Copy location" item, after the "Copy" Context item and Edit Menu, which will attempt to copy the path of the fist item into clipboard. ## Reasoning Most File Managers have this option through one or another way. Also using the default Copy option often results in different behaviour depending on the target software, Konsole will take the path. Other Programs will use the URI. Which ultimately could lead to non optimal User Experience. ## Notes * Should the target file **not** be on a local hard drive, this fallback to using the remote URL, feedback is wanted on that matter. FEATURE: 407004
2020-05-24Merge branch 'release/20.04'Nate Graham
2020-05-24use KSycoca for updating OpenPreferredSearchTool actionPiotr Henryk Dabrowski
Summary: Remove all random updates of OpenPreferredSearchTool action, and use KSycoca for updating it as discussed in https://phabricator.kde.org/D22594#663847 Enhancement for D29441 for bug #420911 caused by D22594. The bug was fixed by D29442. CCBUG: 420911 Test Plan: ``` $ cd ${KDE_INSTALL_DIR}/usr/share/applications $ sudo mv org.kde.kfind.desktop org.kde.kfind.desktop_ $ kbuildsycoca5 $ sudo mv org.kde.kfind.desktop_ org.kde.kfind.desktop $ kbuildsycoca5 ``` Reviewers: broulik, elvisangelaccio, ngraham, #dolphin Reviewed By: elvisangelaccio, #dolphin Subscribers: anthonyfieroni, kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D29568
2020-05-14Allow to copy or move selection to the other split viewAntonio Prcela
Summary: FEATURE: 276167 Default keyboard shortcuts set to `SHIFT+F5` for `copy`, `SHIFT+F6` for `move` Reviewers: #dolphin, elvisangelaccio, ngraham, meven, dfaure Reviewed By: #dolphin, elvisangelaccio, ngraham, meven, dfaure Subscribers: yurchor, kde-doc-english, dfaure, meven, kfm-devel Tags: #dolphin, #documentation Differential Revision: https://phabricator.kde.org/D29006
2020-05-11DolphinView: rename cutSelectedItems to cutSelectedItemsToClipboardElvis Angelaccio
For consistency with d1a70c0b629b.
2020-05-11DolphinView: rename copySelectedItems to copySelectedItemsToClipboardElvis Angelaccio
This makes it explicit that this is just a copy to clipboard, so that we can use the name for an actual KIO::copy().
2020-05-06Merge branch 'release/20.04'Kai Uwe Broulik
2020-05-06Don't update preferred search action on window activationKai Uwe Broulik
I don't see why this is necessary and causes a blocking(!) StatJob every single time the window is focussed, worse, ends up in an infinite loop when the window loses focus on an auth prompt. CCBUG: 420911 Differential Revision: https://phabricator.kde.org/D29441
2020-05-05Merge branch 'release/20.04'Kai Uwe Broulik
2020-05-05Don't use local URL for KMoreToolKai Uwe Broulik
This method is called a billion times and spawns a blocking(!) StatJob. KFind can search local URLs, too, so I don't see why this is necessary. Either way, I'd rather have a non-KDE search tool broken than the app. Ideally, I'd like this entire thing redone to use an async StatJob, if any. Fwiw the KMoreTools in the free space bar doesn't use a local URL either. BUG: 420911 FIXED-IN: 20.04.1 Differential Revision: https://phabricator.kde.org/D29442
2020-04-26Add an option to show tabs from last time when Dolphin startsNate Graham
Summary: All modern web browsers offer a function to show tabs from last time when a browser starts, and many apps today restore their prior state when they're launched. This patch implements thatfunctionality as an option and turns it on by default. The settings window is accordingly adjusted to be clear about what applies when: {F7681752} FEATURE: 413564 FIXED-IN: 20.08.0 Depends on D25106 Depends on D25219 Test Plan: With the new setting turned off: - No behavioral changes at all With the new setting turned on: - When launched from the GUI or CLI without any URLs, dolphin restores session - When rebooting with Dolphin open, it restores session normally after the system comes back (i.e. no behavioral change here) - When launched with URLs, Dolphin window is opened showing those URLs instead of restoring session - When Dolphin is already running and a new window is opened, that new window shows a single tab with the same URL as was visible in the previously-open Dolphin instance (i.e. no behavioral change here) - "Open Containing folder" functionality in other apps works regardless of whether or not Dolphin is running Reviewers: #dolphin, #vdg, feverfew, meven, elvisangelaccio, ndavis Reviewed By: #dolphin, #vdg, feverfew, elvisangelaccio, ndavis Subscribers: davidedmundson, ndavis, intika, feverfew, kfm-devel, ngraham, broulik, #dolphin Tags: #dolphin Differential Revision: https://phabricator.kde.org/D11382
2020-04-15Do not display full path in the title of the tabAntonio Prcela
Summary: Displays the full path only in the window title, not in the tab title. Screenshot for comparison: ( Dolphin on the right is without D28815 , Dolphin on left has both D28815 and this patch) {F8240079} Reviewers: #vdg, #dolphin, ngraham, meven Reviewed By: #vdg, #dolphin, ngraham, meven Subscribers: ngraham, elvisangelaccio, meven, kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D28857
2020-04-05Dolphin: port to CommandLauncherJobDavid Faure
Summary: git master already requires 5.69 anyway, due to KBookmarkMenu API change Test Plan: Builds, Tools / Compare Files works. Reviewers: broulik, elvisangelaccio, meven Reviewed By: elvisangelaccio, meven Subscribers: kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D28589
2020-03-16Switch to generated MainWindow dbus interfaceElvis Angelaccio
Summary: This allows compile-time checks for the main window dbus methods. Test Plan: Same test plan as in D21691, D21666 and D25510. Reviewers: #dolphin Subscribers: kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D26214
2020-03-15Add Duplicate featureNathaniel Graham
Summary: Adds a Duplicate feature to Dolphin, showing up as a menu item in the File menu that appears when one or more items are selected and the directory is writable. Duplicated items receive the names of the original files with " copy" appended before the file extension, if any. Test Plan: {F5201386} {F5201393} Test cases: - Try to duplicate when nothing is selected: **PASS**: menu item is grayed out - Try to duplicate anything on a read-only local volume: **PASS**: menu item is grayed out - Try to duplicate anything on a read-only samba share: **PASS**: menu item is grayed out - Duplicate single local file on R/W volume: **PASS**: item is duplicated and named correctly - Duplicate multiple local files on R/W volume: **PASS**: 3 items are duplicated, named correctly, and selected - Duplicate single local directory on R/W volume: **PASS**: item is duplicated and named correctly, but a rename operation is not initiated - Duplicate multiple local directories on R/W volume: **PASS**: 3 items are duplicated, named correctly, and selected - Duplicate single file on R/W samba share: **PASS**: item is duplicated and correctly - Duplicate multiple files on R/W samba share: **PASS**: 3 items are duplicated, named correctly, and selected - Duplicate single directory on R/W samba share: **PASS**: item is duplicated and named correctly - Duplicate multiple directory on R/W samba share: **PASS**: 3 items are duplicated, named correctly, and selected - Try to undo a successful duplication: **PASS**: operation is undone This is my first attempt at a big change like this and I'm sure it's full of issues. I will accept any and all suggestions for improvement. :) Reviewers: #dolphin, #kde_applications, elvisangelaccio, dfaure, broulik, davidedmundson Subscribers: kfm-devel, meven, markg, fazevedo, cfeck, #dolphin Tags: #dolphin Differential Revision: https://phabricator.kde.org/D8208
2020-01-13Use more conventional "Add to Places" text for that actionNate Graham
Summary: I originally implemented this to show "Add <current folder> to Places" to make the menu item more clear when invoked from the file menu or the viewport context menu because I thought it wasn't totally clear that the action would be referring to the folder for the visible view. However I think in retrospect that this was a mistake. No other items in the file menu or the viewport context menu name the current folder like this, so clearly there wasn't a problem. And then the item's text doesn't match the text for other items. Thie patch removes that behavior and makes the name match the style of all the other menu item text. BUG: 416064 FIXED-IN: 20.04.0 Reviewers: #dolphin, #vdg, meven Reviewed By: #dolphin, meven Subscribers: elvisangelaccio, meven, kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D26590
2019-12-06Make it compile against last kf5 version without deprecated methodsLaurent Montel
2019-12-05Add action for focusing Terminal PanelNate Graham
Summary: Add an action for focusing and de-focusing the Terminal Panel. FEATURE: 185096 FIXED-IN 20.04.0 Test Plan: - Hit {key Ctrl Shift F4} or click {nav Tools > Focus Terminal Panel} or {nav Control > Tools > Focus Terminal Panel} - If the Terminal Panel was closed, it opens and gains focus - If the Terminal Panel was open but unfocused, it gains focus - If the Terminal Panel was open and focused, focus returns to the view {F6630289, size=full} Reviewers: #dolphin, elvisangelaccio, rominf Reviewed By: #dolphin, elvisangelaccio, rominf Subscribers: kfm-devel, elvisangelaccio, rkflx, ngraham, #dolphin Tags: #dolphin Differential Revision: https://phabricator.kde.org/D10959
2019-11-28Merge branch 'release/19.12'Elvis Angelaccio
2019-11-24Fix accessibility regression on the Dolphin Control buttonElvis Angelaccio
9cd042a86c removed the text from the Control button without setting an accessibleName property, which is a regression for screen-reader users. This breaks the 19.12 string freeze, but since it's the same string we were translating before 9cd042a86c, hopefully it's not going to be too much of a burden for translators. CCBUG: 414271 CCMAIL: [email protected]
2019-11-17[Dolphin] Open Preferred Search Tool actionPiotr Henryk Dabrowski
Summary: Added "Open Preferred Search Tool" action to Tools menu. It runs preferred (topmost) external search tool as configured in the "More Search Tools" menu. By default Ctrl+Shift+F shortcut is assigned to this action. FEATURE: 384798 FIXED-IN: 20.03.80 {F7134238} {F7134240} {F7134242} Reviewers: #dolphin, ngraham, elvisangelaccio Reviewed By: #dolphin, ngraham Subscribers: pkloc, kfm-devel, kde-doc-english Tags: #dolphin, #documentation Differential Revision: https://phabricator.kde.org/D22594
2019-11-10Port away from deprecated API in KWindowSystem >= 5.62David Faure
2019-10-20Fix a bug where "Add to Places" remains disabledAlex Miranda
Summary: Fix a bug where "Add to Places" doesn't get re-enabled in the context and file menus when nothing is selected after previously selecting a single file that is not a directory or multiple files. Test Plan: Verify the action remains enabled when appropiate Reviewers: #dolphin, elvisangelaccio, meven Reviewed By: meven Subscribers: meven, kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D24690
2019-10-13Add actions for switching to a specific tabAlex Miranda
Summary: Add actions to switch to each of the first 9 tabs and another action to switch to the last tab. This feature makes it much easier to quickly switch between tabs just like you normally would be able to when using a web browser or other applications. Reviewers: #vdg, #dolphin, ngraham, elvisangelaccio Reviewed By: #vdg, #dolphin, ngraham Subscribers: meven, ngraham, elvisangelaccio, kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D24353
2019-10-03Fix missing setDefaultShortcuts callDavid Hallas
Summary: The commit eec49bc38f4e256b66bf16ee5428c5f5d7e97e25 cased a warning to be emitted when starting Dolphin: KXMLGUIFactoryPrivate::saveDefaultActionProperties(): Shortcut for action "go_forward" "&Forward" set with QAction::setShortcut()! Use KActionCollection::setDefaultShortcut(s) instead. The fix is to call actionCollection()->setDefaultShortcuts(m_forwardAction, m_forwardAction->shortcuts()); so that the default shortcuts are setup. Reviewers: elvisangelaccio Reviewed By: elvisangelaccio Subscribers: kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D24342
2019-10-01Don't set Qt::WindowContextHelpButtonHint on Windows as it basically ↵Hannah von Reth
converts the window in to a dialog Reviewers: ngraham, mlaurent, dfaure Reviewed By: ngraham Subscribers: kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D24340
2019-10-01Fix another crash if HAVE_TERMINAL is not definedElvis Angelaccio
Inspired by 29778152ad.