┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2013-09-29Make sure that removeExpandedItems() also removes filtered itemsFrank Reininghaus
This fixes the problem that filtered child items in Details View may reappear when switching the view mode and the clearing the filter. BUG: 325344 REVIEW: 112962 FIXED-IN: 4.11.3
2013-09-27SVN_SILENT made messages (.desktop file)l10n daemon script
2013-09-27SVN_SILENT made messages (.desktop file)l10n daemon script
2013-09-17Move KItemRange to its own headerFrank Reininghaus
Also factor out the code that transforms a sorted list of ints to a KItemRangeList. This removes some duplicated code from KFileItemModel. Note that overriding operator<<() in KItemRangeList was necessary because it's not a typedef for QList<KItemRange>, but a class derived from that now, and some code fails to compile if the return type of that function is QList<KItemRange> and not KItemRangeList. REVIEW: 112728
2013-09-14Merge remote-tracking branch 'origin/KDE/4.11'Frank Reininghaus
2013-09-14Make preview loading faster when scrollingFrank Reininghaus
KFileItemListView notifies KFileItemModelRolesUpdater of changes of the visible index range and the icon size with a delay, to prevent that expensive operations are triggered repeatedly, and that scrolling feels sluggish because the GUI thread is blocked by icon loading. This patch ensures that the "long" delay of 300 ms is only used when the zoom level is changed, and the "short" delay if only the visible index range has changed. Thanks to Christoph Feck for helping to analyze this problem! BUG: 322093 FIXED-IN: 4.11.2 REVIEW: 112580
2013-09-12Remove "Copy text" statusbar contextmenu entryKai Uwe Broulik
REVIEW: 112355
2013-09-12Fix Bug 311099 - View the underscore when using Ctrl + PagDownEmmanuel Pescosta
Take the style option vertical/horizontal margin into account for the calculation of the new scroll offset. Thanks to Frank for pointing out two other problems with "Page Up/Down" and providing a better way to fix these problems. :) BUG: 311099 FIXED-IN: 4.11.2 REVIEW: 112678
2013-09-09Merge remote-tracking branch 'origin/KDE/4.11'Frank Reininghaus
2013-09-09Always sort items correctly when the refreshItems() signal is receivedFrank Reininghaus
When sorting by, e.g., "Size", and the name is used as a fallback because there are multiple files with the same size, the refreshItems signal that is received when a file's name is changed either with the dialog or outside the current view did not cause the view to be resorted after commit d70a4811807776966c3241a72121242f4d1eaee8. This patch fixes it. BUG: 324713 FIXED-IN: 4.11.2 REVIEW: 112561
2013-09-09Merge remote-tracking branch 'origin/KDE/4.11'Frank Reininghaus
The most recent commit from the KDE/4.11 branch (new unit test) had to be modified slightly due to the changed signal emission when resorting the model changes only the groups, and not the order of the items (groupsChaged instead of itemsMoved).
2013-09-09Test if the groups are updated correctly when items are refreshedFrank Reininghaus
This unit test will hopefully prevent regressions in the future. It is the first part of https://git.reviewboard.kde.org/r/112561/.
2013-09-07Make expandedParentsCount() work without accessing the data hashFrank Reininghaus
The idea is that we no longer assume that the "expandedParentsCount" for each item will be stored in the QHash. It is only accessed for items which are expanded, and which are not top-level items (i.e., which have an expandedParentsCount > 1). Some unit tests are added to improve the coverage of the affected code. REVIEW: 112562
2013-09-05Nothing special, just a little bit of code cleanup in ↵Emmanuel Pescosta
KItemListViewLayouter::doLayout(). Make use of QSizeF::transpose() and simplify the m_itemInfos usage. REVIEW: 112535
2013-09-05Fix Bug 296970 - split view wrong behavior with search tabEmmanuel Pescosta
Implemented setActive(bool active), isActive() and activated() signal for DolphinSearchBox - similar to the KUrlNavigator implementation. BUG: 296970 FIXED-IN: 4.11.2 REVIEW: 112534
2013-09-04Merge remote-tracking branch 'origin/KDE/4.11'Frank Reininghaus
2013-09-04Count the items inside directories in another threadFrank Reininghaus
This prevents that the GUI freezes if there are many files inside the directory, or if the access to the directory is slow for some other reason. BUG: 318518 REVIEW: 111920 FIXED-IN: 4.12.0
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
2013-09-03Fix color role of services listChristoph Feck
Fixes the color of non-selected items to make them readable with every color scheme. BUG: 286459 FIXED-IN: 4.11.2 REVIEW: 112483
2013-08-28Replaced all KNewFileMenu usages in DolphinPart by DolphinNewFileMenu.Emmanuel Pescosta
Removed all signal-slot-connections related to DolphinNewFileMenu->errorMessage(QString) in DolphinMainWindow and DolphinContextMenu and replaced it by a better solution. Now we make use of the already existing DolphinNewFileMenuObserver singleton class to achieve a better error handling, because every newly created DolphinContextMenu instance registers himself by DolphinNewFileMenuObserver and we use this to connect the errorMessage(QString) signal of every DolphinContextMenu instance to the errorMessage(QString) signal of the DolphinNewFileMenuObserver singleton class. So we need only one connection from DolphinNewFileMenuObserver to DolphinMainWindow (or to DolphinPart) to collect all error messages thrown by every DolphinNewFileMenu instance. REVIEW: 112178
2013-08-25Merge remote-tracking branch 'origin/KDE/4.11'Frank Reininghaus
2013-08-25Move cursor to begin/end of selection before canceling itChristoph Feck
Makes Left/Right keys consistent with QLineEdit behavior. BUG: 323946 FIXED-IN: 4.11.1 REVIEW: 112256
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-24Adjust the size and position of the selection toggle on iconEmmanuel Pescosta
resize (when changing the zoomlevel). BUG: 310412 REVIEW: 112250 FIXED-IN: 4.11.1
2013-08-24Merge remote-tracking branch 'origin/KDE/4.11'Frank Reininghaus
2013-08-24Make determining the mime type faster for foldersFrank Reininghaus
KFileItem::determineMimeType() not only determines the mime type, but also the icon. For folders, it looks for a .directory file inside the folder, where a custom icon might be stored. This can take quite a bit of time and cause the problem that some folder's type still appears to be "unknown" when the view is shown. We can work around this problem by caching the folder mime type in a static QString and applying to to all folders, which can be identified easily with KFileItem::isDir(), BUG: 321710 FIXED-IN: 4.11.1 REVIEW: 111830
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-24Make use of the "resort all items timer" in KFileItemModel::slotRefreshItemsEmmanuel Pescosta
to avoid too much expensive resorting calls, in case of many refresh items signals. Followup to patch 111146 CCBUG: 303873 CCBUG: 299565 BUG: 323789 FIXED-IN: 4.11.1 REVIEW: 111195
2013-08-24Replaced the loop to fill m_sizeHintCache with QSizeF() by a simple ↵Emmanuel Pescosta
m_sizeHintCache.fill() in KItemListSizeHintResolver::clearCache(). REVIEW: 112179
2013-08-20Merge remote-tracking branch 'origin/KDE/4.11'Christoph Feck
2013-08-20Fix crash when failing to get audio CD block deviceChristoph Feck
CCBUG: 314544 REVIEW: 112117
2013-08-18dolphin: Show full KFileItem statusbar text with hovered folders tooFabio D'Urso
This patch changes the status bar text dolphin shows when a folder is hovered. It now shows full folder info, eg: "mydir (folder, symlink to /opt/mydir") instead of: "mydir" This is consistent with dolphin's behavior on regular files, and DolphinPart already does that (DolphinPart::slotRequestItemInfo has no special cases for folders). CCBUG: 260717 REVIEW: 112106
2013-08-18dolphin: Show full file info in statusbar when only one file is selectedFabio D'Urso
The purpose of this change is to give the user a chance to see hover file information if it doesn't fit in the status bar, by allowing to click on the file and hover on the status bar. As it's now possible to have status bar texts starting with "<qt>", DolphinPart::updateStatusBar() must escape strings. Otherwise, filenames such as "<qt>Tes<font color=red>t" would be rendered as HTML data in konqueror's status bar when selected. BUG: 260717 FIXED-IN: 4.12.0 REVIEW: 111934
2013-08-16Cut the ropes between DolphinMainWindow and DolphinNewFileMenu. Error ↵Emmanuel Pescosta
handling is now done via signals. REVIEW: 111989
2013-08-15SVN_SILENT made messages (.desktop file)l10n daemon script
2013-08-15Merge remote-tracking branch 'origin/KDE/4.11'Frank Reininghaus
2013-08-15Make sure that the sort order is correct after renamingFrank Reininghaus
KFileItemModel::setData() should not only cause a resorting when the sort role is changed. The name is always used as a fallback if the sort role of multiple files is equal, therefore, renaming a file can change the correct order of the files even if the files are not sorted by "name". Unit test included. BUG: 323518 FIXED-IN: 4.11.1 REVIEW: 111721
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-08-14Fix crash when disabling "Show in groups"Frank Reininghaus
The problem was that items are removed from m_visibleGroups while a QMutableHashIterator iterates over this hash, such that the iterator can become invalid. The solution is to use a QHashIterator instead, which takes a copy of the hash. Therefore, it is not affected if m_visibleGroups is modified in any way. BUG: 323248 FIXED-IN: 4.11.1 REVIEW: 111919
2013-08-08Merge remote-tracking branch 'origin/KDE/4.11'Frank Reininghaus
2013-08-05dolphin: Escape text in statusbar tooltipFabio D'Urso
This fixes the same issue as 4450f8449af91e491636728a4669e2a9e27b49fa, but for the status bar's tooltip text. BUG: 323170 FIXED-IN: 4.11.0 REVIEW: 111836
2013-08-05DolphinPart: Use Qt::convertFromPlainText instead of Qt::escape for filenamesFabio D'Urso
Unlike escape, convertFromPlainText preserves whitespace sequences CCBUG: 321778 REVIEW: 111835
2013-08-04Introduce a new signal "groupsChanged"Frank Reininghaus
Sometimes when items are renamed, the order of the items in the directory is not affected, but the groups still change (simple example: with files a, b, c, e, rename "c" to "d"). At the moment, we always emit the itemsMoved signal in such a case to make sure that the view is updated. However, it would be preferable if this signal was not emitted because it can trigger some quite expensive operations which are not needed at all. This commit introduces a new signal groupsChanged and modifies KFileItemModel and KItemListView such that these classes make use of it. Some unit tests for the new functionality are included as well. Thanks to Emmanuel Pescosta for finding a latent bug in the code which was triggered by this change and fixed in 998954db6d53999dfa75d380cbb4ca3111589f66. REVIEW: 111808
2013-08-04Fix possible out of range error inKItemListSizeHintResolver::itemsMovedFrank Reininghaus
The function assumes implicitly that the moved range always starts with the index 0. This is indeed the case at the moment, but it might make sense to change that in the future. This commit prevents that we get an out of range problem then. Thanks to Emmanuel Pescosta for finding this problem, see https://git.reviewboard.kde.org/r/111808/
2013-08-04Merge remote-tracking branch 'origin/KDE/4.11'Frank Reininghaus
2013-08-04Add some unit tests for grouping in KFileItemModelFrank Reininghaus
Hopefully, this will prevent regressions in the future. REVIEW: 111807
2013-08-04Make KFileItemModelTest fasterFrank Reininghaus
The 500 ms timeout before items are resorted does not make much sense in the unit test. Removing this delay makes the test run much faster.
2013-08-04SVN_SILENT made messages (.desktop file)l10n daemon script
2013-07-31Do not enable the "Create New..." menu when a search is finishedFrank Reininghaus
BUG: 321577 FIXED-IN: 4.12.0 REVIEW: 111805