Commit graph

723 commits

Author SHA1 Message Date
Frank Reininghaus
2f51debbea Do not reset the 'isExpanded' state when an expanded folder is refreshed
If an item is moved out of an expanded folder, the model receives the
dir lister's refreshItems signal for the folder. The method
retrieveData() then updates the folder's properties. This commit makes
sure that the 'isExpanded' state is not touched by retrieveData(). A
side-effect is that the 'isExpanded' role is not initialized to 'false',
but this does not matter because trying to read a non-existing role from
the QHash<QByteArray, QVariant> yields a default-constructed QVariant,
which evaluates to 'false'.

BUG: 299675
FIXED-IN: 4.10.4
REVIEW: 110401
2013-05-22 18:14:38 +02:00
Frank Reininghaus
e66c3221ce KFileItemModelRolesUpdater: only update the size for changed folders
When using inotify, we also receive signals for modified files, even if
we only ask KDirWatch to watch the directory containing them. In that
case, we must not set the size to -1 (which means "unknown number of
items" for folders) temporarily, or we end up with an apparent file size
of 2^64 - 1 bytes.

BUG: 309740
FIXED-IN: 4.10.4
REVIEW: 110428
2013-05-22 18:09:42 +02:00
Vishesh Handa
cc4947d1ac Dolphin Places: Make it easier to drag and drop items
When doing a drop, a check is performed to see if it is within x pixels
from the top or x pixel from the bottom of the rect. If it is, then the
drop is considered a drop between items.

This x was fixed to qMax( 4, myStyleOption.padding ) which would
generally be 4. This is fine for some cases, but when the rectangle size
increases then this 4 pixels is not enough. Hence this 'x' is now being
set to 30% of the rectangle height.

By default the rectangle height is 20 pixels, so x is now 6 instead of 4
in the default case, which does make it slightly easier.

Also, this in-between-items check is only performed when moving from one
item to another. This is not good since if you enter the item and the
bottom, the indicator is shown, and then as to start moving it up it
stops showing, and then it should start showing again as you approach
the top edge.

Modified the code to run the check on every mouse drag event even if the
hovered item has not changed.

Both these changes combined make it much easier to drag and drop items.

REVIEW: 110342
2013-05-13 14:39:23 +05:30
Frank Reininghaus
cad78cdfcf Merge remote-tracking branch 'origin/KDE/4.10'
Conflicts:
	CMakeLists.txt
2013-05-11 18:47:58 +02:00
Vishesh Handa
38bb5f1547 Dolphin Places: React to Nepomuk system changes
Reload the places panel when Nepomuk starts up and shutsdown. This way
the user does not need to restart Dolphin to see the custom searches and
places after Nepomuk switches on.

BUG: 304918
REVIEW: 110323
2013-05-07 01:36:37 +05:30
Frank Reininghaus
692e7d4d32 Merge remote-tracking branch 'origin/KDE/4.10' 2013-05-02 19:45:08 +02:00
Frank Reininghaus
9480a1ee44 Use the same text color for selected hidden and non-hidden items
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-05-02 19:28:10 +02:00
Frank Reininghaus
7f381a34cb Merge remote-tracking branch 'origin/KDE/4.10'
Conflicts:
	plasma/applets/folderview/folderview.cpp

CCMAIL: ignat.semenov@blue-systems.com

@Ignat: We've been following a merge-based approach in kde-baseapps
for quite some time now, see

http://lists.kde.org/?t=134744909400005&r=1&w=1

It would be nice if you could merge KDE/4.10 into master after any
non-trivial changes in folderview to prevent that others have to
figure out how to resolve the merge conflicts. Thanks!
2013-04-23 19:40:42 +02:00
Frank Reininghaus
8f4d13dab8 Disable Find/Replace in the "rename inline" line edit
These actions do not work correctly because renaming is considered
finished as soon as the line edit loses focus, which happens when the
"Replace" dialog pops up.

BUG: 317772
FIXED-IN: 4.10.3
2013-04-23 19:31:08 +02:00
Frank Reininghaus
8a40b0ee4a Do not dereference null pointer in KItemListViewAccessible
BUG: 316285
FIXED-IN: 4.10.3
2013-04-23 19:25:52 +02:00
Frank Reininghaus
37e796522b Comment out assertion to fix a crash when filtering in Icons/Compat View
I'm not sure yet if there is a problem somewhere else in the code. For
the time being, I think it's better to replace the assert by a TODO
comment to prevent that users find out the hard way that there is
something that we're not quite sure about.

BUG: 317827
FIXED-IN: 4.10.3
2013-04-22 21:36:57 +02:00
Frank Reininghaus
151c8d8c42 Always determine icons for the visible items first
When entering a folder, KFileItemModelRolesUpdater has not yet been
informed about the visible index range by the view when it tries to
determine icons synchronously. This resulted in the problem that it
tried to determine icons for all items in random order, and some visible
icons were somtimes still unknown after the "synchronous icon loading"
timeout of 200 ms.

This commit tries to improve the situation by loading icons starting
with the first item in increasing order. This should make it less likely
that some visible items still have unknown icons after 200 ms.

BUG: 316129
FIXED-IN: 4.10.3
REVIEW: 109843
2013-04-22 21:21:31 +02:00
Aurélien Gâteau
1cd7bfb991 Merge remote-tracking branch 'origin/KDE/4.10' 2013-04-12 16:31:03 +02:00
Aurélien Gâteau
bf1b4b4881 Fix moving image while transitioning to hover pixmap
See: http://youtu.be/OMYO0U0kSL0

REVIEW: 109960
FIXED-IN: 4.10.3
2013-04-12 16:28:52 +02:00
Luca Beltrame
8cc479518b Merge remote-tracking branch 'origin/KDE/4.10'
Conflicts:
	plasma/applets/folderview/folderview.cpp
2013-03-27 16:50:22 +01:00
David Faure
df8d439c55 Update icon if it couldn't be determined upfront (.desktop file on slow mount)
This requires an up-to-date kdelibs >= 4.10.

CCBUG: 290666
2013-03-27 15:19:09 +01:00
Frank Reininghaus
f28ab78825 Improve grouping by name for non-ASCII file names
This commit prevents that all non-ASCII letters which are not umlauts
are grouped in a single group "Others", and that the joint group of
an ASCII letter and the associated umlaut in some locales is called
"Others" if there is only the umlaut in the group.

BUG: 315569
REVIEW: 109457
FIXED-IN: 4.10.2
2013-03-26 01:21:34 +01:00
Aurélien Gâteau
6dfcd7afd9 Merge remote-tracking branch 'origin/KDE/4.10'
@emmanuel: this merge includes your fix from
https://git.reviewboard.kde.org/r/109488/ . I assume this is not a
problem.

CCMAIL: emmanuelpescosta099@gmail.com
2013-03-21 14:14:55 +01:00
Aurélien Gâteau
e2a89fc2e0 Fix transition between m_pixmap and m_hoverPixmap
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-03-21 14:06:07 +01:00
Emmanuel Pescosta
7198437118 Refresh all expanded directories too, when reloading a directory.
BUG: 295300
FIXED-IN: 4.10.2
REVIEW: 109488
2013-03-17 20:13:55 +01:00
Frank Reininghaus
31b0b565fe Merge remote-tracking branch 'origin/KDE/4.10' 2013-03-15 00:28:40 +01:00
Frank Reininghaus
90dd897752 Improve handling of filtered items when folders are deleted/collapsed
If an expanded folder with filtered children is collapsed or removed,
and the parent-child relationship cannot be determined by parsing the
URLs, this patch makes sure that the filtered children do not reappear
when the filter bar is cleared.

REVIEW: 109455
2013-03-15 00:23:57 +01:00
Frank Reininghaus
a97fe0c7ff Fix recent regressions when "Sort by Type" is used
This commit ensures that the mime types and icons are determined
synchronously for 200 ms when "Sort by Type" is enabled.

REVIEW: 109344
2013-03-12 19:26:36 +01:00
Frank Reininghaus
9ea5eb2164 Do not skip rows in when clicking the empty area of the scroll bar
The height of the header widget must be subtracted from the view's
height in Details View to determine the "pageStep" for the scroll bar.

BUG: 315619
FIXED-IN: 4.10.2
REVIEW: 109210
2013-03-11 18:18:44 +01:00
Frank Reininghaus
f71e0881d2 Merge remote-tracking branch 'origin/KDE/4.10'
Conflicts:
	dolphin/src/kitemviews/kfileitemmodel.cpp
2013-03-10 18:31:23 +01:00
Frank Reininghaus
9dd728cb98 Remove filtered children if the parent folder is collapsed
This is analogous to commit e053ecdcd5,
which fixes the same problem for the case that the parent folder is
deleted.

BUG: 316335
FIXED-IN: 4.10.2
REVIEW: 109343
2013-03-10 18:26:37 +01:00
Daniel Kreuter
0ae259e098 Use a consistent way to group files by "Date"
Before this change, files were grouped by calendar weeks if they were
modified in the current month and ignoring the "first week day setting",
but by the actual distance measured in multiples of seven days if the
were modified last month.

This not only fixes the "ignores first week day" bug, but also the
problem that the inconsistencies in the algorithm could lead to a broken
grouping in the first days of a month (see screenshot in the review
request).

BUG: 181337
FIXED-IN: 4.11
REVIEW: 108667
2013-03-03 18:27:00 +01:00
Emmanuel Pescosta
4e4078c66a Removed everything related to m_expandedParentsCountRoot ->
This concept is not needed anymore because of the new "determine parents and
expansion levels" approach

Side effect:
Enables treeview for trash, ...

REVIEW: 109191
2013-02-27 19:56:55 +01:00
Emmanuel Pescosta
f2d70693db Big Thanks to Frank Reininghaus, who helped me a lot with these
changes! :)

