MCPcopy Create free account
hub / github.com/KDAB/GammaRay / widgetSelectionChanged

Method widgetSelectionChanged

plugins/widgetinspector/widgetinspectorserver.cpp:148–193  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

146}
147
148void WidgetInspectorServer::widgetSelectionChanged(const QItemSelection &selection)
149{
150 ProbeGuard guard;
151
152 if (selection.isEmpty()) {
153 m_propertyController->setObject(nullptr);
154 return;
155 }
156 const QModelIndex index = selection.first().topLeft();
157
158 QLayout *layout = nullptr;
159 QWidget *widget = nullptr;
160 if (index.isValid()) {
161 QObject *obj = index.data(ObjectModel::ObjectRole).value<QObject *>();
162 m_propertyController->setObject(obj);
163 widget = qobject_cast<QWidget *>(obj);
164 layout = qobject_cast<QLayout *>(obj);
165 if (!widget && layout)
166 widget = layout->parentWidget();
167 } else {
168 m_propertyController->setObject(nullptr);
169 }
170
171 if (m_selectedWidget == widget && !layout)
172 return;
173
174 if (!m_selectedWidget || !widget || m_selectedWidget->window() != widget->window())
175 m_remoteView->resetView();
176 m_selectedWidget = widget;
177 m_remoteView->setEventReceiver(m_selectedWidget ? m_selectedWidget->window()->windowHandle() : nullptr);
178
179 if (m_selectedWidget == m_overlayWidget) {
180 // this should not happen, but apparently our object recovery is slightly too good sometimes ;)
181 return;
182 }
183
184 if (layout)
185 m_overlayWidget->placeOn(layout);
186 else
187 m_overlayWidget->placeOn(widget);
188
189 if (!m_selectedWidget)
190 return;
191
192 updateWidgetPreview();
193}
194
195bool WidgetInspectorServer::eventFilter(QObject *object, QEvent *event)
196{

Callers

nothing calls this directly

Calls 9

parentWidgetMethod · 0.80
resetViewMethod · 0.80
setEventReceiverMethod · 0.80
isEmptyMethod · 0.45
setObjectMethod · 0.45
isValidMethod · 0.45
dataMethod · 0.45
windowMethod · 0.45
placeOnMethod · 0.45

Tested by

no test coverage detected