På QGIS Sveriges kanal på Slack så dök frågan upp om det gick att skicka med en QGIS inställning om att ignorera teckenkodning för shapefiler i en projektfil.
Vid första anblick så verkade det inte alls fungera, men efter lite envist efterforskande så…
Inställningar i QGIS finns på programnivå, vilket inkluderar inställningen för att ignorera teckenkodning för shapefiler:
Dessa sparas lokalt på datorn och skickas inte med i projektfiler. Inställningarna går dock att läsa och ändra via Python konsolen, så lösningen heter Python Makro.
Det går att definiera kod som körs när projektfilen öppnas, sparas eller stängs ner. Denna kod, till skillnad från QGIS programinställningar, lagras i projektfilen och flyttas därmed med när projektfilen öppnas på en annan plats.
from PyQt4.QtCore import QSettings def openProject(): s = QSettings() s.setValue('/qgis/ignoreShapeEncoding', False) def saveProject(): pass def closeProject(): pass
Det gäller dock att man ser till att makrot också körs när projektet öppnas.
I QGIS så kommer det upp en varning av det slag som visas i bilden ovan, där man kan välja ”Aktivera makron”, vilket är en förutsättning för att skriptet skall köras.
När jag kör detta på Linux med QGIS 2.18.4 så hjälper det inte att klicka på ”aktivera” i dialogen. Skriptet körs inte i alla fall. Det enda sättet är att ställa in ”Endast för den här sessionen” eller ”Alltid” i inställningarna för att ”Aktivera makron” i systeminställningarna.
Om det fungerar på samma sätt i Windows eller OS X får ni själva kontrollera. När jag provar med QGIS ”Master” (3.0) så fungerar det som jag tycker att det borde när ”aktivera” väljs i varningsrutan, så det är säkert bara en bugg i 2.18.4.