Peter Penz [Sun, 27 Mar 2011 17:27:27 +0000 (19:27 +0200)]
DolphinContextMenu: Show "Show menubar" entry if necessary
If the user has hidden the menubar and the toolbar there is no way to
get back the menu (at least not without knowing the Ctrl+M shortcut).
Show an entry in the context-menu to bring back the menubar.
Peter Penz [Sat, 26 Mar 2011 22:22:21 +0000 (23:22 +0100)]
Provide toolbar-menu when the menubar is hidden
Use a similar default UI like in Rekonq and other browsers: Hide the
menubar and add access to all actions by a button in the toolbar.
Of course it is still possible to show the menubar so that the same UI
is given like before.
Sebastian Dörner [Wed, 23 Mar 2011 23:45:14 +0000 (00:45 +0100)]
Make cursor keys always trigger a statusbar update
When the selection is changed using the cursor keys, the statusbar
should be updated. Until now, this didn't actually happen directly after
an operation ending in a OperationCompletedMessage, because the
OperationCompletedMessage was protected.
This patch changes the behaviour to only protect ErrorMessages in the
ViewContainer. When an OperationCompletedMessage was issued very
recently, it keeps being protected by DolphinStatusbar itself.
Statusbar updates in the ViewContainer are only triggered by
a) user actions (move keyboard focus, enter something in the filter bar)
b) finished filed jobs
In case a), the update is desired, also overriding
OperationCompletedMessages.
In case b), the OperationCompletedMessage issued by the file command is
issues so shortly before the call to updateStatusBar, that the
DolphinStatusBar skips the message anyway (see
DolphinStatusBar::setMessage).
Peter Penz [Tue, 22 Mar 2011 17:43:12 +0000 (18:43 +0100)]
Tooltip improvements
- Use the default style for drawing the tooltip background
- Get rid of the workaround to keep only one KFileMetaDataWidget instance. This is not required anymore as internally in KFileMetaDataWidget a process is used to get the metadata instead of a thread.
Peter Penz [Sat, 12 Mar 2011 17:45:59 +0000 (18:45 +0100)]
Details view optimization
Constructing a KColorScheme object is very expensive because of a number
of tint computations. When scrolling a big list more than 30 % of the
time was spent here. Instead, we can precompute and store the inactive
text color. (see https://git.reviewboard.kde.org/r/100826/)
Peter Penz [Thu, 10 Mar 2011 22:26:16 +0000 (23:26 +0100)]
Hide search-mode buttons in the read-only mode
When a searching has been triggered externally (e.g. by clicking on a tag) the search-mode settings like "From here"... are ignored and should not be shown at all. The current patch is only a quick workaround until a clean layout will be provided for this case.
Peter Penz [Thu, 10 Mar 2011 22:17:55 +0000 (23:17 +0100)]
Add search modes for the Search Panel
The search panel must get a hint whether clicking on the facets should result in searching everywhere or from the current folder. It is not sufficient to check the search-settings of the "Find:"-box, as when the "Find:"-box is invisible there is no hint for the user what kind of searching is done and the setting must be ignored.
Peter Penz [Thu, 10 Mar 2011 18:55:00 +0000 (19:55 +0100)]
Fix some search issues
- Always merge the query from the "Find:"-field with the current facet-query. This assures that the facet-query never gets overwritten if the user changes the "Find:"-field.
- Always trigger a searching if the text of the "Find:"-field has been cleared.
Still a lot of usability issues are left, but this is at least a first step...
Peter Penz [Tue, 8 Mar 2011 21:25:53 +0000 (22:25 +0100)]
Prevent unnecessary reloading of KDirLister on startup
When Dolphin is started with a directory as argument unnecessary reload operations of KDirListers are done. The patch improves this by just letting the DolphinView internally do a loading as soon as it gets visible (and without reloading). Also in case if only one directory is passed as argument the current tab gets reused instead of creating new tabs and removing the current tab.
Thanks a lot to David Faure for pointing out this unefficient handling.
Adjust text color to new emblem for unstaged files
The new emblem is green, not red, which should be reflected by the text
color. Now, all files that will be part of the next commit
(LocallyModifiedVersion and AddedVersion) are green and unstaged files
darkGreen.
Peter Penz [Mon, 28 Feb 2011 21:04:00 +0000 (22:04 +0100)]
Fix issue that wrong directory is shown
Commit 680009b522b2c9eda03201ac02dc18994b5a8bd0 resulted in a regression when switching from a view in the column-mode to a view in the icon- or details-mode: The wrong content has been shown. This patch reverts commit 680009b522b2c9eda03201ac02dc18994b5a8bd0 and solves the performance-issue in combination with previews by triggering the preview-generation in a queued way.
Peter Penz [Fri, 25 Feb 2011 19:39:18 +0000 (20:39 +0100)]
Allow to configure thumbnail-plugins
Adjust the preview-settings to allow users to configure thumbnail-plugins. For consistency also the service-settings have been adjusted to use the ServiceModel and ServiceItemDelegate.
Peter Penz [Sun, 13 Feb 2011 12:19:12 +0000 (13:19 +0100)]
Improve performance when turning on the preview mode
If a change from a directory with disabled previews is done to a directory with enabled previews, also previews are generated for the previous directory as the preview-generator still contains the not updated directory lister. Because of this it is important to apply the view-properties after the directory-lister has been updated.
Peter Penz [Wed, 9 Feb 2011 21:05:38 +0000 (22:05 +0100)]
Assure that RETURN emits itemTriggered() for one file
If only one file is selected, pressing RETURN should behave similar like triggering the item with the mouse. For this the signal itemTriggered() must be emitted.
Peter Penz [Sat, 5 Feb 2011 22:33:08 +0000 (23:33 +0100)]
Provide a hook for externally triggered search queries
In this case the "From Here"/"Everywhere" buttons and the "Filename"/"Content" buttons are useless. Currently they just get disabled but the plan is to provide a better visual indication of the current query and to remove them completely.
Peter Penz [Wed, 2 Feb 2011 18:36:08 +0000 (19:36 +0100)]
Fix visibility- and enabled-issues for the filter-panel
The filter-panel should be disabled if the current folder is not indexed at all. Also when triggering a "Find" the filter-panel should stay invisible per default when the current folder is not indexed.
Up to now, some Columns View tests that need a folder to be displayed
in the view only passed if they were run first: The first test always
passed, and if a test name was passed on the command line, such that
only this test would be run, this test would work as well. In other
cases, the view was empty, not showing the items in the folder.
The problem is worked around by creating a new DolphinView before each
test in the case of the Columns View. Added a TODO comment to make me
remember to look into this again at some point.
The test assumes that the view does not have the keyboard focus
initially. However, this may not be the case if this is the only test
to be executed (i.e., if testKeyboardFocus is passed to the test
executable on the command line). This commit transfers the keyboard
focus explicitly to another widget.
Peter Penz [Tue, 18 Jan 2011 19:56:18 +0000 (19:56 +0000)]
Assure that the enabled plugins for previews are set for the Information Panel and the tooltips. This fixes the issue that a disabled thumbnail-plugin might be chosen. For 4.7 it should be considered to move this code into KIO::filePreview() as default already (will provide a patch on the reviewboard).
When running the test in the background while using the computer for
other things, it may happen that the test's widgets are not focused,
which led to an infinite loop before this commit. I've removed the
checks that caused this loop because the only thing that is important
for the test is that the view loses the keyboard focus at some point
(see bug 220898).
DolphinTreeView contains some code to update the selection after a
keyboard search because QTreeView (unlike the other item views) does
not handle this internally.
This commit simplifies that code by performing the selection update in
the method keyboardSearch(). That way, we can get rid of the member
m_updateCurrentIndex and of 3 member functions. The unit tests still
pass, so I'm quite confident that this does not break anything.
DolphinTreeViewTest: Add unit test for bug 220898 (rubberband
selection failure after a keyboard focus change in between key press
and key release events)
Move the call "setUniformRowHeights(true)" from DolphinDetailsView's
constructor to the one of its base class DolphinTreeView. The reason
is that DolphinTreeView::updateElasticBandSelection() contains
"Q_ASSERT(uniformRowHeights())", so it makes sense to ensure that
every DolphinTreeView has uniform row heights. This might be important
for unit tests which use DolphinTreeView directly.
DolphinTreeViewTest: Add unit test for bug 259656 (multiple file
deletion if Shift+Delete is pressed for some time and the confirmation
dialog is disabled).
Peter Penz [Sat, 15 Jan 2011 17:52:00 +0000 (17:52 +0000)]
If the searching has been triggered by clicking on a facet and the facet gets reset again, assure that not all indexed files are shown. Instead return to the previous state before the searching has been started.
Peter Penz [Fri, 14 Jan 2011 19:55:55 +0000 (19:55 +0000)]
Move the FileMetaDataConfigurationDialog from "settings" to "panels/information", as it is not used anymore for the tooltips and only in the information panel.
Peter Penz [Sun, 9 Jan 2011 15:14:29 +0000 (15:14 +0000)]
Don't trigger a slotDirListerCompleted() when the directory lister has been cancelled. Beside leading to a crash for the unit tests this is semantically wrong.
Peter Penz [Sun, 9 Jan 2011 15:03:30 +0000 (15:03 +0000)]
Fix implementation of DolphinView::invertSelection() which assures that DolphinView::hasSelection() provides a valid return-value. This looks like an issue in Qt, but I did not have the time yet to provide a Qt-only example for a bug-report :-(
Peter Penz [Sun, 9 Jan 2011 13:58:35 +0000 (13:58 +0000)]
Encapsulate the creation and handling of the directory lister, the model and proxy model to DolphinView. By this it will be easier later to replace the traditional QAbstractItemViews by any kind of other implementation (e.g. based on QGraphicsView/QML).
Peter Penz [Sun, 9 Jan 2011 12:28:43 +0000 (12:28 +0000)]
Internal simplification: It is not necessary to keep the ViewModeController as member for the view-modes, as the URL is alredy known by the DolphinViewController.
Peter Penz [Sun, 19 Dec 2010 12:48:24 +0000 (12:48 +0000)]
Fix regression introduced in 4.5 and allow to add the menu actions "Show Information Panel", "Show Folders Panel", "Show Terminal Panel", "Show Places Panel" and "Show Places Panel" to the toolbar like in KDE SC 4.4.
Peter Penz [Sun, 19 Dec 2010 12:03:46 +0000 (12:03 +0000)]
Select the whole text in the filterbar and searchbox if the widget has lost the focus and gets focused again by the shortcut (this behavior is consistent to e.g. the behavior in Kate).