Robert Jennings [Wed, 25 Apr 2018 10:35:29 +0000 (12:35 +0200)]
Update window title after closing split view
Summary:
In dolphintabpage.cpp:
Through the connections set up in createViewContainer(), m_primaryViewContainer->setActive(true), at line 98,
ends up triggering slotViewActivated().
Because m_primaryViewActive is true, oldActiveView is not set to the view needed in this particular situation.
Both oldActiveView and newActiveView end up pointing to the same view and the connections are not set up.
BUG: 385111
FIXED-IN: 18.04.1
Test Plan:
1. Open split view
2. Make left panel active
3. Close split view
4. Navigate to various directories
Window title now updates to show current directory
Move "Open" actions to the top of the context menu for files
Summary:
This patch moves the "Open", "Open With", and "Open in" items to the top of the context menu to reap the following benefits:
- Move the "Open" and "Open With" items closer to the top since they're commonly used items, and right now they're buried in the middle of the menu
- Group related functionality
- Consistency with other common platforms (macOS Finder and Windows Explorer both have these items at the top of the context menu)
For folders, the "Open With" entries are moved higher, but not all the way to the top, since the "open in New tab/folder" entries are more useful.
Test Plan:
Tested all menu items in the context menu for files, folders, and links; all still work.
Nathaniel Graham [Thu, 19 Apr 2018 19:03:35 +0000 (13:03 -0600)]
Fix inconsistent preview spacing and icon wiggly-ness when toggling previews in Icon mode
Summary:
Dolphin had some code to change the grid spacing when previews were toggled, in an attempt to optimize the view for 3:2 landscape photos. This was problematic for many reasons:
- Conceptually, it was a bad idea to optimize the view for one specific use case. Previews are useful for more than just landscape photos, and this optimization would be inapplicable to any other set of files.
- Folders entirely full of images commonly have some portrait-orientation images included too, so even if the goal were appropriate, it was a bad idea to optimize for only having landscape images.
- For small sizes and medium icons (< 96px), the preview grid size was virtually identical to the non-preview grid size, so it had essentially no effect, and only made the icons wiggle strangely when previews were toggled.
- For large large sizes (>= 96px), all it did was unnecessarily increase the horizontal grid spacing, actually //reducing// usability for browsing through folders of images.
Therefore, let's just remove this code.
BUG: 393306
FIXED-IN: 18.04.1
Test Plan:
- Go to {nav Settings > View Modes > Icons} and make the icon size and preview size identical for 64px
- Toggle previews on and off
- Change both sizes to 112x
- Toggle previews on and off
In both cases, the grid spacing does not change and the icons do not wiggle strangely. The only visual change is that previews turn on or off.
Dolphin still works fine for viewing 3:2 landscape photos. 80px icons:
{F5813467}
Nathaniel Graham [Mon, 26 Mar 2018 00:06:46 +0000 (18:06 -0600)]
Select and scroll to the file for "Open path" and "Open Path in New Window" operations
Summary:
After performing a search and using the "Open path" or "Open Path in New Window" present in the context menu, make sure the file is selected and visible in the resulting view.
Cannot implement the same fix for "Open Path in New Tab" because of a limitation in how the contents of inactive tabs are rendered; will need to fix that separately in another patch.
BUG: 377510
Test Plan: Search for an item, and choose {nav Open Path} or {nav Open path in new window}
Summary: These new functions to access the next and previous tabs are not used by anything yet, but it is envisioned that they would be useful for a variety of purposes--such as the "open path in new tab" feature from D11703
Test Plan: Dolphin still compiled and runs; new code is not actually used anywhere
use the same bound check as setCurrentItem when setting m_currentItem manually
Summary:
This patch basically adds the check that would normally be done to the
itemInserted method, which seems to be good idea in general.
However, the fact that this is needed there might be an indicator of a logic bug
in the function – though, as I'm not familiar with the code base I cannot judge
this.
Test Plan:
Without this patch, dolphin when started from a terminal prints the following
warning (number can be different):
qt.accessibility.core: Cannot create accessible child interface for object: PlacesView(0x563e863e35c0) index: 10
After applying the patch, the warning doesn't appear anymore. Dolphin still
works still as it did before.
Summary:
We are asking the users whether they are sure they want to quit.
But the "Quit" button can be ambiguous (am I quitting dolphin or just
this dialog?). If we use a "Quit Dolphin" button instead, that clearly
shows what will happen after triggering the action.
Test Plan: Close dolphin while multiple tabs are open.
Show folder previews for items that have a Places Panel entry
Summary:
informationpanelcontent.cpp currently has an explicit check for whether or not a URL has a Places panel entry, and if it does, no folder preview is generated. It's not clear why this is done, but it was reported as a bug: https://bugs.kde.org/show_bug.cgi?id=392621. Removing the logic fixes the bug.
Detailed test procedure:
- Open the Information Panel
- Turn on previews
- Put some pictures in ~/Pictures
- Hover over it and see that the Information Panel shows a preview of its contents
- Add ~/Pictures to the Places panel
- Hover over it again and see that previews are no longer displayed
- Apply the patch and restart Dolphin
- Hover over it once more and see that there are now previews, yay!
Scott Harvey [Wed, 28 Mar 2018 13:46:12 +0000 (07:46 -0600)]
Fix alignment of icons in Places panel and Compact view mode
Summary:
Adjust calculation of icon pixmap Y value; now based off center of text label bounding rectangle. Previously, icons appeared top-aligned when text size was larger than icon size.
Centering is done by obtaining the center point of the text frame (`m_textRect.center().y()`) and setting the top `Y` point of the icon to one-half of the scaled icon height (`m_scaled_PixmapSize.height()`) Division is done by `2.0`, to ensure calculations are done with floating-point math, in keeping with `QPointF`, which returns floating-point values.
Also includes an adjustment named `midlineShift` (contributed by @zzag), which takes into account the font's midline in respect to the center of the text frame. Certain fonts (i.e. Noto Sans) can have a slightly offset midline, resulting in imperfect alignment of the icon. This small adjustment resolves that potential issue.
See before and after screenshots.
{F5764918}
Before, showing misalignment (with and without debugging wireframes)
Test Plan:
-- Compile Dolphin with patch
-- Increase system font size by several points (i.e. 15pt)
-- Check that Places panel icons remain centered with the text label
-- Select Compact View mode
-- Adjust icon size slider to minimum
-- Ensure that icons also remain centered in file listing
-- Check several combinations of icon size & font size to ensure centering is consistent
Kai Uwe Broulik [Thu, 29 Mar 2018 07:21:17 +0000 (09:21 +0200)]
[KItemListView] Check if KItemListStyleOption actually changed before emitting a change
This avoids work being done when it doesn't need to be.
For instance, the preview generator waits for everything to have settled using a 200ms timer before generating a preview.
This timer fired also in response to onStyleOptionChanged and needlessly delayed preview generation when navigating between folders
despite the style option (e.g. icon size, view mode) not having changed.
Nathaniel Graham [Wed, 21 Mar 2018 23:00:17 +0000 (17:00 -0600)]
Fix missing entries in context menu for links
Summary: https://cgit.kde.org/dolphin.git/commit/?id=86f4fcb8cd574f6d886627fc5e01c9edfc84e977 introduced a regression: the context menu for links no longer shows various items that were gated behind being a directory. However, a link can be both a link and a directory, from KIO's perspective. This patch resolves the issue.
Test Plan:
- Context menus for files, folders, and file links are unchanged.
- The missing context menu items for folder links have returned: {F5761809}
I should have tested that patch better, and for that I apologize and offer to fix this regression here. I will endeavor to up my reviewing game.
Nathaniel Graham [Thu, 15 Feb 2018 21:26:57 +0000 (14:26 -0700)]
Also use standard keyboard shortcut for "show/hide hidden files"
Summary:
Use Ctrl+H as another keyboard shortcut to show and hide hidden files, as it is already the standard used in other GTK-based Linux file managers (Nautilus, Nemo, Caja, Thunar, Pantheon Files). This doesn't replace any existing shortcuts, so existing KDE users' muscle memory is retained.
FEATURE: 390527
FIXED-IN: KDE Applications 17.12.3
Test Plan:
- Ctrl+H now shows and hides hidden files
- Alt+. still works to do the same
- F8 still works to do the same
- Toolbar button still changes state appropriately when any of the three shortcuts are used
Marjio Mustac [Wed, 14 Feb 2018 14:40:36 +0000 (07:40 -0700)]
Add icons to Edit menu
Summary:
Since Breeze offers such a great palette of action icons I thought we should make use of them which make things also more consistent with other applications.
Robert Hoffmann [Tue, 13 Feb 2018 22:12:44 +0000 (23:12 +0100)]
Fix resetting "View Modes" preferences to defaults
Summary:
Removed call to settings.readConfig() in ViewSettingsTab::loadSettings(),
because it overwrites default settings with user settings even if called
from ViewSettingsTab::restoreDefaultSettings().
Test Plan:
Settings -> Configure Dolphin -> View Modes:
Choose "Custom Font", "Choose...": other font settings than preselected;
alter "Icon Size" slider positions;
click OK; OK;
note modified text font next to icons, icon sizes
Settings -> Configure Dolphin -> View Modes:
Click "Defaults"
check "Font" is reset to "System Font";
check "Icon Size" slider positions are reset to default positions;
click OK
check text font next to icons, icon sizes are reset to defaults
Elvis Angelaccio [Sun, 21 Jan 2018 11:18:21 +0000 (12:18 +0100)]
Build TerminalPanel also on Windows
Summary:
terminalpanel.cpp *should* compile on Windows, so there is no reason to
remove it from the build and use tons of #ifdefs in dolphinmainwindow.
We still keep the terminal panel disabled on Windows
(i.e. the two remaining #ifndef Q_OS_WIN in dolphinmainwindow),
because it is probably not functional.
But at least we won't break the Windows CI every time
someone touches the terminal panel code (see e.g. 2e942237c9).
Test Plan: Builds on Linux, someone on Windows should test this patch if possible.
Jaime Torres [Sun, 4 Feb 2018 20:19:33 +0000 (21:19 +0100)]
Faster drag&drop in directories with thousands of files
Summary:
The check is called when the mouse is moved in a drag&drop operation.
Dragging all files in a directory with 3000 files under callgrind,
moving the mouse to the other panel and then canceling, doing it twice,
callgrind shows that the method urlListMatchesUrl is called around
200 times, spending around 9,30% of the cpu in those calls.
Applying the patch, callgrind tells it uses now 0.31% of the cpu in 1208 calls.
Nathaniel Graham [Wed, 31 Jan 2018 00:05:57 +0000 (17:05 -0700)]
Let the terminal panel dock to any part of the window
Summary:
BUG: 362593
Just what it says: Let the terminal panel sit on the left or right side of the window.
Test Plan:
Tested in KDE Neon:
- Opened terminal panel, unlocked widgets, and tried to drag it to the right or left side of the window: I can
- Put terminal panel on right side, quit Dolphin and opened Dolphin again: terminal panel appears on the right as expected
- Put terminal panel on right side, closed terminal panel, quit Dolphin, opened Dolphin, and opened the terminal panel again: terminal panel appears on the right as expected
- Removed dolphinrc file and opened terminal panel: appears on the bottom
Marco Martin [Mon, 29 Jan 2018 10:52:23 +0000 (11:52 +0100)]
base scrolling on the smallest item
Summary:
CCBUG: 386379
after recent highdpi patches on scrolling that delegated it
completely to the scrollbar, based upon the scrollbar singleStep
setted to the tallest of the items in the view.
tough this makes scrolling way too fast, and on folders where just
few filenames are longer than most we can get a single scrolling
step almost double the number of lines configured in the
mouse kcm.
Using the shortest item instead of the tallest mitigates this problem
making it a bit more usable
Test Plan:
tested on different folders in different view modes both with
mouse and touchpad
Elvis Angelaccio [Sun, 21 Jan 2018 09:50:11 +0000 (10:50 +0100)]
Port away from deprecated QStyle::SH_Widget_Animate
Summary:
Use the new QStyle::SH_Widget_Animation_Duration instead,
which allows us to not manually hardcode the duration.
We still use 1 if animations are disabled,
otherwise the scroll would not work at all.
See also D5883 for some background.
Test Plan: Played with different values in the Animation tab of the Breeze config dialog.
Use BatchRenameJob to rename multiple files in Dolphin
Summary:
Use KIO::BatchRenameJob in Dolphin::RenameDialog to rename multiple files.
With this viewing progress of rename operation and undo is possible.
Set the focus to the active view, after leaving the terminal panel
Summary:
BUG: 298467
Set the focus to the active view, after leaving the terminal panel.
This is a fork of the patch at https://git.reviewboard.kde.org/r/116118/ by @emmanuelp which should fix the issue with the original patch reported by Frank Reininghaus.
folderspanel context-menu option "Limit to Home Directory" should be always visible
Summary:
Only by chance I discovered that this option is visible but only when inside home. Before that I always edited dolphinrc to reenable it.
I think it's less confusing to always show it but toggle its enabled state
Test Plan:
compile and run
show folderspanel context-menu in different places