From 1bfc0919b8ddb0f1576b6f7ad20a72dc5d23f3e4 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 2 Mar 2023 15:46:31 +0100 Subject: graphgallery example: Rearrange initialization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Calculate the sizes in main and pass them to the graph initialization functions. Also display the message box for GL errors in main. Pick-to: 6.5 Task-number: QTBUG-110698 Change-Id: I622311220e6ff63980b59778bfe9bb56922e6149 Reviewed-by: Tomi Korpipää --- .../datavisualization/graphgallery/bargraph.cpp | 15 +++++-------- examples/datavisualization/graphgallery/bargraph.h | 2 +- examples/datavisualization/graphgallery/main.cpp | 26 +++++++++++++--------- .../graphgallery/scattergraph.cpp | 16 +++++-------- .../datavisualization/graphgallery/scattergraph.h | 2 +- .../graphgallery/surfacegraph.cpp | 16 +++++-------- .../datavisualization/graphgallery/surfacegraph.h | 2 +- 7 files changed, 33 insertions(+), 46 deletions(-) (limited to 'examples/datavisualization') diff --git a/examples/datavisualization/graphgallery/bargraph.cpp b/examples/datavisualization/graphgallery/bargraph.cpp index 5bb04c01..3b981f87 100644 --- a/examples/datavisualization/graphgallery/bargraph.cpp +++ b/examples/datavisualization/graphgallery/bargraph.cpp @@ -10,7 +10,6 @@ #include #include #include -#include #include #include #include @@ -26,22 +25,18 @@ BarGraph::BarGraph() BarGraph::~BarGraph() = default; -bool BarGraph::initialize() +bool BarGraph::initialize(const QSize &minimumGraphSize, const QSize &maximumGraphSize) { - if (!m_barsGraph->hasContext()) { - QMessageBox msgBox; - msgBox.setText("Couldn't initialize the OpenGL context."); - msgBox.exec(); + if (!m_barsGraph->hasContext()) return false; - } //! [1] m_barsWidget = new QWidget; QHBoxLayout *hLayout = new QHBoxLayout(m_barsWidget); m_container = QWidget::createWindowContainer(m_barsGraph, m_barsWidget); - QSize screenSize = m_barsGraph->screen()->size(); - m_container->setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 1.75)); - m_container->setMaximumSize(screenSize); + m_barsGraph->resize(minimumGraphSize); + m_container->setMinimumSize(minimumGraphSize); + m_container->setMaximumSize(maximumGraphSize); m_container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); m_container->setFocusPolicy(Qt::StrongFocus); hLayout->addWidget(m_container, 1); diff --git a/examples/datavisualization/graphgallery/bargraph.h b/examples/datavisualization/graphgallery/bargraph.h index 79c78510..5c4f98d9 100644 --- a/examples/datavisualization/graphgallery/bargraph.h +++ b/examples/datavisualization/graphgallery/bargraph.h @@ -14,7 +14,7 @@ public: BarGraph(); ~BarGraph(); - bool initialize(); + bool initialize(const QSize &minimumGraphSize, const QSize &maximumGraphSize); QWidget *barsWidget() { return m_barsWidget; } private: diff --git a/examples/datavisualization/graphgallery/main.cpp b/examples/datavisualization/graphgallery/main.cpp index efe8ecbd..3e581983 100644 --- a/examples/datavisualization/graphgallery/main.cpp +++ b/examples/datavisualization/graphgallery/main.cpp @@ -6,8 +6,10 @@ #include "surfacegraph.h" #include +#include #include #include +#include using namespace Qt::StringLiterals; @@ -17,24 +19,26 @@ int main(int argc, char **argv) QApplication app(argc, argv); + // Create a tab widget for creating own tabs for Q3DBars, Q3DScatter, and Q3DSurface + QTabWidget tabWidget; + tabWidget.setWindowTitle(u"Graph Gallery"_s); + + const QSize screenSize = tabWidget.screen()->size(); + const QSize minimumGraphSize{screenSize.width() / 2, qRound(screenSize.height() / 1.75)}; + // Create bar graph BarGraph bars; - if (!bars.initialize()) - return -1; - // Create scatter graph ScatterGraph scatter; - if (!scatter.initialize()) - return -1; - // Create surface graph SurfaceGraph surface; - if (!surface.initialize()) - return -1; - // Create a tab widget for creating own tabs for Q3DBars, Q3DScatter, and Q3DSurface - QTabWidget tabWidget; - tabWidget.setWindowTitle(u"Graph Gallery"_s); + if (!bars.initialize(minimumGraphSize, screenSize) + || !scatter.initialize(minimumGraphSize, screenSize) + || !surface.initialize(minimumGraphSize, screenSize)) { + QMessageBox::warning(nullptr, u"Graph Gallery"_s, u"Couldn't initialize the OpenGL context."_s); + return -1; + } // Add bars widget tabWidget.addTab(bars.barsWidget(), u"Bar Graph"_s); diff --git a/examples/datavisualization/graphgallery/scattergraph.cpp b/examples/datavisualization/graphgallery/scattergraph.cpp index 043d43ac..7506f914 100644 --- a/examples/datavisualization/graphgallery/scattergraph.cpp +++ b/examples/datavisualization/graphgallery/scattergraph.cpp @@ -8,7 +8,6 @@ #include #include #include -#include #include using namespace Qt::StringLiterals; @@ -20,21 +19,16 @@ ScatterGraph::ScatterGraph() ScatterGraph::~ScatterGraph() = default; -bool ScatterGraph::initialize() +bool ScatterGraph::initialize(const QSize &minimumGraphSize, const QSize &maximumGraphSize) { - if (!m_scatterGraph->hasContext()) { - QMessageBox msgBox; - msgBox.setText("Couldn't initialize the OpenGL context."); - msgBox.exec(); - return -1; - } + if (!m_scatterGraph->hasContext()) + return false; m_scatterWidget = new QWidget; QHBoxLayout *hLayout = new QHBoxLayout(m_scatterWidget); m_container = QWidget::createWindowContainer(m_scatterGraph, m_scatterWidget); - QSize screenSize = m_scatterGraph->screen()->size(); - m_container->setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 1.75)); - m_container->setMaximumSize(screenSize); + m_container->setMinimumSize(minimumGraphSize); + m_container->setMaximumSize(maximumGraphSize); m_container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); m_container->setFocusPolicy(Qt::StrongFocus); hLayout->addWidget(m_container, 1); diff --git a/examples/datavisualization/graphgallery/scattergraph.h b/examples/datavisualization/graphgallery/scattergraph.h index 0d3b8fc3..a7170eee 100644 --- a/examples/datavisualization/graphgallery/scattergraph.h +++ b/examples/datavisualization/graphgallery/scattergraph.h @@ -14,7 +14,7 @@ public: ScatterGraph(); ~ScatterGraph(); - bool initialize(); + bool initialize(const QSize &minimumGraphSize, const QSize &maximumGraphSize); QWidget *scatterWidget() { return m_scatterWidget; } private: diff --git a/examples/datavisualization/graphgallery/surfacegraph.cpp b/examples/datavisualization/graphgallery/surfacegraph.cpp index 5de2b7cd..6147c437 100644 --- a/examples/datavisualization/graphgallery/surfacegraph.cpp +++ b/examples/datavisualization/graphgallery/surfacegraph.cpp @@ -10,7 +10,6 @@ #include #include #include -#include #include #include @@ -23,21 +22,16 @@ SurfaceGraph::SurfaceGraph() SurfaceGraph::~SurfaceGraph() = default; -bool SurfaceGraph::initialize() +bool SurfaceGraph::initialize(const QSize &minimumGraphSize, const QSize &maximumGraphSize) { - if (!m_surfaceGraph->hasContext()) { - QMessageBox msgBox; - msgBox.setText("Couldn't initialize the OpenGL context."); - msgBox.exec(); - return -1; - } + if (!m_surfaceGraph->hasContext()) + return false; m_surfaceWidget = new QWidget; QHBoxLayout *hLayout = new QHBoxLayout(m_surfaceWidget); m_container = QWidget::createWindowContainer(m_surfaceGraph, m_surfaceWidget); - QSize screenSize = m_surfaceGraph->screen()->size(); - m_container->setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 1.75)); - m_container->setMaximumSize(screenSize); + m_container->setMinimumSize(minimumGraphSize); + m_container->setMaximumSize(maximumGraphSize); m_container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); m_container->setFocusPolicy(Qt::StrongFocus); hLayout->addWidget(m_container, 1); diff --git a/examples/datavisualization/graphgallery/surfacegraph.h b/examples/datavisualization/graphgallery/surfacegraph.h index 92b448ad..5e012b19 100644 --- a/examples/datavisualization/graphgallery/surfacegraph.h +++ b/examples/datavisualization/graphgallery/surfacegraph.h @@ -14,7 +14,7 @@ public: SurfaceGraph(); ~SurfaceGraph(); - bool initialize(); + bool initialize(const QSize &minimumGraphSize, const QSize &maximumGraphSize); QWidget *surfaceWidget() { return m_surfaceWidget; } private: -- cgit v1.2.3