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.
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.
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
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).
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)
* 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
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
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
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.
By default, the search filters widget calculates its
`minimumSizeHint` as the sum of its components' minimum widths.
This minimum width hint will scale up the widgets hierarchy,
finally imposing a minimum width to the contents view, which
in certain conditions can take the space from the side panels.
Let's set a minimum width hint of 0, so it is the filters widget
which always adapts to the available view size instead.
BUG: 466796
FIXED-IN: 23.04
We only load them in Konqueror, there are only the name, icon and doc path used.
The ServiceTypes are only a leftover from before the json conversion
Task: https://phabricator.kde.org/T14730
Do not read m_hoveredColumnHearderRoleIndex before it has been
initialised.
.6 0x00007fe00632182c in QList<KFileItemModel::RoleInfo>::Node::t
(this=<optimized out>, this=<optimized out>) at
/usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:153
.7 QList<KFileItemModel::RoleInfo>::at (i=3080252, this=0x7ffdf2e9bba8)
at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:572
.8 DolphinView::eventFilter (this=0x5584bef25160,
watched=0x5584bef8a300, event=0x7ffdf2e9bd30) at
./src/views/dolphinview.cpp:978
.9 0x00007fe003ebbdda in
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*,
QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
.10 0x00007fe004b6c782 in QApplicationPrivate::notify_helper(QObject*,
QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
.11 0x00007fe004b75411 in QApplication::notify(QObject*, QEvent*) ()
from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
.12 0x00007fe003ebc07a in QCoreApplication::notifyInternal2(QObject*,
QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
.13 0x00007fe004b72269 in QApplication::event(QEvent*) () from
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
.14 0x00007fe004b6c793 in QApplicationPrivate::notify_helper(QObject*,
QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
.15 0x00007fe003ebc07a in QCoreApplication::notifyInternal2(QObject*,
QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
.16 0x00007fe003f14e0b in QTimerInfoList::activateTimers() () from
/lib/x86_64-linux-gnu/libQt5Core.so.5
.17 0x00007fe003f15754 in ?? () from
/lib/x86_64-linux-gnu/libQt5Core.so.5
.18 0x00007fe001d20d3b in g_main_context_dispatch () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
.19 0x00007fe001d756c8 in ?? () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
.20 0x00007fe001d1e3e3 in g_main_context_iteration () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0
.21 0x00007fe003f15ad8 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
() from /lib/x86_64-linux-gnu/libQt5Core.so.5
.22 0x00007fe003eba99b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/lib/x86_64-linux-gnu/libQt5Core.so.5
.23 0x00007fe003ec2f34 in QCoreApplication::exec() () from
/lib/x86_64-linux-gnu/libQt5Core.so.5
.24 0x00005584bd2a9aad in main (argc=<optimized out>, argv=<optimized
out>) at ./src/main.cpp:249
BUG: 466110
We do not read the metadata anywhere, consequently we can allow empty metadata.
Consumers now don't have to provide a file and we do no spend time parsing the JSON.
Task: https://phabricator.kde.org/T14538
Ability to configure column for the file/dir permissions in
Numeric(Octal)/Textual/Combined style and update field display style to be right-alighed.
Add toolips to column menu items
BUG: 227745
Links are not always local files, e.g. 'remote:/zeroconf' links to 'zeroconf:/'
The current code fails there
Instead of using QFile API that does not work on non-local URLs use QUrl::resolved to resolve relative links
Furthermore, QFile::exists doesn't work for non-local URLs. Instead do a KIO stat to check whether the target exists
Since the Back action already has two standard shortcuts, a third one appended
to the list will be invisible in the UI, which shows only the first two. This
leaves users unable to reassign it.
We therefore make it the first shortcut in the list, so that the hidden third
entry will be the dedicated Back button, which users are far less likely to
want reassigned.
BUG: 371130
This makes the behavior of kernel cifs/nfs mounts the same as with kio's
smb://. It also helps reduce the chance of the UI hanging due to
opendir/readdir slowing down stat calls on the UI thread.
Signed-off-by: Andrew Gunnerson <accounts+kde@chiller3.com>
* This commit fixes the right click context menu not being shown
whenever the click is made right on the placeholderLabel text
Signed-off-by: Davide Garberi <dade.garberi@gmail.com>
The old expected behaviour was that pressing Space would select
the current item. We now trigger selection mode instead and don't
select. At some point in the future we might want to instead have
Space trigger a "QuickLook" feature for quick viewing of full
files. In any case, the old behaviour of having Space select is
no longer expected, but Ctrl+Space can still be used for this.
It might also make sense to have Space trigger the old selection
behaviour if both selection mode and "QuickLook" are disabled, but
that is very low priority and will cause more code complexity than
the non-default benefits are worth.
Before this commit, the "Space" keyboard shortcut was bound to
triggering selection mode by default. After this commit, pressing
"Space" will only trigger selection mode when the file view area
has keyboard focus.
Pros:
+ Other buttons in the UI can be triggered with Space once again
just like it is expected from an accessibility point of view.
+ "Type-ahead" searching works once more when typing the space
char for file names containing such a space char.
Cons:
- "Space" can no longer be used to add the currently underlined
item to the selection. Instead "Ctrl+Space" needs to be used.
(However, this is the current status anyway unless a user has
manually unbound "Space" as a shortcut from Selection Mode.)
- The Selection Mode action will no longer show "Space" as its
shortcut in menus.
Overall, I see solutions to all of these problems, but they seem
over-engineered for the issues they are trying to solve, so I
believe this somewhat small commit is the best solution for now.
BUG: 458282
BUG: 458281
CCBUG: 463048
FIXED-IN: 23.04