@@ -0,0 +1,36 | |||||
|
1 | /**************************************************************************** | |||
|
2 | ** | |||
|
3 | ** Copyright (C) 2012 Digia Plc | |||
|
4 | ** All rights reserved. | |||
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |||
|
6 | ** | |||
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |||
|
8 | ** | |||
|
9 | ** $QT_BEGIN_LICENSE$ | |||
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |||
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |||
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |||
|
13 | ** a written agreement between you and Digia. | |||
|
14 | ** | |||
|
15 | ** If you have questions regarding the use of this file, please use | |||
|
16 | ** contact form at http://qt.digia.com | |||
|
17 | ** $QT_END_LICENSE$ | |||
|
18 | ** | |||
|
19 | ****************************************************************************/ | |||
|
20 | ||||
|
21 | #include <QtGui/QApplication> | |||
|
22 | #include <QDeclarativeEngine> | |||
|
23 | #include "qmlapplicationviewer.h" | |||
|
24 | ||||
|
25 | Q_DECL_EXPORT int main(int argc, char *argv[]) | |||
|
26 | { | |||
|
27 | QScopedPointer<QApplication> app(createApplication(argc, argv)); | |||
|
28 | QScopedPointer<QmlApplicationViewer> viewer(QmlApplicationViewer::create()); | |||
|
29 | ||||
|
30 | viewer->setOrientation(QmlApplicationViewer::ScreenOrientationAuto); | |||
|
31 | viewer->setSource(QUrl("qrc:/qml/qmlaxes/loader.qml")); | |||
|
32 | viewer->setRenderHint(QPainter::Antialiasing, true); | |||
|
33 | viewer->showExpanded(); | |||
|
34 | ||||
|
35 | return app->exec(); | |||
|
36 | } |
@@ -0,0 +1,67 | |||||
|
1 | /**************************************************************************** | |||
|
2 | ** | |||
|
3 | ** Copyright (C) 2012 Digia Plc | |||
|
4 | ** All rights reserved. | |||
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |||
|
6 | ** | |||
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |||
|
8 | ** | |||
|
9 | ** $QT_BEGIN_LICENSE$ | |||
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |||
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |||
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |||
|
13 | ** a written agreement between you and Digia. | |||
|
14 | ** | |||
|
15 | ** If you have questions regarding the use of this file, please use | |||
|
16 | ** contact form at http://qt.digia.com | |||
|
17 | ** $QT_END_LICENSE$ | |||
|
18 | ** | |||
|
19 | ****************************************************************************/ | |||
|
20 | ||||
|
21 | import QtQuick 1.0 | |||
|
22 | import QtCommercial.Chart 1.1 | |||
|
23 | ||||
|
24 | Rectangle { | |||
|
25 | anchors.fill: parent | |||
|
26 | ||||
|
27 | //![1] | |||
|
28 | ChartView { | |||
|
29 | title: "Two Series, Common Axes" | |||
|
30 | anchors.fill: parent | |||
|
31 | legend.visible: false | |||
|
32 | ||||
|
33 | ValueAxis { | |||
|
34 | id: axisX | |||
|
35 | min: 0 | |||
|
36 | max: 10 | |||
|
37 | tickCount: 5 | |||
|
38 | } | |||
|
39 | ||||
|
40 | ValueAxis { | |||
|
41 | id: axisY | |||
|
42 | min: -0.5 | |||
|
43 | max: 1.5 | |||
|
44 | } | |||
|
45 | ||||
|
46 | LineSeries { | |||
|
47 | id: series1 | |||
|
48 | axisX: axisX | |||
|
49 | axisY: axisY | |||
|
50 | } | |||
|
51 | ||||
|
52 | ScatterSeries { | |||
|
53 | id: series2 | |||
|
54 | axisX: axisX | |||
|
55 | axisY: axisY | |||
|
56 | } | |||
|
57 | } | |||
|
58 | ||||
|
59 | // Add data dynamically to the series | |||
|
60 | Component.onCompleted: { | |||
|
61 | for (var i = 0; i <= 10; i++) { | |||
|
62 | series1.append(i, Math.random()); | |||
|
63 | series2.append(i, Math.random()); | |||
|
64 | } | |||
|
65 | } | |||
|
66 | //![1] | |||
|
67 | } |
@@ -0,0 +1,59 | |||||
|
1 | /**************************************************************************** | |||
|
2 | ** | |||
|
3 | ** Copyright (C) 2012 Digia Plc | |||
|
4 | ** All rights reserved. | |||
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |||
|
6 | ** | |||
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |||
|
8 | ** | |||
|
9 | ** $QT_BEGIN_LICENSE$ | |||
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |||
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |||
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |||
|
13 | ** a written agreement between you and Digia. | |||
|
14 | ** | |||
|
15 | ** If you have questions regarding the use of this file, please use | |||
|
16 | ** contact form at http://qt.digia.com | |||
|
17 | ** $QT_END_LICENSE$ | |||
|
18 | ** | |||
|
19 | ****************************************************************************/ | |||
|
20 | ||||
|
21 | import QtQuick 1.0 | |||
|
22 | import QtCommercial.Chart 1.1 | |||
|
23 | ||||
|
24 | Rectangle { | |||
|
25 | anchors.fill: parent | |||
|
26 | ||||
|
27 | //![1] | |||
|
28 | ChartView { | |||
|
29 | title: "Accurate Historical Data" | |||
|
30 | anchors.fill: parent | |||
|
31 | legend.visible: false | |||
|
32 | ||||
|
33 | LineSeries { | |||
|
34 | axisX: DateTimeAxis { | |||
|
35 | format: "yyyy MMM" | |||
|
36 | tickCount: 5 | |||
|
37 | } | |||
|
38 | axisY: ValueAxis { | |||
|
39 | min: 0 | |||
|
40 | max: 150 | |||
|
41 | } | |||
|
42 | ||||
|
43 | // Please note that month in JavaScript months are zero based, so 2 means March | |||
|
44 | XYPoint { x: toMsecsSinceEpoch(new Date(1950, 2, 15)); y: 5 } | |||
|
45 | XYPoint { x: toMsecsSinceEpoch(new Date(1970, 0, 1)); y: 50 } | |||
|
46 | XYPoint { x: toMsecsSinceEpoch(new Date(1987, 12, 31)); y: 102 } | |||
|
47 | XYPoint { x: toMsecsSinceEpoch(new Date(1998, 7, 1)); y: 100 } | |||
|
48 | XYPoint { x: toMsecsSinceEpoch(new Date(2012, 8, 2)); y: 110 } | |||
|
49 | } | |||
|
50 | } | |||
|
51 | ||||
|
52 | // DateTimeAxis is based on QDateTimes so we must convert our JavaScript dates to | |||
|
53 | // milliseconds since epoch to make them match the DateTimeAxis values | |||
|
54 | function toMsecsSinceEpoch(date) { | |||
|
55 | var msecs = date.getTime(); | |||
|
56 | return msecs; | |||
|
57 | } | |||
|
58 | //![1] | |||
|
59 | } |
@@ -0,0 +1,67 | |||||
|
1 | /**************************************************************************** | |||
|
2 | ** | |||
|
3 | ** Copyright (C) 2012 Digia Plc | |||
|
4 | ** All rights reserved. | |||
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |||
|
6 | ** | |||
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |||
|
8 | ** | |||
|
9 | ** $QT_BEGIN_LICENSE$ | |||
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |||
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |||
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |||
|
13 | ** a written agreement between you and Digia. | |||
|
14 | ** | |||
|
15 | ** If you have questions regarding the use of this file, please use | |||
|
16 | ** contact form at http://qt.digia.com | |||
|
17 | ** $QT_END_LICENSE$ | |||
|
18 | ** | |||
|
19 | ****************************************************************************/ | |||
|
20 | ||||
|
21 | import QtQuick 1.0 | |||
|
22 | import QtCommercial.Chart 1.1 | |||
|
23 | ||||
|
24 | Rectangle { | |||
|
25 | anchors.fill: parent | |||
|
26 | ||||
|
27 | //![1] | |||
|
28 | ChartView { | |||
|
29 | title: "Numerical Data for Dummies" | |||
|
30 | anchors.fill: parent | |||
|
31 | legend.visible: false | |||
|
32 | ||||
|
33 | LineSeries { | |||
|
34 | axisY: CategoryAxis { | |||
|
35 | min: 0 | |||
|
36 | max: 30 | |||
|
37 | CategoryRange { | |||
|
38 | label: "critical" | |||
|
39 | endValue: 2 | |||
|
40 | } | |||
|
41 | CategoryRange { | |||
|
42 | label: "low" | |||
|
43 | endValue: 4 | |||
|
44 | } | |||
|
45 | CategoryRange { | |||
|
46 | label: "normal" | |||
|
47 | endValue: 7 | |||
|
48 | } | |||
|
49 | CategoryRange { | |||
|
50 | label: "high" | |||
|
51 | endValue: 15 | |||
|
52 | } | |||
|
53 | CategoryRange { | |||
|
54 | label: "extremely high" | |||
|
55 | endValue: 30 | |||
|
56 | } | |||
|
57 | } | |||
|
58 | ||||
|
59 | XYPoint { x: 0; y: 4.3 } | |||
|
60 | XYPoint { x: 1; y: 4.1 } | |||
|
61 | XYPoint { x: 2; y: 4.7 } | |||
|
62 | XYPoint { x: 3; y: 3.9 } | |||
|
63 | XYPoint { x: 4; y: 5.2 } | |||
|
64 | } | |||
|
65 | } | |||
|
66 | //![1] | |||
|
67 | } |
@@ -0,0 +1,37 | |||||
|
1 | /**************************************************************************** | |||
|
2 | ** | |||
|
3 | ** Copyright (C) 2012 Digia Plc | |||
|
4 | ** All rights reserved. | |||
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |||
|
6 | ** | |||
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |||
|
8 | ** | |||
|
9 | ** $QT_BEGIN_LICENSE$ | |||
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |||
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |||
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |||
|
13 | ** a written agreement between you and Digia. | |||
|
14 | ** | |||
|
15 | ** If you have questions regarding the use of this file, please use | |||
|
16 | ** contact form at http://qt.digia.com | |||
|
17 | ** $QT_END_LICENSE$ | |||
|
18 | ** | |||
|
19 | ****************************************************************************/ | |||
|
20 | ||||
|
21 | import QtQuick 1.0 | |||
|
22 | ||||
|
23 | Item { | |||
|
24 | id: container | |||
|
25 | width: 400 | |||
|
26 | height: 300 | |||
|
27 | Component.onCompleted: { | |||
|
28 | var co = Qt.createComponent("main.qml") | |||
|
29 | if (co.status == Component.Ready) { | |||
|
30 | var o = co.createObject(container) | |||
|
31 | } else { | |||
|
32 | console.log(co.errorString()) | |||
|
33 | console.log("QtCommercial.Chart 1.1 not available") | |||
|
34 | console.log("Please use correct QML_IMPORT_PATH export") | |||
|
35 | } | |||
|
36 | } | |||
|
37 | } |
@@ -0,0 +1,90 | |||||
|
1 | /**************************************************************************** | |||
|
2 | ** | |||
|
3 | ** Copyright (C) 2012 Digia Plc | |||
|
4 | ** All rights reserved. | |||
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |||
|
6 | ** | |||
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |||
|
8 | ** | |||
|
9 | ** $QT_BEGIN_LICENSE$ | |||
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |||
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |||
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |||
|
13 | ** a written agreement between you and Digia. | |||
|
14 | ** | |||
|
15 | ** If you have questions regarding the use of this file, please use | |||
|
16 | ** contact form at http://qt.digia.com | |||
|
17 | ** $QT_END_LICENSE$ | |||
|
18 | ** | |||
|
19 | ****************************************************************************/ | |||
|
20 | ||||
|
21 | import QtQuick 1.0 | |||
|
22 | ||||
|
23 | Rectangle { | |||
|
24 | width: parent.width | |||
|
25 | height: parent.height | |||
|
26 | property int viewNumber: 1 | |||
|
27 | property int viewCount: 3 | |||
|
28 | ||||
|
29 | Loader { | |||
|
30 | id: loader | |||
|
31 | anchors.fill: parent | |||
|
32 | source: "View" + viewNumber + ".qml"; | |||
|
33 | } | |||
|
34 | ||||
|
35 | Rectangle { | |||
|
36 | id: infoText | |||
|
37 | anchors.centerIn: parent | |||
|
38 | width: parent.width | |||
|
39 | height: 40 | |||
|
40 | color: "black" | |||
|
41 | Text { | |||
|
42 | color: "white" | |||
|
43 | anchors.centerIn: parent | |||
|
44 | text: "Use left and right arrow keys to navigate" | |||
|
45 | } | |||
|
46 | ||||
|
47 | Behavior on opacity { | |||
|
48 | NumberAnimation { duration: 400 } | |||
|
49 | } | |||
|
50 | } | |||
|
51 | ||||
|
52 | MouseArea { | |||
|
53 | focus: true | |||
|
54 | anchors.fill: parent | |||
|
55 | onClicked: { | |||
|
56 | if (infoText.opacity > 0) { | |||
|
57 | infoText.opacity = 0.0; | |||
|
58 | } else { | |||
|
59 | nextView(); | |||
|
60 | } | |||
|
61 | } | |||
|
62 | Keys.onPressed: { | |||
|
63 | if (infoText.opacity > 0) { | |||
|
64 | infoText.opacity = 0.0; | |||
|
65 | } else { | |||
|
66 | if (event.key == Qt.Key_Left) { | |||
|
67 | previousView(); | |||
|
68 | } else { | |||
|
69 | nextView(); | |||
|
70 | } | |||
|
71 | } | |||
|
72 | } | |||
|
73 | } | |||
|
74 | ||||
|
75 | function nextView() { | |||
|
76 | var i = viewNumber + 1; | |||
|
77 | if (i > viewCount) | |||
|
78 | viewNumber = 1; | |||
|
79 | else | |||
|
80 | viewNumber = i; | |||
|
81 | } | |||
|
82 | ||||
|
83 | function previousView() { | |||
|
84 | var i = viewNumber - 1; | |||
|
85 | if (i <= 0) | |||
|
86 | viewNumber = viewCount; | |||
|
87 | else | |||
|
88 | viewNumber = i; | |||
|
89 | } | |||
|
90 | } |
@@ -0,0 +1,200 | |||||
|
1 | // checksum 0x78c version 0x60010 | |||
|
2 | /* | |||
|
3 | This file was generated by the Qt Quick Application wizard of Qt Creator. | |||
|
4 | QmlApplicationViewer is a convenience class containing mobile device specific | |||
|
5 | code such as screen orientation handling. Also QML paths and debugging are | |||
|
6 | handled here. | |||
|
7 | It is recommended not to modify this file, since newer versions of Qt Creator | |||
|
8 | may offer an updated version of it. | |||
|
9 | */ | |||
|
10 | ||||
|
11 | #include "qmlapplicationviewer.h" | |||
|
12 | ||||
|
13 | #include <QtCore/QDir> | |||
|
14 | #include <QtCore/QFileInfo> | |||
|
15 | #include <QtDeclarative/QDeclarativeComponent> | |||
|
16 | #include <QtDeclarative/QDeclarativeEngine> | |||
|
17 | #include <QtDeclarative/QDeclarativeContext> | |||
|
18 | #include <QtGui/QApplication> | |||
|
19 | ||||
|
20 | #include <qplatformdefs.h> // MEEGO_EDITION_HARMATTAN | |||
|
21 | ||||
|
22 | #ifdef HARMATTAN_BOOSTER | |||
|
23 | #include <MDeclarativeCache> | |||
|
24 | #endif | |||
|
25 | ||||
|
26 | #if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800 | |||
|
27 | ||||
|
28 | #include <qt_private/qdeclarativedebughelper_p.h> | |||
|
29 | ||||
|
30 | #if !defined(NO_JSDEBUGGER) | |||
|
31 | #include <jsdebuggeragent.h> | |||
|
32 | #endif | |||
|
33 | #if !defined(NO_QMLOBSERVER) | |||
|
34 | #include <qdeclarativeviewobserver.h> | |||
|
35 | #endif | |||
|
36 | ||||
|
37 | // Enable debugging before any QDeclarativeEngine is created | |||
|
38 | struct QmlJsDebuggingEnabler | |||
|
39 | { | |||
|
40 | QmlJsDebuggingEnabler() | |||
|
41 | { | |||
|
42 | QDeclarativeDebugHelper::enableDebugging(); | |||
|
43 | } | |||
|
44 | }; | |||
|
45 | ||||
|
46 | // Execute code in constructor before first QDeclarativeEngine is instantiated | |||
|
47 | static QmlJsDebuggingEnabler enableDebuggingHelper; | |||
|
48 | ||||
|
49 | #endif // QMLJSDEBUGGER | |||
|
50 | ||||
|
51 | class QmlApplicationViewerPrivate | |||
|
52 | { | |||
|
53 | QmlApplicationViewerPrivate(QDeclarativeView *view_) : view(view_) {} | |||
|
54 | ||||
|
55 | QString mainQmlFile; | |||
|
56 | QDeclarativeView *view; | |||
|
57 | friend class QmlApplicationViewer; | |||
|
58 | QString adjustPath(const QString &path); | |||
|
59 | }; | |||
|
60 | ||||
|
61 | QString QmlApplicationViewerPrivate::adjustPath(const QString &path) | |||
|
62 | { | |||
|
63 | #ifdef Q_OS_UNIX | |||
|
64 | #ifdef Q_OS_MAC | |||
|
65 | if (!QDir::isAbsolutePath(path)) | |||
|
66 | return QCoreApplication::applicationDirPath() | |||
|
67 | + QLatin1String("/../Resources/") + path; | |||
|
68 | #else | |||
|
69 | QString pathInInstallDir; | |||
|
70 | const QString applicationDirPath = QCoreApplication::applicationDirPath(); | |||
|
71 | pathInInstallDir = QString::fromAscii("%1/../%2").arg(applicationDirPath, path); | |||
|
72 | ||||
|
73 | if (QFileInfo(pathInInstallDir).exists()) | |||
|
74 | return pathInInstallDir; | |||
|
75 | #endif | |||
|
76 | #endif | |||
|
77 | return path; | |||
|
78 | } | |||
|
79 | ||||
|
80 | QmlApplicationViewer::QmlApplicationViewer(QWidget *parent) | |||
|
81 | : QDeclarativeView(parent) | |||
|
82 | , d(new QmlApplicationViewerPrivate(this)) | |||
|
83 | { | |||
|
84 | connect(engine(), SIGNAL(quit()), SLOT(close())); | |||
|
85 | setResizeMode(QDeclarativeView::SizeRootObjectToView); | |||
|
86 | // Qt versions prior to 4.8.0 don't have QML/JS debugging services built in | |||
|
87 | #if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800 | |||
|
88 | #if !defined(NO_JSDEBUGGER) | |||
|
89 | new QmlJSDebugger::JSDebuggerAgent(d->view->engine()); | |||
|
90 | #endif | |||
|
91 | #if !defined(NO_QMLOBSERVER) | |||
|
92 | new QmlJSDebugger::QDeclarativeViewObserver(d->view, d->view); | |||
|
93 | #endif | |||
|
94 | #endif | |||
|
95 | } | |||
|
96 | ||||
|
97 | QmlApplicationViewer::QmlApplicationViewer(QDeclarativeView *view, QWidget *parent) | |||
|
98 | : QDeclarativeView(parent) | |||
|
99 | , d(new QmlApplicationViewerPrivate(view)) | |||
|
100 | { | |||
|
101 | connect(view->engine(), SIGNAL(quit()), view, SLOT(close())); | |||
|
102 | view->setResizeMode(QDeclarativeView::SizeRootObjectToView); | |||
|
103 | // Qt versions prior to 4.8.0 don't have QML/JS debugging services built in | |||
|
104 | #if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800 | |||
|
105 | #if !defined(NO_JSDEBUGGER) | |||
|
106 | new QmlJSDebugger::JSDebuggerAgent(d->view->engine()); | |||
|
107 | #endif | |||
|
108 | #if !defined(NO_QMLOBSERVER) | |||
|
109 | new QmlJSDebugger::QDeclarativeViewObserver(d->view, d->view); | |||
|
110 | #endif | |||
|
111 | #endif | |||
|
112 | } | |||
|
113 | ||||
|
114 | QmlApplicationViewer::~QmlApplicationViewer() | |||
|
115 | { | |||
|
116 | delete d; | |||
|
117 | } | |||
|
118 | ||||
|
119 | QmlApplicationViewer *QmlApplicationViewer::create() | |||
|
120 | { | |||
|
121 | #ifdef HARMATTAN_BOOSTER | |||
|
122 | return new QmlApplicationViewer(MDeclarativeCache::qDeclarativeView(), 0); | |||
|
123 | #else | |||
|
124 | return new QmlApplicationViewer(); | |||
|
125 | #endif | |||
|
126 | } | |||
|
127 | ||||
|
128 | void QmlApplicationViewer::setMainQmlFile(const QString &file) | |||
|
129 | { | |||
|
130 | d->mainQmlFile = d->adjustPath(file); | |||
|
131 | d->view->setSource(QUrl::fromLocalFile(d->mainQmlFile)); | |||
|
132 | } | |||
|
133 | ||||
|
134 | void QmlApplicationViewer::addImportPath(const QString &path) | |||
|
135 | { | |||
|
136 | d->view->engine()->addImportPath(d->adjustPath(path)); | |||
|
137 | } | |||
|
138 | ||||
|
139 | void QmlApplicationViewer::setOrientation(ScreenOrientation orientation) | |||
|
140 | { | |||
|
141 | #if defined(Q_OS_SYMBIAN) | |||
|
142 | // If the version of Qt on the device is < 4.7.2, that attribute won't work | |||
|
143 | if (orientation != ScreenOrientationAuto) { | |||
|
144 | const QStringList v = QString::fromAscii(qVersion()).split(QLatin1Char('.')); | |||
|
145 | if (v.count() == 3 && (v.at(0).toInt() << 16 | v.at(1).toInt() << 8 | v.at(2).toInt()) < 0x040702) { | |||
|
146 | qWarning("Screen orientation locking only supported with Qt 4.7.2 and above"); | |||
|
147 | return; | |||
|
148 | } | |||
|
149 | } | |||
|
150 | #endif // Q_OS_SYMBIAN | |||
|
151 | ||||
|
152 | Qt::WidgetAttribute attribute; | |||
|
153 | switch (orientation) { | |||
|
154 | #if QT_VERSION < 0x040702 | |||
|
155 | // Qt < 4.7.2 does not yet have the Qt::WA_*Orientation attributes | |||
|
156 | case ScreenOrientationLockPortrait: | |||
|
157 | attribute = static_cast<Qt::WidgetAttribute>(128); | |||
|
158 | break; | |||
|
159 | case ScreenOrientationLockLandscape: | |||
|
160 | attribute = static_cast<Qt::WidgetAttribute>(129); | |||
|
161 | break; | |||
|
162 | default: | |||
|
163 | case ScreenOrientationAuto: | |||
|
164 | attribute = static_cast<Qt::WidgetAttribute>(130); | |||
|
165 | break; | |||
|
166 | #else // QT_VERSION < 0x040702 | |||
|
167 | case ScreenOrientationLockPortrait: | |||
|
168 | attribute = Qt::WA_LockPortraitOrientation; | |||
|
169 | break; | |||
|
170 | case ScreenOrientationLockLandscape: | |||
|
171 | attribute = Qt::WA_LockLandscapeOrientation; | |||
|
172 | break; | |||
|
173 | default: | |||
|
174 | case ScreenOrientationAuto: | |||
|
175 | attribute = Qt::WA_AutoOrientation; | |||
|
176 | break; | |||
|
177 | #endif // QT_VERSION < 0x040702 | |||
|
178 | }; | |||
|
179 | setAttribute(attribute, true); | |||
|
180 | } | |||
|
181 | ||||
|
182 | void QmlApplicationViewer::showExpanded() | |||
|
183 | { | |||
|
184 | #if defined(Q_OS_SYMBIAN) || defined(MEEGO_EDITION_HARMATTAN) || defined(Q_WS_SIMULATOR) | |||
|
185 | d->view->showFullScreen(); | |||
|
186 | #elif defined(Q_WS_MAEMO_5) | |||
|
187 | d->view->showMaximized(); | |||
|
188 | #else | |||
|
189 | d->view->show(); | |||
|
190 | #endif | |||
|
191 | } | |||
|
192 | ||||
|
193 | QApplication *createApplication(int &argc, char **argv) | |||
|
194 | { | |||
|
195 | #ifdef HARMATTAN_BOOSTER | |||
|
196 | return MDeclarativeCache::qApplication(argc, argv); | |||
|
197 | #else | |||
|
198 | return new QApplication(argc, argv); | |||
|
199 | #endif | |||
|
200 | } |
@@ -0,0 +1,47 | |||||
|
1 | // checksum 0x82ed version 0x60010 | |||
|
2 | /* | |||
|
3 | This file was generated by the Qt Quick Application wizard of Qt Creator. | |||
|
4 | QmlApplicationViewer is a convenience class containing mobile device specific | |||
|
5 | code such as screen orientation handling. Also QML paths and debugging are | |||
|
6 | handled here. | |||
|
7 | It is recommended not to modify this file, since newer versions of Qt Creator | |||
|
8 | may offer an updated version of it. | |||
|
9 | */ | |||
|
10 | ||||
|
11 | #ifndef QMLAPPLICATIONVIEWER_H | |||
|
12 | #define QMLAPPLICATIONVIEWER_H | |||
|
13 | ||||
|
14 | #include <QtDeclarative/QDeclarativeView> | |||
|
15 | ||||
|
16 | class QmlApplicationViewer : public QDeclarativeView | |||
|
17 | { | |||
|
18 | Q_OBJECT | |||
|
19 | ||||
|
20 | public: | |||
|
21 | enum ScreenOrientation { | |||
|
22 | ScreenOrientationLockPortrait, | |||
|
23 | ScreenOrientationLockLandscape, | |||
|
24 | ScreenOrientationAuto | |||
|
25 | }; | |||
|
26 | ||||
|
27 | explicit QmlApplicationViewer(QWidget *parent = 0); | |||
|
28 | virtual ~QmlApplicationViewer(); | |||
|
29 | ||||
|
30 | static QmlApplicationViewer *create(); | |||
|
31 | ||||
|
32 | void setMainQmlFile(const QString &file); | |||
|
33 | void addImportPath(const QString &path); | |||
|
34 | ||||
|
35 | // Note that this will only have an effect on Symbian and Fremantle. | |||
|
36 | void setOrientation(ScreenOrientation orientation); | |||
|
37 | ||||
|
38 | void showExpanded(); | |||
|
39 | ||||
|
40 | private: | |||
|
41 | explicit QmlApplicationViewer(QDeclarativeView *view, QWidget *parent); | |||
|
42 | class QmlApplicationViewerPrivate *d; | |||
|
43 | }; | |||
|
44 | ||||
|
45 | QApplication *createApplication(int &argc, char **argv); | |||
|
46 | ||||
|
47 | #endif // QMLAPPLICATIONVIEWER_H |
@@ -0,0 +1,13 | |||||
|
1 | QT += declarative | |||
|
2 | ||||
|
3 | SOURCES += $$PWD/qmlapplicationviewer.cpp | |||
|
4 | HEADERS += $$PWD/qmlapplicationviewer.h | |||
|
5 | INCLUDEPATH += $$PWD | |||
|
6 | ||||
|
7 | # Include JS debugger library if QMLJSDEBUGGER_PATH is set | |||
|
8 | !isEmpty(QMLJSDEBUGGER_PATH) { | |||
|
9 | include($$QMLJSDEBUGGER_PATH/qmljsdebugger-lib.pri) | |||
|
10 | } else { | |||
|
11 | DEFINES -= QMLJSDEBUGGER | |||
|
12 | } | |||
|
13 |
@@ -0,0 +1,8 | |||||
|
1 | !include( ../demos.pri ) { | |||
|
2 | error( "Couldn't find the demos.pri file!" ) | |||
|
3 | } | |||
|
4 | ||||
|
5 | RESOURCES += resources.qrc | |||
|
6 | SOURCES += main.cpp | |||
|
7 | ||||
|
8 | include(qmlapplicationviewer/qmlapplicationviewer.pri) |
@@ -0,0 +1,9 | |||||
|
1 | <RCC> | |||
|
2 | <qresource prefix="/"> | |||
|
3 | <file>qml/qmlaxes/loader.qml</file> | |||
|
4 | <file>qml/qmlaxes/main.qml</file> | |||
|
5 | <file>qml/qmlaxes/View1.qml</file> | |||
|
6 | <file>qml/qmlaxes/View2.qml</file> | |||
|
7 | <file>qml/qmlaxes/View3.qml</file> | |||
|
8 | </qresource> | |||
|
9 | </RCC> |
@@ -1,23 +1,24 | |||||
1 | CURRENTLY_BUILDING_COMPONENTS = "demos" |
|
1 | CURRENTLY_BUILDING_COMPONENTS = "demos" | |
2 | !include( ../config.pri ) { |
|
2 | !include( ../config.pri ) { | |
3 | error( "Couldn't find the config.pri file!" ) |
|
3 | error( "Couldn't find the config.pri file!" ) | |
4 | } |
|
4 | } | |
5 |
|
5 | |||
6 | TEMPLATE = subdirs |
|
6 | TEMPLATE = subdirs | |
7 | SUBDIRS += piechartcustomization \ |
|
7 | SUBDIRS += piechartcustomization \ | |
8 | dynamicspline \ |
|
8 | dynamicspline \ | |
9 | nesteddonuts \ |
|
9 | nesteddonuts \ | |
10 | qmlchart \ |
|
10 | qmlchart \ | |
11 | qmlweather \ |
|
11 | qmlweather \ | |
12 | qmlf1legends \ |
|
12 | qmlf1legends \ | |
13 | qmlcustomizations \ |
|
13 | qmlcustomizations \ | |
14 | qmlcustommodel \ |
|
14 | qmlcustommodel \ | |
15 | chartinteractions |
|
15 | chartinteractions \ | |
|
16 | qmlaxes | |||
16 |
|
17 | |||
17 | contains(QT_CONFIG, opengl) { |
|
18 | contains(QT_CONFIG, opengl) { | |
18 | SUBDIRS += chartthemes \ |
|
19 | SUBDIRS += chartthemes \ | |
19 | qmloscilloscope \ |
|
20 | qmloscilloscope \ | |
20 | chartviewer |
|
21 | chartviewer | |
21 | } else { |
|
22 | } else { | |
22 | message("OpenGL not available. Some demos are disabled") |
|
23 | message("OpenGL not available. Some demos are disabled") | |
23 | } |
|
24 | } |
@@ -1,31 +1,32 | |||||
1 | /*! |
|
1 | /*! | |
2 | \page demos.html |
|
2 | \page demos.html | |
3 | \title Demos |
|
3 | \title Demos | |
4 | \keyword Demos |
|
4 | \keyword Demos | |
5 |
|
5 | |||
6 | \raw HTML |
|
6 | \raw HTML | |
7 | <table cellpadding="2" cellspacing="1" border="0" width="100%" class="indextable"> |
|
7 | <table cellpadding="2" cellspacing="1" border="0" width="100%" class="indextable"> | |
8 | <tr> |
|
8 | <tr> | |
9 | <th class="titleheader" width="33%"> |
|
9 | <th class="titleheader" width="33%"> | |
10 | List of demos |
|
10 | List of demos | |
11 | </th> |
|
11 | </th> | |
12 | </tr> |
|
12 | </tr> | |
13 | <tr> |
|
13 | <tr> | |
14 | <td valign="top"> |
|
14 | <td valign="top"> | |
15 | <ul> |
|
15 | <ul> | |
16 | <li><a href="demos-chartthemes.html">Chart themes</a></li> |
|
16 | <li><a href="demos-chartthemes.html">Chart themes</a></li> | |
17 | <li><a href="demos-dynamicspline.html">Dynamic spline chart</a></li> |
|
17 | <li><a href="demos-dynamicspline.html">Dynamic spline chart</a></li> | |
18 | <li><a href="demos-nesteddonuts.html">Nested donuts chart</a></li> |
|
18 | <li><a href="demos-nesteddonuts.html">Nested donuts chart</a></li> | |
19 | <li><a href="demos-piechartcustomization.html">Pie chart customization</a></li> |
|
19 | <li><a href="demos-piechartcustomization.html">Pie chart customization</a></li> | |
20 | <li><a href="demos-qmlchart.html">Qml Basic Charts</a></li> |
|
20 | <li><a href="demos-qmlchart.html">Qml Basic Charts</a></li> | |
|
21 | <li><a href="demos-qmlaxes.html">Qml Axes</a></li> | |||
21 | <li><a href="demos-qmlcustomizations.html">Qml Customizations</a></li> |
|
22 | <li><a href="demos-qmlcustomizations.html">Qml Customizations</a></li> | |
22 | <li><a href="demos-qmlcustommodel.html">Qml Custom Model</a></li> |
|
23 | <li><a href="demos-qmlcustommodel.html">Qml Custom Model</a></li> | |
23 | <li><a href="demos-qmlf1legends.html">Qml F1 Legends</a></li> |
|
24 | <li><a href="demos-qmlf1legends.html">Qml F1 Legends</a></li> | |
24 | <li><a href="demos-qmloscilloscope.html">Qml Oscilloscope</a></li> |
|
25 | <li><a href="demos-qmloscilloscope.html">Qml Oscilloscope</a></li> | |
25 | <li><a href="demos-qmlweather.html">Qml Weather</a></li> |
|
26 | <li><a href="demos-qmlweather.html">Qml Weather</a></li> | |
26 | </ul> |
|
27 | </ul> | |
27 | </td> |
|
28 | </td> | |
28 | </tr> |
|
29 | </tr> | |
29 | </table> |
|
30 | </table> | |
30 | \endraw |
|
31 | \endraw | |
31 | */ |
|
32 | */ |
@@ -1,352 +1,366 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 | #include "qdatetimeaxis.h" |
|
21 | #include "qdatetimeaxis.h" | |
22 | #include "qdatetimeaxis_p.h" |
|
22 | #include "qdatetimeaxis_p.h" | |
23 | #include "chartdatetimeaxisx_p.h" |
|
23 | #include "chartdatetimeaxisx_p.h" | |
24 | #include "chartdatetimeaxisy_p.h" |
|
24 | #include "chartdatetimeaxisy_p.h" | |
25 | #include "domain_p.h" |
|
25 | #include "domain_p.h" | |
26 | #include <cmath> |
|
26 | #include <cmath> | |
27 |
|
27 | |||
28 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
28 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
29 | /*! |
|
29 | /*! | |
30 | \class QDateTimeAxis |
|
30 | \class QDateTimeAxis | |
31 | \brief The QDateTimeAxis class is used for manipulating chart's axis. |
|
31 | \brief The QDateTimeAxis class is used for manipulating chart's axis. | |
32 | \mainclass |
|
32 | \mainclass | |
33 |
|
33 | |||
34 | The labels can be configured by setting an appropriate DateTime format. |
|
34 | The labels can be configured by setting an appropriate DateTime format. | |
35 | QDateTimeAxis works correctly with dates from 4714 BCE to 287396 CE |
|
35 | QDateTimeAxis works correctly with dates from 4714 BCE to 287396 CE | |
36 | There are also other limitiation related to QDateTime . Please refer to QDateTime documentation. |
|
36 | There are also other limitiation related to QDateTime . Please refer to QDateTime documentation. | |
37 | QDateTimeAxis can be setup to show axis line with tick marks, grid lines and shades. |
|
37 | QDateTimeAxis can be setup to show axis line with tick marks, grid lines and shades. | |
38 |
|
38 | |||
39 | NOTE: QDateTimeAxis is disabled on ARM platform at the present time. |
|
39 | NOTE: QDateTimeAxis is disabled on ARM platform at the present time. | |
40 |
|
40 | |||
41 | \image api_datatime_axis.png |
|
41 | \image api_datatime_axis.png | |
42 |
|
42 | |||
43 | QDateTimeAxis can be used with QLineSeries, QSplineSeries or QScatterSeries. |
|
43 | QDateTimeAxis can be used with QLineSeries, QSplineSeries or QScatterSeries. | |
44 | To add a data point to the series QDateTime::toMSecsSinceEpoch() is used. |
|
44 | To add a data point to the series QDateTime::toMSecsSinceEpoch() is used. | |
45 | \code |
|
45 | \code | |
46 | QLineSeries *series = new QLineSeries; |
|
46 | QLineSeries *series = new QLineSeries; | |
47 |
|
47 | |||
48 | QDateTime xValue; |
|
48 | QDateTime xValue; | |
49 | xValue.setDate(QDate(2012, 1 , 18)); |
|
49 | xValue.setDate(QDate(2012, 1 , 18)); | |
50 | xValue.setTime(QTime(9, 34)); |
|
50 | xValue.setTime(QTime(9, 34)); | |
51 | qreal yValue = 12; |
|
51 | qreal yValue = 12; | |
52 | series->append(xValue.toMSecsSinceEpoch(), yValue); |
|
52 | series->append(xValue.toMSecsSinceEpoch(), yValue); | |
53 |
|
53 | |||
54 | xValue.setDate(QDate(2013, 5 , 11)); |
|
54 | xValue.setDate(QDate(2013, 5 , 11)); | |
55 | xValue.setTime(QTime(11, 14)); |
|
55 | xValue.setTime(QTime(11, 14)); | |
56 | qreal yValue = 22; |
|
56 | qreal yValue = 22; | |
57 | series->append(xValue.toMSecsSinceEpoch(), yValue); |
|
57 | series->append(xValue.toMSecsSinceEpoch(), yValue); | |
58 | \endcode |
|
58 | \endcode | |
59 |
|
59 | |||
60 | Adding the series to the chart and setting up the QDateTimeAxis. |
|
60 | Adding the series to the chart and setting up the QDateTimeAxis. | |
61 | \code |
|
61 | \code | |
62 | QChartView *chartView = new QChartView; |
|
62 | QChartView *chartView = new QChartView; | |
63 | chartView->chart()->addSeries(series); |
|
63 | chartView->chart()->addSeries(series); | |
64 |
|
64 | |||
65 | // ... |
|
65 | // ... | |
66 | QDateTimeAxis *axisX = new QDateTimeAxis; |
|
66 | QDateTimeAxis *axisX = new QDateTimeAxis; | |
67 | axisX->setFormat("dd-MM-yyyy h:mm"); |
|
67 | axisX->setFormat("dd-MM-yyyy h:mm"); | |
68 | chartView->chart()->setAxisX(series, axisX); |
|
68 | chartView->chart()->setAxisX(series, axisX); | |
69 | \endcode |
|
69 | \endcode | |
70 | */ |
|
70 | */ | |
71 |
|
71 | |||
72 | /*! |
|
72 | /*! | |
73 | \qmlclass DateTimeAxis QDateTimeAxis |
|
73 | \qmlclass DateTimeAxis QDateTimeAxis | |
74 | \brief The DateTimeAxis element is used for manipulating chart's axes |
|
74 | \brief The DateTimeAxis element is used for manipulating chart's axes | |
|
75 | \inherits AbstractAxis | |||
75 |
|
76 | |||
76 | The labels can be configured by setting an appropriate DateTime format. |
|
77 | The labels can be configured by setting an appropriate DateTime format. | |
77 | Note that any date before 4714 BCE or after about 1.4 million CE may not be accurately stored. |
|
78 | Note that any date before 4714 BCE or after about 1.4 million CE may not be accurately stored. | |
78 | DateTimeAxis can be setup to show axis line with tick marks, grid lines and shades. |
|
79 | DateTimeAxis can be setup to show axis line with tick marks, grid lines and shades. | |
79 | */ |
|
80 | */ | |
80 |
|
81 | |||
81 | /*! |
|
82 | /*! | |
82 | \property QDateTimeAxis::min |
|
83 | \property QDateTimeAxis::min | |
83 | Defines the minimum value on the axis. |
|
84 | Defines the minimum value on the axis. | |
84 | When setting this property the max is adjusted if necessary, to ensure that the range remains valid. |
|
85 | When setting this property the max is adjusted if necessary, to ensure that the range remains valid. | |
85 | */ |
|
86 | */ | |
86 | /*! |
|
87 | /*! | |
87 | \qmlproperty real ValuesAxis::min |
|
88 | \qmlproperty real ValuesAxis::min | |
88 | Defines the minimum value on the axis. |
|
89 | Defines the minimum value on the axis. | |
89 | When setting this property the max is adjusted if necessary, to ensure that the range remains valid. |
|
90 | When setting this property the max is adjusted if necessary, to ensure that the range remains valid. | |
90 | */ |
|
91 | */ | |
91 |
|
92 | |||
92 | /*! |
|
93 | /*! | |
93 | \property QDateTimeAxis::max |
|
94 | \property QDateTimeAxis::max | |
94 | Defines the maximum value on the axis. |
|
95 | Defines the maximum value on the axis. | |
95 | When setting this property the min is adjusted if necessary, to ensure that the range remains valid. |
|
96 | When setting this property the min is adjusted if necessary, to ensure that the range remains valid. | |
96 | */ |
|
97 | */ | |
97 | /*! |
|
98 | /*! | |
98 | \qmlproperty real ValuesAxis::max |
|
99 | \qmlproperty real ValuesAxis::max | |
99 | Defines the maximum value on the axis. |
|
100 | Defines the maximum value on the axis. | |
100 | When setting this property the min is adjusted if necessary, to ensure that the range remains valid. |
|
101 | When setting this property the min is adjusted if necessary, to ensure that the range remains valid. | |
101 | */ |
|
102 | */ | |
102 |
|
103 | |||
103 | /*! |
|
104 | /*! | |
104 | \fn void QDateTimeAxis::minChanged(QDateTime min) |
|
105 | \fn void QDateTimeAxis::minChanged(QDateTime min) | |
105 | Axis emits signal when \a min of axis has changed. |
|
106 | Axis emits signal when \a min of axis has changed. | |
106 | */ |
|
107 | */ | |
107 | /*! |
|
108 | /*! | |
108 | \qmlsignal ValuesAxis::onMinChanged(QDateTime min) |
|
109 | \qmlsignal ValuesAxis::onMinChanged(QDateTime min) | |
109 | Axis emits signal when \a min of axis has changed. |
|
110 | Axis emits signal when \a min of axis has changed. | |
110 | */ |
|
111 | */ | |
111 |
|
112 | |||
112 | /*! |
|
113 | /*! | |
113 | \fn void QDateTimeAxis::maxChanged(QDateTime max) |
|
114 | \fn void QDateTimeAxis::maxChanged(QDateTime max) | |
114 | Axis emits signal when \a max of axis has changed. |
|
115 | Axis emits signal when \a max of axis has changed. | |
115 | */ |
|
116 | */ | |
116 | /*! |
|
117 | /*! | |
117 | \qmlsignal ValuesAxis::onMaxChanged(QDateTime max) |
|
118 | \qmlsignal ValuesAxis::onMaxChanged(QDateTime max) | |
118 | Axis emits signal when \a max of axis has changed. |
|
119 | Axis emits signal when \a max of axis has changed. | |
119 | */ |
|
120 | */ | |
120 |
|
121 | |||
121 | /*! |
|
122 | /*! | |
122 | \fn void QDateTimeAxis::rangeChanged(QDateTime min, QDateTime max) |
|
123 | \fn void QDateTimeAxis::rangeChanged(QDateTime min, QDateTime max) | |
123 | Axis emits signal when \a min or \a max of axis has changed. |
|
124 | Axis emits signal when \a min or \a max of axis has changed. | |
124 | */ |
|
125 | */ | |
125 |
|
126 | |||
126 | /*! |
|
127 | /*! | |
127 | \property QDateTimeAxis::tickCount |
|
128 | \property QDateTimeAxis::tickCount | |
128 | The number of tick marks for the axis. |
|
129 | The number of tick marks for the axis. | |
129 | */ |
|
130 | */ | |
130 |
|
131 | |||
131 | /*! |
|
132 | /*! | |
132 |
\qmlproperty int |
|
133 | \qmlproperty int DateTimeAxis::tickCount | |
133 | The number of tick marks for the axis. |
|
134 | The number of tick marks for the axis. | |
134 | */ |
|
135 | */ | |
135 |
|
136 | |||
136 | /*! |
|
137 | /*! | |
|
138 | \property QDateTimeAxis::format | |||
|
139 | The format string that is used when creating label for the axis out of a QDateTime object. | |||
|
140 | Check QDateTime documentation for information on how the string should be defined. | |||
|
141 | */ | |||
|
142 | /*! | |||
|
143 | \qmlproperty string DateTimeAxis::format | |||
|
144 | The format string that is used when creating label for the axis out of a QDateTime object. | |||
|
145 | Check QDateTime documentation for information on how the string should be defined. | |||
|
146 | */ | |||
|
147 | ||||
|
148 | /*! | |||
|
149 | \fn void QDateTimeAxis::formatChanged(QString format) | |||
|
150 | Axis emits signal when \a format of the axis has changed. | |||
|
151 | */ | |||
|
152 | /*! | |||
|
153 | \qmlsignal DateTimeAxis::onFormatChanged(string format) | |||
|
154 | Axis emits signal when \a format of the axis has changed. | |||
|
155 | */ | |||
|
156 | ||||
|
157 | /*! | |||
137 | Constructs an axis object which is a child of \a parent. |
|
158 | Constructs an axis object which is a child of \a parent. | |
138 | */ |
|
159 | */ | |
139 | QDateTimeAxis::QDateTimeAxis(QObject *parent) : |
|
160 | QDateTimeAxis::QDateTimeAxis(QObject *parent) : | |
140 | QAbstractAxis(*new QDateTimeAxisPrivate(this),parent) |
|
161 | QAbstractAxis(*new QDateTimeAxisPrivate(this),parent) | |
141 | { |
|
162 | { | |
142 |
|
163 | |||
143 | } |
|
164 | } | |
144 |
|
165 | |||
145 | /*! |
|
166 | /*! | |
146 | \internal |
|
167 | \internal | |
147 | */ |
|
168 | */ | |
148 | QDateTimeAxis::QDateTimeAxis(QDateTimeAxisPrivate &d,QObject *parent) : QAbstractAxis(d,parent) |
|
169 | QDateTimeAxis::QDateTimeAxis(QDateTimeAxisPrivate &d,QObject *parent) : QAbstractAxis(d,parent) | |
149 | { |
|
170 | { | |
150 |
|
171 | |||
151 | } |
|
172 | } | |
152 |
|
173 | |||
153 | /*! |
|
174 | /*! | |
154 | Destroys the object |
|
175 | Destroys the object | |
155 | */ |
|
176 | */ | |
156 | QDateTimeAxis::~QDateTimeAxis() |
|
177 | QDateTimeAxis::~QDateTimeAxis() | |
157 | { |
|
178 | { | |
158 |
|
179 | |||
159 | } |
|
180 | } | |
160 |
|
181 | |||
161 | void QDateTimeAxis::setMin(QDateTime min) |
|
182 | void QDateTimeAxis::setMin(QDateTime min) | |
162 | { |
|
183 | { | |
163 | Q_D(QDateTimeAxis); |
|
184 | Q_D(QDateTimeAxis); | |
164 | if (min.isValid()) |
|
185 | if (min.isValid()) | |
165 | setRange(min, qMax(d->m_max, min)); |
|
186 | setRange(min, qMax(d->m_max, min)); | |
166 | } |
|
187 | } | |
167 |
|
188 | |||
168 | QDateTime QDateTimeAxis::min() const |
|
189 | QDateTime QDateTimeAxis::min() const | |
169 | { |
|
190 | { | |
170 | Q_D(const QDateTimeAxis); |
|
191 | Q_D(const QDateTimeAxis); | |
171 | return d->m_min; |
|
192 | return d->m_min; | |
172 | } |
|
193 | } | |
173 |
|
194 | |||
174 | void QDateTimeAxis::setMax(QDateTime max) |
|
195 | void QDateTimeAxis::setMax(QDateTime max) | |
175 | { |
|
196 | { | |
176 | Q_D(QDateTimeAxis); |
|
197 | Q_D(QDateTimeAxis); | |
177 | if (max.isValid()) |
|
198 | if (max.isValid()) | |
178 | setRange(qMin(d->m_min, max), max); |
|
199 | setRange(qMin(d->m_min, max), max); | |
179 | } |
|
200 | } | |
180 |
|
201 | |||
181 | QDateTime QDateTimeAxis::max() const |
|
202 | QDateTime QDateTimeAxis::max() const | |
182 | { |
|
203 | { | |
183 | Q_D(const QDateTimeAxis); |
|
204 | Q_D(const QDateTimeAxis); | |
184 | return d->m_max; |
|
205 | return d->m_max; | |
185 | } |
|
206 | } | |
186 |
|
207 | |||
187 | /*! |
|
208 | /*! | |
188 | Sets range from \a min to \a max on the axis. |
|
209 | Sets range from \a min to \a max on the axis. | |
189 | If min is greater than max then this function returns without making any changes. |
|
210 | If min is greater than max then this function returns without making any changes. | |
190 | */ |
|
211 | */ | |
191 | void QDateTimeAxis::setRange(QDateTime min, QDateTime max) |
|
212 | void QDateTimeAxis::setRange(QDateTime min, QDateTime max) | |
192 | { |
|
213 | { | |
193 | Q_D(QDateTimeAxis); |
|
214 | Q_D(QDateTimeAxis); | |
194 | if (!min.isValid() || !max.isValid() || min > max) |
|
215 | if (!min.isValid() || !max.isValid() || min > max) | |
195 | return; |
|
216 | return; | |
196 |
|
217 | |||
197 | bool changed = false; |
|
218 | bool changed = false; | |
198 | if (d->m_min != min) { |
|
219 | if (d->m_min != min) { | |
199 | d->m_min = min; |
|
220 | d->m_min = min; | |
200 | changed = true; |
|
221 | changed = true; | |
201 | emit minChanged(min); |
|
222 | emit minChanged(min); | |
202 | } |
|
223 | } | |
203 |
|
224 | |||
204 | if (d->m_max != max) { |
|
225 | if (d->m_max != max) { | |
205 | d->m_max = max; |
|
226 | d->m_max = max; | |
206 | changed = true; |
|
227 | changed = true; | |
207 | emit maxChanged(max); |
|
228 | emit maxChanged(max); | |
208 | } |
|
229 | } | |
209 |
|
230 | |||
210 | if (changed) { |
|
231 | if (changed) { | |
211 | emit rangeChanged(d->m_min,d->m_max); |
|
232 | emit rangeChanged(d->m_min,d->m_max); | |
212 | d->emitUpdated(); |
|
233 | d->emitUpdated(); | |
213 | } |
|
234 | } | |
214 | } |
|
235 | } | |
215 |
|
236 | |||
216 | /*! |
|
|||
217 | Sets \a format string that is used when creating label for the axis out of the QDateTime object. |
|
|||
218 | Check QDateTime documentation for information on how the string should be defined. |
|
|||
219 | \sa format() |
|
|||
220 | */ |
|
|||
221 | void QDateTimeAxis::setFormat(QString format) |
|
237 | void QDateTimeAxis::setFormat(QString format) | |
222 | { |
|
238 | { | |
223 | Q_D(QDateTimeAxis); |
|
239 | Q_D(QDateTimeAxis); | |
224 |
d->m_format = format |
|
240 | if (d->m_format != format) { | |
|
241 | d->m_format = format; | |||
|
242 | emit formatChanged(format); | |||
|
243 | } | |||
225 | } |
|
244 | } | |
226 |
|
245 | |||
227 | /*! |
|
|||
228 | Returns the format string that is used when creating label for the axis out of the QDateTime object. |
|
|||
229 | Check QDateTime documentation for information on how the string should be defined. |
|
|||
230 | \sa setFormat() |
|
|||
231 | */ |
|
|||
232 | QString QDateTimeAxis::format() const |
|
246 | QString QDateTimeAxis::format() const | |
233 | { |
|
247 | { | |
234 | Q_D(const QDateTimeAxis); |
|
248 | Q_D(const QDateTimeAxis); | |
235 | return d->m_format; |
|
249 | return d->m_format; | |
236 | } |
|
250 | } | |
237 |
|
251 | |||
238 | /*! |
|
252 | /*! | |
239 | Sets \a count for ticks on the axis. |
|
253 | Sets \a count for ticks on the axis. | |
240 | */ |
|
254 | */ | |
241 | void QDateTimeAxis::setTickCount(int count) |
|
255 | void QDateTimeAxis::setTickCount(int count) | |
242 | { |
|
256 | { | |
243 | Q_D(QDateTimeAxis); |
|
257 | Q_D(QDateTimeAxis); | |
244 | if (d->m_tickCount != count && count >=2) { |
|
258 | if (d->m_tickCount != count && count >=2) { | |
245 | d->m_tickCount = count; |
|
259 | d->m_tickCount = count; | |
246 | d->emitUpdated(); |
|
260 | d->emitUpdated(); | |
247 | } |
|
261 | } | |
248 | } |
|
262 | } | |
249 |
|
263 | |||
250 | /*! |
|
264 | /*! | |
251 | \fn int QDateTimeAxis::tickCount() const |
|
265 | \fn int QDateTimeAxis::tickCount() const | |
252 | Return number of ticks on the axis |
|
266 | Return number of ticks on the axis | |
253 | */ |
|
267 | */ | |
254 | int QDateTimeAxis::tickCount() const |
|
268 | int QDateTimeAxis::tickCount() const | |
255 | { |
|
269 | { | |
256 | Q_D(const QDateTimeAxis); |
|
270 | Q_D(const QDateTimeAxis); | |
257 | return d->m_tickCount; |
|
271 | return d->m_tickCount; | |
258 | } |
|
272 | } | |
259 |
|
273 | |||
260 | /*! |
|
274 | /*! | |
261 | Returns the type of the axis |
|
275 | Returns the type of the axis | |
262 | */ |
|
276 | */ | |
263 | QAbstractAxis::AxisType QDateTimeAxis::type() const |
|
277 | QAbstractAxis::AxisType QDateTimeAxis::type() const | |
264 | { |
|
278 | { | |
265 | return AxisTypeDateTime; |
|
279 | return AxisTypeDateTime; | |
266 | } |
|
280 | } | |
267 |
|
281 | |||
268 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
282 | ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | |
269 |
|
283 | |||
270 | QDateTimeAxisPrivate::QDateTimeAxisPrivate(QDateTimeAxis* q): |
|
284 | QDateTimeAxisPrivate::QDateTimeAxisPrivate(QDateTimeAxis* q): | |
271 | QAbstractAxisPrivate(q), |
|
285 | QAbstractAxisPrivate(q), | |
272 | m_min(QDateTime::fromMSecsSinceEpoch(0)), |
|
286 | m_min(QDateTime::fromMSecsSinceEpoch(0)), | |
273 | m_max(QDateTime::fromMSecsSinceEpoch(0)), |
|
287 | m_max(QDateTime::fromMSecsSinceEpoch(0)), | |
274 | m_tickCount(5) |
|
288 | m_tickCount(5) | |
275 | { |
|
289 | { | |
276 | m_format = "dd-MM-yyyy\nh:mm"; |
|
290 | m_format = "dd-MM-yyyy\nh:mm"; | |
277 | } |
|
291 | } | |
278 |
|
292 | |||
279 | QDateTimeAxisPrivate::~QDateTimeAxisPrivate() |
|
293 | QDateTimeAxisPrivate::~QDateTimeAxisPrivate() | |
280 | { |
|
294 | { | |
281 |
|
295 | |||
282 | } |
|
296 | } | |
283 |
|
297 | |||
284 | void QDateTimeAxisPrivate::handleDomainUpdated() |
|
298 | void QDateTimeAxisPrivate::handleDomainUpdated() | |
285 | { |
|
299 | { | |
286 | Q_Q(QDateTimeAxis); |
|
300 | Q_Q(QDateTimeAxis); | |
287 | Domain* domain = qobject_cast<Domain*>(sender()); |
|
301 | Domain* domain = qobject_cast<Domain*>(sender()); | |
288 | Q_ASSERT(domain); |
|
302 | Q_ASSERT(domain); | |
289 |
|
303 | |||
290 | if(orientation()==Qt::Horizontal){ |
|
304 | if(orientation()==Qt::Horizontal){ | |
291 | q->setRange(QDateTime::fromMSecsSinceEpoch(domain->minX()), QDateTime::fromMSecsSinceEpoch(domain->maxX())); |
|
305 | q->setRange(QDateTime::fromMSecsSinceEpoch(domain->minX()), QDateTime::fromMSecsSinceEpoch(domain->maxX())); | |
292 | }else if(orientation()==Qt::Vertical){ |
|
306 | }else if(orientation()==Qt::Vertical){ | |
293 | q->setRange(QDateTime::fromMSecsSinceEpoch(domain->minY()), QDateTime::fromMSecsSinceEpoch(domain->maxY())); |
|
307 | q->setRange(QDateTime::fromMSecsSinceEpoch(domain->minY()), QDateTime::fromMSecsSinceEpoch(domain->maxY())); | |
294 | } |
|
308 | } | |
295 | } |
|
309 | } | |
296 |
|
310 | |||
297 |
|
311 | |||
298 | void QDateTimeAxisPrivate::setMin(const QVariant &min) |
|
312 | void QDateTimeAxisPrivate::setMin(const QVariant &min) | |
299 | { |
|
313 | { | |
300 | Q_Q(QDateTimeAxis); |
|
314 | Q_Q(QDateTimeAxis); | |
301 | if (min.canConvert(QVariant::DateTime)) |
|
315 | if (min.canConvert(QVariant::DateTime)) | |
302 | q->setMin(min.toDateTime()); |
|
316 | q->setMin(min.toDateTime()); | |
303 | } |
|
317 | } | |
304 |
|
318 | |||
305 | void QDateTimeAxisPrivate::setMax(const QVariant &max) |
|
319 | void QDateTimeAxisPrivate::setMax(const QVariant &max) | |
306 | { |
|
320 | { | |
307 |
|
321 | |||
308 | Q_Q(QDateTimeAxis); |
|
322 | Q_Q(QDateTimeAxis); | |
309 | if (max.canConvert(QVariant::DateTime)) |
|
323 | if (max.canConvert(QVariant::DateTime)) | |
310 | q->setMax(max.toDateTime()); |
|
324 | q->setMax(max.toDateTime()); | |
311 | } |
|
325 | } | |
312 |
|
326 | |||
313 | void QDateTimeAxisPrivate::setRange(const QVariant &min, const QVariant &max) |
|
327 | void QDateTimeAxisPrivate::setRange(const QVariant &min, const QVariant &max) | |
314 | { |
|
328 | { | |
315 | Q_Q(QDateTimeAxis); |
|
329 | Q_Q(QDateTimeAxis); | |
316 | if (min.canConvert(QVariant::DateTime) && max.canConvert(QVariant::DateTime)) |
|
330 | if (min.canConvert(QVariant::DateTime) && max.canConvert(QVariant::DateTime)) | |
317 | q->setRange(min.toDateTime(), max.toDateTime()); |
|
331 | q->setRange(min.toDateTime(), max.toDateTime()); | |
318 | } |
|
332 | } | |
319 |
|
333 | |||
320 | ChartAxis* QDateTimeAxisPrivate::createGraphics(ChartPresenter* presenter) |
|
334 | ChartAxis* QDateTimeAxisPrivate::createGraphics(ChartPresenter* presenter) | |
321 | { |
|
335 | { | |
322 | Q_Q(QDateTimeAxis); |
|
336 | Q_Q(QDateTimeAxis); | |
323 | if(m_orientation == Qt::Vertical){ |
|
337 | if(m_orientation == Qt::Vertical){ | |
324 | return new ChartDateTimeAxisY(q,presenter); |
|
338 | return new ChartDateTimeAxisY(q,presenter); | |
325 | }else{ |
|
339 | }else{ | |
326 | return new ChartDateTimeAxisX(q,presenter); |
|
340 | return new ChartDateTimeAxisX(q,presenter); | |
327 | } |
|
341 | } | |
328 |
|
342 | |||
329 | } |
|
343 | } | |
330 |
|
344 | |||
331 | void QDateTimeAxisPrivate::intializeDomain(Domain* domain) |
|
345 | void QDateTimeAxisPrivate::intializeDomain(Domain* domain) | |
332 | { |
|
346 | { | |
333 | Q_Q(QDateTimeAxis); |
|
347 | Q_Q(QDateTimeAxis); | |
334 | if(m_max == m_min) { |
|
348 | if(m_max == m_min) { | |
335 | if(m_orientation==Qt::Vertical){ |
|
349 | if(m_orientation==Qt::Vertical){ | |
336 | q->setRange(QDateTime::fromMSecsSinceEpoch(domain->minY()), QDateTime::fromMSecsSinceEpoch(domain->maxY())); |
|
350 | q->setRange(QDateTime::fromMSecsSinceEpoch(domain->minY()), QDateTime::fromMSecsSinceEpoch(domain->maxY())); | |
337 | }else{ |
|
351 | }else{ | |
338 | q->setRange(QDateTime::fromMSecsSinceEpoch(domain->minX()), QDateTime::fromMSecsSinceEpoch(domain->maxX())); |
|
352 | q->setRange(QDateTime::fromMSecsSinceEpoch(domain->minX()), QDateTime::fromMSecsSinceEpoch(domain->maxX())); | |
339 | } |
|
353 | } | |
340 | } else { |
|
354 | } else { | |
341 | if(m_orientation==Qt::Vertical){ |
|
355 | if(m_orientation==Qt::Vertical){ | |
342 | domain->setRangeY(m_min.toMSecsSinceEpoch(), m_max.toMSecsSinceEpoch()); |
|
356 | domain->setRangeY(m_min.toMSecsSinceEpoch(), m_max.toMSecsSinceEpoch()); | |
343 | }else{ |
|
357 | }else{ | |
344 | domain->setRangeX(m_min.toMSecsSinceEpoch(), m_max.toMSecsSinceEpoch()); |
|
358 | domain->setRangeX(m_min.toMSecsSinceEpoch(), m_max.toMSecsSinceEpoch()); | |
345 | } |
|
359 | } | |
346 | } |
|
360 | } | |
347 | } |
|
361 | } | |
348 |
|
362 | |||
349 | #include "moc_qdatetimeaxis.cpp" |
|
363 | #include "moc_qdatetimeaxis.cpp" | |
350 | #include "moc_qdatetimeaxis_p.cpp" |
|
364 | #include "moc_qdatetimeaxis_p.cpp" | |
351 |
|
365 | |||
352 | QTCOMMERCIALCHART_END_NAMESPACE |
|
366 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -1,75 +1,77 | |||||
1 | /**************************************************************************** |
|
1 | /**************************************************************************** | |
2 | ** |
|
2 | ** | |
3 | ** Copyright (C) 2012 Digia Plc |
|
3 | ** Copyright (C) 2012 Digia Plc | |
4 | ** All rights reserved. |
|
4 | ** All rights reserved. | |
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
6 | ** |
|
6 | ** | |
7 | ** This file is part of the Qt Commercial Charts Add-on. |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
8 | ** |
|
8 | ** | |
9 | ** $QT_BEGIN_LICENSE$ |
|
9 | ** $QT_BEGIN_LICENSE$ | |
10 | ** Licensees holding valid Qt Commercial licenses may use this file in |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
11 | ** accordance with the Qt Commercial License Agreement provided with the |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
12 | ** Software or, alternatively, in accordance with the terms contained in |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
13 | ** a written agreement between you and Digia. |
|
13 | ** a written agreement between you and Digia. | |
14 | ** |
|
14 | ** | |
15 | ** If you have questions regarding the use of this file, please use |
|
15 | ** If you have questions regarding the use of this file, please use | |
16 | ** contact form at http://qt.digia.com |
|
16 | ** contact form at http://qt.digia.com | |
17 | ** $QT_END_LICENSE$ |
|
17 | ** $QT_END_LICENSE$ | |
18 | ** |
|
18 | ** | |
19 | ****************************************************************************/ |
|
19 | ****************************************************************************/ | |
20 |
|
20 | |||
21 | #ifndef QDATETIMEAXIS_H |
|
21 | #ifndef QDATETIMEAXIS_H | |
22 | #define QDATETIMEAXIS_H |
|
22 | #define QDATETIMEAXIS_H | |
23 |
|
23 | |||
24 | #include "qabstractaxis.h" |
|
24 | #include "qabstractaxis.h" | |
25 |
|
25 | |||
26 | class QDateTime; |
|
26 | class QDateTime; | |
27 |
|
27 | |||
28 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
28 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
29 |
|
29 | |||
30 | class QDateTimeAxisPrivate; |
|
30 | class QDateTimeAxisPrivate; | |
31 |
|
31 | |||
32 | class QTCOMMERCIALCHART_EXPORT QDateTimeAxis : public QAbstractAxis |
|
32 | class QTCOMMERCIALCHART_EXPORT QDateTimeAxis : public QAbstractAxis | |
33 | { |
|
33 | { | |
34 | Q_OBJECT |
|
34 | Q_OBJECT | |
35 | Q_PROPERTY(int tickCount READ tickCount WRITE setTickCount) |
|
35 | Q_PROPERTY(int tickCount READ tickCount WRITE setTickCount) | |
36 | Q_PROPERTY(QDateTime min READ min WRITE setMin NOTIFY minChanged) |
|
36 | Q_PROPERTY(QDateTime min READ min WRITE setMin NOTIFY minChanged) | |
37 | Q_PROPERTY(QDateTime max READ max WRITE setMax NOTIFY maxChanged) |
|
37 | Q_PROPERTY(QDateTime max READ max WRITE setMax NOTIFY maxChanged) | |
|
38 | Q_PROPERTY(QString format READ format WRITE setFormat NOTIFY formatChanged) | |||
38 |
|
39 | |||
39 | public: |
|
40 | public: | |
40 | explicit QDateTimeAxis(QObject *parent = 0); |
|
41 | explicit QDateTimeAxis(QObject *parent = 0); | |
41 | ~QDateTimeAxis(); |
|
42 | ~QDateTimeAxis(); | |
42 |
|
43 | |||
43 | protected: |
|
44 | protected: | |
44 | QDateTimeAxis(QDateTimeAxisPrivate &d,QObject *parent = 0); |
|
45 | QDateTimeAxis(QDateTimeAxisPrivate &d,QObject *parent = 0); | |
45 |
|
46 | |||
46 | public: |
|
47 | public: | |
47 | AxisType type() const; |
|
48 | AxisType type() const; | |
48 |
|
49 | |||
49 | //range handling |
|
50 | //range handling | |
50 | void setMin(QDateTime min); |
|
51 | void setMin(QDateTime min); | |
51 | QDateTime min() const; |
|
52 | QDateTime min() const; | |
52 | void setMax(QDateTime max); |
|
53 | void setMax(QDateTime max); | |
53 | QDateTime max() const; |
|
54 | QDateTime max() const; | |
54 | void setRange(QDateTime min, QDateTime max); |
|
55 | void setRange(QDateTime min, QDateTime max); | |
55 |
|
56 | |||
56 | void setFormat(QString format); |
|
57 | void setFormat(QString format); | |
57 | QString format() const; |
|
58 | QString format() const; | |
58 |
|
59 | |||
59 | //ticks handling |
|
60 | //ticks handling | |
60 | void setTickCount(int count); |
|
61 | void setTickCount(int count); | |
61 | int tickCount() const; |
|
62 | int tickCount() const; | |
62 |
|
63 | |||
63 | Q_SIGNALS: |
|
64 | Q_SIGNALS: | |
64 | void minChanged(QDateTime min); |
|
65 | void minChanged(QDateTime min); | |
65 | void maxChanged(QDateTime max); |
|
66 | void maxChanged(QDateTime max); | |
66 | void rangeChanged(QDateTime min, QDateTime max); |
|
67 | void rangeChanged(QDateTime min, QDateTime max); | |
|
68 | void formatChanged(QString format); | |||
67 |
|
69 | |||
68 | private: |
|
70 | private: | |
69 | Q_DECLARE_PRIVATE(QDateTimeAxis) |
|
71 | Q_DECLARE_PRIVATE(QDateTimeAxis) | |
70 | Q_DISABLE_COPY(QDateTimeAxis) |
|
72 | Q_DISABLE_COPY(QDateTimeAxis) | |
71 | }; |
|
73 | }; | |
72 |
|
74 | |||
73 | QTCOMMERCIALCHART_END_NAMESPACE |
|
75 | QTCOMMERCIALCHART_END_NAMESPACE | |
74 |
|
76 | |||
75 | #endif // QDATETIMEAXIS_H |
|
77 | #endif // QDATETIMEAXIS_H |
General Comments 0
You need to be logged in to leave comments.
Login now