Commit graph

6999 commits

Author SHA1 Message Date
Méven Car 741bea8324 fix test in FreeBsd KItemListControllerExpandTest::testDirExpand 2023-09-02 17:27:25 +02:00
Méven Car fae5fec964 Add focusOut and focusIn event support for KFileItemListView and update selected widget on focus change 2023-09-02 14:42:54 +02:00
Oliver Beard 012f8a224a k[standard]itemlistwidget: Account for view focus in selection highlight 2023-09-02 07:41:49 +02:00
Méven Car 079f903bc8 Fix a bunch of clazy warnings 2023-08-29 07:18:51 +00:00
Méven Car 0cbc912319 Use KMessageBox::warningContinueCancel when appropriate
This will prevent saving the "Cancel" + "don't show again" result, which is meaningless.
2023-08-28 14:08:53 +02:00
Méven Car b45c57332f Confirmations setting: Add checkbox for ConfirmOpenManyFolders and ConfirmOpenManyTerminals
We have to special handle the values saved as it is interpreted by KMessageBox
2023-08-28 13:59:09 +02:00
Méven Car 1318f16fd7 Clean obsolete ifdefs since dolphin requires KF 5.101+ 2023-08-28 10:36:37 +02:00
Méven Car 46d2d147bf Special case file opening with middle click for executable scripts
Since the first action would launch the script, we can use the first application associated to open the file.
2023-08-24 18:27:23 +02:00
Kai Uwe Broulik 5a7b749f5b KStandardItemListWidget: Render pixmap with explicit dpr
Instead of using the one from QApplication, use the one from the window.
2023-08-23 19:48:05 +00:00
Méven Car ae1980442d Merge branch 'master' into kf6 2023-08-23 18:56:41 +02:00
Felix Ernst 11fb9344c0 Allow to not ask again confirmation when opening 5 or more files or terminal at once
BUG: 473513
2023-08-23 16:54:52 +00:00
Méven Car d27ee07de7 On middle-click, open file with the second application for the file mime
FEATURE: 390631
2023-08-23 12:35:48 +00:00
Méven Car ff852b97f1 Re-Allow to set settings in Settings-> View-> General page
Regressed in 489b56b68b

Simplify implementation by sharing making class ViewSettingsPage implement SettingsPageBase sharing implementation with other tabs in viewsettingspage
2023-08-23 14:26:09 +02:00
Ilya Bizyaev d37cb5eb36
Swap "Open Path in New Tab" and "Open Path in New Window"
Looks like I missed it back in
402f7f3041
— so fixing now :)
2023-08-22 23:22:05 +02:00
Kai Uwe Broulik 21cd9da8fd KItemListView: Use own palette rather than go hunt for the scene
Documentation for `QGraphicsWidget::palette` says:
> When a widget's palette changes, it resolves its entries against its
> parent widget, or if it doesn't have a parent widget, it resolves against the scene.

So I don't see why we would need to do that ourselves.

More importantly, though, it seems in Qt 6 the palette isn't updated in time,
so when changing color schemes, Dolphin picks the old color instead of the new one,
leading to illegible font when e.g. switching between Breeze Light and Dark.
2023-08-20 20:08:58 +00:00
Nicolas Fella b7e859827d Adapt to KNotifcations API change 2023-08-18 20:39:15 +00:00
Dimosthenis Krallis 489b56b68b Dolphin settings revamp
It includes a move of the settings in the Navigation and Startup sections to the Interface (formerly Behavior) section.
It also includes a new tab in the View (formerly View Mode) section, called General where some settings regarding Display style, Browsing and Miscellaneous settings
The Interface section has new tabs named Folders & Tabs and Status & Location bars respectively where most of the Startup and Navigation settings moved.

The `dolphin/kcms/kcm_dolphinnavigation` kcm is removed.
2023-08-18 07:07:48 +00:00
K. Cottonears 1165a1bc52 Set Maximum Tab Width for folders to Tab bar
There is no limit to the width of tabs with the tab bar of the main window. If the directory name is too long, tabs can take up a lot of space and can lead to inconsistent tab widths.

To alleviate this, set a maximum tab bar text width of 40 characters for each folder.

BUG: 420870
2023-08-17 07:22:49 +00:00
Heiko Becker 399309d36c GIT_SILENT Update Appstream for new release
(cherry picked from commit c08f661a2c)
2023-08-16 22:48:35 +02:00
Nicolas Fella 62ba2dd877 Adapt to kbookmarks API change 2023-08-14 23:18:19 +02:00
Méven Car aded2d716d Don't compute size for non-local urls
Hide progressInfo for listDir job on the non-recursize path.

