File indexing completed on 2025-01-05 03:59:37

0001 /*
0002     SPDX-FileCopyrightText: 2010 Jens-Michael Hoffmann <jmho@c-xx.com>
0003     SPDX-FileCopyrightText: 2010-2012 Bernhard Beschow <bbeschow@cs.tu-berlin.de>
0004 
0005     SPDX-License-Identifier: LGPL-2.1-or-later
0006 */
0007 
0008 #include "TileLevelRangeWidget.h"
0009 
0010 #include "ui_TileLevelRangeWidget.h"
0011 
0012 namespace Marble
0013 {
0014 
0015 class Q_DECL_HIDDEN TileLevelRangeWidget::Private
0016 {
0017 public:
0018     explicit Private( QWidget * const parent );
0019     Ui::TileLevelRangeWidget m_ui;
0020 };
0021 
0022 TileLevelRangeWidget::Private::Private( QWidget * const parent )
0023 {
0024     m_ui.setupUi( parent );
0025 }
0026 
0027 TileLevelRangeWidget::TileLevelRangeWidget( QWidget * const parent, Qt::WindowFlags const f )
0028     : QWidget( parent, f ),
0029       d( new Private( this ))
0030 {
0031     connect( d->m_ui.topSpinBox, SIGNAL(valueChanged(int)), SIGNAL(topLevelChanged(int)));
0032     connect( d->m_ui.bottomSpinBox, SIGNAL(valueChanged(int)),
0033              SIGNAL(bottomLevelChanged(int)));
0034 
0035     connect( d->m_ui.topSpinBox, SIGNAL(valueChanged(int)), SLOT(setMinimumBottomLevel(int)));
0036     connect( d->m_ui.bottomSpinBox, SIGNAL(valueChanged(int)), SLOT(setMaximumTopLevel(int)));
0037 }
0038 
0039 TileLevelRangeWidget::~TileLevelRangeWidget()
0040 {
0041     delete d;
0042 }
0043 
0044 QSize TileLevelRangeWidget::sizeHint() const
0045 {
0046     return size();
0047 }
0048 
0049 void TileLevelRangeWidget::setAllowedLevelRange( int const minimumLevel, int const maximumLevel )
0050 {
0051     d->m_ui.topSpinBox->setRange( minimumLevel, qMin( d->m_ui.bottomSpinBox->value(),
0052                                                       maximumLevel ));
0053     d->m_ui.bottomSpinBox->setRange( qMax( d->m_ui.topSpinBox->value(), minimumLevel ),
0054                                      maximumLevel );
0055 }
0056 
0057 void TileLevelRangeWidget::setDefaultLevel( int const level )
0058 {
0059     d->m_ui.topSpinBox->setValue( level );
0060     d->m_ui.bottomSpinBox->setValue( level );
0061 }
0062 
0063 int TileLevelRangeWidget::bottomLevel() const
0064 {
0065     return d->m_ui.bottomSpinBox->value();
0066 }
0067 
0068 int TileLevelRangeWidget::topLevel() const
0069 {
0070     return d->m_ui.topSpinBox->value();
0071 }
0072 
0073 void TileLevelRangeWidget::setMaximumTopLevel( int const level )
0074 {
0075     d->m_ui.topSpinBox->setMaximum( level );
0076 }
0077 
0078 void TileLevelRangeWidget::setMinimumBottomLevel( int const level )
0079 {
0080     d->m_ui.bottomSpinBox->setMinimum( level );
0081 }
0082 
0083 }
0084 
0085 #include "moc_TileLevelRangeWidget.cpp"