┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kstandarditemlistwidget.cpp
AgeCommit message (Collapse)Author
2013-08-25Fix filename trucation issues in Icons View with maximum number of linesFrank Reininghaus
When the name of a file is too long to be shown inside the maximum number of lines, the last line is elided. However, there were several problems before this commit: (a) "lastTextLine", which contains the text to be elided, was not assigned the complete remaining text, but only the part that would be put into the last line if there were more lines following. This may be less than what would fit into the line because we try to not break the text at random points. (b) QFontMetrics::elidedText() was not given the width that is available for the last line (that would be maxWidth), but only the width that would be occupied by the text if there were more lines following (line.naturalTextWidth()). (c) The variable "nameWidth", which is required to calculate the QRectF that is reserved for the name, was not updated correctly. The result is that the text was sometimes trucated too early (especially if there would be a line break early in the text if we had more lines available), that there may be insufficient space to show the "...", and that the hover/selection rectangle might be too narrow. BUG: 304558 BUG: 321882 FIXED-IN: 4.11.1 REVIEW: 112265
2013-08-24Delay the deletion of the role editor as long as possibleFrank Reininghaus
This should prevent crashes that can be caused if the view is closed in a nested event loop that is run from the role editor. BUG: 322969 FIXED-IN: 4.11.1 REVIEW: 111988
2013-08-14Do not store default values in QHash<QByteArray, QVariant>Frank Reininghaus
Storing values which are equivalent to default-constructed QVariants does not make much sense because QHash::value returns the same value even if the corresponding key is not found in the hash. This commit reduces Dolphin's memory consumption in large folders by up to 7.3% (tested a folder with 100,000 files in Details View) and reduces the time required for loading a folder. BUG: 323517 FIXED-IN: 4.11.1 REVIEW: 111922
2013-08-14Fix slow scrolling when hidden files or symbolic links are shownFrank Reininghaus
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
2013-06-26Remove the space (1 pixel) between the file name and the fileEmmanuel Pescosta
icon in Compact View and Details View mode. BUG: 320899 FIXED-IN: 4.11.0 REVIEW: 111244
2013-06-10Do not rename files unexpectedly when changing the URLFrank Reininghaus
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
2013-05-02Use the same text color for selected hidden and non-hidden itemsFrank Reininghaus
This fixes the problem that the names of selected hidden items are unreadable with some color schemes. BUG: 305734 FIXED-IN: 4.10.3 REVIEW: 110164
2013-04-12Fix moving image while transitioning to hover pixmapAurélien Gâteau
See: http://youtu.be/OMYO0U0kSL0 REVIEW: 109960 FIXED-IN: 4.10.3
2013-03-21Fix transition between m_pixmap and m_hoverPixmapAurélien Gâteau
The default SourceOver composition mode of QPainter cannot be used to interpolate between two images, we must use intermediate buffers to perform the interpolation and blend the result on the widget. More details are available in the review request. REVIEW: 109614 FIXED-IN: 4.10.2
2013-02-11Fix blinking when moving the mouse over an hidden itemAurélien Gâteau
The opacity of the unhovered pixmap must be gradually reduced while animating otherwise the alpha channel saturates. REVIEW: 108858 BUG: 299371 FIXED-IN: 4.10.1
2013-01-11Slightly reduce the tinting for selected icons and previewsFrank Reininghaus
The intention of the tinting was to make it more obvious in icons view which icons are selected. However, some icons and previews look quite ugly with the current tinting value of 1.0 (i.e., the value passed to KIconEffect::colorize). A slight reduction of this value to 0.8 makes this a little less ugly. However, the real fix is to remove the tinting altogether and find something better to indicate which items are selected. CCBUG: 309722
2012-12-07Merge remote-tracking branch 'origin/KDE/4.9'Frank Reininghaus
2012-12-07Fix keyboard focus handling after renaming items inlineFrank Reininghaus
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
2012-11-05Merge remote-tracking branch 'origin/KDE/4.9'Frank Reininghaus
2012-11-05Prevent crashes caused by nested event loops run when renaming inlineFrank Reininghaus
When renaming inline and starting a drag or invoking the context menu, a nested event loop will be run. If the role editor loses focus and emits roleEditingFinished(), we must prevent that deleteLater() is called because this would delete the role editor inside a nested event loop which is run from one of its own functions. We would get a crash when returning from that event loop otherwise. BUG: 308018 BUG: 309421 FIXED-IN: 4.9.4
2012-10-30Fix some indentation issuesFrank Reininghaus
2012-10-26Merge remote-tracking branch 'origin/KDE/4.9'Christoph Feck
2012-10-26Fix color role of tree view arrowsChristoph Feck
BUG: 307734 FIXED-IN: 4.9.3 REVIEW: 107031
2012-10-25Use QPixmapCache for KStandardItemListWidget::pixmapForIcon(const QString& ↵Emmanuel Pescosta
name, int size) -> Avoid KIcon loading and rescaleing REVIEW: 107039
2012-09-24Revert part of 20b0cb68bf5cc1099fd6e61982817d9e2ae0130cFrank Reininghaus
That commit, which disregarded roles with empty text for the row number calculation in Icons View, caused the problem that icons might jump around while information was retrieved asynchronously because previously empty roles could get a non-empty value, and the corresponding items would need an additional row in the view. Thanks to Hrvoje Senjan for testing this feature in master and reporting this issue early, such that we could fix it quickly and prevent that other users suffer from this bug! CCBUG: 304752
2012-09-21Merge branch 'KDE/4.9'Luca Beltrame
Conflicts: konq-plugins/dirfilter/dirfilterplugin.cpp konq-plugins/dirfilter/dirfilterplugin.h
2012-09-11Fix possible crash in KStandardItemListWidget::paint()Frank Reininghaus
According to the backtrace in the bug report, it is possible that KStandardItemListWidget::paint() is called if the hash m_textInfo has not been initialised. The widget's index must be -1 in this case, see KStandardItemListWidget::triggerCacheRefreshing(). It looks like this can only happen if the item is about to be removed from the view, see KItemListView::slotItemsRemoved(). I could not reproduce the crash, so I'm not sure why exactly this happens, but this commit should at least prevent the crash. BUG: 306167 FIXED-IN: 4.9.2
2012-09-06Do not show '-' for additional info which is not available for an itemFrank Reininghaus
Thanks to Todd Jennings for the patch! CCBUG: 304752 REVIEW: 106304
2012-08-24Do not crash when finishing inline renaming in unusual waysFrank Reininghaus
The crash was caused by a null pointer dereference when, e.g., minimizing Dolphin. The root cause was that KStandardItemListWidget::closeRoleEditor() was called twice: once when the role editor loses focus, and once again when the window is resized. After m_roleEditor was set to 0, the second call dereferenced this null pointer. I think the best solution is to disconnect from the role editor's signals when the editor is not needed any more by the KStandardItemListWidget. CCBUG: 304524 (cherry picked from commit a9c2bdc3b53955693e716bbab58c318fe25bdc9b)
2012-08-24Do not crash when finishing inline renaming in unusual waysFrank Reininghaus
The crash was caused by a null pointer dereference when, e.g., minimizing Dolphin. The root cause was that KStandardItemListWidget::closeRoleEditor() was called twice: once when the role editor loses focus, and once again when the window is resized. After m_roleEditor was set to 0, the second call dereferenced this null pointer. I think the best solution is to disconnect from the role editor's signals when the editor is not needed any more by the KStandardItemListWidget. BUG: 304524 FIXED-IN: 4.9.1
2012-08-15Fix wrong text color in Places Group Header. Use QPalette::Window for base ↵Emmanuel Pescosta
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)
2012-08-14Fix wrong text color in Places Group Header. Use QPalette::Window for base ↵Emmanuel Pescosta
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
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-08-13Fix wrong text color in places and in folders panel.Emmanuel Pescosta
FIXED-IN: 4.9.1 REVIEW: 105832 BUG: 303133
2012-08-13Fix wrong text color in places and in folders panel.Emmanuel Pescosta
FIXED-IN: 4.9.1 REVIEW: 105832 BUG: 303133
2012-08-07Fix the size of the rating stars in Icons ViewFrank Reininghaus
Moreover, make sure that the selection rectangle is large enough to include the stars. Patch by Emmanuel Pescosta. Thanks for the patch! CCBUG: 302624 REVIEW: 105830 (cherry picked from commit 146c77eaa226915cd3cd01e112fcde42fd8c06c4)
2012-08-07Fix the size of the rating stars in Icons ViewFrank Reininghaus
Moreover, make sure that the selection rectangle is large enough to include the stars. Patch by Emmanuel Pescosta. Thanks for the patch! BUG: 302624 FIXED-IN: 4.9.1 REVIEW: 105830
2012-07-20Fix 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-06-16Renaming: Don't select unknown extensionsPeter Penz
If a file with an unknown extension gets renamed, it is assumed that the letters after the last point represent the extension and won't be selected. BUG: 301893 FIXED-IN: 4.9.0
2012-06-12Drag-pixmap fixesPeter Penz
- Don't use the selection-tinted icon when dragging a single item - Decrease the vertical gap for the hotspot - Prevent drawing tree-lines when dragging items for the Places Panel CCBUG: 301624
2012-06-09Inline renaming: ESC should cancel the renamingPeter Penz
When emitting the roleEditingCanceled-signal it must be prevented that a roleEditingFinished-signal is emitted because of some action taken in the receiver-slot. BUG: 301480 FIXED-IN: 4.9.0
2012-06-08Inline renaming: Improve focus handlingPeter Penz
Fix issue that cancelling the inline-renaming by clicking on the other split view applies the wrong focus. Thanks to Frank Reininghaus for the initial patch and noticing this issue. CCBUG: 301252
2012-06-08Inline renaming fixesPeter Penz
- Don't use an outdated KFileItem when renaming an item more than once - Use the same font as the view - Don't lose the focus when an editor-popup is shown BUG: 299327 BUG: 298883 BUG: 301253 FIXED-IN: 4.9.0
2012-05-26Use an italic font for symbolic linksFrank Reininghaus
BUG: 298218 FIXED-IN: 4.9.0
2012-05-21Colorize icons when an item is selectedPeter Penz
BUG: 295515 FIXED-IN: 4.9.0
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-05-02Places Panel: Allow showing of hidden itemsPeter Penz
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-23Details mode: Fix wrong required column-width calculationPeter Penz
BUG: 298577 FIXED-IN: 4.9.0
2012-04-21Bring back basic bookmark support for the Places PanelPeter Penz
The folders-panel signals have been adjusted too for consistency.
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.