Kaydet (Commit) d8d8cdec authored tarafından Jan-Marek Glogowski's avatar Jan-Marek Glogowski

Qt5 introduce Qt5Frame::asChild() helper

Just a little refactoring.

Gets rid of the common used idom in the code:
  m_pTopLevel ? m_pTopLevel : m_pQWidget

Change-Id: I3e96687d9d02c0b1a5537c6b6cea53e1ca3a2067
Reviewed-on: https://gerrit.libreoffice.org/73414
Tested-by: Jenkins
Reviewed-by: 's avatarJan-Marek Glogowski <glogow@fbihome.de>
üst 84771b5c
...@@ -123,6 +123,7 @@ public: ...@@ -123,6 +123,7 @@ public:
QWidget* GetQWidget() const { return m_pQWidget; } QWidget* GetQWidget() const { return m_pQWidget; }
Qt5MainWindow* GetTopLevelWindow() const { return m_pTopLevel; } Qt5MainWindow* GetTopLevelWindow() const { return m_pTopLevel; }
QWidget* asChild() const;
void Damage(sal_Int32 nExtentsX, sal_Int32 nExtentsY, sal_Int32 nExtentsWidth, void Damage(sal_Int32 nExtentsX, sal_Int32 nExtentsY, sal_Int32 nExtentsWidth,
sal_Int32 nExtentsHeight) const; sal_Int32 nExtentsHeight) const;
......
...@@ -140,13 +140,7 @@ Qt5Frame::Qt5Frame(Qt5Frame* pParent, SalFrameStyleFlags nStyle, bool bUseCairo) ...@@ -140,13 +140,7 @@ Qt5Frame::Qt5Frame(Qt5Frame* pParent, SalFrameStyleFlags nStyle, bool bUseCairo)
if (aWinFlags == Qt::Window) if (aWinFlags == Qt::Window)
{ {
QWidget* pParentWidget = nullptr; QWidget* pParentWidget = m_pParent ? m_pParent->asChild() : nullptr;
if (m_pParent)
{
pParentWidget
= (m_pParent->m_pTopLevel) ? m_pParent->m_pTopLevel : m_pParent->m_pQWidget;
}
m_pTopLevel = new Qt5MainWindow(*this, pParentWidget, aWinFlags); m_pTopLevel = new Qt5MainWindow(*this, pParentWidget, aWinFlags);
m_pQWidget = new Qt5Widget(*this, aWinFlags); m_pQWidget = new Qt5Widget(*this, aWinFlags);
m_pTopLevel->setCentralWidget(m_pQWidget); m_pTopLevel->setCentralWidget(m_pQWidget);
...@@ -160,8 +154,7 @@ Qt5Frame::Qt5Frame(Qt5Frame* pParent, SalFrameStyleFlags nStyle, bool bUseCairo) ...@@ -160,8 +154,7 @@ Qt5Frame::Qt5Frame(Qt5Frame* pParent, SalFrameStyleFlags nStyle, bool bUseCairo)
if (pParent && !(pParent->m_nStyle & SalFrameStyleFlags::PLUG)) if (pParent && !(pParent->m_nStyle & SalFrameStyleFlags::PLUG))
{ {
QWindow* pParentWindow = pParent->GetQWidget()->window()->windowHandle(); QWindow* pParentWindow = pParent->GetQWidget()->window()->windowHandle();
QWindow* pChildWindow = (m_pTopLevel ? m_pTopLevel->window()->windowHandle() QWindow* pChildWindow = asChild()->window()->windowHandle();
: m_pQWidget->window()->windowHandle());
if (pParentWindow && pChildWindow && (pParentWindow != pChildWindow)) if (pParentWindow && pChildWindow && (pParentWindow != pChildWindow))
pChildWindow->setTransientParent(pParentWindow); pChildWindow->setTransientParent(pParentWindow);
} }
...@@ -218,10 +211,7 @@ Qt5Frame::~Qt5Frame() ...@@ -218,10 +211,7 @@ Qt5Frame::~Qt5Frame()
{ {
Qt5Instance* pInst = static_cast<Qt5Instance*>(GetSalData()->m_pInstance); Qt5Instance* pInst = static_cast<Qt5Instance*>(GetSalData()->m_pInstance);
pInst->eraseFrame(this); pInst->eraseFrame(this);
if (m_pTopLevel) delete asChild();
delete m_pTopLevel;
else
delete m_pQWidget;
m_aSystemData.aShellWindow = 0; m_aSystemData.aShellWindow = 0;
} }
...@@ -303,60 +293,31 @@ bool Qt5Frame::PostEvent(std::unique_ptr<ImplSVEvent> pData) ...@@ -303,60 +293,31 @@ bool Qt5Frame::PostEvent(std::unique_ptr<ImplSVEvent> pData)
return true; return true;
} }
bool Qt5Frame::isWindow() const QWidget* Qt5Frame::asChild() const { return m_pTopLevel ? m_pTopLevel : m_pQWidget; }
{
if (m_pTopLevel) bool Qt5Frame::isWindow() const { return asChild()->isWindow(); }
return m_pTopLevel->isWindow();
else
return m_pQWidget->isWindow();
}
QWindow* Qt5Frame::windowHandle() const QWindow* Qt5Frame::windowHandle() const
{ {
// set attribute 'Qt::WA_NativeWindow' first to make sure a window handle actually exists // set attribute 'Qt::WA_NativeWindow' first to make sure a window handle actually exists
if (m_pTopLevel) QWidget* pChild = asChild();
{ pChild->setAttribute(Qt::WA_NativeWindow);
m_pTopLevel->setAttribute(Qt::WA_NativeWindow); return pChild->windowHandle();
return m_pTopLevel->windowHandle();
}
else
{
m_pQWidget->setAttribute(Qt::WA_NativeWindow);
return m_pQWidget->windowHandle();
}
} }
QScreen* Qt5Frame::screen() const QScreen* Qt5Frame::screen() const
{ {
QWindow* const pWindow = windowHandle(); QWindow* const pWindow = windowHandle();
if (pWindow) return pWindow ? pWindow->screen() : nullptr;
return pWindow->screen();
else
return nullptr;
} }
bool Qt5Frame::isMinimized() const bool Qt5Frame::isMinimized() const { return asChild()->isMinimized(); }
{
if (m_pTopLevel)
return m_pTopLevel->isMinimized();
else
return m_pQWidget->isMinimized();
}
bool Qt5Frame::isMaximized() const bool Qt5Frame::isMaximized() const { return asChild()->isMaximized(); }
{
if (m_pTopLevel)
return m_pTopLevel->isMaximized();
else
return m_pQWidget->isMaximized();
}
void Qt5Frame::SetWindowStateImpl(Qt::WindowStates eState) void Qt5Frame::SetWindowStateImpl(Qt::WindowStates eState)
{ {
if (m_pTopLevel) return asChild()->setWindowState(eState);
m_pTopLevel->setWindowState(eState);
else
m_pQWidget->setWindowState(eState);
} }
void Qt5Frame::SetTitle(const OUString& rTitle) void Qt5Frame::SetTitle(const OUString& rTitle)
...@@ -400,13 +361,7 @@ void Qt5Frame::DrawMenuBar() { /* not needed */} ...@@ -400,13 +361,7 @@ void Qt5Frame::DrawMenuBar() { /* not needed */}
void Qt5Frame::SetExtendedFrameStyle(SalExtStyle /*nExtStyle*/) { /* not needed */} void Qt5Frame::SetExtendedFrameStyle(SalExtStyle /*nExtStyle*/) { /* not needed */}
void Qt5Frame::setVisible(bool bVisible) void Qt5Frame::setVisible(bool bVisible) { asChild()->setVisible(bVisible); }
{
if (m_pTopLevel)
m_pTopLevel->setVisible(bVisible);
else
m_pQWidget->setVisible(bVisible);
}
void Qt5Frame::Show(bool bVisible, bool /*bNoActivate*/) void Qt5Frame::Show(bool bVisible, bool /*bNoActivate*/)
{ {
...@@ -423,23 +378,13 @@ void Qt5Frame::Show(bool bVisible, bool /*bNoActivate*/) ...@@ -423,23 +378,13 @@ void Qt5Frame::Show(bool bVisible, bool /*bNoActivate*/)
void Qt5Frame::SetMinClientSize(long nWidth, long nHeight) void Qt5Frame::SetMinClientSize(long nWidth, long nHeight)
{ {
if (!isChild()) if (!isChild())
{ asChild()->setMinimumSize(nWidth, nHeight);
if (m_pTopLevel)
m_pTopLevel->setMinimumSize(nWidth, nHeight);
else
m_pQWidget->setMinimumSize(nWidth, nHeight);
}
} }
void Qt5Frame::SetMaxClientSize(long nWidth, long nHeight) void Qt5Frame::SetMaxClientSize(long nWidth, long nHeight)
{ {
if (!isChild()) if (!isChild())
{ asChild()->setMaximumSize(nWidth, nHeight);
if (m_pTopLevel)
m_pTopLevel->setMaximumSize(nWidth, nHeight);
else
m_pQWidget->setMaximumSize(nWidth, nHeight);
}
} }
void Qt5Frame::Center() void Qt5Frame::Center()
...@@ -447,7 +392,7 @@ void Qt5Frame::Center() ...@@ -447,7 +392,7 @@ void Qt5Frame::Center()
if (m_pParent) if (m_pParent)
{ {
QWidget* pWindow = m_pParent->GetQWidget()->window(); QWidget* pWindow = m_pParent->GetQWidget()->window();
QWidget* const pWidget = m_pTopLevel ? m_pTopLevel : m_pQWidget; QWidget* const pWidget = asChild();
pWidget->move(pWindow->frameGeometry().topLeft() + pWindow->rect().center() pWidget->move(pWindow->frameGeometry().topLeft() + pWindow->rect().center()
- pWidget->rect().center()); - pWidget->rect().center());
} }
...@@ -498,12 +443,10 @@ void Qt5Frame::SetPosSize(long nX, long nY, long nWidth, long nHeight, sal_uInt1 ...@@ -498,12 +443,10 @@ void Qt5Frame::SetPosSize(long nX, long nY, long nWidth, long nHeight, sal_uInt1
m_bDefaultSize = false; m_bDefaultSize = false;
if (isChild(false) || !m_pQWidget->isMaximized()) if (isChild(false) || !m_pQWidget->isMaximized())
{ {
QWidget* const pWidget = m_pTopLevel ? m_pTopLevel : m_pQWidget;
if (m_nStyle & SalFrameStyleFlags::SIZEABLE) if (m_nStyle & SalFrameStyleFlags::SIZEABLE)
pWidget->resize(nWidth, nHeight); asChild()->resize(nWidth, nHeight);
else else
pWidget->setFixedSize(nWidth, nHeight); asChild()->setFixedSize(nWidth, nHeight);
} }
} }
else if (m_bDefaultSize) else if (m_bDefaultSize)
...@@ -529,10 +472,7 @@ void Qt5Frame::SetPosSize(long nX, long nY, long nWidth, long nHeight, sal_uInt1 ...@@ -529,10 +472,7 @@ void Qt5Frame::SetPosSize(long nX, long nY, long nWidth, long nHeight, sal_uInt1
maGeometry.nY = nY; maGeometry.nY = nY;
m_bDefaultPos = false; m_bDefaultPos = false;
if (m_pTopLevel) asChild()->move(nX, nY);
m_pTopLevel->move(nX, nY);
else
m_pQWidget->move(nX, nY);
} }
else if (m_bDefaultPos) else if (m_bDefaultPos)
Center(); Center();
...@@ -601,16 +541,9 @@ void Qt5Frame::SetWindowState(const SalFrameState* pState) ...@@ -601,16 +541,9 @@ void Qt5Frame::SetWindowState(const SalFrameState* pState)
if ((pState->mnMask & WindowStateMask::State) && (pState->mnState & WindowStateState::Maximized) if ((pState->mnMask & WindowStateMask::State) && (pState->mnState & WindowStateState::Maximized)
&& !isMaximized() && (pState->mnMask & nMaxGeometryMask) == nMaxGeometryMask) && !isMaximized() && (pState->mnMask & nMaxGeometryMask) == nMaxGeometryMask)
{ {
if (m_pTopLevel) QWidget* const pChild = asChild();
{ pChild->resize(pState->mnWidth, pState->mnHeight);
m_pTopLevel->resize(pState->mnWidth, pState->mnHeight); pChild->move(pState->mnX, pState->mnY);
m_pTopLevel->move(pState->mnX, pState->mnY);
}
else
{
m_pQWidget->resize(pState->mnWidth, pState->mnHeight);
m_pQWidget->move(pState->mnX, pState->mnY);
}
SetWindowStateImpl(Qt::WindowMaximized); SetWindowStateImpl(Qt::WindowMaximized);
} }
else if (pState->mnMask else if (pState->mnMask
...@@ -661,7 +594,7 @@ bool Qt5Frame::GetWindowState(SalFrameState* pState) ...@@ -661,7 +594,7 @@ bool Qt5Frame::GetWindowState(SalFrameState* pState)
} }
else else
{ {
QRect rect = m_pTopLevel ? m_pTopLevel->geometry() : m_pQWidget->geometry(); QRect rect = asChild()->geometry();
pState->mnX = rect.x(); pState->mnX = rect.x();
pState->mnY = rect.y(); pState->mnY = rect.y();
pState->mnWidth = rect.width(); pState->mnWidth = rect.width();
...@@ -715,7 +648,7 @@ void Qt5Frame::StartPresentation(bool) ...@@ -715,7 +648,7 @@ void Qt5Frame::StartPresentation(bool)
void Qt5Frame::SetAlwaysOnTop(bool bOnTop) void Qt5Frame::SetAlwaysOnTop(bool bOnTop)
{ {
QWidget* const pWidget = m_pTopLevel ? m_pTopLevel : m_pQWidget; QWidget* const pWidget = asChild();
const Qt::WindowFlags flags = pWidget->windowFlags(); const Qt::WindowFlags flags = pWidget->windowFlags();
if (bOnTop) if (bOnTop)
pWidget->setWindowFlags(flags | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint); pWidget->setWindowFlags(flags | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint);
...@@ -725,8 +658,7 @@ void Qt5Frame::SetAlwaysOnTop(bool bOnTop) ...@@ -725,8 +658,7 @@ void Qt5Frame::SetAlwaysOnTop(bool bOnTop)
void Qt5Frame::ToTop(SalFrameToTop nFlags) void Qt5Frame::ToTop(SalFrameToTop nFlags)
{ {
QWidget* const pWidget = m_pTopLevel ? m_pTopLevel : m_pQWidget; QWidget* const pWidget = asChild();
if (isWindow() && !(nFlags & SalFrameToTop::GrabFocusOnly)) if (isWindow() && !(nFlags & SalFrameToTop::GrabFocusOnly))
pWidget->raise(); pWidget->raise();
if ((nFlags & SalFrameToTop::RestoreWhenMin) || (nFlags & SalFrameToTop::ForegroundTask)) if ((nFlags & SalFrameToTop::RestoreWhenMin) || (nFlags & SalFrameToTop::ForegroundTask))
...@@ -1165,8 +1097,7 @@ void Qt5Frame::SetScreenNumber(unsigned int nScreen) ...@@ -1165,8 +1097,7 @@ void Qt5Frame::SetScreenNumber(unsigned int nScreen)
// setScreen by itself has no effect, explicitly move the widget to // setScreen by itself has no effect, explicitly move the widget to
// the new screen // the new screen
QWidget* const pWidget = m_pTopLevel ? m_pTopLevel : m_pQWidget; asChild()->move(screenGeo.topLeft());
pWidget->move(screenGeo.topLeft());
} }
else else
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment