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

List:       kde-commits
Subject:    KDE/kdegraphics/gwenview
From:       Aurélien Gâteau <agateau () kde ! org>
Date:       2010-10-25 23:03:17
Message-ID: 20101025230317.2CE17AC89A () svn ! kde ! org
[Download RAW message or body]

SVN commit 1189793 by gateau:

Zoom thumbnails when holding mouse wheel

BUG:219124

 M  +2 -0      app/thumbnailviewpanel.cpp  
 M  +4 -3      lib/thumbnailview/thumbnailslider.cpp  
 M  +8 -0      lib/thumbnailview/thumbnailview.cpp  
 M  +4 -0      lib/thumbnailview/thumbnailview.h  


--- trunk/KDE/kdegraphics/gwenview/app/thumbnailviewpanel.cpp #1189792:1189793
@@ -100,6 +100,8 @@
 		// Thumbnail slider
 		QObject::connect(mThumbnailSlider, SIGNAL(valueChanged(int)),
 			mThumbnailView, SLOT(setThumbnailSize(int)));
+		QObject::connect(mThumbnailView, SIGNAL(thumbnailSizeChanged(int)),
+			mThumbnailSlider, SLOT(setValue(int)));
 	}
 
 	void setupActions(KActionCollection* actionCollection) {
--- trunk/KDE/kdegraphics/gwenview/lib/thumbnailview/thumbnailslider.cpp #1189792:1189793
@@ -21,14 +21,15 @@
 // Self
 #include "thumbnailslider.moc"
 
+// Local
+#include <thumbnailview/thumbnailview.h>
+
 // Qt
 #include <QSlider>
 #include <QToolTip>
 
 // KDE
 
-// Local
-
 namespace Gwenview {
 
 
@@ -41,7 +42,7 @@
 , d(new ThumbnailSliderPrivate) {
 	connect(slider(), SIGNAL(actionTriggered(int)),
 		SLOT(slotActionTriggered(int)) );
-	slider()->setRange(48, 256);
+	slider()->setRange(ThumbnailView::MinThumbnailSize, ThumbnailView::MaxThumbnailSize);
 }
 
 
--- trunk/KDE/kdegraphics/gwenview/lib/thumbnailview/thumbnailview.cpp #1189792:1189793
@@ -66,6 +66,8 @@
 const int DRAG_THUMB_SIZE = KIconLoader::SizeHuge;
 const int DRAG_THUMB_SPACING = 4;
 
+const int WHEEL_ZOOM_MULTIPLIER = 4;
+
 static KFileItem fileItemForIndex(const QModelIndex& index) {
 	if (!index.isValid()) {
 		LOG("Invalid index");
@@ -689,8 +691,14 @@
 	// For some reason it is necessary to set the step here: setting it in
 	// setThumbnailSize() does not work
 	//verticalScrollBar()->setSingleStep(d->mThumbnailSize / 5);
+	if (event->modifiers() == Qt::ControlModifier) {
+		int size = d->mThumbnailSize + (event->delta() > 0 ? 1 : -1) * WHEEL_ZOOM_MULTIPLIER;
+		size = qMax(int(MinThumbnailSize), qMin(size, int(MaxThumbnailSize)));
+		setThumbnailSize(size);
+	} else {
 	QListView::wheelEvent(event);
 }
+}
 
 
 void ThumbnailView::scrollToSelectedIndex() {
--- trunk/KDE/kdegraphics/gwenview/lib/thumbnailview/thumbnailview.h #1189792:1189793
@@ -43,6 +43,10 @@
 class GWENVIEWLIB_EXPORT ThumbnailView : public QListView {
 	Q_OBJECT
 public:
+	enum {
+		MinThumbnailSize = 48,
+		MaxThumbnailSize = 256
+	};
 	ThumbnailView(QWidget* parent);
 	~ThumbnailView();
 
[prev in list] [next in list] [prev in thread] [next in thread] 

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