-// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016 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
#include <QDateTimeEdit>
#include <QStackedWidget>
#include <QSlider>
+#include <QScrollArea>
#include <stdio.h>
\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();
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 );
}
void QtxPagePrefFrameItem::setStretch( const bool on )
{
QSpacerItem* s = 0;
- QLayout* l = widget() ? widget()->layout() : 0;
+ QWidget* w = widget();
+ if ( qobject_cast<QScrollArea*>( w ) )
+ w = qobject_cast<QScrollArea*>( w )->widget();
+ QLayout* l = w ? w->layout() : 0;
for ( int i = 0; l && i < l->count() && !s; i++ )
s = l->itemAt( i )->spacerItem();
: QtxPagePrefItem( title, parent, sect, param )
{
myCheck = new QCheckBox( title );
- myCheck->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed );
+ myCheck->setSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::Fixed );
setWidget( myCheck );
}