┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/views
AgeCommit message (Collapse)Author
2025-11-22DolphinView: when creating a dir hierarchy only select dir in current pathMéven Car
If you are in ~ And create at once ~/1/2 Select the 1 folder afterwards
2025-11-21context menu: use selected item as containing folder for New file menuMéven Car
Use current view url as fallback. Don't update the selection after a directory is created, except if there was no selection. CCBUG: 508196 BUG: 512020
2025-11-21DolphinView: open the property dialog on Alt+activatedMéven Car
Similarly to Microsoft explorer. FEATURE: 512383
2025-11-18dolphinviewactionhandler: Add context to translatable stringPhilipp Kiemle
"Sort By field" could be understood as an extra field that contains a "Sort By" value
2025-11-10remoteencoding: updateMenu: check if a charset is foundMéven Car
Rather than its description, which for an empty charset is: "Other encoding ()", that can't be empty and will always enter the branch.
2025-11-04dolphinitemlistview: ensure font settings isolation between view modesweinan li
Ensure proper font synchronization between KItemListStyleOption and the base font system. Previously, when switching from a view mode with custom font to one with system font, the style option would retain the custom font setting, causing font settings to persist incorrectly between view modes after application restart. The changes: - Unify the font setting logic for both system and custom fonts - Ensure style option font is synchronized with actual font in system mode BUG: 511604
2025-10-29dolphinView: resetZoomLevel: reset to user defined default zoomweinan li
Instead of ViewModeSettings default mode. The original resetZoomLevel() implementation used settings.useDefaults(true) to force reading the system's hardcoded default icon size (typically 16px), ignoring the user's custom default size configured in Dolphin's View settings. This caused Ctrl+0 to reset icons to the minimum size instead of the user's preferred default. This patch removes the useDefaults(true) call, allowing ViewModeSettings::iconSize() to directly retrieve the user-configured default icon size. Ctrl+0 now correctly resets to the size the user set in Dolphin's settings, aligning with expected behavior. BUG: 482322
2025-10-25viewactionhandler: Group roles actions under KActionCategoryMéven Car
2025-10-25Revert "dolphinviewactionhandler: Improve text for roles actions"Méven Car
This reverts commit 4b7d49dfca757e28a659bd01614b8f3ee3a03fc0.
2025-10-23dolphinview: for samba use special placeholder only for /Méven Car
And no hostname set cases. For other invalid cases (invalid host, host unreachable), we get the Canceled Loading status. BUG: 509253
2025-10-23DolphinView: emit loadingCompleted at the end of the slotMéven Car
2025-10-23viewactionhandler: set parent to KActionMenu's menu with MenuButtonPopupMéven Car
Since the Menu will then be used in the chain of focused elements.
2025-10-03DolphinViewContainer, DolphinView: Fix incorrect view activation when ↵Wendi Gan
renaming folder Issue: In a split-view tab, if a folder is opened in the left view and its parent folder is opened in the right view, renaming the folder from the right view activates the left view. Reason: When renaming the folder, the emitted `DolphinView::urlChanged` will invoke `KUrlNavigator::setLocationUrl()`, which finally calls `DolphinViewContainer::setActive()` and activates the left view. Change: - Temporarily disconnect the `DolphinUrlNavigator::activated` signal to avoid activation of `DolphinViewContainer`. - Force inactivate `DolphinUrlNavigator`.
2025-10-03DolphinTabPage, DolphinView: Fix duplicate folder for MTP deviceWendi Gan
Issue: When opening an MTP device via the sidebar, Dolphin shows one "Internal shared storage" folder. However, clicking the entry again results in a duplicate folder being displayed. This regression was introduced by !865 (commit 6c7c047). Reason: The URL of an MTP device in the sidebar is `mtp:udi=/org/kde/solid/udev/sys/devices/...`. When clicking to open the MTP device, it is redirected to `mtp:/...`. - On the first click (no cache), `KCoreDirListerCache::slotUpdateResult()` calls `KCoreDirListerPrivate::emitItems()`. - On the second click (with cache), `KCoreDirListerCache::slotRedirection()` first calls `KCoreDirListerPrivate::emitItems()`. Besides, `DolphinTabPage::slotViewUrlRedirection()` calls `KCoreDirLister::openUrl()`, which triggers `CachedItemsJob::start()`, and eventually calls `KCoreDirListerPrivate::emitItems()` again. As a result, two `KCoreDirLister::itemsAdded` signals are emitted, causing `m_pendingItemsToInsert` to be appended twice. --- BUG 496414: Need to rename folder twice to make it reflect in the tab title. Reason: `m_url` is updated after emitting the `DolphinView::redirection` signal. It triggers `DolphinTabWidget::tabUrlChanged()`, which still uses the old URL and thus resets the tab title incorrectly. --- Change: - Revert the change in `DolphinTabPage::slotViewUrlRedirection()`. - Update `m_url` before `DolphinView::redirection` to fix BUG 496414. - Emit `DolphinView::urlChanged` signal to refresh the navigator of the inactive view. BUG: 506634 CCBUG: 497313 CCBUG: 496414
2025-09-26dolphinviewactionhandler: Improve text for roles actionsMéven Car
So that when those actions appear in toolbars or shortcut configuration, users can know what they correspond to.
2025-09-21dolphinview: position the focus after the last removed fileMéven Car
Previously, the code could misposition the selection after removal if the last file in the view was removed and several files were selected. And since it didn't clear the selection, the previous selection influence the selection. Instead clear the selection and position only the focus, either on the next item after the last index, or the last item still in the view if the last item was removed. BUG: 504490
2025-09-11dolphinview: add preferred sort order for rolesNathan Williams
BUG: 425457 This commit ensures that both the menu and column headers in table view will have the same default sorting (ascending/descending) for each role. It also saves the user's preferences for each role throughout the session. Previously, sorting by "Modified" would always sort by "Oldest First." If the user then changed to "Newest First" and sorted again by "Name," files would be sorted in reverse alphabetical order (Z-A). Now, sorting by "Modified" defaults to "Newest First." If a user switches between multiple roles, the default for each role will be used unless the user changes to a non-default sort order. In that case, the user's preference will be applied. Defaults: **Descending Order:** Time-based roles - modificationtime - creationtime - accesstime - deletiontime - imageDateTime - releaseYear Size/dimension roles - size - width - height - pageCount - wordCount - lineCount Quality/Quantity roles - rating - duration - bitrate - frameRate **Ascending order:** - Text based roles (A-Z) - All other roles
2025-09-03Fix several user-facing and non-user-facing typosKunda Ki
Found via `codespell -S "*.desktop,*.po,*.svg,*.xml,./po" -L aparent,childs,goup,lokal`
2025-08-26Warn when renaming a file would change its file typeKai Uwe Broulik
While the file's content won't change, applications may no longer recognize it.
2025-08-26KStandardItemListWidget: Use styleOption().iconSizeAkseli Lahtinen
We should use styleOption().iconSize instead of iconSize(), since the styleOption returns always the correct size depending on if we are showing previews or not. In DolphinItemListView we set the iconSize based on the previewSize or iconSize, and the styleOption().iconSize is whichever value it is here. KItemListWidget::iconSize always returns the settings.iconSize BUG: 508352
2025-08-19dolphinview: use QString::slice with Qt > 6.8Luc Schrijvers
QString::slice is preferable when available, as it does not allocate. Amends db92361e10f356ed0d1bf2dc7ea3453086ce876c
2025-08-17Fix Qt < 6.8 errorLuc Schrijvers
2025-07-02DolphinView: display errorMessage when copy errors occursMéven Car
when copying multiple files. CopyJob skip those by default (CopyJobPrivate::slotSubError), and emits warning. Hook this to errorMessage. We would need to improve this as only the last error Message will be visible. BUG: 506282
2025-07-02DolphinView: display errorMessage when copy errors occursMéven Car
when copying multiple files. CopyJob skip those by default (CopyJobPrivate::slotSubError), and emits warning. Hook this to errorMessage. We would need to improve this as only the last error Message will be visible. BUG: 506282
2025-06-29DolphinView: use correct slot as trashjob resultsMéven Car
When using the Delete action.
2025-06-28Add margins to the zoom menu entryGleb Kasachou
2025-06-27Combine the zoom menu entries into one LineGleb Kasachou
Replaced a KActionMenu that contained separate Zoom In, Zoom Out and Reset Zoom actions with a single QWidgetAction that provides the same functionality using three buttons arranged in a single line. Keyboard shortcuts for the three actions are preserved, and the actions still appear separately in the View submenu in the menubar.
2025-06-20New selection effectsAkseli Lahtinen
This adds a new selection effect that is similar to what we have in QtQuick file item views. There are also changes to some usability: Instead of only the icon and text being the clickable area in icon and details mode, the whole selection is now the clickable area. Otherwise the usability should stay the same, it's mostly a visual change. See also: https://invent.kde.org/teams/vdg/issues/-/issues/94
2025-06-09viewproperties: Fix leaking file descriptorsAkseli Lahtinen
File descriptors would keep leaking here since tempFile never gets deleted. This would be especially noticeable when browsing /tmp/ folder. This patch makes the QTemporaryFile an unique_ptr, so it gets deleted when it's out of scope. This also causes the files to be handled accordingly. BUG: 505215
2025-05-28dolphinview: Add a dynamic view optionVictor Blanchard
Added a 'dynamic view' option, which allows to switch from a 'compact' or 'details' view to an 'icons' view if most of the files in the directory are images or videos. It reverts to the previous view mode when we switch to a directory which doesn't meet that criteria. The view mode is only changed once so users don't have to undo that for specific folders when they don't want icon view. A setting is added in the "Display style" section of the general view setting page. BUG: 491139
2025-05-09DolphinView: Remove -1 interval, add setAutoActivationEnabledAkseli Lahtinen
In future Qt versions, Qt Timers do not allow negative intervals. Instead, they will be changed to 1. Related Qt commit: https://github.com/qt/qtbase/commit/f1f610bc67bfd5c2ef31270a6945e7bae93b5e4a Instead of relying on the interval, use a boolean variable to check if the autoactivation is enabled or not.
2025-05-02dolphinview: fix crashMéven Car
Correctly find the last element in the list instead of the one after the last Amends: 0464ea82a6850f58805bc4d6fc1df5369d83c3df BUG: 503610
2025-04-29Clazy fixMéven Car
2025-04-26DolphinView: Don't end anchored selection in updateSelectionStateAkseli Lahtinen
Do not end anchored selection when selection state is updated, such as when Dolphin is started with --select "thing.txt" flag. If we end here, and user wants to press shift to select from current item to X items, this would cause the anchored selection to start from the clicked item, not from the first selected item. BUG: 503221
2025-04-23DolphinView: If contextmenu is requested, abort twoClicksRenamingAkseli Lahtinen
When using single click to select, user can double click the file to start renaming it. If user at the same time also opens context menu, user can delete the file while the renaming prompt is open, which causes weirdness. This patch makes sure we abort the double click renaming when context menu is requested. BUG: 503185
2025-04-16Revert dd07a327 Move "Show in Groups" toggle action into Sort menuJin Liu
Now it's in the first level of the "View Settings" dropdown, no need to be nested in the "Sort" menu.
2025-04-16Add a new "view_settings" actionJin Liu
This should replace the "View Mode" button in the toolbar by default. Its dropdown menu contains more actions related to the view: zoom, sort by, show additional columns, show hidden files, grouping, show file previews. The original "view_mode" action is kept so the "Change View Mode" submenu in the main menu (or in the hamburger menu when this button is invisible) is unchanged.
2025-03-27Move "Show in Groups" toggle action into Sort menuNate Graham
This is the sort of thing a user might want to toggle temporarily, as sometimes grouping is a helpful visualization and sometimes not. Right now, doing that is easy when using the in-window menubar or the global menu: View > Show in Groups. However when using the default hamburger menu, it becomes difficult: Burger menu > More > View > Show in Groups. It's four levels of nesting and requires precision. This change addresses that by moving the action into the "Sort By" menu. This improves discoverability for people using the default UI, and makes the location of the action consistent for people using all UI styles. It also gets the item into the view context menu, where it currently isn't, providing another entry point for it.
2025-02-27dolphinview: Add widget parameter to elided QToolTip::showTextAkseli Lahtinen
Without this parameter the QToolTip can not always determine what is the parent, so it will create a toplevel window in those cases. Make sure we have dolphinview itself as a widget there, so QToolTip and thus QtWayland can resolve what is the parent. This avoids creating random windows when opening a tooltip. BUG:500009
2025-02-24Add smaller statusbar and set it as defaultAkseli Lahtinen
- Statusbar has three modes: Small, FullWidth and Disabled - FullWidth is the original statusbar - Small is the new default statusbar - This statusbar overlays on top of the items instead of taking space - It changes size according to content - Disabled turns statusbar completely off - Zoom slider and space information is only shown in full-width statusbar - Space information is now always on - If user navigates with keyboard, or scrolls to selection, the scrolling will take the statusbar into account - This makes sure the statusbar does not cover any items Related discussion: https://invent.kde.org/system/dolphin/-/issues/50
2025-02-08VersionControlObserver: start scanning earlierMéven Car
And avoid scanning directory that don't need it. Stops the working thread upon model change.
2025-02-08Viewproperties: prevent loosing view settingsMéven Car
When they match the hardcoded internal settings, when they should be kept as long as they don't match the currently set default viewproperties. Is saved in metadata the diff with the hardcoded internal defaults still. A stable default reference allows to change defaults without changing existing saved viewproperties. CCBUG: 495878
2025-02-03implement shortcut action for file creationChristian Schwarz
BUG: 462899
2025-01-30Change three view buttons into one with menu arrowAkseli Lahtinen
Instead of showing three buttons, which is quite visually noisy, show only one button that is split: First button, when clicked, loops through the view modes. Second smaller button with the down arrow shows menu of the available view modes. See also https://invent.kde.org/system/dolphin/-/issues/68#toolbar-button-changes Alternative for https://invent.kde.org/system/dolphin/-/merge_requests/893 ![Screencast_20250121_123718](/uploads/e8625c485c58a9c47e8168106b3e7419/Screencast_20250121_123718.mp4)
2025-01-17Refactor Overlay HandlingMéven Car
Now all overlays icons in kitemviews are added in KStandardItemListWidget::updatePixmapCache. data[iconOverlays] now contains icon names. DolphinFileItemListWidget::refreshCache is the sole responsible of setting the overlays either coming from KFileItemModelRolesUpdater or KVersionControlPlugin. This garantees consistency in rendering. BUG: 497372
2025-01-14ToolTipManager: double the size of the preview and use dprMéven Car
2024-12-29Mirror details view mode for right-to-left languagesFelix Ernst
This commit implements mirroring of the details view mode for right-to- left languages. This is the last of the Dolphin view modes which did not adapt to right-to-left languages correctly. Implementation-wise this is mostly about adapting the math so all the information is placed correctly no matter the view mode or layout direction. While most of the view actually changes the painting code for right-to-left languages, for the column header I decided to keep the logic left-to-right and instead reverse the order of the role columns. To implement this mirroring I needed to rework quite a bit of logic, so I used the opportunity to fix some bugs/behaviur quirks: - Left and right padding is now saved and restored separately instead of only saving the left padding - Changing the right padding no longer disables "automatic column resizing". - The grip handles for column resizing can now be grabbed when near the grip handle instead of only allowing grabbing when slightly to the left of the grip. - Role column headers now only show a hover highlight effect when the mouse cursor is actually above that role and not above the grip handle or the padding. - There is now a soft-boarder when shrinking the right padding so shrinking the padding "below zero width" will no longer immediately clear automatic resize behaviour. So now it is possible to simply remove the right padding by resizing it to zero width. BUG: 449211 BUG: 495942 # Acknowledgement This work is part of a my project funded through the NGI0 Entrust Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology.
2024-12-29Have special keyboard controls in selection modeFelix Ernst
Prior to this commit keyboard controls and behaviour of Dolphin's main view were identical no matter if selection mode was enabled or not. While selection mode makes it impossible to accidentally clear the selection by singular mouse clicks, any press of an arrow key on the keyboard would still clear the full selection which goes against selection mode's objective. Furthermore, keyboard-only users had no reason to ever enable selection mode because it made no difference to them. This commit changes this by offering a changed control scheme for key presses while in selection mode. Arrow key presses without modifier now only move focus between items but do no longer clear or change the selection. Similarly, Page Up/Down, Home, and End key presses only move keyboard focus. Enter, Return, and Space key presses now only toggle the selection for the current item. The above controls are however mostly unchanged when combining them with Modifier keys like Shift or Control. The type-ahead feature is also changed in selection mode to only move keyboard focus without changing the selection. This way keyboard users are less likely to clear their selection by mistake. Regression tests are added for these selection mode controls. The code changes to change this keyboard behaviour are quite minimal. Most of the added code is for making selection mode accessible. That's because we need to make sure the changed control scheme is properly announced and communicated or a blind user will be left utterly confused why the normal keyboard controls "stopped working". Enabling or disabling selection mode is announced to accessibility software. Furthermore whenever focus goes to the main view, the selection mode state is also mentioned when active. BUG: 458091
2024-12-19dolphinview: Update thumbnail on filename changeAkseli Lahtinen
If filename of an item was updated previously, it would modify the model before the file was actually changed. This led to the model calling a signal that would try to run a previewjob, but since the filename is not actually changed yet on disk, it would fail. This patch moves the model updating after copyjob. Copyjob will take care of the file renaming if there is already existing file. We just need to update the model correctly after the job has succeeded. BUG:497555
2024-12-16ViewProperties: Return nullptr if viewPropertiesString is emptyAkseli Lahtinen
If viewPropertiesString is empty, return a nullptr. This will later used in the stack by the defaultProperties call. In defaultProperties, if we can't find the global directory, create new one with a tempfile. If tempfiles can't be created, use default instead. This will ensure that view settings are saved and loaded correctly if user has separate view properties per folder. This will also add an unit test, where we create a global directory, modify it and make sure the changes are reflected in the unmodified folder. BUG:495878