27#include "moc_qgswidgetstatehelper_p.cpp"
35 if ( event->type() == QEvent::Close || event->type() == QEvent::Destroy || event->type() == QEvent::Hide )
37 QWidget *widget = qobject_cast<QWidget *>(
object );
40 if ( widget->property(
"widgetStateHelperWasShown" ).toBool() )
42 const QString name = widgetSafeName( widget );
43 const QString key = mKeys[name];
45 widget->setProperty(
"widgetStateHelperWasShown", QVariant(
false ) );
48 else if ( event->type() == QEvent::Show )
50 QWidget *widget = qobject_cast<QWidget *>(
object );
53 if ( widget->property(
"widgetStateHelperWasShown" ).toBool() )
54 return QObject::eventFilter(
object, event );
56 const QString name = widgetSafeName( widget );
64 QWindow *win = widget->windowHandle();
66 return QObject::eventFilter(
object, event );
68 if ( !( win->windowStates() & Qt::WindowMaximized ) )
70 const QString key = mKeys[name];
74 widget->setProperty(
"widgetStateHelperWasShown", QVariant(
true ) );
76 return QObject::eventFilter(
object, event );
81 const QString name = widgetSafeName( widget );
83 widget->installEventFilter(
this );
86QString QgsWidgetStateHelper::widgetSafeName( QWidget *widget )
88 if ( widget->objectName().isEmpty() )
90 return widget->metaObject()->className();
92 return widget->objectName();
bool restoreGeometry(QWidget *widget, const QString &keyName)
Restore the wigget geometry from settings.
void saveGeometry(QWidget *widget, const QString &keyName)
Save the wigget geometry into settings.