From 2513f99a80d7979522f90a32fcc6df309d838669 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kera=CC=88nen=20Pasi?= Date: Thu, 7 Nov 2013 15:31:21 +0200 Subject: Adds methods to widget components for setting custom input handlers. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I9939c99164b7cf8a524a435899e2f78df36c1fc7 Reviewed-by: Tomi Korpipää Reviewed-by: Miikka Heikkinen --- tests/barstest/chart.cpp | 25 ++++++++++++++++++++++++- tests/barstest/chart.h | 4 ++++ tests/barstest/main.cpp | 3 +++ 3 files changed, 31 insertions(+), 1 deletion(-) (limited to 'tests/barstest') diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index 21aeb269..268c8faa 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -53,7 +53,9 @@ GraphModifier::GraphModifier(Q3DBars *barchart) m_temperatureData(new QBarDataProxy), m_genericData(new QBarDataProxy), m_currentAxis(m_fixedRangeAxis), - m_negativeValuesOn(false) + m_negativeValuesOn(false), + m_useNullInputHandler(false), + m_defaultInputHandler(0) { // Generate generic labels QStringList genericColumnLabels; @@ -118,12 +120,18 @@ GraphModifier::GraphModifier(Q3DBars *barchart) m_chart->setFont(QFont("Times Roman", 20)); + // Release and store the default input handler. + m_defaultInputHandler = m_chart->activeInputHandler(); + m_chart->releaseInputHandler(m_defaultInputHandler); + m_chart->setActiveInputHandler(m_defaultInputHandler); + resetTemperatureData(); } GraphModifier::~GraphModifier() { delete m_chart; + delete m_defaultInputHandler; } void GraphModifier::start() @@ -531,6 +539,21 @@ void GraphModifier::handleSelectionChange(const QPoint &position) qDebug() << "Selected bar position:" << position; } +void GraphModifier::setUseNullInputHandler(bool useNull) +{ + qDebug() << "setUseNullInputHandler" << useNull; + if (m_useNullInputHandler == useNull) + return; + + m_useNullInputHandler = useNull; + + if (useNull) + m_chart->setActiveInputHandler(0); + else + m_chart->setActiveInputHandler(m_defaultInputHandler); +} + + void GraphModifier::changeShadowQuality(int quality) { QDataVis::ShadowQuality sq = QDataVis::ShadowQuality(quality); diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h index 995ac406..11af4949 100644 --- a/tests/barstest/chart.h +++ b/tests/barstest/chart.h @@ -20,6 +20,7 @@ #define CHARTMODIFIER_H #include +#include #include #include @@ -80,6 +81,7 @@ public slots: void changeShadowQuality(int quality); void shadowQualityUpdatedByVisual(QDataVis::ShadowQuality shadowQuality); void handleSelectionChange(const QPoint &position); + void setUseNullInputHandler(bool useNull); signals: void shadowQualityChanged(int quality); @@ -112,6 +114,8 @@ private: QBarDataProxy *m_genericData; Q3DValueAxis *m_currentAxis; bool m_negativeValuesOn; + bool m_useNullInputHandler; + QAbstract3DInputHandler *m_defaultInputHandler; }; #endif diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp index 9ed0407c..dac9f42a 100644 --- a/tests/barstest/main.cpp +++ b/tests/barstest/main.cpp @@ -377,6 +377,9 @@ int main(int argc, char **argv) QObject::connect(gridCheckBox, &QCheckBox::stateChanged, modifier, &GraphModifier::setGridEnabled); + QObject::connect(rotationCheckBox, &QCheckBox::stateChanged, modifier, + &GraphModifier::setUseNullInputHandler); + QObject::connect(rotationCheckBox, &QCheckBox::stateChanged, rotationSliderX, &QSlider::setEnabled); QObject::connect(rotationCheckBox, &QCheckBox::stateChanged, rotationSliderX, -- cgit v1.2.3