def __init__(self, ref, shortref=None, parent=None): QtGui.QDialog.__init__(self, parent) if parent is not None: self.setWindowModality(Qt.WindowModal) # input self.ref = ref if shortref is None: shortref = ref # outputs self.fmt = None filename = '%s-%s' % (os.path.basename(core.getcwd()), shortref) self.prefix = filename + '/' self.filename = filename # widgets self.setWindowTitle(N_('Save Archive')) self.filetext = QtGui.QLineEdit() self.filetext.setText(self.filename) self.browse = qtutils.create_toolbutton(icon=icons.file_zip()) self.format_strings = ( git.archive('--list')[STDOUT].rstrip().splitlines()) self.format_combo = QtGui.QComboBox() self.format_combo.setEditable(False) self.format_combo.addItems(self.format_strings) self.close_button = qtutils.close_button() self.save_button = qtutils.create_button(text=N_('Save'), icon=icons.save(), default=True) self.prefix_label = QtGui.QLabel() self.prefix_label.setText(N_('Prefix')) self.prefix_text = QtGui.QLineEdit() self.prefix_text.setText(self.prefix) self.prefix_group = ExpandableGroupBox() self.prefix_group.setTitle(N_('Advanced')) # layouts self.filelayt = qtutils.hbox(defs.no_margin, defs.spacing, self.browse, self.filetext, self.format_combo) self.prefixlayt = qtutils.hbox(defs.margin, defs.spacing, self.prefix_label, self.prefix_text) self.prefix_group.setLayout(self.prefixlayt) self.prefix_group.set_expanded(False) self.btnlayt = qtutils.hbox(defs.no_margin, defs.spacing, qtutils.STRETCH, self.close_button, self.save_button) self.mainlayt = qtutils.vbox(defs.margin, defs.no_spacing, self.filelayt, self.prefix_group, qtutils.STRETCH, self.btnlayt) self.setLayout(self.mainlayt) self.resize(defs.scale(520), defs.scale(10)) # initial setup; done before connecting to avoid # signal/slot side-effects if 'tar.gz' in self.format_strings: idx = self.format_strings.index('tar.gz') elif 'zip' in self.format_strings: idx = self.format_strings.index('zip') else: idx = 0 self.format_combo.setCurrentIndex(idx) self.update_filetext_for_format(idx) # connections self.connect(self.filetext, SIGNAL('textChanged(QString)'), self.filetext_changed) self.connect(self.prefix_text, SIGNAL('textChanged(QString)'), self.prefix_text_changed) self.connect(self.format_combo, SIGNAL('currentIndexChanged(int)'), self.update_filetext_for_format) self.connect(self.prefix_group, SIGNAL('expanded(bool)'), self.prefix_group_expanded) self.connect(self, SIGNAL('accepted()'), self.archive_saved) qtutils.connect_button(self.browse, self.choose_filename) qtutils.connect_button(self.close_button, self.reject) qtutils.connect_button(self.save_button, self.save_archive)
def __init__(self, opts, settings=None, parent=None): standard.Dialog.__init__(self, parent=parent) self.opts = opts self.setAttribute(Qt.WA_MacMetalStyle) self.setWindowTitle(N_('Create Tag')) if parent is not None: self.setWindowModality(QtCore.Qt.WindowModal) # Tag label self.tag_name_label = QtGui.QLabel(self) self.tag_name_label.setText(N_('Name')) self.tag_name = text.HintedLineEdit(N_('vX.Y.Z'), self) self.tag_name.set_value(opts.name) self.tag_name.setToolTip(N_('Specifies the tag name')) # Sign Tag self.sign_label = QtGui.QLabel(self) self.sign_label.setText(N_('Sign Tag')) tooltip = N_('Whether to sign the tag (git tag -s)') self.sign_tag = qtutils.checkbox(checked=True, tooltip=tooltip) # Tag message self.tag_msg_label = QtGui.QLabel(self) self.tag_msg_label.setText(N_('Message')) self.tag_msg = text.HintedTextEdit(N_('Tag message...'), self) self.tag_msg.setToolTip(N_('Specifies the tag message')) self.tag_msg.hint.enable(True) # Revision self.rev_label = QtGui.QLabel(self) self.rev_label.setText(N_('Revision')) self.revision = completion.GitRefLineEdit() self.revision.setText(self.opts.ref) self.revision.setToolTip(N_('Specifies the SHA-1 to tag')) # Buttons self.create_button = qtutils.create_button(text=N_('Create Tag'), icon=icons.tag()) self.close_button = qtutils.close_button() # Form layout for inputs self.input_layout = qtutils.form(defs.margin, defs.spacing, (self.tag_name_label, self.tag_name), (self.tag_msg_label, self.tag_msg), (self.rev_label, self.revision), (self.sign_label, self.sign_tag)) self.button_layout = qtutils.hbox(defs.no_margin, defs.spacing, qtutils.STRETCH, self.create_button, self.close_button) self.main_layt = qtutils.vbox(defs.margin, defs.spacing, self.input_layout, self.button_layout) self.setLayout(self.main_layt) qtutils.connect_button(self.close_button, self.close) qtutils.connect_button(self.create_button, self.create_tag) if not self.restore_state(settings=settings): self.resize(defs.scale(720), defs.scale(210))