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

Method saveState

ui/uistatemanager.cpp:222–256  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

220}
221
222void UIStateManager::saveState()
223{
224 if (!Endpoint::instance()->isConnected())
225 return;
226
227 if (!m_initialized) {
228 qWarning() << Q_FUNC_INFO << "Attempting to saveState for a not yet initialized state manager.";
229 return;
230 }
231
232 if (m_settingsAccess) {
233 qWarning() << Q_FUNC_INFO << "Recursive save/restore state detected" << widgetPath(m_widget) << m_widget;
234 return;
235 }
236
237 m_settingsAccess = true;
238
239 // Allow save state per end point
240 if (m_targetStateSource) {
241 Q_ASSERT(!Endpoint::instance()->key().isEmpty());
242 m_stateSettings->beginGroup(Endpoint::instance()->key());
243 QMetaMethod method = m_targetStateSource->method(m_targetSaveMethodId);
244 QObject *target = m_targetStateSource == m_widget->metaObject() ? qobject_cast<QObject *>(m_widget) : this;
245 // clang-format off
246 method.invoke(target, Q_ARG(QSettings*, m_stateSettings));
247 // clang-format on
248 m_stateSettings->endGroup();
249 }
250
251 saveWindowState();
252 saveSplitterState();
253 saveHeaderState();
254
255 m_settingsAccess = false;
256}
257
258bool UIStateManager::eventFilter(QObject *object, QEvent *event)
259{

Callers 5

saveWindowStateMethod · 0.45
saveSplitterStateMethod · 0.45
saveHeaderStateMethod · 0.45

Calls 4

keyMethod · 0.80
isConnectedMethod · 0.45
isEmptyMethod · 0.45
metaObjectMethod · 0.45

Tested by 1