Commit graph

6804 commits

Author SHA1 Message Date
Friedrich W. H. Kossebau 5be69f0dab Port away from deprecated KMessageBox Yes/No
GIT_SILENT
2022-10-15 07:18:34 +00:00
Nicolas Fella 6c19e73367 Fix Wayland window activation when attaching to an existing instance
The application launching Dolphin passes a token via the XDG_ACTIVATION_TOKEN environment variable

We need to pass that to the running instance so that it can use it to raise itself
2022-10-14 14:46:29 +00:00
Andrey Butirsky c628c9d64d fix opening new windows unnecessary
fixes a regression introduced by
https://invent.kde.org/utilities/ark/-/merge_requests/44

BUG: 440663
2022-10-12 20:04:07 +00:00
Laurent Montel 9e2418f025 Remove unused includes 2022-10-12 13:48:32 +02:00
Felix Ernst 0c8183afed Rename variable
Based on code review feedback by Andrey Butirsky.
2022-10-11 16:25:39 +02:00
Felix Ernst 37a98417cd Add helper methods to tab widget for view containers
This commit introduces the private getter
DolphinTabWidget::viewContainerAt(ViewIndex)
and another private method
DolphinTabWidget::activateViewContainerAt(ViewIndex).

Both methods return nullptr if there is no valid
DolphinViewContainer at the specified ViewIndex.
2022-10-11 15:26:31 +02:00
Felix Ernst 4d81aabd1e Fix item highlighting through DBus
Before this commit, even items that are distant children of
currently open views were considered selectable. This lead to the
bug that items meant to be highlighted through DBus would not be
highlighted if any ancestor of the item was open in any view.

This was fixed by only considering items in view if they can be
seen by scrolling. Main difficulty here was to make this also work
for the details view mode which allows expanding.

To implement this cleanly, some refactoring seemed necessary
because the logic to determine if an item is already in view
was previously intertwined with the logic to identify already open
directories.

This commit also contains the following refactorings aiming to
make the code more readable:
- A magic value (-1) is replaced using std::optional.
- A boolean trap is removed.
- A QPair is replaced by a struct with named variables.
- More and improved documentation
2022-10-11 15:26:31 +02:00
Laurent Montel 8916a647d6 don't use const'ref here (found by clazy) 2022-10-11 08:59:26 +02:00
Laurent Montel 8e0d84d0af Remove unused include 2022-10-11 08:59:19 +02:00
Laurent Montel 6b0483bf8a Use std::chrono_literals 2022-10-11 08:59:06 +02:00
Laurent Montel a490a6625b Use QStringLiteral 2022-10-11 08:58:50 +02:00
Laurent Montel a50cc58e1b Use const'ref 2022-10-11 08:58:40 +02:00
Laurent Montel bb30d8f01a Remove unused includes 2022-10-11 08:51:12 +02:00
Laurent Montel a5c0f7588a Show all includes in qtc6 2022-10-11 08:51:03 +02:00
Laurent Montel 40cc5f665d port to KIO::createDefaultJobUiDelegate 2022-10-11 08:46:12 +02:00
Heiko Becker d3617c06d4 GIT_SILENT Update Appstream for new release
(cherry picked from commit 87d846346d)
2022-10-10 21:48:22 +02:00
Marco Martin 71ea4a88d8 Replace context menu on long press with selection mode
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-10-08 07:02:00 +00:00
Kai Uwe Broulik 380543334c DolphinTabBar: Open folder in new tab when dropped onto tab bar 2022-10-06 12:21:15 +00:00
Kai Uwe Broulik 8402b98995 DolphinTabWidget: Allow specifying new tab position in openNewTab 2022-10-06 12:21:15 +00:00
Kai Uwe Broulik f4a400bad7 Remove superfluous setData call
It's done by urlNavigatorHistoryAction already
2022-10-02 15:10:15 +02:00
John Brooks 3656da18b0 terminal: Clear line using escapes instead of SIGINT
Sending SIGINT can be destructive, for example if we interrupt the
loading of the shell init files (e.g. .bashrc) and clobber history
preservation settings. Follow the example of Kate and send a Ctrl-E
Ctrl-U to clear the prompt instead.

BUG: 279614
Signed-off-by: John Brooks <john@fastquake.com>
2022-10-02 07:14:23 +00:00
l10n daemon script 13712a5065 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-09-28 02:00:06 +00:00
Laurent Montel aa54a68e93 Add missing include (needed for building qt6) 2022-09-26 09:03:55 +02:00
Laurent Montel e19aa49a08 Remove unused includes 2022-09-26 08:17:13 +02:00
l10n daemon script c9271bf5b8 GIT_SILENT made messages (after extraction) 2022-09-24 00:49:05 +00:00
Felix Ernst 75183e609f Increase code coverage of places panel width resistance test
Improve the test by also testing the various selection mode bars.
No combination of bars should lead to a resize of the paces panel.

