# HG changeset patch # User laurent # Date 1256552416 -3600 # Node ID 1a5471e81a931ec09094eef6591a1b113a531827 # Parent ea09f33ce7171f4867b2ad65e45175a6a855dc8c Adding support for asking for saving while trying to close a modified project in any case diff -r ea09f33ce717 -r 1a5471e81a93 Beremiz.py --- a/Beremiz.py Fri Oct 23 18:45:24 2009 +0200 +++ b/Beremiz.py Mon Oct 26 11:20:16 2009 +0100 @@ -483,29 +483,29 @@ infos = self.PluginRoot.ShowError(self.Log, (int(first_line), int(first_column)), (int(last_line), int(last_column))) - + + ## Function displaying an Error dialog in PLCOpenEditor. + # @return False if closing cancelled. + def CheckSaveBeforeClosing(self, title=_("Close Project")): + if self.PluginRoot.ProjectTestModified(): + dialog = wx.MessageDialog(self, + _("There are changes, do you want to save?"), + title, + wx.YES_NO|wx.CANCEL|wx.ICON_QUESTION) + answer = dialog.ShowModal() + dialog.Destroy() + if answer == wx.ID_YES: + self.PluginRoot.SaveProject() + elif answer == wx.ID_CANCEL: + return False + return True + def OnCloseFrame(self, event): - if self.PluginRoot is not None: - if self.PluginRoot.ProjectTestModified(): - dialog = wx.MessageDialog(self, - _("Save changes ?"), - _("Close Application"), - wx.YES_NO|wx.CANCEL|wx.ICON_QUESTION) - answer = dialog.ShowModal() - dialog.Destroy() - if answer == wx.ID_YES: - self.PluginRoot.SaveProject() - event.Skip() - elif answer == wx.ID_NO: - event.Skip() - return - else: - event.Veto() - return - - self.KillLocalRuntime() - - event.Skip() + if self.PluginRoot is None or self.CheckSaveBeforeClosing(_("Close Application")): + self.KillLocalRuntime() + event.Skip() + else: + event.Veto() def OnMoveWindow(self, event): self.GetBestSize() @@ -1300,6 +1300,9 @@ self.DebugVariablePanel.SetDataProducer(None) def OnNewProjectMenu(self, event): + if self.PluginRoot is not None and not self.CheckSaveBeforeClosing(): + return + if not self.Config.HasEntry("lastopenedfolder"): defaultpath = os.path.expanduser("~") else: @@ -1325,6 +1328,9 @@ self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU) def OnOpenProjectMenu(self, event): + if self.PluginRoot is not None and not self.CheckSaveBeforeClosing(): + return + if not self.Config.HasEntry("lastopenedfolder"): defaultpath = os.path.expanduser("~") else: @@ -1353,21 +1359,12 @@ dialog.Destroy() def OnCloseProjectMenu(self, event): - if self.PluginRoot is not None: - if self.PluginRoot.ProjectTestModified(): - dialog = wx.MessageDialog(self, - _("Save changes ?"), - _("Close Application"), - wx.YES_NO|wx.CANCEL|wx.ICON_QUESTION) - answer = dialog.ShowModal() - dialog.Destroy() - if answer == wx.ID_YES: - self.PluginRoot.SaveProject() - elif answer == wx.ID_CANCEL: - return - self.ResetView() - self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU) - self.RefreshAll() + if self.PluginRoot is not None and not self.CheckSaveBeforeClosing(): + return + + self.ResetView() + self._Refresh(TITLE, TOOLBAR, FILEMENU, EDITMENU) + self.RefreshAll() def OnSaveProjectMenu(self, event): if self.PluginRoot is not None: diff -r ea09f33ce717 -r 1a5471e81a93 i18n/Beremiz_fr_FR.po --- a/i18n/Beremiz_fr_FR.po Fri Oct 23 18:45:24 2009 +0200 +++ b/i18n/Beremiz_fr_FR.po Mon Oct 26 11:20:16 2009 +0100 @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-10-23 18:41+0200\n" -"PO-Revision-Date: 2009-10-23 18:42+0100\n" +"POT-Creation-Date: 2009-10-26 10:51+0100\n" +"PO-Revision-Date: 2009-10-26 10:51+0100\n" "Last-Translator: \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Beremiz.py:1460 +#: ../Beremiz.py:1457 #, python-format msgid "" "\n" @@ -48,7 +48,7 @@ msgid " generation failed !\n" msgstr ": la construction a échouée !\n" -#: ../Beremiz.py:1351 +#: ../Beremiz.py:1357 #, python-format msgid "\"%s\" folder is not a valid Beremiz project\n" msgstr "Le dossier \"%s\" ne contient pas de projet Beremiz valide\n" @@ -57,13 +57,13 @@ msgid "&Edit" msgstr "&Editer" +#: ../Beremiz.py:1445 +#: ../Beremiz.py:1447 #: ../Beremiz.py:1448 -#: ../Beremiz.py:1450 -#: ../Beremiz.py:1451 msgid ", " msgstr ", " -#: ../Beremiz.py:1446 +#: ../Beremiz.py:1443 msgid ". " msgstr ". " @@ -81,11 +81,11 @@ msgid "About" msgstr "A propos" -#: ../Beremiz.py:1395 +#: ../Beremiz.py:1392 msgid "About Beremiz" msgstr "A propos de Beremiz" -#: ../Beremiz.py:1418 +#: ../Beremiz.py:1415 msgid "Add Plugin" msgstr "Ajouter un plugin" @@ -205,8 +205,8 @@ msgid "Choose a directory to save project" msgstr "Choisissez un dossier où enregistrer le projet" -#: ../Beremiz.py:1308 -#: ../Beremiz.py:1333 +#: ../Beremiz.py:1311 +#: ../Beremiz.py:1339 msgid "Choose a project" msgstr "Choisissez un projet" @@ -234,12 +234,12 @@ msgid "Cleaning the build directory\n" msgstr "Répertoire de compilation en cours de nettoyage\n" -#: ../Beremiz.py:492 -#: ../Beremiz.py:1360 +#: ../Beremiz.py:504 msgid "Close Application" msgstr "Fermer l'application" #: ../Beremiz.py:301 +#: ../Beremiz.py:489 msgid "Close Project" msgstr "Fermer le projet" @@ -393,8 +393,8 @@ msgid "Enter the IP of the interface to bind" msgstr "Saisissez l'adresse IP de l'interface à lier" -#: ../Beremiz.py:1474 -#: ../Beremiz.py:1484 +#: ../Beremiz.py:1471 +#: ../Beremiz.py:1481 #: ../plugger.py:873 #: ../Beremiz_service.py:268 #: ../Beremiz_service.py:392 @@ -601,7 +601,7 @@ msgid "Page Setup" msgstr "Mise en page..." -#: ../Beremiz.py:1418 +#: ../Beremiz.py:1415 msgid "Please enter a name for plugin:" msgstr "Saisissez un nom pour le plugin :" @@ -659,7 +659,7 @@ msgid "Raw IEC code" msgstr "Ajout code IEC" -#: ../Beremiz.py:1428 +#: ../Beremiz.py:1425 msgid "Really delete plugin ?" msgstr "Voulez-vous réellement supprimer le plugin ?" @@ -675,7 +675,7 @@ msgid "Refresh\tCTRL+R" msgstr "Actualiser\tCTRL+R" -#: ../Beremiz.py:1428 +#: ../Beremiz.py:1425 msgid "Remove plugin" msgstr "Enlever le plugin" @@ -695,11 +695,6 @@ msgid "Save as\tCTRL+SHIFT+S" msgstr "Enregistrer sous...\tCTRL+SHIFT+S" -#: ../Beremiz.py:491 -#: ../Beremiz.py:1359 -msgid "Save changes ?" -msgstr "Enregistrer les changements ?" - #: ../discovery.py:81 msgid "Services available:" msgstr "Services disponibles:" @@ -766,6 +761,10 @@ msgid "Stopping debug\n" msgstr "Arrêt du débogage en cours\n" +#: ../Beremiz.py:492 +msgid "There are changes, do you want to save?" +msgstr "Le projet a été modifié, voulez-vous l'enregistrer ?" + #: ../Beremiz.py:374 msgid "Topology" msgstr "Topologie" @@ -875,16 +874,16 @@ msgid "exited with status %s (pid %s)\n" msgstr "a quitté avec le status %s (pid %s)\n" -#: ../Beremiz.py:1448 -#: ../Beremiz.py:1450 +#: ../Beremiz.py:1445 +#: ../Beremiz.py:1447 msgid "file : " msgstr "fichier :" -#: ../Beremiz.py:1451 +#: ../Beremiz.py:1448 msgid "function : " msgstr "fonction :" -#: ../Beremiz.py:1451 +#: ../Beremiz.py:1448 msgid "line : " msgstr "ligne :" @@ -979,6 +978,9 @@ msgid "XenoConfig" msgstr "Config Xenomai" +#~ msgid "Save changes ?" +#~ msgstr "Enregistrer les changements ?" + #, fuzzy #~ msgid "Conflict type for location \"%s\"" #~ msgstr "Conflit entre types pour l'adresse \"%s\"" diff -r ea09f33ce717 -r 1a5471e81a93 i18n/messages.pot --- a/i18n/messages.pot Fri Oct 23 18:45:24 2009 +0200 +++ b/i18n/messages.pot Mon Oct 26 11:20:16 2009 +0100 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-10-23 18:41+0200\n" +"POT-Creation-Date: 2009-10-26 10:51+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,7 +16,7 @@ "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Beremiz.py:1460 +#: ../Beremiz.py:1457 #, python-format msgid "" "\n" @@ -37,7 +37,7 @@ msgid " generation failed !\n" msgstr "" -#: ../Beremiz.py:1351 +#: ../Beremiz.py:1357 #, python-format msgid "\"%s\" folder is not a valid Beremiz project\n" msgstr "" @@ -46,11 +46,11 @@ msgid "&Edit" msgstr "" -#: ../Beremiz.py:1448 ../Beremiz.py:1450 ../Beremiz.py:1451 +#: ../Beremiz.py:1445 ../Beremiz.py:1447 ../Beremiz.py:1448 msgid ", " msgstr "" -#: ../Beremiz.py:1446 +#: ../Beremiz.py:1443 msgid ". " msgstr "" @@ -68,11 +68,11 @@ msgid "About" msgstr "" -#: ../Beremiz.py:1395 +#: ../Beremiz.py:1392 msgid "About Beremiz" msgstr "" -#: ../Beremiz.py:1418 +#: ../Beremiz.py:1415 msgid "Add Plugin" msgstr "" @@ -191,7 +191,7 @@ msgid "Choose a directory to save project" msgstr "" -#: ../Beremiz.py:1308 ../Beremiz.py:1333 +#: ../Beremiz.py:1311 ../Beremiz.py:1339 msgid "Choose a project" msgstr "" @@ -219,11 +219,11 @@ msgid "Cleaning the build directory\n" msgstr "" -#: ../Beremiz.py:492 ../Beremiz.py:1360 +#: ../Beremiz.py:504 msgid "Close Application" msgstr "" -#: ../Beremiz.py:301 +#: ../Beremiz.py:301 ../Beremiz.py:489 msgid "Close Project" msgstr "" @@ -372,7 +372,7 @@ msgid "Enter the IP of the interface to bind" msgstr "" -#: ../Beremiz.py:1474 ../Beremiz.py:1484 ../plugger.py:873 +#: ../Beremiz.py:1471 ../Beremiz.py:1481 ../plugger.py:873 #: ../Beremiz_service.py:268 ../Beremiz_service.py:392 msgid "Error" msgstr "" @@ -573,7 +573,7 @@ msgid "Page Setup" msgstr "" -#: ../Beremiz.py:1418 +#: ../Beremiz.py:1415 msgid "Please enter a name for plugin:" msgstr "" @@ -630,7 +630,7 @@ msgid "Raw IEC code" msgstr "" -#: ../Beremiz.py:1428 +#: ../Beremiz.py:1425 msgid "Really delete plugin ?" msgstr "" @@ -646,7 +646,7 @@ msgid "Refresh\tCTRL+R" msgstr "" -#: ../Beremiz.py:1428 +#: ../Beremiz.py:1425 msgid "Remove plugin" msgstr "" @@ -666,10 +666,6 @@ msgid "Save as\tCTRL+SHIFT+S" msgstr "" -#: ../Beremiz.py:491 ../Beremiz.py:1359 -msgid "Save changes ?" -msgstr "" - #: ../discovery.py:81 msgid "Services available:" msgstr "" @@ -735,6 +731,10 @@ msgid "Stopping debug\n" msgstr "" +#: ../Beremiz.py:492 +msgid "There are changes, do you want to save?" +msgstr "" + #: ../Beremiz.py:374 msgid "Topology" msgstr "" @@ -832,15 +832,15 @@ msgid "exited with status %s (pid %s)\n" msgstr "" -#: ../Beremiz.py:1448 ../Beremiz.py:1450 +#: ../Beremiz.py:1445 ../Beremiz.py:1447 msgid "file : " msgstr "" -#: ../Beremiz.py:1451 +#: ../Beremiz.py:1448 msgid "function : " msgstr "" -#: ../Beremiz.py:1451 +#: ../Beremiz.py:1448 msgid "line : " msgstr "" diff -r ea09f33ce717 -r 1a5471e81a93 locale/fr_FR/LC_MESSAGES/Beremiz.mo Binary file locale/fr_FR/LC_MESSAGES/Beremiz.mo has changed