|
25 | 25 |
|
26 | 26 | __revision__ = '$Format:%H$'
|
27 | 27 |
|
28 |
| -from qgis.core import * |
29 | 28 | from PyQt4.QtCore import *
|
30 | 29 | from PyQt4.QtGui import *
|
31 |
| -from PyQt4 import QtCore, QtGui |
| 30 | +from qgis.core import * |
| 31 | + |
32 | 32 | from processing import interface
|
33 | 33 | from processing.tools import dataobjects
|
34 | 34 |
|
| 35 | +from processing.ui.ui_DlgNumberInput import Ui_DlgNumberInput |
35 | 36 |
|
36 |
| -class NumberInputDialog(QtGui.QDialog): |
| 37 | + |
| 38 | +class NumberInputDialog(QDialog, Ui_DlgNumberInput): |
37 | 39 |
|
38 | 40 | def __init__(self):
|
39 |
| - QtGui.QDialog.__init__(self) |
40 |
| - self.setModal(True) |
41 |
| - self.setupUi() |
| 41 | + QDialog.__init__(self) |
| 42 | + self.setupUi(self) |
| 43 | + |
| 44 | + if hasattr(self.leFormula, 'setPlaceholderText'): |
| 45 | + self.leFormula.setPlaceholderText( |
| 46 | + self.tr('[Enter your formula here]')) |
| 47 | + |
| 48 | + self.treeValues.doubleClicked.connect(self.addValue) |
| 49 | + |
42 | 50 | self.value = None
|
43 | 51 |
|
44 |
| - def setupUi(self): |
45 |
| - self.resize(500, 350) |
46 |
| - self.buttonBox = QtGui.QDialogButtonBox() |
47 |
| - self.buttonBox.setOrientation(QtCore.Qt.Horizontal) |
48 |
| - self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel |
49 |
| - | QtGui.QDialogButtonBox.Ok) |
50 |
| - self.label = QtGui.QLabel() |
51 |
| - self.label.setText('Enter expression in the text field.\nDouble click\ |
52 |
| - on elements in the tree to add their values to the expression.') |
53 |
| - self.tree = QtGui.QTreeWidget() |
54 |
| - self.tree.setHeaderHidden(True) |
55 | 52 | self.fillTree()
|
56 |
| - self.formulaText = QtGui.QLineEdit() |
57 |
| - if hasattr(self.formulaText, 'setPlaceholderText'): |
58 |
| - self.formulaText.setPlaceholderText('[Enter your formula here]') |
59 |
| - self.setWindowTitle('Enter number or expression') |
60 |
| - self.verticalLayout = QtGui.QVBoxLayout() |
61 |
| - self.verticalLayout.setSpacing(2) |
62 |
| - self.verticalLayout.setMargin(0) |
63 |
| - self.verticalLayout.addWidget(self.label) |
64 |
| - self.verticalLayout.addWidget(self.tree) |
65 |
| - self.verticalLayout.addWidget(self.formulaText) |
66 |
| - self.verticalLayout.addWidget(self.buttonBox) |
67 |
| - self.setLayout(self.verticalLayout) |
68 |
| - self.tree.doubleClicked.connect(self.addValue) |
69 |
| - QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL('accepted()'), |
70 |
| - self.okPressed) |
71 |
| - QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL('rejected()'), |
72 |
| - self.cancelPressed) |
73 |
| - QtCore.QMetaObject.connectSlotsByName(self) |
74 | 53 |
|
75 | 54 | def fillTree(self):
|
76 |
| - layersItem = QtGui.QTreeWidgetItem() |
77 |
| - layersItem.setText(0, 'Values from data layers extents') |
78 |
| - self.tree.addTopLevelItem(layersItem) |
| 55 | + layersItem = QTreeWidgetItem() |
| 56 | + layersItem.setText(0, self.tr('Values from data layers extents')) |
| 57 | + self.treeValues.addTopLevelItem(layersItem) |
79 | 58 | layers = dataobjects.getAllLayers()
|
80 | 59 | for layer in layers:
|
81 |
| - layerItem = QtGui.QTreeWidgetItem() |
| 60 | + layerItem = QTreeWidgetItem() |
82 | 61 | layerItem.setText(0, unicode(layer.name()))
|
83 |
| - layerItem.addChild(TreeValueItem('Min X', |
| 62 | + layerItem.addChild(TreeValueItem(self.tr('Min X'), |
84 | 63 | layer.extent().xMinimum()))
|
85 |
| - layerItem.addChild(TreeValueItem('Max X', |
| 64 | + layerItem.addChild(TreeValueItem(self.tr('Max X'), |
86 | 65 | layer.extent().xMaximum()))
|
87 |
| - layerItem.addChild(TreeValueItem('Min Y', |
| 66 | + layerItem.addChild(TreeValueItem(self.tr('Min Y'), |
88 | 67 | layer.extent().yMinimum()))
|
89 |
| - layerItem.addChild(TreeValueItem('Max y', |
| 68 | + layerItem.addChild(TreeValueItem(self.tr('Max Y'), |
90 | 69 | layer.extent().yMaximum()))
|
91 | 70 | if isinstance(layer, QgsRasterLayer):
|
92 | 71 | cellsize = (layer.extent().xMaximum()
|
93 | 72 | - layer.extent().xMinimum()) / layer.width()
|
94 |
| - layerItem.addChild(TreeValueItem('Cellsize', cellsize)) |
| 73 | + layerItem.addChild(TreeValueItem(self.tr('Cellsize'), |
| 74 | + cellsize)) |
95 | 75 | layersItem.addChild(layerItem)
|
96 |
| - layersItem = QtGui.QTreeWidgetItem() |
97 |
| - layersItem.setText(0, 'Values from raster layers statistics') |
98 |
| - self.tree.addTopLevelItem(layersItem) |
| 76 | + |
| 77 | + layersItem = QTreeWidgetItem() |
| 78 | + layersItem.setText(0, self.tr('Values from raster layers statistics')) |
| 79 | + self.treeValues.addTopLevelItem(layersItem) |
99 | 80 | layers = dataobjects.getRasterLayers()
|
100 | 81 | for layer in layers:
|
101 | 82 | for i in range(layer.bandCount()):
|
102 |
| - if QGis.QGIS_VERSION_INT >= 10900: |
103 |
| - stats = layer.dataProvider().bandStatistics(i + 1) |
104 |
| - else: |
105 |
| - stats = layer.bandStatistics(i) |
106 |
| - layerItem = QtGui.QTreeWidgetItem() |
| 83 | + stats = layer.dataProvider().bandStatistics(i + 1) |
| 84 | + layerItem = QTreeWidgetItem() |
107 | 85 | layerItem.setText(0, unicode(layer.name()))
|
108 |
| - layerItem.addChild(TreeValueItem('Mean', stats.mean)) |
109 |
| - layerItem.addChild(TreeValueItem('Std. deviation', |
| 86 | + layerItem.addChild(TreeValueItem(self.tr('Mean'), stats.mean)) |
| 87 | + layerItem.addChild(TreeValueItem(self.tr('Std. deviation'), |
110 | 88 | stats.stdDev))
|
111 |
| - layerItem.addChild(TreeValueItem('Max value', |
| 89 | + layerItem.addChild(TreeValueItem(self.tr('Max value'), |
112 | 90 | stats.maximumValue))
|
113 |
| - layerItem.addChild(TreeValueItem('Min value', |
| 91 | + layerItem.addChild(TreeValueItem(self.tr('Min value'), |
114 | 92 | stats.minimumValue))
|
115 | 93 | layersItem.addChild(layerItem)
|
116 | 94 |
|
117 |
| - canvasItem = QtGui.QTreeWidgetItem() |
118 |
| - canvasItem.setText(0, 'Values from QGIS map canvas') |
119 |
| - self.tree.addTopLevelItem(canvasItem) |
| 95 | + canvasItem = QTreeWidgetItem() |
| 96 | + canvasItem.setText(0, self.tr('Values from QGIS map canvas')) |
| 97 | + self.treeValues.addTopLevelItem(canvasItem) |
120 | 98 | extent = interface.iface.mapCanvas().extent()
|
121 |
| - extentItem = QtGui.QTreeWidgetItem() |
122 |
| - extentItem.setText(0, 'Current extent') |
123 |
| - extentItem.addChild(TreeValueItem('Min X', extent.xMinimum())) |
124 |
| - extentItem.addChild(TreeValueItem('Max X', extent.xMaximum())) |
125 |
| - extentItem.addChild(TreeValueItem('Min Y', extent.yMinimum())) |
126 |
| - extentItem.addChild(TreeValueItem('Max y', extent.yMaximum())) |
| 99 | + extentItem = QTreeWidgetItem() |
| 100 | + extentItem.setText(0, self.tr('Current extent')) |
| 101 | + extentItem.addChild(TreeValueItem(self.tr('Min X'), extent.xMinimum())) |
| 102 | + extentItem.addChild(TreeValueItem(self.tr('Max X'), extent.xMaximum())) |
| 103 | + extentItem.addChild(TreeValueItem(self.tr('Min Y'), extent.yMinimum())) |
| 104 | + extentItem.addChild(TreeValueItem(self.tr('Max Y'), extent.yMaximum())) |
127 | 105 | canvasItem.addChild(extentItem)
|
| 106 | + |
128 | 107 | extent = interface.iface.mapCanvas().fullExtent()
|
129 |
| - extentItem = QtGui.QTreeWidgetItem() |
130 |
| - extentItem.setText(0, 'Full extent of all layers in map canvas') |
131 |
| - extentItem.addChild(TreeValueItem('Min X', extent.xMinimum())) |
132 |
| - extentItem.addChild(TreeValueItem('Max X', extent.xMaximum())) |
133 |
| - extentItem.addChild(TreeValueItem('Min Y', extent.yMinimum())) |
134 |
| - extentItem.addChild(TreeValueItem('Max y', extent.yMaximum())) |
| 108 | + extentItem = QTreeWidgetItem() |
| 109 | + extentItem.setText(0, |
| 110 | + self.tr('Full extent of all layers in map canvas')) |
| 111 | + extentItem.addChild(TreeValueItem(self.tr('Min X'), extent.xMinimum())) |
| 112 | + extentItem.addChild(TreeValueItem(self.tr('Max X'), extent.xMaximum())) |
| 113 | + extentItem.addChild(TreeValueItem(self.tr('Min Y'), extent.yMinimum())) |
| 114 | + extentItem.addChild(TreeValueItem(self.tr('Max Y'), extent.yMaximum())) |
135 | 115 | canvasItem.addChild(extentItem)
|
136 | 116 |
|
137 | 117 | def addValue(self):
|
138 |
| - item = self.tree.currentItem() |
| 118 | + item = self.treeValues.currentItem() |
139 | 119 | if isinstance(item, TreeValueItem):
|
140 |
| - self.formulaText.setText(str(self.formulaText.text()) + ' ' |
141 |
| - + str(item.value)) |
| 120 | + formula = self.leFormula.text() + ' ' + str(item.value) |
| 121 | + self.leFormula.setText(formula.strip()) |
142 | 122 |
|
143 |
| - def okPressed(self): |
| 123 | + def accept(self): |
144 | 124 | try:
|
145 |
| - self.value = float(eval(str(self.formulaText.text()))) |
146 |
| - self.close() |
| 125 | + self.value = float(eval(str(self.leFormula.text()))) |
| 126 | + QDialog.accept(self) |
147 | 127 | except:
|
148 |
| - QMessageBox.critical(self, 'Wrong expression', |
149 |
| - 'The expression entered is not correct') |
| 128 | + QMessageBox.critical(self, self.tr('Wrong expression'), |
| 129 | + self.tr('The expression entered is not correct')) |
150 | 130 |
|
151 |
| - def cancelPressed(self): |
| 131 | + def reject(self): |
152 | 132 | self.value = None
|
153 |
| - self.close() |
| 133 | + QDialog.reject(self) |
154 | 134 |
|
155 | 135 |
|
156 |
| -class TreeValueItem(QtGui.QTreeWidgetItem): |
| 136 | +class TreeValueItem(QTreeWidgetItem): |
157 | 137 |
|
158 | 138 | def __init__(self, name, value):
|
159 | 139 | QTreeWidgetItem.__init__(self)
|
160 | 140 | self.value = value
|
161 |
| - self.setText(0, name + ':' + str(value)) |
| 141 | + self.setText(0, name + ': ' + str(value)) |
0 commit comments