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 146c77eaa2)
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
Use QStyle icon sizes instead of hard coding 16 or 32 pixels.
Using styles that follow KDE settings (every KStyle, e.g.
Oxygen) the icon sizes can be configured by the user in
System Settings.
The size for the icon/details view can be later changed
by the user, overriding the defaults. The icon size for the
places panel is not (yet?) configurable separately.
(Not resolving the bug, see comment in review request)
CCBUG: 301959
REVIEW: 105548
(cherry picked from commit 79211f6e48)
Use QStyle icon sizes instead of hard coding 16 or 32 pixels.
Using styles that follow KDE settings (every KStyle, e.g.
Oxygen) the icon sizes can be configured by the user in
System Settings.
The size for the icon/details view can be later changed
by the user, overriding the defaults. The icon size for the
places panel is not (yet?) configurable separately.
(Not resolving the bug, see comment in review request)
CCBUG: 301959
REVIEW: 105548
This resolves a regression caused by the Places Panel rewrite. There is
a small glitch left when reordering items (dragging below the last or
above the first item only shows the drop indicator when first dragging
out of the item and then back), but I prefer not to fix this glitch
right now because this would require a more intrusive change, and I do
not want to risk regressions because is not much time left to fix them
before 4.9.0 is released.
Thanks to Peter Penz for providing some advice about this issue.
BUG: 302557
FIXED-IN: 4.9.0
(cherry picked from commit f4c9600251)
This resolves a regression caused by the Places Panel rewrite. There is
a small glitch left when reordering items (dragging below the last or
above the first item only shows the drop indicator when first dragging
out of the item and then back), but I prefer not to fix this glitch
right now because this would require a more intrusive change, and I do
not want to risk regressions because is not much time left to fix them
before 4.9.0 is released.
Thanks to Peter Penz for providing some advice about this issue.
CCBUG: 302557
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
The regression has been introduced when hiding the DolphinDirLister
inside KFileItemModel. Now the signal urlIsFileError() gets forwarded
to the container again where the file will be opened.
BUG: 301757
FIXED-IN: 4.9.0
- 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
If the "isExpandable"- or "size"-role is shown for a folder, the
number of sub-items must be watched to be able to update the
state of those 2 roles.
This fixes the issue that e.g. no expanding-toggle is shown
if an sub-directory has been created inside an empty directory.
BUG: 293972
FIXED-IN: 4.9.0
... otherwise no expansion toggle will be shown. The implementation
is a compromise between performance and correctness: If the directory
contains links that are not directories, an unnecessary expansion
toggle will be shown. But this is better than showing no expansion
toggle in case if the directory contains links that point to other
directories.
BUG: 299997
FIXED-IN: 4.9.0
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
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
- 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
If the current folder is collapsed, pressing the left arrow key now
moves the focus to the parent folder.
CCBUG: 300582
(cherry picked from commit 93daadae28)
The problem was the following: While a QMutableSetIterator iterates the
items in the QSet m_filteredItems, all items that match the new filter
are removed from the set. However, to ensure that the iterator still
reaches all items in the set, one must not use QSet::remove(), but
rather the iterator's remove() method (see QMutableSetIterator docs).
CCBUG: 300504
(cherry picked from commit 288473a96c)
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.
If multiple ranges are inserted or removed, the updating of
the group-headers may only be done after _all_ ranges have been
inserted/removed and not after each individual range. Otherwise
the layouter-cache is not in a consistent state yet.
Follow the suggestion from Vishesh Handa and copy the ResourceWatcher
code from kde-runtime instead of creating a dependency. This will of
course get removed again as soon as Nepomuk's resource watcher will
get a public API.
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...
Implement adding, editing and removing of entries. Note that the
result currently is still not stored in bookmarks.xml (this needs
to wait until the hiding is implemented in the model).
When changing the sort-column the sort order should always be reset
to 'ascending' to by consistent with the QListView behavior.
BUG: 298830
FIXED-IN: 4.9.0
This fixes two problems:
1. KItemListKeyboardSearchManger can cancel the current search when a
new folder is opened (note that this action removes the current item
from the view).
2. The view can underline the new current item (which is the item that
used to be below the removed item). Note that this did not work
before because the view did not receive a currentChanged() signal in
this case and therefore did not update the "current item" status of
the new current item.
CCBUG: 297488
CCBUG: 298782
REVIEW: 104709
(cherry picked from commit 68ce395a19)
This patch restores the Dolphin 1.x behaviour that Esc clears the
selection (Dolphin 2.0 did not have an easy way to clear the selection
using the keyboard so far). Moreover, Esc now also cancels the current
keyboard search. This fixes the problem that the only way to cancel the
search is to wait until the timeout has expired.
CCBUG: 298742
CCBUG: 297458
(cherry picked from commit d3b1312d3e)
It turned out that the longer timeout, introduced recently in
02eab49b2d, not only made multi-letter
keyboard searches easier, but also had some unwanted side effects. I
hope that 1 second, which is between the previous value of 5 seconds and
the pre-KDE 4.8.2 value of 0.4 seconds, is a compromise which will fit
most users' needs.
We will try to improve the situation further in future releases by
providing visual feedback about the keyboard search, but such a change
would not be suitable for a bug-fix release.
(cherry picked from commit d8732a59d3)
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.
The attached patch sets the main window on the main directory
lister in DolphinView and KIO jobs in DolphinMainWindow to ensure
that login data for remote protocols such as sftp, ftp are cached
properly for the duration of the application. Otherwise, the end
user is going to end up being unnecessarily re-prompted to enter
password login information.
Thanks to Dawit Alemayehu for the patch!
REVIEW: 104614
FIXED-IN: 4.9.0
Showing the whole filename unclipped seems to be a good default,
however for users with a lot of files that have extremely long names
this might get a problem especially in the icons-view.
- Allow to limit the maximum number of lines in the icons-view
- Allow to specify a maximum width in the compact-view
(No limit is required for the details-view, as the name is shortened
automatically to show other columns)
BUG: 288596
FIXED-IN: 4.9.0
- 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
If the sorting is done for data which is resolved asynchronously
(e.g. rating), it is important to give a visual feedback about
the state of the sorting. This is done now by a progress
indication in the statusbar.
Also optimizations for "Sort by type" have been done: Although
resolving a type can be expensive in the most often case it is a
very cheap operation. So it the sorting is done by type, try
to resolve the type synchronously for at least 200 ms to prevent
a asynchronous resorting. This is usually sufficient to have
resolved types even for directories with several thousands of
items.
BUG: 292733
FIXED-IN: 4.9.0
The feedback on bugs.kde.org has shown that the previous behavior
(= show size with best-matching unit) is preferred by most users.
I initially wanted to make this configurable, but for implementing
it in a non-hacky way extending KLocale from kdelibs would have
been required. I'm not sure whether the usecase in Dolphin justifies
having such a configuration in KLocale - however as kdelibs is frozen
at the moment this is no option and the old behavior has been
restored.
BUG: 289850
FIXED-IN: 4.9.0
It is up to the plugins to decide what sensible size is required for
creating a preview, this cannot be decided by the user for all
plugins. A maximum size only makes sense for remote files, where
the user implicitely decides how much of the bandwith may be used
for having previews.
BUG: 273226
FIXED-IN: 4.9.0
When dragging a file within the same Dolphin window and the Ctrl, Shift
or Alt-key is pressed the shape of the cursor was not changed to
indicate the copy/move/link-operation.
BUG: 293850
FIXED-IN: 4.8.3
The option is currently hidden as up to now only Nuno requested it,
but it seems to be urgent: "my icon making productivity has drop subtantialy"
((c) 2012 Nuno)
As I don't want to get blamed for an outdated Oxygen-icon-set I have
no other choice ;-)
CCMAIL: nuno.pinheiro@kdab.com
When filtering items it might be possible that the update of
the widgets is wrong although the model internally has a correct
state.
BUG: 297269
FIXED-IN: 4.8.3
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
It's now possible to change the timeout, after which any call of
KItemListKeyboardSearchManager::addKeys(const QString&) starts a new
search, from the default value of 5000 milliseconds. This is not used
in Dolphin at the moment, but it permits to reduce the timeout to a
small value in the unit test. Before this change, the unit test took
more than 5 seconds to complete.
(cherry picked from commit 82fc1b54bd)
The previous timeout [QApplication::keyboardInputInterval()] was too
short to do a multi-letter search for users who do not type extremely
fast.
(cherry picked from commit 02eab49b2d)
- 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.
Let derived classes from KItemListView just implement
preferredColumnWidth() for one role of an item instead of returning
a hashtable for a given item-range.
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.
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
With the new view-engine the name-column always has been expanded
to the maximum width of all available names. But this makes it
impossible to see other columns without scrolling when having long
filenames, so per default the Dolphin 1.x behavior has been applied
to the new view-engine so that the name-column-width gets decreased
to be able to show the other columns.
This patch will be released with KDE applications 4.8.2. For
Dolphin 2.1 (KDE applications 4.9) user-modified widths of the
columns will be remembered per directory also between different
sessions.
CCBUG: 264434
When downloading images from e.g. the camera-IO-slave the files
will be downloaded as *.part files and renamed afterwards. The renaming
results in an undetermined mimetype and hence the probably already available
preview or icon gets replaced by a dummy icon. The patch fixes this by
keeping the old values as long until they have been resolved by
KFileItemModelRolesUpdater.
The comparison of expanded trees may not assume that directories
are always sorted first and must respect the "Sort folders first"
setting.
The sorting-unittest has been extended by a sub-tree and the usecase
of bug 296437. The already deactivated test for
KFileItemModel::expandedParentsCountCompare() has been completely removed
as it has been replaced by testSorting().
BUG: 296437
FIXED-IN: 4.8.2
Now KFileItemModel provides a way to access the available roles
including their translations. Note that the 3 roles "comments",
"rating" and "tags" have not been implemented yet in KFileItemModel
and turning them on does not work currently.
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
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.
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
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.
As no rubberband-selection is enabled for the Folders Panel it does
not make sense to keep the selection region as small as possible.
BUG: 294111
FIXED-IN: 4.8.1
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.
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
- 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
- No padding should be applied to the icon-rectangle
- Base the selection-toggle size on the icon-size of the style not
the actual pixmap content, as this might lead to smaller selection-toggles
when having pixmap-previews with a small height.
- 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
- 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.
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
The use case of this function (Folders Panel) requires the expansion of
the parent items of a single URL, so it's not needed to handle a full
set of URLs in this function. Moreover, the issue that not only the
parents, but also the URLs themselves were expanded is fixed by this
commit.
(cherry picked from commit 89082ca391)
- 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: martin@kreativkonzentrat.de
During determining the item-count for directories just show an empty string
until either the item-count has been calculated or if the item-count is unknown.
Thanks to Nikita Skovoroda for the initial proof-of-concept patch.
BUG: 291823
FIXED-IN: 4.8.1
When counting the number of sub-directories consider unknown file types
as potential directories. In the "worst case" an expansion toggle will be
shown although the directory contains only files, however from a performance
point of view this seems to be an acceptable compromise.
BUG: 292642
FIXED-IN: 4.8.1
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 7457f4868c)
The asynchronous resolving to bypass performance bottlenecks is not necessary
anymore as multiple ranges can be inserted in one step now. This solves the issue
that e.g. opening a tree resulted in temporary unknown icons for a short period
of time.
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.
The problem was that m_keyboardAnchorIndex and m_keyboardAnchorPos were
not updated when Home or End are pressed. This causes the following
unexpected behavior in Icons View: Press Home, then Right, then Down,
then Home, finally Down. One would expect that the first item in the
second row is the current item then, but before this commit, it was the
second one because the controller still remembered that the second
column was active before Home was pressed.
(cherry picked from commit 999234a94a)