Skip to content

Commit

Permalink
Fix broken raster temporal properties widget
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Mar 29, 2020
1 parent 89fd8d4 commit f0d3bf0
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 124 deletions.
25 changes: 21 additions & 4 deletions src/gui/raster/qgsrasterlayertemporalpropertieswidget.cpp
Expand Up @@ -27,7 +27,10 @@ QgsRasterLayerTemporalPropertiesWidget::QgsRasterLayerTemporalPropertiesWidget(
: QWidget( parent )
, mLayer( layer )
{
Q_ASSERT( mLayer );
setupUi( this );

connect( mModeFixedRangeRadio, &QRadioButton::toggled, mFixedTimeRangeFrame, &QWidget::setEnabled );
init();
}

Expand All @@ -40,8 +43,19 @@ void QgsRasterLayerTemporalPropertiesWidget::init()
mEndTemporalDateTimeEdit->setDisplayFormat(
locale.dateTimeFormat( QLocale::ShortFormat ) );

if ( mLayer && mLayer->temporalProperties() )
mTemporalGroupBox->setChecked( mLayer->temporalProperties()->isActive() );
mTemporalGroupBox->setChecked( mLayer->temporalProperties()->isActive() );
switch ( mLayer->temporalProperties()->mode() )
{
case QgsRasterLayerTemporalProperties::ModeTemporalRangeFromDataProvider:
mModeAutomaticRadio->setChecked( true );
break;
case QgsRasterLayerTemporalProperties::ModeFixedTemporalRange:
mModeFixedRangeRadio->setChecked( true );
break;
}

mStartTemporalDateTimeEdit->setDateTime( mLayer->temporalProperties()->fixedTemporalRange().begin() );
mEndTemporalDateTimeEdit->setDateTime( mLayer->temporalProperties()->fixedTemporalRange().end() );
}

void QgsRasterLayerTemporalPropertiesWidget::saveTemporalProperties()
Expand All @@ -50,7 +64,10 @@ void QgsRasterLayerTemporalPropertiesWidget::saveTemporalProperties()

QgsDateTimeRange normalRange = QgsDateTimeRange( mStartTemporalDateTimeEdit->dateTime(),
mEndTemporalDateTimeEdit->dateTime() );
mLayer->temporalProperties()->setTemporalRange( normalRange );
mLayer->temporalProperties()->setTemporalSource( QgsMapLayerTemporalProperties::TemporalSource::Layer );

if ( mModeAutomaticRadio->isChecked() )
mLayer->temporalProperties()->setMode( QgsRasterLayerTemporalProperties::ModeTemporalRangeFromDataProvider );
else if ( mModeFixedRangeRadio->isChecked() )
mLayer->temporalProperties()->setMode( QgsRasterLayerTemporalProperties::ModeFixedTemporalRange );
mLayer->temporalProperties()->setFixedTemporalRange( normalRange );
}
165 changes: 45 additions & 120 deletions src/ui/raster/qgsrasterlayertemporalpropertieswidgetbase.ui
Expand Up @@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>743</width>
<height>658</height>
<width>611</width>
<height>413</height>
</rect>
</property>
<property name="windowTitle">
Expand Down Expand Up @@ -48,8 +48,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>743</width>
<height>658</height>
<width>611</width>
<height>413</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
Expand Down Expand Up @@ -81,43 +81,18 @@ background: white;QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::ti
<bool>true</bool>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="3" column="0">
<widget class="QRadioButton" name="mLayerRadioButton">
<item row="2" column="0" colspan="2">
<widget class="QRadioButton" name="mModeFixedRangeRadio">
<property name="text">
<string>Fixed time range</string>
<string>Fixed time range (only show this layer if animation time is within this range)</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item row="7" column="0" colspan="2">
<widget class="QFrame" name="frame">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item row="5" column="0" colspan="2">
<widget class="QFrame" name="frame_2">
<item row="3" column="0" colspan="2">
<widget class="QFrame" name="mFixedTimeRangeFrame">
<property name="enabled">
<bool>false</bool>
</property>
Expand All @@ -130,20 +105,17 @@ background: white;QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::ti
<property name="lineWidth">
<number>0</number>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<layout class="QGridLayout" name="gridLayout_2" columnstretch="0,2,0,2">
<property name="topMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="1" colspan="2">
<widget class="QgsDateTimeEdit" name="mStartTemporalDateTimeEdit">
<property name="displayFormat">
<string>M/d/yyyy h:mm AP</string>
</property>
<property name="timeSpec">
<enum>Qt::UTC</enum>
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Start date</string>
</property>
</widget>
</item>
Expand All @@ -157,17 +129,13 @@ background: white;QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::ti
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QPushButton" name="mResetDatesButton">
<property name="text">
<string>Reset dates</string>
<item row="0" column="1" colspan="2">
<widget class="QgsDateTimeEdit" name="mStartTemporalDateTimeEdit">
<property name="displayFormat">
<string>M/d/yyyy h:mm AP</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="mSetEndAsStartNormalButton">
<property name="text">
<string>Set end same as start</string>
<property name="timeSpec">
<enum>Qt::UTC</enum>
</property>
</widget>
</item>
Expand All @@ -178,18 +146,24 @@ background: white;QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::ti
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Start date</string>
<item row="1" column="3">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item row="0" column="0">
<widget class="QRadioButton" name="mAutomatic">
<item row="0" column="0" colspan="2">
<widget class="QRadioButton" name="mModeAutomaticRadio">
<property name="toolTip">
<string>Delegates temporal handling to the data provider</string>
</property>
Expand All @@ -201,33 +175,18 @@ background: white;QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::ti
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QFrame" name="frame_3">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
<item row="4" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
</layout>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Only show this layer, if animation time is within this range.</string>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</widget>
</spacer>
</item>
</layout>
</widget>
Expand All @@ -253,45 +212,11 @@ background: white;QgsCollapsibleGroupBoxBasic::title, QgsCollapsibleGroupBox::ti
</customwidgets>
<tabstops>
<tabstop>scrollArea</tabstop>
<tabstop>mLayerRadioButton</tabstop>
<tabstop>mModeFixedRangeRadio</tabstop>
<tabstop>mStartTemporalDateTimeEdit</tabstop>
<tabstop>mEndTemporalDateTimeEdit</tabstop>
<tabstop>mSetEndAsStartNormalButton</tabstop>
<tabstop>mTemporalGroupBox</tabstop>
</tabstops>
<resources/>
<connections>
<connection>
<sender>mAutomatic</sender>
<signal>toggled(bool)</signal>
<receiver>frame_3</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>101</x>
<y>56</y>
</hint>
<hint type="destinationlabel">
<x>161</x>
<y>86</y>
</hint>
</hints>
</connection>
<connection>
<sender>mLayerRadioButton</sender>
<signal>toggled(bool)</signal>
<receiver>frame_2</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>130</x>
<y>142</y>
</hint>
<hint type="destinationlabel">
<x>122</x>
<y>230</y>
</hint>
</hints>
</connection>
</connections>
<connections/>
</ui>

0 comments on commit f0d3bf0

Please sign in to comment.