diff --git a/sources/diagramschooser.cpp b/sources/diagramschooser.cpp index e48ce7ed6..e2e95835b 100644 --- a/sources/diagramschooser.cpp +++ b/sources/diagramschooser.cpp @@ -25,15 +25,23 @@ @param parent QWidget parent de ce widget */ DiagramsChooser::DiagramsChooser(QETProject *project, QWidget *parent) : - QFrame(parent), + QScrollArea(parent), project_(project), + widget0_(0), vlayout0_(0) { setFrameShadow(QFrame::Sunken); setFrameShape(QFrame::StyledPanel); setLineWidth(3); setMidLineWidth(3); + + setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); + setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Expanding)); + updateList(); + + setWidget(widget0_); } /** @@ -163,7 +171,6 @@ void DiagramsChooser::updateList() { diagrams_.insert(diagram, checkbox); vlayout0_ -> addWidget(checkbox, 0, Qt::AlignLeft | Qt::AlignTop); } - vlayout0_ -> addStretch(); } /** @@ -172,5 +179,9 @@ void DiagramsChooser::updateList() { void DiagramsChooser::buildLayout() { if (vlayout0_) return; vlayout0_ = new QVBoxLayout(); - setLayout(vlayout0_); + widget0_ = new QWidget(); + widget0_ -> setLayout(vlayout0_); + widget0_ -> setMinimumSize(170, 0); + widget0_ -> setMaximumSize(470, 10000); + widget0_ -> setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum)); } diff --git a/sources/diagramschooser.h b/sources/diagramschooser.h index 7e84093ce..03125f4f0 100644 --- a/sources/diagramschooser.h +++ b/sources/diagramschooser.h @@ -24,7 +24,7 @@ class Diagram; Cette classe represente un widget permettant de choisir 0 a n schemas parmi ceux d'un projet. */ -class DiagramsChooser : public QFrame { +class DiagramsChooser : public QScrollArea { Q_OBJECT // constructeurs, destructeur @@ -55,6 +55,7 @@ class DiagramsChooser : public QFrame { // attributs private: QETProject *project_; + QWidget *widget0_; QVBoxLayout *vlayout0_; QHash diagrams_; };