Files
pilotclient/src/blackgui/components/enablefordockwidgetinfoarea.cpp
Klaus Basan 3e982b014f refs #445, preparation for data GUI
* improved finding of main window
* project -> version string
* location of application icon
2015-11-19 20:57:25 +00:00

96 lines
3.4 KiB
C++

/* Copyright (C) 2013
* swift project Community / Contributors
*
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
* including this file, may be copied, modified, propagated, or distributed except according to the terms
* contained in the LICENSE file.
*/
#include "enablefordockwidgetinfoarea.h"
#include "blackgui/guiutility.h"
using namespace BlackGui;
namespace BlackGui
{
namespace Components
{
CEnableForDockWidgetInfoArea::CEnableForDockWidgetInfoArea(CDockWidgetInfoArea *parentInfoArea)
{
// it the parent is already an info area at this time, we keep it
// otherwise we expect the info area to set it later
this->m_parentDockableInfoArea = parentInfoArea;
}
bool CEnableForDockWidgetInfoArea::setParentDockWidgetInfoArea(CDockWidgetInfoArea *parentDockableWidget)
{
// sanity check
if (this->m_parentDockableInfoArea)
{
// we already have a value
// changes should not happen
Q_ASSERT(this->m_parentDockableInfoArea == parentDockableWidget);
return this->m_parentDockableInfoArea == parentDockableWidget;
}
m_parentDockableInfoArea = parentDockableWidget;
return true;
}
const CInfoArea *CEnableForDockWidgetInfoArea::getParentInfoArea() const
{
Q_ASSERT(this->m_parentDockableInfoArea);
if (!this->m_parentDockableInfoArea) return nullptr;
return this->m_parentDockableInfoArea->getParentInfoArea();
}
CInfoArea *CEnableForDockWidgetInfoArea::getParentInfoArea()
{
Q_ASSERT(this->m_parentDockableInfoArea);
if (!this->m_parentDockableInfoArea) return nullptr;
return this->m_parentDockableInfoArea->getParentInfoArea();
}
bool CEnableForDockWidgetInfoArea::isParentDockWidgetFloating() const
{
Q_ASSERT(this->m_parentDockableInfoArea);
if (!this->m_parentDockableInfoArea) { return false; }
return this->m_parentDockableInfoArea->isFloating();
}
bool CEnableForDockWidgetInfoArea::isVisibleWidget() const
{
Q_ASSERT(this->m_parentDockableInfoArea);
if (!this->m_parentDockableInfoArea) { return false; }
return this->m_parentDockableInfoArea->isVisibleWidget();
}
CEnableForFramelessWindow *CEnableForDockWidgetInfoArea::mainApplicationWindow() const
{
CEnableForFramelessWindow *mw = CGuiUtility::mainFramelessEnabledApplicationWindow();
return mw;
}
QWidget *CEnableForDockWidgetInfoArea::mainApplicationWindowWidget() const
{
CEnableForFramelessWindow *mw = this->mainApplicationWindow();
return mw ? mw->getWidget() : nullptr;
}
void CEnableForDockWidgetInfoArea::displayMyself()
{
// if we are already visible, we are done
if (this->isVisibleWidget()) { return; }
// select myself
if (getParentInfoArea())
{
getParentInfoArea()->selectArea(this->getDockWidgetInfoArea());
}
}
} // namespace
} // namespace