def createTimeLayer(self, row): """create a TimeLayer from options set in the table row""" layer = QgsMapLayerRegistry.instance().mapLayer( self.optionsDialog.tableWidget.item(row, 4).text()) isEnabled = (self.optionsDialog.tableWidget.item( row, 3).checkState() == Qt.Checked) # offset offset = int(self.optionsDialog.tableWidget.item( row, 6).text()) # currently only seconds! # start time startTimeAttribute = self.optionsDialog.tableWidget.item(row, 1).text() # end time (optional) if self.optionsDialog.tableWidget.item(row, 2).text() == "": endTimeAttribute = startTimeAttribute else: endTimeAttribute = self.optionsDialog.tableWidget.item(row, 2).text() # time format timeFormat = self.optionsDialog.tableWidget.item(row, 5).text() try: timeLayer = TimeLayerFactory.get_timelayer_class_from_layer(layer)( layer, startTimeAttribute, endTimeAttribute, isEnabled, timeFormat, offset, self.iface) except InvalidTimeLayerError, e: QMessageBox.information( self.iface.mainWindow(), 'Error', 'An error occured while trying to add layer ' + layer.name() + ' to TimeManager.\n' + e.value) raise InvalidTimeLayerError(e)
def restoreTimeLayers(self, value): """restore all time layers""" #FIXME What is value here? if value: layerInfo = value if len(layerInfo): self.guiControl.enableAnimationExport() for l in layerInfo: # for every layer entry l = l.split(';') layer = QgsMapLayerRegistry.instance().mapLayer( l[0]) # get the layer if not layer: continue timeLayerClass = TimeLayerFactory.get_timelayer_class_from_layer( layer) if timeLayerClass == TimeVectorLayer: layer.setSubsetString( l[1] ) # restore the original subset string, only available for vector layers! startTimeAttribute = l[2] endTimeAttribute = l[3] isEnabled = l[4] timeFormat = l[5] try: offset = l[6] except IndexError: # old versions didn't have an offset option offset = 0 try: # here we use the previously determined class timeLayer = timeLayerClass(layer, startTimeAttribute, endTimeAttribute, isEnabled, timeFormat, offset) except InvalidTimeLayerError, e: self.showMessage( 'An error occured while trying to add layer ' + layer.name() + ' to \ TimeManager.\n' + e.value) return self.timeLayerManager.registerTimeLayer(timeLayer) self.guiControl.showLabel = True self.guiControl.refreshMapCanvas('restoreTimeLayer')