BUG: 472912
2023-08-13 08:44:24 +00:00
Bart Ribbers 32a5f1c041 Fix musl build by using fts_* from external library
musl does not support fts. There is however a standalone package that
can be used, but it must be linked against. This commit adds a check
that makes sure to link to the external library if it is required.
2023-08-11 08:45:13 +00:00
Nicolas Fella 521f4937d5 Merge branch 'master' into kf6 2023-08-10 14:42:08 +02:00
Kai Uwe Broulik fc6fa9ba98 Set Notify flag on close running terminal app prompt
Ensures the warning sound is played.
2023-08-10 14:13:13 +02:00
Kai Uwe Broulik 23b7d64d9c Adjust to changes in KToolBarPopupAction
`menu()` will be null, instead use the provided `popupMenu()`.
Use `KToolBarPopupAction`'s mode enum instead of `QToolBar`'s
2023-08-03 13:26:43 +02:00
Amol Godbole 0dac2ea9e9 Add alternate shortcut for replaceLocation action
Alt + D is a common shortcut for replacing location. Add this as an alternate shortcut.

BUG: 468445
2023-08-03 11:00:51 +00:00
Amol Godbole c1b2605243 DolphinView: initialize m_controlWheelAccumulatedDelta
Ctrl + scroll wheel zoom was not working as designed after Dolphin is launched. Initialize m_controlWheelAccumulatedDelta in DolphinView's constructor. 

BUG: 469354
2023-08-03 10:44:20 +00:00
Steffen Hartleib 89dcef3af4 Enter selection mode by tap-and-holding an already selected item
Allow entering selection mode by touching an already selected item.

BUG: 462778
2023-08-01 10:10:28 +00:00
Amol Godbole 567f2858ac Fix incorrect file selection after file rename
forceUrlsSelection() needs to be called only when new name of renamed
file does not exist.

BUG: 417930
2023-08-01 09:59:57 +00:00
l10n daemon script 2f0369b333 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"
2023-07-28 01:43:52 +00:00
Steffen Hartleib 3123c086a7 Avoid unwanted drag and drop action
Use the screen position for a touch event to calculate the start drag distance.

BUG: 464594
2023-07-27 09:23:07 +00:00
Méven Car 2f36c05b9c Minor code improvement
NO_CHANGELOG
2023-07-27 09:50:28 +02:00
Méven Car a9123455de Update following removing of KIO::FileSystemFreeSpaceJob::result overload
NO_CHANGELOG
2023-07-26 10:13:50 +02:00
Nate Graham 6ae9e38a55 Add contribute link to AppStream metadata
Pointing to the readme file is reasonable enough.
2023-07-18 16:05:18 +03:00
Nicolas Fella c34b2f04fd Replace ServiceItemDelegate with standard Qt item delegate
We don't need a custom delegate here

Using the standard one from Qt also slightly improves margins
2023-07-09 00:21:42 +02:00
Nicolas Fella 31a8866ac0 Fix usage of Qt::CheckStateRole in preview model
Qt::CheckStateRole expects an enum, not a bool

Also set the flag that the item it user checkable, otherwise it can't be changed

BUG: 471999
2023-07-09 00:11:23 +02:00
Nicolas Fella 88ebcd42db Fix plugin query
QT_MAJOR_VERSION is undefined, the proper thing is QT_VERSION_MAJOR

This causes the plugin query to not find any plugins

Since we only target KF6 we might as well hardcode that
2023-07-08 22:42:32 +02:00
Nicolas Fella f60628cdfa Fix konsolepart lookup
The location changed for KF6
2023-07-07 11:53:39 +02:00
Nicolas Fella 49f9a28f4a Always enable panel dockwidget actions
Otherwise they are disabled when the docks are locked and panels can't be toggled

BUG: 471974
2023-07-05 23:14:43 +02:00
Nicolas Fella f510339f03 Merge branch 'master' into kf6 2023-07-05 22:44:40 +02:00
Friedrich W. H. Kossebau ed2d352c42 Add explicit moc includes to sources for moc-covered headers
* speeds up incremental builds as changes to a header will not always
  need the full mocs_compilation.cpp for all the target's headers rebuild,
  while having a moc file sourced into a source file only adds minor
  extra costs, due to small own code and the used headers usually
  already covered by the source file, being for the same class/struct
