def __init__(self, parent, revs): QtGui.QWidget.__init__(self, parent) self._revs = revs self._revdict = dict(revs) self._layt = QtGui.QVBoxLayout() self._layt.setMargin(0) self.setLayout(self._layt) self._rev_layt = QtGui.QHBoxLayout() self._rev_layt.setMargin(0) self._rev_label = QtGui.QLabel() self._rev_layt.addWidget(self._rev_label) self._revision = completion.GitRefLineEdit() self._rev_layt.addWidget(self._revision) self._layt.addLayout(self._rev_layt) self._radio_layt = QtGui.QHBoxLayout() self._radio_btns = {} # Create the radio buttons for label, rev_list in self._revs: radio = QtGui.QRadioButton() radio.setText(label) radio.setObjectName(label) qtutils.connect_button(radio, self._set_revision_list) self._radio_layt.addWidget(radio) self._radio_btns[label] = radio self._radio_layt.addStretch() self._layt.addLayout(self._radio_layt) self._rev_list = QtGui.QListWidget() self._layt.addWidget(self._rev_list) label, rev_list = self._revs[0] self._radio_btns[label].setChecked(True) qtutils.set_items(self._rev_list, rev_list) self.connect(self._rev_list, SIGNAL('itemSelectionChanged()'), self._rev_list_selection_changed)
def __init__(self, title, button_text, parent): QtGui.QDialog.__init__(self, parent) self.setWindowTitle(title) self.label = QtGui.QLabel() self.label.setText(title) self.lineedit = completion.GitRefLineEdit(self) self.setFocusProxy(self.lineedit) self.ok_button = QtGui.QPushButton() self.ok_button.setText(button_text) self.ok_button.setIcon(qtutils.apply_icon()) self.close_button = QtGui.QPushButton() self.close_button.setText(N_('Close')) self.button_layout = QtGui.QHBoxLayout() self.button_layout.setMargin(defs.no_margin) self.button_layout.setSpacing(defs.button_spacing) self.button_layout.addStretch() self.button_layout.addWidget(self.ok_button) self.button_layout.addWidget(self.close_button) self.main_layout = QtGui.QVBoxLayout() self.main_layout.setMargin(defs.margin) self.main_layout.setSpacing(defs.spacing) self.main_layout.addWidget(self.label) self.main_layout.addWidget(self.lineedit) self.main_layout.addLayout(self.button_layout) self.setLayout(self.main_layout) qtutils.connect_button(self.ok_button, self.accept) qtutils.connect_button(self.close_button, self.reject) self.connect(self.lineedit, SIGNAL('textChanged(QString)'), self.text_changed) self.setWindowModality(Qt.WindowModal) self.ok_button.setEnabled(False)
def __init__(self, parent, revs): QtGui.QWidget.__init__(self, parent) self._revs = revs self._revdict = dict(revs) self._rev_label = QtGui.QLabel() self._revision = completion.GitRefLineEdit() # Create the radio buttons radio_btns = [] self._radio_btns = {} for label, rev_list in self._revs: radio = QtGui.QRadioButton() radio.setText(label) radio.setObjectName(label) qtutils.connect_button(radio, self._set_revision_list) radio_btns.append(radio) self._radio_btns[label] = radio radio_btns.append(qtutils.STRETCH) self._rev_list = QtGui.QListWidget() label, rev_list = self._revs[0] self._radio_btns[label].setChecked(True) qtutils.set_items(self._rev_list, rev_list) self._rev_layt = qtutils.hbox(defs.no_margin, defs.spacing, self._rev_label, self._revision) self._radio_layt = qtutils.hbox(defs.margin, defs.spacing, *radio_btns) self._layt = qtutils.vbox(defs.no_margin, defs.spacing, self._rev_layt, self._radio_layt, self._rev_list) self.setLayout(self._layt) self.connect(self._rev_list, SIGNAL('itemSelectionChanged()'), self._rev_list_selection_changed)
def __init__(self, model, parent=None): QtGui.QDialog.__init__(self, parent) self.model = model self.setWindowModality(Qt.WindowModal) self.resize(700, 400) # Widgets self.title_label = QtGui.QLabel() self.revision_label = QtGui.QLabel() self.revision_label.setText(N_('Revision To Merge')) self.revision = completion.GitRefLineEdit() self.radio_local = QtGui.QRadioButton() self.radio_local.setText(N_('Local Branch')) self.radio_local.setChecked(True) self.radio_remote = QtGui.QRadioButton() self.radio_remote.setText(N_('Tracking Branch')) self.radio_tag = QtGui.QRadioButton() self.radio_tag.setText(N_('Tag')) self.revisions = QtGui.QListWidget() self.revisions.setAlternatingRowColors(True) self.button_viz = QtGui.QPushButton(self) self.button_viz.setText(N_('Visualize')) self.checkbox_squash = QtGui.QCheckBox(self) self.checkbox_squash.setText(N_('Squash')) self.checkbox_commit = QtGui.QCheckBox(self) self.checkbox_commit.setText(N_('Commit')) self.checkbox_commit.setChecked(True) self.checkbox_commit_state = True self.button_cancel = QtGui.QPushButton(self) self.button_cancel.setText(N_('Cancel')) self.button_merge = QtGui.QPushButton(self) self.button_merge.setText(N_('Merge')) # Layouts self.revlayt = QtGui.QHBoxLayout() self.revlayt.addWidget(self.revision_label) self.revlayt.addWidget(self.revision) self.revlayt.addStretch() self.revlayt.addWidget(self.title_label) self.radiolayt = QtGui.QHBoxLayout() self.radiolayt.addWidget(self.radio_local) self.radiolayt.addWidget(self.radio_remote) self.radiolayt.addWidget(self.radio_tag) self.buttonlayt = QtGui.QHBoxLayout() self.buttonlayt.setSpacing(defs.button_spacing) self.buttonlayt.addWidget(self.button_viz) self.buttonlayt.addStretch() self.buttonlayt.addWidget(self.checkbox_squash) self.buttonlayt.addWidget(self.checkbox_commit) self.buttonlayt.addWidget(self.button_cancel) self.buttonlayt.addWidget(self.button_merge) self.mainlayt = QtGui.QVBoxLayout() self.mainlayt.setMargin(defs.margin) self.mainlayt.setSpacing(defs.spacing) self.mainlayt.addLayout(self.radiolayt) self.mainlayt.addWidget(self.revisions) self.mainlayt.addLayout(self.revlayt) self.mainlayt.addLayout(self.buttonlayt) self.setLayout(self.mainlayt) self.revision.setFocus() # Signal/slot connections self.connect(self.revision, SIGNAL('textChanged(QString)'), self.update_title) self.connect(self.revisions, SIGNAL('itemSelectionChanged()'), self.revision_selected) qtutils.connect_button(self.button_cancel, self.reject) qtutils.connect_button(self.checkbox_squash, self.toggle_squash) qtutils.connect_button(self.radio_local, self.update_revisions) qtutils.connect_button(self.radio_remote, self.update_revisions) qtutils.connect_button(self.radio_tag, self.update_revisions) qtutils.connect_button(self.button_merge, self.merge_revision) qtutils.connect_button(self.button_viz, self.viz_revision) # Observer messages model.add_observer(model.message_updated, self.update_all) self.update_all()
def __init__(self, model, parent=None): Dialog.__init__(self, parent=parent) self.setAttribute(Qt.WA_MacMetalStyle) self.setWindowTitle(N_('Create Branch')) if parent is not None: self.setWindowModality(Qt.WindowModal) self.model = model self.opts = CreateOpts(model) self.thread = CreateThread(self.opts, self) self.progress = QtGui.QProgressDialog(self) self.progress.setRange(0, 0) self.progress.setCancelButton(None) self.progress.setWindowTitle(N_('Create Branch')) self.progress.setWindowModality(Qt.WindowModal) self.branch_name_label = QtGui.QLabel() self.branch_name_label.setText(N_('Branch Name')) self.branch_name = QtGui.QLineEdit() self.rev_label = QtGui.QLabel() self.rev_label.setText(N_('Starting Revision')) self.revision = completion.GitRefLineEdit() current = gitcmds.current_branch() if current: self.revision.setText(current) self.local_radio = QtGui.QRadioButton() self.local_radio.setText(N_('Local branch')) self.local_radio.setChecked(True) self.remote_radio = QtGui.QRadioButton() self.remote_radio.setText(N_('Tracking branch')) self.tag_radio = QtGui.QRadioButton() self.tag_radio.setText(N_('Tag')) self.branch_list = QtGui.QListWidget() self.update_existing_label = QtGui.QLabel() self.update_existing_label.setText(N_('Update Existing Branch:')) self.no_update_radio = QtGui.QRadioButton() self.no_update_radio.setText(N_('No')) self.ffwd_only_radio = QtGui.QRadioButton() self.ffwd_only_radio.setText(N_('Fast Forward Only')) self.ffwd_only_radio.setChecked(True) self.reset_radio = QtGui.QRadioButton() self.reset_radio.setText(N_('Reset')) self.fetch_checkbox = QtGui.QCheckBox() self.fetch_checkbox.setText(N_('Fetch Tracking Branch')) self.fetch_checkbox.setChecked(True) self.checkout_checkbox = QtGui.QCheckBox() self.checkout_checkbox.setText(N_('Checkout After Creation')) self.checkout_checkbox.setChecked(True) self.create_button = qtutils.create_button(text=N_('Create Branch'), icon=qtutils.git_icon()) self.create_button.setDefault(True) self.close_button = qtutils.create_button(text=N_('Close')) self.rev_start_group = QtGui.QGroupBox() self.rev_start_group.setTitle(N_('Starting Revision')) self.option_group = QtGui.QGroupBox() self.option_group.setTitle(N_('Options')) self.options_checkbox_layout = qtutils.vbox(defs.margin, defs.spacing, self.fetch_checkbox, self.checkout_checkbox) self.options_bottom_layout = qtutils.hbox(defs.margin, defs.spacing, self.options_checkbox_layout, qtutils.STRETCH) self.branch_name_layout = qtutils.hbox(defs.margin, defs.spacing, self.branch_name_label, self.branch_name) self.rev_start_radiobtn_layout = qtutils.hbox(defs.margin, defs.spacing, self.local_radio, self.remote_radio, self.tag_radio, qtutils.STRETCH) self.rev_start_textinput_layout = qtutils.hbox(defs.no_margin, defs.spacing, self.rev_label, self.revision) self.rev_start_layout = qtutils.vbox(defs.no_margin, defs.spacing, self.rev_start_radiobtn_layout, self.branch_list, self.rev_start_textinput_layout) self.rev_start_group.setLayout(self.rev_start_layout) self.options_radio_layout = qtutils.hbox(defs.no_margin, defs.spacing, self.update_existing_label, self.no_update_radio, self.ffwd_only_radio, self.reset_radio) self.options_grp_layout = qtutils.vbox(defs.no_margin, defs.spacing, self.options_radio_layout, self.options_bottom_layout) self.option_group.setLayout(self.options_grp_layout) self.buttons_layout = qtutils.hbox(defs.margin, defs.spacing, self.create_button, self.close_button) self.options_section_layout = qtutils.hbox(defs.no_margin, defs.spacing, self.option_group, self.buttons_layout) self.main_layout = qtutils.vbox(defs.margin, defs.spacing, self.branch_name_layout, self.rev_start_group, self.options_section_layout) self.setLayout(self.main_layout) qtutils.connect_button(self.close_button, self.reject) qtutils.connect_button(self.create_button, self.create_branch) qtutils.connect_button(self.local_radio, self.display_model) qtutils.connect_button(self.remote_radio, self.display_model) qtutils.connect_button(self.tag_radio, self.display_model) self.connect(self.branch_list, SIGNAL('itemSelectionChanged()'), self.branch_item_changed) self.connect(self.thread, SIGNAL(COMMAND_SIGNAL), self.thread_command, Qt.QueuedConnection) self.connect(self.thread, SIGNAL('done(PyQt_PyObject)'), self.thread_done, Qt.QueuedConnection) self.resize(555, 333) self.display_model()
def __init__(self, parent, a=None, b=None, expr=None, title=None, hide_expr=False): QtGui.QDialog.__init__(self, parent) self.setAttribute(Qt.WA_MacMetalStyle) self.a = a self.b = b self.expr = expr if title is None: title = N_('git-cola diff') self.setWindowTitle(title) self.setWindowModality(QtCore.Qt.WindowModal) self._expr = completion.GitRefLineEdit(parent=self) if expr is not None: self._expr.setText(expr) if expr is None or hide_expr: self._expr.hide() self._tree = standard.TreeWidget(self) self._tree.setSelectionMode(self._tree.ExtendedSelection) self._tree.setHeaderHidden(True) self._diff_btn = QtGui.QPushButton(N_('Compare')) self._diff_btn.setIcon(qtutils.ok_icon()) self._diff_btn.setEnabled(False) self._close_btn = QtGui.QPushButton(N_('Close')) self._close_btn.setIcon(qtutils.close_icon()) self._button_layt = QtGui.QHBoxLayout() self._button_layt.setMargin(0) self._button_layt.addStretch() self._button_layt.addWidget(self._diff_btn) self._button_layt.addWidget(self._close_btn) self._layt = QtGui.QVBoxLayout() self._layt.setMargin(defs.margin) self._layt.setSpacing(defs.spacing) self._layt.addWidget(self._expr) self._layt.addWidget(self._tree) self._layt.addLayout(self._button_layt) self.setLayout(self._layt) self.connect(self._tree, SIGNAL('itemSelectionChanged()'), self._tree_selection_changed) self.connect(self._tree, SIGNAL('itemDoubleClicked(QTreeWidgetItem*,int)'), self._tree_double_clicked) self.connect(self._expr, SIGNAL('textChanged(QString)'), self.text_changed) self.connect(self._expr, SIGNAL('returnPressed()'), self.refresh) qtutils.connect_button(self._diff_btn, self.diff) qtutils.connect_button(self._close_btn, self.close) qtutils.add_close_action(self) self.resize(720, 420) self.refresh()
def __init__(self, cfg, model, parent=None): QtGui.QDialog.__init__(self, parent) self.cfg = cfg self.model = model if parent is not None: self.setWindowModality(Qt.WindowModal) self.setAttribute(Qt.WA_MacMetalStyle) # Widgets self.title_label = QtGui.QLabel() self.revision_label = QtGui.QLabel() self.revision_label.setText(N_('Revision To Merge')) self.revision = completion.GitRefLineEdit() self.revision.setFocus() self.radio_local = QtGui.QRadioButton() self.radio_local.setText(N_('Local Branch')) self.radio_local.setChecked(True) self.radio_remote = QtGui.QRadioButton() self.radio_remote.setText(N_('Tracking Branch')) self.radio_tag = QtGui.QRadioButton() self.radio_tag.setText(N_('Tag')) self.revisions = QtGui.QListWidget() self.revisions.setAlternatingRowColors(True) self.button_viz = QtGui.QPushButton() self.button_viz.setText(N_('Visualize')) self.checkbox_squash = QtGui.QCheckBox() self.checkbox_squash.setText(N_('Squash')) self.checkbox_noff = QtGui.QCheckBox() self.checkbox_noff.setText(N_('No fast forward')) self.checkbox_noff.setChecked(False) self.checkbox_noff_state = False self.checkbox_commit = QtGui.QCheckBox() self.checkbox_commit.setText(N_('Commit')) self.checkbox_commit.setChecked(True) self.checkbox_commit_state = True self.checkbox_sign = QtGui.QCheckBox() self.checkbox_sign.setText(N_('Create Signed Commit')) self.checkbox_sign.setChecked(cfg.get('cola.signcommits', False)) self.button_cancel = QtGui.QPushButton() self.button_cancel.setText(N_('Cancel')) self.button_merge = QtGui.QPushButton() self.button_merge.setText(N_('Merge')) # Layouts self.revlayt = qtutils.hbox(defs.no_margin, defs.spacing, self.revision_label, self.revision, qtutils.STRETCH, self.title_label) self.radiolayt = qtutils.hbox(defs.no_margin, defs.spacing, self.radio_local, self.radio_remote, self.radio_tag) self.buttonlayt = qtutils.hbox( defs.no_margin, defs.button_spacing, self.button_viz, qtutils.STRETCH, self.checkbox_squash, self.checkbox_noff, self.checkbox_commit, self.checkbox_sign, self.button_cancel, self.button_merge) self.mainlayt = qtutils.vbox(defs.margin, defs.spacing, self.radiolayt, self.revisions, self.revlayt, self.buttonlayt) self.setLayout(self.mainlayt) # Signal/slot connections self.connect(self.revision, SIGNAL('textChanged(QString)'), self.update_title) self.connect(self.revisions, SIGNAL('itemSelectionChanged()'), self.revision_selected) qtutils.connect_button(self.button_cancel, self.reject) qtutils.connect_button(self.checkbox_squash, self.toggle_squash) qtutils.connect_button(self.radio_local, self.update_revisions) qtutils.connect_button(self.radio_remote, self.update_revisions) qtutils.connect_button(self.radio_tag, self.update_revisions) qtutils.connect_button(self.button_merge, self.merge_revision) qtutils.connect_button(self.button_viz, self.viz_revision) # Observer messages model.add_observer(model.message_updated, self.update_all) self.update_all() self.resize(700, 400)
def __init__(self, opts, parent=None): standard.Dialog.__init__(self, parent=parent) self.setAttribute(Qt.WA_MacMetalStyle) self.setWindowTitle(N_('Create Tag')) if parent is not None: self.setWindowModality(QtCore.Qt.WindowModal) self.opts = opts self.main_layt = QtGui.QVBoxLayout(self) self.main_layt.setContentsMargins(6, 12, 6, 6) # Form layout for inputs self.input_form_layt = QtGui.QFormLayout() self.input_form_layt.setFieldGrowthPolicy(QtGui.QFormLayout.ExpandingFieldsGrow) # Tag label self.tag_name_label = QtGui.QLabel(self) self.tag_name_label.setText(N_('Name')) self.input_form_layt.setWidget(0, QtGui.QFormLayout.LabelRole, self.tag_name_label) 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')) self.input_form_layt.setWidget(0, QtGui.QFormLayout.FieldRole, self.tag_name) # Sign Tag self.sign_label = QtGui.QLabel(self) self.sign_label.setText(N_('Sign Tag')) self.input_form_layt.setWidget(1, QtGui.QFormLayout.LabelRole, self.sign_label) self.sign_tag = QtGui.QCheckBox(self) self.sign_tag.setChecked(opts.sign) self.sign_tag.setToolTip(N_('Whether to sign the tag (git tag -s)')) self.input_form_layt.setWidget(1, QtGui.QFormLayout.FieldRole, self.sign_tag) self.main_layt.addLayout(self.input_form_layt) # Tag message self.tag_msg_label = QtGui.QLabel(self) self.tag_msg_label.setText(N_('Message')) self.input_form_layt.setWidget(2, QtGui.QFormLayout.LabelRole, self.tag_msg_label) self.tag_msg = text.HintedTextEdit(N_('Tag message...'), self) self.tag_msg.setToolTip(N_('Specifies the tag message')) self.tag_msg.enable_hint(True) self.input_form_layt.setWidget(2, QtGui.QFormLayout.FieldRole, self.tag_msg) # Revision self.rev_label = QtGui.QLabel(self) self.rev_label.setText(N_('Revision')) self.input_form_layt.setWidget(3, QtGui.QFormLayout.LabelRole, self.rev_label) self.revision = completion.GitRefLineEdit() self.revision.setText(self.opts.ref) self.revision.setToolTip(N_('Specifies the SHA-1 to tag')) self.input_form_layt.setWidget(3, QtGui.QFormLayout.FieldRole, self.revision) # Buttons self.button_hbox_layt = QtGui.QHBoxLayout() self.button_hbox_layt.addStretch() self.create_button = qtutils.create_button(text=N_('Create Tag'), icon=qtutils.git_icon()) self.button_hbox_layt.addWidget(self.create_button) self.main_layt.addLayout(self.button_hbox_layt) self.close_button = qtutils.create_button(text=N_('Close')) self.button_hbox_layt.addWidget(self.close_button) connect_button(self.close_button, self.accept) connect_button(self.create_button, self.create_tag) self.resize(506, 295)
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))
def __init__(self, parent, a=None, b=None, expr=None, title=None, hide_expr=False): QtGui.QDialog.__init__(self, parent) self.setAttribute(Qt.WA_MacMetalStyle) self.a = a self.b = b self.diff_expr = expr if title is None: title = N_('git-cola diff') self.setWindowTitle(title) self.setWindowModality(QtCore.Qt.WindowModal) self.expr = completion.GitRefLineEdit(parent=self) if expr is not None: self.expr.setText(expr) if expr is None or hide_expr: self.expr.hide() self.tree = filetree.FileTree(parent=self) self.diff_button = QtGui.QPushButton(N_('Compare')) self.diff_button.setIcon(qtutils.ok_icon()) self.diff_button.setEnabled(False) self.close_button = QtGui.QPushButton(N_('Close')) self.close_button.setIcon(qtutils.close_icon()) self.button_layout = qtutils.hbox(defs.no_margin, defs.spacing, qtutils.STRETCH, self.diff_button, self.close_button) self.main_layout = qtutils.vbox(defs.margin, defs.spacing, self.expr, self.tree, self.button_layout) self.setLayout(self.main_layout) self.connect(self.tree, SIGNAL('itemSelectionChanged()'), self.tree_selection_changed) self.connect(self.tree, SIGNAL('itemDoubleClicked(QTreeWidgetItem*,int)'), self.tree_double_clicked) self.connect(self.expr, SIGNAL('textChanged(QString)'), self.text_changed) self.connect(self.tree, SIGNAL('up()'), self.focus_input) self.connect(self.expr, SIGNAL('activated()'), self.focus_tree) self.connect(self.expr, SIGNAL('down()'), self.focus_tree) self.connect(self.expr, SIGNAL('enter()'), self.focus_tree) self.connect(self.expr, SIGNAL('return()'), self.focus_tree) qtutils.connect_button(self.diff_button, self.diff) qtutils.connect_button(self.close_button, self.close) qtutils.add_action(self, 'Focus Input', self.focus_input, 'Ctrl+L') qtutils.add_close_action(self) self.resize(720, 420) self.refresh()
def __init__(self, cfg, model, parent=None): QtGui.QDialog.__init__(self, parent) self.cfg = cfg self.model = model if parent is not None: self.setWindowModality(Qt.WindowModal) self.setAttribute(Qt.WA_MacMetalStyle) # Widgets self.title_label = QtGui.QLabel() self.revision_label = QtGui.QLabel() self.revision_label.setText(N_('Revision to Merge')) self.revision = completion.GitRefLineEdit() self.revision.setFocus() self.revision.setToolTip(N_('Revision to Merge')) self.radio_local = qtutils.radio(text=N_('Local Branch'), checked=True) self.radio_remote = qtutils.radio(text=N_('Tracking Branch')) self.radio_tag = qtutils.radio(text=N_('Tag')) self.revisions = QtGui.QListWidget() self.revisions.setAlternatingRowColors(True) self.button_viz = qtutils.create_button(text=N_('Visualize'), icon=icons.visualize()) tooltip = N_('Squash the merged commit(s) into a single commit') self.checkbox_squash = qtutils.checkbox(text=N_('Squash'), tooltip=tooltip) tooltip = N_('Always create a merge commit when enabled, ' 'even when the merge is a fast-forward update') self.checkbox_noff = qtutils.checkbox(text=N_('No fast forward'), tooltip=tooltip, checked=False) self.checkbox_noff_state = False tooltip = N_('Commit the merge if there are no conflicts. ' 'Uncheck to leave the merge uncommitted') self.checkbox_commit = qtutils.checkbox(text=N_('Commit'), tooltip=tooltip, checked=True) self.checkbox_commit_state = True text = N_('Create Signed Commit') checked = cfg.get('cola.signcommits', False) tooltip = N_('GPG-sign the merge commit') self.checkbox_sign = qtutils.checkbox(text=text, checked=checked, tooltip=tooltip) self.button_close = qtutils.close_button() icon = icons.merge() self.button_merge = qtutils.create_button(text=N_('Merge'), icon=icon) # Layouts self.revlayt = qtutils.hbox(defs.no_margin, defs.spacing, self.revision_label, self.revision, qtutils.STRETCH, self.title_label) self.radiolayt = qtutils.hbox(defs.no_margin, defs.spacing, self.radio_local, self.radio_remote, self.radio_tag) self.buttonlayt = qtutils.hbox( defs.no_margin, defs.button_spacing, self.button_viz, qtutils.STRETCH, self.checkbox_squash, self.checkbox_noff, self.checkbox_commit, self.checkbox_sign, self.button_close, self.button_merge) self.mainlayt = qtutils.vbox(defs.margin, defs.spacing, self.radiolayt, self.revisions, self.revlayt, self.buttonlayt) self.setLayout(self.mainlayt) # Signal/slot connections self.connect(self.revision, SIGNAL('textChanged(QString)'), self.update_title) self.connect(self.revisions, SIGNAL('itemSelectionChanged()'), self.revision_selected) qtutils.connect_button(self.button_close, self.reject) qtutils.connect_button(self.checkbox_squash, self.toggle_squash) qtutils.connect_button(self.radio_local, self.update_revisions) qtutils.connect_button(self.radio_remote, self.update_revisions) qtutils.connect_button(self.radio_tag, self.update_revisions) qtutils.connect_button(self.button_merge, self.merge_revision) qtutils.connect_button(self.button_viz, self.viz_revision) # Observer messages model.add_observer(model.message_updated, self.update_all) self.update_all() self.resize(700, 400)