From 801e6b38d0b8de39aa7027db78069695d9c35404 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 29 Sep 2024 19:43:45 -0400 Subject: Avoid static downcasts --- src/jalv_qt.cpp | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) (limited to 'src/jalv_qt.cpp') diff --git a/src/jalv_qt.cpp b/src/jalv_qt.cpp index f13ee6f..ef29858 100644 --- a/src/jalv_qt.cpp +++ b/src/jalv_qt.cpp @@ -253,17 +253,22 @@ FlowLayout::doLayout(const QRect& rect, bool testOnly) const int FlowLayout::smartSpacing(QStyle::PixelMetric pm) const { - QObject* parent = this->parent(); + QObject* const parent = this->parent(); if (!parent) { return -1; } - if (parent->isWidgetType()) { - auto* const pw = static_cast(parent); - return pw->style()->pixelMetric(pm, nullptr, pw); + auto* const parentWidget = qobject_cast(parent); + if (parentWidget) { + return parentWidget->style()->pixelMetric(pm, nullptr, parentWidget); } - return static_cast(parent)->spacing(); + auto* const parentLayout = qobject_cast(parent); + if (parentLayout) { + return parentLayout->spacing(); + } + + return -1; } class Timer : public QTimer @@ -672,13 +677,13 @@ jalv_frontend_open(Jalv* jalv) if (jalv->ui_instance) { widget = static_cast(suil_instance_get_widget(jalv->ui_instance)); } else { - QWidget* controlWidget = build_control_widget(jalv); - - widget = new QScrollArea(); - static_cast(widget)->setWidget(controlWidget); - static_cast(widget)->setWidgetResizable(true); - widget->setMinimumWidth(800); - widget->setMinimumHeight(600); + auto* const controlWidget = build_control_widget(jalv); + auto* const scrollArea = new QScrollArea(); + scrollArea->setWidget(controlWidget); + scrollArea->setWidgetResizable(true); + scrollArea->setMinimumWidth(800); + scrollArea->setMinimumHeight(600); + widget = scrollArea; } LilvNode* name = lilv_plugin_get_name(jalv->plugin); -- cgit v1.2.1