This commit also helps with increasing code coverage by making all
possible selection mode bars appear.
2022-09-23 21:17:19 +02:00
l10n daemon script 6c65d06bcd SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-09-21 01:48:38 +00:00
l10n daemon script fede2094e3 GIT_SILENT made messages (after extraction) 2022-09-21 00:49:27 +00:00
Felix Ernst f4bed9333e Trigger "Exit Selection Mode" button on clicked and not on pressed
This way it works just like every other button.

This commit also removes two empty files that sneaked in by
accident.
2022-09-15 14:18:44 +00:00
Felix Ernst 11ada1515d Improve selection action toggle code
@broulik noticed an issue in the code. This commit fixes it.

-------------------

Before this commit there was a `QObject::disconnect` call that did
nothing (because it had `nullptr` as the first parameter) and there was a `QObject::connect` call that created
the same connections multiple times because of this.

This had no effect on end users. However such code can lead to
issues in the future e.g. if we ever had a situation in which the selection mode could be toggled for an inactive view container.

This commit solves this by replacing the `QObject::disconnect` call
with one that works. The `QObject::connect` call is moved so
there won't be multiple connections of the same type.
2022-09-15 13:36:05 +00:00
Felix Ernst 3dd49a8539 [dolphinview] Disconnect modelChanged when destructing
Deleting DolphinView deletes KItemListContainer, which deletes
KItemListController, which emits modelChanged, which causes a
signal delivery to the already destroyed DolphinView

