Skip to content

Commit 840e280

Browse files
committed
Add spin box to set composer item background transparence numerically
1 parent decb981 commit 840e280

File tree

3 files changed

+85
-49
lines changed

3 files changed

+85
-49
lines changed

src/app/composer/qgscomposeritemwidget.cpp

+23
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,34 @@ void QgsComposerItemWidget::on_mBackgroundColorButton_clicked()
8989
mItem->endCommand();
9090
}
9191

92+
void QgsComposerItemWidget::on_mOpacitySpinBox_valueChanged( int value )
93+
{
94+
if ( !mItem )
95+
{
96+
return;
97+
}
98+
99+
mOpacitySlider->blockSignals( true );
100+
mOpacitySlider->setValue( value );
101+
mOpacitySlider->blockSignals( false );
102+
changeItemOpacity( value );
103+
}
104+
92105
void QgsComposerItemWidget::on_mOpacitySlider_sliderReleased()
93106
{
94107
if ( !mItem )
95108
{
96109
return;
97110
}
98111
int value = mOpacitySlider->value();
112+
mOpacitySpinBox->blockSignals( true );
113+
mOpacitySpinBox->setValue( value );
114+
mOpacitySpinBox->blockSignals( false );
115+
changeItemOpacity( value );
116+
}
99117

118+
void QgsComposerItemWidget::changeItemOpacity( int value )
119+
{
100120
mItem->beginCommand( tr( "Item opacity changed" ) );
101121
QBrush itemBrush = mItem->brush();
102122
QColor brushColor = itemBrush.color();
@@ -151,7 +171,9 @@ void QgsComposerItemWidget::setValuesForGuiElements()
151171
mOutlineWidthSpinBox->blockSignals( true );
152172
mFrameCheckBox->blockSignals( true );
153173
mItemIdLineEdit->blockSignals( true );
174+
mOpacitySpinBox->blockSignals( true );
154175

176+
mOpacitySpinBox->setValue( mItem->brush().color().alpha() );
155177
mOpacitySlider->setValue( mItem->brush().color().alpha() );
156178
mOutlineWidthSpinBox->setValue( mItem->pen().widthF() );
157179
mItemIdLineEdit->setText( mItem->id() );
@@ -168,6 +190,7 @@ void QgsComposerItemWidget::setValuesForGuiElements()
168190
mOutlineWidthSpinBox->blockSignals( false );
169191
mFrameCheckBox->blockSignals( false );
170192
mItemIdLineEdit->blockSignals( false );
193+
mOpacitySpinBox->blockSignals( false );
171194
}
172195

173196
void QgsComposerItemWidget::on_mPositionButton_clicked()

src/app/composer/qgscomposeritemwidget.h

+2
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class QgsComposerItemWidget: public QWidget, private Ui::QgsComposerItemWidgetBa
3535
void on_mFrameColorButton_clicked();
3636
void on_mBackgroundColorButton_clicked();
3737
void on_mOpacitySlider_sliderReleased();
38+
void on_mOpacitySpinBox_valueChanged( int value );
3839
void on_mOutlineWidthSpinBox_valueChanged( double d );
3940
void on_mFrameCheckBox_stateChanged( int state );
4041
void on_mPositionButton_clicked();
@@ -43,6 +44,7 @@ class QgsComposerItemWidget: public QWidget, private Ui::QgsComposerItemWidgetBa
4344
private:
4445
QgsComposerItemWidget();
4546
void setValuesForGuiElements();
47+
void changeItemOpacity( int value );
4648

4749
QgsComposerItem* mItem;
4850
};

src/ui/qgscomposeritemwidgetbase.ui