* seems to not slow down clean builds, due to empty mocs_compilation.cpp
  resulting in those quickly processed, while the minor extra cost of the
  sourced moc files does not outweigh that in summary.
  Measured times actually improved by some percent points.
  (ideally CMake would just skip empty mocs_compilation.cpp & its object
  file one day)
* enables compiler to see all methods of a class in same compilation unit
  to do some sanity checks
* potentially more inlining in general, due to more in the compilation unit
* allows to keep using more forward declarations in the header, as with the
  moc code being sourced into the cpp file there definitions can be ensured
  and often are already for the needs of the normal class methods
2023-07-05 07:59:18 +00:00
Tem PQD 4d930992c4 Use ellipsis everywhere instead of three dots
Better for screen readers etc.
2023-06-29 22:42:34 +00:00
Heiko Becker cf3a570afc GIT_SILENT Update Appstream for new release
(cherry picked from commit e3ad78194c)
2023-06-30 00:10:33 +02:00
Felix Ernst 0bf439833c Move focus from hiding selection mode bars to view
When a user exits selection mode for example by clicking the "Exit
Selection Mode" button, the bar is closed but the focus doesn't return
to the view which would be expected. This commit actively moves the
focus to the view in such a scenario.

BUG: 469621
2023-06-28 16:35:56 +00:00
Méven Car cd2e64154f Merge branch 'master' into kf6 2023-06-28 09:49:46 +02:00
Tem PQD b92bb43e9d Fix Refresh tooltip text and add Refresh whatsThis text
BUG: 469263
2023-06-26 19:32:00 +00:00
l10n daemon script 7458d21bb7 GIT_SILENT made messages (after extraction) 2023-06-25 00:55:37 +00:00
Volker Krause dcd5c994bb Use non-deprecated Phonon includes 2023-06-20 19:44:19 +02:00
l10n daemon script 2fb1fc1d5c GIT_SILENT made messages (after extraction) 2023-06-20 00:56:01 +00:00
Méven Car 7f3967cf38 Hide application/x-trash files following showHidenFiles
BUG: 3212
2023-06-17 07:09:50 +00:00
l10n daemon script 51fcd600a8 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"
2023-06-16 01:40:55 +00:00
Méven Car cf14a888ce Tabbar: duplicate tab when double clicking on it
BUG: 470388
2023-06-13 09:48:55 +00:00
Méven Car 3338c2834a Settings Add ViewModes > Content display
This does not move the settings location in files though.

baby step for https://invent.kde.org/system/dolphin/-/issues/36
2023-06-13 09:40:27 +00:00
Alexander Lohnau 3d0c946eef Adjust KCMs to no longer do cast manually
KCModule::widget returns the widget that should be a parent for widgets the KCM creates
2023-06-10 10:26:58 +02:00
Felix Ernst e5abe2c67b Update my eMail to the KDE-provided one
GIT_SILENT
NO_CHANGELOG
2023-06-04 18:09:42 +02:00
Heiko Becker 05e99b3dd1 GIT_SILENT Update Appstream for new release
(cherry picked from commit db3c01a34a)
2023-06-02 20:44:17 +02:00
Nicolas Fella 1c393f50d5 Only use KStartupInfo on X11 2023-05-31 12:43:57 +00:00
Méven Car c17e6c8d2b Expand or collapse all selected folders on Key Right/Left
CCBUG: 196772
2023-05-26 16:10:38 +00:00
Méven Car a1c5c5cf81 KDirectoryContentsCounter: show intermediate dir size counting results, improve stopping, improve data caching
Two user visible changes:
 * we can see the dir size changing as it is updated.
 * This makes the file counting a lot more reactive, when changing directories for instance.

`KDirectoryContentsCounterWorker::walkDir` is not recursive anymore.

The cache is now shared and only a single thread is used to count size recursively.
2023-05-26 15:10:09 +00:00
Méven Car ee8b71e556 Revert "Restrict attaching instances to those on the same activity or same virtual desktop"
This reverts commit b99f6f50ee.

BUG: 408919

Reintroduces:
CCBUG: 408919
2023-05-24 10:11:41 +00:00
Méven Car b01329bf36 Revert "global.cpp: Ensure qApp does not emit signal because of local QEventLoop"
This reverts commit dec80fb0f9.
2023-05-24 10:11:41 +00:00
Méven Car dec80fb0f9 global.cpp: Ensure qApp does not emit signal because of local QEventLoop
BUG: 469656
2023-05-19 15:31:42 +00:00
Jakob Petsovits b5b6762b15 Bring back the "Create New" menu in the menu bar
This commit is the result of a three-way diff that
combines my own initial patch with related changes from
Felix Ernst's MR !545 and further suggestions by Méven Car.

