| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
So the new folder is in view.
|
|
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.
|
|
It's no longer true that KIO preview would block. It spawns an
asynchronous stat job if it needs to determine the mime type.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
ResizeAnimation and IconResizeAnimation are not
used anymore anywhere so remove them from KItemListViewAnimation
|
|
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
|
|
In editedRoleChanged.
This can happen if updateTextsCache has not yet be called before
editedRoleChanged in tests notably.
|
|
|
|
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
|
|
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
|
|
Found via `codespell -S "*.desktop,*.po,*.svg,*.xml,./po" -L aparent,childs,goup,lokal`
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
|
|
|
|
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.
|
|
Folder count would not update properly when user would delete file from
a folder, or add a new file to it.
Previously when size value is set to -2 after update, the update will
never be called again unless user presses F5. This change will instead
reset that -2 to 0 whenever we are requesting for calculating
directory sizes.
We never updated the count when a file was deleted, so that has been added as well.
This change also calculates the item counts from the processedAmount, which is the total amount of items we're processing. From there we remove the unwanted items and get the final count.
For remote files, we set the count to -1 since we don't calculate them.
BUG: 500502
|
|
This allows to keep the original pixmap in m_pixmap when resizing so it can have nice rendering when being resized and simplifies implementation
|
|
This consists in replacing the use of KIconUtils::addOverlay to custom
adapted function, based on KIconLoader::global()->drawOverlays previous
behavior.
BUG: 500428
|
|
- Statusbar has three modes: Small, FullWidth and Disabled
- FullWidth is the original statusbar
- Small is the new default statusbar
- This statusbar overlays on top of the items instead of taking space
- It changes size according to content
- Disabled turns statusbar completely off
- Zoom slider and space information is only shown in full-width statusbar
- Space information is now always on
- If user navigates with keyboard, or scrolls to selection, the scrolling will take the statusbar into account
- This makes sure the statusbar does not cover any items
Related discussion: https://invent.kde.org/system/dolphin/-/issues/50
|
|
Search from the next position for new search and special repeated key search.
Otherwise search from the current position, which is current selected item if
something is selected or in selection mode, and 0 (the beginning) otherwise.
Test plan:
- create directory with files ab1, ab2, and ab3
- click ab2, and press escape to deselect
- type ab; verify that ab1 is selected
- wait a while, type ab again, verify that ab2 is selected
- wait a while, type ab again, verify that ab3 is selected
- click ab1, type ab, verify that ab2 is selected
BUG: 422951
|
|
This change concerns `timeRoleGroup`.
|
|
When using keyboard search, normalize the item names and remove marks
first. Now, items containing characters with marks can be found using
keyboard search.
BUG: 482394
|
|
Now all overlays icons in kitemviews are added in
KStandardItemListWidget::updatePixmapCache.
data[iconOverlays] now contains icon names.
DolphinFileItemListWidget::refreshCache is the sole responsible of
setting the overlays either coming from KFileItemModelRolesUpdater or
KVersionControlPlugin.
This garantees consistency in rendering.
BUG: 497372
|
|
That were introduced in:
a55c467fbb31d822d89722812388425327830377
38ab14c87a945153e683657483fa4bcf44d6b0fb
|
|
|
|
|