diff src/dateitem.cpp @ 370:b9c153e00e84

Move source files to src/
author Chris Cannam
date Thu, 24 Mar 2011 10:27:51 +0000
parents dateitem.cpp@8fd71f570884
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/dateitem.cpp	Thu Mar 24 10:27:51 2011 +0000
@@ -0,0 +1,91 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    EasyMercurial
+
+    Based on HgExplorer by Jari Korhonen
+    Copyright (c) 2010 Jari Korhonen
+    Copyright (c) 2011 Chris Cannam
+    Copyright (c) 2011 Queen Mary, University of London
+    
+    This program is free software; you can redistribute it and/or
+    modify it under the terms of the GNU General Public License as
+    published by the Free Software Foundation; either version 2 of the
+    License, or (at your option) any later version.  See the file
+    COPYING included with this distribution for more information.
+*/
+
+#include "dateitem.h"
+
+#include "debug.h"
+
+#include <QPainter>
+#include <QBrush>
+#include <QFont>
+#include <QGraphicsSceneMouseEvent>
+
+DateItem::DateItem() :
+    m_minrow(0), m_maxrow(0),
+    m_mincol(0), m_maxcol(0),
+    m_even(false)
+{
+}
+
+void
+DateItem::setRows(int minrow, int n)
+{
+    m_minrow = minrow;
+    m_maxrow = minrow + n - 1;
+    setY(m_minrow * 90);
+}
+
+void
+DateItem::setCols(int mincol, int n)
+{
+    m_mincol = mincol;
+    m_maxcol = mincol + n - 1;
+    setX(m_mincol * 100);
+}
+
+void
+DateItem::mousePressEvent(QGraphicsSceneMouseEvent *e)
+{
+    DEBUG << "DateItem::mousePressEvent" << endl;
+    if (e->button() == Qt::LeftButton) {
+        emit clicked();
+    }
+    e->ignore();
+}
+
+QRectF
+DateItem::boundingRect() const
+{
+    return QRectF(-75, -25,
+		  (m_maxcol - m_mincol + 1) * 100 + 100,
+		  (m_maxrow - m_minrow + 1) * 90).normalized();
+}
+
+void
+DateItem::paint(QPainter *paint, const QStyleOptionGraphicsItem *opt, QWidget *w)
+{
+    QBrush brush;
+
+    if (m_even) {
+	QColor c(QColor::fromRgb(240, 240, 240));
+	brush = QBrush(c);
+    } else {
+	QColor c(QColor::fromRgb(250, 250, 250));
+	brush = QBrush(c);
+    }
+
+    paint->fillRect(boundingRect(), brush);
+
+    paint->save();
+    QFont f(paint->font());
+    f.setBold(true);
+    paint->setFont(f);
+    paint->drawText(-70, -10, m_dateString);
+    paint->restore();
+}
+
+