diff --git a/src/private/Frame.cpp b/src/private/Frame.cpp index 0f574789..03cd747d 100644 --- a/src/private/Frame.cpp +++ b/src/private/Frame.cpp @@ -508,7 +508,7 @@ Frame *Frame::deserialize(const LayoutSaver::Frame &f) } frame->setCurrentTabIndex(f.currentTabIndex); - frame->setGeometry(f.geometry); + frame->QWidget::setGeometry(f.geometry); return frame; } diff --git a/src/private/multisplitter/Widget.h b/src/private/multisplitter/Widget.h index 670d00b2..512d5eb5 100644 --- a/src/private/multisplitter/Widget.h +++ b/src/private/multisplitter/Widget.h @@ -55,10 +55,13 @@ public: virtual QSize minSize() const = 0; virtual QSize maxSize() const = 0; virtual QRect geometry() const = 0; + virtual void setGeometry(QRect) = 0; virtual void setParent(Widget *) = 0; virtual QDebug& dumpDebug(QDebug&) const = 0; virtual bool isVisible() const = 0; virtual std::unique_ptr parentWidget() const = 0; + virtual void show() = 0; + virtual void hide() = 0; QSize size() const { return geometry().size(); diff --git a/src/private/multisplitter/Widget_qwidget.cpp b/src/private/multisplitter/Widget_qwidget.cpp index 660f2003..e5dce6d6 100644 --- a/src/private/multisplitter/Widget_qwidget.cpp +++ b/src/private/multisplitter/Widget_qwidget.cpp @@ -31,17 +31,22 @@ Widget_qwidget::~Widget_qwidget() QSize Widget_qwidget::minSize() const { - return widgetMinSize(asWidget()); + return widgetMinSize(m_thisWidget); } QSize Widget_qwidget::maxSize() const { - return asWidget()->maximumSize(); + return m_thisWidget->maximumSize(); } QRect Widget_qwidget::geometry() const { - return asWidget()->geometry(); + return m_thisWidget->geometry(); +} + +void Widget_qwidget::setGeometry(QRect rect) +{ + m_thisWidget->setGeometry(rect); } void Widget_qwidget::setParent(Widget *parent) @@ -81,6 +86,16 @@ std::unique_ptr Widget_qwidget::parentWidget() const return {}; } +void Widget_qwidget::show() +{ + m_thisWidget->show(); +} + +void Widget_qwidget::hide() +{ + m_thisWidget->hide(); +} + QSize Widget_qwidget::widgetMinSize(const QWidget *w) { const int minW = w->minimumWidth() > 0 ? w->minimumWidth() diff --git a/src/private/multisplitter/Widget_qwidget.h b/src/private/multisplitter/Widget_qwidget.h index 8855dd71..9a1b37b4 100644 --- a/src/private/multisplitter/Widget_qwidget.h +++ b/src/private/multisplitter/Widget_qwidget.h @@ -50,11 +50,14 @@ public: QSize minSize() const override; QSize maxSize() const override; QRect geometry() const override; + void setGeometry(QRect) override; void setParent(Widget *) override; QDebug& dumpDebug(QDebug&) const override; bool isVisible() const override; std::unique_ptr parentWidget() const override; void setLayoutItem(Item *) override {} + void show() override; + void hide() override; static QSize widgetMinSize(const QWidget *w);