* Fixed the "Network browser" and "timeline" issues, by using the
KDirLister's itemsAdded(KUrl,KFileItemList) signal -> Use the
given Url to define the parent-child relationship.

* Changed the name of the slot "slotNewItems" to "slotItemsAdded"
for consistency with the signal.

* Use a QHash<KFileItem, ItemData*> instead of a QSet<KFileItem> to
store the filtered data (needed to keep the O(1) lookup for filtered
KFileItems in slotItemsDeleted + needed to fix bug 311912 "After
erasing a filter, some thumbnails randomly disappear")

* Made the determination of the "expandedParentsCount" slightly
simpler - just adding 1 to the parent's level (Also needed to fix the
"Network browser" and "timeline" issues)

FIXED-IN: 4.11.0
REVIEW: 109180
BUG: 304565
BUG: 311912
BUG: 312890
BUG: 315593
2013-02-27 13:35:20 +01:00
Frank Reininghaus
cc1455c0e6 Merge remote-tracking branch 'origin/KDE/4.10'
Conflicts:
	dolphin/src/tests/kfileitemmodeltest.cpp
	lib/konq/konq_operations.cpp
2013-02-19 15:45:44 +01:00
Frank Reininghaus
6938241ebc Remove items from m_filteredItems if their parent is deleted
Fixes the problem that filtered children of expanded deleted folders
reappear if the filter is cleared.

BUG: 315210
FIXED-IN: 4.10.1
REVIEW: 108976
2013-02-18 23:50:38 +01:00
Frank Reininghaus
e6ef1eec3a Merge remote-tracking branch 'origin/KDE/4.10' 2013-02-17 12:17:01 +01:00
Frank Reininghaus
fc0c3f9d4e Prevent repeated re-layouting of all items while previews are generated
There was some code in KStandardItemListView::itemSizeHintUpdateRequired
already that was supposed to prevent an expensive re-layouting of all
items when a preview is received. However, it didn't quite work as
intended because also the "iconOverlays" role changed.

The new approach is to only re-layout if text of a visible role changes,
because this is the only way how the space needed by an item might
change (see KStandardItemListWidgetInformant::itemSizeHint()).

BUG: 315315
FIXED-IN: 4.10.1
REVIEW: 108984
2013-02-17 11:30:38 +01:00
Aurélien Gâteau
a7705b04dd Merge remote-tracking branch 'origin/KDE/4.10' 2013-02-11 10:53:52 +01:00
Aurélien Gâteau
66af7c390c Fix blinking when moving the mouse over an hidden item
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-02-11 10:38:28 +01:00
Frank Reininghaus
ced9de5b82 Merge remote-tracking branch 'origin/KDE/4.10' 2013-02-10 19:27:21 +01:00
Frank Reininghaus
dc6322dc09 Re-organize the code that compares expanded items
The previous approach, which was based on comparing the URLs as
strings, was not only very complex, but also could lead to
inconsistencies in the model, namely, that not all children were
removed from the model when the dir lister reported the parent as
deleted. Later on, this could even lead to a crash.

BUG: 311947
FIXED-IN: 4.11
REVIEW: 108766
2013-02-10 18:09:07 +01:00
Frank Reininghaus
4f5a2eb943 Include parent-child relationships in KFileItemModel's consistency check 2013-02-10 18:06:07 +01:00
Frank Reininghaus
ac6d3d8250 KFileItemModel::insertItems(): reserve sufficient space for m_items
This prevents expensive and unnecessary repeated rehashing when many
items are inserted into the model.
2013-02-06 18:58:54 +01:00
Aniket Anvit
85ed71eb30 Apply changes of the KGlobalSettings::singleClick() setting immediately
Fixes a regression introduced by commit
7a364cbf48.

Patch reviewed and pushed by Frank Reininghaus.

BUG: 313342
FIXED-IN: 4.10.1
2013-02-05 19:58:06 +01:00
Frank Reininghaus
687d5145a2 Two small optimizations in KFileItemModel::removeItems()
1. It seems that it really can happen that KFileItems that we get from
   the dir lister's itemsDeleted signal are not in the model any more,
   e.g., if a folder where hidden files are shown is left and a folder
   where hidden files are not shown is entered. There is no need to
   output warnings then.
