annotate panned.h @ 248:011312e59e44

Startup fixes: * Check that Hg works before open-or-stat, and only open-or-stat if tests successful * Make multichoicedialog for open always reopen with the same choice as last time (vital when an open action is aborted and user has to enter details again) * Offer to create full path to target dir for clone if parent doesn't exist
author Chris Cannam
date Tue, 11 Jan 2011 13:56:48 +0000
parents 8fd71f570884
children
rev   line source
Chris@57 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
cannam@45 2
cannam@45 3 /*
Chris@57 4 EasyMercurial
Chris@57 5
Chris@57 6 Based on HgExplorer by Jari Korhonen
Chris@57 7 Copyright (c) 2010 Jari Korhonen
Chris@244 8 Copyright (c) 2011 Chris Cannam
Chris@244 9 Copyright (c) 2011 Queen Mary, University of London
Chris@57 10
cannam@45 11 This program is free software; you can redistribute it and/or
cannam@45 12 modify it under the terms of the GNU General Public License as
cannam@45 13 published by the Free Software Foundation; either version 2 of the
cannam@45 14 License, or (at your option) any later version. See the file
cannam@45 15 COPYING included with this distribution for more information.
cannam@45 16 */
cannam@45 17
Chris@57 18 #ifndef _PANNED_H_
Chris@57 19 #define _PANNED_H_
cannam@45 20
cannam@45 21 #include <QGraphicsView>
cannam@45 22
cannam@45 23 class QWheelEvent;
cannam@45 24 class QEvent;
Chris@168 25 class QTimer;
cannam@45 26
cannam@45 27 class Panned : public QGraphicsView
cannam@45 28 {
cannam@45 29 Q_OBJECT
cannam@45 30
cannam@45 31 public:
cannam@45 32 Panned();
cannam@45 33 virtual ~Panned() { }
cannam@45 34
Chris@133 35 virtual void setScene(QGraphicsScene *s);
Chris@133 36
cannam@45 37 signals:
cannam@45 38 void pannedRectChanged(QRectF);
cannam@45 39 void wheelEventReceived(QWheelEvent *);
cannam@45 40 void pannedContentsScrolled();
cannam@45 41 void mouseLeaves();
cannam@45 42
cannam@45 43 public slots:
cannam@45 44 void slotSetPannedRect(QRectF);
cannam@45 45 void slotEmulateWheelEvent(QWheelEvent *ev);
cannam@45 46
Chris@53 47 void zoomIn();
Chris@53 48 void zoomOut();
Chris@53 49
Chris@168 50 private slots:
Chris@168 51 void dragTimerTimeout();
Chris@168 52
cannam@45 53 protected:
cannam@45 54 QRectF m_pannedRect;
cannam@45 55
Chris@168 56 QPoint m_lastDragPos;
Chris@168 57 QPoint m_lastOrigin;
Chris@168 58 QPointF m_velocity;
Chris@168 59 bool m_dragging;
Chris@168 60 int m_dragTimerMs;
Chris@168 61 QTimer *m_dragTimer;
Chris@168 62
Chris@168 63 virtual void mousePressEvent(QMouseEvent *);
Chris@168 64 virtual void mouseMoveEvent(QMouseEvent *);
Chris@168 65 virtual void mouseReleaseEvent(QMouseEvent *);
Chris@168 66
cannam@45 67 virtual void paintEvent(QPaintEvent *);
cannam@45 68 virtual void resizeEvent(QResizeEvent *);
cannam@45 69 virtual void drawForeground(QPainter *, const QRectF &);
cannam@45 70 virtual void wheelEvent(QWheelEvent *);
cannam@45 71 virtual void leaveEvent(QEvent *);
cannam@45 72 };
cannam@45 73
cannam@45 74 #endif
cannam@45 75