Commit graph

18803 commits

Author SHA1 Message Date
Frank Reininghaus be391bdac1 Always sort items correctly when the refreshItems() signal is received
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 d70a481180. This patch fixes
it.

BUG: 324713
FIXED-IN: 4.11.2
REVIEW: 112561
2013-09-09 21:38:47 +02:00
Frank Reininghaus 6a5658d30b Test if the groups are updated correctly when items are refreshed
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-09 21:13:38 +02:00
l10n daemon script 72b26bcce5 SVN_SILENT made messages (.desktop file) 2013-09-09 06:45:58 +00:00
Burkhard Lück 2cd328e2b7 add info about plugins available in KHTML view only
(cherry picked from commit f9a141b753)
backport to 4.11.2
2013-09-08 10:34:50 +02:00
Emmanuel Pescosta 576481d114 Fix Bug 296970 - split view wrong behavior with search tab
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-05 16:22:59 +02:00
Bernd Buschinski 43a981481a Fix toplevel bookmarks not showing in toolbar
regression from d1963e23
2013-09-04 16:23:35 +02:00
l10n daemon script d85e92fc8c SVN_SILENT made messages (.desktop file) 2013-09-04 06:42:00 +00:00
Christoph Feck 91a2e523f1 Fix color role of services list
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-09-03 22:05:05 +02:00
Christoph Feck d55211687c Move cursor to begin/end of selection before canceling it
Makes Left/Right keys consistent with QLineEdit behavior.

BUG: 323946
FIXED-IN: 4.11.1
REVIEW: 112256
2013-08-25 17:40:49 +02:00
Frank Reininghaus 82d42b8dcc Fix filename trucation issues in Icons View with maximum number of lines
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-25 16:27:36 +02:00
Emmanuel Pescosta f3ca94354b Adjust the size and position of the selection toggle on icon
resize (when changing the zoomlevel).

BUG: 310412
REVIEW: 112250
FIXED-IN: 4.11.1
2013-08-24 21:00:26 +02:00
Frank Reininghaus ab8ee1a6a9 Make determining the mime type faster for folders
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-24 20:22:56 +02:00
Frank Reininghaus 85f2974632 Delay the deletion of the role editor as long as possible
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-24 20:06:11 +02:00
Emmanuel Pescosta 9cbca7241f Make use of the "resort all items timer" in KFileItemModel::slotRefreshItems
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-24 18:13:56 +02:00
Christoph Feck ae81a8003e Fix crash when failing to get audio CD block device
CCBUG: 314544
REVIEW: 112117
2013-08-20 12:19:15 +02:00
Burkhard Lück fd07b241bc &dolphin; -> &kappname; + &RMB;->&LMB; to expand tree view
(cherry picked from commit 7aefeb3d4f)
backport to 4.11.1
2013-08-17 09:37:48 +02:00
David Palser dac374172e Fix typos and puctuation in docs
(cherry picked from commit af0ef6c522)
backport to 4.11.1
2013-08-17 09:37:06 +02:00
Dawit Alemayehu d1963e23dd Do not crash while importing/adding bookmarks.
BUG: 309370
REVIEW: 112042
FIXED-IN: 4.11.1
2013-08-16 09:03:06 -04:00
Frank Reininghaus 6b375d2e26 Make sure that the sort order is correct after renaming
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-15 00:07:43 +02:00
Frank Reininghaus 938f773f14 Do not store default values in QHash<QByteArray, QVariant>
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-14 23:57:51 +02:00
Frank Reininghaus 381b17964d Fix slow scrolling when hidden files or symbolic links are shown
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-14 23:44:57 +02:00
Frank Reininghaus 292e11fcf4 Fix crash when disabling "Show in groups"
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-14 23:40:02 +02:00
l10n daemon script 43fd32083e SVN_SILENT made messages (.desktop file) 2013-08-06 07:18:31 +00:00
l10n daemon script 29f2058c84 SVN_SILENT made messages (.desktop file) 2013-08-05 06:51:18 +00:00
Fabio D'Urso d9b111b0e8 dolphin: Escape text in statusbar tooltip
This fixes the same issue as 4450f8449a,
but for the status bar's tooltip text.

BUG: 323170
FIXED-IN: 4.11.0
REVIEW: 111836
2013-08-05 02:12:09 +02:00
Fabio D'Urso 7eec927432 DolphinPart: Use Qt::convertFromPlainText instead of Qt::escape for filenames
Unlike escape, convertFromPlainText preserves whitespace sequences

CCBUG: 321778
REVIEW: 111835
2013-08-05 01:47:23 +02:00
Frank Reininghaus c0be1016a1 Add some unit tests for grouping in KFileItemModel
Hopefully, this will prevent regressions in the future.

REVIEW: 111807
2013-08-04 21:08:57 +02:00
Frank Reininghaus cd642d5d9b Make KFileItemModelTest faster
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-04 21:04:56 +02:00
l10n daemon script 0fa7074cf1 SVN_SILENT made messages (.desktop file) 2013-08-04 07:10:25 +00:00
l10n daemon script 5ca8f0be99 SVN_SILENT made messages (.desktop file) 2013-08-01 06:34:08 +00:00
Frank Reininghaus f6bbc7d224 When pasting a folder and expanding it, do not select its children
Thanks to Emmanuel for pointing out a problem with my first patch.

BUG: 322965
FIXED-IN: 4.11.0
REVIEW: 111722
2013-07-29 23:15:49 +02:00
Fabio D'Urso 4450f8449a Don't let HTML-like filenames be interpreted as HTML strings
So that filenames that look like HTML don't get fancy-formatted when
we show info about them (i.e. on hover)