2. Remove the emptiness-check for the KFileItemList at the beginning.
   Even in the unlikely event that we do get an empty list, we return
   just a few lines later in the code.
2013-02-03 23:28:57 +01:00
Frank Reininghaus
01dc86f0df const QList<int> -> const QList<int>& 2013-02-03 23:19:58 +01:00
Frank Reininghaus
8371fb6d75 Fix crashes in KFileItemModel::removeItems()
These crashes were caused by the recent commit
ff3267c6dc. It introduced two problems:

a) A logic error in the code that removes the ItemData pointers from
   m_itemData that could cause crashes if multiple item ranges are
   removed, and there were un-removed items behind the last one.
b) The implicit assumption that any call of removeItems() will actually
   result in items being removed in the model. This is incorrect if
   the model is first cleared and then the hidden-files setting is
   modified, which happens if "Save view properties for each folder" is
   enabled, and a folder where hidden files are shown is left. In that
   case, the dir lister emits itemsDeleted for the hidden items after
   they have been removed from the model due to the folder change.

I'll add a unit test covering these issues soon.

Many thanks to Romário Rios and Hrvoje Senjan for testing!

BUG: 314046
2013-01-29 19:08:28 +01:00
Frank Reininghaus
f76f3a1654 Move the consistency check for KFileItemModel from the test to the class
This makes it possible to check the model's consistency also in other
places, e.g., in KFileItemModel's benchmark.
2013-01-27 15:19:39 +01:00
Frank Reininghaus
d1b75d1d64 Performance improvements in KFileItemModel::removeItems()
The performance of this method is improved by:
a) Not removing items one by one, but doing it in a way that minimizes
   the number of moves to prevent O(N^2) worst-case complexity.
b) Not sorting the removed items using the potentially extremely slow
   KFileItemModel::lessThan. We can get the indexes of the removed items
   very easily from the hash m_items, and sorting ints is a lot faster.
c) Preventing repeated rehashing of m_items when removing the deleted
   URLs by replacing remove() by erase().

REVIEW: 108540
2013-01-27 13:07:46 +01:00
Frank Reininghaus
71be8f2bee Add some benchmarks for KFileItemModel
The benchmark executable must be run manually. It is not run
automatically with the other unit tests to prevent waste of CPU cycles
in the not-so-uncommon situation that only test failures attract
attention.
2013-01-27 12:55:37 +01:00
Luca Beltrame
dfa170cb49 Merge remote-tracking branch 'origin/KDE/4.10' 2013-01-24 23:49:59 +01:00
Vishesh Handa
d27c16d751 KFileItemModelRolesUpdater: Avoid multiple updates for Nepomuk data
The Nepomuk ResourceWatcher emits 3 signals - propertyChanged,
propertyAdded and propertyRemoved. We should only listen to either the
propertyChanged signal or the propertyAdded + Removed signals. There is
no point in listening to all 3 signals. That will just result in
unnecessary updates.

Additionally, we do not need to listen to the resourceCreated signal.
That is only emitted when we are watching for a specific types, which we
are not.

REVIEW: 108543
2013-01-24 23:16:27 +05:30
Frank Reininghaus
48231488bd Remove incorrect comments about the sorting functions
In fact, we could use the sorting functions provided by Qt or the STL.
The reason why we have our own is that we want to support parallel
sorting because sorting many items naturally by name can be expensive.
2013-01-15 19:07:36 +01:00
Frank Reininghaus
d9680ead80 Re-organise the sorting code
The KFileItemModel-specific parts are now separated from the generic
ones, like the parallel sorting implementation.

REVIEW: 108386
2013-01-15 18:50:37 +01:00
Frank Reininghaus
87ac18f031 Change the sort and merge functions to a more generic form.
This might make it easier to reuse the parallel sorting code. Moreover,
some the upperBound/lowerBound functions have been removed because
equivalents are provided by the STL.
2013-01-15 18:47:51 +01:00
Frank Reininghaus
c652807a19 Use std::rotate, rather than reversing three times
We need less code now, and moreover, the STL implementation of rotate
should be more efficient than three reverse() calls.
2013-01-15 18:44:42 +01:00
Simeon Bird
72de114a94 Merge branch 'KDE/4.10' 2013-01-15 11:11:11 -05:00
Emmanuel Pescosta
256792355d Select right item as current item (first item after the deletion) after deleting files
BUG: 290736
REVIEW: 108356
FIXED-IN: 4.10
2013-01-14 20:01:03 +01:00
Frank Reininghaus
1e2481c974 Merge remote-tracking branch 'origin/KDE/4.10' 2013-01-11 17:24:05 +01:00
Frank Reininghaus
d3b92d2d67 Slightly reduce the tinting for selected icons and previews
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
2013-01-11 17:12:34 +01:00
Frank Reininghaus
2a7e8b41d3 Only use parallel sorting when sorting by name
The reentrant natural comparison of strings is the only really
expensive operation. Other comparison functions are much cheaper and
might not be reentrant at all. Therefore, we disable parallel sorting
when not sorting by name to prevent crashes and other unpleasant
behaviour.

BUG: 312679
FIXED-IN: 4.10
REVIEW: 108309
2013-01-11 16:57:43 +01:00
Emmanuel Pescosta
4fd99ef4a3 Show the real audio file duration in additional informations
Big Thanks to Frank Reininghaus and Vishesh Handa!

BUG: 311794
REVIEW: 108281
FIXED-IN: 4.10
2013-01-09 16:24:15 +01:00
David Faure
2e88d73423 autoupdate is on by default, remove unnecessary calls 2013-01-04 22:11:31 +01:00
Michael Jansen
fe1e3f240a Fix crash when browsing bluetooth device.
When trying to browse a N900 it crashed here because pathA was empty. Which
lead to index = maxIndex beeing -1 and pathA.at(index) crashing.

Reorder the while condition to prevent that courtesy of tsdgeos.

(cherry picked from commit f0c90a47de)
2013-01-03 17:14:30 +01:00
Michael Jansen
ed4644bd87 Fix crash when browsing bluetooth device.
When trying to browse a N900 it crashed here because pathA was empty. Which
lead to index = maxIndex beeing -1 and pathA.at(index) crashing.

Reorder the while condition to prevent that courtesy of tsdgeos.
2012-12-30 20:57:48 +01:00
Frank Reininghaus
e348bc5826 Merge remote-tracking branch 'origin/KDE/4.9' 2012-12-13 22:34:38 +01:00
Emmanuel Pescosta
fe5c03fb58 Fix Bug 240820 - [Usability Bug] Handling Bad Filenames, dolphin gives unclear error message
Fix Bug 308597 - Regression: Renaming a file/folder to something that contains a "/" will result in several message boxes

Uses the same solution as Dolphin-Rename-Dialog does. (KIO::encodeFileName)

