From d772c8db351d46ed4fc9f55eb978200ebbe98307 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20=27Necoro=27=20Neumann?= Date: Sun, 14 Mar 2010 21:06:19 +0100 Subject: Show a dialog if no email is given --- i18n/de.po | 54 ++++++++++++++++++++++++++--------------- i18n/messages.pot | 51 +++++++++++++++++++++++--------------- portato/gui/dialogs.py | 7 ++++++ portato/gui/windows/basic.py | 3 +++ portato/gui/windows/mailinfo.py | 16 ++++++++---- 5 files changed, 87 insertions(+), 44 deletions(-) diff --git a/i18n/de.po b/i18n/de.po index 88783a9..d60a707 100644 --- a/i18n/de.po +++ b/i18n/de.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: Portato\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-14 20:01+0100\n" -"PO-Revision-Date: 2010-03-14 20:01+0100\n" +"POT-Creation-Date: 2010-03-14 21:03+0100\n" +"PO-Revision-Date: 2010-03-14 21:04+0100\n" "Last-Translator: René 'Necoro' Neumann \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -426,49 +426,63 @@ msgid "The error was: %s" msgstr "Der Fehler war: %s" #: portato/gui/dialogs.py:24 +msgid "No email address given" +msgstr "Keine Email-Adresse gegeben" + +#: portato/gui/dialogs.py:25 +msgid "" +"You haven't specified an email address. Without it, it will not be possible for the developers to contact you for questions and thus it might be harder to fix the bug.\n" +"\n" +"Do you want to proceed nevertheless?" +msgstr "" +"Du hast keine Email-Adresse angegeben. Daher ist es nicht möglich, dass die Entwickler dich kontaktieren können und es kann daher sein, dass der Bug schwerer zu beseitigen ist.\n" +"\n" +"Trotzdem fortfahren?" + +#: portato/gui/dialogs.py:31 msgid "Do you really want to quit?" msgstr "Wirklich beenden?" -#: portato/gui/dialogs.py:25 +#: portato/gui/dialogs.py:32 msgid "There are some packages in the emerge queue and/or an emerge process is running." msgstr "Es sind noch Pakete in der Emerge-Queue und/oder emerge läuft noch." -#: portato/gui/dialogs.py:43 +#: portato/gui/dialogs.py:50 #, python-format msgid "%(blocked)s is blocked by %(blocks)s." msgstr "%(blocks)s blockiert %(blocked)s." -#: portato/gui/dialogs.py:44 +#: portato/gui/dialogs.py:51 msgid "Please unmerge the blocking package." msgstr "Bitte deinstalliere das blockierende Paket." -#: portato/gui/dialogs.py:50 +#: portato/gui/dialogs.py:57 msgid "You are not root." msgstr "Du bist nicht root." -#: portato/gui/dialogs.py:56 +#: portato/gui/dialogs.py:63 #, python-format msgid "%s seems to be masked." msgstr "%s scheint maskiert zu sein." -#: portato/gui/dialogs.py:57 +#: portato/gui/dialogs.py:64 msgid "Do you want to unmask it and its dependencies?" msgstr "Soll das Paket und seine Abhängigkeiten demaskiert werden?" -#: portato/gui/dialogs.py:63 +#: portato/gui/dialogs.py:70 msgid "Package not found!" msgstr "Paket nicht gefunden!" -#: portato/gui/dialogs.py:69 +#: portato/gui/dialogs.py:76 msgid "Do not show this dialog again." msgstr "Diesen Dialog nicht wieder anzeigen." -#: portato/gui/dialogs.py:70 +#: portato/gui/dialogs.py:77 #, python-format msgid "Changed %s" msgstr "%s wurde geändert" -#: portato/gui/dialogs.py:71 +#: portato/gui/dialogs.py:78 msgid "" "Portato will write these changes into the appropriate files.\n" "Please backup them if you think it is necessary." @@ -476,11 +490,11 @@ msgstr "" "Portato wird diese Änderungen speichern.\n" "Bitte sichere die entsprechenden Dateien, wenn du es als notwendig erachtest." -#: portato/gui/dialogs.py:80 +#: portato/gui/dialogs.py:87 msgid "You cannot remove dependencies. :)" msgstr "Du kannst keine Abhängigkeiten löschen ;)." -#: portato/gui/dialogs.py:86 +#: portato/gui/dialogs.py:93 msgid "" "This is the updates queue. You cannot remove single elements.\n" "Do you want to clear the whole queue instead?" @@ -488,15 +502,15 @@ msgstr "" "Das ist die Update-Queue. Aus dieser können keine einzelnen Pakete entfernt werden.\n" "Soll stattdessen die komplette Queue entfernt werden?" -#: portato/gui/dialogs.py:92 +#: portato/gui/dialogs.py:99 msgid "Do you really want to clear the whole queue?" msgstr "Wirklich die gesamte Queue löschen?" -#: portato/gui/dialogs.py:111 +#: portato/gui/dialogs.py:118 msgid "A prerequisite for starting Portato was not matched." msgstr "Eine Vorbedingung um Portato zu starten ist nicht erfüllt." -#: portato/gui/dialogs.py:115 +#: portato/gui/dialogs.py:122 msgid "" "Note: On fresh Sabayon installs or its LiveDVD/-CD, there is no portage tree existing per default.\n" "Please run emerge --sync && layman -S." @@ -504,7 +518,7 @@ msgstr "" "Hinweis: Auf frisch installierten Sabayon-Systemen bzw. der Sabayon LiveDVD/-CD existiert standardmäßig kein Portage-Tree.\n" "Bitte führe emerge --sync && layman -S aus." -#: portato/gui/dialogs.py:123 +#: portato/gui/dialogs.py:130 #: portato/gui/windows/main.py:1302 #, python-format msgid "No versions of package '%s' found!" @@ -588,12 +602,12 @@ msgstr "Pakete mit Updates" msgid "World Packages" msgstr "Pakete in \"World\"" -#: portato/gui/windows/mailinfo.py:144 +#: portato/gui/windows/mailinfo.py:145 #, python-format msgid "An error occurred while sending. I think we were greylisted. The error: %s" msgstr "Während des Sendes trat ein Fehler auf. Wahrscheinlich wurden wir ge-greylistet. Der Fehler: %s" -#: portato/gui/windows/mailinfo.py:145 +#: portato/gui/windows/mailinfo.py:146 #, python-format msgid "Retrying after waiting %d seconds." msgstr "Wiederhole den Versuch nach einer %ds Pause." diff --git a/i18n/messages.pot b/i18n/messages.pot index 555837f..5c007f9 100644 --- a/i18n/messages.pot +++ b/i18n/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-03-14 20:01+0100\n" +"POT-Creation-Date: 2010-03-14 21:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -405,82 +405,95 @@ msgid "The error was: %s" msgstr "" #: portato/gui/dialogs.py:24 -msgid "Do you really want to quit?" +msgid "No email address given" msgstr "" #: portato/gui/dialogs.py:25 msgid "" +"You haven't specified an email address. Without it, it will not be possible " +"for the developers to contact you for questions and thus it might be harder " +"to fix the bug.\n" +"\n" +"Do you want to proceed nevertheless?" +msgstr "" + +#: portato/gui/dialogs.py:31 +msgid "Do you really want to quit?" +msgstr "" + +#: portato/gui/dialogs.py:32 +msgid "" "There are some packages in the emerge queue and/or an emerge process is " "running." msgstr "" -#: portato/gui/dialogs.py:43 +#: portato/gui/dialogs.py:50 #, python-format msgid "%(blocked)s is blocked by %(blocks)s." msgstr "" -#: portato/gui/dialogs.py:44 +#: portato/gui/dialogs.py:51 msgid "Please unmerge the blocking package." msgstr "" -#: portato/gui/dialogs.py:50 +#: portato/gui/dialogs.py:57 msgid "You are not root." msgstr "" -#: portato/gui/dialogs.py:56 +#: portato/gui/dialogs.py:63 #, python-format msgid "%s seems to be masked." msgstr "" -#: portato/gui/dialogs.py:57 +#: portato/gui/dialogs.py:64 msgid "Do you want to unmask it and its dependencies?" msgstr "" -#: portato/gui/dialogs.py:63 +#: portato/gui/dialogs.py:70 msgid "Package not found!" msgstr "" -#: portato/gui/dialogs.py:69 +#: portato/gui/dialogs.py:76 msgid "Do not show this dialog again." msgstr "" -#: portato/gui/dialogs.py:70 +#: portato/gui/dialogs.py:77 #, python-format msgid "Changed %s" msgstr "" -#: portato/gui/dialogs.py:71 +#: portato/gui/dialogs.py:78 msgid "" "Portato will write these changes into the appropriate files.\n" "Please backup them if you think it is necessary." msgstr "" -#: portato/gui/dialogs.py:80 +#: portato/gui/dialogs.py:87 msgid "You cannot remove dependencies. :)" msgstr "" -#: portato/gui/dialogs.py:86 +#: portato/gui/dialogs.py:93 msgid "" "This is the updates queue. You cannot remove single elements.\n" "Do you want to clear the whole queue instead?" msgstr "" -#: portato/gui/dialogs.py:92 +#: portato/gui/dialogs.py:99 msgid "Do you really want to clear the whole queue?" msgstr "" -#: portato/gui/dialogs.py:111 +#: portato/gui/dialogs.py:118 msgid "A prerequisite for starting Portato was not matched." msgstr "" -#: portato/gui/dialogs.py:115 +#: portato/gui/dialogs.py:122 msgid "" "Note: On fresh Sabayon installs or its LiveDVD/-CD, there is no " "portage tree existing per default.\n" "Please run emerge --sync && layman -S." msgstr "" -#: portato/gui/dialogs.py:123 portato/gui/windows/main.py:1302 +#: portato/gui/dialogs.py:130 portato/gui/windows/main.py:1302 #, python-format msgid "No versions of package '%s' found!" msgstr "" @@ -568,13 +581,13 @@ msgstr "" msgid "World Packages" msgstr "" -#: portato/gui/windows/mailinfo.py:144 +#: portato/gui/windows/mailinfo.py:145 #, python-format msgid "" "An error occurred while sending. I think we were greylisted. The error: %s" msgstr "" -#: portato/gui/windows/mailinfo.py:145 +#: portato/gui/windows/mailinfo.py:146 #, python-format msgid "Retrying after waiting %d seconds." msgstr "" diff --git a/portato/gui/dialogs.py b/portato/gui/dialogs.py index 6044a5b..7ad5c7f 100644 --- a/portato/gui/dialogs.py +++ b/portato/gui/dialogs.py @@ -20,6 +20,13 @@ def mail_failure_dialog(e): dialog.destroy() return ret +def no_email_dialog(p): + dialog = gtk.MessageDialog(p, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_OK_CANCEL, _("No email address given")) + dialog.format_secondary_text(_("You haven't specified an email address. Without it, it will not be possible for the developers to contact you for questions and thus it might be harder to fix the bug.\n\nDo you want to proceed nevertheless?")) + ret = dialog.run() + dialog.destroy() + return ret + def queue_not_empty_dialog(): dialog = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, gtk.BUTTONS_NONE, _("Do you really want to quit?")) dialog.format_secondary_text(_("There are some packages in the emerge queue and/or an emerge process is running.")) diff --git a/portato/gui/windows/basic.py b/portato/gui/windows/basic.py index 92c35f4..01d31e5 100644 --- a/portato/gui/windows/basic.py +++ b/portato/gui/windows/basic.py @@ -151,6 +151,9 @@ class AbstractDialog (Window): self.window.set_transient_for(parent) self.parent = parent + # type hint + self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG) + # catch the ESC-key self.window.connect("key-press-event", self.cb_key_pressed) diff --git a/portato/gui/windows/mailinfo.py b/portato/gui/windows/mailinfo.py index 6d6e93b..c5002e7 100644 --- a/portato/gui/windows/mailinfo.py +++ b/portato/gui/windows/mailinfo.py @@ -21,7 +21,7 @@ from os.path import basename from .basic import AbstractDialog from ..utils import GtkThread -from ..dialogs import mail_failure_dialog +from ..dialogs import mail_failure_dialog, no_email_dialog from ...helper import debug, info from ...constants import VERSION, CONFIG_LOCATION from ...log import LOGFILE @@ -61,6 +61,7 @@ class MailInfoWindow (AbstractDialog): self.fileList = self.tree.get_widget("fileList") self.build_file_list() + self.mailEntry = self.tree.get_widget("mailEntry") self.tb = tb self.window.show_all() @@ -99,7 +100,7 @@ class MailInfoWindow (AbstractDialog): # TO and FROM name = self.tree.get_widget("nameEntry").get_text() - self.addr = self.tree.get_widget("mailEntry").get_text() + self.addr = self.mailEntry.get_text() if not self.addr: self.addr = self.TO @@ -157,7 +158,12 @@ class MailInfoWindow (AbstractDialog): return True def cb_send_clicked (self, *args): - self.set_data() - GtkThread(target = self.send, name = "Mail Send Thread").start() - self.close() + if self.mailEntry.get_text() or no_email_dialog(self.window) == gtk.RESPONSE_OK: + self.set_data() + GtkThread(target = self.send, name = "Mail Send Thread").start() + self.close() + else: + self.window.present() + self.mailEntry.grab_focus() + return True -- cgit v1.2.3