def __init__(self, parent, a=None, b=None, expr=None): super(FileDiffDialog, self).__init__(parent) self.setAttribute(Qt.WA_MacMetalStyle) self.a = a self.b = b self.expr = expr self.setWindowTitle('Select File(s)') self.setWindowModality(QtCore.Qt.WindowModal) self._tree = standard.TreeWidget(self) self._tree.setRootIsDecorated(False) self._tree.setSelectionMode(self._tree.ExtendedSelection) self._tree.setHeaderHidden(True) self._diff_btn = QtGui.QPushButton('Compare') self._diff_btn.setIcon(qtutils.ok_icon()) self._diff_btn.setEnabled(False) self._close_btn = QtGui.QPushButton('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._tree) self._layt.addLayout(self._button_layt) self.setLayout(self._layt) qtutils.add_close_action(self) 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._diff_btn, SIGNAL('clicked()'), self.diff) self.connect(self._close_btn, SIGNAL('clicked()'), self.close) if self.expr: self.diff_arg = tuple(utils.shell_split(self.expr)) elif self.b is None: self.diff_arg = (self.a,) else: self.diff_arg = (self.a, self.b) self.resize(720, 420)
def __init__(self, parent, a=None, b=None, expr=None): QtGui.QDialog.__init__(self, parent) self.setAttribute(Qt.WA_MacMetalStyle) self.a = a self.b = b self.expr = expr self.setWindowTitle('Select File(s)') self.setWindowModality(QtCore.Qt.WindowModal) self._tree = standard.TreeWidget(self) self._tree.setRootIsDecorated(False) self._tree.setSelectionMode(self._tree.ExtendedSelection) self._tree.setHeaderHidden(True) self._diff_btn = QtGui.QPushButton('Compare') self._diff_btn.setIcon(qtutils.ok_icon()) self._diff_btn.setEnabled(False) self._close_btn = QtGui.QPushButton('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._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) qtutils.connect_button(self._diff_btn, self.diff) qtutils.connect_button(self._close_btn, self.close) qtutils.add_close_action(self) if self.expr: self.diff_arg = tuple(utils.shell_split(self.expr)) elif self.b is None: self.diff_arg = (self.a,) else: self.diff_arg = (self.a, self.b) self.resize(720, 420)
def __init__(self, parent, a, b): QtGui.QDialog.__init__(self, parent) self.a = a self.b = b self.setWindowTitle('Select File(s)') self._tree = QtGui.QTreeWidget(self) self._tree.setAlternatingRowColors(True) self._tree.setRootIsDecorated(False) self._tree.setSelectionMode(self._tree.ExtendedSelection) self._tree.setUniformRowHeights(True) self._tree.setAllColumnsShowFocus(True) self._tree.setHeaderHidden(True) self._diff_btn = QtGui.QPushButton('Compare') self._diff_btn.setIcon(qtutils.ok_icon()) self._diff_btn.setEnabled(False) self._close_btn = QtGui.QPushButton('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._tree) self._layt.addLayout(self._button_layt) self.setLayout(self._layt) qtutils.add_close_action(self) 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._diff_btn, SIGNAL('clicked()'), self.diff) self.connect(self._close_btn, SIGNAL('clicked()'), self.close) self.diff_arg = (self.a, self.b) self.resize(720, 420)
def __init__(self, parent, action): """Customizes the dialog based on the remote action """ standard.Dialog.__init__(self, parent=parent) self.setWindowModality(QtCore.Qt.WindowModal) self.resize(666, 420) self._main_vbox_layt = QtGui.QVBoxLayout(self) self._main_vbox_layt.setMargin(defs.margin) self._main_vbox_layt.setSpacing(defs.spacing) # Local branch section self._local_branch_hbox_layt = QtGui.QHBoxLayout() # Exposed self.local_label = QtGui.QLabel(self) self.local_label.setText(self.tr('Local Branches')) # Exposed self.local_branch = QtGui.QLineEdit(self) # Exposed self.local_branches = QtGui.QListWidget(self) # Remote branch section self._remote_branch_hbox_layt = QtGui.QHBoxLayout() self._remote_label = QtGui.QLabel(self) self._remote_label.setText(self.tr('Remote')) # Exposed self.remotename = QtGui.QLineEdit(self) # Exposed self.remotes = QtGui.QListWidget(self) self._remote_branches_hbox_layt = QtGui.QHBoxLayout() # Exposed self.remote_label = QtGui.QLabel(self) self.remote_label.setText(self.tr('Remote Branch')) # Exposed self.remote_branch = QtGui.QLineEdit(self) self.remote_branches = QtGui.QListWidget(self) self._options_hbox_layt = QtGui.QHBoxLayout() self._options_hbox_layt.setSpacing(defs.spacing) self._options_hbox_layt.addStretch() # Exposed self.ffwd_only_checkbox = QtGui.QCheckBox(self) self.ffwd_only_checkbox.setText(self.tr('Fast Forward Only ')) self.ffwd_only_checkbox.setChecked(True) self.ffwd_only_checkbox.setObjectName("ffwd_only_checkbox") # Exposed self.tags_checkbox = QtGui.QCheckBox(self) self.tags_checkbox.setText(self.tr('Include tags ')) self.rebase_checkbox = QtGui.QCheckBox(self) self.rebase_checkbox.setText(self.tr('Rebase ')) # Exposed self.action_button = QtGui.QPushButton(self) self.action_button.setText(self.tr('Push')) self.action_button.setIcon(qtutils.ok_icon()) # Exposed self.close_button = QtGui.QPushButton(self) self.close_button.setText(self.tr('Close')) self.close_button.setIcon(qtutils.close_icon()) # connections self.connect(self.close_button, SIGNAL('released()'), self.reject) if action: self.action_button.setText(action.title()) self.setWindowTitle(action.title()) if action == 'pull': self.tags_checkbox.hide() self.ffwd_only_checkbox.hide() self.local_label.hide() self.local_branch.hide() self.local_branches.hide() self.remote_branch.setFocus() else: self.rebase_checkbox.hide() self.remotename.setFocus() self.layout_remotes() if action == 'push': self.layout_local_branches() self.layout_remote_branches() else: # fetch and pull self.layout_remote_branches() self.layout_local_branches() self.layout_options()
def __init__(self, model, action, title, parent=None): """Customizes the dialog based on the remote action """ standard.Dialog.__init__(self, parent=parent) self.model = model self.action = action self.filtered_remote_branches = [] self.selected_remotes = [] self.setAttribute(Qt.WA_MacMetalStyle) self.setWindowTitle(title) if parent is not None: self.setWindowModality(Qt.WindowModal) self.task_runner = TaskRunner(self) self.progress = ProgressDialog(title, N_('Updating'), self) self.local_label = QtGui.QLabel() self.local_label.setText(N_('Local Branch')) self.local_branch = QtGui.QLineEdit() self.local_branches = QtGui.QListWidget() self.local_branches.addItems(self.model.local_branches) self.remote_label = QtGui.QLabel() self.remote_label.setText(N_('Remote')) self.remote_name = QtGui.QLineEdit() self.remotes = QtGui.QListWidget() if action == PUSH: self.remotes.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) self.remotes.addItems(self.model.remotes) self.remote_branch_label = QtGui.QLabel() self.remote_branch_label.setText(N_('Remote Branch')) self.remote_branch = QtGui.QLineEdit() self.remote_branches = QtGui.QListWidget() self.remote_branches.addItems(self.model.remote_branches) self.ffwd_only_checkbox = QtGui.QCheckBox() self.ffwd_only_checkbox.setText(N_('Fast Forward Only ')) self.ffwd_only_checkbox.setChecked(True) self.tags_checkbox = QtGui.QCheckBox() self.tags_checkbox.setText(N_('Include tags ')) self.rebase_checkbox = QtGui.QCheckBox() self.rebase_checkbox.setText(N_('Rebase ')) self.action_button = QtGui.QPushButton() self.action_button.setText(title) self.action_button.setIcon(qtutils.ok_icon()) self.close_button = QtGui.QPushButton() self.close_button.setText(N_('Close')) self.close_button.setIcon(qtutils.close_icon()) self.local_branch_layout = QtGui.QHBoxLayout() self.local_branch_layout.addWidget(self.local_label) self.local_branch_layout.addWidget(self.local_branch) self.remote_branch_layout = QtGui.QHBoxLayout() self.remote_branch_layout.addWidget(self.remote_label) self.remote_branch_layout.addWidget(self.remote_name) self.remote_branches_layout = QtGui.QHBoxLayout() self.remote_branches_layout.addWidget(self.remote_branch_label) self.remote_branches_layout.addWidget(self.remote_branch) self.options_layout = QtGui.QHBoxLayout() self.options_layout.setSpacing(defs.button_spacing) self.options_layout.addStretch() self.options_layout.addWidget(self.ffwd_only_checkbox) self.options_layout.addWidget(self.tags_checkbox) self.options_layout.addWidget(self.rebase_checkbox) self.options_layout.addWidget(self.action_button) self.options_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.addLayout(self.remote_branch_layout) self.main_layout.addWidget(self.remotes) if action == PUSH: self.main_layout.addLayout(self.local_branch_layout) self.main_layout.addWidget(self.local_branches) self.main_layout.addLayout(self.remote_branches_layout) self.main_layout.addWidget(self.remote_branches) else: # fetch and pull self.main_layout.addLayout(self.remote_branches_layout) self.main_layout.addWidget(self.remote_branches) self.main_layout.addLayout(self.local_branch_layout) self.main_layout.addWidget(self.local_branches) self.main_layout.addLayout(self.options_layout) self.setLayout(self.main_layout) default_remote = gitcmds.default_remote() or 'origin' remotes = self.model.remotes if default_remote in remotes: idx = remotes.index(default_remote) if self.select_remote(idx): self.remote_name.setText(default_remote) else: if self.select_first_remote(): self.remote_name.setText(remotes[0]) # Trim the remote list to just the default remote self.update_remotes() self.set_field_defaults() # Setup signals and slots self.connect(self.remotes, SIGNAL('itemSelectionChanged()'), self.update_remotes) self.connect(self.local_branches, SIGNAL('itemSelectionChanged()'), self.update_local_branches) self.connect(self.remote_branches, SIGNAL('itemSelectionChanged()'), self.update_remote_branches) connect_button(self.action_button, self.action_callback) connect_button(self.close_button, self.close) qtutils.add_action(self, N_('Close'), self.close, QtGui.QKeySequence.Close, 'Esc') if action == PULL: self.tags_checkbox.hide() self.ffwd_only_checkbox.hide() self.local_label.hide() self.local_branch.hide() self.local_branches.hide() self.remote_branch.setFocus() else: self.rebase_checkbox.hide() if not self.restore_state(): self.resize(666, 420) self.remote_name.setFocus()
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, model, action, title, parent=None): """Customizes the dialog based on the remote action """ standard.Dialog.__init__(self, parent=parent) self.model = model self.action = action self.filtered_remote_branches = [] self.selected_remotes = [] self.setAttribute(Qt.WA_MacMetalStyle) self.setWindowTitle(title) if parent is not None: self.setWindowModality(Qt.WindowModal) self.task_runner = TaskRunner(self) self.progress = ProgressDialog(title, N_('Updating'), self) self.local_label = QtGui.QLabel() self.local_label.setText(N_('Local Branch')) self.local_branch = QtGui.QLineEdit() self.local_branches = QtGui.QListWidget() self.local_branches.addItems(self.model.local_branches) self.remote_label = QtGui.QLabel() self.remote_label.setText(N_('Remote')) self.remote_name = QtGui.QLineEdit() self.remotes = QtGui.QListWidget() if action == PUSH: self.remotes.setSelectionMode( QtGui.QAbstractItemView.ExtendedSelection) self.remotes.addItems(self.model.remotes) self.remote_branch_label = QtGui.QLabel() self.remote_branch_label.setText(N_('Remote Branch')) self.remote_branch = QtGui.QLineEdit() self.remote_branches = QtGui.QListWidget() self.remote_branches.addItems(self.model.remote_branches) self.ffwd_only_checkbox = QtGui.QCheckBox() self.ffwd_only_checkbox.setText(N_('Fast Forward Only ')) self.ffwd_only_checkbox.setChecked(True) self.tags_checkbox = QtGui.QCheckBox() self.tags_checkbox.setText(N_('Include tags ')) self.rebase_checkbox = QtGui.QCheckBox() self.rebase_checkbox.setText(N_('Rebase ')) self.action_button = QtGui.QPushButton() self.action_button.setText(title) self.action_button.setIcon(qtutils.ok_icon()) self.close_button = QtGui.QPushButton() self.close_button.setText(N_('Close')) self.close_button.setIcon(qtutils.close_icon()) self.local_branch_layout = qtutils.hbox(defs.small_margin, defs.spacing, self.local_label, self.local_branch) self.remote_branch_layout = qtutils.hbox(defs.small_margin, defs.spacing, self.remote_label, self.remote_name) self.remote_branches_layout = qtutils.hbox(defs.small_margin, defs.spacing, self.remote_branch_label, self.remote_branch) self.options_layout = qtutils.hbox( defs.no_margin, defs.button_spacing, qtutils.STRETCH, self.ffwd_only_checkbox, self.tags_checkbox, self.rebase_checkbox, self.action_button, self.close_button) if action == PUSH: widgets = ( self.remote_branch_layout, self.remotes, self.local_branch_layout, self.local_branches, self.remote_branches_layout, self.remote_branches, self.options_layout, ) else: # fetch and pull widgets = ( self.remote_branch_layout, self.remotes, self.remote_branches_layout, self.remote_branches, self.local_branch_layout, self.local_branches, self.options_layout, ) self.main_layout = qtutils.vbox(defs.no_margin, defs.spacing, *widgets) self.setLayout(self.main_layout) default_remote = gitcmds.default_remote() or 'origin' remotes = self.model.remotes if default_remote in remotes: idx = remotes.index(default_remote) if self.select_remote(idx): self.remote_name.setText(default_remote) else: if self.select_first_remote(): self.remote_name.setText(remotes[0]) # Trim the remote list to just the default remote self.update_remotes() self.set_field_defaults() # Setup signals and slots self.connect(self.remotes, SIGNAL('itemSelectionChanged()'), self.update_remotes) self.connect(self.local_branches, SIGNAL('itemSelectionChanged()'), self.update_local_branches) self.connect(self.remote_branches, SIGNAL('itemSelectionChanged()'), self.update_remote_branches) connect_button(self.action_button, self.action_callback) connect_button(self.close_button, self.close) qtutils.add_action(self, N_('Close'), self.close, QtGui.QKeySequence.Close, 'Esc') if action == PULL: self.tags_checkbox.hide() self.ffwd_only_checkbox.hide() self.local_label.hide() self.local_branch.hide() self.local_branches.hide() self.remote_branch.setFocus() else: self.rebase_checkbox.hide() if not self.restore_state(): self.resize(666, 420) self.remote_name.setFocus()
def __init__(self, model, action, parent): """Customizes the dialog based on the remote action """ standard.Dialog.__init__(self, parent=parent) self.model = model self.action = action self.tasks = [] self.filtered_remote_branches = [] self.selected_remotes = [] self.setAttribute(Qt.WA_MacMetalStyle) self.setWindowModality(Qt.WindowModal) self.setWindowTitle(N_(action)) self.progress = QtGui.QProgressDialog(self) self.progress.setFont(qtutils.diff_font()) self.progress.setRange(0, 0) self.progress.setCancelButton(None) self.progress.setWindowTitle(action) self.progress.setWindowModality(Qt.WindowModal) self.progress.setLabelText(N_('Updating') + '.. ') self.progress_thread = ProgressAnimationThread(N_('Updating'), self) self.local_label = QtGui.QLabel() self.local_label.setText(N_('Local Branch')) self.local_branch = QtGui.QLineEdit() self.local_branches = QtGui.QListWidget() self.local_branches.addItems(self.model.local_branches) self.remote_label = QtGui.QLabel() self.remote_label.setText(N_('Remote')) self.remote_name = QtGui.QLineEdit() self.remotes = QtGui.QListWidget() if action == PUSH: self.remotes.setSelectionMode( QtGui.QAbstractItemView.ExtendedSelection) self.remotes.addItems(self.model.remotes) self.remote_branch_label = QtGui.QLabel() self.remote_branch_label.setText(N_('Remote Branch')) self.remote_branch = QtGui.QLineEdit() self.remote_branches = QtGui.QListWidget() self.remote_branches.addItems(self.model.remote_branches) self.ffwd_only_checkbox = QtGui.QCheckBox() self.ffwd_only_checkbox.setText(N_('Fast Forward Only ')) self.ffwd_only_checkbox.setChecked(True) self.tags_checkbox = QtGui.QCheckBox() self.tags_checkbox.setText(N_('Include tags ')) self.rebase_checkbox = QtGui.QCheckBox() self.rebase_checkbox.setText(N_('Rebase ')) self.action_button = QtGui.QPushButton() self.action_button.setText(N_(action)) self.action_button.setIcon(qtutils.ok_icon()) self.close_button = QtGui.QPushButton() self.close_button.setText(N_('Close')) self.close_button.setIcon(qtutils.close_icon()) self.local_branch_layout = QtGui.QHBoxLayout() self.local_branch_layout.addWidget(self.local_label) self.local_branch_layout.addWidget(self.local_branch) self.remote_branch_layout = QtGui.QHBoxLayout() self.remote_branch_layout.addWidget(self.remote_label) self.remote_branch_layout.addWidget(self.remote_name) self.remote_branches_layout = QtGui.QHBoxLayout() self.remote_branches_layout.addWidget(self.remote_branch_label) self.remote_branches_layout.addWidget(self.remote_branch) self.options_layout = QtGui.QHBoxLayout() self.options_layout.setSpacing(defs.button_spacing) self.options_layout.addStretch() self.options_layout.addWidget(self.ffwd_only_checkbox) self.options_layout.addWidget(self.tags_checkbox) self.options_layout.addWidget(self.rebase_checkbox) self.options_layout.addWidget(self.action_button) self.options_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.addLayout(self.remote_branch_layout) self.main_layout.addWidget(self.remotes) if action == PUSH: self.main_layout.addLayout(self.local_branch_layout) self.main_layout.addWidget(self.local_branches) self.main_layout.addLayout(self.remote_branches_layout) self.main_layout.addWidget(self.remote_branches) else: # fetch and pull self.main_layout.addLayout(self.remote_branches_layout) self.main_layout.addWidget(self.remote_branches) self.main_layout.addLayout(self.local_branch_layout) self.main_layout.addWidget(self.local_branches) self.main_layout.addLayout(self.options_layout) self.setLayout(self.main_layout) remotes = self.model.remotes if 'origin' in remotes: idx = remotes.index('origin') if self.select_remote(idx): self.remote_name.setText('origin') else: if self.select_first_remote(): self.remote_name.setText(remotes[0]) # Trim the remote list to just the default remote self.update_remotes() self.set_field_defaults() # Setup signals and slots self.connect(self.remotes, SIGNAL('itemSelectionChanged()'), self.update_remotes) self.connect(self.local_branches, SIGNAL('itemSelectionChanged()'), self.update_local_branches) self.connect(self.remote_branches, SIGNAL('itemSelectionChanged()'), self.update_remote_branches) connect_button(self.action_button, self.action_callback) connect_button(self.close_button, self.close) qtutils.add_action(self, N_('Close'), self.close, QtGui.QKeySequence.Close, 'Esc') self.connect(self, SIGNAL('action_completed'), self.action_completed) self.connect(self.progress_thread, SIGNAL('str'), self.update_progress) if action == PULL: self.tags_checkbox.hide() self.ffwd_only_checkbox.hide() self.local_label.hide() self.local_branch.hide() self.local_branches.hide() self.remote_branch.setFocus() else: self.rebase_checkbox.hide() if not qtutils.apply_state(self): self.resize(666, 420) self.remote_name.setFocus()
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, model, action, parent): """Customizes the dialog based on the remote action """ standard.Dialog.__init__(self, parent=parent) self.model = model self.action = action self.tasks = [] self.filtered_remote_branches = [] self.setAttribute(Qt.WA_MacMetalStyle) self.setWindowModality(Qt.WindowModal) self.setWindowTitle(self.tr(action)) self.progress = QtGui.QProgressDialog(self) self.progress.setFont(prefs.diff_font()) self.progress.setRange(0, 0) self.progress.setCancelButton(None) self.progress.setWindowTitle(self.tr(action)) self.progress.setWindowModality(Qt.WindowModal) self.progress.setLabelText('Updating.. ') self.progress_thread = ProgressAnimationThread('Updating', self) self.local_label = QtGui.QLabel() self.local_label.setText(self.tr('Local Branch')) self.local_branch = QtGui.QLineEdit() self.local_branches = QtGui.QListWidget() self.local_branches.addItems(self.model.local_branches) self.remote_label = QtGui.QLabel() self.remote_label.setText(self.tr('Remote')) self.remote_name = QtGui.QLineEdit() self.remotes = QtGui.QListWidget() self.remotes.addItems(self.model.remotes) self.remote_branch_label = QtGui.QLabel() self.remote_branch_label.setText(self.tr('Remote Branch')) self.remote_branch = QtGui.QLineEdit() self.remote_branches = QtGui.QListWidget() self.remote_branches.addItems(self.model.remote_branches) self.ffwd_only_checkbox = QtGui.QCheckBox() self.ffwd_only_checkbox.setText(self.tr('Fast Forward Only ')) self.ffwd_only_checkbox.setChecked(True) self.tags_checkbox = QtGui.QCheckBox() self.tags_checkbox.setText(self.tr('Include tags ')) self.rebase_checkbox = QtGui.QCheckBox() self.rebase_checkbox.setText(self.tr('Rebase ')) self.action_button = QtGui.QPushButton() self.action_button.setText(self.tr(action)) self.action_button.setIcon(qtutils.ok_icon()) self.close_button = QtGui.QPushButton() self.close_button.setText(self.tr('Close')) self.close_button.setIcon(qtutils.close_icon()) self.local_branch_layout = QtGui.QHBoxLayout() self.local_branch_layout.addWidget(self.local_label) self.local_branch_layout.addWidget(self.local_branch) self.remote_branch_layout = QtGui.QHBoxLayout() self.remote_branch_layout.addWidget(self.remote_label) self.remote_branch_layout.addWidget(self.remote_name) self.remote_branches_layout = QtGui.QHBoxLayout() self.remote_branches_layout.addWidget(self.remote_branch_label) self.remote_branches_layout.addWidget(self.remote_branch) self.options_layout = QtGui.QHBoxLayout() self.options_layout.setSpacing(defs.button_spacing) self.options_layout.addStretch() self.options_layout.addWidget(self.ffwd_only_checkbox) self.options_layout.addWidget(self.tags_checkbox) self.options_layout.addWidget(self.rebase_checkbox) self.options_layout.addWidget(self.action_button) self.options_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.addLayout(self.remote_branch_layout) self.main_layout.addWidget(self.remotes) if action == PUSH: self.main_layout.addLayout(self.local_branch_layout) self.main_layout.addWidget(self.local_branches) self.main_layout.addLayout(self.remote_branches_layout) self.main_layout.addWidget(self.remote_branches) else: # fetch and pull self.main_layout.addLayout(self.remote_branches_layout) self.main_layout.addWidget(self.remote_branches) self.main_layout.addLayout(self.local_branch_layout) self.main_layout.addWidget(self.local_branches) self.main_layout.addLayout(self.options_layout) self.setLayout(self.main_layout) remotes = self.model.remotes if 'origin' in remotes: idx = remotes.index('origin') if self.select_remote(idx): self.remote_name.setText('origin') else: if self.select_first_remote(): self.remote_name.setText(remotes[0]) # Trim the remote list to just the default remote self.update_remotes() self.set_field_defaults() # Setup signals and slots self.connect(self.remotes, SIGNAL('itemSelectionChanged()'), self.update_remotes) self.connect(self.local_branches, SIGNAL('itemSelectionChanged()'), self.update_local_branches) self.connect(self.remote_branches, SIGNAL('itemSelectionChanged()'), self.update_remote_branches) connect_button(self.action_button, self.action_callback) connect_button(self.close_button, self.reject) self.connect(self, SIGNAL('action_completed'), self.action_completed) self.connect(self.progress_thread, SIGNAL('str'), self.update_progress) if action == PULL: self.tags_checkbox.hide() self.ffwd_only_checkbox.hide() self.local_label.hide() self.local_branch.hide() self.local_branches.hide() self.remote_branch.setFocus() else: self.rebase_checkbox.hide() if not qtutils.apply_state(self): self.resize(666, 420) self.remote_name.setFocus()
def __init__(self, model, action, parent=None): """Customizes the dialog based on the remote action """ standard.Dialog.__init__(self, parent=parent) self.model = model self.action = action self.tasks = [] self.filtered_remote_branches = [] self.selected_remotes = [] self.setAttribute(Qt.WA_MacMetalStyle) self.setWindowTitle(N_(action)) if parent is not None: self.setWindowModality(Qt.WindowModal) self.progress = QtGui.QProgressDialog(self) self.progress.setFont(qtutils.diff_font()) self.progress.setRange(0, 0) self.progress.setCancelButton(None) self.progress.setWindowTitle(action) self.progress.setWindowModality(Qt.WindowModal) self.progress.setLabelText(N_("Updating") + ".. ") self.progress_thread = ProgressAnimationThread(N_("Updating"), self) self.local_label = QtGui.QLabel() self.local_label.setText(N_("Local Branch")) self.local_branch = QtGui.QLineEdit() self.local_branches = QtGui.QListWidget() self.local_branches.addItems(self.model.local_branches) self.remote_label = QtGui.QLabel() self.remote_label.setText(N_("Remote")) self.remote_name = QtGui.QLineEdit() self.remotes = QtGui.QListWidget() if action == PUSH: self.remotes.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) self.remotes.addItems(self.model.remotes) self.remote_branch_label = QtGui.QLabel() self.remote_branch_label.setText(N_("Remote Branch")) self.remote_branch = QtGui.QLineEdit() self.remote_branches = QtGui.QListWidget() self.remote_branches.addItems(self.model.remote_branches) self.ffwd_only_checkbox = QtGui.QCheckBox() self.ffwd_only_checkbox.setText(N_("Fast Forward Only ")) self.ffwd_only_checkbox.setChecked(True) self.tags_checkbox = QtGui.QCheckBox() self.tags_checkbox.setText(N_("Include tags ")) self.rebase_checkbox = QtGui.QCheckBox() self.rebase_checkbox.setText(N_("Rebase ")) self.action_button = QtGui.QPushButton() self.action_button.setText(N_(action)) self.action_button.setIcon(qtutils.ok_icon()) self.close_button = QtGui.QPushButton() self.close_button.setText(N_("Close")) self.close_button.setIcon(qtutils.close_icon()) self.local_branch_layout = QtGui.QHBoxLayout() self.local_branch_layout.addWidget(self.local_label) self.local_branch_layout.addWidget(self.local_branch) self.remote_branch_layout = QtGui.QHBoxLayout() self.remote_branch_layout.addWidget(self.remote_label) self.remote_branch_layout.addWidget(self.remote_name) self.remote_branches_layout = QtGui.QHBoxLayout() self.remote_branches_layout.addWidget(self.remote_branch_label) self.remote_branches_layout.addWidget(self.remote_branch) self.options_layout = QtGui.QHBoxLayout() self.options_layout.setSpacing(defs.button_spacing) self.options_layout.addStretch() self.options_layout.addWidget(self.ffwd_only_checkbox) self.options_layout.addWidget(self.tags_checkbox) self.options_layout.addWidget(self.rebase_checkbox) self.options_layout.addWidget(self.action_button) self.options_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.addLayout(self.remote_branch_layout) self.main_layout.addWidget(self.remotes) if action == PUSH: self.main_layout.addLayout(self.local_branch_layout) self.main_layout.addWidget(self.local_branches) self.main_layout.addLayout(self.remote_branches_layout) self.main_layout.addWidget(self.remote_branches) else: # fetch and pull self.main_layout.addLayout(self.remote_branches_layout) self.main_layout.addWidget(self.remote_branches) self.main_layout.addLayout(self.local_branch_layout) self.main_layout.addWidget(self.local_branches) self.main_layout.addLayout(self.options_layout) self.setLayout(self.main_layout) remotes = self.model.remotes if "origin" in remotes: idx = remotes.index("origin") if self.select_remote(idx): self.remote_name.setText("origin") else: if self.select_first_remote(): self.remote_name.setText(remotes[0]) # Trim the remote list to just the default remote self.update_remotes() self.set_field_defaults() # Setup signals and slots self.connect(self.remotes, SIGNAL("itemSelectionChanged()"), self.update_remotes) self.connect(self.local_branches, SIGNAL("itemSelectionChanged()"), self.update_local_branches) self.connect(self.remote_branches, SIGNAL("itemSelectionChanged()"), self.update_remote_branches) connect_button(self.action_button, self.action_callback) connect_button(self.close_button, self.close) qtutils.add_action(self, N_("Close"), self.close, QtGui.QKeySequence.Close, "Esc") self.connect(self, SIGNAL("action_completed"), self.action_completed) self.connect(self.progress_thread, SIGNAL("str"), self.update_progress) if action == PULL: self.tags_checkbox.hide() self.ffwd_only_checkbox.hide() self.local_label.hide() self.local_branch.hide() self.local_branches.hide() self.remote_branch.setFocus() else: self.rebase_checkbox.hide() if not qtutils.apply_state(self): self.resize(666, 420) self.remote_name.setFocus()