def _create_text_view(self, relpath, text): """Create widget to show text files. @return: created widget with loaded text. """ browser = LineNumberEditerFrame(self) edit = browser.edit edit.setReadOnly(True) edit.document().setDefaultFont(get_monospace_font()) edit.setTabStopWidth(get_tab_width_pixels(self.branch)) self._set_text(edit, relpath, text, self.encoding) self.encoding_selector.setEnabled(True) return browser
def __init__(self, complete=False, parent=None): # XXX: This code should be merged with QSimpleDiffView QtWidgets.QTextBrowser.__init__(self, parent) self.hunk_list = [] self.doc = QtGui.QTextDocument(parent) self.doc.setUndoRedoEnabled(False) self.setDocument(self.doc) option = self.doc.defaultTextOption() option.setWrapMode(QtGui.QTextOption.NoWrap) self.doc.setDefaultTextOption(option) self.rewinded = False self.cursor = QtGui.QTextCursor(self.doc) monospacedFont = get_monospace_font() self.monospacedFormat = QtGui.QTextCharFormat() self.monospacedFormat.setFont(monospacedFont) self.monospacedInsertFormat = QtGui.QTextCharFormat( self.monospacedFormat) self.monospacedInsertFormat.setForeground(QtGui.QColor(0, 136, 11)) self.monospacedDeleteFormat = QtGui.QTextCharFormat( self.monospacedFormat) self.monospacedDeleteFormat.setForeground(QtGui.QColor(204, 0, 0)) self.monospacedInactiveFormat = QtGui.QTextCharFormat( self.monospacedFormat) self.monospacedInactiveFormat.setForeground(QtGui.QColor( 128, 128, 128)) titleFont = QtGui.QFont(monospacedFont) titleFont.setPointSize(titleFont.pointSize() * 140 / 100) titleFont.setBold(True) titleFont.setItalic(True) self.monospacedHunkFormat = QtGui.QTextCharFormat() self.monospacedHunkFormat.setFont(titleFont) self.monospacedHunkFormat.setForeground(QtCore.Qt.black) from breezy.plugins.qbrz.lib.diffview import colors self.header_color = colors['blank'][0] self.border_pen = QtGui.QPen(QtCore.Qt.gray) self.focus_color = QtGui.QColor(0x87, 0xCE, 0xEB, 0x48) # lightBlue self.focus_color_inactive = QtGui.QColor(0x87, 0xCE, 0xEB, 0x20) # lightBlue self.complete = complete self._focused_index = -1 self.guidebar_deta = []
def __init__(self, parent=None): QtWidgets.QTextBrowser.__init__(self, parent) self.doc = QtGui.QTextDocument(parent) self.doc.setUndoRedoEnabled(False) self.setDocument(self.doc) option = self.doc.defaultTextOption() option.setWrapMode(QtGui.QTextOption.NoWrap) self.doc.setDefaultTextOption(option) self.rewinded = False self.cursor = QtGui.QTextCursor(self.doc) format = QtGui.QTextCharFormat() format.setAnchorNames(["top"]) self.cursor.insertText("", format) monospacedFont = get_monospace_font() self.monospacedFormat = QtGui.QTextCharFormat() self.monospacedFormat.setFont(monospacedFont) self.monospacedInsertFormat = QtGui.QTextCharFormat(self.monospacedFormat) self.monospacedInsertFormat.setForeground(QtGui.QColor(0, 136, 11)) self.monospacedDeleteFormat = QtGui.QTextCharFormat(self.monospacedFormat) self.monospacedDeleteFormat.setForeground(QtGui.QColor(204, 0, 0)) monospacedBoldFont = QtGui.QFont(monospacedFont) monospacedBoldFont.setBold(True) monospacedItalicFont = QtGui.QFont(monospacedFont) monospacedItalicFont.setItalic(True) self.monospacedBoldInsertFormat = QtGui.QTextCharFormat(self.monospacedInsertFormat) self.monospacedBoldInsertFormat.setFont(monospacedBoldFont) self.monospacedBoldDeleteFormat = QtGui.QTextCharFormat(self.monospacedDeleteFormat) self.monospacedBoldDeleteFormat.setFont(monospacedBoldFont) self.monospacedHeaderFormat = QtGui.QTextCharFormat() self.monospacedHeaderFormat.setFont(monospacedBoldFont) self.monospacedHeaderFormat.setBackground(QtGui.QColor(246, 245, 238)) self.monospacedHeaderFormat.setForeground(QtGui.QColor(117, 117, 117)) self.monospacedHunkFormat = QtGui.QTextCharFormat() self.monospacedHunkFormat.setFont(monospacedItalicFont) self.monospacedHunkFormat.setForeground(QtGui.QColor(153, 30, 199)) self.reset_guidebar_data()
def __init__(self, parent=None): QtWidgets.QSplitter.__init__(self, QtCore.Qt.Horizontal, parent) self.setHandleWidth(30) self.complete = False titleFont = QtGui.QFont(self.font()) titleFont.setPointSize(titleFont.pointSize() * 140 / 100) titleFont.setBold(True) self.monospacedFont = get_monospace_font() metadataFont = QtGui.QFont(self.font()) metadataFont.setPointSize(titleFont.pointSize() * 70 / 100) metadataLabelFont = QtGui.QFont(metadataFont) metadataLabelFont.setBold(True) self.monospacedFormat = QtGui.QTextCharFormat() self.monospacedFormat.setFont(self.monospacedFont) self.ttype_formater = CachedTTypeFormater( QtGui.QTextCharFormat(self.monospacedFormat)) self.background = self.monospacedFormat.background() self.titleFormat = QtGui.QTextCharFormat() self.titleFormat.setFont(titleFont) self.metadataFormat = QtGui.QTextCharFormat() self.metadataFormat.setFont(metadataFont) self.metadataLabelFormat = QtGui.QTextCharFormat() self.metadataLabelFormat.setFont(metadataLabelFont) self.docs = (QtGui.QTextDocument(), QtGui.QTextDocument()) self.browsers = (DiffSourceView(self), DiffSourceView(self)) self.guidebar_panels = [ GuideBarPanel(b, align=a) for (b, a) in zip(self.browsers, (GBAR_LEFT, GBAR_RIGHT)) ] for g in self.guidebar_panels: setup_guidebar_entries(g.bar) self.reset_guidebar_data() for b in self.browsers: b.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.cursors = [QtGui.QTextCursor(doc) for doc in self.docs] for i, (panel, doc, cursor) in enumerate(zip(self.guidebar_panels, self.docs, self.cursors)): doc.setUndoRedoEnabled(False) doc.setDefaultFont(self.monospacedFont) panel.edit.setDocument(doc) self.addWidget(panel) self.setCollapsible(i, False) format = QtGui.QTextCharFormat() format.setAnchorNames(["top"]) cursor.insertText("", format) self.scrollbar = SidebySideDiffViewScrollBar(self.handle(1), self.browsers) self.ignoreUpdate = False self.browsers[0].horizontalScrollBar().valueChanged[int].connect(self.syncHorizontalSlider1) self.browsers[1].horizontalScrollBar().valueChanged[int].connect(self.syncHorizontalSlider2) self.rewinded = False self.lastModifiedLabel = gettext('Last modified:') self.statusLabel = gettext('Status:') self.kindLabel = gettext('Kind:') self.propertiesLabel = gettext('Properties:') self.image_exts = ['.'+str(i) for i in QtGui.QImageReader.supportedImageFormats()] config = get_qbrz_config() self.show_intergroup_colors = config.get_option("diff_show_intergroup_colors") in ("True", "1")
def _create_simple_text_browser(self): """Create and return simple widget to show text-like content.""" browser = QtWidgets.QPlainTextEdit(self) browser.setReadOnly(True) browser.document().setDefaultFont(get_monospace_font()) return browser
def __init__(self, branch, working_tree, annotate_tree, path, fileId, encoding=None, parent=None, ui_mode=True, no_graph=False, loader=None, loader_args=None, activate_line=None): QBzrWindow.__init__(self, [gettext("Annotate"), gettext("Loading...")], parent, ui_mode=ui_mode) self.restoreSize("annotate", (780, 680)) self.activate_line_after_load = activate_line self.windows = [] self.branch = branch self.annotate_tree = annotate_tree self.working_tree = working_tree if (self.working_tree is None and isinstance(annotate_tree, WorkingTree)): self.working_tree = annotate_tree self.no_graph = no_graph self.old_lines = None self.fileId = fileId self.path = path self.encoding = encoding self.loader_func = loader self.loader_args = loader_args self.throbber = ToolBarThrobberWidget(self) self.text_edit_frame = AnnotateEditerFrameBase(self) self.text_edit = AnnotatedTextEdit(self) self.text_edit.setFrameStyle(QtWidgets.QFrame.NoFrame) self.text_edit.setTextInteractionFlags(QtCore.Qt.TextSelectableByMouse | QtCore.Qt.TextSelectableByKeyboard) self.text_edit.setLineWrapMode(QtWidgets.QPlainTextEdit.NoWrap) self.text_edit.document().setDefaultFont(get_monospace_font()) self.guidebar_panel = GuideBarPanel(self.text_edit, parent=self) self.guidebar_panel.add_entry('annotate', QtGui.QColor(255, 160, 180)) self.annotate_bar = AnnotateBar(self.text_edit, self, self.get_revno) annotate_spliter = QtWidgets.QSplitter(QtCore.Qt.Horizontal, self) annotate_spliter.addWidget(self.annotate_bar) annotate_spliter.addWidget(self.guidebar_panel) self.annotate_bar.splitter = annotate_spliter self.text_edit_frame.hbox.addWidget(annotate_spliter) self.text_edit.cursorPositionChanged.connect(self.edit_cursorPositionChanged) self.annotate_bar.cursorPositionChanged.connect(self.edit_cursorPositionChanged) self.text_edit.documentChangeFinished.connect(self.edit_documentChangeFinished) self.log_list = AnnotateLogList(self.processEvents, self.throbber, self) self.log_list.header().hideSection(logmodel.COL_DATE) self.log_list.parent_annotate_window = self self.log_branch_loaded = False self.log_list.selectionModel().selectionChanged[QtCore.QItemSelection, QtCore.QItemSelection].connect(self.log_list_selectionChanged) self.message = LogListRevisionMessageBrowser(self.log_list, self) self.encoding_selector = EncodingMenuSelector(self.encoding, gettext("Encoding"), self._on_encoding_changed) hsplitter = QtWidgets.QSplitter(QtCore.Qt.Horizontal) hsplitter.addWidget(self.log_list) hsplitter.addWidget(self.message) hsplitter.setStretchFactor(0, 2) hsplitter.setStretchFactor(1, 2) splitter = QtWidgets.QSplitter(QtCore.Qt.Vertical) splitter.addWidget(self.text_edit_frame) splitter.addWidget(hsplitter) splitter.setStretchFactor(0, 5) splitter.setStretchFactor(1, 2) vbox = QtWidgets.QVBoxLayout(self.centralwidget) #vbox.addWidget(self.toolbar) vbox.addWidget(splitter) self.text_edit.setFocus() self.show_find = QtWidgets.QAction(get_icon("edit-find"), gettext("Find"), self) self.show_find.setShortcuts(QtGui.QKeySequence.Find) self.show_find.setCheckable(True) self.show_goto_line = QtWidgets.QAction(get_icon("go-jump"), gettext("Goto Line"), self) self.show_goto_line.setShortcuts((QtCore.Qt.CTRL + QtCore.Qt.Key_L,)) self.show_goto_line.setCheckable(True) show_view_menu = QtWidgets.QAction(get_icon("document-properties"), gettext("&View Options"), self) view_menu = QtWidgets.QMenu(gettext('View Options'), self) show_view_menu.setMenu(view_menu) word_wrap = QtWidgets.QAction(gettext("Word Wrap"), self) word_wrap.setCheckable(True) word_wrap.toggled [bool].connect(self.word_wrap_toggle) def setTabStopWidth(tw): self.text_edit.setTabStopWidth(get_tab_width_pixels(tab_width_chars=tw)) get_set_tab_width_chars(branch=self.branch,tab_width_chars=tw) self.tab_width_selector = TabWidthMenuSelector(get_set_tab_width_chars(branch=branch), gettext("Tab Width"), setTabStopWidth) view_menu.addMenu(self.tab_width_selector) view_menu.addMenu(self.encoding_selector) view_menu.addAction(word_wrap) toolbar = self.addToolBar(gettext("Annotate")) toolbar.setMovable (False) toolbar.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon) #self.toolbar.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon) toolbar.addAction(self.show_find) toolbar.addAction(self.show_goto_line) toolbar.addAction(show_view_menu) toolbar.widgetForAction(show_view_menu).setPopupMode(QtWidgets.QToolButton.InstantPopup) spacer = QtWidgets.QWidget() spacer.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) toolbar.addWidget(spacer) toolbar.addWidget(self.throbber) self.addToolBarBreak() self.find_toolbar = FindToolbar(self, self.text_edit, self.show_find) self.find_toolbar.hide() self.addToolBar(self.find_toolbar) self.show_find.toggled [bool].connect(self.show_find_toggle) setup_guidebar_for_find(self.guidebar_panel, self.find_toolbar, index=1) self.goto_line_toolbar = GotoLineToolbar(self, self.show_goto_line) self.goto_line_toolbar.hide() self.addToolBar(self.goto_line_toolbar) self.show_goto_line.toggled [bool].connect(self.show_goto_line_toggle) self.__hashes = {}