#include "ZeSettableLayout.h"
#include "ZeLog.h"
//=============================================================================
//=============================================================================
ZeSettableLayout
::ZeSettableLayout(QWidget * parent
) :mLayout(this)
{
mSettableLayout = 0;
mWidget = 0;
getLayout().setMargin(0);
getLayout().setSpacing(0);
mOldParent = NULL;
}
//=============================================================================
//=============================================================================
ZeSettableLayout::~ZeSettableLayout()
{
Clear();
}
//=============================================================================
//=============================================================================
void ZeSettableLayout
::setLayout(QLayout & settableLayout,
int stretch)
{
Clear();
mSettableLayout = &settableLayout;
getLayout().addLayout(mSettableLayout, stretch);
}
//=============================================================================
//=============================================================================
void ZeSettableLayout
::setWidget(QWidget & widget,
int stretch,
Qt::Alignment alignment)
{
Clear();
mWidget = &widget;
// Saving old parent to restore it at deletion
mOldParent = getWidget().parentWidget();
getLayout().addWidget(mWidget, stretch, alignment);
getWidget().show();
}
//=============================================================================
//=============================================================================
void ZeSettableLayout::Clear()
{
if (mSettableLayout)
{
getLayout().removeItem(mSettableLayout);
mSettableLayout = NULL;
}
if (mWidget)
{
getLayout().removeWidget(mWidget);
// Retoring old parent for deletion
getWidget().setParent(mOldParent);
mOldParent = NULL;
//getWidget().hide();
mWidget = NULL;
}
}