[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[PATCH 2/5] Remove unused UI code now that report handles all this for me.



Also, move the gtk-specific UI code out of ExceptionHandler.runSave and into
the saveExceptionWindow method.  This allows doing the same thing for the
newt UI, too.
---
 meh/__init__.py    |    8 -
 meh/handler.py     |   17 +-
 meh/ui/__init__.py |   30 +---
 meh/ui/gui.py      |   76 ++-----
 meh/ui/text.py     |  150 ++-----------
 setup.py           |    3 +-
 ui/exnSave.glade   |  641 ----------------------------------------------------
 7 files changed, 46 insertions(+), 879 deletions(-)
 delete mode 100644 ui/exnSave.glade

diff --git a/meh/__init__.py b/meh/__init__.py
index 185a528..22c7959 100644
--- a/meh/__init__.py
+++ b/meh/__init__.py
@@ -54,10 +54,6 @@ class Config(object):
                              with the name "anaconda" and you want to skip
                              anaconda.id.rootPassword, "id.rootPassword" should
                              be listed in attrSkipList.
-           bugFiler       -- An AbstractFiler instance.  This is required for
-                             saving to remote bug tracking systems.  Of course
-                             this must be an instance of a real subclass, not
-                             of the abstract thing itself.
            fileList       -- A list of files to find on the system and add
                              to the traceback dump.
            localSkipList  -- A list of strings.  When handling a traceback,
@@ -72,15 +68,11 @@ class Config(object):
                              set.
         """
         self.attrSkipList = []
-        self.bugFiler = None
-        self.bugDisplayUrl = None
         self.fileList = []
         self.localSkipList = []
         self.programName = None
         self.programVersion = None
 
-        self._intf = None
-
         # Override the defaults set above with whatever's passed in as an
         # argument.  Unknown arguments get thrown away.
         for (key, val) in kwargs.iteritems():
diff --git a/meh/handler.py b/meh/handler.py
index cd00c47..1ed1fc1 100644
--- a/meh/handler.py
+++ b/meh/handler.py
@@ -23,7 +23,6 @@ from network import hasActiveNetDev
 import signal
 import sys
 import report.accountmanager
-import report.io.GTKIO
 
 import gettext
 _ = lambda x: gettext.ldgettext("python-meh", x)
@@ -46,7 +45,7 @@ class ExceptionHandler(object):
            exnClass -- An instance of ExceptionDump or a subclass of it.  This
                        is required to know how to represent the Python
                        exception internally.
-           intf     -- An instance of AbstractIntf.  This is required to know
+           intfClass-- An instance of AbstractIntf.  This is required to know
                        what UI classes to use.
         """
         self.conf = confObj
@@ -56,8 +55,6 @@ class ExceptionHandler(object):
         self._exitcode = 10
         self._exn = None
 
-        self.conf._intf = self.intf
-
     def _setExitCode(self, code):
         self._exitcode = code
 
@@ -205,12 +202,10 @@ class ExceptionHandler(object):
         accountManager = report.accountmanager.AccountManager()
 
         signature = report.createPythonUnhandledExceptionSignature( \
-            self.conf.programName, 
-            self.conf.programName, self.exn.hash, 
+            self.conf.programName,
+            self.conf.programName, self.exn.hash,
             summary, description, exnFileName)
 
-        # Don't need to check the return value of report.report as it handles
-        # all the UI for us.  Also we don't want to automatically quit since
-        # the user may wish to save somewhere else, debug, etc.
-        io = report.io.GTKIO.GTKIO(accountManager)
-        report.report(signature, io)
+        # We don't want to automatically quit here since the user may wish to
+        # save somewhere else, debug, etc.
+        self.intf.saveExceptionWindow(accountManager, signature)
diff --git a/meh/ui/__init__.py b/meh/ui/__init__.py
index 2adc71f..e0bf0ed 100644
--- a/meh/ui/__init__.py
+++ b/meh/ui/__init__.py
@@ -171,39 +171,13 @@ class AbstractSaveExceptionWindow:
        initial dialog, and presents multiple options for how the traceback
        should be saved.
     """
-    def __init__(self, exnFile, desc="", *args, **kwargs):
+    def __init__(self, *args, **kwargs):
         """Create a new SaveExceptionWindow instance.  This must handle
            creating the dialog and populating it with widgets, but must not
            run the dialog.  A self.dialog attribute should be created that
            refers to the dialog itself.
-
-           exnFile -- A file containing the output of ExceptionDump.write().
-           desc    -- A description to populate the text entry field with,
-                      since users often do not know what to do.
-        """
-        self.rc = 0
-
-    def destroy(self, *args, **kwargs):
-        """Destroy the current dialog.  This method must be provided by all
-           subclasses.
         """
-        raise NotImplementedError
-
-    def getrc(self, *args, **kwargs):
-        """Return which button was clicked on the interface.  Unfortunately,
-           this does not tell you which method the user selected for saving
-           the traceback.  This method must be provided by all subclasses.
-        """
-        return self.rc
-
-    def getDest(self, *args, **kwargs):
-        """Return a (number, destInfo) tuple corresponding to which method was
-           selected for saving the traceback.  The number is the entry in the
-           UI, for deciding which method to call.  The destInfo is usually
-           some tuple containing the text out of the UI elements and should
-           be passed to the saving methods.
-        """
-        raise NotImplementedError
+        pass
 
     def run(self, *args, **kwargs):
         """Run the window and set a return value.  This method does everything
diff --git a/meh/ui/gui.py b/meh/ui/gui.py
index 834cc8f..dc6b9e4 100644
--- a/meh/ui/gui.py
+++ b/meh/ui/gui.py
@@ -21,6 +21,7 @@ from meh.ui import *
 import gtk
 import gtk.glade
 import os
+import report
 
 import gettext
 _ = lambda x: gettext.ldgettext("python-meh", x)
@@ -59,9 +60,23 @@ class GraphicalIntf(AbstractIntf):
         win.run()
         win.destroy()
 
-    def saveExceptionWindow(self, exnFile, desc="", *args, **kwargs):
-        win = SaveExceptionWindow(exnFile, desc=desc, *args, **kwargs)
-        return win
+    def saveExceptionWindow(self, accountManager, signature, *args, **kwargs):
+        win = SaveExceptionWindow(accountManager, signature)
+        win.run()
+
+class SaveExceptionWindow(AbstractSaveExceptionWindow):
+    def __init__(self, accountManager, signature, *args, **kwargs):
+        import report.io.GTKIO
+
+        self.accountManager = accountManager
+        self.signature = signature
+
+        self.io = report.io.GTKIO.GTKIO(self.accountManager)
+
+    def run(self, *args, **kwargs):
+        # Don't need to check the return value of report since it will
+        # handle all the UI reporting for us.
+        report.report(self.signature, self.io)
 
 class MainExceptionWindow(AbstractMainExceptionWindow):
     def __init__(self, shortTraceback=None, longTracebackFile=None, *args, **kwargs):
@@ -153,58 +168,3 @@ class ExitWindow(MessageWindow):
         self.dialog.set_title(title)
         self.dialog.add_button(_("_Exit"), 0)
         self.dialog.set_position(gtk.WIN_POS_CENTER)
-
-class SaveExceptionWindow(AbstractSaveExceptionWindow):
-    def __init__(self, exnFile, desc="", *args, **kwargs):
-        AbstractSaveExceptionWindow.__init__(self, exnFile, desc=desc, *args, **kwargs)
-        exnxml = gtk.glade.XML(findGladeFile("exnSave.glade"), domain="python-meh")
-
-        self.bugzillaNameEntry = exnxml.get_widget("bugzillaNameEntry")
-        self.bugzillaPasswordEntry = exnxml.get_widget("bugzillaPasswordEntry")
-        self.bugDesc = exnxml.get_widget("bugDesc")
-
-        self.bugDesc.set_text(desc)
-
-        self.scpNameEntry = exnxml.get_widget("scpNameEntry")
-        self.scpPasswordEntry = exnxml.get_widget("scpPasswordEntry")
-        self.scpHostEntry = exnxml.get_widget("scpHostEntry")
-        self.scpDestEntry = exnxml.get_widget("scpDestEntry")
-
-        self.notebook = exnxml.get_widget("destNotebook")
-        self.destCombo = exnxml.get_widget("destCombo")
-
-        self.localChooser = exnxml.get_widget("localChooser")
-        self.dialog = exnxml.get_widget("saveDialog")
-
-        self.destCombo.connect("changed", self._combo_changed)
-        self.destCombo.set_active(0)
-        self.notebook.set_current_page(0)
-
-    def _combo_changed(self, args):
-        self.notebook.set_current_page(self.destCombo.get_active())
-
-    def destroy(self, *args, **kwargs):
-        self.dialog.destroy()
-
-    def getDest(self, *args, **kwargs):
-        if self.notebook.get_current_page() == 0:
-            return (0, self.localChooser.get_filename())
-        elif self.notebook.get_current_page() == 1:
-            return (1, map(lambda e: e.get_text(), [self.bugzillaNameEntry,
-                                                    self.bugzillaPasswordEntry,
-                                                    self.bugDesc]))
-        elif self.notebook.get_current_page() == 2:
-            return (2, map(lambda e: e.get_text(), [self.scpNameEntry,
-                                                    self.scpPasswordEntry,
-                                                    self.scpHostEntry,
-                                                    self.scpDestEntry]))
-
-    def getrc(self, *args, **kwargs):
-        if self.rc == gtk.RESPONSE_OK:
-            return SAVE_RESPONSE_OK
-        elif self.rc == gtk.RESPONSE_CANCEL:
-            return SAVE_RESPONSE_CANCEL
-
-    def run(self, *args, **kwargs):
-        self.dialog.show_all()
-        self.rc = self.dialog.run()
diff --git a/meh/ui/text.py b/meh/ui/text.py
index d7dafed..1750dac 100644
--- a/meh/ui/text.py
+++ b/meh/ui/text.py
@@ -18,6 +18,7 @@
 #
 from meh import *
 from meh.ui import *
+import report
 from snack import *
 
 import gettext
@@ -41,9 +42,24 @@ class TextIntf(AbstractIntf):
         win.run()
         win.destroy()
 
-    def saveExceptionWindow(self, exnFile, desc="", *args, **kwargs):
-        win = SaveExceptionWindow(exnFile, desc=desc, *args, **kwargs)
-        return win
+    def saveExceptionWindow(self, accountManager, signature, *args, **kwargs):
+        win = SaveExceptionWindow(accountManager, signature)
+        win.run()
+
+class SaveExceptionWindow(AbstractSaveExceptionWindow):
+    def __init__(self, accountManager, signature, *args, **kwargs):
+        import report.io.NewtIO
+
+        self.accountManager = accountManager
+        self.signature = signature
+        self.screen = kwargs.get("screen")
+
+        self.io = report.io.NewtIO.NewtIO(self.screen)
+
+    def run(self, *args, **kwargs):
+        # Don't need to check the return value of report since it will
+        # handle all the UI reporting for us.
+        report.report(self.signature, self.io)
 
 class MainExceptionWindow(AbstractMainExceptionWindow):
     def __init__(self, shortTraceback=None, longTracebackFile=None, *args, **kwargs):
@@ -99,131 +115,3 @@ class ExitWindow(MessageWindow):
     def destroy(self, *args, **kwargs):
         self.screen.popWindow()
         self.screen.refresh()
-
-class SaveExceptionWindow(AbstractSaveExceptionWindow):
-    def __init__(self, exnFile, desc="", *args, **kwargs):
-        AbstractSaveExceptionWindow.__init__(self, exnFile, desc=desc, *args, **kwargs)
-        self.screen = kwargs.get("screen", None)
-        self._desc = desc
-        self._method = "disk"
-
-    def _runSaveToDisk(self):
-        toplevel = GridForm(self.screen, _("Save to disk"), 1, 2)
-
-        buttons = ButtonBar(self.screen, [_("OK"), _("Cancel")])
-        self.dirEntry = Entry(24)
-
-        entryGrid = Grid(2, 2)
-        entryGrid.setField(Label(_("Directory")), 0, 0, anchorLeft=1)
-        entryGrid.setField(self.dirEntry, 1, 0)
-
-        toplevel.add(entryGrid, 0, 0, (0, 0, 0, 1))
-        toplevel.add(buttons, 0, 1, growx=1)
-
-        result = toplevel.run()
-        return buttons.buttonPressed(result)
-
-    def _runSaveToBugzilla(self):
-        toplevel = GridForm(self.screen, _("Save to bugzilla"), 1, 2)
-
-        buttons = ButtonBar(self.screen, [_("OK"), _("Cancel")])
-        self.bugzillaNameEntry = Entry(24)
-        self.bugzillaPasswordEntry = Entry(24, password=1)
-        self.bugDesc = Entry(24)
-
-        self.bugDesc.set(self._desc)
-
-        bugzillaGrid = Grid(2, 3)
-        bugzillaGrid.setField(Label(_("Username")), 0, 0, anchorLeft=1)
-        bugzillaGrid.setField(self.bugzillaNameEntry, 1, 0)
-        bugzillaGrid.setField(Label(_("Password")), 0, 1, anchorLeft=1)
-        bugzillaGrid.setField(self.bugzillaPasswordEntry, 1, 1)
-        bugzillaGrid.setField(Label(_("Bug Description")), 0, 2, anchorLeft=1)
-        bugzillaGrid.setField(self.bugDesc, 1, 2)
-
-        toplevel.add(bugzillaGrid, 0, 0, (0, 0, 0, 1))
-        toplevel.add(buttons, 0, 1, growx=1)
-
-        result = toplevel.run()
-        return buttons.buttonPressed(result)
-
-    def _runSaveToRemote(self):
-        toplevel = GridForm(self.screen, _("Send to remote server (scp)"), 1, 2)
-
-        buttons = ButtonBar(self.screen, [_("OK"), _("Cancel")])
-        self.scpNameEntry = Entry(24)
-        self.scpPasswordEntry = Entry(24, password=1)
-        self.scpHostEntry = Entry(24)
-        self.scpDestEntry = Entry(24)
-
-        scpGrid = Grid(2, 4)
-        scpGrid.setField(Label(_("User name")), 0, 0, anchorLeft=1)
-        scpGrid.setField(self.scpNameEntry, 1, 0)
-        scpGrid.setField(Label(_("Password")), 0, 1, anchorLeft=1)
-        scpGrid.setField(self.scpPasswordEntry, 1, 1)
-        scpGrid.setField(Label(_("Host (host:port)")), 0, 2, anchorLeft=1)
-        scpGrid.setField(self.scpHostEntry, 1, 2)
-        scpGrid.setField(Label(_("Destination file")), 0, 3, anchorLeft=1)
-        scpGrid.setField(self.scpDestEntry, 1, 3)
-
-        toplevel.add(scpGrid, 0, 0, (0, 0, 0, 1))
-        toplevel.add(buttons, 0, 1, growx=1)
-
-        result = toplevel.run()
-        return buttons.buttonPressed(result)
-
-    def destroy(self, *args, **kwargs):
-        self.screen.popWindow()
-        self.screen.refresh()
-
-    def run(self, *args, **kwargs):
-        mapping = {"disk": self._runSaveToDisk,
-                   "bugzilla": self._runSaveToBugzilla,
-                   "scp": self._runSaveToRemote}
-
-        toplevel = GridForm(self.screen, _("Save"), 1, 4)
-
-        self.rg = RadioGroup()
-        self.diskButton = self.rg.add(_("Save to local"), "disk", True)
-        self.bugzillaButton = self.rg.add(_("Save to bugzilla"), "bugzilla", False)
-        self.scpButton = self.rg.add(_("Save to remote server (scp)"), "scp", False)
-
-        buttons = ButtonBar(self.screen, [_("OK"), _("Cancel")])
-
-        toplevel.add(self.diskButton, 0, 0, (0, 0, 0, 1))
-        toplevel.add(self.bugzillaButton, 0, 1, (0, 0, 0, 1))
-        toplevel.add(self.scpButton, 0, 2, (0, 0, 0, 1))
-        toplevel.add(buttons, 0, 3, growx=1)
-
-        while True:
-            result = toplevel.run()
-            rc = buttons.buttonPressed(result)
-
-            if rc == string.lower(_("OK")):
-                if mapping[self.rg.getSelection()]() == string.lower(_("Cancel")):
-                    self.destroy()
-                    continue
-
-                self.rc = SAVE_RESPONSE_OK
-                self._method = self.rg.getSelection()
-                self.destroy()
-            else:
-                self.rc = SAVE_RESPONSE_CANCEL
-
-            break
-
-    def getrc(self, *args, **kwargs):
-        return self.rc
-
-    def getDest(self, *args, **kwargs):
-        if self._method == "disk":
-            return (0, self.dirEntry.value())
-        elif self._method == "bugzilla":
-            return (1, map(lambda e: e.value(), [self.bugzillaNameEntry,
-                                                 self.bugzillaPasswordEntry,
-                                                 self.bugDesc]))
-        elif self._method == "scp":
-            return (2, map(lambda e: e.value(), [self.scpNameEntry,
-                                                 self.scpPasswordEntry,
-                                                 self.scpHostEntry,
-                                                 self.scpDestEntry]))
diff --git a/setup.py b/setup.py
index f3183a1..25ee58f 100644
--- a/setup.py
+++ b/setup.py
@@ -6,6 +6,5 @@ setup(name='python-meh', version='0.7',
       description='Python module for handling exceptions',
       author='Chris Lumens', author_email='clumens redhat com',
       url='http://git.fedoraproject.org/git/?p=python-meh.git',
-      data_files = [('/usr/share/python-meh', ['ui/detailed-dialog.glade', 'ui/exnSave.glade',
-                                               'pixmaps/exception.png'])],
+      data_files = [('/usr/share/python-meh', ['ui/detailed-dialog.glade', 'pixmaps/exception.png'])],
       packages=['meh', 'meh.ui'])
diff --git a/ui/exnSave.glade b/ui/exnSave.glade
deleted file mode 100644
index 190b63f..0000000
--- a/ui/exnSave.glade
+++ /dev/null
@@ -1,641 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd";>
-
-<glade-interface>
-
-<widget class="GtkDialog" id="saveDialog">
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">Save</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_CENTER</property>
-  <property name="modal">True</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <property name="has_separator">True</property>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox1">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child internal-child="action_area">
-	<widget class="GtkHButtonBox" id="dialog-action_area1">
-	  <property name="visible">True</property>
-	  <property name="layout_style">GTK_BUTTONBOX_END</property>
-
-	  <child>
-	    <widget class="GtkButton" id="cancelbutton1">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-cancel</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-6</property>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="okbutton1">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-ok</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-5</property>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">True</property>
-	  <property name="pack_type">GTK_PACK_END</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkVBox" id="vbox1">
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">0</property>
-
-	  <child>
-	    <widget class="GtkLabel" id="label6">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Please choose a destination for saving your traceback.</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">True</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">5</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkComboBox" id="destCombo">
-	      <property name="visible">True</property>
-	      <property name="items" translatable="yes">Local storage
-Bugzilla
-Remote server (scp)</property>
-	      <property name="add_tearoffs">False</property>
-	      <property name="focus_on_click">True</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkNotebook" id="destNotebook">
-	      <property name="visible">True</property>
-	      <property name="show_tabs">False</property>
-	      <property name="show_border">False</property>
-	      <property name="tab_pos">GTK_POS_TOP</property>
-	      <property name="scrollable">False</property>
-	      <property name="enable_popup">False</property>
-
-	      <child>
-		<placeholder/>
-	      </child>
-
-	      <child>
-		<widget class="GtkLabel" id="label12">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes"></property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">False</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="type">tab</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkFileChooserButton" id="localChooser">
-		  <property name="visible">True</property>
-		  <property name="title" translatable="yes">Select A File</property>
-		  <property name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
-		  <property name="local_only">True</property>
-		  <property name="show_hidden">False</property>
-		  <property name="do_overwrite_confirmation">False</property>
-		  <property name="width_chars">-1</property>
-		</widget>
-		<packing>
-		  <property name="tab_expand">False</property>
-		  <property name="tab_fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkLabel" id="label14">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes"></property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">False</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="type">tab</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="bugzillaBox">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkVBox" id="vbox2">
-		      <property name="border_width">5</property>
-		      <property name="visible">True</property>
-		      <property name="homogeneous">True</property>
-		      <property name="spacing">5</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label4">
-			  <property name="visible">True</property>
-			  <property name="label">_User name</property>
-			  <property name="use_underline">True</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkLabel" id="label5">
-			  <property name="visible">True</property>
-			  <property name="label">_Password</property>
-			  <property name="use_underline">True</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkLabel" id="label7">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">Bug _description</property>
-			  <property name="use_underline">True</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkVBox" id="vbox3">
-		      <property name="border_width">5</property>
-		      <property name="visible">True</property>
-		      <property name="homogeneous">True</property>
-		      <property name="spacing">5</property>
-
-		      <child>
-			<widget class="GtkEntry" id="bugzillaNameEntry">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="editable">True</property>
-			  <property name="visibility">True</property>
-			  <property name="max_length">0</property>
-			  <property name="text" translatable="yes"></property>
-			  <property name="has_frame">True</property>
-			  <property name="invisible_char">•</property>
-			  <property name="activates_default">False</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkEntry" id="bugzillaPasswordEntry">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="editable">True</property>
-			  <property name="visibility">False</property>
-			  <property name="max_length">0</property>
-			  <property name="text" translatable="yes"></property>
-			  <property name="has_frame">True</property>
-			  <property name="invisible_char">•</property>
-			  <property name="activates_default">False</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkEntry" id="bugDesc">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="editable">True</property>
-			  <property name="visibility">True</property>
-			  <property name="max_length">0</property>
-			  <property name="text" translatable="yes"></property>
-			  <property name="has_frame">True</property>
-			  <property name="invisible_char">•</property>
-			  <property name="activates_default">False</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="tab_expand">False</property>
-		  <property name="tab_fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkLabel" id="label16">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes"></property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">False</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="type">tab</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="scpBox">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkVBox" id="vbox5">
-		      <property name="border_width">5</property>
-		      <property name="visible">True</property>
-		      <property name="homogeneous">True</property>
-		      <property name="spacing">5</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label8">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">_User name</property>
-			  <property name="use_underline">True</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkLabel" id="label9">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">_Password</property>
-			  <property name="use_underline">True</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkLabel" id="label10">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">_Host (host:port)</property>
-			  <property name="use_underline">True</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkLabel" id="label11">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">Destination _file</property>
-			  <property name="use_underline">True</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkVBox" id="vbox6">
-		      <property name="border_width">5</property>
-		      <property name="visible">True</property>
-		      <property name="homogeneous">True</property>
-		      <property name="spacing">5</property>
-
-		      <child>
-			<widget class="GtkEntry" id="scpNameEntry">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="editable">True</property>
-			  <property name="visibility">True</property>
-			  <property name="max_length">0</property>
-			  <property name="text" translatable="yes"></property>
-			  <property name="has_frame">True</property>
-			  <property name="invisible_char">•</property>
-			  <property name="activates_default">False</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkEntry" id="scpPasswordEntry">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="editable">True</property>
-			  <property name="visibility">False</property>
-			  <property name="max_length">0</property>
-			  <property name="text" translatable="yes"></property>
-			  <property name="has_frame">True</property>
-			  <property name="invisible_char">•</property>
-			  <property name="activates_default">False</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkEntry" id="scpHostEntry">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="editable">True</property>
-			  <property name="visibility">True</property>
-			  <property name="max_length">0</property>
-			  <property name="text" translatable="yes"></property>
-			  <property name="has_frame">True</property>
-			  <property name="invisible_char">•</property>
-			  <property name="activates_default">False</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkEntry" id="scpDestEntry">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="editable">True</property>
-			  <property name="visibility">True</property>
-			  <property name="max_length">0</property>
-			  <property name="text" translatable="yes"></property>
-			  <property name="has_frame">True</property>
-			  <property name="invisible_char">•</property>
-			  <property name="activates_default">False</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="tab_expand">False</property>
-		  <property name="tab_fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkLabel" id="label18">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes"></property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">False</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="type">tab</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-</glade-interface>
-- 
1.6.5.1


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]