From e18c88bd231bc3e718ed0fd385b7f8f7a7885359 Mon Sep 17 00:00:00 2001 From: Kacper Donat Date: Mon, 7 Apr 2025 20:00:08 +0200 Subject: [PATCH] Misc: Replace dynamic_cast with qobject_cast --- src/Gui/DAGView/DAGModel.cpp | 2 +- src/Gui/ExpressionBindingPy.cpp | 2 +- src/Gui/Flag.cpp | 2 +- src/Gui/MainWindow.cpp | 4 ++-- src/Gui/MainWindowPy.cpp | 4 ++-- .../PreferencePages/DlgSettingsWorkbenchesImp.cpp | 12 ++++++------ src/Gui/TaskView/TaskImage.cpp | 4 ++-- src/Gui/ViewProvider.cpp | 4 ++-- src/Gui/WidgetFactory.cpp | 2 +- src/Gui/propertyeditor/PropertyItem.cpp | 4 ++-- 10 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/Gui/DAGView/DAGModel.cpp b/src/Gui/DAGView/DAGModel.cpp index 2dd2056d60..887ba29922 100644 --- a/src/Gui/DAGView/DAGModel.cpp +++ b/src/Gui/DAGView/DAGModel.cpp @@ -1130,7 +1130,7 @@ void Model::renameAcceptedSlot() assert(selections.size() == 1); const GraphLinkRecord &record = findRecord(selections.front(), *graphLink); - auto lineEdit = dynamic_cast(proxy->widget()); + auto lineEdit = qobject_cast(proxy->widget()); assert(lineEdit); const_cast(record.DObject)->Label.setValue(lineEdit->text().toUtf8().constData()); //const hack diff --git a/src/Gui/ExpressionBindingPy.cpp b/src/Gui/ExpressionBindingPy.cpp index 36938d469e..670966bd00 100644 --- a/src/Gui/ExpressionBindingPy.cpp +++ b/src/Gui/ExpressionBindingPy.cpp @@ -43,7 +43,7 @@ ExpressionBindingPy::ExpressionBindingPy(Py::PythonClassInstance* self, Py::Tupl PythonWrapper wrap; wrap.loadWidgetsModule(); - QWidget* obj = dynamic_cast(wrap.toQObject(Py::Object(pyObj))); + QWidget* obj = qobject_cast(wrap.toQObject(Py::Object(pyObj))); expr = asBinding(obj); if (!expr) { diff --git a/src/Gui/Flag.cpp b/src/Gui/Flag.cpp index 3d975110de..71ed5b932f 100644 --- a/src/Gui/Flag.cpp +++ b/src/Gui/Flag.cpp @@ -136,7 +136,7 @@ void Flag::mouseMoveEvent(QMouseEvent *e) move(e->globalPosition().toPoint() - dragPosition); #endif e->accept(); - auto viewer = dynamic_cast(parentWidget()); + auto viewer = qobject_cast(parentWidget()); if (viewer) viewer->getSoRenderManager()->scheduleRedraw(); } diff --git a/src/Gui/MainWindow.cpp b/src/Gui/MainWindow.cpp index 81ccba8424..d10a117dd3 100644 --- a/src/Gui/MainWindow.cpp +++ b/src/Gui/MainWindow.cpp @@ -1042,7 +1042,7 @@ bool MainWindow::eventFilter(QObject* o, QEvent* e) if (e->type() == QEvent::WindowStateChange) { // notify all mdi views when the active view receives a show normal, show minimized // or show maximized event - auto view = qobject_cast(o); + auto view = dynamic_cast(o); if (view) { // emit this signal Qt::WindowStates oldstate = static_cast(e)->oldState(); Qt::WindowStates newstate = view->windowState(); @@ -1691,7 +1691,7 @@ void MainWindow::switchToDockedMode() // Search for all top-level MDI views QWidgetList toplevel = QApplication::topLevelWidgets(); for (const auto & it : toplevel) { - auto view = qobject_cast(it); + auto view = dynamic_cast(it); if (view) view->setCurrentViewMode(MDIView::Child); } diff --git a/src/Gui/MainWindowPy.cpp b/src/Gui/MainWindowPy.cpp index fc32a23eeb..3a9a12e844 100644 --- a/src/Gui/MainWindowPy.cpp +++ b/src/Gui/MainWindowPy.cpp @@ -127,7 +127,7 @@ Py::Object MainWindowPy::getWindows(const Py::Tuple& args) if (_mw) { QList windows = _mw->windows(); for (auto it : windows) { - auto view = qobject_cast(it); + auto view = dynamic_cast(it); if (view) { mdis.append(Py::asObject(view->getPyObject())); } @@ -149,7 +149,7 @@ Py::Object MainWindowPy::getWindowsOfType(const Py::Tuple& args) if (_mw) { QList windows = _mw->windows(); for (auto it : windows) { - auto view = qobject_cast(it); + auto view = dynamic_cast(it); if (view && view->isDerivedFrom(typeId)) { mdis.append(Py::asObject(view->getPyObject())); } diff --git a/src/Gui/PreferencePages/DlgSettingsWorkbenchesImp.cpp b/src/Gui/PreferencePages/DlgSettingsWorkbenchesImp.cpp index 002641a750..324ac60f80 100644 --- a/src/Gui/PreferencePages/DlgSettingsWorkbenchesImp.cpp +++ b/src/Gui/PreferencePages/DlgSettingsWorkbenchesImp.cpp @@ -270,7 +270,7 @@ void DlgSettingsWorkbenchesImp::saveSettings() }; for (int i = 0; i < ui->wbList->count(); i++) { - wbListItem* wbItem = dynamic_cast(ui->wbList->itemWidget(ui->wbList->item(i))); + wbListItem* wbItem = qobject_cast(ui->wbList->itemWidget(ui->wbList->item(i))); if (!wbItem) continue; std::string wbName = wbItem->objectName().toStdString(); @@ -546,7 +546,7 @@ void DlgSettingsWorkbenchesImp::wbToggled(const QString& wbName, bool enabled) //reorder the list of items. int wbIndex = 0; for (int i = 0; i < ui->wbList->count(); i++) { - wbListItem* wbItem = dynamic_cast(ui->wbList->itemWidget(ui->wbList->item(i))); + wbListItem* wbItem = qobject_cast(ui->wbList->itemWidget(ui->wbList->item(i))); if (wbItem && wbItem->objectName() == wbName) { wbIndex = i; } @@ -555,7 +555,7 @@ void DlgSettingsWorkbenchesImp::wbToggled(const QString& wbName, bool enabled) int destinationIndex = ui->wbList->count(); for (int i = 0; i < ui->wbList->count(); i++) { - wbListItem* wbItem = dynamic_cast(ui->wbList->itemWidget(ui->wbList->item(i))); + wbListItem* wbItem = qobject_cast(ui->wbList->itemWidget(ui->wbList->item(i))); if (wbItem && !wbItem->isEnabled() && (enabled || ((wbItem->objectName()).toStdString() > wbName.toStdString()))) { //If the wb was enabled, then it was in the disabled wbs. So it moves to the row of the currently first disabled wb //If the wb was disabled. Then it goes to the disabled wb where it belongs alphabetically. @@ -574,7 +574,7 @@ void DlgSettingsWorkbenchesImp::setStartWorkbenchComboItems() // fills the combo box with activated workbenches. QStringList enabledWbs; for (int i = 0; i < ui->wbList->count(); i++) { - wbListItem* wbItem = dynamic_cast(ui->wbList->itemWidget(ui->wbList->item(i))); + wbListItem* wbItem = qobject_cast(ui->wbList->itemWidget(ui->wbList->item(i))); if (wbItem && wbItem->isEnabled()) { enabledWbs << wbItem->objectName(); } @@ -614,7 +614,7 @@ void DlgSettingsWorkbenchesImp::setStartWorkbenchComboItems() void DlgSettingsWorkbenchesImp::wbItemMoved() { for (int i = 0; i < ui->wbList->count(); i++) { - wbListItem* wbItem = dynamic_cast(ui->wbList->itemWidget(ui->wbList->item(i))); + wbListItem* wbItem = qobject_cast(ui->wbList->itemWidget(ui->wbList->item(i))); if (wbItem) { wbItem->setShortcutLabel(i); } @@ -630,7 +630,7 @@ void DlgSettingsWorkbenchesImp::onStartWbChanged(int index) //Change wb that user can't deactivate. for (int i = 0; i < ui->wbList->count(); i++) { - wbListItem* wbItem = dynamic_cast(ui->wbList->itemWidget(ui->wbList->item(i))); + wbListItem* wbItem = qobject_cast(ui->wbList->itemWidget(ui->wbList->item(i))); if (wbItem) { wbItem->setStartupWb(wbItem->objectName() == wbName); } diff --git a/src/Gui/TaskView/TaskImage.cpp b/src/Gui/TaskView/TaskImage.cpp index f4110b56c4..8266e0ee95 100644 --- a/src/Gui/TaskView/TaskImage.cpp +++ b/src/Gui/TaskView/TaskImage.cpp @@ -182,7 +182,7 @@ View3DInventorViewer* TaskImage::getViewer() const if (!feature.expired()) { auto vp = Application::Instance->getViewProvider(feature.get()); auto doc = static_cast(vp)->getDocument(); // NOLINT - auto view = dynamic_cast(doc->getViewOfViewProvider(vp)); + auto view = qobject_cast(doc->getViewOfViewProvider(vp)); if (view) { return view->getViewer(); } @@ -633,7 +633,7 @@ bool InteractiveScale::eventFilter(QObject* object, QEvent* event) /* If user press enter in the spinbox, then we validate the tool.*/ if ((keyEvent->key() == Qt::Key_Enter || keyEvent->key() == Qt::Key_Return) - && dynamic_cast(object)) { + && qobject_cast(object)) { Q_EMIT scaleRequired(); } diff --git a/src/Gui/ViewProvider.cpp b/src/Gui/ViewProvider.cpp index 15a30b7adf..d3d7aee137 100644 --- a/src/Gui/ViewProvider.cpp +++ b/src/Gui/ViewProvider.cpp @@ -1011,13 +1011,13 @@ Base::BoundBox3d ViewProvider::getBoundingBox(const char *subname, bool transfor if(!view) view = Application::Instance->activeView(); - auto iview = dynamic_cast(view); + auto iview = qobject_cast(view); if(!iview) { auto doc = Application::Instance->activeDocument(); if(doc) { auto views = doc->getMDIViewsOfType(View3DInventor::getClassTypeId()); if(!views.empty()) - iview = dynamic_cast(views.front()); + iview = qobject_cast(views.front()); } if(!iview) { FC_ERR("no view"); diff --git a/src/Gui/WidgetFactory.cpp b/src/Gui/WidgetFactory.cpp index 38662d1089..01f820e09a 100644 --- a/src/Gui/WidgetFactory.cpp +++ b/src/Gui/WidgetFactory.cpp @@ -86,7 +86,7 @@ QWidget* WidgetFactoryInst::createWidget (const char* sName, QWidget* parent) co try { #ifdef FC_DEBUG - const char* cName = dynamic_cast(w)->metaObject()->className(); + const char* cName = qobject_cast(w)->metaObject()->className(); Base::Console().Log("Widget of type '%s' created.\n", cName); #endif } diff --git a/src/Gui/propertyeditor/PropertyItem.cpp b/src/Gui/propertyeditor/PropertyItem.cpp index 22c5d08faf..d5bedcf79e 100644 --- a/src/Gui/propertyeditor/PropertyItem.cpp +++ b/src/Gui/propertyeditor/PropertyItem.cpp @@ -4746,13 +4746,13 @@ QWidget* PropertyLinkItem::createEditor(QWidget* parent, void PropertyLinkItem::setEditorData(QWidget* editor, const QVariant& data) const { (void)data; - auto ll = dynamic_cast(editor); + auto ll = qobject_cast(editor); return ll->updatePropertyLink(); } QVariant PropertyLinkItem::editorData(QWidget* editor) const { - auto ll = dynamic_cast(editor); + auto ll = qobject_cast(editor); return ll->propertyLink(); }