| Age | Commit message (Collapse) | Author |
|
This commit implements mirroring of the details view mode for right-to-
left languages. This is the last of the Dolphin view modes which did
not adapt to right-to-left languages correctly.
Implementation-wise this is mostly about adapting the math so all the
information is placed correctly no matter the view mode or layout
direction. While most of the view actually changes the painting code
for right-to-left languages, for the column header I decided to keep
the logic left-to-right and instead reverse the order of the role
columns.
To implement this mirroring I needed to rework quite a bit of logic, so
I used the opportunity to fix some bugs/behaviur quirks:
- Left and right padding is now saved and restored separately instead
of only saving the left padding
- Changing the right padding no longer disables "automatic column
resizing".
- The grip handles for column resizing can now be grabbed when near the
grip handle instead of only allowing grabbing when slightly to the
left of the grip.
- Role column headers now only show a hover highlight effect when the
mouse cursor is actually above that role and not above the grip
handle or the padding.
- There is now a soft-boarder when shrinking the right padding so
shrinking the padding "below zero width" will no longer immediately
clear automatic resize behaviour. So now it is possible to simply
remove the right padding by resizing it to zero width.
BUG: 449211
BUG: 495942
# Acknowledgement
This work is part of a my project funded through the NGI0 Entrust Fund,
a fund established by NLnet with financial support from the European
Commission's Next Generation Internet programme, under the aegis of DG
Communications Networks, Content and Technology.
|
|
This commit brings the main view of Dolphin into a usable state
accessibility-wise. Users of screen readers should have a way better
experience while browsing files and folders and navigating along the
file system hierarchy.
This commit fixes most of the remaining already-identified
accessibility issues listed in
https://invent.kde.org/teams/accessibility/collaboration/-/issues/28,
but not all. Namely, these should now be fixed:
1. Orca should read the element type in dolphin (file, folder, device,
link to folder, link to file)
2. Orca should read complete label in icon and compact view mode,
currently it only speaks the name, but there could be additional
information like the number of elements or the file size.
3. Orca is not able to announce Selecting / Unselecting files in
Dolphin. It also never announces how many items are selected in total.
(Announcing the total selection can be done by reading out the view
element or by pressing the Tab key to get to the status bar with the
relevant information.)
4. Dolphin opens on the home directory, but Orca doesn't tell you so.
Consider enclosing the area in a frame/panel which updates its
accessible name each time you modify the current path by entering or
leaving a directory.
5. I don't know what the folder presentation widget is, but it should
be presented as a grid view. Currently, we have a terrible experience
because the entire row of folders is read at once, with no indication
that we can move left and right with the arrows to go between the
elements of a row. When I found that out, however, I discovered that
when you're on the last icon of the first row and press right arrow,
you get to the first icon of the next row, but that's not announced,
instead, the whole row is announced at once
6. Orca should announce the current elements instead of "layered pane"
when the Folder / File view gets the focus in dolphin
7. Orca reads only name in Table View only of Dolphin
8. Items are sometimes confusingly announced as "collapsed" in contexts
in which there is no concept of collapsing/expanding e.g. in icon view
mode.
A lot of code was moved around and renamed. The three accessibility
classes, which all used to be in the same file, are moved into separate
files.
*Acknowledgement*
Thanks to Christian Hempfling and bgt lover for testing as well as
originally identifying a lot of the pain points being addressed here.
This work is part of a my project funded through the NGI0 Entrust Fund,
a fund established by NLnet with financial support from the European
Commission's Next Generation Internet programme, under the aegis of DG
Communications Networks, Content and Technology.
https://kde.org/announcements/2024_ngi_openletter/
|
|
|
|
Previously during rename, the number of QChar is used for selection,
which might be different from number of unicode characters.
Test plan:
- create the file zz❤️❤️.txt
- rename the file
- verify that the first 4 characters are correctly selected, which
didn't work before the patch.
BUG: 466814
|
|
|
|
Prior to this commit, the activateSoonAnimation would not play for
folders using previews. That was because the hoverSequences of
folder previews would always take priority over the
activateSoonAnimation.
This commit prioritises the activateSoonAnimation for the quick
moments in which it is active.
|
|
This commit adds an animation for folders that makes clear that
they will open or expand soon. This is the case when the option to
open folders during drag operations is enabled and a user drags an
item on top of a folder.
The animation goes like this:
- Replace the folder's icon with the "folder-open" icon
- Go back to the folder's original icon
- Replace the folder's icon with the "folder-open" icon once more
|
|
|
|
|
|
|
|
BUG: 422998
CCBUG: 444747
|
|
|
|
selected widget on focus change
|
|
|
|
Instead of using the one from QApplication, use the one from the window.
|
|
|
|
Since it actually adds padding on both left and right sides,
"Side Padding" might be more accurate.
This change is also propagated to variable and method names.
BUG: 453172
|
|
Current implementation of the zooming animation is a bit buggy.
This MR fixes the following issues:
* in the Icon view mode, the icons sometimes "jump"
* in the Compact view mode, the labels sometimes are cut off
BUG: 449179
|
|
This commit implements full-row selection and hover highlights for the
details view mode.
This commit also contains fixes for 444680, 444753, both uncovered
during this change.
BUG: 181438
BUG: 444680
BUG: 444753
FIXED-IN: 22.04
|
|
|
|
|
|
This shows a slideshow of thumbs when the user hovers a file item.
|
|
|
|
|
|
Draws overtop text that's goes below the baseline like a 'j'. It's
fairly difficult to add extra space below the text as the places view
is a "details" view, so the text is vertically centered in the
widget's "row" as you'd desire it to in the main file view.
We can make the widget 8px taller, adding 4px above and below so
there's adequate room for the capacitybar, but that wastes 4px for
each mount point.
Ideally we'd use the "compact" view, which displays the text/size in a
column beside the icon. However the compact view was not designed to
take up the entire width of the viewport. It's also designed to
overflow with a horizontal scrollbar.
|
|
Unfortunately licensedigger does not strip the trailing * characters.
While at it, use a common style for all source files.
|
|
Summary:
Tweak behavior introduced in D19471.
BUG: 404955
Test Plan:
Before:
{F8325282}
After:
{F8325283}
{F8325284}
Reviewers: ngraham, #dolphin, elvisangelaccio, #vdg
Reviewed By: ngraham, #dolphin, elvisangelaccio, #vdg
Subscribers: kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D29794
|
|
There is no KStandardItemView class in dolphin. This apidox has been
wrong since the beginning (see commit ae4d11d918938fd9087f2035dac).
GIT_SILENT
|
|
Summary: I used CLion inspection to hunt all unused #include
Reviewers: #dolphin, elvisangelaccio, markg
Reviewed By: #dolphin, elvisangelaccio, markg
Subscribers: bcooksley, markg, elvisangelaccio, #dolphin
Differential Revision: https://phabricator.kde.org/D10985
|
|
Looks like this is the result of a bad merge.
CCMAIL: [email protected]
|
|
|
|
|
|
Also use override instead of Q_DECL_OVERRIDE
|
|
Summary:
Scrolling during inline renaming accepts the renaming now, like if one would hit Return for example. I chose this approach because it seems the easiest way to fix this.
This also fixes the “possible” Ui glitch where the renaming KTextField doesn’t move along with the list item. Possible glitch, because I don’t know if this is intentional, but for me it looks broken.
BUG: 378786
Fixes T7443
Test Plan:
* Enable "Rename inline" in dolphin settings
* Go to a folder where you have to scroll through items (many files, big zoom,…)
* Start to rename a file (context menu, F2, …)
* Scroll with mouse wheel
* Rename accepted -> file is renamed
Reviewers: ngraham, rkflx, #dolphin, elvisangelaccio
Reviewed By: ngraham, rkflx, #dolphin, elvisangelaccio
Subscribers: anthonyfieroni, elvisangelaccio, #dolphin
Maniphest Tasks: T7443
Differential Revision: https://phabricator.kde.org/D8822
|
|
Summary:
Scrolling during inline renaming accepts the renaming now, like if one would hit Return for example. I chose this approach because it seems the easiest way to fix this.
This also fixes the “possible” Ui glitch where the renaming KTextField doesn’t move along with the list item. Possible glitch, because I don’t know if this is intentional, but for me it looks broken.
BUG: 378786
Fixes T7443
Test Plan:
* Enable "Rename inline" in dolphin settings
* Go to a folder where you have to scroll through items (many files, big zoom,…)
* Start to rename a file (context menu, F2, …)
* Scroll with mouse wheel
* Rename accepted -> file is renamed
Reviewers: ngraham, rkflx, #dolphin, elvisangelaccio
Reviewed By: ngraham, rkflx, #dolphin, elvisangelaccio
Subscribers: anthonyfieroni, elvisangelaccio, #dolphin
Maniphest Tasks: T7443
Differential Revision: https://phabricator.kde.org/D8822
|
|
Since now the breeze icons can be recolored by kiconloader
with svg stylesheets, use this feature to recolor the
currently selected icon in the sidebar and in the
details view (not the icon view)
look wouldn't change if used with icon themes that
don't support this feature
This makes it look more in line with the breeze style
REVIEW:127877
|
|
REVIEW: 126771
|
|
|
|
the deprecated KVersionControlPlugin interface from konqlib
REVIEW: 122687
|
|
REVIEW: 121078
|
|
|
|
This commit removes the icon tinting for the selected item in Compact
and Details View, and extends the selection rectangle such that it
includes the icon area as well. The icon tinting can be disturbing, and
having a selection rectangle that only includes the text can look a bit
strange, especially in the Places Panel.
BUG: 304643
REVIEW: 119018
FIXED-IN: 4.14.0
|
|
By separating the width and height info, we can save some unnecessary
overhead in terms of memory and CPU cycles, and make the calculation of
the height of a row (or the width of a column in Compact View) a bit
simpler.
To achieve this, this patch extends the concept of "logical rows"
(which are actually columns in Compact View) to "logical width" and
"logical height" (which is the actual height and width, respectively, in
Compact View). The distinction between rows/columns and "logical"
rows/columns may be a bit confusing, but the confusion is already in the
current code, and I hope that it will be mitigated a bit by prefixing
the corresponding variables with "logical".
REVIEW: 118454
|
|
compact mode
FIXED-IN: 4.13.0
BUG: 326210
BUG: 310592
REVIEW: 116121
|
|
The speed up is really small, but theses changes are mostly straightforward and make the code a bit nicer - break
the KStandardItemListWidgetInformant::itemSizeHint beast into three smaller functions.
FIXED-IN: 4.13
REVIEW: 112979
|
|
Currently, KStandardItemListWidgetInformant::itemSizeHint() calls the
model's data(int) method for every single item, but the full data is
actually only needed for the size calculation in Compact View. In
Details View, no data is needed at all to determine the size required
for the item, and in Icons View, only the name is needed.
This patch makes it possible for subclasses of
KStandardItemListWidgetInformant to provide an alternative way to
obtain the "text", and implements this in the subclass
KFileItemListWidgetInformant.
The final goal is to achieve that the QHash which contains all data
for a file item is only created if it is really needed, e.g., because
the view needs access to the data for displaying the item on the
screen.
REVIEW: 112253
|
|
The problem was that we drawed the overlays using KIconLoader, which can
be very slow, every time an item appeared on the screen. This commit
makes sure that not only the icon, but the icon including overlays is
cached in QPixmapCache. Therefore, the overlay drawing is done just once
for each icon+overlays combination.
For previews, the overlay drawing is done in KFileItemModelRolesUpdater
just after the preview is received.
BUG: 310662
BUG: 314339
FIXED-IN: 4.11.1
REVIEW: 111956
|
|
If the role editor loses focus, it considers the current renaming
operation finished, and tells DolphinView to rename the file. This is a
problem when changing the directory, because the URL change happens
before DolphinView receives the signal, which results in a file in the
new directory being renamed unexpectedly.
The solution is to establish the connection to the
slotRoleEditingFinished signal only when the "rename inline" editor is
opened, and disconnect it when renaming is finished or canceled or the
URL changes.
BUG: 319912
FIXED-IN: 4.10.5
REVIEW: 110908
|
|
This reverts 951cb9c35d7a9ef814b3de5b359915968da9b881 and
3143acc084d54d43df469b54762bfa10a7050a9f, and fixes the crash caused by
nested event loops by delaying the deletion of the KItemListRoleEditor
until the next item is renamed inline.
BUG: 311206
FIXED-IN: 4.9.5
REVIEW: 107606
|
|
color and QPalette::WindowText for text color. Also changed m_roleColor color mixing to 60% (from 70%) -> Better visible color difference when base color is darker than text color. Also changed styleOption().palette.brush(group, role).color() to styleOption().palette.color(group, role) in KStandardItemListWidget -> should be more efficient.
BUG: 303133
FIXED-IN: 4.9.1
(cherry picked from commit b3c3da985159a9627c079ad615cd77fc5f7bb72a)
|