Fixes DolphinMainWindowTest::testNewFileMenuEnabled().
Tests are now passing again for my build.

"Create New" was broken by commit c64059bd which switched to the
new, non-deprecated KNewFileMenu constructor (kio commit 89bc6bad)
that doesn't add itself to the passed KActionCollection parameter.
After the switch, hamburger menu and context menu was still working
as intended but the menu bar was missing the "Create New" menu.

This commit adds the addAction("new_menu") call to the File menu
setup that would have previously been called by the deprecated
KNewFileMenu constructor. The corresponding test can now find
the QObject for the menu's named action again, verifying its
existence and enabled-ness like it did before.

The DolphinNewFileMenu constructor's unused actionCollection
parameter serves no use anymore except to confuse people.
We replace it with a single QAction* parameter, createDirAction,
which gets passed to setNewFolderShortcutAction().

2 out of 3 constructor call sites have access to this action,
while the remaining call site in dolphinmainwindow.cpp must wait
until after it has been initialized by DolphinViewActionHandler.
In this case, setNewFolderShortcutAction() is still called manually
at a later time.
2023-05-16 11:11:51 -04:00
Jakob Petsovits 1b0caf69a8 Remove deprecated, ifdef'd code for old KIO versions 2023-05-12 16:56:36 -04:00
Méven Car 629a5d44dd
Add a TODO KF6 to solve bug 464722
CCBUG: 464722
2023-05-10 16:41:30 +02:00
Méven Car ac1f8131f9 Fix a typo, take 2 2023-05-09 12:11:21 +02:00
Méven Car 2b877de270 Fix a typo 2023-05-09 11:20:34 +02:00
Heiko Becker c3fb0dc15b Fix build without KF5Activities 2023-05-09 08:49:28 +00:00
Méven Car 5887d1d852 Fix a bunch of Qt6/Kf6 warnings 2023-05-09 10:30:14 +02:00
Méven Car d6da4a903f Fix dolphinvcs_export.h export path 2023-05-09 10:11:54 +02:00
Méven Car d2092ed444 Fix for KUserFeedbackQt6 includes 2023-05-09 09:34:38 +02:00
Méven Car 468df35149 Fix for KUserFeedbackQt6 includes 2023-05-09 09:24:46 +02:00
Méven Car 0a581f97be Ensure good export of dolphinvcs headers 2023-05-09 09:24:19 +02:00
Méven Car 863ee3a87c Merge branch 'master' into kf6 2023-05-08 17:46:51 +02:00
Méven Car 69f6b9b78b Revert "partially Improve kuserfeedback import"
This reverts commit 047bf33d90.
2023-05-08 17:43:48 +02:00
Méven Car 047bf33d90 Improve kuserfeedback import 2023-05-08 16:23:15 +02:00
Méven Car 76e3eab6ea
Port to Qt6 2023-05-07 18:32:17 +02:00
Heiko Becker 26808a188c GIT_SILENT Update Appstream for new release
(cherry picked from commit 3fb0380fd4)
2023-05-06 10:10:17 +02:00
Méven Car 47e4c64e6a KFileItemModelRolesUpdater: test isSlow in startDirectorySizeCounting
NO_CHANGELOG
2023-04-29 10:47:40 +00:00
Méven Car 4e6939e1f5 Fix test regression in DolphinMainWindowTest::testGoActions 2023-04-25 16:14:29 +00:00
Felix Ernst 64ae87f402 Revert "Adapt autotest to new expected "Space" key behaviour"
This reverts commit df5cf6fe85.

The autotest was orginally changed to adapt to new behaviour when
the Space key is pressed. This change used to be implemented in
KItemListController which meant that the KItemListControllerTest
needed changing, but this is no longer the case.
Instead the new behaviour when the Space key is pressed is now
implemented further up the hierarchy, so the KItemListController
change could be reverted in
7b6a67e520 and as such we can also
revert this autotest change.
2023-04-25 15:19:09 +02:00
Eugene Popov 7b6a67e520 Fix activating the Selection Mode with a keyboard shortcut
If a spacebar is used as a keyboard shortcut to activate the Selection Mode, then allow this shortcut to be triggered only if the view has a keyboard focus.