This patch fixes the same issue in two places:
 - dolphin, by setting Qt::PlainText on the status bar's label
 - konqueror, by escaping setStatusBarText strings emitted by
   DolphinPart

BUG: 321778
FIXED-IN: 4.11.0
REVIEW: 111746
2013-07-29 11:21:55 +02:00
Frank Reininghaus bf2618d7cf Do not convert a KUrl to a QString and back again
This small change saves a lot of CPU cycles when the items are resorted.

REVIEW: 111700
2013-07-28 23:36:43 +02:00
l10n daemon script 6b1b075f6f SVN_SILENT made messages (.desktop file) 2013-07-28 06:40:32 +00:00
Emmanuel Pescosta f14352f141 Don't open .desktop files with http:/https: urls in Dolphin,
open these urls in the default browser instead.

BUG: 283475
BUG: 318217
FIXED-IN: 4.11.0
REVIEW: 111674
2013-07-26 15:05:40 +02:00
l10n daemon script f2312c62a6 SVN_SILENT made messages (.desktop file) 2013-07-26 06:37:56 +00:00
Frank Reininghaus 29b279db0a Merge remote-tracking branch 'origin/KDE/4.10' into KDE/4.11 2013-07-25 22:29:42 +02:00
Frank Reininghaus ba2c5c7193 Fix maximum value for scroll bar when deleting items in Details View
The problem was that the view heigt minus the header height was
subtracted from maximumScrollOffset() to determine the maximum value
of the scroll offset of the top of the view.

However, the top of the view is the part that is hiden behind the
header. Therefore, the full view height must be subtracted from
maximumScrollOffset.

The remaining bits of bug 319951 were fixed by other recent commits.

Thanks to Emmanuel Pescosta for helping to track down the problem!

BUG: 319951
FIXED-IN: 4.11.0
REVIEW: 111486
2013-07-25 22:25:18 +02:00
Frank Reininghaus 6e1a8774e9 Prevent that removing items can cause icons to overlap
When items are removed, new items may become visible because of that.
This includes

(a) Items *behind* the removed range. KItemListView may try to create
    their widgets at their "imaginary" old positions and move them to
    the new position with an animation.

(b) Items *before* the removed range, if the deletion causes the view
    to scroll up. In that case, the "imaginary" old position and the new
    position was equal, but KItemListView still tried to determine the
    "old" position by adding the number of removed items to the index.
    The result was that the widgets were created at completely wrong
    positions, and no animation was started to fix this.

Thanks to Emmanuel for helping to find the cause of this bug!

BUG: 302373
FIXED-IN: 4.11.0
REVIEW: 111630
2013-07-25 22:15:19 +02:00
l10n daemon script d6e8ce4a7a SVN_SILENT made messages (.desktop file) 2013-07-25 06:33:03 +00:00
Josef Weidendorfer a0c79197eb FSView: skip /proc, /dev, /sys
Solves main issue in bug 273202 by not recursing
down some paths. However, it may be better to not
cross mount points instead.

BUG: 273202
2013-07-24 17:49:09 +02:00
l10n daemon script 88b336f902 SVN_SILENT made messages (.desktop file) 2013-07-24 06:39:56 +00:00
Frank Reininghaus 02e412371c Do not try to smooth-scroll past the end of the view
KItemListSmoothScroller::scrollTo(qreal position) did not check if
'position' is a valid value. Even if the view is scrolled to the bottom
already, it tried to scroll further and activated "smooth scrolling"
when the mouse wheel is used. Because it never got out of the "smooth
scrolling" state then, it got confused when changing the directory, and
restoring the correct scroll offset could fail.

BUG: 322212
FIXED-IN: 4.11.0
REVIEW: 111557
2013-07-22 19:16:07 +02:00
Frank Reininghaus 25f208ebe3 Fix "truncated header" in Details View with non-Oxygen styles
The code for painting the "empty header" was inconsistent with the
headers of the other columns, which is probably the reason why the other
styles got confused

a) No QStyleOptionHeader is used
b) Even if an empty header must be drawn, the last column is drawn with
   the option QStyleOptionHeader::End.

According to Christoph, it still doesn't work with the Skulpture style,
but it seems that the patch does at least not make things worse.

BUG: 301800
FIXED-IN: 4.11.0
REVIEW: 111608
2013-07-22 19:04:14 +02:00
l10n daemon script 1bd7cd0ac7 SVN_SILENT made messages (.desktop file) 2013-07-21 06:41:17 +00:00
l10n daemon script b32724a182 SVN_SILENT made messages (.desktop file) 2013-07-20 06:37:22 +00:00
Frank Reininghaus 7168ab0b57 Fix build if HAVE_NEPOMUK is not defined
We really have to make nepomuk-core and nepomuk-widgets a hard
dependency in the framworks era.
2013-07-18 22:51:21 +02:00
Emmanuel Pescosta 5b81abea5b Overwrite the changed role value with an empty QVariant,
because the nepomuk roles provider doesn't overwrite it when the property
value list is empty.

BUG: 322348
REVIEW: 111505
FIXED-IN: 4.11.0
2013-07-18 17:07:34 +02:00
l10n daemon script 087bdf492c SVN_SILENT made messages (.desktop file) 2013-07-16 07:29:52 +00:00
l10n daemon script e4e3b56607 SVN_SILENT made messages (.desktop file) 2013-07-14 06:54:56 +00:00