┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kfileitemlistwidget.h
AgeCommit message (Collapse)Author
2024-10-28Overhaul main view accessibilityFelix Ernst
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/
2024-08-13KStandardItemListWidget: select by number of unicode charsYifan Zhu
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
2024-02-18Add documentationFelix Ernst
2023-09-02Add focusOut and focusIn event support for KFileItemListView and update ↵Méven Car
selected widget on focus change
2023-02-05Add clang-format and format code as in FrameworksSerg Podtynnyi
2021-07-04Add support for hover sequence thumbnails (via ThumbSequenceCreator)David Lerch
This shows a slideshow of thumbs when the user hovers a file item.
2020-08-25Output of licensedigger + manual cleanup afterwards.Elvis Angelaccio
Unfortunately licensedigger does not strip the trailing * characters. While at it, use a common style for all source files.
2018-03-04Remove unused #includeRoman Inflianskas
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
2017-11-20Modernize: Use override where possibleKevin Funk
Also use override instead of Q_DECL_OVERRIDE
2015-02-25Move the KVersionControlPlugin2 interface from konqlib to Dolphin and remove ↵Emmanuel Pescosta
the deprecated KVersionControlPlugin interface from konqlib REVIEW: 122687
2014-11-20Fix Exports.Andrius da Costa Ribas
REVIEW: 121078
2014-11-03Q_DECL_OVERRIDELukáš Tinkl
2014-03-05Fix Bug 326210 - Dolphin unnecessarily truncates names of soft links in ↵Emmanuel Pescosta
compact mode FIXED-IN: 4.13.0 BUG: 326210 BUG: 310592 REVIEW: 116121
2013-09-04Try to avoid calling the model's data method if only "text" is neededFrank Reininghaus
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
2012-08-13Fix bug 303375 - Dots in directory names treated as file extension.David Faure
Patch by Emmanuel Pescosta <[email protected]> BUG: 303375 REVIEW: 105575 FIXED-IN: 4.9.0
2012-05-26Use an italic font for symbolic linksFrank Reininghaus
BUG: 298218 FIXED-IN: 4.9.0
2012-05-01Places Panel: Allow hiding of itemsPeter Penz
Related changes: - Animate changed items for the details-view in case it is not expandable - Remove the hardcoded "isHidden"-code in KStandardItemListWidget and allow derived widgets to define themselves what means "hidden" within their context. The current code needs a lot of bugfixing, but lets make this in smaller steps during the next days...
2012-04-21Prepare view-engine for non-KFileItem usecasePeter Penz
Up to now the view-engine only provided a model-implementation that supports file-items. The view-engine always had been designed to be able to work with any kind of model, so now a KStandardItemModel is available. The plan is to convert the places panel to the new view-engine. It should be no problem to fix this until the feature freeze - in the worst case the places-panel code could be reverted while still keeping the KStandardItemModel changes.
2012-04-17Implement inline-renaming for the new view-enginePeter Penz
BUG: 286893 FIXED-IN: 4.9.0
2012-04-04Show the ratings as stars instead of textPeter Penz
2012-04-02Fix focus-rectangle issuesPeter Penz
Assure that the focus-rectangle exactly matches to the bottom of the rendered text. BUG: 297203 BUG: 289804 FIXED-IN: 4.9.0
2012-04-01Allow showing Nepomuk metadata inside viewsPeter Penz
Metadata like image-size, rating, comments, tags, ... can be shown now in the view (e.g. as column in the Details mode). Still open: The rating-information needs to be shown as stars. In the context of this feature also the following bugs have been fixed: - Fix visual glitches in the header of the Details mode - Improve the minimum column width calculation to respect also the headling and not only the content BUG: 296782 FIXED-IN: 4.9.0
2012-03-27KItemListView interface and implementation simplificationPeter Penz
- Remove KItemListView::preferredRoleColumnWidth() and allow implementing this as part of derived classes from KItemListWidget. Those derived classes are aware about the layout and hence also can provide the preferred role width. - Make KItemListView::itemSizeHint() non-virtual and also allow implementing the size hint as part of derived classes from KItemListWidget.
2012-03-23Details view: Optionally remember user changed column-widthsPeter Penz
If the user changed a column-width in the details-view, up to now the width got reset when changing a directory or when restarting Dolphin. Now the column-widths automatically get remembered for each directory in case if the user has modified the width. The automatic resizing is still turn on per default. The storing of the custom column-width can easily be reset by right clicking on the header and selecting "Automatic Column Widths" from the context-menu. Some finetuning is still necessary (e.g. the "Adjust View Properties" dialog currently is not aware about this setting) but this will be fixed during the next weeks. BUG: 264434 FIXED-IN: 4.9.0
2012-03-09Details view: Allow to turn off expandable folders like in Dolphin 1.7Peter Penz
The option for turning off expandable folders has been removed with the new view-engine. Due to several requests this option has been readded again. As for 4.8.x no new user-interface strings may be introduced, the line ExpandableFolders=false must be manually added below the section "[DetailsMode]" in the file ~/.kde/share/config/dolphinrc if the expandable-folders feature should be disabled. Thanks to H.H. "cyberbeat" for the initial patch! BUG: 289090 FIXED-IN: 4.8.2
2012-02-23Whitespace cleanups and documentation fixesPeter Penz
2012-02-14Details view: Fix indicator-branchesPeter Penz
Up to now no indicator-branches have been drawn when showing a tree. The patch fixes this so that that the style-dependent branches are drawn. The main part of the patch is the implementation of KItemListView::updateSiblingsInformation(). Most of the other changes are related due to an internal renaming of the expansionsLevel-role to expandedParentsCount and some related cleanups. BUG: 290276 FIXED-IN: 4.8.1
2012-02-04Icons view: Layout optimizationsPeter Penz
- Assure that landscape-previews use the whole available width of the icon-area instead of only using the square width. This waste of space occured if the text-width was larger than the icon-width. - Only use one margin instead of two between the icons and the text to improve the visual appearance (thanks to Martin Zilz for the hint) BUG: 293268 FIXED-IN: 4.8.1 CCMAIL: [email protected]
2011-12-23Introduce "isExpandable" rolePeter Penz
The role is used to determine whether a directory can be expanded at all. This is e.g. not the case if a directory has 0 items or the target-URL is different from the item-URL. The expansion toggle will get hidden if a directory is not expandable. CCBUG: 288521
2011-12-07Fix icon boundaries issuePeter Penz
The size of the icon boundaries should be as minimal as possible. The patch for fixing the zooming-issues with the selection resulted into a minor regression where the icon boundaries might be too large. This patch remembers the original size of the pixmap to be able to scale m_iconRect.
2011-11-27Apply icon effect for cut itemsPeter Penz
Fix issue that no icon effect got applied to icons that have been cut.
2011-11-18Fix wrong position of selection-togglePeter Penz
When switching between view-modes the selection-toggle sometimes had a wrong position.
2011-11-18Fix colors for the selection/hover-areaPeter Penz
Thanks to Hugo Pereira Da Costa for pointing this out and the initial patch! CCMAIL: [email protected]
2011-11-13Fix selection style issuesPeter Penz
Don't use a custom drawing code for showing the hover-indication or selection of the text. - The default style for items is used. - Merge icon-rectangle and text-rectangle if possible. - Fix background and minor focus-issues
2011-11-13Bring back the selection-markersPeter Penz
Still some finetuning is necessary, but lets first bring back the missing features from Dolphin 1.x to 2.0 before starting with this.
2011-10-23Improve group-header layoutPeter Penz
- Apply a dynamic width - Use a height that depends on the style - Cleanup some interfaces and replace xxxBoundingRect() by xxxRect()
2011-09-24Fix size-hint calculation in KFileItemListViewPeter Penz
The current approach works fine but should be replaced in the longterm by a helper class shared by KFileItemListWidget and KFileItemListView to share information that is required to calculate the size hints in KFileItemListView and to represent the actual data in KFileItemListWidget.
2011-09-20Change signature of setVisibleRoles()Peter Penz
Simply use a QList<QByteArray> instead of QHash<QByteArray, int>.
2011-09-09Improve cache handling in KItemListWidgetPeter Penz
Provide a hook for derived KItemListWidget where the cache can be updated.
2011-09-08Version control: show pixmap overlays for the version statePeter Penz
2011-09-06First step to reactivate version control plugin functionalityPeter Penz
- Add a DolphinFileItemListWidget that provides icon-overlays and colored text for the version state (implementation is missing yet) - Allow KFileItemListWidget to have custom text colors - Update interface of VersionControlObserver to work with KFileItemModel instead of the old model-interface.
2011-08-14Move drawing of textbackground to KItemListWidgetPeter Penz
As the textbounding-rectangle is now a property of KItemListWidget also the default visual appearance is moved now from KFileItemListWidget to KItemListWidget.
2011-08-14Rename KItemListWidget::hoverBoundingRect()Peter Penz
It has been split now to iconBoundingRect() and textBoundingRect(). This is required to implement the rubberband in an efficient way and makes it more explicit what rectangle is returned.
2011-08-09Improvements for selections, smooth scrolling, tooltips and info-panelPeter Penz
2011-07-30Merged very early alpha-version of Dolphin 2.0Peter Penz
Dolphin 2.0 will get a new view-engine with the following improvements: - Better performance - Animated transitions - No clipped filenames due to dynamic item-sizes - Grouping support for all view-modes - Non-rectangular selection areas - Simplified code for better maintenance More details will be provided in a blog-entry during the next days. Please note that the code is in a very early alpha-stage and although the most tricky parts have been implemented already very basic things like drag and drop or selections have not been pushed yet. Those things are rather trivial to implement but this still will take some time.