From c544258484ff4fd5d2b88402fbaa5d154b89a3a2 Mon Sep 17 00:00:00 2001 From: Titta Heikkala Date: Tue, 1 Jul 2014 07:10:00 +0300 Subject: Qt Charts project file structure change Charts repository structure is changed to follow the structure of a Qt Add-On module. The task includes following changes: - All macros and definitions named 'commercial' have been renamed. - Compile errors related to QString and qSort usage have been fixed. - Old demos are moved under examples. The QML examples now support only Qt Quick 2.0, the support for Qt Quick 1 is removed. - The QML examples with multiple views are updated so that they are usable also with touch devices. - Unnecessary version checks are removed from examples. - The build stamp has been removed as it was only meant for Charts development purposes and it's no longer needed. Also development build related debug prints are removed as __DATE__ can't be used for all OS thus it doesn't make much sense. - Documentation structure has been updated based on the new module structure. The raw HTML files have been removed. Demos are combined to examples. - Unnecessary .qdocinc files are no longer needed. The content is moved to the corresponding .cpp files. - The Charts widget designer plugin is updated according to the module change. - The test cases updated according to the project structure change. Tests are added also for version 2.0. - cmake modules generation is not needed with Qt 5.4 and Qt Charts so it's disabled. - The new module name and version are updated to the plugin.qmltypes file. Task-number: QTRD-2844, QTRD-3217, QTRD-3218, QTRD-3277, QTRD-3228, QTRD-2526, QTRD-3233, QTRD-3222 Change-Id: Ib7fb26057cde710ffaf6bc780c8bf52a16f45160 Reviewed-by: Miikka Heikkinen --- demos/callout/callout.cpp | 119 -------------------------------------------- demos/callout/callout.h | 52 -------------------- demos/callout/callout.pro | 15 ------ demos/callout/main.cpp | 31 ------------ demos/callout/view.cpp | 123 ---------------------------------------------- demos/callout/view.h | 59 ---------------------- 6 files changed, 399 deletions(-) delete mode 100644 demos/callout/callout.cpp delete mode 100644 demos/callout/callout.h delete mode 100644 demos/callout/callout.pro delete mode 100644 demos/callout/main.cpp delete mode 100644 demos/callout/view.cpp delete mode 100644 demos/callout/view.h (limited to 'demos/callout') 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 -#include -#include -#include - -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 -#include - -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 -#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 -#include -#include -#include -#include -#include -#include "callout.h" -#include - -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(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 -#include - -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 -- cgit v1.2.3