Пример #1
0
    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
Пример #2
0
    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
Пример #3
0
 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)
Пример #4
0
    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)