[QGIS Commit] r11283 - in trunk/qgis/python/plugins/osm: . ui_files
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Thu Aug 6 10:09:40 EDT 2009
Author: wonder
Date: 2009-08-06 10:09:40 -0400 (Thu, 06 Aug 2009)
New Revision: 11283
Modified:
trunk/qgis/python/plugins/osm/DatabaseManager.py
trunk/qgis/python/plugins/osm/DlgUploadOSM.py
trunk/qgis/python/plugins/osm/DockWidget.py
trunk/qgis/python/plugins/osm/ui_files/DockWidget.ui
Log:
Update to OSM plugin from Lukas Berka:
-displaying recommended tag keys and values for easier tags editing
-created features now doesn't have created_by tag automatically (coz it's deprecated)
-eh, names of some dockwidget elements are shorter now :)
Modified: trunk/qgis/python/plugins/osm/DatabaseManager.py
===================================================================
--- trunk/qgis/python/plugins/osm/DatabaseManager.py 2009-08-06 10:43:28 UTC (rev 11282)
+++ trunk/qgis/python/plugins/osm/DatabaseManager.py 2009-08-06 14:09:40 UTC (rev 11283)
@@ -43,7 +43,6 @@
self.plugin=plugin
self.canvas=plugin.canvas
- self.pluginName="QGIS OSM v0.4"
self.dbConns={} # map dbFileName->sqlite3ConnectionObject
self.pointLayers={}
@@ -420,7 +419,6 @@
c=self.getConnection().cursor()
c.execute("insert into node (id,lat,lon,usage,status) values (:nodeId,:lat,:lon,0,'A')"
,{"nodeId":str(nodeId),"lat":str(mapPoint.y()),"lon":str(mapPoint.x())})
- self.insertTag(nodeId,"Point","created_by",self.pluginName,False)
c.close()
if doCommit:
@@ -470,9 +468,6 @@
elif snapFeatType=='Polygon':
self.changePolygonStatus(snapFeat.id(),"N","U")
- # insert created_by tag of the new point
- self.insertTag(nodeId,"Point","created_by",self.pluginName,False)
-
# finishing
c.close()
@@ -541,7 +536,6 @@
c.execute("insert into node (id,lat,lon,usage,status) values (:nodeId,:lat,:lon,1,'A')"
,{ "nodeId":str(nodeId),"lat":str(lat),"lon":str(lon) })
- self.insertTag(nodeId,"Point","created_by",self.pluginName, False)
affected.add((nodeId,'Point'))
# insert record into table of way members
@@ -556,8 +550,6 @@
c.execute("insert into way (id,wkb,membercnt,closed,min_lat,min_lon,max_lat,max_lon,status) values (?,?,?,0,?,?,?,?,'A')"
,(str(lineId),sqlite3.Binary(""),str(cnt),str(minLat),str(minLon),str(maxLat),str(maxLon)))
- self.insertTag(lineId,"Line","created_by",self.pluginName, False)
-
# finishing...
c.close()
feat=QgsFeature(lineId,"Line")
@@ -623,7 +615,6 @@
c.execute("insert into node (id,lat,lon,usage,status) values (:nodeId,:lat,:lon,1,'A')"
,{ "nodeId":str(nodeId),"lat":str(lat),"lon":str(lon) })
- self.insertTag(nodeId,"Point","created_by",self.pluginName, False)
affected.add((nodeId,'Point'))
# insert record into table of way members
@@ -638,8 +629,6 @@
c.execute("insert into way (id,wkb,membercnt,closed,min_lat,min_lon,max_lat,max_lon,status) values (?,?,?,1,?,?,?,?,'A')"
,(str(polygonId),sqlite3.Binary(""),str(cnt),str(minLat),str(minLon),str(maxLat),str(maxLon)))
- self.insertTag(polygonId,"Polygon","created_by",self.pluginName, False)
-
# finish
c.close()
feat=QgsFeature(polygonId,"Polygon")
Modified: trunk/qgis/python/plugins/osm/DlgUploadOSM.py
===================================================================
--- trunk/qgis/python/plugins/osm/DlgUploadOSM.py 2009-08-06 10:43:28 UTC (rev 11282)
+++ trunk/qgis/python/plugins/osm/DlgUploadOSM.py 2009-08-06 14:09:40 UTC (rev 11283)
@@ -917,7 +917,7 @@
userCommentBytes=userComment.toUtf8()
# create http request's body (create XML with info about uploaded way)
- requestXml=QString("<osm>\n<changeset>\n<tag k=\"created_by\" v=\"qgis plugin\"/>\n<tag k=\"comment\" v=\""+userCommentBytes.data()+"\"/>\n</changeset>\n</osm>")
+ requestXml=QString("<osm>\n<changeset>\n<tag k=\"created_by\" v=\"QGIS OSM v0.4\"/>\n<tag k=\"comment\" v=\""+userCommentBytes.data()+"\"/>\n</changeset>\n</osm>")
# send prepared request
requestBytes=requestXml.toAscii()
Modified: trunk/qgis/python/plugins/osm/DockWidget.py
===================================================================
--- trunk/qgis/python/plugins/osm/DockWidget.py 2009-08-06 10:43:28 UTC (rev 11282)
+++ trunk/qgis/python/plugins/osm/DockWidget.py 2009-08-06 14:09:40 UTC (rev 11283)
@@ -1,5 +1,5 @@
"""@package DockWidget
-This module is descendant of "OSM Feature" dockable widget (in Quantum GIS) and makes user able
+This module is descendant of "OSM Feature" dockable widget and makes user able
to view and edit information on selected OSM feature.
DockWidget module shows details of selected feature - its basic info, tags and relations.
@@ -43,6 +43,10 @@
self.setupUi(self)
self.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea)
+ self.plugin=plugin
+ self.__mapTool=None
+ self.__dlgAddRel=None
+
# set icons for tool buttons (identify,move,createPoint,createLine,createPolygon)
self.identifyButton.setIcon(QIcon(":/plugins/osm_plugin/images/osm_identify.png"))
self.moveButton.setIcon(QIcon(":/plugins/osm_plugin/images/osm_move.png"))
@@ -55,6 +59,7 @@
self.undoButton.setIcon(QIcon(":/plugins/osm_plugin/images/osm_undo.png"))
self.redoButton.setIcon(QIcon(":/plugins/osm_plugin/images/osm_redo.png"))
+ # initializing group of edit buttons
self.toolButtons=QButtonGroup(self)
self.dummyButton.setVisible(False)
self.toolButtons.addButton(self.dummyButton)
@@ -65,16 +70,16 @@
self.toolButtons.addButton(self.createPolygonButton)
self.toolButtons.setExclusive(True)
- self.tagsTableWidget.setColumnCount(2)
- self.tagsTableWidget.setHorizontalHeaderItem(0,QTableWidgetItem("Key"))
- self.tagsTableWidget.setHorizontalHeaderItem(1,QTableWidgetItem("Value"))
- self.newTagLabel = "<new tag here>"
+ # initializing table of feature tags
+ self.tagTable.setColumnCount(2)
+ self.tagTable.setHorizontalHeaderItem(0,QTableWidgetItem("Key"))
+ self.tagTable.setHorizontalHeaderItem(1,QTableWidgetItem("Value"))
+ self.tagTable.setSelectionMode(QAbstractItemView.ExtendedSelection)
+ self.tagTable.setSelectionBehavior(QAbstractItemView.SelectRows)
+ self.newTagLabel="<new tag here>"
+ self.relTagsTree.setSelectionMode(QAbstractItemView.NoSelection)
- self.plugin=plugin
- self.__mapTool=None
- self.__dlgAddRel=None
-
- # get qgis settings of line width and color for rubberband
+ # initializing rubberbands/vertexmarkers; getting qgis settings of line width and color for rubberbands
settings=QSettings()
qgsLineWidth=settings.value( "/qgis/digitizing/line_width", QVariant(10) ).toInt()
qgsLineRed=settings.value( "/qgis/digitizing/line_color_red", QVariant(255) ).toInt()
@@ -94,7 +99,6 @@
self.verMarker.setIconSize(13)
self.verMarker.setColor(QColor(qgsLineRed[0],qgsLineGreen[0],qgsLineBlue[0]))
self.verMarker.setPenWidth(qgsLineWidth[0])
-
self.verMarkers=[]
self.relRubBandPol=QgsRubberBand(plugin.canvas,True)
@@ -111,7 +115,8 @@
self.relVerMarker.setColor(QColor(qgsLineRed[0],50,50))
self.relVerMarker.setPenWidth(qgsLineWidth[0])
- self.__activeEditButton=self.dummyButton
+ # initializing inner variables
+ self.activeEditButton=self.dummyButton
self.__tagsLoaded=False
self.__relTagsLoaded=False
self.feature=None
@@ -120,8 +125,6 @@
self.featRelTags=[]
self.featRelMembers=[]
- self.tagsEditIndex=-1
-
# clear all widget items
self.clear()
@@ -130,13 +133,8 @@
self.removeButton.setEnabled(False)
self.createRelationButton.setCheckable(False)
- self.relTagsTreeWidget.setSelectionMode(QAbstractItemView.NoSelection)
- self.tagsTableWidget.setSelectionMode(QAbstractItemView.ExtendedSelection)
- self.tagsTableWidget.setSelectionBehavior(QAbstractItemView.SelectRows)
-
# set current tab to "Properties"
self.propRelBox.setCurrentIndex(0)
-
self.plugin.canvas.setFocus(Qt.OtherFocusReason)
# init coordinate transform
@@ -214,8 +212,9 @@
QObject.connect(self.editRelationButton, SIGNAL("clicked()"), self.editSelectedRelation)
QObject.connect(self.removeRelationButton, SIGNAL("clicked()"), self.removeSelectedRelation)
QObject.connect(self.deleteTagsButton, SIGNAL("clicked()"), self.removeSelectedTags)
- QObject.connect(self.tagsTableWidget, SIGNAL("cellChanged(int,int)"), self.__onTagsCellChanged)
- QObject.connect(self.tagsTableWidget, SIGNAL("itemDoubleClicked(QTableWidgetItem*)"), self.__onTagsItemDoubleClicked)
+ QObject.connect(self.tagTable, SIGNAL("cellChanged(int,int)"), self.__onTagsCellChanged)
+ QObject.connect(self.tagTable, SIGNAL("currentCellChanged(int,int,int,int)"), self.__onCurrentCellChanged)
+ QObject.connect(self.tagTable, SIGNAL("itemDoubleClicked(QTableWidgetItem*)"), self.__onTagsItemDoubleClicked)
QObject.connect(self.undoButton, SIGNAL("clicked()"), self.__undo)
QObject.connect(self.redoButton, SIGNAL("clicked()"), self.__redo)
QObject.connect(self.urDetailsButton, SIGNAL("clicked()"), self.__urDetailsChecked)
@@ -244,7 +243,7 @@
# if some mapTool is currently set tell it about database changing
if self.__mapTool:
self.__mapTool.databaseChanged(dbKey)
- self.__activeEditButton=self.dummyButton
+ self.activeEditButton=self.dummyButton
# and if new database is None, disable the whole dockwidget
if not dbKey:
@@ -269,20 +268,19 @@
self.createdLabel.setText("")
# clear table with information about feature's tags
- self.tagsTableWidget.clear()
- self.tagsTableWidget.setEnabled(False)
- self.tagsTableWidget.setRowCount(0)
- self.tagsTableWidget.setColumnCount(0)
- self.tagsEditIndex=-1
+ self.tagTable.clear()
+ self.tagTable.setEnabled(False)
+ self.tagTable.setRowCount(0)
+ self.tagTable.setColumnCount(0)
# clear table with info about feature's relations
self.relListWidget.clear()
- self.relTagsTreeWidget.clear()
+ self.relTagsTree.clear()
self.relMembersList.clear()
- self.relTagsTreeWidget.setColumnCount(0)
+ self.relTagsTree.setColumnCount(0)
self.relListWidget.setEnabled(False)
- self.relTagsTreeWidget.setEnabled(False)
+ self.relTagsTree.setEnabled(False)
self.relMembersList.setEnabled(False)
# disable widget buttons
@@ -329,7 +327,7 @@
self.__mapTool=None
self.plugin.canvas.setCursor(QCursor(Qt.ArrowCursor))
- self.__activeEditButton=self.dummyButton
+ self.activeEditButton=self.dummyButton
self.setContentEnabled(False)
self.plugin.undoredo.setContentEnabled(False)
@@ -362,7 +360,7 @@
self.__mapTool=None
self.plugin.canvas.setCursor(QCursor(Qt.ArrowCursor))
- self.__activeEditButton=self.dummyButton
+ self.activeEditButton=self.dummyButton
self.setContentEnabled(False)
self.plugin.undoredo.setContentEnabled(False)
@@ -422,17 +420,17 @@
# but we are interested in user actions only
return
- if row<self.tagsTableWidget.rowCount()-1:
+ if row<self.tagTable.rowCount()-1:
# changing value of tag that already exists
- key = self.tagsTableWidget.item(row,0).text()
- value = self.tagsTableWidget.item(row,1).text()
+ key=self.tagTable.item(row,0).text()
+ value=self.tagTable.item(row,1).text()
# store tag's change into database
self.plugin.undoredo.startAction("Change tag value.")
self.plugin.dbm.changeTagValue(self.feature.id(),self.featureType,key.toUtf8().data(),value.toUtf8().data())
else:
- key = self.tagsTableWidget.item(row,0).text()
+ key = self.tagTable.item(row,0).text()
if key=="" or key==self.newTagLabel:
return
@@ -443,9 +441,9 @@
isAlreadyDef=self.plugin.dbm.isTagDefined(self.feature.id(),self.featureType,key.toUtf8().data())
if isAlreadyDef:
# such a key already exists for this relation
- self.tagsTableWidget.setItem(row,0,QTableWidgetItem(self.newTagLabel))
+ self.tagTable.setItem(row,0,QTableWidgetItem(self.newTagLabel))
QMessageBox.information(self, self.tr("OSM Feature Dock Widget")
- ,self.tr("Property with key '%1' already exists for this feature.").arg(key.toUtf8().data()))
+ ,self.tr("Property '%1' cannot be added twice.").arg(key.toUtf8().data()))
return
# well, insert new tag into database
@@ -454,15 +452,15 @@
self.__tagsLoaded=False
- self.tagsTableWidget.item(row,0).setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
- self.tagsTableWidget.item(row,1).setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable)
+ self.tagTable.item(row,0).setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
+ self.tagTable.item(row,1).setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable)
newLastRow = row+1
- self.tagsTableWidget.setRowCount(row+2)
- self.tagsTableWidget.setItem(newLastRow,0,QTableWidgetItem(self.newTagLabel))
- self.tagsTableWidget.setItem(newLastRow,1,QTableWidgetItem(""))
- self.tagsTableWidget.item(newLastRow,0).setFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable)
- self.tagsTableWidget.item(newLastRow,1).setFlags(Qt.ItemIsEnabled)
+ self.tagTable.setRowCount(row+2)
+ self.tagTable.setItem(newLastRow,0,QTableWidgetItem(self.newTagLabel))
+ self.tagTable.setItem(newLastRow,1,QTableWidgetItem(""))
+ self.tagTable.item(newLastRow,0).setFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable)
+ self.tagTable.item(newLastRow,1).setFlags(Qt.ItemIsEnabled)
self.__tagsLoaded=True
@@ -498,100 +496,580 @@
"""
if item.column()==0:
+
+ if item.row()<self.tagTable.rowCount()-1:
+ return
+
+ tagValues=self.determineSuitableTagKeys(self.featureType)
+ tagValues.sort()
+ if len(tagValues)>0:
+ valCombo=QComboBox()
+ valCombo.setEditable(True)
+ valCombo.addItems(tagValues)
+ currentComboText=self.tagTable.item(item.row(),0).text()
+ ix=valCombo.findText(currentComboText)
+ valCombo.setCurrentIndex(ix)
+ if ix==-1:
+ valCombo.setEditText(currentComboText)
+
+ self.tagTable.setCellWidget(item.row(),0,valCombo)
+ QObject.connect(valCombo, SIGNAL("currentIndexChanged(const QString &)"), self.__onTagKeySelectionChanged)
return
- if self.tagsEditIndex<>None:
- row=self.tagsEditIndex
- if row<>-1:
- value=self.tagsTableWidget.cellWidget(row,1).currentText()
- self.tagsTableWidget.item(row,1).setText(value)
- self.tagsTableWidget.removeCellWidget(row,1)
-
- key=self.tagsTableWidget.item(item.row(),0).text()
+ key=self.tagTable.item(item.row(),0).text()
tagValues=self.determineSuitableTagValues(self.featureType,key)
+ tagValues.sort()
if len(tagValues)>0:
valCombo=QComboBox()
valCombo.setEditable(True)
valCombo.addItems(tagValues)
- currentComboText=self.tagsTableWidget.item(item.row(),1).text()
+ currentComboText=self.tagTable.item(item.row(),1).text()
ix=valCombo.findText(currentComboText)
+ valCombo.setCurrentIndex(ix)
if ix==-1:
valCombo.setEditText(currentComboText)
- else:
- valCombo.setCurrentIndex(ix)
- self.tagsTableWidget.setCellWidget(item.row(),1,valCombo)
- self.tagsEditIndex=item.row()
+ self.tagTable.setCellWidget(item.row(),1,valCombo)
QObject.connect(valCombo, SIGNAL("currentIndexChanged(const QString &)"), self.__onTagValueSelectionChanged)
+ def __onCurrentCellChanged(self,curRow,curCol,prevRow,prevCol):
+ """Function is called after currentCellChanged(...) signal is emitted on table of feature tags.
+
+ @param curRow current row index to tags table
+ @param curCol current column index to tags table
+ @param prevRow previous row index to tags table
+ @param prevCol previous column index to tags table
+ """
+
+ cellWidget=self.tagTable.cellWidget(prevRow,prevCol)
+ if cellWidget==None:
+ return
+
+ self.tagTable.removeCellWidget(prevRow,prevCol)
+
+
+ def __onTagKeySelectionChanged(self,key):
+ """Function is called after currentIndexChanged(...) signal is emitted on combobox in 1st column of tags table.
+
+ @param key key selected in combobox
+ """
+
+ row=self.tagTable.currentRow()
+ col=self.tagTable.currentColumn()
+
+ self.tagTable.item(row,col).setText(key)
+ self.tagTable.removeCellWidget(row,col)
+
+
def __onTagValueSelectionChanged(self,value):
- """TODO: Function is called after currentIndexChanged(...) signal is emitted on combobox of table item.
- This combobox is related to table of relation tags (column Value).
+ """Function is called after currentIndexChanged(...) signal is emitted on combobox in 2nd column of tags table.
- @param value new current value in combobox
+ @param value value selected in combobox
"""
- row=self.tagsEditIndex
- self.tagsTableWidget.item(row,1).setText(value)
- self.tagsTableWidget.removeCellWidget(row,1)
- self.tagsEditIndex=-1
+ row=self.tagTable.currentRow()
+ col=self.tagTable.currentColumn()
+ self.tagTable.item(row,col).setText(value)
+ self.tagTable.removeCellWidget(row,col)
+
def determineSuitableTagValues(self,featType,tagKey):
- """TODO: Function is used to find typical tag values for given relation type and given key.
- With help of this function plugin gives advice to user on relation creation.
+ """Function is used to find out typical tag values to given feature type and key.
+ With help of this function plugin gives advice to user on feature tags editing.
+ Information on typical/recommended tag values was taken from wiki.openstreetmap.org.
- @param relType name of relation type
+ @param featType name of feature type; one of 'Point','Line','Polygon'
@param tagKey key of tag
- @return list of typical tag values to given relation type
+ @return list of typical values to given feature type and key
"""
- vals = []
- if featType in ('Point','Line','Polygon','Relation'):
+ vals=[]
+ # POINT TAGS
+ if featType=='Point':
if tagKey=="highway":
- vals = ["trunk","motorway","primary","secondary","tertiary","residential"]
+ vals=["services","mini_roundabout","stop","traffic_signals","crossing","incline","incline_steep","ford","bus_stop","turning_circle"
+ ,"emergency_access_point","speed_camera","motorway_junction","passing_place"]
- elif tagKey=="boundary":
- vals = ["administrative","national_park","political","civil"]
- elif tagKey=="land_area":
- vals = ["administrative"]
- elif tagKey=="admin_level":
- vals = ["1","2","3","4","5","6","7","8","9","10","11"]
- elif tagKey=="restriction":
- vals = ["no_right_turn","no_left_turn","no_u_turn","no_straight_on","only_right_turn","only_left_turn","only_straight_on"]
- elif tagKey=="except":
- vals = ["psv","bicycle","hgv","motorcar"]
+ elif tagKey=="traffic_calming":
+ vals=["yes","bump","chicane","cushion","hump","rumble_strip","table","choker"]
+
+ elif tagKey=="barrier":
+ vals=["bollard","cycle_barrier","cattle_grid","toll_booth","entrance","gate","stile","sally_port"]
+
+ elif tagKey=="waterway":
+ vals=["dock","lock_gate","turning_point","boatyard","weir"]
+
+ elif tagKey=="lock":
+ vals=["yes"]
+
+ elif tagKey=="railway":
+ vals=["station","halt","tram_stop","crossing","level_crossing","subway_entrance","turntable","buffer_stop"]
+
+ elif tagKey=="aeroway":
+ vals=["aerodrome","terminal","helipad","gate","windsock"]
+
+ elif tagKey=="aerialway":
+ vals=["station"]
+
+ elif tagKey=="power":
+ vals=["tower","station","sub_station","generator"]
+
+ elif tagKey=="man_made":
+ vals=["beacon","crane","gasometer","lighthouse","reservoir_covered","surveillance","survey_point","tower","wastewater_plant","watermill"
+ ,"water_tower","water_works","windmill","works"]
+
+ elif tagKey=="leisure":
+ vals=["sports_centre ","sports_centre ","stadium","track","pitch","water_park","marina","slipway","fishing","nature_reserve"
+ ,"park","playground","garden","common","ice_rink","miniature_golf"]
+
+ elif tagKey=="amenity":
+ vals=["restaurant","pub","food_court","fast_food","drinking_water","bbq","biergarten","cafe","kindergarten","school","college"
+ ,"library","university","ferry_terminal","bicycle_parking","bicycle_rental","bus_station","car_rental","car_sharing","fuel"
+ ,"grit_bin","parking","signpost","taxi","atm","bank","bureau_de_change","pharmacy","hospital","baby_hatch","dentist","doctors","veterinary"
+ ,"arts_centre","cinema","fountain","nightclub","studio","theatre","bench","brothel","courthouse","crematorium","embassy","emergency_phone"
+ ,"fire_station","grave_yard","hunting_stand","place_of_worship","police","post_box","post_office","prison","public_building","recycling"
+ ,"shelter","telephone","toilets","townhall","vending_machine","waste_basket","waste_disposal"]
+
+ elif tagKey=="shop":
+ vals=["alcohol","bakery","beverages","bicycle","books","butcher","car","car_repair","chemist","clothes","computer","confectionery","convenience"
+ ,"department_store","dry_cleaning","doityourself","electronics","florist","furniture","garden_centre","greengrocer","hairdresser"
+ ,"hardware","hifi","kiosk","laundry","mall","motorcycle","newsagent","optician","organic","outdoor","sports","stationery","supermarket"
+ ,"shoes","toys","travel_agency","video"]
+
+ elif tagKey=="tourism":
+ vals=["alpine_hut","attraction","artwork","camp_site","caravan_site","chalet","guest_house","hostel","hotel","information","motel","museum"
+ ,"picnic_site","theme_park","viewpoint","zoo","yes"]
+
+ elif tagKey=="historic":
+ vals=["castle","monument","memorial","archaeological_site","ruins","battlefield","wreck","yes"]
+
+ elif tagKey=="landuse":
+ vals=["quarry","landfill","basin","reservoir","forest","allotments","vineyard","residential","retail","commercial","industrial","brownfield"
+ ,"greenfield","construction","military","meadow","village_green","wood","recreation_ground"]
+
+ elif tagKey=="military":
+ vals=["airfield","bunker","barracks","danger_area","range","naval_base"]
+
+ elif tagKey=="natural":
+ vals=["bay","beach","cave_entrance","cliff","coastline","fell","glacier","heath","land","marsh","mud","peak","scree","scrub","spring","tree"
+ ,"volcano","water","wetland","wood"]
+
+ elif tagKey=="sport":
+ vals=["9pin","10pin","archery","athletics","australian_football","baseball","basketball","beachvolleyball","boules","bowls","canoe","chess"
+ "climbing","cricket","cricket_nets","croquet","cycling","diving","dog_racing","equestrian","football","golf","gymnastics","hockey"
+ "horse_racing","korfball","motor","multi","orienteering","paddle_tennis","pelota","racquet","rowing","rugby","shooting","skating"
+ "skateboard","skiing","soccer","swimming","table_tennis","team_handball","tennis","volleyball"]
+
+ elif tagKey=="internet_access":
+ vals=["public","service","terminal","wired","wlan"]
+
+ elif tagKey=="motorroad":
+ vals=["yes","no"]
+
+ elif tagKey=="bridge":
+ vals=["yes","aqueduct","viaduct","swing"]
+
+ elif tagKey=="crossing":
+ vals=["no","traffic_signals","uncontrolled"]
+
+ elif tagKey=="mountain_pass":
+ vals=["yes"]
+
+ elif tagKey=="disused":
+ vals=["yes"]
+
+ elif tagKey=="wheelchair":
+ vals=["yes","no","limited"]
+
+ elif tagKey=="wood":
+ vals=["coniferous","deciduous","mixed"]
+
+ elif tagKey=="place":
+ vals=["continent","country","state","region","country","city","town","village","hamlet","suburb","locality","island"]
+
+ elif tagKey=="source":
+ vals=["extrapolation","knowledge","historical","image","survey","voice"]
+
+
+ # LINE TAGS
+ elif featType=='Line':
+
+ if tagKey=="highway":
+ vals=["motorway","motorway_link","trunk","trunk_link","primary","primary_link","secondary","secondary_link","tertiary","unclassified"
+ ,"road","residential","living_street","service","track","pedestrian","bus_guideway","path","cycleway","footway","bridleway"
+ ,"byway","steps","ford","construction"]
+
+ elif tagKey=="traffic_calming":
+ vals=["yes","bump","chicane","cushion","hump","rumble_strip","table","choker"]
+
+ elif tagKey=="service":
+ vals=["parking_aisle","driveway","alley","yard","siding","spur"]
+
+ elif tagKey=="smoothness":
+ vals=["excellent","good","intermediate","bad","very_bad","horrible","very_horrible","impassable"]
+
+ elif tagKey=="passing_places":
+ vals=["yes"]
+
+ elif tagKey=="barrier":
+ vals=["hedge","fence","wall","ditch","retaining_wall","city_wall","bollard"]
+
+ elif tagKey=="cycleway":
+ vals=["lane","track","opposite_lane","opposite_track","opposite"]
+
+ elif tagKey=="tracktype":
+ vals=["grade1","grade2","grade3","grade4","grade5"]
+
+ elif tagKey=="waterway":
+ vals=["stream","river","canal","drain","weir","dam"]
+
+ elif tagKey=="lock":
+ vals=["yes"]
+
+ elif tagKey=="mooring":
+ vals=["yes","private","no"]
+
+ elif tagKey=="railway":
+ vals=["rail","tram","light_rail","abandoned","disused","subway","preserved","narrow_gauge","construction","monorail","funicular","platform"]
+
+ elif tagKey=="usage":
+ vals=["main","branch","industrial","military","tourism"]
+
+ elif tagKey=="electrified":
+ vals=["contact_line","rail","yes","no"]
+
+ elif tagKey=="bridge":
+ vals=["yes"]
+
+ elif tagKey=="tunnel":
+ vals=["yes","no"]
+
+ elif tagKey=="aeroway":
+ vals=["runway","taxiway"]
+
+ elif tagKey=="aerialway":
+ vals=["cable_car","gondola","chair_lift","drag_lift"]
+
+ elif tagKey=="power":
+ vals=["line"]
+
+ elif tagKey=="cables":
+ vals=["3","4","6","8","9","12","15","18"]
+
+ elif tagKey=="wires":
+ vals=["single","double","triple","quad"]
+
+ elif tagKey=="voltage":
+ vals=["110000","220000","380000","400000"]
+
+ elif tagKey=="man_made":
+ vals=["pier","pipeline"]
+
+ elif tagKey=="leisure":
+ vals=["track"]
+
+ elif tagKey=="amenity":
+ vals=["marketplace"]
+
+ elif tagKey=="tourism":
+ vals=["artwork"]
+
+ elif tagKey=="natural":
+ vals=["cliff","coastline"]
+
elif tagKey=="route":
- vals = ["road","bicycle","foot","hiking","bus","pilgrimage","detour","railway","tram","mtb","roller_skate","running","horse"]
- elif tagKey=="network":
- vals = ["ncn","rcn","lcn","uk_ldp","lwn","rwn","nwn","e-road"]
- elif tagKey=="state":
- vals = ["proposed","alternate","temporary","connection"]
+ vals=["bus","detour","ferry","flight","subsea","hiking","bicycle","mtb","road","ski","tour","tram","pub_crawl"]
+ elif tagKey=="abutters":
+ vals=["residential","retail","commercial","industrial","mixed"]
+
+ elif tagKey=="fenced":
+ vals=["yes","no"]
+
+ elif tagKey=="lit":
+ vals=["yes","no"]
+
+ elif tagKey=="motorroad":
+ vals=["yes","no"]
+
+ elif tagKey=="bridge":
+ vals=["yes","aqueduct","viaduct","swing"]
+
+ elif tagKey=="tunnel":
+ vals=["yes"]
+
+ elif tagKey=="cutting":
+ vals=["yes"]
+
+ elif tagKey=="embankment":
+ vals=["yes"]
+
+ elif tagKey=="layer":
+ vals=["-5","-4","-3","-2","-1","0","1","2","3","4","5"]
+
+ elif tagKey=="surface":
+ vals=["paved","unpaved","asphalt","concrete","paving_stones","cobblestone","metal","wood","grass_paver","gravel","pebblestone"
+ ,"grass","ground","earth","dirt","mud","sand","ice_road"]
+
+ elif tagKey=="disused":
+ vals=["yes"]
+
+ elif tagKey=="wheelchair":
+ vals=["yes","no","limited"]
+
+ elif tagKey=="narrow":
+ vals=["yes"]
+
+ elif tagKey=="sac_scale":
+ vals=["hiking","mountain_hiking","demanding_mountain_hiking","alpine_hiking","demanding_alpine_hiking","difficult_alpine_hiking"]
+
+ elif tagKey=="trail_visibility":
+ vals=["excellent","good","intermediate","bad","horrible","no"]
+
+ elif tagKey=="mtb:scale":
+ vals=["0","1","2","3","4","5"]
+
+ elif tagKey=="mtb:scale:uphill":
+ vals=["0","1","2","3","4","5"]
+
+ elif tagKey=="mtb:scale:imba":
+ vals=["0","1","2","3","4"]
+
+ elif tagKey=="access":
+ vals=["yes","designated","official","private","permissive","destination","delivery","agricultural","forestry","unknown","no"]
+
+ elif tagKey=="vehicle":
+ vals=["yes","designated","private","permissive","destination","delivery","agricultural","forestry","unknown","no"]
+
+ elif tagKey=="bicycle":
+ vals=["yes","designated","official","private","permissive","dismount","destination","delivery","agricultural","forestry","unknown","no"]
+
+ elif tagKey=="foot":
+ vals=["yes","designated","official","private","permissive","destination","delivery","agricultural","forestry","unknown","no"]
+
+ elif tagKey=="goods":
+ vals=["yes","designated","private","permissive","destination","delivery","agricultural","forestry","unknown","no"]
+
+ elif tagKey=="hgv":
+ vals=["yes","designated","private","permissive","destination","delivery","agricultural","forestry","unknown","no"]
+
+ elif tagKey=="hazmat":
+ vals=["yes","designated","private","permissive","destination","delivery","agricultural","forestry","unknown","no"]
+
+ elif tagKey=="agricultural":
+ vals=["yes","designated","private","permissive","destination","delivery","agricultural","forestry","unknown","no"]
+
+ elif tagKey=="horse":
+ vals=["yes","designated","official","private","permissive","destination","delivery","agricultural","forestry","unknown","no"]
+
+ elif tagKey=="motorcycle":
+ vals=["yes","designated","private","permissive","destination","delivery","agricultural","forestry","unknown","no"]
+
+ elif tagKey=="motorcar":
+ vals=["yes","designated","private","permissive","destination","delivery","agricultural","forestry","unknown","no"]
+
+ elif tagKey=="motor_vehicle":
+ vals=["yes","designated","private","permissive","destination","delivery","agricultural","forestry","unknown","no"]
+
+ elif tagKey=="psv":
+ vals=["yes","designated","private","permissive","destination","delivery","agricultural","forestry","unknown","no"]
+
+ elif tagKey=="motorboat":
+ vals=["yes","designated","private","permissive","destination","delivery","agricultural","forestry","unknown","no"]
+
+ elif tagKey=="boat":
+ vals=["yes","designated","private","permissive","destination","delivery","agricultural","forestry","unknown","no"]
+
+ elif tagKey=="oneway":
+ vals=["yes","no","-1"]
+
+ elif tagKey=="noexit":
+ vals=["yes"]
+
+ elif tagKey=="toll":
+ vals=["yes"]
+
+ elif tagKey=="addr:interpolation":
+ vals=["all","even","odd","alphabetic"]
+
+ elif tagKey=="source":
+ vals=["extrapolation","knowledge","historical","image","survey","voice"]
+
+
+ # POLYGON TAGS
+ elif featType=='Polygon':
+
+ if tagKey=="highway":
+ vals=["pedestrian","services"]
+
+ elif tagKey=="junction":
+ vals=["roundabout"]
+
+ elif tagKey=="barrier":
+ vals=["hedge","fence","wall","ditch","retaining_wall","city_wall"]
+
+ elif tagKey=="waterway":
+ vals=["riverbank","dock","dam"]
+
+ elif tagKey=="railway":
+ vals=["station","turntable","platform"]
+
+ elif tagKey=="aeroway":
+ vals=["aerodrome","terminal","helipad","apron"]
+
+ elif tagKey=="aerialway":
+ vals=["station"]
+
+ elif tagKey=="power":
+ vals=["station","sub_station","generator"]
+
+ elif tagKey=="man_made":
+ vals=["crane","gasometer","pier","reservoir_covered","surveillance","wastewater_plant","watermill","water_tower","water_works","windmill","works"]
+
+ elif tagKey=="building":
+ vals=["yes"]
+
+ elif tagKey=="leisure":
+ vals=["sports_centre ","sports_centre ","stadium","track","pitch","water_park","marina","fishing","nature_reserve"
+ ,"park","playground","garden","common","ice_rink","miniature_golf"]
+
+ elif tagKey=="amenity":
+ vals=["restaurant","pub","food_court","fast_food","biergarten","cafe","kindergarten","school","college"
+ ,"library","university","ferry_terminal","bicycle_parking","bicycle_rental","bus_station","car_rental","car_sharing","fuel"
+ ,"parking","taxi","bank","pharmacy","hospital","baby_hatch","dentist","doctors","veterinary"
+ ,"arts_centre","cinema","fountain","nightclub","studio","theatre","brothel","courthouse","crematorium","embassy"
+ ,"fire_station","grave_yard","hunting_stand","marketplace","place_of_worship","police","post_office","prison","public_building","recycling"
+ ,"shelter","townhall"]
+
+ elif tagKey=="shop":
+ vals=["alcohol","bakery","beverages","bicycle","books","butcher","car","car_repair","chemist","clothes","computer","confectionery","convenience"
+ ,"department_store","dry_cleaning","doityourself","electronics","florist","furniture","garden_centre","greengrocer","hairdresser"
+ ,"hardware","hifi","kiosk","laundry","mall","motorcycle","newsagent","optician","organic","outdoor","sports","stationery","supermarket"
+ ,"shoes","toys","travel_agency","video"]
+
+ elif tagKey=="tourism":
+ vals=["alpine_hut","attraction","artwork","camp_site","caravan_site","chalet","museum","picnic_site","theme_park","zoo","yes"]
+
+ elif tagKey=="historic":
+ vals=["castle","monument","memorial","archaeological_site","ruins","battlefield","wreck","yes"]
+
+ elif tagKey=="landuse":
+ vals=["farm","farmyard","quarry","landfill","basin","reservoir","forest","allotments","vineyard","residential","retail","commercial","industrial"
+ ,"brownfield","greenfield","construction","railway","military","cemetery","meadow","village_green","wood","recreation_ground","salt_pond"]
+
+ elif tagKey=="military":
+ vals=["airfield","bunker","barracks","danger_area","range","naval_base"]
+
+ elif tagKey=="natural":
+ vals=["bay","beach","cave_entrance","cliff","coastline","fell","glacier","heath","land","marsh","mud","scree","scrub"
+ ,"water","wetland","wood"]
+
+ elif tagKey=="boundary":
+ vals=["administrative","civil","political","national_park"]
+
+ elif tagKey=="sport":
+ vals=["9pin","10pin","archery","athletics","australian_football","baseball","basketball","beachvolleyball","boules","bowls","canoe","chess"
+ "climbing","cricket","cricket_nets","croquet","cycling","diving","dog_racing","equestrian","football","golf","gymnastics","hockey"
+ "horse_racing","korfball","motor","multi","paddle_tennis","pelota","racquet","rowing","rugby","shooting","skating"
+ "skateboard","skiing","soccer","swimming","table_tennis","team_handball","tennis","volleyball"]
+
+ elif tagKey=="area":
+ vals=["yes"]
+
+ elif tagKey=="disused":
+ vals=["yes"]
+
+ elif tagKey=="wheelchair":
+ vals=["yes","no","limited"]
+
+ elif tagKey=="wood":
+ vals=["coniferous","deciduous","mixed"]
+
+ elif tagKey=="place":
+ vals=["continent","state","region","country","city","town","village","hamlet","suburb","locality","island"]
+
+ elif tagKey=="source":
+ vals=["extrapolation","knowledge","historical","image","survey","voice"]
+
+
return vals
+ def determineSuitableTagKeys(self,featType):
+ """Function is used to find out typical tag keys to given feature type.
+ With help of this function plugin gives advice to user on feature tags editing.
+ Information on typical/recommended tag keys was taken from wiki.openstreetmap.org.
+
+ @param featType name of feature type; one of 'Point','Line','Polygon'
+ @return list of typical keys to given feature type
+ """
+
+ vals = []
+ if featType=='Point':
+
+ vals=["highway","traffic_calming","barrier","waterway","lock","railway","aeroway","aerialway","power","man_made","leisure"
+ ,"amenity","shop","tourism","historic","landuse","military","natural","route","sport","internet_access","motorroad","bridge","crossing"
+ ,"mountain_pass","ele","incline","operator","opening_hours","disused","wheelchair","TMC:LocationCode","wood","traffic_sign","disused"
+ ,"name","alt_name"
+ ,"alt_name","int_name","nat_name","reg_name","loc_name","old_name","name:lg","ref","int_ref","nat_ref","reg_ref","loc_ref","old_ref"
+ ,"source_ref","icao","iata","place","place_numbers","postal_code","is_in","population","addr:housenumber","addr:housename","addr:street"
+ ,"addr:postcode","addr:city","addr:country","note","description","image","source","source_ref","source_name","source:ref"
+ ,"attribution","url","website","wikipedia","created_by","history"]
+
+ elif featType=='Line':
+
+ vals=["highway","construction","junction","traffic_calming","service","smoothness","passing_places","barrier","cycleway"
+ ,"tracktype","waterway","lock","mooring","railway","usage","electrified","frequency","voltage","bridge","tunnel","service"
+ ,"aeroway","aerialway","power","cables","wires","voltage","man_made","leisure","amenity","natural","route","abutters","fenced"
+ ,"lit","motorroad","bridge","tunnel","cutting","embankment","lanes","layer","surface","width","est_width","depth","est_depth"
+ ,"incline","start_date","end_date","operator","opening_hours","disused","wheelchair","narrow","sac_scale","trail_visibility"
+ ,"mtb:scale","mtb:scale:uphill","mtb:scale:imba","mtb:description","TMC:LocationCode","access","vehicle","bicycle","foot","goods"
+ ,"hgv","hazmat","agricultural","horse","motorcycle","motorcar","motor_vehicle","psv","motorboat","boat","oneway","noexit"
+ ,"date_on","date_off","hour_on","hour_off","maxweight","maxheight","maxwidth","maxlength","maxspeed","minspeed","maxstay"
+ ,"disused","toll","charge","name"
+ ,"alt_name","int_name","nat_name","reg_name","loc_name","old_name","name:lg","ref","int_ref","nat_ref","reg_ref","loc_ref","old_ref"
+ ,"ncn_ref","rcn_ref","lcn_ref"
+ ,"source_ref","icao","iata","place_numbers","postal_code","is_in","addr:interpolation","note","description","image","source"
+ ,"source_ref","source_name","source:ref","attribution","url","website","wikipedia","created_by","history"]
+
+
+ elif featType=='Polygon':
+
+ vals=["highway","junction","barrier","waterway","railway","landuse","aeroway","aerialway","power","man_made","building","leisure"
+ ,"amenity","shop","tourism","historic","landuse","military","natural","route","boundary","sport","area","ele","depth","est_depth"
+ ,"operator","opening_hours","disused","wheelchair","wood","admin_level","disused","name"
+ ,"alt_name","int_name","nat_name","reg_name","loc_name","old_name","name:lg","ref","int_ref","nat_ref","reg_ref","loc_ref","old_ref"
+ ,"source_ref","icao","iata","place","place_name","place_numbers","postal_code","is_in","population"
+ ,"addr:housenumber","addr:housename","addr:street","addr:postcode","addr:city","addr:country"
+ ,"note","description","image","source","source_ref","source_name","source:ref","attribution","url","website","wikipedia"
+ ,"created_by","history"]
+
+ return vals
+
+
def __startIdentifyingFeature(self):
"""Function prepares feature identification.
The appropriate map tool (IdentifyMapTool) is set to map canvas.
"""
- if self.__activeEditButton==self.identifyButton:
+ if self.activeEditButton==self.identifyButton:
return
+ self.plugin.canvas.unsetMapTool(self.plugin.canvas.mapTool())
+
# clear dockwidget
self.clear()
self.plugin.iface.mainWindow().statusBar().showMessage("")
self.__mapTool=IdentifyMapTool(self.plugin.canvas, self, self.plugin.dbm)
- self.plugin.canvas.unsetMapTool(self.plugin.canvas.mapTool())
self.plugin.canvas.setMapTool(self.__mapTool)
self.plugin.canvas.setCursor(QCursor(Qt.ArrowCursor))
- self.__activeEditButton=self.identifyButton
+ self.activeEditButton=self.identifyButton
self.plugin.canvas.setFocus(Qt.OtherFocusReason)
@@ -600,7 +1078,7 @@
The appropriate map tool (MoveMapTool) is set to map canvas.
"""
- if self.__activeEditButton==self.moveButton:
+ if self.activeEditButton==self.moveButton:
return
# clear dockwidget
@@ -610,7 +1088,7 @@
self.__mapTool=MoveMapTool(self.plugin)
self.plugin.canvas.setMapTool(self.__mapTool)
self.plugin.canvas.setCursor(QCursor(Qt.CrossCursor))
- self.__activeEditButton=self.moveButton
+ self.activeEditButton=self.moveButton
self.plugin.canvas.setFocus(Qt.OtherFocusReason)
@@ -619,7 +1097,7 @@
The appropriate map tool (CreatePointMapTool) is set to map canvas.
"""
- if self.__activeEditButton==self.createPointButton:
+ if self.activeEditButton==self.createPointButton:
return
self.plugin.iface.mainWindow().statusBar().showMessage("Snapping ON. Hold Ctrl to disable it.")
@@ -627,7 +1105,7 @@
self.__mapTool=CreatePointMapTool(self.plugin)
self.plugin.canvas.setMapTool(self.__mapTool)
self.plugin.canvas.setCursor(QCursor(Qt.ArrowCursor))
- self.__activeEditButton=self.createPointButton
+ self.activeEditButton=self.createPointButton
self.plugin.canvas.setFocus(Qt.OtherFocusReason)
@@ -636,7 +1114,7 @@
The appropriate map tool (CreateLineMapTool) is set to map canvas.
"""
- if self.__activeEditButton==self.createLineButton:
+ if self.activeEditButton==self.createLineButton:
return
self.plugin.iface.mainWindow().statusBar().showMessage("Snapping ON. Hold Ctrl to disable it.")
@@ -644,7 +1122,7 @@
self.__mapTool=CreateLineMapTool(self.plugin)
self.plugin.canvas.setMapTool(self.__mapTool)
self.plugin.canvas.setCursor(QCursor(Qt.ArrowCursor))
- self.__activeEditButton=self.createLineButton
+ self.activeEditButton=self.createLineButton
self.plugin.canvas.setFocus(Qt.OtherFocusReason)
@@ -653,7 +1131,7 @@
The appropriate map tool (CreatePolygonMapTool) is set to map canvas.
"""
- if self.__activeEditButton==self.createPolygonButton:
+ if self.activeEditButton==self.createPolygonButton:
return
self.plugin.iface.mainWindow().statusBar().showMessage("Snapping ON. Hold Ctrl to disable it.")
@@ -661,7 +1139,7 @@
self.__mapTool=CreatePolygonMapTool(self.plugin)
self.plugin.canvas.setMapTool(self.__mapTool)
self.plugin.canvas.setCursor(QCursor(Qt.ArrowCursor))
- self.__activeEditButton=self.createPolygonButton
+ self.activeEditButton=self.createPolygonButton
self.plugin.canvas.setFocus(Qt.OtherFocusReason)
@@ -713,8 +1191,8 @@
self.plugin.canvas.setMapTool(self.__mapTool)
self.plugin.canvas.setCursor(QCursor(Qt.ArrowCursor))
self.plugin.canvas.setFocus(Qt.OtherFocusReason)
- self.__activeEditButton=self.identifyButton
- self.__activeEditButton.setChecked(True)
+ self.activeEditButton=self.identifyButton
+ self.activeEditButton.setChecked(True)
def removeSelectedTags(self):
@@ -723,10 +1201,10 @@
"""
# remove selected tags (rows)
- selectedItems=self.tagsTableWidget.selectedItems()
+ selectedItems=self.tagTable.selectedItems()
selectedRowsIndexes=[]
- lastRowIndex=self.tagsTableWidget.rowCount()-1
- self.tagsTableWidget.setCurrentCell(lastRowIndex,0)
+ lastRowIndex=self.tagTable.rowCount()-1
+ self.tagTable.setCurrentCell(lastRowIndex,0)
for i in selectedItems:
if i.column()==0 and not i.row()==lastRowIndex:
@@ -739,7 +1217,7 @@
for ix in selectedRowsIndexes:
- key=self.tagsTableWidget.item(ix,0).text()
+ key=self.tagTable.item(ix,0).text()
# updating feature status (from Normal to Updated)
if self.featureType=='Point':
self.plugin.dbm.changePointStatus(self.feature.id(),'N','U')
@@ -756,7 +1234,7 @@
# perform tag removing
self.plugin.dbm.removeTag(self.feature.id(),self.featureType,key.toUtf8().data())
- self.tagsTableWidget.removeRow(ix)
+ self.tagTable.removeRow(ix)
# make this action permanent
self.plugin.dbm.commit()
@@ -871,16 +1349,16 @@
@param relId identifier of relation
"""
- self.relTagsTreeWidget.clear()
+ self.relTagsTree.clear()
self.__relTagsLoaded=False
# ask database manager for all relation tags
self.featRelTags=self.plugin.dbm.getFeatureTags(relId,"Relation")
- self.relTagsTreeWidget.setColumnCount(2)
- self.relTagsTreeWidget.setHeaderLabels(["Key","Value"])
+ self.relTagsTree.setColumnCount(2)
+ self.relTagsTree.setHeaderLabels(["Key","Value"])
for i in range(0,len(self.featRelTags)):
- self.relTagsTreeWidget.addTopLevelItem(QTreeWidgetItem([self.featRelTags[i][0],self.featRelTags[i][1]]))
+ self.relTagsTree.addTopLevelItem(QTreeWidgetItem([self.featRelTags[i][0],self.featRelTags[i][1]]))
self.__relTagsLoaded=True
@@ -930,32 +1408,32 @@
"""
# clear table with information about feature's tags
- self.tagsTableWidget.clear()
+ self.tagTable.clear()
# fill tableWidget with tags of selected feature
tableData=self.plugin.dbm.getFeatureTags(featId,featType)
rowCount=len(tableData)
self.__tagsLoaded=False
- self.tagsTableWidget.setRowCount(rowCount+1)
- self.tagsTableWidget.setColumnCount(2)
- self.tagsTableWidget.setHorizontalHeaderItem(0,QTableWidgetItem("Key"))
- self.tagsTableWidget.setHorizontalHeaderItem(1,QTableWidgetItem("Value"))
+ self.tagTable.setRowCount(rowCount+1)
+ self.tagTable.setColumnCount(2)
+ self.tagTable.setHorizontalHeaderItem(0,QTableWidgetItem("Key"))
+ self.tagTable.setHorizontalHeaderItem(1,QTableWidgetItem("Value"))
for i in range(0,rowCount):
- self.tagsTableWidget.setItem(i,0,QTableWidgetItem(tableData[i][0]))
- self.tagsTableWidget.setItem(i,1,QTableWidgetItem(tableData[i][1]))
- self.tagsTableWidget.item(i,0).setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
- self.tagsTableWidget.item(i,1).setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable)
+ self.tagTable.setItem(i,0,QTableWidgetItem(tableData[i][0]))
+ self.tagTable.setItem(i,1,QTableWidgetItem(tableData[i][1]))
+ self.tagTable.item(i,0).setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
+ self.tagTable.item(i,1).setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable)
- self.tagsTableWidget.setItem(rowCount,0,QTableWidgetItem(self.newTagLabel))
- self.tagsTableWidget.setItem(rowCount,1,QTableWidgetItem(""))
- self.tagsTableWidget.item(rowCount,0).setFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable)
- self.tagsTableWidget.item(rowCount,1).setFlags(Qt.ItemIsEnabled)
+ self.tagTable.setItem(rowCount,0,QTableWidgetItem(self.newTagLabel))
+ self.tagTable.setItem(rowCount,1,QTableWidgetItem(""))
+ self.tagTable.item(rowCount,0).setFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable)
+ self.tagTable.item(rowCount,1).setFlags(Qt.ItemIsEnabled)
self.__tagsLoaded=True
# enable tags table for editing
- self.tagsTableWidget.setEnabled(True)
+ self.tagTable.setEnabled(True)
self.deleteTagsButton.setEnabled(True)
@@ -970,7 +1448,7 @@
@param featType type of feature to load - one of 'Point','Line','Polygon'
"""
- self.relTagsTreeWidget.setColumnCount(0)
+ self.relTagsTree.setColumnCount(0)
self.relMembersList.setEnabled(False)
# disable widget buttons
@@ -979,7 +1457,7 @@
# clear all tables connected to relations
self.relListWidget.clear()
- self.relTagsTreeWidget.clear()
+ self.relTagsTree.clear()
self.relMembersList.clear()
# load relations for selected feature
@@ -996,7 +1474,7 @@
# enable relation tables and button for relation addition
self.addRelationButton.setEnabled(True)
self.relListWidget.setEnabled(True)
- self.relTagsTreeWidget.setEnabled(True)
+ self.relTagsTree.setEnabled(True)
def reloadFeatureRelations(self):
@@ -1006,7 +1484,7 @@
If no relation exists for specified feature, listWidget is filled with the only row with text: "<no relation>".
"""
- self.relTagsTreeWidget.setColumnCount(0)
+ self.relTagsTree.setColumnCount(0)
self.relMembersList.setEnabled(False)
# disable widget buttons
@@ -1015,7 +1493,7 @@
# clear all tables connected to relations
self.relListWidget.clear()
- self.relTagsTreeWidget.clear()
+ self.relTagsTree.clear()
self.relMembersList.clear()
# load relations for selected feature
@@ -1032,7 +1510,7 @@
# enable relation tables and button for relation addition
self.addRelationButton.setEnabled(True)
self.relListWidget.setEnabled(True)
- self.relTagsTreeWidget.setEnabled(True)
+ self.relTagsTree.setEnabled(True)
def putMarkersOnMembers(self,feat,featType):
Modified: trunk/qgis/python/plugins/osm/ui_files/DockWidget.ui
===================================================================
--- trunk/qgis/python/plugins/osm/ui_files/DockWidget.ui 2009-08-06 10:43:28 UTC (rev 11282)
+++ trunk/qgis/python/plugins/osm/ui_files/DockWidget.ui 2009-08-06 14:09:40 UTC (rev 11283)
@@ -1,14 +1,13 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
+<ui version="4.0" >
<class>OsmDockWidget</class>
- <widget class="QDockWidget" name="OsmDockWidget">
- <property name="windowModality">
+ <widget class="QDockWidget" name="OsmDockWidget" >
+ <property name="windowModality" >
<enum>Qt::NonModal</enum>
</property>
- <property name="enabled">
+ <property name="enabled" >
<bool>true</bool>
</property>
- <property name="geometry">
+ <property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
@@ -16,295 +15,295 @@
<height>776</height>
</rect>
</property>
- <property name="sizePolicy">
- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="minimumSize">
+ <property name="minimumSize" >
<size>
<width>261</width>
<height>357</height>
</size>
</property>
- <property name="maximumSize">
+ <property name="maximumSize" >
<size>
- <width>524287</width>
- <height>524287</height>
+ <width>16777215</width>
+ <height>16777215</height>
</size>
</property>
- <property name="windowTitle">
+ <property name="windowTitle" >
<string>OSM Feature</string>
</property>
- <widget class="QWidget" name="dockWidgetContents">
- <layout class="QVBoxLayout">
+ <widget class="QWidget" name="dockWidgetContents" >
+ <layout class="QVBoxLayout" >
<item>
- <layout class="QHBoxLayout">
- <property name="spacing">
+ <layout class="QHBoxLayout" >
+ <property name="spacing" >
<number>1</number>
</property>
- <property name="rightMargin">
+ <property name="rightMargin" >
<number>0</number>
</property>
<item>
- <widget class="QToolButton" name="dummyButton">
- <property name="minimumSize">
+ <widget class="QToolButton" name="dummyButton" >
+ <property name="minimumSize" >
<size>
<width>1</width>
<height>25</height>
</size>
</property>
- <property name="maximumSize">
+ <property name="maximumSize" >
<size>
<width>1</width>
<height>27</height>
</size>
</property>
- <property name="focusPolicy">
+ <property name="focusPolicy" >
<enum>Qt::NoFocus</enum>
</property>
- <property name="text">
+ <property name="text" >
<string>...</string>
</property>
- <property name="checkable">
+ <property name="checkable" >
<bool>true</bool>
</property>
</widget>
</item>
<item>
- <widget class="QToolButton" name="identifyButton">
- <property name="minimumSize">
+ <widget class="QToolButton" name="identifyButton" >
+ <property name="minimumSize" >
<size>
<width>26</width>
<height>25</height>
</size>
</property>
- <property name="maximumSize">
+ <property name="maximumSize" >
<size>
<width>25</width>
<height>26</height>
</size>
</property>
- <property name="focusPolicy">
+ <property name="focusPolicy" >
<enum>Qt::NoFocus</enum>
</property>
- <property name="toolTip">
+ <property name="toolTip" >
<string>Identify object</string>
</property>
- <property name="statusTip">
+ <property name="statusTip" >
<string>Identify object</string>
</property>
- <property name="whatsThis">
+ <property name="whatsThis" >
<string>Identify object</string>
</property>
- <property name="text">
+ <property name="text" >
<string>...</string>
</property>
- <property name="checkable">
+ <property name="checkable" >
<bool>true</bool>
</property>
</widget>
</item>
<item>
- <widget class="QToolButton" name="moveButton">
- <property name="minimumSize">
+ <widget class="QToolButton" name="moveButton" >
+ <property name="minimumSize" >
<size>
<width>26</width>
<height>25</height>
</size>
</property>
- <property name="maximumSize">
+ <property name="maximumSize" >
<size>
<width>25</width>
<height>26</height>
</size>
</property>
- <property name="focusPolicy">
+ <property name="focusPolicy" >
<enum>Qt::NoFocus</enum>
</property>
- <property name="toolTip">
+ <property name="toolTip" >
<string>Move object</string>
</property>
- <property name="text">
+ <property name="text" >
<string>...</string>
</property>
- <property name="checkable">
+ <property name="checkable" >
<bool>true</bool>
</property>
</widget>
</item>
<item>
- <widget class="QToolButton" name="createPointButton">
- <property name="minimumSize">
+ <widget class="QToolButton" name="createPointButton" >
+ <property name="minimumSize" >
<size>
<width>26</width>
<height>25</height>
</size>
</property>
- <property name="maximumSize">
+ <property name="maximumSize" >
<size>
<width>25</width>
<height>26</height>
</size>
</property>
- <property name="focusPolicy">
+ <property name="focusPolicy" >
<enum>Qt::NoFocus</enum>
</property>
- <property name="toolTip">
+ <property name="toolTip" >
<string>Create point</string>
</property>
- <property name="text">
+ <property name="text" >
<string>...</string>
</property>
- <property name="checkable">
+ <property name="checkable" >
<bool>true</bool>
</property>
</widget>
</item>
<item>
- <widget class="QToolButton" name="createLineButton">
- <property name="minimumSize">
+ <widget class="QToolButton" name="createLineButton" >
+ <property name="minimumSize" >
<size>
<width>26</width>
<height>25</height>
</size>
</property>
- <property name="focusPolicy">
+ <property name="focusPolicy" >
<enum>Qt::NoFocus</enum>
</property>
- <property name="toolTip">
+ <property name="toolTip" >
<string>Create line</string>
</property>
- <property name="text">
+ <property name="text" >
<string>...</string>
</property>
- <property name="checkable">
+ <property name="checkable" >
<bool>true</bool>
</property>
</widget>
</item>
<item>
- <widget class="QToolButton" name="createPolygonButton">
- <property name="minimumSize">
+ <widget class="QToolButton" name="createPolygonButton" >
+ <property name="minimumSize" >
<size>
<width>26</width>
<height>25</height>
</size>
</property>
- <property name="maximumSize">
+ <property name="maximumSize" >
<size>
<width>25</width>
<height>26</height>
</size>
</property>
- <property name="focusPolicy">
+ <property name="focusPolicy" >
<enum>Qt::NoFocus</enum>
</property>
- <property name="toolTip">
+ <property name="toolTip" >
<string>Create polygon</string>
</property>
- <property name="text">
+ <property name="text" >
<string>...</string>
</property>
- <property name="checkable">
+ <property name="checkable" >
<bool>true</bool>
</property>
</widget>
</item>
<item>
- <widget class="QToolButton" name="createRelationButton">
- <property name="minimumSize">
+ <widget class="QToolButton" name="createRelationButton" >
+ <property name="minimumSize" >
<size>
<width>26</width>
<height>25</height>
</size>
</property>
- <property name="maximumSize">
+ <property name="maximumSize" >
<size>
<width>25</width>
<height>26</height>
</size>
</property>
- <property name="focusPolicy">
+ <property name="focusPolicy" >
<enum>Qt::NoFocus</enum>
</property>
- <property name="toolTip">
+ <property name="toolTip" >
<string>Create relation</string>
</property>
- <property name="text">
+ <property name="text" >
<string>...</string>
</property>
- <property name="checkable">
+ <property name="checkable" >
<bool>true</bool>
</property>
</widget>
</item>
<item>
- <widget class="QToolButton" name="undoButton">
- <property name="maximumSize">
+ <widget class="QToolButton" name="undoButton" >
+ <property name="maximumSize" >
<size>
<width>25</width>
<height>26</height>
</size>
</property>
- <property name="toolTip">
+ <property name="toolTip" >
<string>Undo</string>
</property>
- <property name="statusTip">
+ <property name="statusTip" >
<string>Undo</string>
</property>
- <property name="whatsThis">
+ <property name="whatsThis" >
<string>Undo</string>
</property>
- <property name="text">
+ <property name="text" >
<string>...</string>
</property>
</widget>
</item>
<item>
- <widget class="QToolButton" name="redoButton">
- <property name="maximumSize">
+ <widget class="QToolButton" name="redoButton" >
+ <property name="maximumSize" >
<size>
<width>25</width>
<height>26</height>
</size>
</property>
- <property name="toolTip">
+ <property name="toolTip" >
<string>Redo</string>
</property>
- <property name="statusTip">
+ <property name="statusTip" >
<string>Redo</string>
</property>
- <property name="whatsThis">
+ <property name="whatsThis" >
<string>Redo</string>
</property>
- <property name="text">
+ <property name="text" >
<string>...</string>
</property>
</widget>
</item>
<item>
- <widget class="QToolButton" name="urDetailsButton">
- <property name="maximumSize">
+ <widget class="QToolButton" name="urDetailsButton" >
+ <property name="maximumSize" >
<size>
<width>25</width>
<height>26</height>
</size>
</property>
- <property name="toolTip">
+ <property name="toolTip" >
<string>Show/Hide OSM Edit History</string>
</property>
- <property name="statusTip">
+ <property name="statusTip" >
<string>Show/Hide OSM Edit History</string>
</property>
- <property name="whatsThis">
+ <property name="whatsThis" >
<string>Show/Hide OSM Edit History</string>
</property>
- <property name="text">
+ <property name="text" >
<string>...</string>
</property>
- <property name="checkable">
+ <property name="checkable" >
<bool>true</bool>
</property>
</widget>
@@ -312,97 +311,100 @@
</layout>
</item>
<item>
- <widget class="QGroupBox" name="featInfoBox">
- <property name="enabled">
+ <widget class="QGroupBox" name="featInfoBox" >
+ <property name="enabled" >
<bool>true</bool>
</property>
- <property name="minimumSize">
+ <property name="minimumSize" >
<size>
<width>0</width>
<height>95</height>
</size>
</property>
- <property name="maximumSize">
+ <property name="maximumSize" >
<size>
<width>16777215</width>
<height>95</height>
</size>
</property>
- <property name="title">
+ <property name="title" >
<string>Feature:</string>
</property>
- <layout class="QVBoxLayout">
- <property name="spacing">
+ <layout class="QVBoxLayout" >
+ <property name="spacing" >
<number>0</number>
</property>
- <property name="leftMargin">
+ <property name="leftMargin" >
<number>18</number>
</property>
- <property name="topMargin">
+ <property name="topMargin" >
<number>4</number>
</property>
- <property name="rightMargin">
+ <property name="rightMargin" >
<number>3</number>
</property>
- <property name="bottomMargin">
+ <property name="bottomMargin" >
<number>6</number>
</property>
<item>
- <layout class="QGridLayout">
- <property name="spacing">
+ <layout class="QGridLayout" >
+ <property name="horizontalSpacing" >
<number>0</number>
</property>
- <item row="0" column="0">
- <widget class="QLabel" name="label">
- <property name="text">
+ <property name="verticalSpacing" >
+ <number>0</number>
+ </property>
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label" >
+ <property name="text" >
<string>TYPE, ID:</string>
</property>
</widget>
</item>
- <item row="1" column="0">
- <widget class="QLabel" name="label_4">
- <property name="text">
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_4" >
+ <property name="text" >
<string>CREATED:</string>
</property>
</widget>
</item>
- <item row="2" column="0">
- <widget class="QLabel" name="label_5">
- <property name="text">
+ <item row="2" column="0" >
+ <widget class="QLabel" name="label_5" >
+ <property name="text" >
<string>USER:</string>
</property>
</widget>
</item>
- <item row="0" column="1">
- <widget class="QLabel" name="typeIdLabel">
- <property name="text">
+ <item row="0" column="1" >
+ <widget class="QLabel" name="typeIdLabel" >
+ <property name="text" >
<string>unknown</string>
</property>
</widget>
</item>
- <item row="1" column="1">
- <widget class="QLabel" name="createdLabel">
- <property name="text">
+ <item row="1" column="1" >
+ <widget class="QLabel" name="createdLabel" >
+ <property name="text" >
<string>unknown</string>
</property>
</widget>
</item>
- <item row="2" column="1">
- <widget class="QLabel" name="userLabel">
- <property name="text">
+ <item row="2" column="1" >
+ <widget class="QLabel" name="userLabel" >
+ <property name="text" >
<string>unknown</string>
</property>
</widget>
</item>
- <item row="2" column="2">
- <widget class="QToolButton" name="removeButton">
- <property name="maximumSize">
+ <item row="2" column="2" >
+ <widget class="QToolButton" name="removeButton" >
+ <property name="maximumSize" >
<size>
<width>25</width>
<height>25</height>
</size>
</property>
- <property name="text">
+ <property name="text" >
<string>...</string>
</property>
</widget>
@@ -413,66 +415,66 @@
</widget>
</item>
<item>
- <widget class="QTabWidget" name="propRelBox">
- <property name="minimumSize">
+ <widget class="QTabWidget" name="propRelBox" >
+ <property name="minimumSize" >
<size>
<width>0</width>
<height>175</height>
</size>
</property>
- <property name="maximumSize">
+ <property name="maximumSize" >
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
- <property name="tabPosition">
+ <property name="tabPosition" >
<enum>QTabWidget::North</enum>
</property>
- <property name="tabShape">
+ <property name="tabShape" >
<enum>QTabWidget::Rounded</enum>
</property>
- <property name="currentIndex">
- <number>0</number>
+ <property name="currentIndex" >
+ <number>1</number>
</property>
- <widget class="QWidget" name="Properties">
- <attribute name="title">
+ <widget class="QWidget" name="Properties" >
+ <attribute name="title" >
<string>Properties</string>
</attribute>
- <layout class="QVBoxLayout">
+ <layout class="QVBoxLayout" >
<item>
- <widget class="QTableWidget" name="tagsTableWidget">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <widget class="QTableWidget" name="tagTable" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="minimumSize">
+ <property name="minimumSize" >
<size>
<width>205</width>
<height>100</height>
</size>
</property>
- <property name="maximumSize">
+ <property name="maximumSize" >
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
- <property name="frameShape">
+ <property name="frameShape" >
<enum>QFrame::Box</enum>
</property>
</widget>
</item>
<item>
- <layout class="QHBoxLayout">
+ <layout class="QHBoxLayout" >
<item>
<spacer>
- <property name="orientation">
+ <property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
- <property name="sizeHint" stdset="0">
+ <property name="sizeHint" >
<size>
<width>40</width>
<height>20</height>
@@ -481,8 +483,8 @@
</spacer>
</item>
<item>
- <widget class="QToolButton" name="deleteTagsButton">
- <property name="text">
+ <widget class="QToolButton" name="deleteTagsButton" >
+ <property name="text" >
<string>...</string>
</property>
</widget>
@@ -491,139 +493,139 @@
</item>
</layout>
</widget>
- <widget class="QWidget" name="Relations">
- <attribute name="title">
+ <widget class="QWidget" name="Relations" >
+ <attribute name="title" >
<string>Relations</string>
</attribute>
- <layout class="QVBoxLayout">
+ <layout class="QVBoxLayout" >
<item>
- <layout class="QHBoxLayout">
+ <layout class="QHBoxLayout" >
<item>
- <widget class="QListWidget" name="relListWidget">
- <property name="enabled">
+ <widget class="QListWidget" name="relListWidget" >
+ <property name="enabled" >
<bool>false</bool>
</property>
- <property name="minimumSize">
+ <property name="minimumSize" >
<size>
<width>0</width>
<height>60</height>
</size>
</property>
- <property name="maximumSize">
+ <property name="maximumSize" >
<size>
<width>16777215</width>
<height>104</height>
</size>
</property>
- <property name="frameShape">
+ <property name="frameShape" >
<enum>QFrame::Box</enum>
</property>
</widget>
</item>
<item>
- <layout class="QVBoxLayout">
+ <layout class="QVBoxLayout" >
<item>
- <widget class="QPushButton" name="addRelationButton">
- <property name="enabled">
+ <widget class="QPushButton" name="addRelationButton" >
+ <property name="enabled" >
<bool>false</bool>
</property>
- <property name="minimumSize">
+ <property name="minimumSize" >
<size>
<width>26</width>
<height>25</height>
</size>
</property>
- <property name="maximumSize">
+ <property name="maximumSize" >
<size>
<width>26</width>
<height>25</height>
</size>
</property>
- <property name="toolTip">
+ <property name="toolTip" >
<string>Add new relation</string>
</property>
- <property name="statusTip">
+ <property name="statusTip" >
<string>Add new relation</string>
</property>
- <property name="whatsThis">
+ <property name="whatsThis" >
<string>Add new relation</string>
</property>
- <property name="text">
+ <property name="text" >
<string>A</string>
</property>
</widget>
</item>
<item>
- <widget class="QPushButton" name="editRelationButton">
- <property name="enabled">
+ <widget class="QPushButton" name="editRelationButton" >
+ <property name="enabled" >
<bool>false</bool>
</property>
- <property name="minimumSize">
+ <property name="minimumSize" >
<size>
<width>26</width>
<height>25</height>
</size>
</property>
- <property name="maximumSize">
+ <property name="maximumSize" >
<size>
<width>26</width>
<height>25</height>
</size>
</property>
- <property name="toolTip">
+ <property name="toolTip" >
<string>Edit selected relation</string>
</property>
- <property name="statusTip">
+ <property name="statusTip" >
<string>Edit selected relation</string>
</property>
- <property name="whatsThis">
+ <property name="whatsThis" >
<string>Edit selected relation</string>
</property>
- <property name="text">
+ <property name="text" >
<string>E</string>
</property>
</widget>
</item>
<item>
- <widget class="QPushButton" name="removeRelationButton">
- <property name="enabled">
+ <widget class="QPushButton" name="removeRelationButton" >
+ <property name="enabled" >
<bool>false</bool>
</property>
- <property name="minimumSize">
+ <property name="minimumSize" >
<size>
<width>26</width>
<height>25</height>
</size>
</property>
- <property name="maximumSize">
+ <property name="maximumSize" >
<size>
<width>26</width>
<height>25</height>
</size>
</property>
- <property name="toolTip">
+ <property name="toolTip" >
<string>Remove selected relation</string>
</property>
- <property name="statusTip">
+ <property name="statusTip" >
<string>Remove selected relation</string>
</property>
- <property name="whatsThis">
+ <property name="whatsThis" >
<string>Remove selected relation</string>
</property>
- <property name="text">
+ <property name="text" >
<string>R</string>
</property>
</widget>
</item>
<item>
<spacer>
- <property name="orientation">
+ <property name="orientation" >
<enum>Qt::Vertical</enum>
</property>
- <property name="sizeType">
+ <property name="sizeType" >
<enum>QSizePolicy::Minimum</enum>
</property>
- <property name="sizeHint" stdset="0">
+ <property name="sizeHint" >
<size>
<width>26</width>
<height>0</height>
@@ -636,85 +638,85 @@
</layout>
</item>
<item>
- <widget class="QLabel" name="label_2">
- <property name="text">
+ <widget class="QLabel" name="label_2" >
+ <property name="text" >
<string>Relation tags:</string>
</property>
</widget>
</item>
<item>
- <widget class="QTreeWidget" name="relTagsTreeWidget">
- <property name="enabled">
+ <widget class="QTreeWidget" name="relTagsTree" >
+ <property name="enabled" >
<bool>false</bool>
</property>
- <property name="minimumSize">
+ <property name="minimumSize" >
<size>
<width>0</width>
<height>115</height>
</size>
</property>
- <property name="maximumSize">
+ <property name="maximumSize" >
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
- <property name="cursor" stdset="0">
+ <property name="cursor" stdset="0" >
<cursorShape>ForbiddenCursor</cursorShape>
</property>
- <property name="contextMenuPolicy">
+ <property name="contextMenuPolicy" >
<enum>Qt::NoContextMenu</enum>
</property>
- <property name="frameShape">
+ <property name="frameShape" >
<enum>QFrame::Box</enum>
</property>
- <property name="frameShadow">
+ <property name="frameShadow" >
<enum>QFrame::Sunken</enum>
</property>
- <property name="indentation">
+ <property name="indentation" >
<number>0</number>
</property>
- <property name="rootIsDecorated">
+ <property name="rootIsDecorated" >
<bool>false</bool>
</property>
- <property name="itemsExpandable">
+ <property name="itemsExpandable" >
<bool>false</bool>
</property>
- <property name="columnCount">
+ <property name="columnCount" >
<number>1</number>
</property>
<column>
- <property name="text">
+ <property name="text" >
<string>1</string>
</property>
</column>
</widget>
</item>
<item>
- <widget class="QLabel" name="label_3">
- <property name="text">
+ <widget class="QLabel" name="label_3" >
+ <property name="text" >
<string>Relation members:</string>
</property>
</widget>
</item>
<item>
- <widget class="QListWidget" name="relMembersList">
- <property name="enabled">
+ <widget class="QListWidget" name="relMembersList" >
+ <property name="enabled" >
<bool>false</bool>
</property>
- <property name="minimumSize">
+ <property name="minimumSize" >
<size>
<width>0</width>
<height>115</height>
</size>
</property>
- <property name="maximumSize">
+ <property name="maximumSize" >
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
- <property name="frameShape">
+ <property name="frameShape" >
<enum>QFrame::Box</enum>
</property>
</widget>
More information about the QGIS-commit
mailing list