┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistview.h
AgeCommit message (Collapse)Author
2012-05-28Implement dropping of items into the Places PanelPeter Penz
Some polishing regarding the icons and group-alignment must still be done, but at least the basic functionality is back again.
2012-05-21Places Panel: Show drop indicatorPeter Penz
The dropping itself has not been implemented yet.
2012-05-18Enable basic drag and drop support for the Places PanelPeter Penz
The dropping has not been implemented yet, however in the context of this step the creating of the drag-pixmap is now forwarded to the item-widgets. This allows creating some optimized dragging-pixmaps e.g. for the details-view, where only the name and icon should be provided as drag-pixmap.
2012-04-24Provide additional default groups for the Places PanelPeter Penz
If Nepomuk is enabled, it is now possible to easily search for some most common queries by having additional groups.
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-11KItemViews: Internal directory restructurationPeter Penz
- Move all private headers from the kitemviews-directory into the 'private' subdirectory. - Get rid of DolphinDirLister and just use a directory-lister internally in KFileItemModel. - Minor interface-cleanups for signals
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-26Rename KItemListView::preferredColumnWidth() to preferredRoleColumnWidth()Peter Penz
2012-03-26Internal interface cleanupPeter Penz
Let derived classes from KItemListView just implement preferredColumnWidth() for one role of an item instead of returning a hashtable for a given item-range.
2012-03-25Details view: Don't reset to automatic resizing when adding columnsPeter Penz
Until now when a new column is added in the case where custom column widths are used, the automatic resizing has been turned on again. The patch fixes this so that the current widths stay and the new column gets a proper default width.
2012-03-24Cleanup and minor fixes for column-handlingPeter Penz
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-20Fix alternate background issuePeter Penz
When items get inserted or deleted, the alternate background must be updated.
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-03-07Allow custom sorting of details-view columnsPeter Penz
Fix regression that Dolphin 2.0 did not allow to adjust the sorting of the details-view columns. BUG: 164696 FIXED-IN: 4.8.2
2012-02-23Whitespace cleanups and documentation fixesPeter Penz
2012-02-22Fix alternate backgrounds when enabling groupingPeter Penz
Up to now the alternating backgrounds just have been calculated by checking whether the item index is odd. This does not work well when grouping is enabled: In this case the alternate background color of the first item of a group should stay consistent.
2012-02-21Don't trigger assert when switching to details-viewPeter Penz
If the visible roles of the details-view are equal to the visible roles of other views, then switching to the details-view will trigger an assert because the invisible roles don't get updated. Thanks to Frank Reininghaus for the detailed analyses! In the context of this fix optimizations have been done when switching view-modes: The "don't-animate-workaround" could be removed. BUG: 294531 FIXED-IN: 4.8.1
2012-02-17Remember the row- and column-information for visible itemsPeter Penz
Up to now KItemListView has not been aware to which column or row an item belongs to. This has been handled internally in KItemListViewLayouter. But for deciding whether a move-animation might result in overlapping items it is mandatory to be aware about the column/row. The current approach to guess a column/row change by comparing the source- and target-rectangle works very well but breaks on some corner-cases when e.g. zooming. Now the layouter allows to access the information. This assures that in the vertical alignment no move-animation is done between rows and the in the horizontal alignment no move-animation is done between the columns.
2012-02-14Details view: Fix filter issue with sibblingsPeter Penz
When the filter has been enabled, the sibblings got not updated. Explicitely update the sibblings when inserting, removing or moving items. For layouting implicitely update the sibblings only for recycled widgets.
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-11Group header layout fixesPeter Penz
- Don't use a margin for the first group header - Provide margins between the groups - Use a more subtle coloring - Prevent animation glitches when resizing a window
2012-02-08Layout optimizationsPeter Penz
- Differ internally between margins and paddings - Add a small padding in the icons-view and the compact-views - Optimize the width of the icons-view if previews are shown
2012-02-06Group header improvementsPeter Penz
- Use a simpler background and colors as suggested by Martin Zilz. This is just an early draft, I need to post some comparison screenshots to Martin for review. - Fixes of some layout issues that have been revealed because of adjusting the group header heights. - More clever animation/no-animation detection when doing listview-property changes in parallel.
2012-02-05Fix potential endless loop in layoutPeter Penz
Usecase: - No scrollbar is shown - Window size will be decreased so that a scrollbar gets necessary The decreased window size minus the space required for the scrollbar results in a relayout of the items. In 99 % of all cases a decreased window size won't result in showing more items in parallel in comparison to a larger window size. However in the remaining 1 % this can happen (e.g. see bug 293318 for a sample). This results in an endless loop as now no scrollbar is required anymore, the layout changes again, the scrollbar is required again, ... BUG: 293318 FIXED-IN: 4.8.1
2012-02-01First version of a unit test for KItemListControllerFrank Reininghaus
At the moment, only key press events are tested, and the current item and selection after the event are verified. Moreover, this commit makes sure that KItemListController::keyPressEvent() really does not select anything if the selection mode is NoSelection. (cherry picked from commit 7457f4868cf0bc83e8a90ce5693292378f3d07c4)
2012-02-01Don't animate items if the number of grid elements has been changedPeter Penz
Having animated items is useful when e.g. deleting or inserting one item or when the size or position slightly changes by increasing the zoom level or the window size. However if the number of rows or columns change, the animation gets obtrusive and in this case lets just apply the final layout.
2012-01-31Animation optimizationsPeter Penz
Prevent that the moving-animation crosses other items when zooming or changing the window size.
2012-01-30Further animation optimizationsPeter Penz
- Assure a proper minimim width in the compact mode. - Don't calculate the old position of hidden items to animate the moving. Just show them directly.
2012-01-29Make moving animations less obtrusivePeter Penz
Only animate the moving of items if the new position is within the same row or the same column. Otherwise just fade in the icon on the new position. This makes the the animations when resizing the window or changing the zoom-level a lot more pleasant. CCBUG: 289238
2012-01-17Do a synchronous layout for dynamic item sizes when changing the geometryPeter Penz
This prevents a delayed update when resizing the window e.g. in the details view. As no animated item position changes can happen for dynamic item sizes the synchronous relayout is fine from a performance point of view. BUG: 290953 FIXED-IN: 4.8.0
2011-12-26Fix keyboard issues when groups are enabledPeter Penz
When groups are enabled in Dolphin the key-up and key-down keys did not behave consistent in comparison to traditional views or like done in editors. CCBUG: 261995 CCBUG: 262038
2011-12-16Minor layout and coding style cleanupsPeter Penz
- Disable performance debugging output - Force a synchronous layout during scrolling. This prevents having a jerky scroll-animation if there are pending operations ongoing in parallel. - Minor coding style cleanups
2011-12-13dolphin: DLLEXPORT is not valid for template classMichael Drueing
MSVC tries to import the specialized class from the library, which fails because only the generic version can be exported. GCC probably silently ignores the export.
2011-12-11Remember sort settingsPeter Penz
If the user has changed the sort-role or sort-order by clicking on the view-header of the details-view, the settings have been adjusted to the model but not remembered in the directory settings.
2011-12-07Enable "menu key" functionalityPeter Penz
Bring back the functionality that a context-menu is opened if the "menu key" has been pressed. In opposite to Dolphin 1.7 the context-menu is shown above the selected item and not on the (probably unrelated) mouse position. A new method KItemListView::itemContextRect() has been introduced: The method is now also used as reference for tooltips which fixes the issue that tooltips had a wrong horizontal alignment in the details-view. BUG: 288366 FIXED-IN: 4.8.0
2011-11-26Folders Panel fixesPeter Penz
The following functionality from Dolphin 1.x has been ported to the new view-engine: - Allow expanding/collapsing of items - Automatically select the current item - Context menu for items Related improvements to the view-engine: - Make the expanding/collapsing interface already accessible in the base classes KItemModelBase and KItemListView. If no expanding/collapsing is supported at all by derived models (which is usually the default case) simply not reimplementing those 3 methods is sufficient and it does not introduce an additional complexity like in QAbstractItemModel/QModelIndex. - Automatically handle the expanding/collapsing in KItemListController. This also includes the key-handling, which is quite special for expandable items. - Don't let KItemListView automatically scroll to the current item if the current item got changed. The automatic scrolling should only be done if the current item has been changed by the user. Hence this functionality has been moved to the KItemListController which currently only triggers the automatic scrolling if the current item has been changed by the keyboard (we might extend the usecases later if required).
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-30Fix layout issue for groupsPeter Penz
When enabling a group where the sort-role is retrieved asynchronously (e.g. group by "type") the group-headers have stayed invisible.
2011-10-29Fix grouping-issue with not visible sorting rolesPeter Penz
It must be assured that the data for a sorting role always is determined even it is not shown as "additional info" in the view.
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-10-22Fix crash when grouping itemsPeter Penz
Because of a wrong usage of parent() vs. parentItem() a crash could occur because the parent might be assigned to an already deleted instance.
2011-10-22Implement grouping for namesPeter Penz
- Use a custom header for KFileItems - Cache the groups - Allow enabling/disabling grouping dynamically Currently there is a random crash in combination with the groupheader-recycler, this will be fixed during the next days.
2011-10-18Implement group-header layoutingPeter Penz
The most tricky part for groups - the layouting - basically works now for all views (grouping was available only in the icons views for Dolphin 1.x) and is nearly equally fast as without groups. Still open: - Group headers are ugly screen rectangles - Return valid groups in KFileItemModel instead of the currently hardcoded testing values - Dynamically turning on/off groups does not work currently, the directory must be reentered
2011-10-15Interface cleanups to prepare the return of "grouped sorting"Peter Penz
- Rename setCategorizedSorting() to setGroupedSorting() - Change the model interface to allow enabling/disabling grouping without the need to declare a role (the sort role will be taken). - Add dummy group role implementation in KFileItemModel The grouping code itself requires some cleanups and might crash at the moment or lead to weird layouts.
2011-10-08Context menu cleanupsPeter Penz
- Open the context menu on the mouse-press event, not on the mouse-release event. - Provide an explicit position-information and don't use QCursor::pos(). This fixes the issue that opening a context-menu by the keyboard opens below the cursor. - Provide different signals in the KItemListController for the different context-menu types (item vs. view vs. header). - Implement turning on/off roles by the header-context-menu.
2011-10-02Fix layout when the header has been adjusted by the userPeter Penz
2011-09-30Implement smooth-scrolling for horizontal and vertical scrollbarsPeter Penz
Currently only a smoothscrolling was provided into the scroll-direction, but not in case of the details-view where a horizontal scrollbar might be shown too. Some minor adjustments of the private KItemListSmoothScroller interface will be done later...
2011-09-29Keep current item and selection when resorting, part 1Frank Reininghaus
KFileItemModel now emits the itemsMoved signal when the model is resorted, and KItemListSelectionManager has a new function itemsMoved() which will be called indirectly when this signal is emitted. Unit tests for the new functionality are included. The following things are still needed to make the feature work: 1. KFileItemMdel::resortAllItems() should not emit itemsAdded/itemsRemoved any more. 2. KItemListView::itemsMoved() must update the view according to the changes in the model, and it must call KItemListSelectionManager::itemsMoved().