This is never good, and in Qt6 causes an assert
(https://codereview.qt-project.org/c/qt/qtbase/+/381860).

Co-authored-by: Nicolas Fella <nicolas.fella@gmx.de>
2022-09-15 14:15:31 +02:00
Eric Edlund 8ff021ca69 Change "OpenExternallyCalledFolderInNewTab" to false by default 2022-09-09 16:14:38 +00:00
l10n daemon script f49cba188a GIT_SILENT made messages (after extraction) 2022-09-06 00:48:29 +00:00
Heiko Becker 56ff2bed7e GIT_SILENT Update Appstream for new release
(cherry picked from commit 4986d7c8df)
2022-09-02 23:59:56 +02:00
Felix Ernst 4ddc4159ed This commit removes the ability to enter selection mode by
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-27 09:40:51 +00:00
Kai Uwe Broulik a44830c3a9 Don't show error message on ERR_USER_CANCELED
There's no point telling the user what they just did.

After f192c133eb
this error has a text associated with it, so it might
show up in the UI.
2022-08-24 17:00:01 +02:00
Laurent Montel 29cd7b8e1f GIT_SILENT: Terminal=false is default value. Not necessary to keep it in desktop file 2022-08-23 20:47:01 +02:00
Méven Car 4150960081 InformationPanel: better refresh state when current dir changes
Refactor and simplify things along the way.

BUG: 457813
2022-08-22 23:32:28 +02:00
Kai Uwe Broulik 06df12013b Places Panel: Don't show error message on UserCanceled
There's no point telling the user what they just did
2022-08-22 19:55:30 +02:00
l10n daemon script 53be1a4ccb GIT_SILENT made messages (after extraction) 2022-08-22 00:49:02 +00:00
Eugene Popov eafe63b5f4 Fix sorting by file extension
Folders don't have extensions
2022-08-21 11:45:01 +00:00
l10n daemon script b5de7d7945 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-08-21 01:51:22 +00:00
Felix Ernst 3ccdcc2176 Clean up code that became redundant through framework changes
There were two changes in framework that triggered this commit:
KHamburgerMenu and KToolTipHelper.

When the Dolphin-specific hamburger menu was replaced by
KHamburgerMenu, I didn't clean everything up correctly. Not
anymore!

Help texts also weren't updated accordingly. This commit replaces
any mention of the old hamburger menu which was called "Control"
with text that reflects the current application state.

The other framework change "KToolTipHelper" takes responsibility
for opening links in help texts. So we won't need code to do this
in Dolphin anymore. This means we can also get rid of some
duplicate help texts which only existed because links didn't work
correctly in some places.
2022-08-18 09:05:03 +00:00
Kai Uwe Broulik fac08af081 Don't include iconOverlays in rolesData if it is empty
If this role isn't in the model yet, it would be `QVariant::Invalid`
which is obviously a distinct type from an empty string list.

This means `KFileItemModel::setData` treats them non-equal and
potentially does expensive operations on the model, which is
called every time a role is resolved in `KFileItemModelRolesUpdater`.

With this change, the number of pointless layout calculations is
significantly reduced.
2022-08-15 15:02:13 +02:00
Felix Ernst f45d2e9854 Add "Invert Selection" and "Select All" to bottom bar
In selection mode, a bottom bar with contextual actions appears
when at least one item is selected. This commit makes it so this
bottom bar also contains the "Invert Selection" and "Select All"
actions so users have more complete control over changing what is
and isn't selected while in selection mode.
2022-08-14 14:42:40 +00:00
Felix Ernst 6b0dcb62da Simplify implementation of mouse long-press detection
Now uses the same method as for touch long-press detection.
2022-08-14 14:42:40 +00:00
Felix Ernst 0f50abe12d Don't show selection toggle areas on files while in selection mode 2022-08-14 14:42:40 +00:00
Felix Ernst e464b58c33 Address Nate's UX feedback: Episode 2
- 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-14 14:42:40 +00:00
Felix Ernst 261b741d5f Address Nate's UX feedback
-More labels
-More icons
-"Abort" -> "Cancel"
2022-08-14 14:42:40 +00:00
Felix Ernst eb7a2e18ed Make touch tap to select items work in selection mode
Thanks to Steffen Hartleib for the help.
2022-08-14 14:42:40 +00:00
Felix Ernst 2e588733c7 Improve naming consistency and leave mode on Escape 2022-08-14 14:42:40 +00:00
Felix Ernst 78cffd2979 Improve code quality 2022-08-14 14:42:40 +00:00
Felix Ernst 8e55f2c240 Better separation of classes
Make obvious when actions trigger selection mode.
2022-08-14 14:42:40 +00:00
Felix Ernst 402b4a5698 Keep working towards a reviewable state
- 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-14 14:42:40 +00:00
Felix Ernst 3b7c05b385 Add Selection Mode
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-08-14 14:42:40 +00:00
Albert Astals Cid 9dbe481377 GIT_SILENT Update Appstream for new release
(cherry picked from commit c9ab65174b)
2022-08-10 23:33:51 +02:00
Elvis Angelaccio 19cd2364a9 Update copyright and maintainership info 2022-08-05 17:40:20 +02:00
l10n daemon script 86c103e765 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-08-03 01:49:02 +00:00
Alexander Lohnau f506666540 Install dolphinpart actions as standalone file
This will allow Konqueror to use it without relying on the KPart being loaded using KService
2022-08-01 16:35:35 +00:00
Nicolas Fella d7ca76799b Remove service type file for vcs plugins
We don't support old-style plugins any more, so no need to install this
2022-07-30 17:47:40 +02:00
l10n daemon script ef042cbefe SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-07-25 01:46:13 +00:00
l10n daemon script f0749ee42c SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-07-23 01:50:13 +00:00
l10n daemon script d0c3e373a1 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-07-20 01:45:24 +00:00
Nicolas Fella 9bcac452ca Remove references to KServiceTypeTrader in comments 2022-07-18 22:42:39 +02:00
Nicolas Fella 6b5ca39a93 Remove unused includes 2022-07-18 22:38:43 +02:00
Kai Uwe Broulik 1e13885c93 KItemListHeaderWidget: Use QHeaderView font
Makes it consistent with "real" tab widgets.
2022-07-18 15:01:16 +00:00
l10n daemon script d4ed58f6a9 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-07-15 01:51:02 +00:00
Nicolas Fella 513fe3bb42 Port from KNewFileMenu::setPopupFiles to KNewFileMenu::setWorkingDirectory
The former is deprecated
2022-07-14 11:58:19 +00:00
Kai Uwe Broulik 05941a522b Add "Show statusbar" menu entry in "Settings"
Makes this setting more accessible and makes it consistent with other
KDE applications. Since Dolphin has a separate status bar on each view
container and doesn't use kxmlgui's statusbar, we don't get this menu
entry automatically.
2022-07-13 17:13:25 +02:00
Friedrich W. H. Kossebau c6f82aa378 Open >5 terminals dialog: use action terms instead of Yes/No buttons
Yes/No buttons in dialogs are discouraged (not only) by KDE HIG in favour
of actions terms.
2022-07-13 10:19:59 +00:00
Friedrich W. H. Kossebau a6f6b14e79 Open >5 items dialog: use action terms instead of Yes/No buttons
Yes/No buttons in dialogs are discouraged (not only) by KDE HIG in favour
of actions terms.
2022-07-13 10:01:23 +00:00
l10n daemon script 8a721c35fc SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-07-13 01:48:42 +00:00
Harald Sitter 8d7e600f63 portalize drag urls
this enables sandboxed application to receive drop events
2022-07-11 09:04:14 +00:00
l10n daemon script 7fdd9f22d8 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-07-10 01:53:09 +00:00
Marius P 35244bec75 dolphintabwidget.cpp piority of boolean operators
Fix PVS-Studio issue "warning: V648 Priority of the '&&' operation is higher than that of the '||' operation.".
Fix clangd issue.
2022-07-09 15:40:28 +03:00
l10n daemon script b1eb12e03a SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-07-09 01:52:00 +00:00
l10n daemon script d4476fab9f GIT_SILENT made messages (after extraction) 2022-07-09 00:48:35 +00:00
Felix Ernst bb1b17ae69 Improve goActions test
This merge request fixes up a little oversight by me. I will merge this as soon as the pipeline passes.

------------------

Some lines verified that nothing is selected when navigating to a
folder that was not acted on yet. These verifications didn't test
anything meaningful because the folder in question was empty.

This commit adds a file and a folder to the test folder so that
testing if nothing is selected means something.
2022-07-07 13:32:28 +00:00
Felix Ernst c288a48fdc Add two autotests
- The first test makes sure that the width of the places panel
    doesn't change no matter what other panels are shown or hidden.
    There used to be bugs about this.
- The second test is kind of an integration test. It makes sure
    that the go actions work correctly. On two occasions we had
    the regression here that after going "Up" in the file system
    hierarchy the folder one emerged from didn't have keyboard
    focus which makes peeking into multiple folders tiresome.
    The test also makes sure that going back and forward works
    as expected and there are some sanity checks about which
    go actions are enabled, which items are selected and that
    using tabs doesn't interfere with any of that.
2022-07-07 10:41:39 +00:00
Kai Uwe Broulik 74ae8478ac Show "Loading canceled" placeholder when loading was canceled
Rather than "Folder empty", which is misleading as we didn't
actually load anything.
2022-07-07 06:03:12 +00:00
Kai Uwe Broulik 5ebc6b865d Don't reinterpret_cast QEvent
We know that we'll be a `QHelpEvent` from `QEvent::ToolTip`, so do a
static_cast from the event handler (where it's obvious from context),
and then pass it along to `tryShowNameToolTip`.
2022-07-06 17:33:42 +00:00
Friedrich W. H. Kossebau f3a0986b8b ViewPropertiesDialog: use action terms instead of Yes/No buttons
Yes/No buttons in dialogs are discouraged (not only) by KDE HIG
in favour of actions terms.
2022-07-03 19:01:58 +02:00
l10n daemon script 7b4644c084 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-07-03 01:59:38 +00:00
l10n daemon script 710d9af234 GIT_SILENT made messages (after extraction) 2022-07-03 00:50:27 +00:00
l10n daemon script 58a7772a19 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-07-02 02:06:49 +00:00
l10n daemon script 66505d643c GIT_SILENT made messages (after extraction) 2022-07-02 00:52:30 +00:00
Heiko Becker 854c47373a GIT_SILENT Update Appstream for new release
(cherry picked from commit 8887f09b22)
2022-07-01 20:40:59 +02:00
Alain Laporte da2bad9c68 Use edit-clear-history icon
More semantically (and visually) appropriate icon
2022-06-28 07:36:01 +02:00
l10n daemon script a97adfc4fd SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-06-25 02:01:46 +00:00
Andrey Butirsky 73ff57bef4 do not open excessive tab
even if directory of the file to be created is not the top-most opened in
TreeView

BUG: 440663
2022-06-22 21:49:37 +03:00
Andrey Butirsky 0b208fd990 formatting 2022-06-21 15:23:52 +03:00
Laurent Montel 1be92915b0 Remove duplicate headers between cpp/h 2022-06-20 07:09:01 +02:00
l10n daemon script f31ec8bdaa GIT_SILENT made messages (after extraction) 2022-06-20 00:49:44 +00:00
Felix Ernst 5ebf2065d5 Don't consider drops on a row as drops on the row's item
Since d383961719 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-06-16 09:11:36 +00:00
l10n daemon script ebe3a111e6 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-06-16 01:56:58 +00:00
Ahmad Samir 8aa81a1dc7 Cleanup config-dolphin.h includes 2022-06-15 11:28:44 +02:00
Ahmad Samir 28a74d1780 Use cmakedefine01
This way we get a build time warning if the var isn't defined at all, e.g.
a missing check_include_files() CMake call.
2022-06-15 11:28:42 +02:00
Ahmad Samir 8a0003bfbc Use one config-dolphin.h.cmake configuration file 2022-06-15 11:27:55 +02:00
Dāvis Mosāns fc2d181291 Fix rare ToolTipManager crash on exit
If tooltips are enabled and you hover over item
while immediately closing Dolphin sometimes it would crash
because native parent might have been destroyed before
DolphinView
2022-06-15 02:35:19 +01:00
l10n daemon script 957e6309b8 GIT_SILENT made messages (after extraction) 2022-06-14 00:52:42 +00:00