root/branch/twedit/Configuration.py

Revision 1591, 5.0 kB (checked in by mswat, 16 months ago)

converted print statements into dbgMsg with switchable debug output option

Line 
1from PyQt4.QtCore import *
2from PyQt4.QtGui import *
3from PyQt4.Qsci import *
4
5from PyQt4 import QtCore, QtGui
6from Messaging import stdMsg, dbgMsg, errMsg, setDebugging
7(ORGANIZATION, APPLICATION) = ("SwatInternationalProductions", "Twedit")
8
9class Configuration:
10    def __init__(self):
11
12        #default settings
13        self.defaultConfigs={}
14        self.defaultConfigs["TabSpaces"]=4
15        self.defaultConfigs["UseTabSpaces"]=True
16        self.defaultConfigs["DisplayLineNumbers"]=True
17        self.defaultConfigs["FoldText"]=True
18        self.defaultConfigs["TabGuidelines"]=True
19        self.defaultConfigs["DisplayWhitespace"]=False
20        self.defaultConfigs["DisplayEOL"]=False
21        self.defaultConfigs["WrapLines"]=False
22        self.defaultConfigs["ShowWrapSymbol"]=False
23        self.defaultConfigs["RestoreTabsOnStartup"]=True       
24        self.defaultConfigs["InitialSize"]=QSize(600,600)
25        self.defaultConfigs["InitialPosition"]=QPoint(0,0)
26        self.defaultConfigs["ListOfOpenFiles"]=QStringList()
27        self.defaultConfigs["FRFindHistory"]=QStringList() #FR stands for Find & Replace
28        self.defaultConfigs["FRReplaceHistory"]=QStringList()
29        self.defaultConfigs["FRFiltersHistory"]=QStringList()
30        self.defaultConfigs["FRDirectoryHistory"]=QStringList()
31        self.defaultConfigs["FRInSelection"]=False
32        self.defaultConfigs["FRInAllSubfolders"]=False
33        self.defaultConfigs["FRSyntaxIndex"]=0
34        self.defaultConfigs["FRTransparencyEnable"]=True
35        self.defaultConfigs["FROnLosingFocus"]=True       
36        self.defaultConfigs["FRAlways"]=False
37        self.defaultConfigs["FROpacity"]=75
38        self.defaultConfigs["ZoomRange"]=0
39        self.defaultConfigs["CurrentTabIndex"]=-1 # index of the current tab  - 1 means we should make last open tab current
40       
41        self.settings = QSettings(QSettings.NativeFormat, QSettings.UserScope, ORGANIZATION, APPLICATION)
42        self.initSyncSettings()
43        self.updatedConfigs={}
44       
45
46       
47    # def configuration(self,_key):
48        # return self.configs[_key]
49
50    def setting(self,_key):
51        if _key in ["UseTabSpaces","DisplayLineNumbers","FoldText","TabGuidelines","DisplayWhitespace","DisplayEOL","WrapLines","ShowWrapSymbol",\
52        "RestoreTabsOnStartup","FRInSelection","FRInAllSubfolders","FRTransparencyEnable","FROnLosingFocus","FRAlways"]: # Boolean values
53            val = self.settings.value(_key)
54            if val.isValid():
55                return val.toBool()
56            else:
57                return self.defaultConfigs[_key]
58        elif _key in ["TabSpaces","ZoomRange","FRSyntaxIndex","FROpacity","CurrentTabIndex"]: # integer values
59            val = self.settings.value(_key)
60            if val.isValid():
61                return val.toInt()[0] # toInt returns tuple and first element of if is the integer the second one is flag
62            else:
63                return self.defaultConfigs[_key]
64               
65        elif _key in ["InitialSize"]: # QSize values
66            val = self.settings.value(_key)
67            if val.isValid():
68                return val.toSize()
69            else:
70                return self.defaultConfigs[_key]                             
71
72        elif _key in ["InitialPosition"]: # QPoint values
73            val = self.settings.value(_key)
74            if val.isValid():
75                return val.toPoint()
76            else:
77                return self.defaultConfigs[_key]
78               
79        elif _key in ["ListOfOpenFiles","FRFindHistory","FRReplaceHistory","FRFiltersHistory","FRDirectoryHistory"]: # QStringList values
80            val = self.settings.value(_key)
81            if val.isValid():
82                return val.toStringList()
83            else:
84                return self.defaultConfigs[_key]
85
86               
87    def setSetting(self,_key,_value):
88        if _key in ["UseTabSpaces","DisplayLineNumbers","FoldText","TabGuidelines","DisplayWhitespace","DisplayEOL","WrapLines","ShowWrapSymbol",\
89        "RestoreTabsOnStartup","FRInSelection","FRInAllSubfolders","FRTransparencyEnable","FROnLosingFocus","FRAlways"]: # Boolean values
90            self.settings.setValue(_key,QVariant(_value))
91           
92        elif _key in ["TabSpaces","ZoomRange","FRSyntaxIndex","FROpacity","CurrentTabIndex"]: # integer values
93            self.settings.setValue(_key,_value)
94           
95        elif _key in ["InitialSize","InitialPosition","ListOfOpenFiles","FRSyntax","FRFindHistory","FRReplaceHistory","FRFiltersHistory","FRDirectoryHistory"]: # QSize, QPoint,QStringList , QString values
96            self.settings.setValue(_key,QVariant(_value))
97        else:
98            dbgMsg("Wrong format of configuration option:",_key,":",_value)
99           
100    def initSyncSettings(self):
101        for key in self.defaultConfigs.keys():
102           
103            val = self.settings.value(key)
104            if not val.isValid():
105                self.setSetting(key,self.defaultConfigs[key])
106               
107       
108           
Note: See TracBrowser for help on using the browser.