BUG: 465489
2023-04-25 13:05:39 +00:00
Eugene Popov 215923b33f Add DolphinTabPage::inactiveViewContainer() 2023-04-23 09:33:09 +00:00
Eugene Popov 78a3cd3e4b Improve copying and moving items between panels
Currently, copying the selected items between panels is performed by the active panel, which is wrong, because the inactive panel cannot select the copied items after the operation is completed (as it happens when drag'n'dropping or copying using keyboard shortcuts).
2023-04-23 09:33:09 +00:00
Eugene Popov 6fd77a96b4 FilterBar: improve keyboard behavior and tab ordering
With this MR, when the filterbar has the keyboard focus:
- pressing the Tab key moves the keyboard focus to the view
- pressing the Down, PageDown, Up and PageUp keys moves the focus to the view and emulate pressing the same key in it (you can navigate directly from the filterbar)
2023-04-22 17:09:31 +00:00
Méven Car c9217337c7 TerminalPanel: rename currentWorkingDirectoryIsParentOf to currentWorkingDirectoryIsChildOf
NO_CHANGELOG
2023-04-22 09:33:01 +02:00
Méven Car a654b8dae6 TerminalPanel: better check if terminal needs to change its currentWorkingDirectory when unmounting
CCBUG: 467403
2023-04-21 15:32:58 +02:00
Méven Car 040e2afcfa DolphinView: allow selectUrls to be considered for selection in more cases
* when there is some selection already (some files were created previously)
 * when the model has not yet insert all the selectedUrls

Also
 * Rename DolphinView::slotCopyingDone to slotItemCreatedFromJob

BUG: 407161
2023-04-20 15:17:19 +00:00
Felix Ernst 49ea43e24f Reuse existing proxy style
Before this commit, a new QProxyStyle was created every time the
selection mode was enabled. The previously used one was
automatically deleted in the process because of the std::unique_ptr
re-assignment. This isn't really a problem in itself, but I
strongly assume that the sudden deletion of the old style shortly
before setting a new style might be the cause of the crash/bug
468548.

This commit simply re-uses the previously created proxy style which
doesn't seem to cause any behaviour change even when the
application style has been changed in the time since the proxy
style was created.

Another potential solution might be to simply use deleteLater() on
the old proxy style instead of letting std::unique_ptr delete the
old proxy style instantly while it is still in use. That seems more
involved than simply re-using the old style though.

BUG: 468548
FIXED-IN: 23.08
2023-04-20 14:42:04 +00:00
Méven Car b99f6f50ee Restrict attaching instances to those on the same activity or same virtual desktop
CCBUG: 408919
2023-04-20 08:50:40 +00:00
Heiko Becker 5f01edcfe7 GIT_SILENT Update Appstream for new release
(cherry picked from commit fb084ec1a1)
2023-04-12 18:00:19 +02:00
Nate Graham 70e20a310a Make "don't run me with sudo/kdesu" message informative
We tell users what not to do, but we don't tell then what to do instead.
At one point we told them to just use Dolphin normally and the polkit
integration would kick in, but that work ended up being reverted and
abandoned. Instead, tell them to use kio-admin, which exists as a
released product and will hopefully not get removed anytime soon.

CCBUG: 467948
2023-04-05 16:17:56 +00:00
Felix Ernst 95905ce761 Add test for openFiles()
The basic mainWindow methods openFiles(), openDirectories(),
isUrlOpen(), and isItemVisibleInAnyView() have some non-obvious
behaviours that shouldn't regress. We never want to open
directories that are already open. We only want to open new tabs
when the currently open ones don't have the file that should be
highlighted in view already. This should work even if view modes
that allow folder expansion are in play. It should also work when
the view area is split.
2023-04-03 15:34:32 +00:00
Méven Car e190977a90 PlacesPanel: clean some warnings
NO_CHANGELOG
2023-04-03 15:34:16 +02:00
Méven Car 9061b22a0d Context menu: allow to show copy to/move to inactive split view
Prevent copying/moving to same folder as origin when copying/moving to inactive split view

BUG: 356436
2023-04-02 07:22:07 +00:00
l10n daemon script 5149ede257 GIT_SILENT made messages (after extraction) 2023-03-27 00:51:23 +00:00
l10n daemon script 080572c67a 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"
2023-03-26 01:45:57 +00:00
l10n daemon script 09f25ee461 GIT_SILENT made messages (after extraction) 2023-03-26 00:50:38 +00:00
Oliver Beard 278380bf17 panels/information: Add option to not show information for hovered item
BUG: 364956
BUG: 453211
2023-03-25 10:01:52 +00:00
l10n daemon script 53eba0b14c 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"
2023-03-21 01:43:27 +00:00