┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews
AgeCommit message (Collapse)Author
2026-03-09kitemviews: add "Folder Name" column to details viewJussi Räsänen
BUG: 433937
2026-03-09kitemlistview: when editing file name set anchored selectionMéven Car
So the selection manager can consider the selection has changed. This makes sense as when editing file name you can only have a single item selected. BUG: 453262
2026-03-06KItemListController: Check for highlightEntireRow on rightClickAkseli Lahtinen
Like with leftclick, we should check this for rightclick. If user has highlightEntireRow enabled and right clicks an item, the item should be activated. BUG: 508356
2026-02-16kitemviews: add duplicate column values to video details view where appropriateArie Miller
2026-02-11kitemviews: add columns for audio/video codec, color space, and pixel formatArie Miller
2026-02-08kfileitemmodelrolesupdater: Disconnect change signal before changing dataKai Uwe Broulik
Avoids the item being considered dirty when *we* changed it. It is guarded in most places but wasn't done in the pixmap animation stuff causing the item considered dirty whenever hovering it.
2026-02-07Remove preview ignore maximum local size handling from DolphinKai Uwe Broulik
This all seems to be done by the PreviewJob in KIO already.
2026-02-05KItemListController: Use entire row for drag and drop if highlightEntireRow ↵Akseli Lahtinen
is true Currently when dragging and dropping items in Details view, even if the "Open files and folders" setting is set "By clicking anywhere on the row", drag and drop still behaves differently. Instead, make the drag and drop follow the setting: If clicking anywhere on the row causes actions, so should dropping anywhere on the row. BUG: 515439
2026-02-04KFileItemModelRolesUpdater: Use mime type from preview job, if anyKai Uwe Broulik
The preview job does an async stat on the file, so we might as well use its information to determine the icon. Also only determine mime type in the final "ResolveAll" step since it will initially resolve roles but mime type isn't necessarily fast.
2026-02-01Support drop onto executable to run itKai Uwe Broulik
We already support dropping onto desktop files. This is also something that KDirOperator did but Dolphin does not.
2026-02-01Use currentMimeType for temp file filterKai Uwe Broulik
All temporary file types are identified by glob (file extension), so we don't need to resolve the final mime type here. The model filter is generic but effectively right now only used for filtering temp files. Should this change in the future, it needs to be revisited.
2026-01-22clang-tidy: misc-use-internal-linkageMéven Car
2026-01-22clang-format: readability-avoid-return-with-void-valueMéven Car
2026-01-22clang-tidy: fix modernize-loop-convertMéven Car
2026-01-22clang-tidy: fix unecessary-value-paramMéven Car
2026-01-22clang-tidy: avoid copy, use const referencesMéven Car
2026-01-22clang-tidy: use default for trivial constructorMéven Car
2026-01-21Add keyboard anchor assignments to mouse eventsTomasz Kot
The mouse events need to modify the keyboard anchor assignments as well, because selecting an item with a mouse and then navigating with keyboard wouldn't follow the same selection. BUG: 508609
2026-01-20dolphinview: when creating a subfolder expand to it if in details modeMéven Car
So the new folder is in view.
2026-01-10Use Q_ASSERT instead of Q_CHECK_PTR for plain checks of pointer valueFriedrich W. H. Kossebau
Q_CHECK_PTR (other than the name suggests) is intended only to check the success of memory allocations. Using it for any pointers instead can be misleading due to the "Out of memory" log printed in case of hits.
2026-01-07KFileItemModelRolesUpdater: Don't resolve mime type manuallyKai Uwe Broulik
It's no longer true that KIO preview would block. It spawns an asynchronous stat job if it needs to determine the mime type.
2025-12-08kfileitemmodel: Fix folder/file icon rating displayPan Zhang
Fix the issue where enabling icon rating always showed five white stars. Retrieve the correct rating from KFileMetaData::UserMetaData for local files and insert it into the item data. This ensures both files and folders display the updated rating correctly. BUG: 512940
2025-11-27kitemviews: Prevent crash when dragging details side padding headerCarlos Aurelio
Calling createRolePixmap() while roleIndex is < 0 (which is the case for the header side padding) would cause access to a negative index of a vector, so exit the function before so and do nothing. BUG: 511057
2025-11-21kstandarditemlistwidget: Fix vertical misalignment for file names containing ↵Pan Zhang
certain glyphs In the Details view the name (text) column could appear vertically off-center for file names containing certain Unicode glyphs (for example "』"). The issue is caused by a mismatch between the generic font metrics ascent and the actual ascent of the rendered QTextLine for that glyph, which shifts the baseline and thus the visual vertical centering. This change computes the QTextLine ascent for the (single) layouted line and adjusts the vertical position by the difference between the font metrics ascent and the line ascent. The adjustment is applied only for the name (text) role so other columns are unaffected. BUG: 512152
2025-11-12Revert "Avoid implicitly selecting items"Nate Graham
This reverts commit 122fee5625f0285ec4ebda79162c72390989eb2a. This behavior change was well-intentioned, but has significant usability and speed drawbacks that have not been addressed: - Keyboard-driven folder manipulation became slower - Unexpected behavioral differences when opening files with the pointer compared to when opening them with the keyboard introduced inconsistency and cognitive load - Unexpected opening of selection mode during fast operation introduced the potential for confusion and additional errors - Dolphin's behavior became inconsistent with that of other file managers users may be accustomed to The bug tracker, discuss.kde.org, and Reddit are full of complaints about this change. It's been a year now; I think it's clear that many Dolphin users have not gotten used to and accepted it. I have to count myself as one of them, I'm afraid. I've tried to get used to it for a year, but I just have not been able to. I don't believe the benefits of this change outweigh the drawbacks, so let's revert it. 24d859cf19e90fa22ed687b36a68231625c1bd80 was explicitly mentioned as a thing that should also be reverted in this case, but it's already been done. BUG: 494125 BUG: 511966 CCBUG: 424723 CCBUG: 492404 FIXED-IN: 25.12.0
2025-11-10dolphin: improve keyboard search behavior for repeated charactersweinan li
The original keyboard search implementation had a limitation when dealing with files containing repeated characters like 44.txt. When typing 44, it would trigger rapid navigation to the next item starting with 4 instead of matching the full string 44. This patch introduces a smarter search strategy: 1. First attempt full string matching for exact file names 2. If full match fails and user is typing repeating characters, fall back to rapid navigation using either: - Last successful search string (for extended searches like 444 -> 4444) - First character only (original rapid navigation behavior) The changes include: - Modified changeCurrentItem signal to include a found parameter for search result feedback - Added m_lastSuccessfulSearch to track successful searches for better fallback behavior - Used Qt::DirectConnection to ensure synchronous execution for immediate result feedback This provides better user experience when searching for files with repeated characters while maintaining the rapid navigation feature for quick browsing. BUG: 501851
2025-11-04icon view: fix file names overflowing after text elidingBojidar Marinov
aba0de7301b060c40d543adbaa8d53cf69a9d7ee re-introduced the usage of QFontMetrics::boundingRect(QString) for calculating the size of the last line of a filename. ..Unfortunately, that function uses a different code path from QTextLayout, and arrives at a shorter width for a line of text. Meanwhile, QFontMetrics::size(QString) internally uses QFontMetric::boundingRect(QRect, int, QString, ..), which has been documented as "The bounding rectangle returned by this function is somewhat larger than that calculated by the simpler boundingRect() function. This function uses the maximum left and right font bearings as is necessary for multi-line text to align correctly." I have empirically confirmed that QFontMetricsF::size and QTextLine::naturalTextWidth return the same floating-point value given the same input, and QFontMetrics::size does internally use QTextLine::naturalTextWidth through qt_format_text. BUG: 432530
2025-10-23Remove ResizeAnimation/IconResizeAnimationMarco Martin
ResizeAnimation and IconResizeAnimation are not used anymore anywhere so remove them from KItemListViewAnimation
2025-10-23Item view: don't do a zoom animationMarco Martin
The zoom animation in all 3 views looks very glitchy, because icons that were already in view animate, those that weren't don't animate giving weird effect. In the list view mode, the tree view branches don't animate either, showing weird holes between the branches Also, while zooming in and out very quickly, is possible to have the selection rectangle somehow unsynced with the items sizes leading to visual glitches. Without an animation, zooming the view feels much faster and robust giving immediate feedback when zooming via ctrl+scroll or by dragging the slider around BUG:510426
2025-10-23kstandarditemlistwidget: guard against textOption not existingMéven Car
In editedRoleChanged. This can happen if updateTextsCache has not yet be called before editedRoleChanged in tests notably.
2025-09-23GIT_SILENT: Don't duplicate headers between .h/.cppLaurent Montel
2025-09-11dolphinview: add preferred sort order for rolesNathan Williams
BUG: 425457 This commit ensures that both the menu and column headers in table view will have the same default sorting (ascending/descending) for each role. It also saves the user's preferences for each role throughout the session. Previously, sorting by "Modified" would always sort by "Oldest First." If the user then changed to "Newest First" and sorted again by "Name," files would be sorted in reverse alphabetical order (Z-A). Now, sorting by "Modified" defaults to "Newest First." If a user switches between multiple roles, the default for each role will be used unless the user changes to a non-default sort order. In that case, the user's preference will be applied. Defaults: **Descending Order:** Time-based roles - modificationtime - creationtime - accesstime - deletiontime - imageDateTime - releaseYear Size/dimension roles - size - width - height - pageCount - wordCount - lineCount Quality/Quantity roles - rating - duration - bitrate - frameRate **Ascending order:** - Text based roles (A-Z) - All other roles
2025-09-07Double scroll distanceFelix Ernst
This commit doubles the distance a single scroll tick will scroll in the main view. While fixing a bug and improving scroll behaviour in 8e3addb7e73122a4c89ef347b03f714ff75a253a, the scroll distance was effectively reduced to a third of the original value. Most users seem to be okay with this, but there is some disgruntlement. Even though the new scroll speed is consistent with KWrite, it is way slower than e.g. Firefox. In a perfect world we would have a similar scroll distance in every scroll area so users could predict how much they have to scroll to see a certain part of the content, however we are not there yet. This commit aims to find a middle ground between our own definition of scroll distance and user expectation. BUG: 508290
2025-09-03Fix several user-facing and non-user-facing typosKunda Ki
Found via `codespell -S "*.desktop,*.po,*.svg,*.xml,./po" -L aparent,childs,goup,lokal`
2025-09-02KStandardItemListWidget: Clean hover effect on editRole changedAkseli Lahtinen
When editRole is changed, as in we start renaming an item, we should clean up the hover effect. Otherwise we'll have a weird glitchy look. BUG: 508388
2025-09-02KStandardItemListWidget: Do not recolor branch indicatorsAkseli Lahtinen
Since we never set the background color of the branch indicator to something different now, we can just let its color to stay as default.
2025-09-02KStandardItemListWidget: Color icon only if item isPressedAkseli Lahtinen
Due to the new focus changes, our background highlights are more transparent. This means that the selected icon color is wrong, since it's meant for fully opaque background We should color the icon only when the element is pressed, which is the only time we use fully opaque background. BUG: 508418
2025-08-26KStandardItemListWidget: Use styleOption().iconSizeAkseli Lahtinen
We should use styleOption().iconSize instead of iconSize(), since the styleOption returns always the correct size depending on if we are showing previews or not. In DolphinItemListView we set the iconSize based on the previewSize or iconSize, and the styleOption().iconSize is whichever value it is here. KItemListWidget::iconSize always returns the settings.iconSize BUG: 508352
2025-08-26KItemListView: Check if animation is already started before starting new oneAkseli Lahtinen
When user changes the zoom rapidly, we start the animation multiple times, which causes delays with the animation and the icon size is wrong for a while until user interaction refreshes the view. This change runs the animation only when it's been finished, and avoids the issue with the refresh. Instead in those situations, we know that user is doing something really rapidly, so we should just set the icon size to what it needs to be. BUG: 508352
2025-08-18KItemListWidget: Use strokePath instead of drawPathAkseli Lahtinen
StrokePath gives the focus frame a less blurry look Since the path is bit thinner now, we need to adjust the alpha level to make it easier to see. This is especially visible in dark themes. BUG: 507005
2025-07-24KItemListView: Don't allow starting role editing when animation is runningAkseli Lahtinen
If user presses delete and then F2 in very quick succession, the inline rename field will get stuck in place, due to the animation moving the actual item in different place. To avoid any confusion, disallow starting role editing while any animations are running. BUG: 497125
2025-06-23Fix file names overflowing after text elidingBojidar Marinov
When QFontMetrics::boundingRect().width was replaced with QFontMetrics::horizontalAdvance() in 76a46fd9094b17eb99e8a42cca8562fdc0b3814c, an extra line (formerly introduced by a203c271161ce953354b9e0722492605a4d17415) was changed as well. Unfortunately, boundingRect().width is the correct function to use for calculating the size of the last line, while horizontalAdvance would be correct if we were laying it next to the previous line instead of below the previous line. BUG: 432530
2025-06-20New selection effectsAkseli Lahtinen
This adds a new selection effect that is similar to what we have in QtQuick file item views. There are also changes to some usability: Instead of only the icon and text being the clickable area in icon and details mode, the whole selection is now the clickable area. Otherwise the usability should stay the same, it's mostly a visual change. See also: https://invent.kde.org/teams/vdg/issues/-/issues/94
2025-06-17Add setting to select filename eliding behaviorGleb Kasachou
Introduces a setting in Content Display Tab that allows to choose how filenames are truncated when they do not fit in the maximum filename length, i.e elide. BUG: 504795
2025-06-12DolphinView: Conform to global scroll speedAleksandr Borodetckii
One scroll with the mouse wheel is supposed to scroll the view by QApplication::wheelScrollLines, however previous to this commit Dolphin scrolled the view by QApplication::wheelScrollLines^2 instead, which was wrong and way too much. This commit fixes this by defining one line height as the height of the current default font. This value is multiplied by QApplication::wheelScrollLines to determine the scroll amount per mouse wheel scroll. In details view mode however, where there really are rows to go by, this commit makes sure to always scroll by full rows. The number of rows to scroll is determined by rounding up from the scroll amount used in the other view modes. Co-authored-by: Felix Ernst
2025-05-14Check if the item supports sequencing before looking for sequence pixmapsAkseli Lahtinen
This patch checks the item first if the plugin it's using for it's previews even supports sequences. If not, we can then safely ignore the hover action for polling more sequences and avoid unnecessary work. The sequencing support is false by default, so we set it true only when we know it's possible.
2025-05-09DolphinView: Remove -1 interval, add setAutoActivationEnabledAkseli Lahtinen
In future Qt versions, Qt Timers do not allow negative intervals. Instead, they will be changed to 1. Related Qt commit: https://github.com/qt/qtbase/commit/f1f610bc67bfd5c2ef31270a6945e7bae93b5e4a Instead of relying on the interval, use a boolean variable to check if the autoactivation is enabled or not.
2025-04-29Clazy fixMéven Car
2025-04-20KStandardItemList: have emblem when hoveringMéven Car
2025-03-23KFileItemListWidget: wrong selection when renamed file ends with a dotShitong Xu
When a file name ends with a dot, it should be treated like there is no extension. When triggering a rename, the file name except the extension should be selected, which is equal to the full file name when the file ends with a dot.