BUG: 240820
BUG: 308597
REVIEW: 107681
FIXED-IN: 4.9.5
2012-12-12 22:57:20 +01:00
Frank Reininghaus
b2a580c2b9 Merge remote-tracking branch 'origin/KDE/4.9' 2012-12-07 22:31:24 +01:00
Frank Reininghaus
e97c050157 Fix keyboard focus handling after renaming items inline
This reverts 951cb9c35d and
3143acc084, 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-12-07 22:15:32 +01:00
Frank Reininghaus
ffe179ad51 Merge remote-tracking branch 'origin/KDE/4.9' 2012-11-25 12:05:53 +01:00
Frank Reininghaus
c570c62036 Fix regression caused by 4120805872
Copied items should not be shown in gray. Thanks to Christoph Feck for
testing and reporting this regression!

CCBUG: 304615
CCMAIL: christoph@maxiom.de
2012-11-25 11:45:06 +01:00
Frank Reininghaus
06e5202c47 Merge remote-tracking branch 'origin/KDE/4.9' 2012-11-24 17:28:43 +01:00
Frank Reininghaus
2099f4a0c5 Update the 'isCut' state of items when cutting non-files, e.g., text
BUG: 304615
FIXED-IN: 4.9.4
REVIEW: 107390
2012-11-24 16:00:42 +01:00
Dawit Alemayehu
b85d46b838 Merge remote-tracking branch 'origin/KDE/4.9' 2012-11-10 16:28:36 -05:00
Emmanuel Pescosta
9aacd610a3 Fix Bug 309760 - Crash while inline-renaming a file and apply change with return-key
BUG: 309760
FIXED-IN: 4.9.4
2012-11-09 12:10:36 +01:00
Frank Reininghaus
15faff457d Merge remote-tracking branch 'origin/KDE/4.9' 2012-11-05 22:12:45 +01:00
Frank Reininghaus
c0559a2a1d Prevent crashes caused by nested event loops run when renaming inline
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-11-05 22:03:52 +01:00
Emmanuel Pescosta
32569ebedf Fix Bug 309338 - flood of error boxes while renaming a folder in the folder panel
BUG: 309338
FIXED-IN: 4.9.3
REVIEW: 107070
2012-10-31 22:43:21 +01:00
Frank Reininghaus
1353c92cce Fix some indentation issues 2012-10-30 08:25:21 +01:00
Frank Reininghaus
70aac0f1e6 Remove workaround for bug 304986 which is not needed in master
Commit ea6a7c09a0 added a workaround for
bug 304986 (high CPU usage because KFileItemModelRolesUpdater requests
previews for the same files over and over again after, e.g., a rename
operation). The KDE/4.10 branch of kdelibs contains the real fix for
this issue (b8f64ca3f4b6311519c21046031d66d9d0a570c6), so the workaround
can be removed.
2012-10-30 07:29:44 +01:00
Frank Reininghaus
1d9d83b434 Merge remote-tracking branch 'origin/KDE/4.9' 2012-10-30 07:26:30 +01:00
Emmanuel Pescosta
c503452d56 Fix Bug 153984 - Clicking cancel on the authentication dialog for fish/sftp/ftp kioslave gets dolphin stuck on "Loading folder"
BUG: 153984
REVIEW: 107116
2012-10-29 20:54:53 +01:00
Emmanuel Pescosta
726cd768c9 Fix wrong function call in KFileItemModelSortAlgorithm::sequentialSort (Bug introduced in commit 429218eaf2) 2012-10-28 20:59:55 +01:00
Emmanuel Pescosta
b4800d794c Implemented multithreading in KFileItemModelSortAlgorithm. Use as many threads as possible.
Thanks to Frank Reininghaus for all his suggestions.

REVIEW: 107025
2012-10-28 17:58:06 +01:00
Frank Reininghaus
37a54c053e Workaround for failed comparison of items in KFileItemModelRolesUpdater
The real fix is in the KDE/4.10 branch of kdelibs
(commit b8f64ca3f4b6311519c21046031d66d9d0a570c6). We work around the
problem that the KFileItem that a preview has been requested for is
different from the KFileItems in the sets m_pendingVisibleItems and
m_pendingInvisibleItems by refreshing those sets when we detect that
the bug has been triggered.

BUG: 304986
FIXED-IN: 4.9.3
2012-10-27 09:48:51 +02:00
Christoph Feck
c1bc83dfdb Merge remote-tracking branch 'origin/KDE/4.9' 2012-10-26 01:58:50 +02:00
Christoph Feck
282f5cb869 Fix color role of tree view arrows
BUG: 307734
FIXED-IN: 4.9.3
REVIEW: 107031
2012-10-26 01:52:20 +02:00
Emmanuel Pescosta
b6396ca721 Use QPixmapCache for KStandardItemListWidget::pixmapForIcon(const QString& name, int size) -> Avoid KIcon loading and rescaleing
REVIEW: 107039
2012-10-25 19:53:53 +02:00
Emmanuel Pescosta
a9b04801db Port Dolphin from Nepomuk to Nepomuk2 according to the Nepomuk2Port mini guide on techbase - http://techbase.kde.org/Projects/Nepomuk/Nepomuk2Port
REVIEW: 106825
2012-10-15 21:46:59 +02:00
Dawit Alemayehu
bc66254304 Merge branch '4.9' 2012-10-03 15:09:58 -04:00
Frank Reininghaus
0e49df9214 Find out the main window by calling the parent widget's window() member
KFileItemModel calls the dir lister's setMainWindow() method to make
sure that the dir lister caches authentication data. However, the method
used to determine the main window (qApp->activeWindow()) is not
guaranteed to yield the DolphinMainWindow or the KonqMainWindow. In
particular, if "Split View" is enabled in Dolphin's settings dialog, the
active window is the dialog, and when it is closed, any later access to
the stored pointer leads to a crash.

A better method is to verify that the model's parent is a QWidget and
then use this widget's window(). I had to make a small modification in
DolphinMainWindow to make sure that it also works correctly when the
view is split (the new view container had been created with a 0 parent
previously).

I tested it in Dolphin and Konqueror and verified that the "main window"
passed to the dir lister is really the application's main window.

BUG: 306459
FIXED-IN: 4.9.3
2012-09-29 19:53:14 +02:00
Dawit Alemayehu
65b7e3b785 Redo the fix for CTRL+Tab not working when using Dolphin's filemanagement part
in Konqueror. The original fix, commit 4f7ed2b, prevents drag and drop from
working correctly.

CCBUG: 302329
REVIEW: 106569
2012-09-28 14:01:21 -04:00
Dawit Alemayehu
b7a8327c30 Merge branch '4.9' 2012-09-27 17:48:56 -04:00
Emmanuel Pescosta
814611ca36 Some speed improvements in KFileItemModelRolesUpdater:
- Use QSet.erase() instead of QSet.remove() => no expensive Rehashing
- Get rid of += in sortAndResolvePendingRoles()
- Some other small changes

REVIEW: 106577
2012-09-27 18:47:55 +02:00
Emmanuel Pescosta
63561edb45 Fix a Bug in KFileItemModelRolesUpdate::setEnabledPlugins.
Changes were never overtaken because of a wrong comparison.

