Skip to content

Commit 705d4f5

Browse files
committed
[styledock] Fix undo redo
1 parent 17b4856 commit 705d4f5

File tree

2 files changed

+43
-25
lines changed

2 files changed

+43
-25
lines changed

src/app/qgsmapstylingwidget.cpp

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,13 @@ QgsMapStylingWidget::QgsMapStylingWidget( QgsMapCanvas* canvas, QWidget *parent
4242

4343
mAutoApplyTimer = new QTimer( this );
4444
mAutoApplyTimer->setSingleShot( true );
45+
46+
mUndoWidget = new QgsUndoWidget( this, mMapCanvas );
47+
mUndoWidget->setObjectName( "Undo Styles" );
48+
mUndoWidget->hide();
49+
connect( mUndoButton, SIGNAL( pressed() ), mUndoWidget, SLOT( undo() ) );
50+
connect( mRedoButton, SIGNAL( pressed() ), mUndoWidget, SLOT( redo() ) );
51+
4552
connect( mAutoApplyTimer, SIGNAL( timeout() ), this, SLOT( apply() ) );
4653

4754
connect( mOptionsListWidget, SIGNAL( currentRowChanged( int ) ), this, SLOT( updateCurrentWidgetLayer() ) );
@@ -168,6 +175,8 @@ void QgsMapStylingWidget::updateCurrentWidgetLayer()
168175

169176
QgsMapLayer* layer = mCurrentLayer;
170177

178+
mUndoWidget->setUndoStack( layer->undoStackStyles() );
179+
171180
mLayerTitleLabel->setText( layer->name() );
172181

173182
if ( layer->type() == QgsMapLayer::VectorLayer )
@@ -181,6 +190,10 @@ void QgsMapStylingWidget::updateCurrentWidgetLayer()
181190
{
182191
mLabelingWidget = widget;
183192
}
193+
else if ( QgsUndoWidget* widget = qobject_cast<QgsUndoWidget*>( current ) )
194+
{
195+
mUndoWidget = widget;
196+
}
184197
else
185198
{
186199
current->deleteLater();
@@ -208,11 +221,6 @@ void QgsMapStylingWidget::updateCurrentWidgetLayer()
208221
break;
209222
}
210223
case 2: // History
211-
mUndoWidget = new QgsUndoWidget( mOptionsListWidget, mMapCanvas );
212-
mUndoWidget->setObjectName( "Undo Styles" );
213-
mUndoWidget->setUndoStack( layer->undoStackStyles() );
214-
connect( mUndoButton, SIGNAL( pressed() ), mUndoWidget, SLOT( undo() ) );
215-
connect( mRedoButton, SIGNAL( pressed() ), mUndoWidget, SLOT( redo() ) );
216224
mWidgetArea->setWidget( mUndoWidget );
217225
break;
218226
default:
@@ -235,6 +243,10 @@ void QgsMapStylingWidget::updateCurrentWidgetLayer()
235243
{
236244
mRasterStyleWidget = widget;
237245
}
246+
else if ( QgsUndoWidget* widget = qobject_cast<QgsUndoWidget*>( current ) )
247+
{
248+
mUndoWidget = widget;
249+
}
238250
else
239251
{
240252
current->deleteLater();
@@ -276,12 +288,6 @@ void QgsMapStylingWidget::updateCurrentWidgetLayer()
276288
break;
277289
}
278290
case 3: // History
279-
mUndoWidget = new QgsUndoWidget( mOptionsListWidget, mMapCanvas );
280-
mUndoWidget->setObjectName( "Undo Styles" );
281-
mUndoWidget->setUndoStack( layer->undoStackStyles() );
282-
283-
connect( mUndoButton, SIGNAL( pressed() ), mUndoWidget, SLOT( undo() ) );
284-
connect( mRedoButton, SIGNAL( pressed() ), mUndoWidget, SLOT( redo() ) );
285291
mWidgetArea->setWidget( mUndoWidget );
286292
break;
287293
default:

src/ui/qgsmapstylingwidgetbase.ui

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,22 @@
1414
<string>Form</string>
1515
</property>
1616
<layout class="QGridLayout" name="gridLayout_2">
17-
<property name="margin">
17+
<property name="leftMargin">
18+
<number>3</number>
19+
</property>
20+
<property name="topMargin">
21+
<number>3</number>
22+
</property>
23+
<property name="rightMargin">
24+
<number>3</number>
25+
</property>
26+
<property name="bottomMargin">
1827
<number>3</number>
1928
</property>
2029
<item row="0" column="0">
2130
<widget class="QStackedWidget" name="mStackedWidget">
2231
<property name="currentIndex">
23-
<number>0</number>
32+
<number>1</number>
2433
</property>
2534
<widget class="QWidget" name="page">
2635
<layout class="QGridLayout" name="gridLayout_3">
@@ -35,16 +44,25 @@
3544
</widget>
3645
<widget class="QWidget" name="page_2">
3746
<layout class="QGridLayout" name="gridLayout">
38-
<property name="horizontalSpacing">
39-
<number>3</number>
47+
<property name="leftMargin">
48+
<number>0</number>
49+
</property>
50+
<property name="topMargin">
51+
<number>0</number>
52+
</property>
53+
<property name="rightMargin">
54+
<number>0</number>
4055
</property>
41-
<property name="margin">
56+
<property name="bottomMargin">
4257
<number>0</number>
4358
</property>
59+
<property name="horizontalSpacing">
60+
<number>3</number>
61+
</property>
4462
<item row="2" column="1">
4563
<layout class="QHBoxLayout" name="horizontalLayout_2">
4664
<item>
47-
<widget class="QToolButton" name="mRedoButton">
65+
<widget class="QToolButton" name="mUndoButton">
4866
<property name="text">
4967
<string>...</string>
5068
</property>
@@ -55,7 +73,7 @@
5573
</widget>
5674
</item>
5775
<item>
58-
<widget class="QToolButton" name="mUndoButton">
76+
<widget class="QToolButton" name="mRedoButton">
5977
<property name="text">
6078
<string>...</string>
6179
</property>
@@ -184,7 +202,7 @@
184202
<x>0</x>
185203
<y>0</y>
186204
<width>320</width>
187-
<height>388</height>
205+
<height>401</height>
188206
</rect>
189207
</property>
190208
</widget>
@@ -195,12 +213,6 @@
195213
</widget>
196214
</item>
197215
</layout>
198-
<zorder>mLayerTitleLabel</zorder>
199-
<zorder>mLiveApplyCheck</zorder>
200-
<zorder>mStackedWidget</zorder>
201-
<zorder>mRedoButton</zorder>
202-
<zorder>mUndoButton</zorder>
203-
<zorder>mButtonBox</zorder>
204216
</widget>
205217
<resources>
206218
<include location="../../images/images.qrc"/>

0 commit comments

Comments
 (0)