[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdenlive/frameworks] src/bin: Keep zoom level when switching between tree view and icon view,
From:       Jean-Baptiste Mardelle <jb () kdenlive ! org>
Date:       2014-12-31 22:51:19
Message-ID: E1Y6S6p-0007gN-F6 () scm ! kde ! org
[Download RAW message or body]

Git commit 6cc0d26d00429daee39872b068f3934f76d8cb47 by Jean-Baptiste Mardelle.
Committed on 31/12/2014 at 22:51.
Pushed by mardelle into branch 'frameworks'.

Keep zoom level when switching between tree view and icon view,
and enter a folder when double clicking it (still need a way to navigate up)

M  +13   -7    src/bin/bin.cpp
M  +1    -0    src/bin/bin.h

http://commits.kde.org/kdenlive/6cc0d26d00429daee39872b068f3934f76d8cb47

diff --git a/src/bin/bin.cpp b/src/bin/bin.cpp
index 6fe0560..e4c29f2 100644
--- a/src/bin/bin.cpp
+++ b/src/bin/bin.cpp
@@ -118,12 +118,12 @@ Bin::Bin(QWidget* parent) :
     connect(m_itemModel, SIGNAL(markersNeedUpdate(QString,QList<int>)), this, \
SLOT(slotMarkersNeedUpdate(QString,QList<int>)));  
     // Zoom slider
-    QSlider *slider = new QSlider(Qt::Horizontal, this);
-    slider->setMaximumWidth(100);
-    slider->setRange(0, 10);
-    slider->setValue(4);
-    connect(slider, SIGNAL(valueChanged(int)), this, SLOT(slotSetIconSize(int)));
-    m_toolbar->addWidget(slider);
+    m_slider = new QSlider(Qt::Horizontal, this);
+    m_slider->setMaximumWidth(100);
+    m_slider->setRange(0, 10);
+    m_slider->setValue(4);
+    connect(m_slider, SIGNAL(valueChanged(int)), this, SLOT(slotSetIconSize(int)));
+    m_toolbar->addWidget(m_slider);
 
     // View type
     KSelectAction *listType = new KSelectAction(QIcon::fromTheme("view-list-tree"), \
i18n("View Mode"), this); @@ -488,7 +488,9 @@ void Bin::slotInitView(QAction *action)
     }
     m_itemView->setMouseTracking(true);
     m_itemView->viewport()->installEventFilter(m_eventEater);
-    m_itemView->setIconSize(m_iconSize);
+    QSize zoom = m_iconSize;
+    zoom = zoom * (m_slider->value() / 4.0);
+    m_itemView->setIconSize(zoom);
     m_itemView->setModel(m_proxyModel);
     m_itemView->setSelectionModel(m_proxyModel->selectionModel());
     m_splitter->addWidget(m_itemView);
@@ -598,6 +600,10 @@ void Bin::slotSwitchClipProperties(const QModelIndex &ix)
                 m_collapser->restore();
                 showClipProperties(clip);
             }
+            else if (clip->isFolder() && m_listType == BinIconView) {
+                // Double clicking on a folder enters it in icon view
+                m_itemView->setRootIndex(ix);
+            }
         }
         else m_collapser->collapse();
     }
diff --git a/src/bin/bin.h b/src/bin/bin.h
index 21f8104..1f52eb3 100644
--- a/src/bin/bin.h
+++ b/src/bin/bin.h
@@ -343,6 +343,7 @@ private:
     QByteArray m_headerInfo;
     EventEater *m_eventEater;
     QWidget *m_propertiesPanel;
+    QSlider *m_slider;
     QTableWidget *m_propertiesTable;
     KSplitterCollapserButton *m_collapser;
     Monitor *m_monitor;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic