X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FQtx%2FQtxPagePrefMgr.cxx;h=c419ff90b397075e9860eb759a5cbe029a8b83f3;hb=2400f3659b65727d5a776dccd3d5dd506d755a88;hp=8ce69e23d949f06dd970531834fb2a1996e1c166;hpb=e07448c48ea5b2127e34fc7b8c3427d01c7ce17b;p=modules%2Fgui.git diff --git a/src/Qtx/QtxPagePrefMgr.cxx b/src/Qtx/QtxPagePrefMgr.cxx index 8ce69e23d..c419ff90b 100644 --- a/src/Qtx/QtxPagePrefMgr.cxx +++ b/src/Qtx/QtxPagePrefMgr.cxx @@ -1,9 +1,9 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -47,6 +47,7 @@ #include #include #include +#include #include @@ -1198,7 +1199,7 @@ void QtxPagePrefTabsItem::updateTabs() \param param resource file parameter associated with the preference item */ QtxPagePrefFrameItem::QtxPagePrefFrameItem( const QString& title, QtxPreferenceItem* parent, - const QString& sect, const QString& param ) + const QString& sect, const QString& param, const bool scrollable ) : QtxPagePrefItem( title, parent, sect, param ) { QWidget* main = new QWidget(); @@ -1207,7 +1208,15 @@ QtxPagePrefFrameItem::QtxPagePrefFrameItem( const QString& title, QtxPreferenceI base->setSpacing( 0 ); base->addWidget( myBox = new QtxGridBox( 1, Qt::Horizontal, main, 5, 5 ) ); - base->addItem( new QSpacerItem( 0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding ) ); + base->addStretch(); + + if ( scrollable ) { + QScrollArea* scroll = new QScrollArea(); + scroll->setWidget( main ); + scroll->setWidgetResizable( true ); + base->layout()->setSizeConstraint(QLayout::SetMinAndMaxSize); + main = scroll; + } setWidget( main ); } @@ -1334,7 +1343,10 @@ bool QtxPagePrefFrameItem::stretch() const void QtxPagePrefFrameItem::setStretch( const bool on ) { QSpacerItem* s = 0; - QLayout* l = widget() ? widget()->layout() : 0; + QWidget* w = widget(); + if ( qobject_cast( w ) ) + w = qobject_cast( w )->widget(); + QLayout* l = w ? w->layout() : 0; for ( int i = 0; l && i < l->count() && !s; i++ ) s = l->itemAt( i )->spacerItem(); @@ -2009,7 +2021,7 @@ QtxPagePrefCheckItem::QtxPagePrefCheckItem( const QString& title, QtxPreferenceI : QtxPagePrefItem( title, parent, sect, param ) { myCheck = new QCheckBox( title ); - myCheck->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ); + myCheck->setSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::Fixed ); setWidget( myCheck ); }