#include <QDockWidget>
#include <QBoxLayout>
#include <QMainWindow>
#include <QApplication>
class MainWindow
: public QMainWindow
{
Q_OBJECT
private slots:
void floatingChanged(bool floating)
{
if( floating )
static_cast<QDockWidget*>(QObject::sender())->showFullScreen();
}
public:
MainWindow()
: QMainWindow()
{
QWidget* central = new QWidget();
central->setLayout(new QBoxLayout(QBoxLayout::TopToBottom));
this->setCentralWidget(central);
QDockWidget* dockwidget = new QDockWidget(this);
this->centralWidget()->layout()->addWidget(dockwidget);
QObject::connect(dockwidget, SIGNAL(topLevelChanged(bool)), this, SLOT(floatingChanged(bool)));
}
};
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QMainWindow* window = new MainWindow;
window->show();
return app.exec();
}
I2luY2x1ZGUgPFFEb2NrV2lkZ2V0PgojaW5jbHVkZSA8UUJveExheW91dD4KI2luY2x1ZGUgPFFNYWluV2luZG93PgojaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgoKY2xhc3MgTWFpbldpbmRvdwogICAgICAgIDogcHVibGljIFFNYWluV2luZG93CnsKICAgIFFfT0JKRUNUCgpwcml2YXRlIHNsb3RzOgogICAgdm9pZCBmbG9hdGluZ0NoYW5nZWQoYm9vbCBmbG9hdGluZykKICAgIHsKICAgICAgICBpZiggZmxvYXRpbmcgKQogICAgICAgICAgICBzdGF0aWNfY2FzdDxRRG9ja1dpZGdldCo+KFFPYmplY3Q6OnNlbmRlcigpKS0+c2hvd0Z1bGxTY3JlZW4oKTsKICAgIH0KCnB1YmxpYzoKICAgIE1haW5XaW5kb3coKQogICAgICAgIDogUU1haW5XaW5kb3coKQogICAgewogICAgICAgIFFXaWRnZXQqIGNlbnRyYWwgPSBuZXcgUVdpZGdldCgpOwogICAgICAgIGNlbnRyYWwtPnNldExheW91dChuZXcgUUJveExheW91dChRQm94TGF5b3V0OjpUb3BUb0JvdHRvbSkpOwogICAgICAgIHRoaXMtPnNldENlbnRyYWxXaWRnZXQoY2VudHJhbCk7CiAgICAgICAgUURvY2tXaWRnZXQqIGRvY2t3aWRnZXQgPSBuZXcgUURvY2tXaWRnZXQodGhpcyk7CiAgICAgICAgdGhpcy0+Y2VudHJhbFdpZGdldCgpLT5sYXlvdXQoKS0+YWRkV2lkZ2V0KGRvY2t3aWRnZXQpOwoKICAgICAgICBRT2JqZWN0Ojpjb25uZWN0KGRvY2t3aWRnZXQsIFNJR05BTCh0b3BMZXZlbENoYW5nZWQoYm9vbCkpLCB0aGlzLCBTTE9UKGZsb2F0aW5nQ2hhbmdlZChib29sKSkpOwogICAgfQp9OwoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQp7CiAgICBRQXBwbGljYXRpb24gYXBwKGFyZ2MsIGFyZ3YpOwoKICAgIFFNYWluV2luZG93KiB3aW5kb3cgPSBuZXcgTWFpbldpbmRvdzsKICAgIHdpbmRvdy0+c2hvdygpOwoKICAgIHJldHVybiBhcHAuZXhlYygpOwp9Cg==