diff -r fcd344deae84 -r 75fe73597273 plugins/canfestival/canfestival.py --- a/plugins/canfestival/canfestival.py Tue Oct 27 16:32:54 2009 +0100 +++ b/plugins/canfestival/canfestival.py Mon Nov 02 15:38:49 2009 +0100 @@ -100,16 +100,31 @@ _View = None def _OpenView(self): if not self._View: - def _onclose(): - self._View = None - def _onsave(): - self.GetPlugRoot().SaveProject() - self._View = objdictedit(self.GetPlugRoot().AppFrame, self) - # TODO redefine BusId when IEC channel change - self._View.SetBusId(self.GetCurrentLocation()) - self._View._onclose = _onclose - self._View._onsave = _onsave - self._View.Show() + open_objdictedit = True + has_permissions = self.GetPlugRoot().CheckProjectPathPerm() + if not has_permissions: + dialog = wx.MessageDialog(self.GetPlugRoot().AppFrame, + _("You don't have write permissions.\nOpen ObjDictEdit anyway ?"), + _("Open ObjDictEdit"), + wx.YES_NO|wx.ICON_QUESTION) + open_objdictedit = dialog.ShowModal() == wx.ID_YES + dialog.Destroy() + if open_objdictedit: + def _onclose(): + self._View = None + if has_permissions: + def _onsave(): + self.GetPlugRoot().SaveProject() + else: + def _onsave(): + pass + + self._View = objdictedit(self.GetPlugRoot().AppFrame, self) + # TODO redefine BusId when IEC channel change + self._View.SetBusId(self.GetCurrentLocation()) + self._View._onclose = _onclose + self._View._onsave = _onsave + self._View.Show() PluginMethods = [ {"bitmap" : os.path.join("images", "NetworkEdit"), @@ -185,16 +200,30 @@ _View = None def _OpenView(self): if not self._View: - def _onclose(): - self._View = None - def _onsave(): - self.GetPlugRoot().SaveProject() - self._View = networkedit(self.GetPlugRoot().AppFrame, self) - # TODO redefine BusId when IEC channel change - self._View.SetBusId(self.GetCurrentLocation()) - self._View._onclose = _onclose - self._View._onsave = _onsave - self._View.Show() + open_networkedit = True + has_permissions = self.GetPlugRoot().CheckProjectPathPerm() + if not has_permissions: + dialog = wx.MessageDialog(self.GetPlugRoot().AppFrame, + _("You don't have write permissions.\nOpen NetworkEdit anyway ?"), + _("Open NetworkEdit"), + wx.YES_NO|wx.ICON_QUESTION) + open_networkedit = dialog.ShowModal() == wx.ID_YES + dialog.Destroy() + if open_networkedit: + def _onclose(): + self._View = None + if has_permissions: + def _onsave(): + self.GetPlugRoot().SaveProject() + else: + def _onsave(): + pass + self._View = networkedit(self.GetPlugRoot().AppFrame, self) + # TODO redefine BusId when IEC channel change + self._View.SetBusId(self.GetCurrentLocation()) + self._View._onclose = _onclose + self._View._onsave = _onsave + self._View.Show() def _ShowMasterGenerated(self): buildpath = self._getBuildPath()