summaryrefslogtreecommitdiffstats
path: root/demos/callout
diff options
context:
space:
mode:
Diffstat (limited to 'demos/callout')
-rw-r--r--demos/callout/callout.cpp119
-rw-r--r--demos/callout/callout.h52
-rw-r--r--demos/callout/callout.pro15
-rw-r--r--demos/callout/main.cpp31
-rw-r--r--demos/callout/view.cpp123
-rw-r--r--demos/callout/view.h59
6 files changed, 0 insertions, 399 deletions
diff --git a/demos/callout/callout.cpp b/demos/callout/callout.cpp
deleted file mode 100644
index 2491368f..00000000
--- a/demos/callout/callout.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the Qt Enterprise Charts Add-on.
-**
-** $QT_BEGIN_LICENSE$
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "callout.h"
-#include <QPainter>
-#include <QFontMetrics>
-#include <QGraphicsSceneMouseEvent>
-#include <QMouseEvent>
-
-Callout::Callout(QGraphicsItem * parent):
- QGraphicsItem(parent)
-{
-}
-
-QRectF Callout::boundingRect() const
-{
- QPointF anchor = mapFromParent(m_anchor);
- QRectF rect;
- rect.setLeft(qMin(m_rect.left(), anchor.x()));
- rect.setRight(qMax(m_rect.right(), anchor.x()));
- rect.setTop(qMin(m_rect.top(), anchor.y()));
- rect.setBottom(qMax(m_rect.bottom(), anchor.y()));
- return rect;
-}
-
-void Callout::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
-{
- Q_UNUSED(option)
- Q_UNUSED(widget)
- QPainterPath path;
- path.addRoundedRect(m_rect, 5, 5);
-
- QPointF anchor = mapFromParent(m_anchor);
- if (!m_rect.contains(anchor)) {
- QPointF point1, point2;
-
- // establish the position of the anchor point in relation to m_rect
- bool above = anchor.y() <= m_rect.top();
- bool aboveCenter = anchor.y() > m_rect.top() && anchor.y() <= m_rect.center().y();
- bool belowCenter = anchor.y() > m_rect.center().y() && anchor.y() <= m_rect.bottom();
- bool below = anchor.y() > m_rect.bottom();
-
- bool onLeft = anchor.x() <= m_rect.left();
- bool leftOfCenter = anchor.x() > m_rect.left() && anchor.x() <= m_rect.center().x();
- bool rightOfCenter = anchor.x() > m_rect.center().x() && anchor.x() <= m_rect.right();
- bool onRight = anchor.x() > m_rect.right();
-
- // get the nearest m_rect corner.
- qreal x = (onRight + rightOfCenter) * m_rect.width();
- qreal y = (below + belowCenter) * m_rect.height();
- bool cornerCase = (above && onLeft) || (above && onRight) || (below && onLeft) || (below && onRight);
- bool vertical = qAbs(anchor.x() - x) > qAbs(anchor.y() - y);
-
- qreal x1 = x + leftOfCenter * 10 - rightOfCenter * 20 + cornerCase * !vertical * (onLeft * 10 - onRight * 20);
- qreal y1 = y + aboveCenter * 10 - belowCenter * 20 + cornerCase * vertical * (above * 10 - below * 20);;
- point1.setX(x1);
- point1.setY(y1);
-
- qreal x2 = x + leftOfCenter * 20 - rightOfCenter * 10 + cornerCase * !vertical * (onLeft * 20 - onRight * 10);;
- qreal y2 = y + aboveCenter * 20 - belowCenter * 10 + cornerCase * vertical * (above * 20 - below * 10);;
- point2.setX(x2);
- point2.setY(y2);
-
- path.moveTo(point1);
- path.lineTo(mapFromParent(m_anchor));
- path.lineTo(point2);
- path = path.simplified();
- }
- painter->setBrush(QColor(255, 255, 255));
- painter->drawPath(path);
- painter->drawText(m_textRect, m_text);
-}
-
-void Callout::mousePressEvent(QGraphicsSceneMouseEvent *event)
-{
- event->setAccepted(true);
-}
-
-void Callout::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
-{
- if (event->buttons() & Qt::LeftButton){
- setPos(mapToParent(event->pos() - event->buttonDownPos(Qt::LeftButton)));
- event->setAccepted(true);
- } else {
- event->setAccepted(false);
- }
-}
-
-void Callout::setText(const QString &text)
-{
- m_text = text;
- QFontMetrics metrics(m_font);
- m_textRect = metrics.boundingRect(QRect(0, 0, 150, 150), Qt::AlignLeft, m_text);
- m_textRect.translate(5, 5);
- prepareGeometryChange();
- m_rect = m_textRect.adjusted(-5, -5, 5, 5);
-}
-
-void Callout::setAnchor(QPointF point)
-{
- m_anchor = point;
-}
diff --git a/demos/callout/callout.h b/demos/callout/callout.h
deleted file mode 100644
index 23fc8484..00000000
--- a/demos/callout/callout.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the Qt Enterprise Charts Add-on.
-**
-** $QT_BEGIN_LICENSE$
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef CALLOUT_H
-#define CALLOUT_H
-
-#include <QGraphicsItem>
-#include <QFont>
-
-class QGraphicsSceneMouseEvent;
-
-class Callout : public QGraphicsItem
-{
-public:
- Callout(QGraphicsItem * parent = 0);
-
- void setText(const QString &text);
- void setAnchor(QPointF point);
-
- QRectF boundingRect() const;
- void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,QWidget *widget);
-
-protected:
- void mousePressEvent(QGraphicsSceneMouseEvent *event);
- void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
-
-private:
- QString m_text;
- QRectF m_textRect;
- QRectF m_rect;
- QPointF m_anchor;
- QFont m_font;
-};
-
-#endif // CALLOUT_H
diff --git a/demos/callout/callout.pro b/demos/callout/callout.pro
deleted file mode 100644
index ebe7b466..00000000
--- a/demos/callout/callout.pro
+++ /dev/null
@@ -1,15 +0,0 @@
-!include( ../demos.pri ) {
- error( "Couldn't find the examples.pri file!" )
-}
-
-TARGET = callout
-TEMPLATE = app
-
-SOURCES += \
- main.cpp\
- callout.cpp \
- view.cpp
-
-HEADERS += \
- callout.h \
- view.h
diff --git a/demos/callout/main.cpp b/demos/callout/main.cpp
deleted file mode 100644
index a6dfc2e9..00000000
--- a/demos/callout/main.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the Qt Enterprise Charts Add-on.
-**
-** $QT_BEGIN_LICENSE$
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QApplication>
-#include "view.h"
-
-int main(int argc, char *argv[])
-{
- QApplication a(argc, argv);
- View w;
- w.show();
-
- return a.exec();
-}
diff --git a/demos/callout/view.cpp b/demos/callout/view.cpp
deleted file mode 100644
index a7c43863..00000000
--- a/demos/callout/view.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-/****************************************************************************
- **
- ** Copyright (C) 2014 Digia Plc
- ** All rights reserved.
- ** For any questions to Digia, please use contact form at http://qt.digia.com
- **
- ** This file is part of the Qt Enterprise Charts Add-on.
- **
- ** $QT_BEGIN_LICENSE$
- ** Licensees holding valid Qt Enterprise licenses may use this file in
- ** accordance with the Qt Enterprise License Agreement provided with the
- ** Software or, alternatively, in accordance with the terms contained in
- ** a written agreement between you and Digia.
- **
- ** If you have questions regarding the use of this file, please use
- ** contact form at http://qt.digia.com
- ** $QT_END_LICENSE$
- **
- ****************************************************************************/
-
-#include "view.h"
-#include <QResizeEvent>
-#include <QGraphicsScene>
-#include <QChart>
-#include <QLineSeries>
-#include <QSplineSeries>
-#include <QGraphicsTextItem>
-#include "callout.h"
-#include <QMouseEvent>
-
-View::View(QWidget *parent)
- : QGraphicsView(new QGraphicsScene, parent),
- m_coordX(0),
- m_coordY(0),
- m_chart(0),
- m_tooltip(0)
-{
- setDragMode(QGraphicsView::NoDrag);
- setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
-
- // chart
- m_chart = new QChart;
- m_chart->setMinimumSize(640, 480);
- m_chart->setTitle("Hover the line to show callout. Click the line to make it stay");
- m_chart->legend()->hide();
- QLineSeries *series = new QLineSeries;
- series->append(1, 3);
- series->append(4, 5);
- series->append(5, 4.5);
- series->append(7, 1);
- series->append(11, 2);
- m_chart->addSeries(series);
-
- QSplineSeries *series2 = new QSplineSeries;
- series2->append(1.6, 1.4);
- series2->append(2.4, 3.5);
- series2->append(3.7, 2.5);
- series2->append(7, 4);
- series2->append(10, 2);
- m_chart->addSeries(series2);
-
- m_chart->createDefaultAxes();
- m_chart->setAcceptHoverEvents(true);
-
- setRenderHint(QPainter::Antialiasing);
- scene()->addItem(m_chart);
-
- m_coordX = new QGraphicsSimpleTextItem(m_chart);
- m_coordX->setPos(m_chart->size().width()/2 - 50, m_chart->size().height());
- m_coordX->setText("X: ");
- m_coordY = new QGraphicsSimpleTextItem(m_chart);
- m_coordY->setPos(m_chart->size().width()/2 + 50, m_chart->size().height());
- m_coordY->setText("Y: ");
-
- connect(series, SIGNAL(clicked(QPointF)), this, SLOT(keepCallout()));
- connect(series, SIGNAL(hovered(QPointF, bool)), this, SLOT(tooltip(QPointF,bool)));
-
- connect(series2, SIGNAL(clicked(QPointF)), this, SLOT(keepCallout()));
- connect(series2, SIGNAL(hovered(QPointF, bool)), this, SLOT(tooltip(QPointF,bool)));
-
- this->setMouseTracking(true);
-}
-
-void View::resizeEvent(QResizeEvent *event)
-{
- if (scene()) {
- scene()->setSceneRect(QRect(QPoint(0, 0), event->size()));
- m_chart->resize(event->size());
- m_coordX->setPos(m_chart->size().width()/2 - 50, m_chart->size().height() - 20);
- m_coordY->setPos(m_chart->size().width()/2 + 50, m_chart->size().height() - 20);
- }
- QGraphicsView::resizeEvent(event);
-}
-
-void View::mouseMoveEvent(QMouseEvent *event)
-{
- m_coordX->setText(QString("X: %1").arg(m_chart->mapToValue(event->pos()).x()));
- m_coordY->setText(QString("Y: %1").arg(m_chart->mapToValue(event->pos()).y()));
- QGraphicsView::mouseMoveEvent(event);
-}
-
-void View::keepCallout()
-{
- m_tooltip = new Callout(m_chart);
-}
-
-void View::tooltip(QPointF point, bool state)
-{
- if (m_tooltip == 0)
- m_tooltip = new Callout(m_chart);
-
- if (state) {
- m_tooltip->setText(QString("X: %1 \nY: %2 ").arg(point.x()).arg(point.y()));
- QXYSeries *series = qobject_cast<QXYSeries *>(sender());
- m_tooltip->setAnchor(m_chart->mapToPosition(point, series));
- m_tooltip->setPos(m_chart->mapToPosition(point, series) + QPoint(10, -50));
- m_tooltip->setZValue(11);
- m_tooltip->show();
- } else {
- m_tooltip->hide();
- }
-}
diff --git a/demos/callout/view.h b/demos/callout/view.h
deleted file mode 100644
index 384e8a89..00000000
--- a/demos/callout/view.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc
-** All rights reserved.
-** For any questions to Digia, please use contact form at http://qt.digia.com
-**
-** This file is part of the Qt Enterprise Charts Add-on.
-**
-** $QT_BEGIN_LICENSE$
-** Licensees holding valid Qt Enterprise licenses may use this file in
-** accordance with the Qt Enterprise License Agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia.
-**
-** If you have questions regarding the use of this file, please use
-** contact form at http://qt.digia.com
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef VIEW_H
-#define VIEW_H
-#include <QGraphicsView>
-#include <QChartGlobal>
-
-QTCOMMERCIALCHART_BEGIN_NAMESPACE
-class QChart;
-QTCOMMERCIALCHART_END_NAMESPACE
-
-class QGraphicsScene;
-class QResizeEvent;
-class Callout;
-class QMouseEvent;
-
-QTCOMMERCIALCHART_USE_NAMESPACE
-
-class View: public QGraphicsView
-{
- Q_OBJECT
-
-public:
- View(QWidget *parent = 0);
-
-protected:
- void resizeEvent(QResizeEvent *event);
- void mouseMoveEvent(QMouseEvent *event);
-
-public slots:
- void keepCallout();
- void tooltip(QPointF point, bool state);
-
-private:
- QGraphicsSimpleTextItem *m_coordX;
- QGraphicsSimpleTextItem *m_coordY;
- QChart *m_chart;
- Callout *m_tooltip;
-};
-
-#endif