mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-18 00:03:05 -04:00
Processing raster calc: add missing btns and validate
Validate expression
This commit is contained in:
parent
2eb410844f
commit
25edd83b0a
@ -34,38 +34,17 @@
|
||||
<string>Operators</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="1" column="2">
|
||||
<widget class="QPushButton" name="mACosButton">
|
||||
<item row="2" column="4">
|
||||
<widget class="QPushButton" name="mOpenBracketPushButton">
|
||||
<property name="text">
|
||||
<string>acos</string>
|
||||
<string>(</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QPushButton" name="mASinButton">
|
||||
<item row="3" column="5">
|
||||
<widget class="QPushButton" name="mGreaterEqualButton">
|
||||
<property name="text">
|
||||
<string>asin</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="mPlusPushButton">
|
||||
<property name="text">
|
||||
<string>+</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QPushButton" name="mExpButton">
|
||||
<property name="text">
|
||||
<string>^</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QPushButton" name="mEqualButton">
|
||||
<property name="text">
|
||||
<string>=</string>
|
||||
<string>>=</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -76,58 +55,10 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="mMinusPushButton">
|
||||
<item row="1" column="3">
|
||||
<widget class="QPushButton" name="mASinButton">
|
||||
<property name="text">
|
||||
<string>-</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="8">
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>2</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="mMultiplyPushButton">
|
||||
<property name="text">
|
||||
<string>*</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="4">
|
||||
<widget class="QPushButton" name="mLesserEqualButton">
|
||||
<property name="text">
|
||||
<string><=</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QPushButton" name="mDividePushButton">
|
||||
<property name="text">
|
||||
<string>/</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="5">
|
||||
<widget class="QPushButton" name="mCloseBracketPushButton">
|
||||
<property name="text">
|
||||
<string>)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QPushButton" name="mSinButton">
|
||||
<property name="text">
|
||||
<string>sin</string>
|
||||
<string>asin</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -145,20 +76,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="5">
|
||||
<widget class="QPushButton" name="mGreaterEqualButton">
|
||||
<property name="text">
|
||||
<string>>=</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="3">
|
||||
<widget class="QPushButton" name="mNotEqualButton">
|
||||
<property name="text">
|
||||
<string>!=</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QPushButton" name="mGreaterButton">
|
||||
<property name="text">
|
||||
@ -166,10 +83,64 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
<widget class="QPushButton" name="mATanButton">
|
||||
<item row="0" column="4">
|
||||
<widget class="QPushButton" name="mLogButton">
|
||||
<property name="text">
|
||||
<string>atan</string>
|
||||
<string>log10</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="mMultiplyPushButton">
|
||||
<property name="text">
|
||||
<string>*</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="4">
|
||||
<widget class="QPushButton" name="mLnButton">
|
||||
<property name="text">
|
||||
<string>ln</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="8">
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>2</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="5" column="2">
|
||||
<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>
|
||||
<item row="2" column="0">
|
||||
<widget class="QPushButton" name="mExpButton">
|
||||
<property name="text">
|
||||
<string>^</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QPushButton" name="mEqualButton">
|
||||
<property name="text">
|
||||
<string>=</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -187,10 +158,31 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="4">
|
||||
<widget class="QPushButton" name="mLogButton">
|
||||
<item row="3" column="4">
|
||||
<widget class="QPushButton" name="mLesserEqualButton">
|
||||
<property name="text">
|
||||
<string>log10</string>
|
||||
<string><=</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<widget class="QPushButton" name="mSinButton">
|
||||
<property name="text">
|
||||
<string>sin</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="mPlusPushButton">
|
||||
<property name="text">
|
||||
<string>+</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="3">
|
||||
<widget class="QPushButton" name="mNotEqualButton">
|
||||
<property name="text">
|
||||
<string>!=</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -201,32 +193,61 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="4">
|
||||
<widget class="QPushButton" name="mOpenBracketPushButton">
|
||||
<item row="1" column="2">
|
||||
<widget class="QPushButton" name="mACosButton">
|
||||
<property name="text">
|
||||
<string>(</string>
|
||||
<string>acos</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="4">
|
||||
<widget class="QPushButton" name="mLnButton">
|
||||
<item row="2" column="5">
|
||||
<widget class="QPushButton" name="mCloseBracketPushButton">
|
||||
<property name="text">
|
||||
<string>ln</string>
|
||||
<string>)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="mMinusPushButton">
|
||||
<property name="text">
|
||||
<string>-</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
<widget class="QPushButton" name="mATanButton">
|
||||
<property name="text">
|
||||
<string>atan</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QPushButton" name="mDividePushButton">
|
||||
<property name="text">
|
||||
<string>/</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QPushButton" name="mAbsButton">
|
||||
<property name="text">
|
||||
<string>abs</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QPushButton" name="mMinButton">
|
||||
<property name="text">
|
||||
<string>min</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
<widget class="QPushButton" name="mMaxButton">
|
||||
<property name="text">
|
||||
<string>max</string>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
@ -239,7 +260,18 @@
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QPlainTextEdit" name="text"/>
|
||||
<widget class="QPlainTextEdit" name="text">
|
||||
<property name="placeholderText">
|
||||
<string>Please enter a valid expression by clicking on one or more layer bands and operators.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="expressionErrorLabel">
|
||||
<property name="text">
|
||||
<string>Expression is empty</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
|
@ -47,7 +47,7 @@ from processing.tools.system import userFolder
|
||||
|
||||
from processing.gui.wrappers import InvalidParameterValue
|
||||
|
||||
from qgis.analysis import QgsRasterCalculatorEntry
|
||||
from qgis.analysis import QgsRasterCalculatorEntry, QgsRasterCalcNode
|
||||
|
||||
pluginPath = os.path.dirname(__file__)
|
||||
WIDGET_ADD_NEW, BASE_ADD_NEW = uic.loadUiType(
|
||||
@ -154,6 +154,25 @@ class ExpressionWidget(BASE, WIDGET):
|
||||
self.buttonAddPredefined.clicked.connect(self.addPredefined)
|
||||
|
||||
self.buttonSavePredefined.clicked.connect(self.savePredefined)
|
||||
self.text.textChanged.connect(self.expressionValid)
|
||||
|
||||
def expressionValid(self):
|
||||
errorString = ''
|
||||
testNode = QgsRasterCalcNode.parseRasterCalcString(self.text.toPlainText(), errorString)
|
||||
|
||||
if not self.text.toPlainText():
|
||||
self.expressionErrorLabel.setText(self.tr('Expression is empty'))
|
||||
self.expressionErrorLabel.setStyleSheet("QLabel { color: black; }")
|
||||
return False
|
||||
|
||||
if testNode:
|
||||
self.expressionErrorLabel.setText(self.tr('Expression is valid'))
|
||||
self.expressionErrorLabel.setStyleSheet("QLabel { color: green; font-weight: bold; }")
|
||||
return True
|
||||
|
||||
self.expressionErrorLabel.setText(self.tr('Expression is not valid ') + errorString)
|
||||
self.expressionErrorLabel.setStyleSheet("QLabel { color : red; font-weight: bold; }")
|
||||
return False
|
||||
|
||||
def expsFile(self):
|
||||
return os.path.join(userFolder(), 'rastercalcexpressions.json')
|
||||
|
Loading…
x
Reference in New Issue
Block a user