def runDockableMirror(self): from dockableMirrorMap import DockableMirrorMap wdg = DockableMirrorMap(self.iface.mainWindow(), self.iface) minsize = wdg.minimumSize() maxsize = wdg.maximumSize() self.setupDockWidget(wdg) self.addDockWidget(wdg) wdg.setMinimumSize(minsize) wdg.setMaximumSize(maxsize) if wdg.isFloating(): wdg.move(50, 50) # move the widget to the center
def onProjectLoaded(self): # restore mirrors? num, ok = QgsProject.instance().readNumEntry("DockableMirrorMap", "/numMirrors") if not ok or num <= 0: return # remove all mirrors self.removeDockableMirrors() mirror2lids = {} # load mirrors for i in range(num): if num >= 2: if i == 0: prevFlag = self.iface.mapCanvas().renderFlag() self.iface.mapCanvas().setRenderFlag(False) elif i == num - 1: self.iface.mapCanvas().setRenderFlag(True) from dockableMirrorMap import DockableMirrorMap dockwidget = DockableMirrorMap(self.iface.mainWindow(), self.iface) minsize = dockwidget.minimumSize() maxsize = dockwidget.maximumSize() # restore position floating, ok = QgsProject.instance().readBoolEntry("DockableMirrorMap", "/mirror%s/floating" % i) if ok: dockwidget.setFloating(floating) position, ok = QgsProject.instance().readEntry("DockableMirrorMap", "/mirror%s/position" % i) if ok: try: if floating: parts = position.split(" ") if len(parts) >= 2: dockwidget.move(int(parts[0]), int(parts[1])) else: dockwidget.setLocation(int(position)) except ValueError: pass # restore geometry dockwidget.setFixedSize(dockwidget.geometry().width(), dockwidget.geometry().height()) size, ok = QgsProject.instance().readEntry("DockableMirrorMap", "/mirror%s/size" % i) if ok: try: parts = size.split(" ") dockwidget.setFixedSize(int(parts[0]), int(parts[1])) except ValueError: pass scaleFactor, ok = QgsProject.instance().readDoubleEntry( "DockableMirrorMap", "/mirror%s/scaleFactor" % i, 1.0 ) if ok: dockwidget.getMirror().scaleFactor.setValue(scaleFactor) # get layer list layerIds, ok = QgsProject.instance().readListEntry("DockableMirrorMap", "/mirror%s/layers" % i) if ok: dockwidget.getMirror().setLayerSet(layerIds) self.addDockWidget(dockwidget) dockwidget.setMinimumSize(minsize) dockwidget.setMaximumSize(maxsize)
def runDockableMirror(self, title = None): from dockableMirrorMap import DockableMirrorMap wdg = DockableMirrorMap(self.iface.mainWindow(), self.iface, title) minsize = wdg.minimumSize() maxsize = wdg.maximumSize() self.setupDockWidget(wdg) self.addDockWidget(wdg) wdg.setMinimumSize(minsize) wdg.setMaximumSize(maxsize) if wdg.isFloating(): wdg.move(50, 50) # move the widget to the center # QObject.connect(wdg.mainWidget.canvas, SIGNAL( "extentsChanged()" ), wdg.mainWidget.mirror_extent_changed) # QObject.connect(wdg.mainWidget, SIGNAL("extentChanged( QgsRectangle )"), self.extentChanged ) return wdg
def onProjectLoaded(self): # restore mirrors? num, ok = QgsProject.instance().readNumEntry("DockableMirrorMap", "/numMirrors") if not ok or num <= 0: return # remove all mirrors self.removeDockableMirrors() mirror2lids = {} # load mirrors for i in range(num): if num >= 2: if i == 0: prevFlag = self.iface.mapCanvas().renderFlag() self.iface.mapCanvas().setRenderFlag(False) elif i == num-1: self.iface.mapCanvas().setRenderFlag(True) from dockableMirrorMap import DockableMirrorMap dockwidget = DockableMirrorMap(self.iface.mainWindow(), self.iface) minsize = dockwidget.minimumSize() maxsize = dockwidget.maximumSize() # restore position floating, ok = QgsProject.instance().readBoolEntry("DockableMirrorMap", "/mirror%s/floating" % i) if ok: dockwidget.setFloating( floating ) position, ok = QgsProject.instance().readEntry("DockableMirrorMap", "/mirror%s/position" % i) if ok: try: if floating: parts = position.split(" ") if len(parts) >= 2: dockwidget.move( int(parts[0]), int(parts[1]) ) else: dockwidget.setLocation( int(position) ) except ValueError: pass # restore geometry dockwidget.setFixedSize( dockwidget.geometry().width(), dockwidget.geometry().height() ) size, ok = QgsProject.instance().readEntry("DockableMirrorMap", "/mirror%s/size" % i) if ok: try: parts = size.split(" ") dockwidget.setFixedSize( int(parts[0]), int(parts[1]) ) except ValueError: pass scaleFactor, ok = QgsProject.instance().readDoubleEntry("DockableMirrorMap", "/mirror%s/scaleFactor" % i, 1.0) if ok: dockwidget.getMirror().scaleFactor.setValue( scaleFactor ) # get layer list layerIds, ok = QgsProject.instance().readListEntry("DockableMirrorMap", "/mirror%s/layers" % i) if ok: dockwidget.getMirror().setLayerSet( layerIds ) self.addDockWidget( dockwidget ) dockwidget.setMinimumSize(minsize) dockwidget.setMaximumSize(maxsize)