qcategoriesaxis.cpp
222 lines
| 4.8 KiB
| text/x-c
|
CppLexer
|
r1540 | /**************************************************************************** | ||
** | ||||
** Copyright (C) 2012 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 Commercial Charts Add-on. | ||||
** | ||||
** $QT_BEGIN_LICENSE$ | ||||
** Licensees holding valid Qt Commercial licenses may use this file in | ||||
** accordance with the Qt Commercial 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 "qcategoriesaxis.h" | ||||
#include "qcategoriesaxis_p.h" | ||||
|
r1556 | #include "chartaxisx_p.h" | ||
#include "chartaxisy_p.h" | ||||
|
r1540 | |||
QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||||
QCategoriesAxis::QCategoriesAxis(QObject *parent): | ||||
QAbstractAxis(*new QCategoriesAxisPrivate(this),parent) | ||||
{ | ||||
} | ||||
QCategoriesAxis::~QCategoriesAxis() | ||||
{ | ||||
} | ||||
QCategoriesAxis::QCategoriesAxis(QCategoriesAxisPrivate &d,QObject *parent):QAbstractAxis(d,parent) | ||||
{ | ||||
} | ||||
/*! | ||||
Appends \a categories to axis | ||||
*/ | ||||
|
r1541 | void QCategoriesAxis::append(const QStringList &categories) | ||
|
r1540 | { | ||
Q_D(QCategoriesAxis); | ||||
d->m_categories.append(categories); | ||||
emit categoriesChanged(); | ||||
} | ||||
/*! | ||||
Appends \a category to axis | ||||
*/ | ||||
void QCategoriesAxis::append(const QString &category) | ||||
{ | ||||
Q_D(QCategoriesAxis); | ||||
d->m_categories.append(category); | ||||
emit categoriesChanged(); | ||||
} | ||||
/*! | ||||
Removes \a category from axis | ||||
*/ | ||||
void QCategoriesAxis::remove(const QString &category) | ||||
{ | ||||
Q_D(QCategoriesAxis); | ||||
if (d->m_categories.contains(category)) { | ||||
d->m_categories.removeAt(d->m_categories.indexOf(category)); | ||||
emit categoriesChanged(); | ||||
} | ||||
} | ||||
/*! | ||||
Inserts \a category to axis at \a index | ||||
*/ | ||||
void QCategoriesAxis::insert(int index, const QString &category) | ||||
{ | ||||
Q_D(QCategoriesAxis); | ||||
d->m_categories.insert(index,category); | ||||
emit categoriesChanged(); | ||||
} | ||||
/*! | ||||
Removes all categories. | ||||
*/ | ||||
void QCategoriesAxis::clear() | ||||
{ | ||||
Q_D(QCategoriesAxis); | ||||
d->m_categories.clear(); | ||||
emit categoriesChanged(); | ||||
} | ||||
|
r1550 | void QCategoriesAxis::setCategories(const QStringList &categories) | ||
{ | ||||
Q_D(QCategoriesAxis); | ||||
d->m_categories = categories; | ||||
emit categoriesChanged(); | ||||
} | ||||
QStringList QCategoriesAxis::categories() | ||||
{ | ||||
Q_D(QCategoriesAxis); | ||||
return d->m_categories; | ||||
} | ||||
|
r1540 | /*! | ||
Returns number of categories. | ||||
*/ | ||||
|
r1541 | int QCategoriesAxis::count() const | ||
|
r1540 | { | ||
|
r1541 | Q_D(const QCategoriesAxis); | ||
|
r1540 | return d->m_categories.count(); | ||
} | ||||
/*! | ||||
Returns category at \a index. Index must be valid. | ||||
*/ | ||||
QString QCategoriesAxis::at(int index) const | ||||
{ | ||||
Q_D(const QCategoriesAxis); | ||||
return d->m_categories.at(index); | ||||
} | ||||
/*! | ||||
Sets minimum category to \a minCategory. | ||||
*/ | ||||
|
r1544 | void QCategoriesAxis::setMin(const QString& minCategory) | ||
|
r1540 | { | ||
Q_D(QCategoriesAxis); | ||||
int minIndex = d->m_categories.indexOf(minCategory); | ||||
if (minIndex == -1) | ||||
return; | ||||
// else | ||||
// QAbstractAxis::setMin(minIndex); | ||||
} | ||||
/*! | ||||
Sets maximum category to \a maxCategory. | ||||
*/ | ||||
|
r1544 | void QCategoriesAxis::setMax(const QString& maxCategory) | ||
|
r1540 | { | ||
Q_D(QCategoriesAxis); | ||||
int maxIndex = d->m_categories.indexOf(maxCategory); | ||||
if (maxIndex == -1) | ||||
return; | ||||
// else | ||||
// QAbstractAxis::setMax(maxIndex); | ||||
} | ||||
/*! | ||||
Sets range from \a minCategory to \a maxCategory | ||||
*/ | ||||
|
r1544 | void QCategoriesAxis::setRange(const QString& minCategory, const QString& maxCategory) | ||
|
r1540 | { | ||
// TODO: what if maxCategory < minCategory? | ||||
setMin(minCategory); | ||||
setMax(maxCategory); | ||||
} | ||||
/*! | ||||
Returns the type of axis. | ||||
*/ | ||||
QAbstractAxis::AxisType QCategoriesAxis::type() const | ||||
{ | ||||
return AxisTypeCategories; | ||||
} | ||||
|
r1544 | ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
QCategoriesAxisPrivate::QCategoriesAxisPrivate(QCategoriesAxis* q): | ||||
QAbstractAxisPrivate(q) | ||||
|
r1541 | { | ||
|
r1544 | |||
|
r1541 | } | ||
|
r1544 | QCategoriesAxisPrivate::~QCategoriesAxisPrivate() | ||
|
r1541 | { | ||
|
r1544 | |||
|
r1541 | } | ||
|
r1544 | |||
void QCategoriesAxisPrivate::setMin(const QVariant& min) | ||||
|
r1541 | { | ||
|
r1544 | Q_Q(QCategoriesAxis); | ||
q->setMin(min.toString()); | ||||
|
r1541 | } | ||
|
r1540 | |||
|
r1544 | void QCategoriesAxisPrivate::setMax(const QVariant& max) | ||
|
r1541 | { | ||
|
r1544 | Q_Q(QCategoriesAxis); | ||
q->setMax(max.toString()); | ||||
|
r1541 | } | ||
|
r1540 | |||
|
r1544 | void QCategoriesAxisPrivate::setRange(const QVariant& min, const QVariant& max) | ||
|
r1540 | { | ||
|
r1544 | Q_Q(QCategoriesAxis); | ||
q->setRange(min.toString(),max.toString()); | ||||
|
r1540 | } | ||
|
r1544 | int QCategoriesAxisPrivate::ticksCount() const | ||
|
r1540 | { | ||
|
r1544 | return m_categories.count()+1; | ||
|
r1540 | } | ||
|
r1556 | ChartAxis* QCategoriesAxisPrivate::createGraphics(ChartPresenter* presenter) | ||
{ | ||||
Q_Q( QCategoriesAxis); | ||||
if(m_orientation == Qt::Vertical){ | ||||
return new ChartAxisY(q,presenter); | ||||
}else{ | ||||
return new ChartAxisX(q,presenter); | ||||
} | ||||
} | ||||
|
r1540 | #include "moc_qcategoriesaxis.cpp" | ||
#include "moc_qcategoriesaxis_p.cpp" | ||||
QTCOMMERCIALCHART_END_NAMESPACE | ||||