def get_body(self): """ Initialize the Dialog. """ self.grep_cmenu = self.grep_context_menu() self.changedesc = {} self.newpagecount = 1 self.currev = None vbox = gtk.VBox() notebook = gtk.Notebook() notebook.set_tab_pos(gtk.POS_TOP) notebook.set_scrollable(True) notebook.popup_enable() notebook.show() self.notebook = notebook vbox.pack_start(self.notebook, True, True, 2) self.stop_button.set_sensitive(False) accelgroup = gtk.AccelGroup() self.add_accel_group(accelgroup) mod = gtklib.get_thg_modifier() key, modifier = gtk.accelerator_parse(mod+'w') notebook.add_accelerator('thg-close', accelgroup, key, modifier, gtk.ACCEL_VISIBLE) notebook.connect('thg-close', self.close_notebook) key, modifier = gtk.accelerator_parse(mod+'n') notebook.add_accelerator('thg-new', accelgroup, key, modifier, gtk.ACCEL_VISIBLE) notebook.connect('thg-new', self.new_notebook) # status bar hbox = gtk.HBox() style = csinfo.labelstyle(contents=('%(shortuser)s@%(revnum)s ' '%(dateage)s', ' "%(summary)s"',), selectable=True) self.cslabel = csinfo.create(self.repo, style=style) hbox.pack_start(self.cslabel, False, False, 4) self.stbar = statusbar.StatusBar() hbox.pack_start(self.stbar) vbox.pack_start(hbox, False, False) return vbox
def get_body(self, vbox): # layout table table = gtklib.LayoutTable() vbox.pack_start(table, False, False, 2) self.table = table ## revision label & combobox self.revcombo = combo = gtk.combo_box_entry_new_text() entry = combo.child entry.set_width_chars(38) entry.connect('activate', lambda b: self.response(gtk.RESPONSE_OK)) table.add_row(_('Update to:'), combo, padding=False) ## fill list of combo if self.rev != None: combo.append_text(str(self.rev)) else: combo.append_text(self.repo.dirstate.branch()) combo.set_active(0) for name in hglib.getlivebranch(self.repo): combo.append_text(name) tags = list(self.repo.tags()) tags.sort() tags.reverse() for tag in tags: combo.append_text(hglib.toutf(tag)) ## changeset summaries style = csinfo.labelstyle(contents=('%(rev)s', ' %(branch)s', ' %(tags)s', '\n%(summary)s'), selectable=True, width=350) factory = csinfo.factory(self.repo, style=style) def add_with_pad(title, cslabel): label = gtk.Label(title) label.set_alignment(1, 0) headbox = gtk.VBox() headbox.pack_start(label, False, False, 2) headbox.pack_start(gtk.VBox()) table.add_row(headbox, cslabel, yhopt=gtk.FILL|gtk.EXPAND) ## summary of target revision self.target_label = factory() add_with_pad(_('Target:'), self.target_label) ## summary of parent 1 revision self.parent1_label = factory() ## summary of parent 2 revision if needs self.ctxs = self.repo[None].parents() if len(self.ctxs) == 2: add_with_pad(_('Parent 1:'), self.parent1_label) self.parent2_label = factory() add_with_pad(_('Parent 2:'), self.parent2_label) else: add_with_pad(_('Parent:'), self.parent1_label) self.parent2_label = None ## option expander self.expander = gtk.Expander(_('Options:')) self.expander.connect('notify::expanded', self.options_expanded) ### update method (fixed) self.opt_clean = gtk.CheckButton(_('Discard local changes, ' 'no backup (-C/--clean)')) table.add_row(self.expander, self.opt_clean) ### other options (foldable), put later ### automatically merge, if possible (similar to command-line behavior) self.opt_merge = gtk.CheckButton(_('Always merge (when possible)')) ### always show command log widget self.opt_showlog = gtk.CheckButton(_('Always show log')) # signal handlers self.revcombo.connect('changed', lambda b: self.update_summaries()) self.opt_clean.connect('toggled', lambda b: self.update_summaries()) # prepare to show self.update_summaries()