+60-49
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,63 @@
66
<rect>
77
<x>0</x>
88
<y>0</y>
9-
<width>233</width>
10-
<height>361</height>
9+
<width>209</width>
10+
<height>277</height>
1111
</rect>
1212
</property>
1313
<property name="windowTitle">
1414
<string>Form</string>
1515
</property>
16-
<layout class="QFormLayout" name="formLayout">
17-
<item row="3" column="0">
18-
<widget class="QLabel" name="mOpacityLabel">
16+
<layout class="QGridLayout" name="gridLayout">
17+
<item row="0" column="0" colspan="3">
18+
<widget class="QPushButton" name="mFrameColorButton">
1919
<property name="text">
20-
<string>Opacity</string>
21-
</property>
22-
<property name="wordWrap">
23-
<bool>true</bool>
20+
<string>Frame color...</string>
2421
</property>
25-
<property name="buddy">
26-
<cstring>mOpacitySlider</cstring>
22+
</widget>
23+
</item>
24+
<item row="1" column="0" colspan="3">
25+
<widget class="QPushButton" name="mBackgroundColorButton">
26+
<property name="text">
27+
<string>Background color...</string>
2728
</property>
2829
</widget>
2930
</item>
30-
<item row="5" column="0">
31+
<item row="2" column="0" colspan="3">
32+
<layout class="QHBoxLayout" name="horizontalLayout">
33+
<item>
34+
<widget class="QLabel" name="mOpacityLabel">
35+
<property name="text">
36+
<string>Opacity</string>
37+
</property>
38+
<property name="wordWrap">
39+
<bool>true</bool>
40+
</property>
41+
<property name="buddy">
42+
<cstring>mOpacitySlider</cstring>
43+
</property>
44+
</widget>
45+
</item>
46+
<item>
47+
<widget class="QSlider" name="mOpacitySlider">
48+
<property name="maximum">
49+
<number>255</number>
50+
</property>
51+
<property name="orientation">
52+
<enum>Qt::Horizontal</enum>
53+
</property>
54+
</widget>
55+
</item>
56+
<item>
57+
<widget class="QSpinBox" name="mOpacitySpinBox">
58+
<property name="maximum">
59+
<number>255</number>
60+
</property>
61+
</widget>
62+
</item>
63+
</layout>
64+
</item>
65+
<item row="3" column="0">
3166
<widget class="QLabel" name="mOutlineWidthLabel">
3267
<property name="text">
3368
<string>Outline width</string>
@@ -40,51 +75,34 @@
4075
</property>
4176
</widget>
4277
</item>
43-
<item row="9" column="0">
44-
<widget class="QLabel" name="mIdLabel">
45-
<property name="text">
46-
<string>Item ID</string>
47-
</property>
48-
</widget>
78+
<item row="3" column="2">
79+
<widget class="QDoubleSpinBox" name="mOutlineWidthSpinBox"/>
4980
</item>
50-
<item row="0" column="0" colspan="2">
51-
<widget class="QPushButton" name="mFrameColorButton">
81+
<item row="4" column="0" colspan="3">
82+
<widget class="QPushButton" name="mPositionButton">
5283
<property name="text">
53-
<string>Frame color...</string>
84+
<string>Position and size...</string>
5485
</property>
5586
</widget>
5687
</item>
57-
<item row="1" column="0" colspan="2">
58-
<widget class="QPushButton" name="mBackgroundColorButton">
88+
<item row="5" column="0" colspan="2">
89+
<widget class="QCheckBox" name="mFrameCheckBox">
5990
<property name="text">
60-
<string>Background color...</string>
61-
</property>
62-
</widget>
63-
</item>
64-
<item row="3" column="1">
65-
<widget class="QSlider" name="mOpacitySlider">
66-
<property name="maximum">
67-
<number>255</number>
68-
</property>
69-
<property name="orientation">
70-
<enum>Qt::Horizontal</enum>
91+
<string>Show frame</string>
7192
</property>
7293
</widget>
7394
</item>
74-
<item row="5" column="1">
75-
<widget class="QDoubleSpinBox" name="mOutlineWidthSpinBox"/>
76-
</item>
77-
<item row="7" column="0" colspan="2">
78-
<widget class="QPushButton" name="mPositionButton">
95+
<item row="6" column="0">
96+
<widget class="QLabel" name="mIdLabel">
7997
<property name="text">
80-
<string>Position and size...</string>
98+
<string>Item ID</string>
8199
</property>
82100
</widget>
83101
</item>
84-
<item row="9" column="1">
102+
<item row="6" column="1" colspan="2">
85103
<widget class="QLineEdit" name="mItemIdLineEdit"/>
86104
</item>
87-
<item row="11" column="0" colspan="2">
105+
<item row="7" column="0" colspan="2">
88106
<spacer name="verticalSpacer">
89107
<property name="orientation">
90108
<enum>Qt::Vertical</enum>
@@ -97,13 +115,6 @@
97115
</property>
98116
</spacer>
99117
</item>
100-
<item row="8" column="0" colspan="2">
101-
<widget class="QCheckBox" name="mFrameCheckBox">
102-
<property name="text">
103-
<string>Show frame</string>
104-
</property>
105-
</widget>
106-
</item>
107118
</layout>
108119
</widget>
109120
<resources/>

0 commit comments

Comments
 (0)