Sync terminal with KIOFuse mount when browing remote directories
Needs RevisionPublic

Authored by feverfew on Wed, Mar 25, 8:30 PM.

Details

Reviewers
fvogt
Group Reviewers
Dolphin
Summary

Adds the capability to sync the terminal with a KIOFuse mount if the URL is remote.
Partly based on the existence of another DBus currenly in review:
https://invent.kde.org/kde/kio-fuse/-/merge_requests/21

Syncing works in both "directions". Changing the URL to a remote URLin the
DolphinView will change the URL in the terminal to the KIOFuse local path equivalent.
Conversely changing the URL in the terminal to one that happens to be in a KIOFuse
mount will change the URL in the DolphinView to the remote URL equivalent.

Test Plan

Manual testing (see video in comments).

  1. Checking that changing directory in DolphinView from remote/local to local doesn't

cause any regressions.

  1. Checking that changing directory in terminal from local to local (but not in

KIOFUse mount) doesn't cause any regressions.

  1. Checking that changing directory in DolphinView from remote/local to remote

correctly changes URL in terminal to KIOFuse equivalent.

  1. Checking that changing directory in terminal from local to KIOFuse path

correctly changes the URL in the DolphinView to the remote equivalent.

  1. Checking the KIOFuse not being installed doesn't cause any regressions.
  2. Changing directories very quickly does not cause any slowdown.

Diff Detail

Repository
R318 Dolphin
Branch
syncTerminal (branched from master)
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 24234
Build 24252: arc lint + arc unit
feverfew created this revision.Wed, Mar 25, 8:30 PM
Restricted Application added a project: Dolphin. · View Herald TranscriptWed, Mar 25, 8:30 PM
Restricted Application added a subscriber: kfm-devel. · View Herald Transcript
feverfew requested review of this revision.Wed, Mar 25, 8:30 PM

Demo of feature:

fvogt requested changes to this revision.Sat, Mar 28, 3:11 PM
fvogt added a subscriber: fvogt.
fvogt added inline comments.
src/panels/terminal/terminalpanel.cpp
281

IMO this should first check that it's inside a fuse mount before making an expensive DBus call.

This could be done using statvfs and checking for f_fsid == 0x65735546 // FUSE_SUPER_MAGIC or use KMountPoint which might be more expensive.

287

Has to be kiofuse_iface.remoteUrl(m_konsolePartCurrentDirectory); now

This revision now requires changes to proceed.Sat, Mar 28, 3:11 PM