| Age | Commit message (Collapse) | Author |
|
|
|
Because of a bug these messages haven't reached users in years, and it seems it is better this way. Remove the dead code.
Preparation for https://invent.kde.org/system/dolphin/-/merge_requests/1254
|
|
Previously, c035e95 introduced `QtConcurrent::run` to execute `KConfig::sync()` in a separate thread. However, this introduced thread-safety issue:
BUG 518433 (UAF caused by RC):
During application exit, the main thread frees the old `s_sessionConfig` in `KMWSessionManager::saveState()` to create a new one. Meanwhile, the worker thread is still iterating over the old instance's entryMap during `KConfig::sync()`, leading to a Use-After-Free (UAF) crash.
Changes:
Copy the `config` in the main thread so `KConfig::sync()` can safely run in the worker.
BUG: 518433
BUG: 516481
CCBUG: 425627
|
|
|
|
kxmlgui KCommandBar uses QAction::menu() to construct its action list.
Reuse the popupMenu as the menu, so KCommandbar finds zoom actions.
|
|
|
|
When a program is running on front while the graphical view is being changed, that can make the terminal and file view working directories out of sync. I wasn't able to find a signal from Konsole for when the foreground program exits, so having the terminal respond to F5 is the second best thing.
BUG: 510557
|
|
|
|
|
|
actions to be
"Empty Trash" has caused me to delete files that I've wanted to restore. This moves the position to where you expect them to be.
To my understanding the standard order in the context menu is:
Creation operations
Visual adjustments
Destructive operations
Misc.
Settings
| Before | After | Restore for comparison |
|-|-|-|
| {width=185 height=144}| {width=225 height=161} | {width=270 height=159} |
BUG: 518713
|
|
|
|
|
|
|
|
|
|
|
|
When browsing kdeconnect scheme, offer to open the KDE Connect
app to configure the devices.
On the overview, the button just opens the app. When listing
storage on a device, it opens the app directly with the given device.
|
|
|
|
This method would adjust the document to "reasonable size" but such
size is set nowhere, nor there is any indication what is a reasonable
size. This leads to the rename field being a lot wider than the
actual item size, making it look broken.
Removing this just keeps the document size same width as
the widget itself, making it more sensible and less broken looking.
|
|
|
|
Remove unused `referenceItem` variable in KFileItemModelRolesUpdater
and add Q_FALLTHROUGH() annotation for intentional SingleSelection →
MultiSelection fallthrough in KItemListController.
|
|
Reset m_hoveredItem when a new selection is set, preventing the
information panel from showing outdated hover data after selecting
a different item
|
|
|
|
|
|
|
|
|
|
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"
|
|
|
|
|
|
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"
|
|
(cherry picked from commit 707947a73a6c31097960a94c07aa0ee608ad4a65)
|
|
highlightEntireRow is true"
This reverts commit 17e55c976581aa58b4500e426fb2925a3d45c308, making drag and drops on non-selected item rows count as drops on the folder of the view, which was the intended behaviour.
The commit being reverted here makes it very difficult to drag and drop items between Dolphin windows, tabs, and split views, whenever the view is full of items. Drag and drop should be a natural and easy interaction with the file system, aiming at the margins to the sides of the view to even be able to drop an item is IMO very uncomfortable. This was also directly pointed out by Cristoph Feck in the bug report https://bugs.kde.org/show_bug.cgi?id=515439#c4.
The bug report also has only one active requester and no duplicates. This is insufficient reason to encumber such a basic behaviour as drag and drop.
|
|
|
|
|
|
to change menuBar visibility
The menubar check was defined by menubar isHidden var. The logic has
been reverted. The toggleShowMenuBar func was simply inverting the
isVisible var. Now it's being set the menubar isChecked value.
This led to testedObjectsSizeAfterTraversingForwards=10 instead of 11
(apparently there was a phantom object), so adjust the comparation
in dolphinmainwindowtest.
BUG: 492298
|
|
|
|
Natural sorting already handled plain numeric chunks, but names containing dots between numeric segments were still ordered lexically in important cases. This broke expected ordering for decimal-style names like 0.09 and 0.1, and for version-like names such as v1.2.3 and v1.2.10.
Teach KFileItemModel's natural string comparison to recognize dotted numeric chains instead of relying solely on QCollator's numeric mode. Compare two-part numeric chains (e.g. 0.09 vs 0.1) as decimal values, and compare longer chains segment by segment like version numbers, while still treating real file extensions separately so names like 1.09.txt keep working correctly.
Add a direct unit test for KFileItemModel::stringCompare covering decimal-style names, version-like dotted numeric names, numeric basenames with extensions, leading-dot names, and the non-natural sorting fallback.
BUG: 411707
|
|
non-Breeze QStyles
For non-Breeze QStyles Dolphin is currently drawing the full highlight effect for items even when they are deselected.
The issues is that it treats keyboard focus as the same state as a selected state, resulting in a persisting highlight effect.
This patch adds and extra check to paint `State_Selected` only when `m_selected` is true, thereby fixing the problem.
**TEST PLAN**
Tested with Oxygen, Fusion, Kvantum, Darkly, MS Windows 9x.
- all of the styles had the issue with the full selected state persisting on mouse deselect
- after this change all of the styles lost the full selected state and retained only their keyboard focus state
**SCREENSHOTS**
Before (MS Windows 9x):

After (MS Windows 9x):

|
|
Disables auto-repeat on the action for refreshing Dolphin's file list, preventing flickering, when holding F5 pressed/long.
BUG: 514209
|
|
|
|
|
|
We should avoid custom painting since that will cause issues with
Union and other styles. We however still use the old hardcoded painting
for Breeze style, which can be removed when Breeze 6.8 is released.
For other styles, we draw using the primitives the QStyle provides.
Also make the icon items less wider for better information density.
CCBUG: 508294
BUG: 508465
|
|
|
|
|
|
|
|
|
|
In navigator in frame mode (as opposed to inToolbar).
Once we set a colspan and rowStretch on the main widget (the splitter),
we don't need to pass bogus rowspan/colspan values to addWidget.
This prevents some warnings.
`QGridLayout: Multi-cell fromRow greater than toRow`
|
|
Inline rename was canceled when the edited item scrolled out of view. Scrolling could both finish the edit and recycle the item widget, causing the typed name to be lost.
Keep the inline rename editor alive while the item is temporarily offscreen. Update the editor geometry on scroll, avoid recycling the widget while it is being edited, and suppress the temporary FocusOut triggered by hiding the editor.
If the user interacts with another item while the edited one is offscreen, finish the hidden edit first so normal selection behavior is preserved.
BUG: 506884
|
|
|
|
Parent the QMediaPlayer and QAudioOutput so they can get deleted with
their parent.
|
|
To allow to cancel an edit role when the widget starts being animated.
This was hooked to a function not a signal.
|