def default_monospace_font(): font = QtGui.QFont() family = "Monospace" if utils.is_darwin(): family = "Monaco" font.setFamily(family) return font
def __init__(self, filenames): BaseCommand.__init__(self) if utils.is_darwin(): launcher = 'open' else: launcher = 'xdg-open' self.launcher = launcher self.filenames = filenames
def __init__(self, filenames): Command.__init__(self) if utils.is_darwin(): launcher = "open" else: launcher = "xdg-open" self.cmd = [launcher] self.cmd.extend(filenames)
def diff_font_str(): font_str = gitcfg.instance().get('cola.fontdiff') if font_str is None: font = QtGui.QFont() family = 'Monospace' if is_darwin(): family = 'Monaco' font.setFamily(family) font_str = unicode(font.toString()) return font_str
def setup_dockwidget_view_menu(self): # Hotkeys for toggling the dock widgets if utils.is_darwin(): optkey = 'Meta' else: optkey = 'Ctrl' dockwidgets = ( (optkey + '+0', self.logdockwidget), (optkey + '+1', self.commitdockwidget), (optkey + '+2', self.statusdockwidget), (optkey + '+3', self.diffdockwidget), (optkey + '+4', self.actionsdockwidget), (optkey + '+5', self.bookmarksdockwidget), (optkey + '+6', self.recentdockwidget), ) for shortcut, dockwidget in dockwidgets: # Associate the action with the shortcut toggleview = dockwidget.toggleViewAction() toggleview.setShortcut('Shift+' + shortcut) self.view_menu.addAction(toggleview) def showdock(show, dockwidget=dockwidget): if show: dockwidget.raise_() dockwidget.widget().setFocus() else: self.setFocus() self.addAction(toggleview) qtutils.connect_action_bool(toggleview, showdock) # Create a new shortcut Shift+<shortcut> that gives focus toggleview = QtGui.QAction(self) toggleview.setShortcut(shortcut) def focusdock(dockwidget=dockwidget): focus_dock(dockwidget) self.addAction(toggleview) qtutils.connect_action(toggleview, focusdock) qtutils.add_action(self, 'Focus Commit Message', lambda: focus_dock(self.commitdockwidget), hotkeys.FOCUS) qtutils.add_action(self, 'Focus Status Window', lambda: focus_dock(self.statusdockwidget), hotkeys.FOCUS_STATUS)
def __init__(self, parent): QtGui.QDialog.__init__(self, parent) self.resize(720, 512) self.vboxlayout = QtGui.QVBoxLayout(self) self.vboxlayout.setObjectName('vboxlayout') self.output_text = QtGui.QTextEdit(self) font = QtGui.QFont() if utils.is_darwin(): family = 'Monaco' else: family = 'Monospace' font.setFamily(family) font.setPointSize(12) self.output_text.setFont(font) self.output_text.setAcceptDrops(False) self.vboxlayout.addWidget(self.output_text) self.syntax = DiffSyntaxHighlighter(self.output_text.document())
def setup_dockwidget_view_menu(self): # Hotkeys for toggling the dock widgets if utils.is_darwin(): optkey = "Meta" else: optkey = "Ctrl" dockwidgets = ( (optkey + "+0", self.logdockwidget), (optkey + "+1", self.commitdockwidget), (optkey + "+2", self.statusdockwidget), (optkey + "+3", self.diffdockwidget), (optkey + "+4", self.actionsdockwidget), (optkey + "+5", self.bookmarksdockwidget), (optkey + "+6", self.recentdockwidget), ) for shortcut, dockwidget in dockwidgets: # Associate the action with the shortcut toggleview = dockwidget.toggleViewAction() toggleview.setShortcut("Shift+" + shortcut) self.view_menu.addAction(toggleview) def showdock(show, dockwidget=dockwidget): if show: dockwidget.raise_() dockwidget.widget().setFocus() else: self.setFocus() self.addAction(toggleview) qtutils.connect_action_bool(toggleview, showdock) # Create a new shortcut Shift+<shortcut> that gives focus toggleview = QtGui.QAction(self) toggleview.setShortcut(shortcut) def focusdock(dockwidget=dockwidget): focus_dock(dockwidget) self.addAction(toggleview) qtutils.connect_action(toggleview, focusdock) focus = lambda: focus_dock(self.commitdockwidget) qtutils.add_action(self, "Focus Commit Message", focus, hotkeys.FOCUS)
def setup_dockwidget_view_menu(self): # Hotkeys for toggling the dock widgets if utils.is_darwin(): optkey = 'Meta' else: optkey = 'Ctrl' dockwidgets = ( (optkey + '+0', self.logdockwidget), (optkey + '+1', self.commitdockwidget), (optkey + '+2', self.statusdockwidget), (optkey + '+3', self.diffdockwidget), (optkey + '+4', self.actionsdockwidget), (optkey + '+5', self.bookmarksdockwidget), (optkey + '+6', self.recentdockwidget), ) for shortcut, dockwidget in dockwidgets: # Associate the action with the shortcut toggleview = dockwidget.toggleViewAction() toggleview.setShortcut('Shift+' + shortcut) self.view_menu.addAction(toggleview) def showdock(show, dockwidget=dockwidget): if show: dockwidget.raise_() dockwidget.widget().setFocus() else: self.setFocus() self.addAction(toggleview) connect_action_bool(toggleview, showdock) # Create a new shortcut Shift+<shortcut> that gives focus toggleview = QtGui.QAction(self) toggleview.setShortcut(shortcut) def focusdock(dockwidget=dockwidget, showdock=showdock): if dockwidget.toggleViewAction().isChecked(): showdock(True) else: dockwidget.toggleViewAction().trigger() self.addAction(toggleview) connect_action(toggleview, focusdock)
def setup_dockwidget_tools_menu(self): # Hotkeys for toggling the dock widgets if utils.is_darwin(): optkey = "Meta" else: optkey = "Ctrl" dockwidgets = ( (optkey + "+0", self.logdockwidget), (optkey + "+1", self.commitdockwidget), (optkey + "+2", self.statusdockwidget), (optkey + "+3", self.diffdockwidget), (optkey + "+4", self.actionsdockwidget), ) for shortcut, dockwidget in dockwidgets: # Associate the action with the shortcut toggleview = dockwidget.toggleViewAction() toggleview.setShortcut(shortcut) self.tools_menu.addAction(toggleview) def showdock(show, dockwidget=dockwidget): if show: dockwidget.raise_() dockwidget.widget().setFocus() else: self.setFocus() self.addAction(toggleview) connect_action_bool(toggleview, showdock) # Create a new shortcut Shift+<shortcut> that gives focus toggleview = QtGui.QAction(self) toggleview.setShortcut("Shift+" + shortcut) def focusdock(dockwidget=dockwidget, showdock=showdock): if dockwidget.toggleViewAction().isChecked(): showdock(True) else: dockwidget.toggleViewAction().trigger() self.addAction(toggleview) connect_action(toggleview, focusdock)
def __init__(self, model, dag, parent=None, args=None): standard.Dialog.__init__(self, parent=parent) if utils.is_darwin(): self.setAttribute(QtCore.Qt.WA_MacMetalStyle) # change when widgets are added/removed self.widget_version = 1 self.model = model self.dag = dag self.setObjectName('dag') self.setMinimumSize(1, 1) self.revlabel = QtGui.QLabel() self.revlabel.setText('git log -') self.revtext = GitLogLineEdit(parent=self) self.maxresults = QtGui.QSpinBox() self.maxresults.setMinimum(-1) self.maxresults.setMaximum(2**31 - 1) self.displaybutton = QtGui.QPushButton() self.displaybutton.setText('Display') self.zoom_in = QtGui.QPushButton() self.zoom_in.setIcon(qtutils.theme_icon('zoom-in.png')) self.zoom_in.setFlat(True) self.zoom_out = QtGui.QPushButton() self.zoom_out.setIcon(qtutils.theme_icon('zoom-out.png')) self.zoom_out.setFlat(True) self._buttons_layt = QtGui.QHBoxLayout() self._buttons_layt.setMargin(2) self._buttons_layt.setSpacing(4) self._buttons_layt.addWidget(self.revlabel) self._buttons_layt.addWidget(self.maxresults) self._buttons_layt.addWidget(self.revtext) self._buttons_layt.addWidget(self.displaybutton) self._buttons_layt.addStretch() self._buttons_layt.addWidget(self.zoom_out) self._buttons_layt.addWidget(self.zoom_in) self._commits = {} self._notifier = notifier = observable.Observable() self._notifier.refs_updated = refs_updated = 'refs_updated' self._notifier.add_message_observer(refs_updated, self._display) self._graphview = GraphView(notifier) self._treewidget = CommitTreeWidget(notifier) self._diffwidget = DiffWidget(notifier) for signal in (archive,): qtutils.relay_signal(self, self._graphview, SIGNAL(signal)) qtutils.relay_signal(self, self._treewidget, SIGNAL(signal)) self._mainsplitter = QtGui.QSplitter() self._mainsplitter.setOrientation(QtCore.Qt.Horizontal) self._mainsplitter.setChildrenCollapsible(True) self._leftsplitter = QtGui.QSplitter() self._leftsplitter.setOrientation(QtCore.Qt.Vertical) self._leftsplitter.setChildrenCollapsible(True) self._leftsplitter.setStretchFactor(0, 1) self._leftsplitter.setStretchFactor(1, 1) self._leftsplitter.insertWidget(0, self._treewidget) self._leftsplitter.insertWidget(1, self._diffwidget) self._mainsplitter.insertWidget(0, self._leftsplitter) self._mainsplitter.insertWidget(1, self._graphview) self._mainsplitter.setStretchFactor(0, 1) self._mainsplitter.setStretchFactor(1, 1) self._layt = layt = QtGui.QVBoxLayout() layt.setMargin(0) layt.setSpacing(0) layt.addLayout(self._buttons_layt) layt.addWidget(self._mainsplitter) self.setLayout(layt) # Also re-loads dag.* from the saved state if not qtutils.apply_state(self): self.resize_to_desktop() # Update fields affected by model self.revtext.setText(dag.ref) self.maxresults.setValue(dag.count) self.update_window_title() self.thread = ReaderThread(self, dag) self.thread.connect(self.thread, self.thread.commits_ready, self.add_commits) self.thread.connect(self.thread, self.thread.done, self.thread_done) self.connect(self._mainsplitter, SIGNAL('splitterMoved(int,int)'), self._splitter_moved) self.connect(self.zoom_in, SIGNAL('pressed()'), self._graphview.zoom_in) self.connect(self.zoom_out, SIGNAL('pressed()'), self._graphview.zoom_out) self.connect(self.maxresults, SIGNAL('valueChanged(int)'), lambda(x): self.dag.set_count(x)) self.connect(self.displaybutton, SIGNAL('pressed()'), self._display) self.connect(self.revtext, SIGNAL('ref_changed'), self._display) self.connect(self.revtext, SIGNAL('textChanged(QString)'), self._text_changed) # The model is updated in another thread so use # signals/slots to bring control back to the main GUI thread self.model.add_message_observer(self.model.message_updated, self._model_updated) self.connect(self, SIGNAL('model_updated'), self.model_updated) qtutils.add_close_action(self)