]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Add Reset Zoom Level action inside View menu
authorNate Graham <nate@kde.org>
Sun, 1 Sep 2019 15:29:00 +0000 (09:29 -0600)
committerNate Graham <nate@kde.org>
Tue, 10 Sep 2019 13:09:33 +0000 (07:09 -0600)
Summary:
FEATURE: 409591
FIXED-IN: 19.12.0

Test Plan: {F7096397}

Reviewers: elvisangelaccio, shubham, #dolphin

Reviewed By: elvisangelaccio, #dolphin

Subscribers: broulik, cfeck, kfm-devel, kde-doc-english

Tags: #dolphin, #documentation

Differential Revision: https://phabricator.kde.org/D22444

doc/index.docbook
src/dolphinmainwindow.cpp
src/dolphinui.rc
src/views/dolphinview.cpp
src/views/dolphinview.h
src/views/dolphinviewactionhandler.cpp
src/views/dolphinviewactionhandler.h

index f2b5c70a37183746cfc50a02dfeab25d782817d3..d5363f2c50b8183ed8c8ddc9ca3e45ce96d0ca86 100644 (file)
@@ -1758,6 +1758,17 @@ Selects all unselected items and deselects all selected items in the current fol
 <listitem><para><action>Decreases the size of icons in the view.</action></para></listitem>
 </varlistentry>
 
+<varlistentry>
+<term><menuchoice>
+<shortcut>
+<keycombo action="simul">&Ctrl;<keycap>0</keycap></keycombo>
+</shortcut>
+<guimenu>View</guimenu>
+<guimenuitem>Zoom Reset</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Resets the size of icons in the view to default.</action></para></listitem>
+</varlistentry>
+
 <varlistentry>
 <term><menuchoice>
 <guimenu>View</guimenu>
index 87d041b873d1c243be35f5f1177899dc8158a999..ec42d33f71adc50ad699ce7300b8e24c4f91cb00 100644 (file)
@@ -1016,6 +1016,7 @@ void DolphinMainWindow::updateControlMenu()
     // Add "View" actions
     if (!GeneralSettings::showZoomSlider()) {
         addActionToMenu(ac->action(KStandardAction::name(KStandardAction::ZoomIn)), menu);
+        addActionToMenu(ac->action(QStringLiteral("view_zoom_reset")), menu);
         addActionToMenu(ac->action(KStandardAction::name(KStandardAction::ZoomOut)), menu);
         menu->addSeparator();
     }
index 754670a7ef32827d74cc68b8005f7b989f319f83..d52e64edb7c51be3b8439afa9c6f60ee3b0f145c 100644 (file)
@@ -1,5 +1,5 @@
 <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui name="dolphin" version="25">
+<kpartgui name="dolphin" version="26">
     <MenuBar>
         <Menu name="file">
             <Action name="new_menu" />
             <Action name="invert_selection" />
         </Menu>
         <Menu name="view">
+            <Action name="view_zoom_in"/>
+            <Action name="view_zoom_reset"/>
+            <Action name="view_zoom_out"/>
+            <Separator/>
             <Action name="sort" />
             <Action name="view_mode" />
             <Action name="additional_info" />
         <Action priority="0" name="compact"/>
         <Action priority="0" name="details"/>
         <Action priority="0" name="view_zoom_in"/>
+        <Action priority="0" name="view_zoom_reset"/>
         <Action priority="0" name="view_zoom_out"/>
         <Action priority="0" name="edit_cut"/>
         <Action priority="0" name="edit_copy"/>
index e6b232dcc14ed1d0f7a153f2bffa9d369b485a98..3597a2aa4422b22b47ca90f883e5c3f2d2daa82c 100644 (file)
@@ -66,6 +66,7 @@
 #include <QPixmapCache>
 #include <QPointer>
 #include <QScrollBar>
+#include <QSize>
 #include <QTimer>
 #include <QVBoxLayout>
 