FIXED-IN: 4.9.2
2012-09-26 17:36:51 +02:00
Dawit Alemayehu
7cef34939d Fixed CTRL+Tab not working when using Dolphin's filemanagement part in Konqueror.
BUG: 302329
FIXED-IN: 4.9.2
REVIEW: 106569
2012-09-26 10:16:44 -04:00
Amandeep Singh
509464cce9 Adding license header in kitemlistviewaccessible
Added the license header in kitemlistviewaccessible.*
Accessibility headers not included when QT_NO_ACCESSIBILITY defined
Removed unnecessary debug statement
2012-09-26 04:36:31 +05:30
Frank Reininghaus
a5d8edb8c2 Fix coding style and unnecessary complexity in KItemListViewAccessible
CCMAIL: aman.dedman@gmail.com
CCMAIL: gladhorn@kde.org
2012-09-25 22:01:03 +02:00
Emmanuel Pescosta
c330be5f5c Fixes Bug 305783 - dragging a file over a directory #c4
does not expand the dir => Bug discovered: When you drag a
     item onto a folder-view-item and then move it away
     instantly before the autoactivation event is triggered
     (After 750ms), the folder will be opened anyway.

BUG: 305783
REVIEW: 106381
FIXED-IN: 4.9.2
(cherry picked from commit 9ab8bcd6aa)
2012-09-25 17:06:34 +02:00
Amandeep Singh
c08a4794ff Removing layouter from public, adding TableModelChanged update
REVIEW : 106555
2012-09-25 04:01:48 +05:30
Frank Reininghaus
631f97a6d9 Revert part of 20b0cb68bf
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-24 23:32:51 +02:00
Frank Reininghaus
a740120fe1 Fix crash when receiving Nepomuk info for a recently deleted file.
BUG: 306036
FIXED-IN: 4.9.2
2012-09-24 22:59:59 +02:00
Amandeep Singh
2fafb33240 Removing unneccessary case for Sibling in navigate 2012-09-23 02:15:24 +05:30
Frederik Gladhorn
8f816c8d95 Make cell indices work. 2012-09-22 22:41:54 +02:00
Frederik Gladhorn
174749c349 Accessibility: Fix cellAt
Row and column are 0 based, the cell function
uses 1 based indices.
2012-09-22 21:41:36 +02:00
Amandeep Singh
1b5b731621 Merge branch for accessibility 2012-09-22 23:49:15 +05:30
Amandeep Singh
990c7d260f Returning correct rowCount. 2012-09-22 23:47:18 +05:30
Amandeep Singh
4196026cd8 Making code confirm to policy 2012-09-22 23:47:18 +05:30
Amandeep Singh
28239e6ca8 Removing in-class functions and unnecessary destructor 2012-09-22 23:47:18 +05:30
Amandeep Singh
0ae031a4e6 Modify code according to dolphin policy 2012-09-22 23:47:17 +05:30
Luca Beltrame
f1b822d926 Merge branch 'KDE/4.9'
Conflicts:
	konq-plugins/dirfilter/dirfilterplugin.cpp
	konq-plugins/dirfilter/dirfilterplugin.h
2012-09-21 10:55:08 +02:00
Emmanuel Pescosta
904d7b0701 Restore old behavior: Navigating by double-clicking in folder panel (Double-Click - show folder content and expand folder)
BUG: 295573
REVIEW: 106497
FIXED-IN: 4.9.2
2012-09-20 17:56:32 +02:00
Emmanuel Pescosta
580bcae62c Fixes Bug 293200 - Drag&drop files in dolphin doesnt preserve origin
Patch 106381 Comment #3:
When "Open folders during drag operations" is enabled, two things happen, both in the DolphinView and in the Folders Panel:

1) When hovering a folder that can be expanded (this is the case for folders with sub-folders in the Folders Panel and in the DolphinView if in Details View mode), toggle its "expanded" state.
2) When hovering a folder that can not be expanded (i.e., a folder without sub-folders or any folder in Icons or Compact View), open this folder in the DolphinView via the KItemListController's itemActivated(int) signal.

The bug described in bug 293200 comment 3 is that 1) is always wanted, but 2) is not wanted for the Folders Panel.

BUG: 293200
FIXED-IN: 4.9.2
2012-09-19 19:00:52 +02:00
Emmanuel Pescosta
186141f4d3 Fixes Bug 305783 - dragging a file over a directory #c4
does not expand the dir => Bug discovered: When you drag a
     item onto a folder-view-item and then move it away
     instantly before the autoactivation event is triggered
     (After 750ms), the folder will be opened anyway.

BUG: 305783
REVIEW: 106381
2012-09-12 19:33:28 +02:00
Frank Reininghaus
7de641316a Fix possible crash in KStandardItemListWidget::paint()
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-11 19:34:23 +02:00
Dawit Alemayehu
2da3823b74 Implemented the new KParts extension, KParts::ListingiNotificationExtension.
REVIEW: 106333
(cherry picked from commit acef4b1c28)
2012-09-07 08:54:14 -04:00
Dawit Alemayehu
8b11c747a0 Implemented the new KParts extension, KParts::ListingiNotificationExtension.
REVIEW: 106333
2012-09-07 08:52:53 -04:00
Frank Reininghaus
85dfec046f Do not show '-' for additional info which is not available for an item
I'm only backporting the removal of the '-', not the update for the
line number calculation in Icons View, because this is the safest part
of the patch and also the one that fixes the most annoying part of the
bug.

Thanks to Todd Jennings for the patch!
BUG: 304752
REVIEW: 106304
(cherry picked from commit 20b0cb68bf)
2012-09-06 07:57:48 +02:00
Frank Reininghaus
cad870df3b Do not show '-' for additional info which is not available for an item
Thanks to Todd Jennings for the patch!
CCBUG: 304752
REVIEW: 106304
2012-09-06 07:51:22 +02:00
Dawit Alemayehu
055ad286aa Implemented the new KParts' listing filter extension, KParts::ListingFilterExtension.
REVIEW: 106289
(cherry picked from commit cb79ee6a88)
2012-09-05 11:31:38 -04:00
Dawit Alemayehu
1bac8668d7 Implemented the new KParts' listing filter extension, KParts::ListingFilterExtension.
REVIEW: 106289
2012-09-05 11:25:37 -04:00
Frank Reininghaus
ca6459ea5a Do not crash when finishing inline renaming in unusual ways
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 a9c2bdc3b5)
2012-08-24 23:29:17 +02:00
Frank Reininghaus
09775ec745 Do not crash when finishing inline renaming in unusual ways
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-24 23:27:03 +02:00
Frank Reininghaus
89a678241d Fix regression that caused "(I18N_EMPTY_MESSAGE)" sub menus in menus
For top-level roles like "Name" and "Size", the group translation is 0.
In that case, the "group" member of the corresponding RoleInfo struct
must be an empty string. This is expected by the code which generates
Dolphin's menus, which group the top-level roles into a sub menu with
the name "(I18N_EMPTY_MESSAGE)" otherwise. This is a recent regression
caused by 199fabbaa8.

Thanks to Christoph Feck for investigating this issue!

