00001 __version__ = "$Revision: 2.6 $" 00002 00003 from re import match 00004 from qt import QObject,SIGNAL,Qt,QColor,QColorGroup,QPalette 00005 00006 class userAppLoader(QObject): 00007 def __init__(self, importbutton, loadbutton, rc, usrmodule): 00008 QObject.__init__(self) 00009 self.__importbutton = importbutton 00010 self.__loadbutton = loadbutton 00011 self.rc = rc 00012 self.usrmodule = usrmodule 00013 self.palettes = palettes() 00014 if importbutton is not None: 00015 self.connect(importbutton,SIGNAL("clicked()"),self.reimport) 00016 if loadbutton is not None: 00017 self.connect(loadbutton,SIGNAL("clicked()"),self.load) 00018 for key in self.__dict__.keys(): 00019 if match('.+_state', key) is not None: 00020 state = self.__dict__[key] 00021 state.setEnabled(False) 00022 state.setChecked(True) 00023 state.setPalette(self.palettes.white) 00024 00025 def reimport(self): 00026 self.usrmodule.reload() 00027 if self.usrmodule.module is not None: self.load() 00028 00029 def load(self): 00030 self.rc.loadModule(self.usrmodule.module) 00031 self.rc.panels()['Global'].getUserApp().loaded(self) 00032 00033 def loaded(self): 00034 self.__loadbutton.setDown(True) 00035 00036 def unloaded(self): 00037 self.__loadbutton.setDown(False) 00038 00039 def isChecked(self, module): 00040 selname = '%s_sel' %module 00041 sel = self.__dict__[selname] 00042 return self.rc.execGUImethod(sel.isChecked) 00043 00044 def setState(self, module, failed): 00045 statename = '%s_state' %module 00046 state = self.__dict__[statename] 00047 if failed: 00048 self.rc.execGUImethodNR(state.setPalette, self.palettes.red) 00049 else: 00050 self.rc.execGUImethodNR(state.setPalette, self.palettes.green) 00051 00052 def clearState(self, module): 00053 statename = '%s_state' %module 00054 state = self.__dict__[statename] 00055 self.rc.execGUImethodNR(state.setPalette, self.palettes.white) 00056 00057 def updateSchema(self): 00058 pass 00059 00060 00061 class palettes(object): 00062 def __init__(self): 00063 cg = QColorGroup() 00064 cg.setColor(QColorGroup.Foreground,Qt.black) 00065 cg.setColor(QColorGroup.Button,Qt.white) 00066 cg.setColor(QColorGroup.Light,Qt.white) 00067 cg.setColor(QColorGroup.Midlight,Qt.white) 00068 cg.setColor(QColorGroup.Dark,Qt.white) 00069 cg.setColor(QColorGroup.Mid,Qt.white) 00070 cg.setColor(QColorGroup.Text,Qt.white) 00071 cg.setColor(QColorGroup.BrightText,Qt.white) 00072 cg.setColor(QColorGroup.ButtonText,Qt.black) 00073 cg.setColor(QColorGroup.Base,Qt.white) 00074 cg.setColor(QColorGroup.Background,QColor(212,208,200)) 00075 cg.setColor(QColorGroup.Shadow,Qt.black) 00076 cg.setColor(QColorGroup.Highlight,QColor(0,0,128)) 00077 cg.setColor(QColorGroup.HighlightedText,Qt.white) 00078 00079 self.white = QPalette(cg, cg, cg) 00080 self.red = QPalette.copy(self.white) 00081 self.green = QPalette.copy(self.white) 00082 00083 self.red.active().setColor(QColorGroup.Text,Qt.red) 00084 self.red.active().setColor(QColorGroup.Button,Qt.red) 00085 self.red.inactive().setColor(QColorGroup.Text,Qt.red) 00086 self.red.inactive().setColor(QColorGroup.Button,Qt.red) 00087 self.red.disabled().setColor(QColorGroup.Text,Qt.red) 00088 self.red.disabled().setColor(QColorGroup.Button,Qt.red) 00089 00090 self.green.active().setColor(QColorGroup.Text,Qt.green) 00091 self.green.active().setColor(QColorGroup.Button,Qt.green) 00092 self.green.inactive().setColor(QColorGroup.Text,Qt.green) 00093 self.green.inactive().setColor(QColorGroup.Button,Qt.green) 00094 self.green.disabled().setColor(QColorGroup.Text,Qt.green) 00095 self.green.disabled().setColor(QColorGroup.Button,Qt.green)