Instead of using QStyleOption::initFrom, let's use
QGraphicsWidget::initStyleOption, which is made for exactly the purpose
of KItemListWidget. This is especially important since, according to the
docs of QGraphicsItem::paint "The widget argument is optional. [...]
For cached painting, widget is always 0.". Even though currently no code
in dolphin does cached painting, for the sake of modularity one should
not rely on widget to be non-null. Using QStyleOption::initFrom does
assume that, though.
In fact, GammaRay asks the items to do cached painting when attaching it
to the application, causing it to crash.
Summary:
KItemListSelectionManager::itemsMoved (called when sorting by size)
was re-activating anchor selection regardless if we actually were
doing an anchored selection. This was leading to an incorrect
selection when navigating back.
BUG: 352296
Test Plan:
In any folder, sort by size then move to a subfolder. Navigate back
to the parent folder: only the parent folder should be selected.
Reviewers: #dolphin, elvisangelaccio
Reviewed By: #dolphin, elvisangelaccio
Subscribers: elvisangelaccio, broulik, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D17042
Summary:
The problem is caused by the fact device interfaces returned by
Solid (e.g. item->device().as<Solid::StorageAccess>()) are not
full objects, but only references/pointers to a per-device-object,
i.e. requesting the same interface for a device will return the same
address every time.
If the interface is used used in multiple places, calling disconnect
on the interface address disconnects the signals for all users.
BUG: 400992
Test Plan:
In Dolphin, mount a local partition (e.g. a Windows partition)
then unmount it (right click on it in Places, then Unmount).
Try to access it again by clicking on it in Places, we should
get access to it correctly.
Reviewers: #dolphin, #frameworks, bruns, elvisangelaccio
Reviewed By: #dolphin, elvisangelaccio
Subscribers: elvisangelaccio, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D16857
Summary:
BUG: 400860
FIXED-IN: 18.12.0
Clean up the context menu for the places panel.
- Change Text "Show All Entries" -> "Show Hidden Places"
- Use State dependent icon (like hidden files)
- Disable instead of hide if not places are hidden.
- Toggle to unchecked if last item of group is unhidden.
Create a copy of this "Show Hidden Places" entry in the main dolphin menu View->Places.
Test Plan:
With Hidden Places
{F6398756}
{F6398759}
Context Menu:
{F6398762}
{F6398761}
Without Hidden Places.
{F6414694}
{F6414696}
Reviewers: #dolphin, #vdg, elvisangelaccio, ngraham
Reviewed By: #dolphin, #vdg, elvisangelaccio, ngraham
Subscribers: cfeck, elvisangelaccio, veqz, davidc, ngraham, kfm-devel
Tags: #dolphin
Maniphest Tasks: T8349
Differential Revision: https://phabricator.kde.org/D16767
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: For normal "casual" linux users, renaming the file/folder starting with dot may get irritating, they will be wondering their file is deleted.
Test Plan:
1. Make new file/folder.
2. Rename it to .foo
3. Question dialog appears.
Reviewers: elvisangelaccio, ngraham, pino
Reviewed By: elvisangelaccio, ngraham
Subscribers: cfeck, emateli, elvisangelaccio, pino, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D15980
Summary:
This was supposed to be part of commit 5454283008, but apparently we
didn't notice it was missing.
Test Plan:
- Enable single-click mode from system settings
- Select a file in dolphin
- Long-click the selected file and make sure inline renaming doesn't start
Subscribers: kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D16460
Ensures the overlay is painted in the same icon state, especially the selected one so dark overlays turn white.
Differential Revision: https://phabricator.kde.org/D16307
Summary: BUG: 181880
Test Plan:
Right-click on a place or on a device in the Places panel now show a Properties entry.
Clicking on it will open its folder property.
Reviewers: #dolphin, #plasma, #vdg, ngraham, elvisangelaccio
Reviewed By: #dolphin, #vdg, ngraham, elvisangelaccio
Subscribers: anthonyfieroni, elvisangelaccio, cfeck, ngraham, abetts, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D15929
Commit c527dc2172 proves that on the CI sometimes the `QAbstractItemModel::dataChanged`
signal is not being emitted at all (build #208 failed because the test timed out).
KFilePlacesModel emits `dataChanged()` in the `_k_reloadBookmarks()`
slot only when it's called after the KBookmarkManager emits the `changed()` signal.
And the `changed()` signal is emitted after KDirWatch emits the
`created` signal.
On the CI server kdirwatch is probably not reliable, which would explain
why the test randomly fails.
The randomly failing `testRefresh()` on the CI can be reproduced by
replacing the QTRY_COMPARE with a simple QCOMPARE.
So it seems the CI can be slow such that the default QTR_COMPARE
timeout of 5 seconds is not enough.
If a timeout of 10 seconds fixes this particular test case, we can use
this bigger timeout also in the other failing tests.
Summary:
This removes the 'Unmount' context menu in the Places panel for discs
corresponding to / and /home.
It does not make much sense to offer an option that will always fail.
BUG: 399659
Reviewers: #dolphin, #vdg, elvisangelaccio
Reviewed By: #dolphin, elvisangelaccio
Subscribers: sefaeyeoglu, elvisangelaccio, ngraham, broulik, bruns, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D15989
Summary:
When renaming a file from '.hidden' to 'not_hidden', the file
would still be displayed like a hidden file with a semi-transparent
icon and a grey text.
BUG: 399599
Reviewers: #dolphin, elvisangelaccio
Reviewed By: elvisangelaccio
Subscribers: elvisangelaccio, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D16115
removePlaceAfter(index) is a bit misleading, because it seems we are
going to remove the place after index `index`.
This method is just scheduling the removal of the place instead.
The method name should be consistent with what it actually does.
Summary:
When renaming a file from '.hidden' to 'not_hidden', the file
would still be displayed like a hidden file with a semi-transparent
icon and a grey text.
BUG: 399599
Reviewers: #dolphin, elvisangelaccio
Reviewed By: elvisangelaccio
Subscribers: elvisangelaccio, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D16115
Summary: Right now, the "Create New" menu's functionality is not visible with Dolphin's default layout that has a {nav Control} button instead of a menubar. This patch adds that functionality to the {nav Control} button's menu so that it's actually discoverable for regular users.
Test Plan:
{F6304893}
All menu items work.
Reviewers: #dolphin, broulik, elvisangelaccio
Reviewed By: #dolphin, elvisangelaccio
Subscribers: acrouthamel, anthonyfieroni, elvisangelaccio, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D15609