CCBUG: 305228
(cherry picked from commit 168d0511c7)
2012-08-24 19:00:03 +02:00
Frank Reininghaus
2727715cdd Fix regression that caused "(I18N_EMPTY_MESSAGE)" sub menus in menus
For top-level roles like "Name" and "Size", the group translation is 0.
In that case, the "group" member of the corresponding RoleInfo struct
must be an empty string. This is expected by the code which generates
Dolphin's menus, which group the top-level roles into a sub menu with
the name "(I18N_EMPTY_MESSAGE)" otherwise. This is a recent regression
caused by 199fabbaa8.

Thanks to Christoph Feck for investigating this issue!

CCBUG: 305228
2012-08-24 18:57:47 +02:00
Albert Astals Cid
fac19c757e Fix translations not showing in the Sort by and Additional Information submenus
Acked by Frank
REVIEW: 106049
BUGS: 305228
FIXED-IN: 4.9.1
(cherry picked from commit 199fabbaa8)
2012-08-16 22:29:56 +02:00
Albert Astals Cid
90e1e4e9f0 Fix translations not showing in the Sort by and Additional Information submenus
Acked by Frank
REVIEW: 106049
BUGS: 305228
FIXED-IN: 4.9.1
2012-08-16 22:27:12 +02:00
Emmanuel Pescosta
15b687a270 Fix wrong text color in Places Group Header. Use QPalette::Window for base 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 b3c3da9851)
2012-08-15 15:04:55 +02:00
Emmanuel Pescosta
b039392f34 Fix wrong text color in Places Group Header. Use QPalette::Window for base 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-14 22:02:24 +02:00
Amandeep Singh
9140d00259 Correcting code according to KDE Policy 2012-08-14 20:27:57 +05:30
David Faure
bbf6c3af88 Fix bug 303375 - Dots in directory names treated as file extension.
Patch by Emmanuel Pescosta <emmanuelpescosta099@gmail.com>

BUG: 303375
REVIEW: 105575
FIXED-IN: 4.9.0
2012-08-14 20:27:56 +05:30
Amandeep Singh
7ac839a234 Reverting KListSelectionManager, removing unneccessary a11y factories 2012-08-14 20:27:56 +05:30
Amandeep Singh
dc85bf39c9 Remove unneccessary dependency and polish the Accessibility Interfaces 2012-08-14 20:27:56 +05:30
Amandeep Singh
6770e617cb Enclose accessibility code within QT_NO_ACCESSIBILITY 2012-08-14 20:27:56 +05:30
Amandeep Singh
48fcc54aeb Adding calls to updateAccessibility
Items location changes when scrollbar is moved in dolphin.
Accordingly calls to updateAccessibility should be made.
2012-08-14 20:27:56 +05:30
Amandeep Singh
88b16b38ba Minor fixes to accessible interfaces 2012-08-14 20:27:56 +05:30
Amandeep Singh
e43492a6d8 Focus-tracking for widgets in Dolphin View now works.
Added the calls to updateAccessibility, for DragDrop & Focus scenarios
2012-08-14 20:27:56 +05:30
Amandeep Singh
9437c93f07 Improving Accessibility implementation 2012-08-14 20:27:56 +05:30
Frederik Gladhorn
9149dc84b8 Accessibility: Implement rect for cells and view.
Remove comparison of QAccessibleInterfaces - these are pointers that get
instantiated again and again, so they cannot be compared. Use the object()
function in QAI instead for comparison.
2012-08-14 20:27:56 +05:30
Amandeep Singh
9def70cf8b Renaming the a11y classes and adding implementation 2012-08-14 20:27:56 +05:30
Frederik Gladhorn
6eb2884db0 Do not claim HasInvokeExtension.
This leads to crashes since it implies that
casting to QAccessible2Interface is valid.
2012-08-14 20:27:56 +05:30
Frederik Gladhorn
ce1adc8f09 Remove some dubious code for now (crash less) 2012-08-14 20:27:56 +05:30
Frederik Gladhorn
0739a10a0c Add some fixmes, comment out broken rect() 2012-08-14 20:27:56 +05:30
Frederik Gladhorn
c34fa9b025 Remove reimplementation of functions.
The base class implementations are actually good and without some problems.
Save one pointer's worth of memory by not having m_container.

rect was returning a relative rectangle always.

State was wrongly returning HasInvokeExtension which can lead to crashes.
2012-08-14 20:27:55 +05:30
Frederik Gladhorn
cc7343815a Remove unused function.
And also bad use of "" instead of QString().
2012-08-14 20:27:55 +05:30
Frederik Gladhorn
9211640f39 Use KDebug in favor of qdebug. 2012-08-14 20:27:55 +05:30
Frederik Gladhorn
ac2661d6ca Fix parent navigation for KItemListContainerAccessible. 2012-08-14 20:27:55 +05:30
Frederik Gladhorn
af344f2eec Instantiate KItemListContainerAccessible when needed. 2012-08-14 20:27:55 +05:30
Amandeep Singh
cd1d45c831 Adding the Accessibility classes 2012-08-14 20:27:55 +05:30
David Faure
eb14263c48 Fix bug 303375 - Dots in directory names treated as file extension.
Patch by Emmanuel Pescosta <emmanuelpescosta099@gmail.com>

BUG: 303375
REVIEW: 105575
FIXED-IN: 4.9.0
2012-08-13 22:25:49 +02:00
Emmanuel Pescosta
ab61d9d3ba Fix wrong text color in places and in folders panel.
FIXED-IN: 4.9.1
REVIEW: 105832
BUG: 303133
2012-08-13 19:10:50 +02:00
Emmanuel Pescosta
220d0d522d Fix wrong text color in places and in folders panel.
FIXED-IN: 4.9.1
REVIEW: 105832
BUG: 303133
2012-08-13 18:40:43 +02:00
Frank Reininghaus
5ae3d9c0ae Fix the size of the rating stars in Icons View
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)
2012-08-07 22:55:45 +02:00
Frank Reininghaus
e534bc08f0 Fix the size of the rating stars in Icons View
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-08-07 22:54:35 +02:00
Frank Reininghaus
0d742b44df Stop preview jobs when closing Dolphin
Patch by Benni Hill. Thanks for the patch!
CCBUG: 304467
(cherry picked from commit 4d39dbc962)
2012-08-06 02:32:16 +02:00
Frank Reininghaus
d7f18f5284 Stop preview jobs when closing Dolphin
Patch by Benni Hill. Thanks for the patch!
BUG: 304467
FIXED-IN: 4.9.1
2012-08-06 02:27:49 +02:00
Patrick Spendrin
c7cce33067 msvc needs to have the class definition for reference parameters in methods 2012-07-29 01:13:59 +02:00
Patrick Spendrin
c62146f9ff msvc needs to have the class definition for reference parameters in methods 2012-07-29 01:11:21 +02:00
David Faure
149975a004 Fix bug 303375 - Dots in directory names treated as file extension.
Patch by Emmanuel Pescosta <emmanuelpescosta099@gmail.com>

