//============================================================================= // // File : KviTalGroupBox.cpp // Creation date : Mon Jan 22 2007 11:25:08 by Szymon Stefanek // // This file is part of the KVIrc IRC client distribution // Copyright (C) 2007-2010 Szymon Stefanek (pragma at kvirc dot net) // // This program is FREE software. You can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the HOPE that it will be USEFUL, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. // See the GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, write to the Free Software Foundation, // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. // //============================================================================= #include "KviTalGroupBox.h" #include KviTalGroupBox::KviTalGroupBox(QWidget * pParent, char * pcName) : QGroupBox(pParent) { setObjectName(pcName); m_pLayout = new QHBoxLayout(this); m_pLayout->setContentsMargins(4, 4, 4, 4); m_pLayout->setContentsMargins(8, 8, 8, 8); m_pLayout->setSpacing(6); QGroupBox::setLayout(m_pLayout); } KviTalGroupBox::KviTalGroupBox(QWidget * pParent) : QGroupBox(pParent) { m_pLayout = nullptr; } KviTalGroupBox::KviTalGroupBox(const QString & szTitle, QWidget * pParent) : QGroupBox(szTitle, pParent) { m_pLayout = nullptr; } KviTalGroupBox::KviTalGroupBox(Qt::Orientation orientation, QWidget * pParent) : QGroupBox(pParent) { if(orientation == Qt::Vertical) m_pLayout = new QHBoxLayout(this); else m_pLayout = new QVBoxLayout(this); m_pLayout->setContentsMargins(4, 4, 4, 4); m_pLayout->setContentsMargins(8, 8, 8, 8); m_pLayout->setSpacing(6); QGroupBox::setLayout(m_pLayout); } KviTalGroupBox::KviTalGroupBox(Qt::Orientation orientation, const QString & szTitle, QWidget * pParent) : QGroupBox(szTitle, pParent) { mOrientation = orientation; if(orientation == Qt::Vertical) m_pLayout = new QHBoxLayout(this); else m_pLayout = new QVBoxLayout(this); m_pLayout->setContentsMargins(4, 4, 4, 4); m_pLayout->setContentsMargins(8, 8, 8, 8); m_pLayout->setSpacing(6); QGroupBox::setLayout(m_pLayout); } KviTalGroupBox::~KviTalGroupBox() = default; void KviTalGroupBox::childEvent(QChildEvent * e) { if(!e->child()->isWidgetType()) return; if(e->child()->parent() != this) return; if(!m_pLayout) return; if(m_pLayout != layout()) return; switch(e->type()) { case QEvent::ChildAdded: m_pLayout->addWidget((QWidget *)(e->child())); break; case QEvent::ChildRemoved: m_pLayout->removeWidget((QWidget *)(e->child())); break; default: break; } } void KviTalGroupBox::addSpace(int iSpace) { if(m_pLayout && m_pLayout == layout()) { if(mOrientation == Qt::Vertical) ((QHBoxLayout *)m_pLayout)->addSpacing(iSpace); else ((QVBoxLayout *)m_pLayout)->addSpacing(iSpace); } } void KviTalGroupBox::setOrientation(Qt::Orientation orientation) { if(m_pLayout) { delete m_pLayout; m_pLayout = nullptr; } mOrientation = orientation; if(orientation == Qt::Vertical) m_pLayout = new QHBoxLayout(this); else m_pLayout = new QVBoxLayout(this); QGroupBox::setLayout(m_pLayout); } void KviTalGroupBox::setLayout(QLayout * layout) { if(m_pLayout) { delete m_pLayout; m_pLayout = nullptr; } QGroupBox::setLayout(layout); }