Nate Graham [Tue, 12 Feb 2019 19:21:34 +0000 (12:21 -0700)]
Word-wrap KMessageWidget text
Summary:
Word-wrap KMessageWidget text to prevent the window from being widened
when the text is very long.
CCBUG: 404232
Only `CCBUG: ` because word wrap only works where QLabel detects a word boundary;
it will not wrap a string with no spaces or other word boundaries (e.g.
"aaaaaaaaaaaaaaaaaaaa...")
Test Plan:
- Create a new text file with a 300-character name that has spaces in it
- In the KMessageWidget's error message, the file name is wrapped at the word
boundaries
David Hallas [Tue, 12 Feb 2019 10:07:43 +0000 (11:07 +0100)]
New tab should be placed after the current tab
Summary:
When opening a new using the context menu the new tab should be placed
after the currently open tab, not at the end of the tab list.
BUG: 403690
Test Plan:
Open multiple tabs and select a different tab than the last one.
Open a new tab using the context menu and see that it opens after the currently
selected tab.
Open a tab using Ctrl+T and see that it opens at the end.
Kai Uwe Broulik [Mon, 4 Feb 2019 08:12:35 +0000 (09:12 +0100)]
Use more suitable default view mode for recent documents and Downloads folder
Sort them descending by date as well as:
* for Recent Documents: switch to details view
* for Downloads enable grouping and disable sorting folders first
Nate Graham [Tue, 29 Jan 2019 13:31:46 +0000 (06:31 -0700)]
After opening and switching to a new tab, always focus the view
Summary:
When Dolphin opens a new tab and immediately switches to it, the URL navigator gets focus if it's editable. If it's not, the breadcrumbs bar gets keyboard focus, which is not very useful since it's not really intended for keyboard navigation.
This patch changes that behavior so that the view always gets focus, which seems more useful and more consistent.
BUG: 401899
FIXED-IN: 19.04.0
Test Plan:
1. Put the URL navigator into breadcrumbs mode
2. Open a new tab
3. Observe that the view gets keyboard focus
4. Put the URL navigator into editable mode
5. Open a new tab
6. Observe that the view still gets keyboard focus
Nate Graham [Sat, 19 Jan 2019 15:11:26 +0000 (08:11 -0700)]
Ask for confirmation when Closing Dolphin windows with a terminal panel running a program
Summary:
Ask for confirmation when Closing Dolphin windows with a terminal panel running a program.
FEATURE: 304816
FIXED-IN: 19.04.0
Test Plan:
# Open terminal panel
# Run `watch ls`
# Close Dolphin
# Observe confirmation
# Disable confirmation
# Repeat, observe no confirmation
# Enable confirmation in the settings
# Repeat, observe a confirmation
Chris Rizzitello [Mon, 14 Jan 2019 01:55:07 +0000 (20:55 -0500)]
Abort updateWindowTitle and activeViewChanged if not changed.
Summary:
- Prevent activeViewChanged from updating the window if the view is the same view (happens at least once when starting up)
- Stop updateWindowTitle from updating the title if its not changed.
Summary:
The DolphinTabPage::activeViewUrlChanged signal triggers the title
update in DolphinMainWindow, which sets the new title from the
`m_activeViewContainer` instance.
This means we need to notify the main window that the active view
changed before telling it that the current url changed.
Nate Graham [Sun, 16 Dec 2018 20:49:57 +0000 (13:49 -0700)]
Return editable URL navigator to breadcrumb mode if it has focus and everything is selected and when Ctrl+L is pressed
Summary:
This patch makes an editable location bar return to breadcrumb mode when {key Ctrl L} is pressed, but only if the location bar currently has focus and everything is selected. Otherwise, it will simply return focus to it as before.
This provides a slightly easier way to make the location bar return to breadcrumbs mode
Test Plan:
- Compile and deploy and make the location bar be breadcrumbs
- Hit {key Ctrl L} twice in a row -> location field turns to being in breadcrumb mode. Focus is correctly returned to the main view.
- Hit {key Ctrl L}, move focus elsewhere, then hit {key Ctrl L} again -> Location bar is editable and focused with everything selected.
- Hit {key Ctrl L}, deselect some of the text, then hit {key Ctrl L} again -> Location bar selects everything.
Anton Kreuzkamp [Mon, 3 Dec 2018 14:01:36 +0000 (15:01 +0100)]
KItemListWidget: Use initStyleOption
Instead of using QStyleOption::initFrom, let's use
QGraphicsWidget::initStyleOption, which is made for exactly the purpose
of KItemListWidget. This is especially important since, according to the
docs of QGraphicsItem::paint "The widget argument is optional. [...]
For cached painting, widget is always 0.". Even though currently no code
in dolphin does cached painting, for the sake of modularity one should
not rely on widget to be non-null. Using QStyleOption::initFrom does
assume that, though.
In fact, GammaRay asks the items to do cached painting when attaching it
to the application, causing it to crash.
Thomas Surrel [Tue, 20 Nov 2018 11:10:15 +0000 (12:10 +0100)]
Fix selection when navigating back, with size sorting.
Summary:
KItemListSelectionManager::itemsMoved (called when sorting by size)
was re-activating anchor selection regardless if we actually were
doing an anchored selection. This was leading to an incorrect
selection when navigating back.
BUG: 352296
Test Plan:
In any folder, sort by size then move to a subfolder. Navigate back
to the parent folder: only the parent folder should be selected.
Thomas Surrel [Thu, 22 Nov 2018 21:24:37 +0000 (22:24 +0100)]
Do not sort twice when changing role and order at the same time
Summary:
When using the list header to change the role and order, if one
changes the order to descending and then changes role, dolphin
also changes the order back to ascending. This results in sorting
the list of files twice in a row. This patch removes the first
(useless) sort.
Elvis Angelaccio [Sun, 11 Nov 2018 12:41:18 +0000 (13:41 +0100)]
[PlacesPanel] Port to KFilePlaceEditDialog
Summary:
This patch ports away from the old PlacesItemEditDialog copy,
which doesn't honour the "applicationLocal" checkbox.
KFilePlaceEditDialog was not exported by KIO, but it will be starting
from 5.53
BUG: 376619
FIXED-IN: 19.03.80
Test Plan:
* Create a new place ("Add Entry" from the panel context menu) and check the "only show in dolphin" checkbox
* Edit an existing (global) place and check the "only show in dolphin" checkbox
Thomas Surrel [Tue, 13 Nov 2018 10:05:16 +0000 (11:05 +0100)]
Do not disconnect all StorageAccess signals when unmounting
Summary:
The problem is caused by the fact device interfaces returned by
Solid (e.g. item->device().as<Solid::StorageAccess>()) are not
full objects, but only references/pointers to a per-device-object,
i.e. requesting the same interface for a device will return the same
address every time.
If the interface is used used in multiple places, calling disconnect
on the interface address disconnects the signals for all users.
BUG: 400992
Test Plan:
In Dolphin, mount a local partition (e.g. a Windows partition)
then unmount it (right click on it in Places, then Unmount).
Try to access it again by clicking on it in Places, we should
get access to it correctly.
Chris Rizzitello [Sun, 11 Nov 2018 21:02:08 +0000 (16:02 -0500)]
Improve Ux for the places panel's hidden items
Summary:
BUG: 400860
FIXED-IN: 18.12.0
Clean up the context menu for the places panel.
- Change Text "Show All Entries" -> "Show Hidden Places"
- Use State dependent icon (like hidden files)
- Disable instead of hide if not places are hidden.
- Toggle to unchecked if last item of group is unhidden.
Create a copy of this "Show Hidden Places" entry in the main dolphin menu View->Places.
Harald Sitter [Thu, 15 Nov 2018 13:43:57 +0000 (14:43 +0100)]
move kcrash link to dolphin app (which is the effective user)
Summary:
to successfully use kcrash when linking with as-needed (which is a default
flag on many linux distros) one also needs to call KCrash::initialize.
this call happens in the app's main.cpp. as such the kcrash link target
on the dolphinprivate library doesn't do anything for dolphinprivate but
only kicks into action for dolphin itself.
to avoid confusion and make it clear that kcrash is only initialized in the
application scope the KF5::Crash link target is now on the application
target, not the library target.
(this makes no difference in the output, kcrash was still correctly linked
via dolphinprivate; but only for kdeinit_dolphin, dolphinprivate did
not get linked to it with as-needed)