BUG: 303375
REVIEW: 105575
FIXED-IN: 4.9.0
2012-07-20 12:09:04 +02:00
Christoph Feck
3dbe88e42a Respect platform's icon sizes
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)
2012-07-18 01:30:32 +02:00
Christoph Feck
13dfc7fa2b Respect platform's icon sizes
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
2012-07-18 01:22:55 +02:00
Frank Reininghaus
b8ef5ebca1 Re-implement dropping of files on folders in the Places Panel.
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)
2012-07-12 00:41:20 +02:00
Frank Reininghaus
cd5d20ff8a Re-implement dropping of files on folders in the Places Panel.
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
2012-07-12 00:36:32 +02:00
Peter Penz
53b01d5aff Renaming: Don't select unknown extensions
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-16 22:53:32 +02:00
Peter Penz
e9463ffe2a Fix regression: Open file if entering it in the URL-navigator
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
2012-06-13 15:18:21 +02:00
Peter Penz
fb15dac975 Drag pixmap: Turn off the hover-state 2012-06-12 13:26:23 +02:00
Peter Penz
c95255eb90 Drag-pixmap fixes
- 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-12 13:21:17 +02:00
Peter Penz
6c15705528 Update "isExpandable" and "size"-roles
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
2012-06-11 15:46:55 +02:00
Peter Penz
dbf233ea28 Folders Panel: Also count directory links
... 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
2012-06-09 13:37:42 +02:00
Peter Penz
57cde56158 Inline renaming: ESC should cancel the renaming
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-09 13:12:23 +02:00
Peter Penz
1ddd9c4032 Inline renaming: Improve focus handling
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-08 22:51:01 +02:00
Peter Penz
b2f5de9744 Krazy fixes 2012-06-08 22:08:29 +02:00
Peter Penz
98a4aa10ef Inline renaming fixes
- 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-06-08 16:40:01 +02:00
Frank Reininghaus
c0533e1aaa Ctrl+Shift+click should have the same effect as Shift+click
This makes Dolphin 2.0's behaviour consistent with Dolphin 1.x.

BUG: 300788
FIXED-IN: 4.9.0
2012-06-03 23:03:27 +02:00
Peter Penz
931e180400 Always support a moving animation in case of the details view
This fixes the issue that resizing items results in flickering
when expandable items are shown.
2012-06-02 16:09:24 +02:00
Frank Reininghaus
397f8783d9 Improve arrow key navigation in Details View with expanded folders
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)
2012-05-30 09:26:31 +02:00
Peter Penz
4e2f3dcffe Implement dropping of items into the Places Panel
Some polishing regarding the icons and group-alignment must still
be done, but at least the basic functionality is back again.
2012-05-28 23:11:52 +02:00
Frank Reininghaus
23ab605157 Show all items in the directory when the name filter is cleared
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)
2012-05-26 16:35:31 +02:00
Frank Reininghaus
f061d2a6b3 Use an italic font for symbolic links
BUG: 298218
FIXED-IN: 4.9.0
2012-05-26 15:32:57 +02:00
Peter Penz
e76ec71536 Minor coding style fixes 2012-05-26 13:46:30 +02:00
Peter Penz
073f8cae13 Further preperations for drag & drop support in the places panel 2012-05-26 13:41:30 +02:00
Peter Penz
ff9ce4dab3 Colorize icons when an item is selected
BUG: 295515
FIXED-IN: 4.9.0
2012-05-21 22:41:57 +02:00
Peter Penz
894232ebda Places Panel: Show drop indicator
The dropping itself has not been implemented yet.
2012-05-21 21:48:45 +02:00
Peter Penz
e9d29bcf30 Enable basic drag and drop support for the Places Panel
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-18 23:31:44 +02:00
Peter Penz
a6241cf8ea Fix index-range issue 2012-05-17 22:10:18 +02:00
Peter Penz
727fd64e12 Create unit-test for KStandardItemModel 2012-05-17 22:00:39 +02:00
Peter Penz
bd02faa982 KStandardItemModel: Fix inconsistent internal state
Assure that the index-cache is kept consistent with the items when
a removing or inserting is done. A unit-test will be created as soon
as possible.
2012-05-17 13:34:31 +02:00
Peter Penz
bca055a38e Add unit-test to test a possible crash when updating group-headers 2012-05-17 11:47:21 +02:00
Peter Penz
ff6e4341c5 Fix crash related to group-headers
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.
2012-05-17 11:16:19 +02:00
Peter Penz
855560dd32 Shorten the "path" content if possible
Replace the home-path by '~' for having a shorter content.
2012-05-16 23:42:13 +02:00
Peter Penz
f74c72b965 Fix several bookmark synchronization issues 2012-05-14 17:42:10 +02:00
Peter Penz
77ad7c431a PlacesItemModel: Automatically save bookmarks
Prevent that a manual call to save changed bookmarks is
necessary.
2012-05-14 14:58:34 +02:00
Peter Penz
6e9713c558 PlacesItemModel: Remove setItemHidden and isItemHidden
This should be handled automatically when the hidden-state of
the item itself gets toggled.
2012-05-13 23:30:38 +02:00
Peter Penz
1426b8d3c7 Places Panel: Prepare code to save state of bookmarks
The saving is still disabled currently until 100 % backward
compatibility with KFilePlacesView has been reached.
2012-05-13 21:45:59 +02:00
Peter Penz
9641672247 Let the group-headers respect the item-offset 2012-05-09 14:04:04 +02:00
Peter Penz
a024e3e2aa Remove workaround to start/stop the resource watcher
Using the latest resource-watcher from kde-runtime does not make
this workaround necessary anymore.
2012-05-06 22:08:02 +02:00
Peter Penz
5cf40dba79 Remove kde-runtime dependency "nepomukdatamanagement"
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.
2012-05-06 21:52:33 +02:00
Peter Penz
814a64681d Show "duration" in the format hh::mm::ss 2012-05-06 13:32:20 +02:00
Peter Penz
d4173443ab Fix sorting issues for Nepomuk-roles
Just use a string-comparison as default-compare.
2012-05-06 13:00:42 +02:00
Peter Penz
9419f0f3a5 Fix issue that no Nepomuk-data is shown when searching 2012-05-06 12:43:57 +02:00
Peter Penz
37bd2116cb Additional information: Use "Audio" instead of "Music"
This is consistent to the term used in the places panel.
2012-05-06 11:57:14 +02:00
Peter Penz
23fff35aeb Places Panel: Provide access to devices 2012-05-05 21:38:37 +02:00
Peter Penz
aacf20282d Places Panel: Allow showing of hidden items 2012-05-02 23:57:04 +02:00
Peter Penz
f158bf097a Places Panel: Fix implementation issues when hiding items 2012-05-02 21:24:16 +02:00
Peter Penz
d76b113ad1 Places Panel: Allow hiding of items
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-05-01 23:14:52 +02:00
Peter Penz
6a7cb5ff7d Fix crash when closing Dolphin during generating previews
BUG: 299108
FIXED-IN: 4.9.0
2012-04-30 18:55:48 +02:00
Peter Penz
b419cfc597 Places Panel fixes
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).
2012-04-29 00:00:38 +02:00
Peter Penz
2854a69fca Reset to ascending sort order when changing the column
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
2012-04-26 21:29:33 +02:00
Peter Penz
804021a8db Provide correct labels for Nepomuk resources 2012-04-25 21:15:14 +02:00
Frank Reininghaus
c3bd4b44e4 When the current item is removed, make -1 the current index temporarily
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)
2012-04-25 09:20:23 +02:00
Frank Reininghaus
90baf5a897 When Esc is pressed, clear the selection and cancel the keyboard search
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)
2012-04-25 09:17:43 +02:00
Frank Reininghaus
fa447df642 Reduce the timeout in KItemListKeyboardSearchManager to 1 second
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)
2012-04-25 09:16:39 +02:00
Peter Penz
d9de391720 Provide additional default groups for the Places Panel
If Nepomuk is enabled, it is now possible to easily search for
some most common queries by having additional groups.
2012-04-24 23:18:34 +02:00
Peter Penz
cbf83085be Details mode: Fix wrong required column-width calculation
BUG: 298577
FIXED-IN: 4.9.0
2012-04-23 00:24:40 +02:00
Peter Penz
007907be20 Bring back basic bookmark support for the Places Panel
The folders-panel signals have been adjusted too for consistency.
2012-04-21 23:29:11 +02:00
Peter Penz
e3f46c3b20 Inline renaming: Fix wrong assertion
BUG: 298512
FIXED-IN: 4.9.0
2012-04-21 21:41:24 +02:00
Peter Penz
ae4d11d918 Prepare view-engine for non-KFileItem usecase
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-21 21:32:42 +02:00
Peter Penz
7afd2f0ae1 Inline renaming fixes
- Increase the editor-height in the icons-view if required
- Don't try to react on resizings of the parent, just finish
  the renaming
