Summary: The deb/rpm/pacman packages are now installed/uninstalled using packagekit.
Test Plan: Try to install deb package from kde store (search for `jetbrains`). Then uninstall it.
Reviewers: #dolphin, ngraham, elvisangelaccio, meven
Reviewed By: #dolphin, ngraham, elvisangelaccio, meven
Subscribers: cblack, anthonyfieroni, asturmlechner, meven, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D29119
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.
2. Checking that changing directory in terminal from local to local (but not in
KIOFUse mount) doesn't cause any regressions.
3. Checking that changing directory in DolphinView from remote/local to remote
correctly changes URL in terminal to KIOFuse equivalent.
4. Checking that changing directory in terminal from local to KIOFuse path
correctly changes the URL in the DolphinView to the remote equivalent.
5. Checking the KIOFuse not being installed doesn't cause any regressions.
6. Changing directories very quickly does not cause any slowdown.
Reviewers: #dolphin, fvogt, elvisangelaccio
Reviewed By: #dolphin, fvogt, elvisangelaccio
Subscribers: elvisangelaccio, fvogt, kfm-devel, ngraham
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D28290
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
Summary:
With the rename dialog upstreamed in D17595, we can use it from there.
This will require the KF5 dep to be bumped to 5.67, which should be feasible given that we're at the very beginning of a new Applications cycle.
Depends on D17595
Test Plan:
1. Dolphin Settings > uncheck "rename inline"
2. Rename one or more files. Observe that it still works
Tests still pass.
Reviewers: #dolphin, elvisangelaccio, meven
Reviewed By: elvisangelaccio, meven
Subscribers: meven, broulik, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D17597
Summary:
Extracts the logic that parses `baloosearch:` urls into a new model class. The parser logic itself is kept as is.
The search box UI is later updated using the model fields.
This refactor has been proposed by @bruns in the review of D24422, as it largely simplifies the unit tests and further expansion/improvements.
Test Plan:
No behavior changes.
Test case is added in the follow-up revision: D25258
Reviewers: #dolphin, elvisangelaccio, bruns
Reviewed By: #dolphin, elvisangelaccio, bruns
Subscribers: ngraham, bruns, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D25257
This patch fixes a link failure when building with the LLVM toolchain
which does not discover the dependency on or pull in the private dolphin
library when linking dolphin itself.
BUG: 410237
Differential Revision: https://phabricator.kde.org/D22802
Summary: Unmounting a busy device from the places panel doesn't tell which applications have open files blocking the unmount.
Test Plan:
Mount a USB stick using Dolphin
Open a file from the USB stick
Unmount the USB stick using Dolphin
Observe the new error message.
FEATURE: 189302
Reviewers: #dolphin, elvisangelaccio, ngraham, broulik, meven
Reviewed By: #dolphin, elvisangelaccio, meven
Subscribers: meven, davidedmundson, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D19989
Summary:
FEATURE: 183429
FIXED-IN: 19.08.0
GUI: new cli argument --new-window
Externally called files/directories are opened in a a new tab of an instance of Dolphin that already exists. If any of the given URIs are already open in a tab, then those tabs are activated instead of a new tab being opened. If there is no instance then the files/directories are opened in a new window. The newly opened file/directory has its tab activated, and consequently, the window is also activated.
When the user clicks "Open In New Window" or "Detach Tab", the files/directories are opened in a new window.
Test Plan:
[Manual]
Before testing, set the default file manager in system settings as the newly built Dolphin executable.
One must also include the new dolphin executable in the $PATH, otherwise some functions will attempt to open the system dolphin instead of the new one.
Furthermore, running two different versions of Dolphin (in particular, where one does not have this patch included) can result in bugs appearing, in particular, new tabs not opening as old instances will not recognise the DBus commands sent to it. However, I see no reason why a user will have two different versions of Dolphin (apart from people like us :D).
Open directories with the help of auxillary programs (i.e. a browser). The files/directories should appear in a new window if an instance does not exist. If an existence already exists, then a new tab should be opened and activated in that instance and the window activated.
Use QDBusViewer to open folders/items by calling the ShowFolders/ShowItems methods in org.freedesktop.FileManager1 of the Dolphin instance.
When a user chooses to "Open In New Window"/"Detach Tab" then the files/directories should be opened in a new window.
Reviewers: #dolphin, elvisangelaccio
Subscribers: zzag, dfaure, fvogt, fikrim, magar, fbg13, davidedmundson, kwin, ngraham, elvisangelaccio, anthonyfieroni, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D16648
Summary:
Add Bookmark Handling. Adds complete bookmark support as provided by
other KDE applications like Konsole and Konqueror. This allows you to
bookmark individual folders, create bookmark folders and open them.
Test Plan:
Go -> Bookmark -> Add Bookmark
Go -> Bookmark -> [Open the bookmark you selected]
FEATURE: 171366
Reviewers: #dolphin, elvisangelaccio, ngraham
Reviewed By: #dolphin, elvisangelaccio, ngraham
Subscribers: ognarb, meven, loh.tar, cfeck, hein, kfm-devel
Tags: #dolphin
Maniphest Tasks: T5408
Differential Revision: https://phabricator.kde.org/D19926
Test Plan: Builds fine again in a sandbox, with the symlink properly installed.
Reviewers: #dolphin, elvisangelaccio
Reviewed By: #dolphin, elvisangelaccio
Subscribers: davidedmundson, elvisangelaccio, kfm-devel, ngraham
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D21011
Summary:
The current external configuration dialog has some issues:
- its layout is suboptimal, as its initial size is typically to small
- it is quite disassociated with the actual widget it configures, properties
have a different order, and the property names can be quite abstract
without the corresponding value.
Doing the visibility selection inline typically avoids the sizing problem,
as the containing application (dolphin) is often vertically maximized.
The selection becomes more obvious, as the item order is kept,
and the values are shown.
Depends on D20524
CCBUG: 389571
Reviewers: #dolphin, #baloo, #frameworks, ngraham, astippich, #vdg, elvisangelaccio
Reviewed By: #dolphin, elvisangelaccio
Subscribers: elvisangelaccio, meven, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D20525
Summary:
FEATURE: 405302
FIXED-IN: 19.08.0
Test Plan:
1. Apply patch
2. Reboot (didn't work until I rebooted or logged out and back in again)
3. Hit {key Meta E}
4. Dolphin Launches
Reviewers: #dolphin, elvisangelaccio, davidedmundson
Reviewed By: #dolphin, elvisangelaccio
Subscribers: kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D20229
Summary: This code has been unused since the KF5 port.
Reviewers: #dolphin, #plasma
Subscribers: kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D18273
Summary:
This patch ports away from the old PlacesItemEditDialog copy,
which doesn't honour the "applicationLocal" checkbox.
KFilePlaceEditDialog was not exported by KIO, but it will be starting
from 5.53
BUG: 376619
FIXED-IN: 19.03.80
Test Plan:
* Create a new place ("Add Entry" from the panel context menu) and check the "only show in dolphin" checkbox
* Edit an existing (global) place and check the "only show in dolphin" checkbox
Reviewers: #dolphin
Subscribers: kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D16824
Summary:
to successfully use kcrash when linking with as-needed (which is a default
flag on many linux distros) one also needs to call KCrash::initialize.
this call happens in the app's main.cpp. as such the kcrash link target
on the dolphinprivate library doesn't do anything for dolphinprivate but
only kicks into action for dolphin itself.
to avoid confusion and make it clear that kcrash is only initialized in the
application scope the KF5::Crash link target is now on the application
target, not the library target.
(this makes no difference in the output, kcrash was still correctly linked
via dolphinprivate; but only for kdeinit_dolphin, dolphinprivate did
not get linked to it with as-needed)
Test Plan: builds; links as expected
Reviewers: elvisangelaccio, #dolphin
Reviewed By: elvisangelaccio, #dolphin
Subscribers: kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D16896
Summary:
It was only used as fallback when baloo was not found, but
`KFileMetaDataWidget` is useless without nepomuk.
The result of this patch is that the information panel and the tooltips
won't be available from platforms without baloo (instead of being
available but broken). The baloo dependency remains optional.
Closes T8720
Test Plan:
Build dolphin with `cmake -DCMAKE_DISABLE_FIND_PACKAGE_KF5Baloo=ON ..` and
make sure it doesn't show tooltips or the information panel.
Reviewers: #dolphin, broulik, ngraham
Subscribers: kfm-devel
Tags: #dolphin
Maniphest Tasks: T8720
Differential Revision: https://phabricator.kde.org/D14814
Summary:
A modal dialog that opens another modal dialog is bad UX and should be
avoided whenever possible. These days we have `KCollapsibleGroupBox`
that can be used to show advanced settings without cluttering the
default layout.
This change removes the `AdditionalInfoDialog` and uses a collapsible
groupbox instead. The `Apply` buttons gets enabled whenever a role gets
checked or unchecked, consistently with the existing checkboxes.
Test Plan: Change visible roles in the view properties dialog.
Reviewers: #dolphin, #vdg
Reviewed By: #vdg
Subscribers: ngraham, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D13569
Summary:
There is no need to add all of kdeinit_dolphin's
dependencies (including the static archive) when
linking dolphin; kdemain is the only needed symbol.
Mark the link libraries PRIVATE to simplify the
link command for dolphin.
Reviewers: #dolphin, elvisangelaccio
Reviewed By: elvisangelaccio
Subscribers: asturmlechner, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D12931
Summary:
The file main.cpp is already in dolphin_SRCS and doesn't
belong in dolphinstatic_SRCS.
Normally the duplicate object is simply ignored, but with
link time optimization (LTO), linking dolphin can fail.
Apparently, the compiler tries to inline inline kdemain()
in this case. That is undesirable anyway and it ultimately
fails because the DBusInterface definition is not available:
.../ccHEv6cl.ltrans0.ltrans.o: In function `DBusInterface::~DBusInterface()':
<artificial>:(.text+0x2583): undefined reference to `vtable for DBusInterface'
.../ccHEv6cl.ltrans0.ltrans.o: In function `DBusInterface::~DBusInterface()':
<artificial>:(.text+0x5aa3): undefined reference to `vtable for DBusInterface'
.../ccHEv6cl.ltrans0.ltrans.o: In function `kdemain':
<artificial>:(.text+0x7686): undefined reference to `DBusInterface::DBusInterface()'
<artificial>:(.text+0x7b64): undefined reference to `vtable for DBusInterface'
collect2: error: ld returned 1 exit status
See also <https://bugs.gentoo.org/655710>.
Reviewers: #dolphin, elvisangelaccio
Reviewed By: elvisangelaccio
Subscribers: elvisangelaccio, asturmlechner, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D12929
There are various places where Dolphin created a new KFilePlacesModel which would then query all storage devices and do other expensive work.
Differential Revision: https://phabricator.kde.org/D11283
Summary:
terminalpanel.cpp *should* compile on Windows, so there is no reason to
remove it from the build and use tons of #ifdefs in dolphinmainwindow.
We still keep the terminal panel disabled on Windows
(i.e. the two remaining #ifndef Q_OS_WIN in dolphinmainwindow),
because it is probably not functional.
But at least we won't break the Windows CI every time
someone touches the terminal panel code (see e.g. 2e942237c9).
Test Plan: Builds on Linux, someone on Windows should test this patch if possible.
Reviewers: #dolphin, #craft
Differential Revision: https://phabricator.kde.org/D10006
- "include own header first line"
- "put config.h in angle brackets line"
- "do not include QtModule/QtClass line"
`QElapsedTimer` was implicitly included by
kfileitemmodelsortalgorithm.h, now we need to explicitly include it in
kfileitemmodel.cpp.
We also need to explicitly link to `Qt5::Concurrent`, otherwise we
cannot `#include <QtConcurrentRun>`.
This allows us to speed up the compilation because we don't need to
build twice the source files we use in the unit tests.
Test Plan: Builds, dolphin works and tests pass.
Reviewers: emmanuelp, dfaure
Differential Revision: https://phabricator.kde.org/D5935
Since commit 230fe13d1f this class is not a "tooltip" anymore, but just a
simple widget. Rename it to avoid future confusion.
Reviewers: emmanuelp
Differential Revision: https://phabricator.kde.org/D4451
KWindowSystem is no longer used since commit 230fe13d1f.
It was only pulled for `KWindowEffects::enableBlurBehind()`, which is
now in plasma-integration (triggered by KToolTipWidget).
It appears that KF5TextEditor was added for KTextEdit, but that is actually
provided by KF5TextWidgets. It's then necessary to explicitly link to KF5Parts
(it was previously brought in implicitly by KF5TextEditor).
REVIEW: 124932
there are no headers being installed for the private library so it cannot
be linked anyway, so we can also skip the namelink creation (.so symlink)
REVIEW: 124812
Reduces the amount of needed code.
NEW: by using KMoreTools the menu is now user-configurable and
will automatically extended when KMoreToolsPresets gets new tools.
REVIEW: 122911
The natural query parser is too unstable for the release atm, we'll readd the
query parser when the code is mature enough.
This reverts commit e3578ee3b7.
the menu has the following entries:
1. Filelight location
2. Filelight device
3. Filelight
4. KDiskFree
KService is used to find the applications and display proper
translations.
KRun is used to run the applications.
REVIEW: 121478
CHANGELOG: Add a menu on left-click on the SpaceInfo widget in the status bar to show Disk Usage statistics.
RR 121078 fixed exports, but did not include the necessary
generate_export_header in the CMakeLists.txt.
Please, if you are testing for Windows, ensure you also test your build
in Linux (and with a clean build dir). The fact that kde-baseapps for
KF5 is still unreleased does not mean it should not be buildable.
CCMAIL: andriusmao@gmail.com
The signal activeViewUrlChanged in DolphinTabPage is currently unused, but we need it later when
we implement the tab widget and tab bar.
DolphinTabPage has saveState/restoreState which are using a QByteArray instead of the KConfigGroup to
be more generic.
REVIEW: 118964
tabs menu related code from DolphinMainWindow in a new class.
The DolphinRecentTabsMenu remembers the tab configuration if a
tab has been closed.
REVIEW: 118805
The old code would watch the free space on a mount point, i.e.,
determine the free space again, in 10-second intervals, only until the
view became invisible once (even if it was invisible only for a very
short moment, i.e., while splitting the view).
This commit ensures that the mount point is watched again as soon as
the corresponding view becomes visible again.
Moreover, the object that watches the free space for a mount point is
shared among all views that show URLs that belong to this mount point.
To achieve this, there is a central cache which can be used to obtain
an existing MountPointObserver for a certain path. If necessary, a new
MountPointObserver is created and added to the cache.
The MountPointObserver is removed from the cache and destroyed only if
no views use it any more, and no new users appear until the next update
(which happens every 10 seconds). This prevents that the free space is
measured repeatedly when changing the current directory on the same
mount point.
Many thanks to Emmanuel Pescosta for the initial ideas to factor out
the "free space" code and to establish a central storage for the
"observer" objects, and for providing many good suggestions how to
improve the code!
BUG: 327708
REVIEW: 118208
FIXED-IN: 4.14.0
This does not work properly yet, there are probably quite a few bad signal/
slot connections due to KUrl -> QUrl. However dolphin starts without
crashing.
Accessibility is not ported since that changed quite a lot from Qt4 -> Qt5
and I have no idea how it is supposed to be used.
This is the first commit for review 117395
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
This prevents that the GUI freezes if there are many files inside the
directory, or if the access to the directory is slow for some other
reason.
BUG: 318518
REVIEW: 111920
FIXED-IN: 4.12.0