On Mon, Sep 7, 2009 at 12:55 PM, Adrian Buehlmann<adr...@cadifra.com> wrote: > # HG changeset patch > # User Adrian Buehlmann <adr...@cadifra.com> > # Date 1252346065 -7200 > # Node ID 00fece8a505e953a2b1b5737f3be75016ae0e7dc > # Parent 2f94a4b0f9757dee019db0d6e66e3414774f7cb8 > commit: Move parent frame to bottom of dialog > > Since we now have an "advanced" frame, this IMHO looks a bit nicer. > > Having the diff above the parents frame also fits with the mental model > of "the change is based on the parent revision(s)". Having status info > in (or at least near) the status bar is a good fit as well. > > Maybe the M,R,?,I,A,!,C checkboxes should be moved to above the parent > frame next. > > This patch additionally needs to tweak the toggle_view function, as > that function seems to get called before the parents_frame has been set > up (which lead to a traceback [1]). Luckily, this always happens in a > toggle_view call where there isn't any state change at all, so let's > just filter out non-state-change "toggles". > > [1] AttributeError: 'GCommit' object has no attribute 'parents_frame' > > diff --git a/hggtk/commit.py b/hggtk/commit.py > --- a/hggtk/commit.py > +++ b/hggtk/commit.py > @@ -298,20 +298,6 @@ class GCommit(GStatus): > scroller.add(self.text) > gtklib.addspellcheck(self.text, self.repo.ui) > > - self.parents_frame = gtk.Frame(_('Parent')) > - parents_vbox = gtk.VBox(spacing=2) > - self.parents_frame.add(parents_vbox) > - def plabel(): > - w = gtk.Label() > - w.set_selectable(True) > - hb = gtk.HBox() > - hb.pack_start(w, False, False, 4) > - parents_vbox.pack_start(hb, False, False) > - return w > - self.parent1_label = plabel() > - self.parent2_label = plabel() > - vbox.pack_start(self.parents_frame, False, False) > - > self.advanced_frame = gtk.Frame(_('Advanced')) > adv_hbox = gtk.HBox(spacing=2) > adv_hbox.pack_start(gtk.Label(_('Comitter:')), False, False, 2) > @@ -327,9 +313,26 @@ class GCommit(GStatus): > > self.vmenu.set_menu(self.view_menu())
If you move the above line to... > + vbox2 = gtk.VBox() > + vbox2.pack_start(status_body) > + > + self.parents_frame = gtk.Frame(_('Parent')) > + parents_vbox = gtk.VBox(spacing=2) > + self.parents_frame.add(parents_vbox) > + def plabel(): > + w = gtk.Label() > + w.set_selectable(True) > + hb = gtk.HBox() > + hb.pack_start(w, False, False, 4) > + parents_vbox.pack_start(hb, False, False) > + return w > + self.parent1_label = plabel() > + self.parent2_label = plabel() > + vbox2.pack_start(self.parents_frame, False, False) > + here > self.vpaned = gtk.VPaned() > self.vpaned.pack1(vbox, shrink=False) > - self.vpaned.pack2(status_body, shrink=False) > + self.vpaned.pack2(vbox2, shrink=False) > gobject.idle_add(self.realize_settings) > return self.vpaned None of the below would be necessary. > @@ -354,18 +357,21 @@ class GCommit(GStatus): > return menu > > def toggle_view(self, button, type): > + show = button.get_active() > + fr = None > if type == 'parents': > - self.showparents = button.get_active() > - if self.showparents: > - self.parents_frame.show() > + if self.showparents != show: > + self.showparents = show > + fr = self.parents_frame > + elif type == 'advanced': > + if self.showadvanced != show: > + self.showadvanced = show > + fr = self.advanced_frame > + if fr is not None: > + if show: > + fr.show() > else: > - self.parents_frame.hide() > - elif type == 'advanced': > - self.showadvanced = button.get_active() > - if self.showadvanced: > - self.advanced_frame.show() > - else: > - self.advanced_frame.hide() > + fr.hide() > > def changed_cb(self, combobox): > model = combobox.get_model() > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Tortoisehg-develop mailing list > Tortoisehg-develop@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop > ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Tortoisehg-develop mailing list Tortoisehg-develop@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop