def remove_tag(self): # gather input data is_local = self.localchk.get_active() name = self.tagentry.get_text() eng_msg = self.engchk.get_active() use_msg = self.customchk.get_active() # verify input if name == "": dialog.error_dialog(self, _("Tag name is empty"), _("Please select tag name to remove")) self.tagentry.grab_focus() return False if use_msg: message = self.msgentry.get_text() else: message = "" try: self.remove_hg_tag(name, message, is_local, english=eng_msg) dialog.info_dialog(self, _("Tagging completed"), _('Tag "%s" has been removed') % name) self.update_tagcombo() except util.Abort, inst: dialog.error_dialog(self, _("Error in tagging"), str(inst)) return False
def add_tag(self): # gather input data is_local = self.localchk.get_active() name = self.tagentry.get_text() rev = self.reventry.get_text() force = self.replacechk.get_active() eng_msg = self.engchk.get_active() use_msg = self.customchk.get_active() message = self.msgentry.get_text() # verify input if name == "": dialog.error_dialog(self, _("Tag input is empty"), _("Please enter tag name")) self.tagentry.grab_focus() return False if use_msg and not message: dialog.error_dialog(self, _("Custom commit message is empty"), _("Please enter commit message")) self.msgentry.grab_focus() return False # add tag to repo try: self.add_hg_tag(name, rev, message, is_local, force=force, english=eng_msg) dialog.info_dialog(self, _("Tagging completed"), _('Tag "%s" has been added') % name) self.update_tagcombo() except util.Abort, inst: dialog.error_dialog(self, _("Error in tagging"), str(inst)) return False
def email_clicked(self, toolbutton, data=None): opts = [] path = hglib.fromutf(self.pathtext.get_text()).strip() rev = self.get_advanced_options().get('rev') if path: opts.extend(['--outgoing', path]) elif not rev: dialog.info_dialog(self, _('No repository selected'), _('Select a peer repository to compare with')) self.pathbox.grab_focus() return if rev: opts.extend(rev) dlg = hgemail.EmailDialog(self.root, opts) self.show_dialog(dlg)
def send(self, test = False): def record_new_value(cpath, history, newvalue): if not newvalue: return if cpath not in history.get_keys(): history.set_value(cpath, []) elif newvalue in history.get_value(cpath): history.get_value(cpath).remove(newvalue) history.get_value(cpath).insert(0, newvalue) totext = hglib.fromutf(self._tobox.child.get_text()) cctext = hglib.fromutf(self._ccbox.child.get_text()) fromtext = hglib.fromutf(self._frombox.child.get_text()) subjtext = hglib.fromutf(self._subjbox.child.get_text()) flagtext = hglib.fromutf(self._flagbox.child.get_text()) inreplyto = hglib.fromutf(self._replyto.get_text()) if not totext: dialog.info_dialog(self, _('Info required'), _('You must specify a recipient')) self._tobox.grab_focus() return if not fromtext: dialog.info_dialog(self, _('Info required'), _('You must specify a sender address')) self._frombox.grab_focus() return if not self.repo: return if self.repo.ui.config('email', 'method', 'smtp') == 'smtp' and not test: if not self.repo.ui.config('smtp', 'host'): dialog.info_dialog(self, _('Info required'), _('You must configure SMTP')) dlg = thgconfig.ConfigDialog(False, focus='smtp.host') dlg.show_all() dlg.run() dlg.hide() self._refresh(False) return if not test: history = settings.Settings('email') record_new_value('email.to', history, totext) record_new_value('email.cc', history, cctext) record_new_value('email.from', history, fromtext) record_new_value('email.subject', history, subjtext) record_new_value('email.flags', history, flagtext) history.write() cmdline = ['hg', 'email', '-f', fromtext, '-t', totext, '-c', cctext] oldpager = os.environ.get('PAGER') if test: if oldpager: del os.environ['PAGER'] cmdline.insert(2, '--test') if flagtext: flags = [f.strip() for f in flagtext.split(',') if f.strip()] for f in flags: cmdline += ['--flag', f] if subjtext: cmdline += ['--subject', subjtext] if self._bundle.get_active(): cmdline += ['--bundle'] if '--outgoing' in self.revargs: self.revargs.remove('--outgoing') elif self._plain.get_active(): cmdline += ['--plain'] elif self._git.get_active(): cmdline += ['--git'] if self._inline.get_active(): cmdline += ['--inline'] if self._attach.get_active(): cmdline += ['--attach'] if self._diffstat.get_active(): cmdline += ['--diffstat'] if inreplyto: cmdline += ['--in-reply-to', inreplyto] start = self.descbuffer.get_start_iter() end = self.descbuffer.get_end_iter() desc = self.descbuffer.get_text(start, end) if desc: cmdline += ['--intro'] tmpfile = None try: if desc or not hasattr(extensions.find('patchbomb'), 'introneeded'): # --desc is interpreted differently after hg 1.5 fd, tmpfile = tempfile.mkstemp(prefix="thg_emaildesc_") os.write(fd, desc) os.close(fd) cmdline += ['--desc', tmpfile] cmdline.extend(self.revargs) dlg = hgcmd.CmdDialog(cmdline) dlg.show_all() dlg.run() dlg.hide() finally: if oldpager: os.environ['PAGER'] = oldpager if tmpfile: os.unlink(tmpfile)