#include #include #ifdef cpExtensions_Interface_QT4 /** * Inspired by: * https://forum.qt.io/topic/7144/quad-splitter-windows-an-implementation/2 */ // ------------------------------------------------------------------------- cpExtensions::QT::QuadSplitter:: QuadSplitter( QWidget* parent ) : QSplitter( parent ) { this->setOrientation( Qt::Vertical ); this->addWidget( &this->m_Upper ); this->addWidget( &this->m_Bottom ); QObject::connect( &( this->m_Upper ), SIGNAL( splitterMoved( int, int ) ), this, SLOT( _SyncBottom( int, int ) ) ); QObject::connect( &( this->m_Bottom ), SIGNAL( splitterMoved( int, int ) ), this, SLOT( _SyncUpper( int, int ) ) ); } // ------------------------------------------------------------------------- cpExtensions::QT::QuadSplitter:: ~QuadSplitter( ) { } // ------------------------------------------------------------------------- void cpExtensions::QT::QuadSplitter:: addWidgets( QWidget* a, QWidget* b, QWidget* c, QWidget* d ) { this->m_Upper.addWidget( a ); this->m_Upper.addWidget( b ); this->m_Bottom.addWidget( c ); this->m_Bottom.addWidget( d ); } // ------------------------------------------------------------------------- void cpExtensions::QT::QuadSplitter:: _SyncBottom( int a, int b ) { this->m_Bottom.setSizes( this->m_Upper.sizes( ) ); } // ------------------------------------------------------------------------- void cpExtensions::QT::QuadSplitter:: _SyncUpper( int a, int b ) { this->m_Upper.setSizes( this->m_Bottom.sizes( ) ); } #endif // cpExtensions_Interface_QT4 // eof - $RCSfile$