@@ -1338,6 +1339,20 @@ QUrl DolphinView::openItemAsFolderUrl(const KFileItem& item, const bool browseTh
     return QUrl();
 }
 
+void DolphinView::resetZoomLevel()
+{
+    ViewModeSettings::ViewMode mode;
+
+    switch (m_mode) {
+    case IconsView:     mode = ViewModeSettings::IconsMode;   break;
+    case CompactView:   mode = ViewModeSettings::CompactMode; break;
+    case DetailsView:   mode = ViewModeSettings::DetailsMode; break;
+    }
+    const ViewModeSettings settings(mode);
+    const QSize iconSize = QSize(settings.iconSize(), settings.iconSize());
+    setZoomLevel(ZoomLevelInfo::zoomLevelForIconSize(iconSize));
+}
+
 void DolphinView::observeCreatedItem(const QUrl& url)
 {
     if (m_active) {
index a4da92f2db317250dbe81b368781a2d78a3a6999..ba38d323479a57c54c7b8f9fc31c674d3422e5e7 100644 (file)
@@ -196,6 +196,11 @@ public:
     void setZoomLevel(int level);
     int zoomLevel() const;
 
+    /**
+     * Resets the view's icon size to the default value
+     */
+    void resetZoomLevel();
+
     void setSortRole(const QByteArray& role);
     QByteArray sortRole() const;
 
index 4aa59911be8d85a2bdc32bfa4f5f1d96d89b9372..a520d7e5303c5e1ba3f5e9e49dc388d084058dad 100644 (file)
@@ -188,6 +188,14 @@ void DolphinViewActionHandler::createActions()
                             m_actionCollection);
     zoomInAction->setWhatsThis(i18nc("@info:whatsthis zoom in", "This increases the icon size."));
 
+    QAction* zoomResetAction = m_actionCollection->addAction(QStringLiteral("view_zoom_reset"));
+    zoomResetAction->setText(i18nc("@action:inmenu View", "Reset Zoom Level"));
+    zoomResetAction->setToolTip(i18n("Zoom To Default"));
+    zoomResetAction->setWhatsThis(i18nc("@info:whatsthis zoom reset", "This resets the icon size to default."));
+    zoomResetAction->setIcon(QIcon::fromTheme(QStringLiteral("zoom-original")));
+    m_actionCollection->setDefaultShortcuts(zoomResetAction, {Qt::CTRL + Qt::Key_0});
+    connect(zoomResetAction, &QAction::triggered, this, &DolphinViewActionHandler::zoomReset);
+
     QAction* zoomOutAction = KStandardAction::zoomOut(this,
                              &DolphinViewActionHandler::zoomOut,
                              m_actionCollection);
@@ -391,7 +399,7 @@ void DolphinViewActionHandler::slotPreviewsShownChanged(bool shown)
 {
     Q_UNUSED(shown);
     // It is not enough to update the 'Show Preview' action, also
-    // the 'Zoom In' and 'Zoom Out' actions must be adapted.
+    // the 'Zoom In', 'Zoom Out' and 'Zoom Reset' actions must be adapted.
     updateViewActions();
 }
 
@@ -454,6 +462,12 @@ void DolphinViewActionHandler::zoomOut()
     updateViewActions();
 }
 
+void DolphinViewActionHandler::zoomReset()
+{
+    m_currentView->resetZoomLevel();
+    updateViewActions();
+}
+
 void DolphinViewActionHandler::toggleSortFoldersFirst()
 {
     const bool sortFirst = m_currentView->sortFoldersFirst();
index 7d675b7d493960cea39aa770173be2169f535957..f931b3b9c5556efd38fcba2b034611f4d4718dd5 100644 (file)
@@ -131,6 +131,9 @@ private Q_SLOTS:
 
     /** Decreases the size of the current set view mode. */
     void zoomOut();
+    
+    /** Resets the size of the current set view mode to default. */
+    void zoomReset();
 
     /** Switches between a separate sorting and a mixed sorting of files and folders. */
     void toggleSortFoldersFirst();