2012-04-18 01:15:49 +02:00
Peter Penz
beeb9078f5 Ensure authentication data is cached properly
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
2012-04-17 22:21:55 +02:00
Peter Penz
9f94aac23f Documentation update for KItemListRoleEditor 2012-04-17 18:18:10 +02:00
Peter Penz
b2e54c3a31 Implement inline-renaming for the new view-engine
BUG: 286893
FIXED-IN: 4.9.0
2012-04-17 18:15:12 +02:00
Peter Penz
60b8681081 Allow to optionally limit the maximum number of text lines
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
2012-04-14 00:28:24 +02:00
Peter Penz
40c71d5ce0 KFileItemModel: interface cleanups
Fix some naming inconsistencies regarding the usage of 'dir' vs.
'directory' vs. 'folder'.
2012-04-11 21:53:45 +02:00
Peter Penz
ff0a86288e Fix compile issue resulted by commit 2caff15b 2012-04-11 20:45:19 +02:00
Peter Penz
6c3d9acbc2 KItemViews: Internal directory restructuration
- 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-04-11 16:08:32 +02:00
Peter Penz
d9dbd3398a Improvements for slow sorting roles
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
2012-04-10 16:36:26 +02:00
Peter Penz
16e5740828 Revert the 2.0 decision to always use KB for file-sizes
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
2012-04-09 09:50:17 +02:00
Peter Penz
05082aed16 Ignore maximum size for local files when creating previews
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
2012-04-08 16:12:06 +02:00
Peter Penz
02f122f33c Remove unneeded/wrong signal-slot-connection 2012-04-08 15:25:38 +02:00
Peter Penz
1fe46e7dcc Fix drag & drop cursor issue
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
2012-04-07 23:14:43 +02:00
Peter Penz
1ea1f351d6 Use stars for showing the rating in the group headers 2012-04-07 20:59:54 +02:00
Peter Penz
305ecd86f9 Just use "-" instead of "No destination" for the destination-role 2012-04-07 15:09:44 +02:00
Peter Penz
94a44c03e4 Provide proper translation for orientation-EXIF-value 2012-04-07 09:49:31 +02:00
Peter Penz
f4fd2c201f Show a placeholder for roles that are empty 2012-04-07 09:15:42 +02:00
Peter Penz
99f19a820b Icons Mode: Fix wrong width calculation of additional roles 2012-04-07 00:03:42 +02:00
Peter Penz
dc555b8e56 Allow to specify whether an upscaling of images should be done
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
2012-04-06 23:12:07 +02:00
Peter Penz
5d27eb81cd Update items if a Nepomuk property has been changed
If a Nepomuk property has been changed (e.g. by changing the rating
in the Information Panel) the corresponding item in the view must
be updated.
2012-04-06 18:04:56 +02:00
Peter Penz
c9a6760f9f KItemListView: Minor internal cleanup 2012-04-05 16:34:09 +02:00
Peter Penz
f28377f1e3 Fix filtering issue
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
2012-04-05 16:13:59 +02:00
Peter Penz
1e6031c04d Extract sorting-algorithm from KFileItemModel into custom class 2012-04-04 13:37:07 +02:00
Peter Penz
4657459937 Show the ratings as stars instead of text 2012-04-04 00:21:05 +02:00
Peter Penz
b8a12851b8 Minor internal cleanup 2012-04-02 22:24:16 +02:00
Peter Penz
fdab593c01 Fix focus-rectangle issues
Assure that the focus-rectangle exactly matches to the bottom of
the rendered text.

BUG: 297203
BUG: 289804
FIXED-IN: 4.9.0
2012-04-02 22:20:10 +02:00
Peter Penz
a4ede4e0eb Allow showing Nepomuk metadata inside views
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
2012-04-01 16:46:54 +02:00
Frank Reininghaus
aced85db1f KItemListKeyboardSearchManager: make it possible to choose the timeout
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)
2012-03-29 20:05:49 +02:00
Frank Reininghaus
bd26bf2a20 Increase the timeout in KItemListKeyboardSearchManager to 5 seconds
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)
2012-03-28 19:22:12 +02:00
Peter Penz
793311dac1 KItemListView interface and implementation simplification
- 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-27 00:48:34 +02:00
Peter Penz
8c986e22fd Rename KItemListView::preferredColumnWidth() to preferredRoleColumnWidth() 2012-03-26 22:19:38 +02:00
Peter Penz
829e5070ef Add missing 'virtual' to preferredColumnWidth() 2012-03-26 00:01:40 +02:00
Peter Penz
b7f0091733 Internal interface cleanup
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-26 00:00:12 +02:00
Peter Penz
e70c2f8aa4 Details view: Don't reset to automatic resizing when adding columns
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-25 22:58:16 +02:00
Peter Penz
1cbe55b97c Cleanup and minor fixes for column-handling 2012-03-24 23:47:42 +01:00
Peter Penz
3f88f79f86 Details view: Optionally remember user changed column-widths
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-23 22:31:55 +01:00
Peter Penz
3fc96ef97b Details view: Expand the name-column like in Dolphin 1.x
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
2012-03-22 15:47:01 +01:00