def add_blend_mode_combobox(self): """Add blend mode combobox.""" self.blend_mode_combo_box = QgsBlendModeComboBox() # Default value self.blend_mode = QPainter.CompositionMode_Multiply self.blend_mode_combo_box.setBlendMode(self.blend_mode) blend_mode_combo_box = self.blend_mode_combo_box # Signal inherited from QComboBox blend_mode_combo_box.currentIndexChanged.connect( self.assign_blend_mode) # Dirty insertion in the existing Qt Designer generated UI self.dockwidget.children()[-1].children()[0].layout().insertWidget( 1, self.blend_mode_combo_box)
def __init__(self, parent, composerObject): QtGui.QWidget.__init__(self, parent) self.mComposerObject = composerObject self.setObjectName(_fromUtf8("QgsComposerItemWidgetBase")) self.resize(290, 847) self.verticalLayout_2 = QtGui.QVBoxLayout(self) self.verticalLayout_2.setMargin(0) self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) self.mGeneralOptionsGroupBox = QgsCollapsibleGroupBoxBasic(self) self.mGeneralOptionsGroupBox.setFocusPolicy(QtCore.Qt.StrongFocus) self.mGeneralOptionsGroupBox.setProperty("syncGroup", _fromUtf8("composeritem")) self.mGeneralOptionsGroupBox.setProperty("collapsed", True) self.mGeneralOptionsGroupBox.setObjectName( _fromUtf8("mGeneralOptionsGroupBox")) self.verticalLayout = QtGui.QVBoxLayout(self.mGeneralOptionsGroupBox) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.gridLayout_3 = QtGui.QGridLayout() self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3")) self.mWidthLabel = QtGui.QLabel(self.mGeneralOptionsGroupBox) self.mWidthLabel.setObjectName(_fromUtf8("mWidthLabel")) self.gridLayout_3.addWidget(self.mWidthLabel, 3, 0, 1, 1) self.mXLabel = QtGui.QLabel(self.mGeneralOptionsGroupBox) self.mXLabel.setObjectName(_fromUtf8("mXLabel")) self.gridLayout_3.addWidget(self.mXLabel, 1, 0, 1, 1) self.mHeightLabel = QtGui.QLabel(self.mGeneralOptionsGroupBox) self.mHeightLabel.setObjectName(_fromUtf8("mHeightLabel")) self.gridLayout_3.addWidget(self.mHeightLabel, 4, 0, 1, 1) self.mYLabel = QtGui.QLabel(self.mGeneralOptionsGroupBox) self.mYLabel.setObjectName(_fromUtf8("mYLabel")) self.gridLayout_3.addWidget(self.mYLabel, 2, 0, 1, 1) self.mPageLabel = QtGui.QLabel(self.mGeneralOptionsGroupBox) self.mPageLabel.setObjectName(_fromUtf8("mPageLabel")) self.gridLayout_3.addWidget(self.mPageLabel, 0, 0, 1, 1) self.mXPositionDDBtn = QgsDataDefinedButton( self.mGeneralOptionsGroupBox) self.mXPositionDDBtn.setObjectName(_fromUtf8("mXPositionDDBtn")) self.gridLayout_3.addWidget(self.mXPositionDDBtn, 1, 3, 1, 1) self.mYPositionDDBtn = QgsDataDefinedButton( self.mGeneralOptionsGroupBox) self.mYPositionDDBtn.setObjectName(_fromUtf8("mYPositionDDBtn")) self.gridLayout_3.addWidget(self.mYPositionDDBtn, 2, 3, 1, 1) self.mWidthDDBtn = QgsDataDefinedButton(self.mGeneralOptionsGroupBox) self.mWidthDDBtn.setObjectName(_fromUtf8("mWidthDDBtn")) self.gridLayout_3.addWidget(self.mWidthDDBtn, 3, 3, 1, 1) self.mHeightDDBtn = QgsDataDefinedButton(self.mGeneralOptionsGroupBox) self.mHeightDDBtn.setObjectName(_fromUtf8("mHeightDDBtn")) self.gridLayout_3.addWidget(self.mHeightDDBtn, 4, 3, 1, 1) self.mPageSpinBox = QgsSpinBox(self.mGeneralOptionsGroupBox) self.mPageSpinBox.setMinimum(1) self.mPageSpinBox.setProperty("showClearButton", False) self.mPageSpinBox.setObjectName(_fromUtf8("mPageSpinBox")) self.gridLayout_3.addWidget(self.mPageSpinBox, 0, 1, 1, 3) self.mWidthSpin = QgsDoubleSpinBox(self.mGeneralOptionsGroupBox) self.mWidthSpin.setDecimals(3) self.mWidthSpin.setMaximum(9999999.0) self.mWidthSpin.setProperty("showClearButton", False) self.mWidthSpin.setObjectName(_fromUtf8("mWidthSpin")) self.gridLayout_3.addWidget(self.mWidthSpin, 3, 1, 1, 2) self.mHeightSpin = QgsDoubleSpinBox(self.mGeneralOptionsGroupBox) self.mHeightSpin.setDecimals(3) self.mHeightSpin.setMaximum(9999999.0) self.mHeightSpin.setProperty("showClearButton", False) self.mHeightSpin.setObjectName(_fromUtf8("mHeightSpin")) self.gridLayout_3.addWidget(self.mHeightSpin, 4, 1, 1, 2) self.mYPosSpin = QgsDoubleSpinBox(self.mGeneralOptionsGroupBox) self.mYPosSpin.setDecimals(3) self.mYPosSpin.setMinimum(-9999999.0) self.mYPosSpin.setMaximum(9999999.0) self.mYPosSpin.setProperty("showClearButton", False) self.mYPosSpin.setObjectName(_fromUtf8("mYPosSpin")) self.gridLayout_3.addWidget(self.mYPosSpin, 2, 1, 1, 2) self.mXPosSpin = QgsDoubleSpinBox(self.mGeneralOptionsGroupBox) self.mXPosSpin.setDecimals(3) self.mXPosSpin.setMinimum(-9999999.0) self.mXPosSpin.setMaximum(9999999.0) self.mXPosSpin.setProperty("showClearButton", False) self.mXPosSpin.setObjectName(_fromUtf8("mXPosSpin")) self.gridLayout_3.addWidget(self.mXPosSpin, 1, 1, 1, 2) self.gridLayout_3.setColumnStretch(1, 1) self.gridLayout_3.setColumnStretch(2, 1) self.gridLayout_3.setColumnStretch(3, 1) self.verticalLayout.addLayout(self.gridLayout_3) self.horizontalLayout_7 = QtGui.QHBoxLayout() self.horizontalLayout_7.setObjectName(_fromUtf8("horizontalLayout_7")) self.label_2 = QtGui.QLabel(self.mGeneralOptionsGroupBox) self.label_2.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) self.label_2.setObjectName(_fromUtf8("label_2")) self.horizontalLayout_7.addWidget(self.label_2) self.gridLayout = QtGui.QGridLayout() self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.mUpperMiddleCheckBox = QtGui.QCheckBox( self.mGeneralOptionsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mUpperMiddleCheckBox.sizePolicy().hasHeightForWidth()) self.mUpperMiddleCheckBox.setSizePolicy(sizePolicy) self.mUpperMiddleCheckBox.setText(_fromUtf8("")) self.mUpperMiddleCheckBox.setObjectName( _fromUtf8("mUpperMiddleCheckBox")) self.gridLayout.addWidget(self.mUpperMiddleCheckBox, 0, 1, 1, 1) self.mMiddleRightCheckBox = QtGui.QCheckBox( self.mGeneralOptionsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mMiddleRightCheckBox.sizePolicy().hasHeightForWidth()) self.mMiddleRightCheckBox.setSizePolicy(sizePolicy) self.mMiddleRightCheckBox.setText(_fromUtf8("")) self.mMiddleRightCheckBox.setObjectName( _fromUtf8("mMiddleRightCheckBox")) self.gridLayout.addWidget(self.mMiddleRightCheckBox, 1, 2, 1, 1) self.mMiddleCheckBox = QtGui.QCheckBox(self.mGeneralOptionsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mMiddleCheckBox.sizePolicy().hasHeightForWidth()) self.mMiddleCheckBox.setSizePolicy(sizePolicy) self.mMiddleCheckBox.setText(_fromUtf8("")) self.mMiddleCheckBox.setObjectName(_fromUtf8("mMiddleCheckBox")) self.gridLayout.addWidget(self.mMiddleCheckBox, 1, 1, 1, 1) self.mUpperRightCheckBox = QtGui.QCheckBox( self.mGeneralOptionsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mUpperRightCheckBox.sizePolicy().hasHeightForWidth()) self.mUpperRightCheckBox.setSizePolicy(sizePolicy) self.mUpperRightCheckBox.setText(_fromUtf8("")) self.mUpperRightCheckBox.setObjectName( _fromUtf8("mUpperRightCheckBox")) self.gridLayout.addWidget(self.mUpperRightCheckBox, 0, 2, 1, 1) self.mLowerMiddleCheckBox = QtGui.QCheckBox( self.mGeneralOptionsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mLowerMiddleCheckBox.sizePolicy().hasHeightForWidth()) self.mLowerMiddleCheckBox.setSizePolicy(sizePolicy) self.mLowerMiddleCheckBox.setText(_fromUtf8("")) self.mLowerMiddleCheckBox.setObjectName( _fromUtf8("mLowerMiddleCheckBox")) self.gridLayout.addWidget(self.mLowerMiddleCheckBox, 2, 1, 1, 1) self.mLowerRightCheckBox = QtGui.QCheckBox( self.mGeneralOptionsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mLowerRightCheckBox.sizePolicy().hasHeightForWidth()) self.mLowerRightCheckBox.setSizePolicy(sizePolicy) self.mLowerRightCheckBox.setText(_fromUtf8("")) self.mLowerRightCheckBox.setObjectName( _fromUtf8("mLowerRightCheckBox")) self.gridLayout.addWidget(self.mLowerRightCheckBox, 2, 2, 1, 1) self.mUpperLeftCheckBox = QtGui.QCheckBox(self.mGeneralOptionsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mUpperLeftCheckBox.sizePolicy().hasHeightForWidth()) self.mUpperLeftCheckBox.setSizePolicy(sizePolicy) self.mUpperLeftCheckBox.setText(_fromUtf8("")) self.mUpperLeftCheckBox.setObjectName(_fromUtf8("mUpperLeftCheckBox")) self.gridLayout.addWidget(self.mUpperLeftCheckBox, 0, 0, 1, 1) self.mLowerLeftCheckBox = QtGui.QCheckBox(self.mGeneralOptionsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mLowerLeftCheckBox.sizePolicy().hasHeightForWidth()) self.mLowerLeftCheckBox.setSizePolicy(sizePolicy) self.mLowerLeftCheckBox.setText(_fromUtf8("")) self.mLowerLeftCheckBox.setObjectName(_fromUtf8("mLowerLeftCheckBox")) self.gridLayout.addWidget(self.mLowerLeftCheckBox, 2, 0, 1, 1) self.mMiddleLeftCheckBox = QtGui.QCheckBox( self.mGeneralOptionsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mMiddleLeftCheckBox.sizePolicy().hasHeightForWidth()) self.mMiddleLeftCheckBox.setSizePolicy(sizePolicy) self.mMiddleLeftCheckBox.setText(_fromUtf8("")) self.mMiddleLeftCheckBox.setObjectName( _fromUtf8("mMiddleLeftCheckBox")) self.gridLayout.addWidget(self.mMiddleLeftCheckBox, 1, 0, 1, 1) self.horizontalLayout_7.addLayout(self.gridLayout) spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_7.addItem(spacerItem) self.verticalLayout.addLayout(self.horizontalLayout_7) self.verticalLayout_2.addWidget(self.mGeneralOptionsGroupBox) self.mTransformsGroupBox = QgsCollapsibleGroupBoxBasic(self) self.mTransformsGroupBox.setFocusPolicy(QtCore.Qt.StrongFocus) self.mTransformsGroupBox.setProperty("syncGroup", _fromUtf8("composeritem")) self.mTransformsGroupBox.setProperty("collapsed", True) self.mTransformsGroupBox.setObjectName( _fromUtf8("mTransformsGroupBox")) self.gridLayout_5 = QtGui.QGridLayout(self.mTransformsGroupBox) self.gridLayout_5.setObjectName(_fromUtf8("gridLayout_5")) self.label = QtGui.QLabel(self.mTransformsGroupBox) self.label.setObjectName(_fromUtf8("label")) self.gridLayout_5.addWidget(self.label, 0, 0, 1, 1) self.horizontalLayout_4 = QtGui.QHBoxLayout() self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4")) self.mItemRotationSpinBox = QgsDoubleSpinBox(self.mTransformsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mItemRotationSpinBox.sizePolicy().hasHeightForWidth()) self.mItemRotationSpinBox.setSizePolicy(sizePolicy) self.mItemRotationSpinBox.setMaximum(360.0) self.mItemRotationSpinBox.setObjectName( _fromUtf8("mItemRotationSpinBox")) self.horizontalLayout_4.addWidget(self.mItemRotationSpinBox) self.mItemRotationDDBtn = QgsDataDefinedButton( self.mTransformsGroupBox) self.mItemRotationDDBtn.setObjectName(_fromUtf8("mItemRotationDDBtn")) self.horizontalLayout_4.addWidget(self.mItemRotationDDBtn) self.gridLayout_5.addLayout(self.horizontalLayout_4, 0, 1, 1, 1) self.gridLayout_5.setColumnStretch(1, 1) self.verticalLayout_2.addWidget(self.mTransformsGroupBox) self.mFrameGroupBox = QgsCollapsibleGroupBoxBasic(self) self.mFrameGroupBox.setCheckable(True) self.mFrameGroupBox.setProperty("syncGroup", _fromUtf8("composeritem")) self.mFrameGroupBox.setProperty("collapsed", True) self.mFrameGroupBox.setObjectName(_fromUtf8("mFrameGroupBox")) self.gridLayout_6 = QtGui.QGridLayout(self.mFrameGroupBox) self.gridLayout_6.setObjectName(_fromUtf8("gridLayout_6")) self.label_3 = QtGui.QLabel(self.mFrameGroupBox) self.label_3.setObjectName(_fromUtf8("label_3")) self.gridLayout_6.addWidget(self.label_3, 0, 0, 1, 1) self.horizontalLayout_6 = QtGui.QHBoxLayout() self.horizontalLayout_6.setObjectName(_fromUtf8("horizontalLayout_6")) self.mFrameColorButton = QgsColorButtonV2(self.mFrameGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mFrameColorButton.sizePolicy().hasHeightForWidth()) self.mFrameColorButton.setSizePolicy(sizePolicy) self.mFrameColorButton.setMinimumSize(QtCore.QSize(120, 0)) self.mFrameColorButton.setMaximumSize(QtCore.QSize(120, 16777215)) self.mFrameColorButton.setText(_fromUtf8("")) self.mFrameColorButton.setObjectName(_fromUtf8("mFrameColorButton")) self.horizontalLayout_6.addWidget(self.mFrameColorButton) spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_6.addItem(spacerItem1) self.gridLayout_6.addLayout(self.horizontalLayout_6, 0, 1, 1, 1) self.mOutlineWidthLabel = QtGui.QLabel(self.mFrameGroupBox) self.mOutlineWidthLabel.setWordWrap(True) self.mOutlineWidthLabel.setObjectName(_fromUtf8("mOutlineWidthLabel")) self.gridLayout_6.addWidget(self.mOutlineWidthLabel, 1, 0, 1, 1) self.mOutlineWidthSpinBox = QgsDoubleSpinBox(self.mFrameGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mOutlineWidthSpinBox.sizePolicy().hasHeightForWidth()) self.mOutlineWidthSpinBox.setSizePolicy(sizePolicy) self.mOutlineWidthSpinBox.setSingleStep(0.1) self.mOutlineWidthSpinBox.setProperty("showClearButton", False) self.mOutlineWidthSpinBox.setObjectName( _fromUtf8("mOutlineWidthSpinBox")) self.gridLayout_6.addWidget(self.mOutlineWidthSpinBox, 1, 1, 1, 1) self.label_8 = QtGui.QLabel(self.mFrameGroupBox) self.label_8.setObjectName(_fromUtf8("label_8")) self.gridLayout_6.addWidget(self.label_8, 2, 0, 1, 1) self.mFrameJoinStyleCombo = QgsPenJoinStyleComboBox( self.mFrameGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mFrameJoinStyleCombo.sizePolicy().hasHeightForWidth()) self.mFrameJoinStyleCombo.setSizePolicy(sizePolicy) self.mFrameJoinStyleCombo.setObjectName( _fromUtf8("mFrameJoinStyleCombo")) self.gridLayout_6.addWidget(self.mFrameJoinStyleCombo, 2, 1, 1, 1) self.verticalLayout_2.addWidget(self.mFrameGroupBox) self.mBackgroundGroupBox = QgsCollapsibleGroupBoxBasic(self) self.mBackgroundGroupBox.setCheckable(True) self.mBackgroundGroupBox.setChecked(True) self.mBackgroundGroupBox.setProperty("syncGroup", _fromUtf8("composeritem")) self.mBackgroundGroupBox.setProperty("collapsed", True) self.mBackgroundGroupBox.setObjectName( _fromUtf8("mBackgroundGroupBox")) self.gridLayout_7 = QtGui.QGridLayout(self.mBackgroundGroupBox) self.gridLayout_7.setObjectName(_fromUtf8("gridLayout_7")) self.label_4 = QtGui.QLabel(self.mBackgroundGroupBox) self.label_4.setObjectName(_fromUtf8("label_4")) self.gridLayout_7.addWidget(self.label_4, 0, 0, 1, 1) self.horizontalLayout_5 = QtGui.QHBoxLayout() self.horizontalLayout_5.setObjectName(_fromUtf8("horizontalLayout_5")) self.mBackgroundColorButton = QgsColorButtonV2( self.mBackgroundGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mBackgroundColorButton.sizePolicy().hasHeightForWidth()) self.mBackgroundColorButton.setSizePolicy(sizePolicy) self.mBackgroundColorButton.setMinimumSize(QtCore.QSize(120, 0)) self.mBackgroundColorButton.setMaximumSize(QtCore.QSize(120, 16777215)) self.mBackgroundColorButton.setText(_fromUtf8("")) self.mBackgroundColorButton.setObjectName( _fromUtf8("mBackgroundColorButton")) self.horizontalLayout_5.addWidget(self.mBackgroundColorButton) spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_5.addItem(spacerItem2) self.gridLayout_7.addLayout(self.horizontalLayout_5, 0, 1, 1, 1) self.verticalLayout_2.addWidget(self.mBackgroundGroupBox) self.groupBox = QgsCollapsibleGroupBoxBasic(self) self.groupBox.setFocusPolicy(QtCore.Qt.StrongFocus) self.groupBox.setProperty("syncGroup", _fromUtf8("composeritem")) self.groupBox.setProperty("collapsed", True) self.groupBox.setObjectName(_fromUtf8("groupBox")) self.gridLayout_8 = QtGui.QGridLayout(self.groupBox) self.gridLayout_8.setObjectName(_fromUtf8("gridLayout_8")) self.mItemIdLabel = QtGui.QLabel(self.groupBox) self.mItemIdLabel.setObjectName(_fromUtf8("mItemIdLabel")) self.gridLayout_8.addWidget(self.mItemIdLabel, 0, 0, 1, 1) self.mItemIdLineEdit = QtGui.QLineEdit(self.groupBox) self.mItemIdLineEdit.setObjectName(_fromUtf8("mItemIdLineEdit")) self.gridLayout_8.addWidget(self.mItemIdLineEdit, 0, 1, 1, 1) self.verticalLayout_2.addWidget(self.groupBox) self.groupRendering = QgsCollapsibleGroupBoxBasic(self) self.groupRendering.setFocusPolicy(QtCore.Qt.StrongFocus) self.groupRendering.setProperty("collapsed", True) self.groupRendering.setProperty("syncGroup", _fromUtf8("composeritem")) self.groupRendering.setObjectName(_fromUtf8("groupRendering")) self.gridLayout_4 = QtGui.QGridLayout(self.groupRendering) self.gridLayout_4.setObjectName(_fromUtf8("gridLayout_4")) self.labelBlendMode = QtGui.QLabel(self.groupRendering) self.labelBlendMode.setObjectName(_fromUtf8("labelBlendMode")) self.gridLayout_4.addWidget(self.labelBlendMode, 0, 0, 1, 1) self.horizontalLayout_3 = QtGui.QHBoxLayout() self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3")) self.mBlendModeCombo = QgsBlendModeComboBox(self.groupRendering) self.mBlendModeCombo.setObjectName(_fromUtf8("mBlendModeCombo")) self.horizontalLayout_3.addWidget(self.mBlendModeCombo) self.mBlendModeDDBtn = QgsDataDefinedButton(self.groupRendering) self.mBlendModeDDBtn.setObjectName(_fromUtf8("mBlendModeDDBtn")) self.horizontalLayout_3.addWidget(self.mBlendModeDDBtn) self.gridLayout_4.addLayout(self.horizontalLayout_3, 0, 1, 1, 1) self.labelTransparency = QtGui.QLabel(self.groupRendering) self.labelTransparency.setObjectName(_fromUtf8("labelTransparency")) self.gridLayout_4.addWidget(self.labelTransparency, 1, 0, 1, 1) self.horizontalLayout_2 = QtGui.QHBoxLayout() self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2")) self.mTransparencySlider = QtGui.QSlider(self.groupRendering) self.mTransparencySlider.setMaximum(100) self.mTransparencySlider.setOrientation(QtCore.Qt.Horizontal) self.mTransparencySlider.setObjectName( _fromUtf8("mTransparencySlider")) self.horizontalLayout_2.addWidget(self.mTransparencySlider) self.mTransparencySpnBx = QgsSpinBox(self.groupRendering) self.mTransparencySpnBx.setMinimumSize(QtCore.QSize(80, 25)) self.mTransparencySpnBx.setMaximum(100) self.mTransparencySpnBx.setObjectName(_fromUtf8("mTransparencySpnBx")) self.horizontalLayout_2.addWidget(self.mTransparencySpnBx) self.mTransparencyDDBtn = QgsDataDefinedButton(self.groupRendering) self.mTransparencyDDBtn.setObjectName(_fromUtf8("mTransparencyDDBtn")) self.horizontalLayout_2.addWidget(self.mTransparencyDDBtn) self.gridLayout_4.addLayout(self.horizontalLayout_2, 1, 1, 1, 1) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) self.mExcludeFromPrintsCheckBox = QtGui.QCheckBox(self.groupRendering) self.mExcludeFromPrintsCheckBox.setObjectName( _fromUtf8("mExcludeFromPrintsCheckBox")) self.horizontalLayout.addWidget(self.mExcludeFromPrintsCheckBox) self.mExcludePrintsDDBtn = QgsDataDefinedButton(self.groupRendering) self.mExcludePrintsDDBtn.setObjectName( _fromUtf8("mExcludePrintsDDBtn")) self.horizontalLayout.addWidget(self.mExcludePrintsDDBtn) self.gridLayout_4.addLayout(self.horizontalLayout, 2, 0, 1, 2) self.verticalLayout_2.addWidget(self.groupRendering) self.groupBox_3 = QgsCollapsibleGroupBox(self) self.groupBox_3.setObjectName(_fromUtf8("groupBox_3")) self.verticalLayout_4 = QtGui.QVBoxLayout(self.groupBox_3) self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4")) self.mVariableEditor = QgsVariableEditorWidget(self.groupBox_3) self.mVariableEditor.setMinimumSize(QtCore.QSize(0, 200)) self.mVariableEditor.setObjectName(_fromUtf8("mVariableEditor")) self.verticalLayout_4.addWidget(self.mVariableEditor) self.verticalLayout_2.addWidget(self.groupBox_3) spacerItem3 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.MinimumExpanding) self.verticalLayout_2.addItem(spacerItem3) self.mOutlineWidthLabel.setBuddy(self.mOutlineWidthSpinBox) self.retranslateUi() QtCore.QMetaObject.connectSlotsByName(self) self.setTabOrder(self.mGeneralOptionsGroupBox, self.mPageSpinBox) self.setTabOrder(self.mPageSpinBox, self.mXPosSpin) self.setTabOrder(self.mXPosSpin, self.mXPositionDDBtn) self.setTabOrder(self.mXPositionDDBtn, self.mYPosSpin) self.setTabOrder(self.mYPosSpin, self.mYPositionDDBtn) self.setTabOrder(self.mYPositionDDBtn, self.mWidthSpin) self.setTabOrder(self.mWidthSpin, self.mWidthDDBtn) self.setTabOrder(self.mWidthDDBtn, self.mHeightSpin) self.setTabOrder(self.mHeightSpin, self.mHeightDDBtn) self.setTabOrder(self.mHeightDDBtn, self.mUpperLeftCheckBox) self.setTabOrder(self.mUpperLeftCheckBox, self.mUpperMiddleCheckBox) self.setTabOrder(self.mUpperMiddleCheckBox, self.mUpperRightCheckBox) self.setTabOrder(self.mUpperRightCheckBox, self.mMiddleLeftCheckBox) self.setTabOrder(self.mMiddleLeftCheckBox, self.mMiddleCheckBox) self.setTabOrder(self.mMiddleCheckBox, self.mMiddleRightCheckBox) self.setTabOrder(self.mMiddleRightCheckBox, self.mLowerLeftCheckBox) self.setTabOrder(self.mLowerLeftCheckBox, self.mLowerMiddleCheckBox) self.setTabOrder(self.mLowerMiddleCheckBox, self.mLowerRightCheckBox) self.setTabOrder(self.mLowerRightCheckBox, self.mTransformsGroupBox) self.setTabOrder(self.mTransformsGroupBox, self.mItemRotationSpinBox) self.setTabOrder(self.mItemRotationSpinBox, self.mItemRotationDDBtn) self.setTabOrder(self.mItemRotationDDBtn, self.mFrameGroupBox) self.setTabOrder(self.mFrameGroupBox, self.mFrameColorButton) self.setTabOrder(self.mFrameColorButton, self.mOutlineWidthSpinBox) self.setTabOrder(self.mOutlineWidthSpinBox, self.mFrameJoinStyleCombo) self.setTabOrder(self.mFrameJoinStyleCombo, self.mBackgroundGroupBox) self.setTabOrder(self.mBackgroundGroupBox, self.mBackgroundColorButton) self.setTabOrder(self.mBackgroundColorButton, self.groupBox) self.setTabOrder(self.groupBox, self.mItemIdLineEdit) self.setTabOrder(self.mItemIdLineEdit, self.groupRendering) self.setTabOrder(self.groupRendering, self.mBlendModeCombo) self.setTabOrder(self.mBlendModeCombo, self.mBlendModeDDBtn) self.setTabOrder(self.mBlendModeDDBtn, self.mTransparencySlider) self.setTabOrder(self.mTransparencySlider, self.mTransparencySpnBx) self.setTabOrder(self.mTransparencySpnBx, self.mTransparencyDDBtn) self.setTabOrder(self.mTransparencyDDBtn, self.mExcludeFromPrintsCheckBox) self.setTabOrder(self.mExcludeFromPrintsCheckBox, self.mExcludePrintsDDBtn) # self.mComposerObject = None self.groupBox_3.setVisible(False)
class Ui_QgsComposerItemWidgetBase(QtGui.QWidget): def __init__(self, parent, composerObject): QtGui.QWidget.__init__(self, parent) self.mComposerObject = composerObject self.setObjectName(_fromUtf8("QgsComposerItemWidgetBase")) self.resize(290, 847) self.verticalLayout_2 = QtGui.QVBoxLayout(self) self.verticalLayout_2.setMargin(0) self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) self.mGeneralOptionsGroupBox = QgsCollapsibleGroupBoxBasic(self) self.mGeneralOptionsGroupBox.setFocusPolicy(QtCore.Qt.StrongFocus) self.mGeneralOptionsGroupBox.setProperty("syncGroup", _fromUtf8("composeritem")) self.mGeneralOptionsGroupBox.setProperty("collapsed", True) self.mGeneralOptionsGroupBox.setObjectName( _fromUtf8("mGeneralOptionsGroupBox")) self.verticalLayout = QtGui.QVBoxLayout(self.mGeneralOptionsGroupBox) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.gridLayout_3 = QtGui.QGridLayout() self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3")) self.mWidthLabel = QtGui.QLabel(self.mGeneralOptionsGroupBox) self.mWidthLabel.setObjectName(_fromUtf8("mWidthLabel")) self.gridLayout_3.addWidget(self.mWidthLabel, 3, 0, 1, 1) self.mXLabel = QtGui.QLabel(self.mGeneralOptionsGroupBox) self.mXLabel.setObjectName(_fromUtf8("mXLabel")) self.gridLayout_3.addWidget(self.mXLabel, 1, 0, 1, 1) self.mHeightLabel = QtGui.QLabel(self.mGeneralOptionsGroupBox) self.mHeightLabel.setObjectName(_fromUtf8("mHeightLabel")) self.gridLayout_3.addWidget(self.mHeightLabel, 4, 0, 1, 1) self.mYLabel = QtGui.QLabel(self.mGeneralOptionsGroupBox) self.mYLabel.setObjectName(_fromUtf8("mYLabel")) self.gridLayout_3.addWidget(self.mYLabel, 2, 0, 1, 1) self.mPageLabel = QtGui.QLabel(self.mGeneralOptionsGroupBox) self.mPageLabel.setObjectName(_fromUtf8("mPageLabel")) self.gridLayout_3.addWidget(self.mPageLabel, 0, 0, 1, 1) self.mXPositionDDBtn = QgsDataDefinedButton( self.mGeneralOptionsGroupBox) self.mXPositionDDBtn.setObjectName(_fromUtf8("mXPositionDDBtn")) self.gridLayout_3.addWidget(self.mXPositionDDBtn, 1, 3, 1, 1) self.mYPositionDDBtn = QgsDataDefinedButton( self.mGeneralOptionsGroupBox) self.mYPositionDDBtn.setObjectName(_fromUtf8("mYPositionDDBtn")) self.gridLayout_3.addWidget(self.mYPositionDDBtn, 2, 3, 1, 1) self.mWidthDDBtn = QgsDataDefinedButton(self.mGeneralOptionsGroupBox) self.mWidthDDBtn.setObjectName(_fromUtf8("mWidthDDBtn")) self.gridLayout_3.addWidget(self.mWidthDDBtn, 3, 3, 1, 1) self.mHeightDDBtn = QgsDataDefinedButton(self.mGeneralOptionsGroupBox) self.mHeightDDBtn.setObjectName(_fromUtf8("mHeightDDBtn")) self.gridLayout_3.addWidget(self.mHeightDDBtn, 4, 3, 1, 1) self.mPageSpinBox = QgsSpinBox(self.mGeneralOptionsGroupBox) self.mPageSpinBox.setMinimum(1) self.mPageSpinBox.setProperty("showClearButton", False) self.mPageSpinBox.setObjectName(_fromUtf8("mPageSpinBox")) self.gridLayout_3.addWidget(self.mPageSpinBox, 0, 1, 1, 3) self.mWidthSpin = QgsDoubleSpinBox(self.mGeneralOptionsGroupBox) self.mWidthSpin.setDecimals(3) self.mWidthSpin.setMaximum(9999999.0) self.mWidthSpin.setProperty("showClearButton", False) self.mWidthSpin.setObjectName(_fromUtf8("mWidthSpin")) self.gridLayout_3.addWidget(self.mWidthSpin, 3, 1, 1, 2) self.mHeightSpin = QgsDoubleSpinBox(self.mGeneralOptionsGroupBox) self.mHeightSpin.setDecimals(3) self.mHeightSpin.setMaximum(9999999.0) self.mHeightSpin.setProperty("showClearButton", False) self.mHeightSpin.setObjectName(_fromUtf8("mHeightSpin")) self.gridLayout_3.addWidget(self.mHeightSpin, 4, 1, 1, 2) self.mYPosSpin = QgsDoubleSpinBox(self.mGeneralOptionsGroupBox) self.mYPosSpin.setDecimals(3) self.mYPosSpin.setMinimum(-9999999.0) self.mYPosSpin.setMaximum(9999999.0) self.mYPosSpin.setProperty("showClearButton", False) self.mYPosSpin.setObjectName(_fromUtf8("mYPosSpin")) self.gridLayout_3.addWidget(self.mYPosSpin, 2, 1, 1, 2) self.mXPosSpin = QgsDoubleSpinBox(self.mGeneralOptionsGroupBox) self.mXPosSpin.setDecimals(3) self.mXPosSpin.setMinimum(-9999999.0) self.mXPosSpin.setMaximum(9999999.0) self.mXPosSpin.setProperty("showClearButton", False) self.mXPosSpin.setObjectName(_fromUtf8("mXPosSpin")) self.gridLayout_3.addWidget(self.mXPosSpin, 1, 1, 1, 2) self.gridLayout_3.setColumnStretch(1, 1) self.gridLayout_3.setColumnStretch(2, 1) self.gridLayout_3.setColumnStretch(3, 1) self.verticalLayout.addLayout(self.gridLayout_3) self.horizontalLayout_7 = QtGui.QHBoxLayout() self.horizontalLayout_7.setObjectName(_fromUtf8("horizontalLayout_7")) self.label_2 = QtGui.QLabel(self.mGeneralOptionsGroupBox) self.label_2.setAlignment(QtCore.Qt.AlignLeading | QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) self.label_2.setObjectName(_fromUtf8("label_2")) self.horizontalLayout_7.addWidget(self.label_2) self.gridLayout = QtGui.QGridLayout() self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.mUpperMiddleCheckBox = QtGui.QCheckBox( self.mGeneralOptionsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mUpperMiddleCheckBox.sizePolicy().hasHeightForWidth()) self.mUpperMiddleCheckBox.setSizePolicy(sizePolicy) self.mUpperMiddleCheckBox.setText(_fromUtf8("")) self.mUpperMiddleCheckBox.setObjectName( _fromUtf8("mUpperMiddleCheckBox")) self.gridLayout.addWidget(self.mUpperMiddleCheckBox, 0, 1, 1, 1) self.mMiddleRightCheckBox = QtGui.QCheckBox( self.mGeneralOptionsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mMiddleRightCheckBox.sizePolicy().hasHeightForWidth()) self.mMiddleRightCheckBox.setSizePolicy(sizePolicy) self.mMiddleRightCheckBox.setText(_fromUtf8("")) self.mMiddleRightCheckBox.setObjectName( _fromUtf8("mMiddleRightCheckBox")) self.gridLayout.addWidget(self.mMiddleRightCheckBox, 1, 2, 1, 1) self.mMiddleCheckBox = QtGui.QCheckBox(self.mGeneralOptionsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mMiddleCheckBox.sizePolicy().hasHeightForWidth()) self.mMiddleCheckBox.setSizePolicy(sizePolicy) self.mMiddleCheckBox.setText(_fromUtf8("")) self.mMiddleCheckBox.setObjectName(_fromUtf8("mMiddleCheckBox")) self.gridLayout.addWidget(self.mMiddleCheckBox, 1, 1, 1, 1) self.mUpperRightCheckBox = QtGui.QCheckBox( self.mGeneralOptionsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mUpperRightCheckBox.sizePolicy().hasHeightForWidth()) self.mUpperRightCheckBox.setSizePolicy(sizePolicy) self.mUpperRightCheckBox.setText(_fromUtf8("")) self.mUpperRightCheckBox.setObjectName( _fromUtf8("mUpperRightCheckBox")) self.gridLayout.addWidget(self.mUpperRightCheckBox, 0, 2, 1, 1) self.mLowerMiddleCheckBox = QtGui.QCheckBox( self.mGeneralOptionsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mLowerMiddleCheckBox.sizePolicy().hasHeightForWidth()) self.mLowerMiddleCheckBox.setSizePolicy(sizePolicy) self.mLowerMiddleCheckBox.setText(_fromUtf8("")) self.mLowerMiddleCheckBox.setObjectName( _fromUtf8("mLowerMiddleCheckBox")) self.gridLayout.addWidget(self.mLowerMiddleCheckBox, 2, 1, 1, 1) self.mLowerRightCheckBox = QtGui.QCheckBox( self.mGeneralOptionsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mLowerRightCheckBox.sizePolicy().hasHeightForWidth()) self.mLowerRightCheckBox.setSizePolicy(sizePolicy) self.mLowerRightCheckBox.setText(_fromUtf8("")) self.mLowerRightCheckBox.setObjectName( _fromUtf8("mLowerRightCheckBox")) self.gridLayout.addWidget(self.mLowerRightCheckBox, 2, 2, 1, 1) self.mUpperLeftCheckBox = QtGui.QCheckBox(self.mGeneralOptionsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mUpperLeftCheckBox.sizePolicy().hasHeightForWidth()) self.mUpperLeftCheckBox.setSizePolicy(sizePolicy) self.mUpperLeftCheckBox.setText(_fromUtf8("")) self.mUpperLeftCheckBox.setObjectName(_fromUtf8("mUpperLeftCheckBox")) self.gridLayout.addWidget(self.mUpperLeftCheckBox, 0, 0, 1, 1) self.mLowerLeftCheckBox = QtGui.QCheckBox(self.mGeneralOptionsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mLowerLeftCheckBox.sizePolicy().hasHeightForWidth()) self.mLowerLeftCheckBox.setSizePolicy(sizePolicy) self.mLowerLeftCheckBox.setText(_fromUtf8("")) self.mLowerLeftCheckBox.setObjectName(_fromUtf8("mLowerLeftCheckBox")) self.gridLayout.addWidget(self.mLowerLeftCheckBox, 2, 0, 1, 1) self.mMiddleLeftCheckBox = QtGui.QCheckBox( self.mGeneralOptionsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mMiddleLeftCheckBox.sizePolicy().hasHeightForWidth()) self.mMiddleLeftCheckBox.setSizePolicy(sizePolicy) self.mMiddleLeftCheckBox.setText(_fromUtf8("")) self.mMiddleLeftCheckBox.setObjectName( _fromUtf8("mMiddleLeftCheckBox")) self.gridLayout.addWidget(self.mMiddleLeftCheckBox, 1, 0, 1, 1) self.horizontalLayout_7.addLayout(self.gridLayout) spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_7.addItem(spacerItem) self.verticalLayout.addLayout(self.horizontalLayout_7) self.verticalLayout_2.addWidget(self.mGeneralOptionsGroupBox) self.mTransformsGroupBox = QgsCollapsibleGroupBoxBasic(self) self.mTransformsGroupBox.setFocusPolicy(QtCore.Qt.StrongFocus) self.mTransformsGroupBox.setProperty("syncGroup", _fromUtf8("composeritem")) self.mTransformsGroupBox.setProperty("collapsed", True) self.mTransformsGroupBox.setObjectName( _fromUtf8("mTransformsGroupBox")) self.gridLayout_5 = QtGui.QGridLayout(self.mTransformsGroupBox) self.gridLayout_5.setObjectName(_fromUtf8("gridLayout_5")) self.label = QtGui.QLabel(self.mTransformsGroupBox) self.label.setObjectName(_fromUtf8("label")) self.gridLayout_5.addWidget(self.label, 0, 0, 1, 1) self.horizontalLayout_4 = QtGui.QHBoxLayout() self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4")) self.mItemRotationSpinBox = QgsDoubleSpinBox(self.mTransformsGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mItemRotationSpinBox.sizePolicy().hasHeightForWidth()) self.mItemRotationSpinBox.setSizePolicy(sizePolicy) self.mItemRotationSpinBox.setMaximum(360.0) self.mItemRotationSpinBox.setObjectName( _fromUtf8("mItemRotationSpinBox")) self.horizontalLayout_4.addWidget(self.mItemRotationSpinBox) self.mItemRotationDDBtn = QgsDataDefinedButton( self.mTransformsGroupBox) self.mItemRotationDDBtn.setObjectName(_fromUtf8("mItemRotationDDBtn")) self.horizontalLayout_4.addWidget(self.mItemRotationDDBtn) self.gridLayout_5.addLayout(self.horizontalLayout_4, 0, 1, 1, 1) self.gridLayout_5.setColumnStretch(1, 1) self.verticalLayout_2.addWidget(self.mTransformsGroupBox) self.mFrameGroupBox = QgsCollapsibleGroupBoxBasic(self) self.mFrameGroupBox.setCheckable(True) self.mFrameGroupBox.setProperty("syncGroup", _fromUtf8("composeritem")) self.mFrameGroupBox.setProperty("collapsed", True) self.mFrameGroupBox.setObjectName(_fromUtf8("mFrameGroupBox")) self.gridLayout_6 = QtGui.QGridLayout(self.mFrameGroupBox) self.gridLayout_6.setObjectName(_fromUtf8("gridLayout_6")) self.label_3 = QtGui.QLabel(self.mFrameGroupBox) self.label_3.setObjectName(_fromUtf8("label_3")) self.gridLayout_6.addWidget(self.label_3, 0, 0, 1, 1) self.horizontalLayout_6 = QtGui.QHBoxLayout() self.horizontalLayout_6.setObjectName(_fromUtf8("horizontalLayout_6")) self.mFrameColorButton = QgsColorButtonV2(self.mFrameGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mFrameColorButton.sizePolicy().hasHeightForWidth()) self.mFrameColorButton.setSizePolicy(sizePolicy) self.mFrameColorButton.setMinimumSize(QtCore.QSize(120, 0)) self.mFrameColorButton.setMaximumSize(QtCore.QSize(120, 16777215)) self.mFrameColorButton.setText(_fromUtf8("")) self.mFrameColorButton.setObjectName(_fromUtf8("mFrameColorButton")) self.horizontalLayout_6.addWidget(self.mFrameColorButton) spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_6.addItem(spacerItem1) self.gridLayout_6.addLayout(self.horizontalLayout_6, 0, 1, 1, 1) self.mOutlineWidthLabel = QtGui.QLabel(self.mFrameGroupBox) self.mOutlineWidthLabel.setWordWrap(True) self.mOutlineWidthLabel.setObjectName(_fromUtf8("mOutlineWidthLabel")) self.gridLayout_6.addWidget(self.mOutlineWidthLabel, 1, 0, 1, 1) self.mOutlineWidthSpinBox = QgsDoubleSpinBox(self.mFrameGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mOutlineWidthSpinBox.sizePolicy().hasHeightForWidth()) self.mOutlineWidthSpinBox.setSizePolicy(sizePolicy) self.mOutlineWidthSpinBox.setSingleStep(0.1) self.mOutlineWidthSpinBox.setProperty("showClearButton", False) self.mOutlineWidthSpinBox.setObjectName( _fromUtf8("mOutlineWidthSpinBox")) self.gridLayout_6.addWidget(self.mOutlineWidthSpinBox, 1, 1, 1, 1) self.label_8 = QtGui.QLabel(self.mFrameGroupBox) self.label_8.setObjectName(_fromUtf8("label_8")) self.gridLayout_6.addWidget(self.label_8, 2, 0, 1, 1) self.mFrameJoinStyleCombo = QgsPenJoinStyleComboBox( self.mFrameGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mFrameJoinStyleCombo.sizePolicy().hasHeightForWidth()) self.mFrameJoinStyleCombo.setSizePolicy(sizePolicy) self.mFrameJoinStyleCombo.setObjectName( _fromUtf8("mFrameJoinStyleCombo")) self.gridLayout_6.addWidget(self.mFrameJoinStyleCombo, 2, 1, 1, 1) self.verticalLayout_2.addWidget(self.mFrameGroupBox) self.mBackgroundGroupBox = QgsCollapsibleGroupBoxBasic(self) self.mBackgroundGroupBox.setCheckable(True) self.mBackgroundGroupBox.setChecked(True) self.mBackgroundGroupBox.setProperty("syncGroup", _fromUtf8("composeritem")) self.mBackgroundGroupBox.setProperty("collapsed", True) self.mBackgroundGroupBox.setObjectName( _fromUtf8("mBackgroundGroupBox")) self.gridLayout_7 = QtGui.QGridLayout(self.mBackgroundGroupBox) self.gridLayout_7.setObjectName(_fromUtf8("gridLayout_7")) self.label_4 = QtGui.QLabel(self.mBackgroundGroupBox) self.label_4.setObjectName(_fromUtf8("label_4")) self.gridLayout_7.addWidget(self.label_4, 0, 0, 1, 1) self.horizontalLayout_5 = QtGui.QHBoxLayout() self.horizontalLayout_5.setObjectName(_fromUtf8("horizontalLayout_5")) self.mBackgroundColorButton = QgsColorButtonV2( self.mBackgroundGroupBox) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.mBackgroundColorButton.sizePolicy().hasHeightForWidth()) self.mBackgroundColorButton.setSizePolicy(sizePolicy) self.mBackgroundColorButton.setMinimumSize(QtCore.QSize(120, 0)) self.mBackgroundColorButton.setMaximumSize(QtCore.QSize(120, 16777215)) self.mBackgroundColorButton.setText(_fromUtf8("")) self.mBackgroundColorButton.setObjectName( _fromUtf8("mBackgroundColorButton")) self.horizontalLayout_5.addWidget(self.mBackgroundColorButton) spacerItem2 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.horizontalLayout_5.addItem(spacerItem2) self.gridLayout_7.addLayout(self.horizontalLayout_5, 0, 1, 1, 1) self.verticalLayout_2.addWidget(self.mBackgroundGroupBox) self.groupBox = QgsCollapsibleGroupBoxBasic(self) self.groupBox.setFocusPolicy(QtCore.Qt.StrongFocus) self.groupBox.setProperty("syncGroup", _fromUtf8("composeritem")) self.groupBox.setProperty("collapsed", True) self.groupBox.setObjectName(_fromUtf8("groupBox")) self.gridLayout_8 = QtGui.QGridLayout(self.groupBox) self.gridLayout_8.setObjectName(_fromUtf8("gridLayout_8")) self.mItemIdLabel = QtGui.QLabel(self.groupBox) self.mItemIdLabel.setObjectName(_fromUtf8("mItemIdLabel")) self.gridLayout_8.addWidget(self.mItemIdLabel, 0, 0, 1, 1) self.mItemIdLineEdit = QtGui.QLineEdit(self.groupBox) self.mItemIdLineEdit.setObjectName(_fromUtf8("mItemIdLineEdit")) self.gridLayout_8.addWidget(self.mItemIdLineEdit, 0, 1, 1, 1) self.verticalLayout_2.addWidget(self.groupBox) self.groupRendering = QgsCollapsibleGroupBoxBasic(self) self.groupRendering.setFocusPolicy(QtCore.Qt.StrongFocus) self.groupRendering.setProperty("collapsed", True) self.groupRendering.setProperty("syncGroup", _fromUtf8("composeritem")) self.groupRendering.setObjectName(_fromUtf8("groupRendering")) self.gridLayout_4 = QtGui.QGridLayout(self.groupRendering) self.gridLayout_4.setObjectName(_fromUtf8("gridLayout_4")) self.labelBlendMode = QtGui.QLabel(self.groupRendering) self.labelBlendMode.setObjectName(_fromUtf8("labelBlendMode")) self.gridLayout_4.addWidget(self.labelBlendMode, 0, 0, 1, 1) self.horizontalLayout_3 = QtGui.QHBoxLayout() self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3")) self.mBlendModeCombo = QgsBlendModeComboBox(self.groupRendering) self.mBlendModeCombo.setObjectName(_fromUtf8("mBlendModeCombo")) self.horizontalLayout_3.addWidget(self.mBlendModeCombo) self.mBlendModeDDBtn = QgsDataDefinedButton(self.groupRendering) self.mBlendModeDDBtn.setObjectName(_fromUtf8("mBlendModeDDBtn")) self.horizontalLayout_3.addWidget(self.mBlendModeDDBtn) self.gridLayout_4.addLayout(self.horizontalLayout_3, 0, 1, 1, 1) self.labelTransparency = QtGui.QLabel(self.groupRendering) self.labelTransparency.setObjectName(_fromUtf8("labelTransparency")) self.gridLayout_4.addWidget(self.labelTransparency, 1, 0, 1, 1) self.horizontalLayout_2 = QtGui.QHBoxLayout() self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2")) self.mTransparencySlider = QtGui.QSlider(self.groupRendering) self.mTransparencySlider.setMaximum(100) self.mTransparencySlider.setOrientation(QtCore.Qt.Horizontal) self.mTransparencySlider.setObjectName( _fromUtf8("mTransparencySlider")) self.horizontalLayout_2.addWidget(self.mTransparencySlider) self.mTransparencySpnBx = QgsSpinBox(self.groupRendering) self.mTransparencySpnBx.setMinimumSize(QtCore.QSize(80, 25)) self.mTransparencySpnBx.setMaximum(100) self.mTransparencySpnBx.setObjectName(_fromUtf8("mTransparencySpnBx")) self.horizontalLayout_2.addWidget(self.mTransparencySpnBx) self.mTransparencyDDBtn = QgsDataDefinedButton(self.groupRendering) self.mTransparencyDDBtn.setObjectName(_fromUtf8("mTransparencyDDBtn")) self.horizontalLayout_2.addWidget(self.mTransparencyDDBtn) self.gridLayout_4.addLayout(self.horizontalLayout_2, 1, 1, 1, 1) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) self.mExcludeFromPrintsCheckBox = QtGui.QCheckBox(self.groupRendering) self.mExcludeFromPrintsCheckBox.setObjectName( _fromUtf8("mExcludeFromPrintsCheckBox")) self.horizontalLayout.addWidget(self.mExcludeFromPrintsCheckBox) self.mExcludePrintsDDBtn = QgsDataDefinedButton(self.groupRendering) self.mExcludePrintsDDBtn.setObjectName( _fromUtf8("mExcludePrintsDDBtn")) self.horizontalLayout.addWidget(self.mExcludePrintsDDBtn) self.gridLayout_4.addLayout(self.horizontalLayout, 2, 0, 1, 2) self.verticalLayout_2.addWidget(self.groupRendering) self.groupBox_3 = QgsCollapsibleGroupBox(self) self.groupBox_3.setObjectName(_fromUtf8("groupBox_3")) self.verticalLayout_4 = QtGui.QVBoxLayout(self.groupBox_3) self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4")) self.mVariableEditor = QgsVariableEditorWidget(self.groupBox_3) self.mVariableEditor.setMinimumSize(QtCore.QSize(0, 200)) self.mVariableEditor.setObjectName(_fromUtf8("mVariableEditor")) self.verticalLayout_4.addWidget(self.mVariableEditor) self.verticalLayout_2.addWidget(self.groupBox_3) spacerItem3 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.MinimumExpanding) self.verticalLayout_2.addItem(spacerItem3) self.mOutlineWidthLabel.setBuddy(self.mOutlineWidthSpinBox) self.retranslateUi() QtCore.QMetaObject.connectSlotsByName(self) self.setTabOrder(self.mGeneralOptionsGroupBox, self.mPageSpinBox) self.setTabOrder(self.mPageSpinBox, self.mXPosSpin) self.setTabOrder(self.mXPosSpin, self.mXPositionDDBtn) self.setTabOrder(self.mXPositionDDBtn, self.mYPosSpin) self.setTabOrder(self.mYPosSpin, self.mYPositionDDBtn) self.setTabOrder(self.mYPositionDDBtn, self.mWidthSpin) self.setTabOrder(self.mWidthSpin, self.mWidthDDBtn) self.setTabOrder(self.mWidthDDBtn, self.mHeightSpin) self.setTabOrder(self.mHeightSpin, self.mHeightDDBtn) self.setTabOrder(self.mHeightDDBtn, self.mUpperLeftCheckBox) self.setTabOrder(self.mUpperLeftCheckBox, self.mUpperMiddleCheckBox) self.setTabOrder(self.mUpperMiddleCheckBox, self.mUpperRightCheckBox) self.setTabOrder(self.mUpperRightCheckBox, self.mMiddleLeftCheckBox) self.setTabOrder(self.mMiddleLeftCheckBox, self.mMiddleCheckBox) self.setTabOrder(self.mMiddleCheckBox, self.mMiddleRightCheckBox) self.setTabOrder(self.mMiddleRightCheckBox, self.mLowerLeftCheckBox) self.setTabOrder(self.mLowerLeftCheckBox, self.mLowerMiddleCheckBox) self.setTabOrder(self.mLowerMiddleCheckBox, self.mLowerRightCheckBox) self.setTabOrder(self.mLowerRightCheckBox, self.mTransformsGroupBox) self.setTabOrder(self.mTransformsGroupBox, self.mItemRotationSpinBox) self.setTabOrder(self.mItemRotationSpinBox, self.mItemRotationDDBtn) self.setTabOrder(self.mItemRotationDDBtn, self.mFrameGroupBox) self.setTabOrder(self.mFrameGroupBox, self.mFrameColorButton) self.setTabOrder(self.mFrameColorButton, self.mOutlineWidthSpinBox) self.setTabOrder(self.mOutlineWidthSpinBox, self.mFrameJoinStyleCombo) self.setTabOrder(self.mFrameJoinStyleCombo, self.mBackgroundGroupBox) self.setTabOrder(self.mBackgroundGroupBox, self.mBackgroundColorButton) self.setTabOrder(self.mBackgroundColorButton, self.groupBox) self.setTabOrder(self.groupBox, self.mItemIdLineEdit) self.setTabOrder(self.mItemIdLineEdit, self.groupRendering) self.setTabOrder(self.groupRendering, self.mBlendModeCombo) self.setTabOrder(self.mBlendModeCombo, self.mBlendModeDDBtn) self.setTabOrder(self.mBlendModeDDBtn, self.mTransparencySlider) self.setTabOrder(self.mTransparencySlider, self.mTransparencySpnBx) self.setTabOrder(self.mTransparencySpnBx, self.mTransparencyDDBtn) self.setTabOrder(self.mTransparencyDDBtn, self.mExcludeFromPrintsCheckBox) self.setTabOrder(self.mExcludeFromPrintsCheckBox, self.mExcludePrintsDDBtn) # self.mComposerObject = None self.groupBox_3.setVisible(False) def retranslateUi(self): self.setWindowTitle( _translate("QgsComposerItemWidgetBase", "Global Options", None)) self.mGeneralOptionsGroupBox.setTitle( _translate("QgsComposerItemWidgetBase", "Position and size", None)) self.mWidthLabel.setText( _translate("QgsComposerItemWidgetBase", "Width", None)) self.mXLabel.setText(_translate("QgsComposerItemWidgetBase", "X", None)) self.mHeightLabel.setText( _translate("QgsComposerItemWidgetBase", "Height", None)) self.mYLabel.setText(_translate("QgsComposerItemWidgetBase", "Y", None)) self.mPageLabel.setText( _translate("QgsComposerItemWidgetBase", "Page", None)) self.mXPositionDDBtn.setText( _translate("QgsComposerItemWidgetBase", "...", None)) self.mYPositionDDBtn.setText( _translate("QgsComposerItemWidgetBase", "...", None)) self.mWidthDDBtn.setText( _translate("QgsComposerItemWidgetBase", "...", None)) self.mHeightDDBtn.setText( _translate("QgsComposerItemWidgetBase", "...", None)) self.mWidthSpin.setSuffix( _translate("QgsComposerItemWidgetBase", " mm", None)) self.mHeightSpin.setSuffix( _translate("QgsComposerItemWidgetBase", " mm", None)) self.mYPosSpin.setSuffix( _translate("QgsComposerItemWidgetBase", " mm", None)) self.mXPosSpin.setSuffix( _translate("QgsComposerItemWidgetBase", " mm", None)) self.label_2.setText( _translate("QgsComposerItemWidgetBase", "Reference point", None)) self.mTransformsGroupBox.setTitle( _translate("QgsComposerItemWidgetBase", "Rotation", None)) self.label.setText( _translate("QgsComposerItemWidgetBase", "Rotation", None)) self.mItemRotationSpinBox.setSuffix( _translate("QgsComposerItemWidgetBase", " °", None)) self.mItemRotationDDBtn.setText( _translate("QgsComposerItemWidgetBase", "...", None)) self.mFrameGroupBox.setTitle( _translate("QgsComposerItemWidgetBase", "Frame", None)) self.label_3.setText( _translate("QgsComposerItemWidgetBase", "Frame color", None)) self.mOutlineWidthLabel.setText( _translate("QgsComposerItemWidgetBase", "Thickness", None)) self.mOutlineWidthSpinBox.setSuffix( _translate("QgsComposerItemWidgetBase", " mm", None)) self.label_8.setText( _translate("QgsComposerItemWidgetBase", "Join style", None)) self.mBackgroundGroupBox.setTitle( _translate("QgsComposerItemWidgetBase", "Background", None)) self.label_4.setText( _translate("QgsComposerItemWidgetBase", "Background color", None)) self.groupBox.setTitle( _translate("QgsComposerItemWidgetBase", "Item ID", None)) self.mItemIdLabel.setText( _translate("QgsComposerItemWidgetBase", "Id", None)) self.groupRendering.setTitle( _translate("QgsComposerItemWidgetBase", "Rendering", None)) self.labelBlendMode.setText( _translate("QgsComposerItemWidgetBase", "Blending mode", None)) self.mBlendModeDDBtn.setText( _translate("QgsComposerItemWidgetBase", "...", None)) self.labelTransparency.setText( _translate("QgsComposerItemWidgetBase", "Transparency", None)) self.mTransparencyDDBtn.setText( _translate("QgsComposerItemWidgetBase", "...", None)) self.mExcludeFromPrintsCheckBox.setText( _translate("QgsComposerItemWidgetBase", "Exclude item from exports", None)) self.mExcludePrintsDDBtn.setText( _translate("QgsComposerItemWidgetBase", "...", None)) self.groupBox_3.setTitle( _translate("QgsComposerItemWidgetBase", "Variables", None)) def ddPropertyForWidget(self, widget): # Q_UNUSED( widget ); # //base implementation, return no property return QgsComposerObject.NoProperty def updateDataDefinedProperty(self): #match data defined button to item's data defined property ddButton = self.sender() ddButton._class_ = QgsDataDefinedButton if (not isinstance(ddButton, QgsDataDefinedButton)): return property = self.ddPropertyForWidget(ddButton) if (property == QgsComposerObject.NoProperty): return #set the data defined property and refresh the item self.setDataDefinedProperty(ddButton, property) self.mComposerObject.refreshDataDefinedProperty(property) def setDataDefinedProperty(self, ddBtn, p): if (not self.mComposerObject): return map = ddBtn.definedProperty() self.mComposerObject.setDataDefinedProperty( p, map.value("active").toInt(), map.value("useexpr").toInt(), map.value("expression"), map.value("field")) def atlasComposition(self): if (not self.mComposerObject): return None composition = self.mComposerObject.composition() if (not composition): return None return composition.atlasComposition() def atlasCoverageLayer(self): atlasMap = self.atlasComposition() if (atlasMap and atlasMap.enabled()): return atlasMap.coverageLayer() return None
# coding: utf-8 from PyQt4.QtGui import QDialog from qgis.gui import QgsBlendModeComboBox new_dialog = QDialog() new_dialog.resize(200, 200) blend_mode_combo_box = QgsBlendModeComboBox(new_dialog) enum_composition_mode = [ 'CompositionMode_SourceOver', 'CompositionMode_DestinationOver', 'CompositionMode_Clear', 'CompositionMode_Source', 'CompositionMode_Destination', 'CompositionMode_SourceIn', 'CompositionMode_DestinationIn', 'CompositionMode_SourceOut', 'CompositionMode_DestinationOut', 'CompositionMode_SourceAtop', 'CompositionMode_DestinationAtop', 'CompositionMode_Xor', 'CompositionMode_Plus', 'CompositionMode_Multiply', 'CompositionMode_Screen', 'CompositionMode_Overlay', 'CompositionMode_Darken', 'CompositionMode_Lighten', 'CompositionMode_ColorDodge', 'CompositionMode_ColorBurn', 'CompositionMode_HardLight', 'CompositionMode_SoftLight', 'CompositionMode_Difference', 'CompositionMode_Exclusion', 'RasterOp_SourceOrDestination', 'RasterOp_SourceAndDestination', 'RasterOp_SourceXorDestination', 'RasterOp_NotSourceAndNotDestination', 'RasterOp_NotSourceOrNotDestination', 'RasterOp_NotSourceXorDestination', 'RasterOp_NotSource', 'RasterOp_NotSourceAndDestination', 'RasterOp_SourceAndNotDestination' ] def on_blend_mode_changed(index):
class BivariateLegend(object): """QGIS Plugin Implementation.""" def __init__(self, iface): """Constructor. :param iface: An interface instance that will be passed to this class which provides the hook by which you can manipulate the QGIS application at run time. :type iface: QgsInterface """ # Save reference to the QGIS interface self.iface = iface # initialize plugin directory self.plugin_dir = os.path.dirname(__file__) # initialize locale locale = QSettings().value('locale/userLocale')[0:2] locale_path = os.path.join(self.plugin_dir, 'i18n', 'BivariateLegend_{}.qm'.format(locale)) if os.path.exists(locale_path): self.translator = QTranslator() self.translator.load(locale_path) if qVersion() > '4.3.3': QCoreApplication.installTranslator(self.translator) # Declare instance attributes self.actions = [] self.menu = self.tr(u'&Bivariate legend') # TODO: We are going to let the user set this up in a future iteration self.toolbar = self.iface.addToolBar(u'BivariateLegend') self.toolbar.setObjectName(u'BivariateLegend') # print "** INITIALIZING BivariateLegend" self.pluginIsActive = False self.dockwidget = None # noinspection PyMethodMayBeStatic def tr(self, message): """Get the translation for a string using Qt translation API. We implement this ourselves since we do not inherit QObject. :param message: String for translation. :type message: str, QString :returns: Translated version of message. :rtype: QString """ # noinspection PyTypeChecker,PyArgumentList,PyCallByClass return QCoreApplication.translate('BivariateLegend', message) def initGui(self): # noqa """Create the menu entries and toolbar icons inside the QGIS GUI.""" icon_path = ':/plugins/BivariateLegend/icon.png' text = self.tr(u'&Bivariate legend') self.action = QAction(QIcon(icon_path), text, self.iface.mainWindow()) # connect the action to the run method self.action.triggered.connect(self.run) # Add toolbar button and menu item self.iface.addPluginToMenu(text, self.action) self.iface.addToolBarIcon(self.action) def onClosePlugin(self): # noqa """Cleanup necessary items here when plugin dockwidget is closed.""" # disconnects self.dockwidget.closingPlugin.disconnect(self.onClosePlugin) # remove this statement if dockwidget is to remain # for reuse if plugin is reopened # Commented next statement since it causes QGIS crashe # when closing the docked window: # self.dockwidget = None self.pluginIsActive = False def unload(self): """Remove the plugin menu item and icon from QGIS GUI.""" self.iface.removePluginMenu(self.tr(u'&Bivariate legend'), self.action) self.iface.removeToolBarIcon(self.action) # remove the toolbar del self.toolbar @staticmethod def generate_image_for_colors(colors, width, height, square_size, reverse=False): """ Generate intermediate legend image for one layer. The input are a list of QColor, the height, the width and reverse for color ordering (x or y) """ origin_x = 0 origin_y = 0 w, h = width * square_size, height * square_size img = QImage(w + 1, h + 1, QImage.Format_ARGB32) # TODO: Manage border when pen color # img = QImage(w + 1, h + 1, QImage.Format_ARGB32) qp = QPainter() qp.begin(img) for index1, val1 in enumerate(colors): for index in range(h): qp.setBrush(QColor(*val1)) qp.setPen(Qt.NoPen) if reverse: qp.drawRect(origin_x + index1 * square_size, origin_y + index * square_size, origin_x + (index1 + 1) * square_size, origin_y + (index + 1) * square_size) else: qp.drawRect(origin_x + index * square_size, origin_y + index1 * square_size, origin_x + (index + 1) * square_size, origin_y + (index1 + 1) * square_size) qp.end() return img @staticmethod def generate_border(width, height, square_size): """ Generate intermediate legend image for one layer. The input are a list of QColor, the height, the width and reverse for color ordering (x or y) """ origin_x = 0 origin_y = 0 w1, h1 = width * square_size, height * square_size img = QImage(w1 + 1, h1 + 1, QImage.Format_ARGB32) qp1 = QPainter() qp1.begin(img) for index1 in range(w1): for index in range(h1): qp1.setBrush(Qt.NoBrush) qp1.setPen(Qt.red) qp1.drawRect(origin_x + index * square_size, origin_y + index1 * square_size, origin_x + (index + 1) * square_size, origin_y + (index1 + 1) * square_size) qp1.end() return img @staticmethod def get_colors_from_layer(layer, reverse=False): """Extract colors from vector layer styles.""" colors_layer = [] symbols_layer = layer.renderer().symbols(renderContext) if reverse: symbols_layer = reversed(symbols_layer) for sym in symbols_layer: colors_layer.append( [sym.color().red(), sym.color().green(), sym.color().blue()]) return colors_layer def export_legend(self): """Export legend to image.""" if (self.image_output is not None): filename = QFileDialog( filter='JPG and PNG files (*.jpeg *.jpg *.png)' ).getSaveFileName() if filename and isinstance(filename, tuple): self.image_output.save(filename[0], 'PNG') def square_width_changed(self, int_val): """Change square size for a cell.""" self.square_width_cell = int_val def update_reverse_layer_top_colors(self, state): """Reverse color ordering for top layer.""" if (state == Qt.Unchecked): self.reverse_layer_top_colors = False else: self.reverse_layer_top_colors = True def update_reverse_layer_bottom_colors(self, state): """Reverse color ordering for bottom layer.""" if (state == Qt.Unchecked): self.reverse_layer_bottom_colors = False else: self.reverse_layer_bottom_colors = True def update_invert_axis(self, state): """Update if you want to rotate axis x and y.""" if (state == Qt.Unchecked): self.invert_axis = False else: self.invert_axis = True def assign_blend_mode(self, index): """Assign blend mode.""" # See enum QPainter.CompositionMode for correspondance enum_composition_mode = [ 'CompositionMode_SourceOver', 'CompositionMode_DestinationOver', 'CompositionMode_Clear', 'CompositionMode_Source', 'CompositionMode_Destination', 'CompositionMode_SourceIn', 'CompositionMode_DestinationIn', 'CompositionMode_SourceOut', 'CompositionMode_DestinationOut', 'CompositionMode_SourceAtop', 'CompositionMode_DestinationAtop', 'CompositionMode_Xor', 'CompositionMode_Plus', 'CompositionMode_Multiply', 'CompositionMode_Screen', 'CompositionMode_Overlay', 'CompositionMode_Darken', 'CompositionMode_Lighten', 'CompositionMode_ColorDodge', 'CompositionMode_ColorBurn', 'CompositionMode_HardLight', 'CompositionMode_SoftLight', 'CompositionMode_Difference', 'CompositionMode_Exclusion', 'RasterOp_SourceOrDestination', 'RasterOp_SourceAndDestination', 'RasterOp_SourceXorDestination', 'RasterOp_NotSourceAndNotDestination', 'RasterOp_NotSourceOrNotDestination', 'RasterOp_NotSourceXorDestination', 'RasterOp_NotSource', 'RasterOp_NotSourceAndDestination', 'RasterOp_SourceAndNotDestination' ] self.blend_mode = getattr( QPainter, enum_composition_mode[self.blend_mode_combo_box.blendMode()]) # fix_print_with_import print(enum_composition_mode[self.blend_mode_combo_box.blendMode()]) def add_blend_mode_combobox(self): """Add blend mode combobox.""" self.blend_mode_combo_box = QgsBlendModeComboBox() # Default value self.blend_mode = QPainter.CompositionMode_Multiply self.blend_mode_combo_box.setBlendMode(self.blend_mode) blend_mode_combo_box = self.blend_mode_combo_box # Signal inherited from QComboBox blend_mode_combo_box.currentIndexChanged.connect( self.assign_blend_mode) # Dirty insertion in the existing Qt Designer generated UI self.dockwidget.children()[-1].children()[0].layout().insertWidget( 1, self.blend_mode_combo_box) def generate_image(self): """Generate image.""" l_top = self.dockwidget.map_layer_combobox_1.currentLayer() l_bottom = self.dockwidget.map_layer_combobox_2.currentLayer() # TODO: QgsRuleBasedRenderer to manage later # TODO: Filter based on renderer type if (l_top.id() != l_bottom.id()): colors_layer_top = self.get_colors_from_layer( l_top, self.reverse_layer_top_colors) colors_layer_bottom = self.get_colors_from_layer( l_bottom, self.reverse_layer_bottom_colors) # Set default values len_color_layer_top = len(colors_layer_top) len_color_layer_bottom = len(colors_layer_bottom) # Draw image on top img_top = self.generate_image_for_colors(colors_layer_top, len_color_layer_bottom, len_color_layer_top, self.square_width_cell, reverse=False) img_bottom = self.generate_image_for_colors(colors_layer_bottom, len_color_layer_bottom, len_color_layer_top, self.square_width_cell, reverse=True) # Create a new painter to merge images painter = QPainter() # Declare transform function to rotate axis to switch x and y trans = QTransform() # Start from first image painter.begin(img_top) # Apply blending/composition painter.setCompositionMode(self.blend_mode) # TODO: Manage border when pen color painter.drawImage(0, 0, img_bottom) painter.end() # Rotate if necessary if self.invert_axis: trans = QTransform() trans.rotate(90) img_top = img_top.transformed(trans) # Reuse end image and display it in an UI overview item = QPixmap.fromImage(img_top) scene = QGraphicsScene() scene.addPixmap(item) self.dockwidget.graphic_preview.setScene(scene) # Keep reference to image to ease image export self.image_output = img_top else: self.iface.messageBar().pushMessage("Information", """Choose two different layers. Otherwise, no image overview will be generated. """, level=Qgis.Info) def run(self): """Run method that loads and starts the plugin.""" if not self.pluginIsActive: self.pluginIsActive = True # dockwidget may not exist if: # first run of plugin # removed on close (see self.onClosePlugin method) if self.dockwidget is None: # Create the dockwidget (after translation) and keep reference self.dockwidget = BivariateLegendDockWidget() # Set default square cell self.square_width_cell = 20 self.dockwidget.square_width_cell.setValue(self.square_width_cell) # Connect to listen to square cell value from SpinBox changed self.dockwidget.square_width_cell.valueChanged.connect( self.square_width_changed) # Set default value for color ordering self.reverse_layer_top_colors = False self.reverse_layer_bottom_colors = False # Reverse colors order for each layer self.dockwidget.checkbox_layer_1.stateChanged.connect( self.update_reverse_layer_top_colors) self.dockwidget.checkbox_layer_2.stateChanged.connect( self.update_reverse_layer_bottom_colors) # Rotate to invert X and Y axis self.invert_axis = False self.dockwidget.invert_axis.stateChanged.connect( self.update_invert_axis) self.dockwidget.graphic_preview.setStyleSheet( "background-color: transparent;") # Restrict available layers to Polygon in layers combobox self.dockwidget.map_layer_combobox_1.setFilters( QgsMapLayerProxyModel.PolygonLayer) self.dockwidget.map_layer_combobox_2.setFilters( QgsMapLayerProxyModel.PolygonLayer) # Add blend combobox and listen to event if not hasattr(self, 'blend_mode_combo_box'): self.add_blend_mode_combobox() # Connect to_generate_image self.dockwidget.generate_legend.clicked.connect( self.generate_image) # Connect to export image self.dockwidget.export_legend.clicked.connect(self.export_legend) # connect to provide cleanup on closing of dockwidget self.dockwidget.closingPlugin.connect(self.onClosePlugin) # show the dockwidget # TODO: fix to allow choice of dock location self.iface.addDockWidget(Qt.RightDockWidgetArea, self.dockwidget) self.dockwidget.show()
def __init__(self, parent=None): # Initialize the QgsBlendModeComboBoxWithCustomSignal as a QgsBlendModeComboBox QgsBlendModeComboBox.__init__(self, parent) self.currentIndexChanged.connect(self._onBlendChanged)