Expose some QSplitter private classes for added functionality in Trinity

This is not a security risk
v3.5.13-sru
Timothy Pearson 13 years ago
parent d82327fe4f
commit f97ed1fa6c

@ -52,39 +52,9 @@
#include "qptrlist.h"
#include "qstyle.h"
class QSplitterHandle : public QWidget
{
Q_OBJECT
public:
QSplitterHandle( Orientation o,
QSplitter *parent, const char* name=0 );
void setOrientation( Orientation o );
Orientation orientation() const { return orient; }
bool opaque() const { return s->opaqueResize(); }
QSize sizeHint() const;
int id() const { return myId; } // d->list.at(id())->wid == this
void setId( int i ) { myId = i; }
protected:
void paintEvent( QPaintEvent * );
void mouseMoveEvent( QMouseEvent * );
void mousePressEvent( QMouseEvent * );
void mouseReleaseEvent( QMouseEvent * );
private:
Orientation orient;
bool opaq;
int myId;
QSplitter *s;
};
#include "qsplitter.moc"
const uint Default = 2;
const uint Default = QT_QSPLITTER_DEFAULT;
static int mouseOffset;
static int opaqueOldPos = -1; // this assumes that there's only one mouse
@ -180,45 +150,6 @@ void QSplitterHandle::paintEvent( QPaintEvent * )
QStyle::Style_Horizontal : 0) );
}
class QSplitterLayoutStruct : public Qt
{
public:
QCOORD sizer;
uint isHandle : 1;
uint collapsible : 2;
uint resizeMode : 2;
QWidget *wid;
QSplitterLayoutStruct()
: sizer( -1 ), collapsible( Default ) { }
QCOORD getSizer( Orientation orient );
};
QCOORD QSplitterLayoutStruct::getSizer( Orientation orient )
{
if ( sizer == -1 ) {
QSize s = wid->sizeHint();
if ( !s.isValid() || wid->testWState(WState_Resized) )
s = wid->size();
sizer = ( orient == Horizontal ) ? s.width() : s.height();
}
return sizer;
}
class QSplitterPrivate
{
public:
QSplitterPrivate()
: opaque( FALSE ), firstShow( TRUE ), childrenCollapsible( TRUE ),
handleWidth( 0 ) { }
QPtrList<QSplitterLayoutStruct> list;
bool opaque : 8;
bool firstShow : 8;
bool childrenCollapsible : 8;
int handleWidth;
};
/*!
\class QSplitter

@ -48,11 +48,52 @@
#ifndef QT_NO_SPLITTER
#define QT_QSPLITTER_DEFAULT 2
class QSplitterHandle;
class QSplitterPrivate;
class QSplitterLayoutStruct;
class QTextStream;
class QSplitterPrivate
{
public:
QSplitterPrivate()
: opaque( FALSE ), firstShow( TRUE ), childrenCollapsible( TRUE ),
handleWidth( 0 ) { }
QPtrList<QSplitterLayoutStruct> list;
bool opaque : 8;
bool firstShow : 8;
bool childrenCollapsible : 8;
int handleWidth;
};
class QSplitterLayoutStruct : public Qt
{
public:
QCOORD sizer;
uint isHandle : 1;
uint collapsible : 2;
uint resizeMode : 2;
QWidget *wid;
QSplitterLayoutStruct()
: sizer( -1 ), collapsible( QT_QSPLITTER_DEFAULT ) { }
QCOORD getSizer( Orientation orient );
};
QCOORD QSplitterLayoutStruct::getSizer( Orientation orient )
{
if ( sizer == -1 ) {
QSize s = wid->sizeHint();
if ( !s.isValid() || wid->testWState(WState_Resized) )
s = wid->size();
sizer = ( orient == Horizontal ) ? s.width() : s.height();
}
return sizer;
}
class Q_EXPORT QSplitter : public QFrame
{
Q_OBJECT
@ -111,7 +152,7 @@ protected:
virtual void setRubberband( int );
void getRange( int id, int *, int * );
private:
public: //private:
enum { DefaultResizeMode = 3 };
void init();
@ -164,6 +205,36 @@ Q_EXPORT QTextStream& operator<<( QTextStream&, const QSplitter& );
Q_EXPORT QTextStream& operator>>( QTextStream&, QSplitter& );
#endif
class QSplitterHandle : public QWidget
{
Q_OBJECT
public:
QSplitterHandle( Orientation o,
QSplitter *parent, const char* name=0 );
void setOrientation( Orientation o );
Orientation orientation() const { return orient; }
bool opaque() const { return s->opaqueResize(); }
QSize sizeHint() const;
int id() const { return myId; } // d->list.at(id())->wid == this
void setId( int i ) { myId = i; }
protected:
void paintEvent( QPaintEvent * );
void mouseMoveEvent( QMouseEvent * );
void mousePressEvent( QMouseEvent * );
void mouseReleaseEvent( QMouseEvent * );
public: // private:
Orientation orient;
bool opaq;
int myId;
QSplitter *s;
};
#endif // QT_NO_SPLITTER
#endif // QSPLITTER_H

Loading…
Cancel
Save