diff --git a/examples/stackedbarchartdrilldown/main.cpp b/examples/stackedbarchartdrilldown/main.cpp index 4559af6..aa24117 100644 --- a/examples/stackedbarchartdrilldown/main.cpp +++ b/examples/stackedbarchartdrilldown/main.cpp @@ -87,7 +87,6 @@ int main(int argc, char *argv[]) *weeklyCrop << (qrand() % 20); // Get the drilldown series from season series and add crop to it. seasonSeries->drilldownSeries(month)->appendBarSet(weeklyCrop); - seasonSeries->drilldownSeries(month)->setToolTipEnabled(true); *monthlyCrop << weeklyCrop->sum(); } seasonSeries->appendBarSet(monthlyCrop); diff --git a/src/barchart/bar.cpp b/src/barchart/bar.cpp index 8f2c9ae..879eebb 100644 --- a/src/barchart/bar.cpp +++ b/src/barchart/bar.cpp @@ -41,13 +41,15 @@ void Bar::mousePressEvent(QGraphicsSceneMouseEvent *event) void Bar::hoverEnterEvent(QGraphicsSceneHoverEvent *event) { - emit hoverEntered(event->lastScreenPos()); + emit hovered(true); + emit hovered(m_barset, true); } void Bar::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) { Q_UNUSED(event) - emit hoverLeaved(); + emit hovered(false); + emit hovered(m_barset, false); } #include "moc_bar_p.cpp" diff --git a/src/barchart/bar_p.h b/src/barchart/bar_p.h index 7d1543c..29ba46b 100644 --- a/src/barchart/bar_p.h +++ b/src/barchart/bar_p.h @@ -43,8 +43,8 @@ public: Q_SIGNALS: void clicked(QString category, Qt::MouseButtons button); void clicked(QBarSet *barset, QString category, Qt::MouseButtons button); - void hoverEntered(QPoint pos); - void hoverLeaved(); + void hovered(bool status); + void hovered(QBarSet *barset, bool status); private: QString m_category; diff --git a/src/barchart/barchartitem.cpp b/src/barchart/barchartitem.cpp index f19e0f6..9246b74 100644 --- a/src/barchart/barchartitem.cpp +++ b/src/barchart/barchartitem.cpp @@ -31,7 +31,6 @@ #include "chartpresenter_p.h" #include "chartanimator_p.h" #include "chartdataset_p.h" -#include #include QTCOMMERCIALCHART_BEGIN_NAMESPACE @@ -42,7 +41,6 @@ BarChartItem::BarChartItem(QBarSeries *series, ChartPresenter *presenter) : m_series(series) { setFlag(ItemClipsChildrenToShape); - connect(series->d_func(), SIGNAL(showToolTip(QPoint,QString)), this, SLOT(showToolTip(QPoint,QString))); connect(series->d_func(), SIGNAL(updatedBars()), this, SLOT(handleLayoutChanged())); connect(series->d_func(), SIGNAL(restructuredBars()), this, SLOT(handleModelChanged())); setZValue(ChartPresenter::BarSeriesZValue); @@ -51,7 +49,6 @@ BarChartItem::BarChartItem(QBarSeries *series, ChartPresenter *presenter) : BarChartItem::~BarChartItem() { - disconnect(this,SLOT(showToolTip(QPoint,QString))); } void BarChartItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) @@ -68,7 +65,6 @@ QRectF BarChartItem::boundingRect() const void BarChartItem::dataChanged() { - // TODO: performance optimizations. Do we really need to delete and create items every time data is changed or can we reuse them? foreach(QGraphicsItem *item, childItems()) { delete item; } @@ -86,8 +82,8 @@ void BarChartItem::dataChanged() m_bars.append(bar); connect(bar, SIGNAL(clicked(QString,Qt::MouseButtons)), set, SIGNAL(clicked(QString,Qt::MouseButtons))); connect(bar, SIGNAL(clicked(QBarSet*,QString,Qt::MouseButtons)), m_series, SIGNAL(clicked(QBarSet*,QString,Qt::MouseButtons))); - connect(bar, SIGNAL(hoverEntered(QPoint)), set->d_ptr.data(), SLOT(barHoverEnterEvent(QPoint))); - connect(bar, SIGNAL(hoverLeaved()), set->d_ptr.data(), SLOT(barHoverLeaveEvent())); + connect(bar, SIGNAL(hovered(bool)), set, SIGNAL(hovered(bool))); + connect(bar, SIGNAL(hovered(QBarSet*,bool)), m_series, SIGNAL(hovered(QBarSet*,bool))); m_layout.append(QRectF(0, 0, 0, 0)); } } @@ -207,12 +203,6 @@ void BarChartItem::handleLayoutChanged() update(); } -void BarChartItem::showToolTip(QPoint pos, QString tip) -{ - // TODO: cool tooltip instead of default - QToolTip::showText(pos, tip); -} - #include "moc_barchartitem_p.cpp" QTCOMMERCIALCHART_END_NAMESPACE diff --git a/src/barchart/barchartitem_p.h b/src/barchart/barchartitem_p.h index c80c43c..2dd7a8a 100644 --- a/src/barchart/barchartitem_p.h +++ b/src/barchart/barchartitem_p.h @@ -63,9 +63,6 @@ public Q_SLOTS: void handleGeometryChanged(const QRectF &size); void handleLayoutChanged(); - // Internal slots - void showToolTip(QPoint pos, QString tip); // shows tooltip (if enabled) - protected: // TODO: consider these. diff --git a/src/barchart/qbarseries.cpp b/src/barchart/qbarseries.cpp index ae44375..1132331 100644 --- a/src/barchart/qbarseries.cpp +++ b/src/barchart/qbarseries.cpp @@ -205,17 +205,6 @@ QList QBarSeries::barSets() const } /*! - Enables or disables tooltip depending on parameter \a enabled. - Tooltip shows the name of set, when mouse is hovering on top of bar. - Calling without parameter \a enabled, enables the tooltip -*/ -void QBarSeries::setToolTipEnabled(bool enabled) -{ - Q_D(QBarSeries); - d->setToolTipEnabled(enabled); -} - -/*! \fn bool QBarSeries::setModel(QAbstractItemModel *model) Sets the \a model to be used as a data source */ @@ -289,22 +278,6 @@ QString QBarSeriesPrivate::categoryName(int category) return m_internalModel->categoryName(category); } -void QBarSeriesPrivate::setToolTipEnabled(bool enabled) -{ - // TODO: what if we add sets after call to this function? Those sets won't have tooltip enabled. - if (enabled) { - for (int i=0; ibarsetCount(); i++) { - QBarSet *set = m_internalModel->barsetAt(i); - connect(set->d_ptr.data(), SIGNAL(showToolTip(QPoint,QString)), this, SIGNAL(showToolTip(QPoint,QString))); - } - } else { - for (int i=0; ibarsetCount(); i++) { - QBarSet *set = m_internalModel->barsetAt(i); - disconnect(set->d_ptr.data(), SIGNAL(showToolTip(QPoint,QString)), this, SIGNAL(showToolTip(QPoint,QString))); - } - } -} - qreal QBarSeriesPrivate::min() { return m_internalModel->min(); diff --git a/src/barchart/qbarseries.h b/src/barchart/qbarseries.h index 25dc4e5..10fc95b 100644 --- a/src/barchart/qbarseries.h +++ b/src/barchart/qbarseries.h @@ -67,9 +67,7 @@ protected: Q_SIGNALS: void clicked(QBarSet *barset, QString category, Qt::MouseButtons button); void selected(); - -public Q_SLOTS: - void setToolTipEnabled(bool enabled = true); // enables tooltips + void hovered(QBarSet* barset, bool status); protected: Q_DECLARE_PRIVATE(QBarSeries) diff --git a/src/barchart/qbarseries_p.h b/src/barchart/qbarseries_p.h index 1a75b73..20a11fc 100644 --- a/src/barchart/qbarseries_p.h +++ b/src/barchart/qbarseries_p.h @@ -40,10 +40,6 @@ Q_SIGNALS: void selected(); void updatedBars(); void restructuredBars(); - void showToolTip(QPoint pos, QString tip); - -public Q_SLOTS: - void setToolTipEnabled(bool enabled = true); // enables tooltips private Q_SLOTS: // slots for updating bars when data in model changes diff --git a/src/barchart/qbarset.cpp b/src/barchart/qbarset.cpp index da13554..079f001 100644 --- a/src/barchart/qbarset.cpp +++ b/src/barchart/qbarset.cpp @@ -20,7 +20,6 @@ #include "qbarset.h" #include "qbarset_p.h" -#include QTCOMMERCIALCHART_BEGIN_NAMESPACE @@ -46,6 +45,11 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE */ /*! + \fn void QBarSet::hovered(bool status) + \brief signals that mouse has hovered over the set. If \a status is true, then mouse was entered. If \a status is false, then mouse was left. +*/ + +/*! Constructs QBarSet with a name of \a name and with parent of \a parent */ QBarSet::QBarSet(QString name, QObject *parent) @@ -257,21 +261,6 @@ bool QBarSet::labelsVisible() const return d_ptr->m_labelsVisible; } -/* -void QBarSet::barHoverEnterEvent(QPoint pos) -{ - emit showToolTip(pos, m_name); - emit hoverEnter(pos); -} -*/ -/* -void QBarSet::barHoverLeaveEvent() -{ - // Emit signal to user of charts - emit hoverLeave(); -} -*/ - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// QBarSetPrivate::QBarSetPrivate(QString name, QBarSet *parent) : QObject(parent), @@ -286,22 +275,6 @@ QBarSetPrivate::~QBarSetPrivate() { } - - -//TODO: fixme , refactor it and get rid of it -void QBarSetPrivate::barHoverEnterEvent(QPoint pos) -{ - emit showToolTip(pos, m_name); - emit hoverEnter(pos); -} - -//TODO: fixme , refactor it and get rid of it -void QBarSetPrivate::barHoverLeaveEvent() -{ - // Emit signal to user of charts - emit hoverLeave(); -} - #include "moc_qbarset.cpp" #include "moc_qbarset_p.cpp" diff --git a/src/barchart/qbarset.h b/src/barchart/qbarset.h index 1ffa769..700ead5 100644 --- a/src/barchart/qbarset.h +++ b/src/barchart/qbarset.h @@ -66,7 +66,9 @@ public: bool labelsVisible() const; Q_SIGNALS: - void clicked(QString category, Qt::MouseButtons button); // Clicked and hover signals exposed to user + void clicked(QString category, Qt::MouseButtons button); + void selected(); + void hovered(bool status); private: QScopedPointer d_ptr; diff --git a/src/barchart/qbarset_p.h b/src/barchart/qbarset_p.h index 3c3ca05..3f051f8 100644 --- a/src/barchart/qbarset_p.h +++ b/src/barchart/qbarset_p.h @@ -17,15 +17,8 @@ Q_SIGNALS: void clicked(QString category, Qt::MouseButtons button); void structureChanged(); void valueChanged(); - void hoverEnter(QPoint pos); - void hoverLeave(); - void showToolTip(QPoint pos, QString tip); void labelsVisibleChanged(bool visible); -public Q_SLOTS: - void barHoverEnterEvent(QPoint pos); - void barHoverLeaveEvent(); - public: QBarSet * const q_ptr; QString m_name; diff --git a/test/chartwidgettest/mainwidget.cpp b/test/chartwidgettest/mainwidget.cpp index ca0167e..4e136b2 100644 --- a/test/chartwidgettest/mainwidget.cpp +++ b/test/chartwidgettest/mainwidget.cpp @@ -287,9 +287,6 @@ void MainWidget::addSeries(QString seriesName, int columnCount, int rowCount, QS series->appendBarSet(set); } - // TODO: new implementation of setFloatingValuesEnabled with signals - //series->setFloatingValuesEnabled(true); - series->setToolTipEnabled(true); m_chart->addSeries(series); } else if (seriesName == "Spline") { for (int j(0); j < data.count(); j ++) { diff --git a/test/tablemodelchart/tablewidget.cpp b/test/tablemodelchart/tablewidget.cpp index 6a4db6e..da5bd76 100644 --- a/test/tablemodelchart/tablewidget.cpp +++ b/test/tablemodelchart/tablewidget.cpp @@ -312,7 +312,6 @@ void TableWidget::updateChartType(bool toggle) QBarSeries* barSeries = new QBarSeries(QStringList()); barSeries->setModel(m_model); barSeries->setModelMapping(5, 2, 4, Qt::Vertical); - barSeries->setToolTipEnabled(true); m_chart->addSeries(barSeries); QList barsets = barSeries->barSets(); for (int i = 0; i < barsets.count(); i++) {