Loading ballontranslator/data/config/stylesheet.css +2 −2 Original line number Diff line number Diff line Loading @@ -867,8 +867,8 @@ ClickableLabel#ReplaceAllBtn { } TitleBarToolBtn { padding-left: 6px; padding-right: 6px; padding-left: 4px; padding-right: 4px; border-style: none; font-size: 15px; color: #6d6d6f; Loading ballontranslator/ui/global_search_widget.py +6 −9 Original line number Diff line number Diff line from qtpy.QtWidgets import QHBoxLayout, QSizePolicy, QComboBox, QStyledItemDelegate, QLabel, QTreeView, QCheckBox, QStyleOptionViewItem, QVBoxLayout, QStyle, QMessageBox, QStyle, QApplication, QWidget from qtpy.QtCore import Qt, QItemSelection, QSize, Signal, QUrl, QModelIndex, QRectF from qtpy.QtGui import QPalette, QPainter, QTextCursor, QStandardItemModel, QStandardItem, QAbstractTextDocumentLayout, QColor, QShowEvent, QTextDocument, QTextCharFormat from qtpy.QtGui import QFont, QPainter, QTextCursor, QStandardItemModel, QStandardItem, QAbstractTextDocumentLayout, QColor, QShowEvent, QTextDocument, QTextCharFormat from typing import List, Union, Tuple, Dict import re, time Loading Loading @@ -44,10 +44,11 @@ class HTMLDelegate( QStyledItemDelegate ): style.drawControl(QStyle.ControlElement.CE_ItemViewItem, options, painter) def get_rstitem_renderhtml(text: str, span: Tuple[int, int]) -> str: def get_rstitem_renderhtml(text: str, span: Tuple[int, int], font: QFont = None) -> str: if text == '': return text doc = QTextDocument() if font is None: font = doc.defaultFont() font.setPointSizeF(SEARCHRST_FONTSIZE) doc.setDefaultFont(font) Loading Loading @@ -76,14 +77,9 @@ class SearchResultItem(QStandardItem): self.is_src = is_src self.blk_idx = blk_idx self.pagename = pagename self.setText(get_rstitem_renderhtml(text, span)) self.setText(get_rstitem_renderhtml(text, span, font=self.font())) self.setEditable(False) def setBold(self, bold: bool): font = self.font() font.setBold(bold) self.setFont(font) class PageSeachResultItem(QStandardItem): def __init__(self, pagename: str, result_counter: int, blkid2match: dict): Loading Loading @@ -534,6 +530,7 @@ class GlobalSearchWidget(Widget): if self.counter_sum > 0: self.search_tree.clearPages() self.result_label.setText(self.doc_edited_str) self.counter_sum = 0 def on_img_writed(self, pagename: str): if not self.progress_bar.isVisible(): Loading ballontranslator/ui/mainwindow.py +13 −18 Original line number Diff line number Diff line Loading @@ -355,19 +355,18 @@ class MainWindow(FramelessWindow): self.page_changing = False def setupShortcuts(self): shortcutNext = QShortcut(QKeySequence.StandardKey.MoveToNextPage, self) shortcutNext.activated.connect(self.shortcutNext) shortcutD = QShortcut(QKeySequence("D"), self) shortcutD.activated.connect(self.shortcutNext) shortcutBefore = QShortcut(QKeySequence.StandardKey.MoveToPreviousPage, self) shortcutBefore.activated.connect(self.shortcutBefore) shortcutA = QShortcut(QKeySequence("A"), self) shortcutA.activated.connect(self.shortcutBefore) shortcutTextedit = QShortcut(QKeySequence("T"), self) shortcutTextedit.activated.connect(self.shortcutTextedit) self.titleBar.nextpage_trigger.connect(self.shortcutNext) self.titleBar.prevpage_trigger.connect(self.shortcutBefore) self.titleBar.textedit_trigger.connect(self.shortcutTextedit) self.titleBar.drawboard_trigger.connect(self.shortcutDrawboard) self.titleBar.redo_trigger.connect(self.on_redo) self.titleBar.undo_trigger.connect(self.on_undo) self.titleBar.page_search_trigger.connect(self.on_page_search) self.titleBar.global_search_trigger.connect(self.on_global_search) self.titleBar.run_trigger.connect(self.leftBar.runImgtransBtn.click) self.titleBar.translate_page_trigger.connect(self.bottomBar.transTranspageBtn.click) shortcutTextblock = QShortcut(QKeySequence("W"), self) shortcutPaint = QShortcut(QKeySequence("P"), self) shortcutPaint.activated.connect(self.shortcutPaint) shortcutTextblock.activated.connect(self.shortcutTextblock) shortcutZoomIn = QShortcut(QKeySequence.StandardKey.ZoomIn, self) shortcutZoomIn.activated.connect(self.canvas.gv.scale_up_signal) Loading @@ -380,14 +379,9 @@ class MainWindow(FramelessWindow): shortcutSelectAll = QShortcut(QKeySequence.StandardKey.SelectAll, self) shortcutSelectAll.activated.connect(self.shortcutSelectAll) self.titleBar.redo_trigger.connect(self.on_redo) self.titleBar.undo_trigger.connect(self.on_undo) self.titleBar.page_search_trigger.connect(self.on_page_search) self.titleBar.global_search_trigger.connect(self.on_global_search) shortcutEscape = QShortcut(QKeySequence("Escape"), self) shortcutEscape.activated.connect(self.shortcutEscape) # font formatting shortcutBold = QShortcut(QKeySequence.StandardKey.Bold, self) shortcutBold.activated.connect(self.shortcutBold) shortcutItalic = QShortcut(QKeySequence.StandardKey.Italic, self) Loading Loading @@ -422,7 +416,7 @@ class MainWindow(FramelessWindow): if self.bottomBar.texteditChecker.isChecked(): self.bottomBar.textblockChecker.click() def shortcutPaint(self): def shortcutDrawboard(self): if self.centralStackWidget.currentIndex() == 0: self.bottomBar.paintChecker.click() Loading Loading @@ -672,6 +666,7 @@ class MainWindow(FramelessWindow): return if run_target and self.canvas.text_change_unsaved(): self.st_manager.updateTextBlkList() self.global_search_widget.set_document_edited() self.dl_manager.translatePage(run_target, page_key) def finishTranslatePage(self, page_key): Loading ballontranslator/ui/mainwindowbars.py +40 −1 Original line number Diff line number Diff line Loading @@ -330,10 +330,46 @@ class TitleBar(Widget): editMenu.addActions([undoAction, redoAction]) editMenu.addSeparator() editMenu.addActions([pageSearchAction, globalSearchAction]) self.editToolBtn.setMenu(editMenu) self.editToolBtn.setPopupMode(QToolButton.InstantPopup) self.viewToolBtn = TitleBarToolBtn(self) self.viewToolBtn.setText(self.tr('View')) drawBoardAction = QAction(self.tr('Drawing Board '), self) drawBoardAction.setShortcut(QKeySequence('P')) texteditAction = QAction(self.tr('Text Editor'), self) texteditAction.setShortcut(QKeySequence('T')) viewMenu = QMenu(self.viewToolBtn) viewMenu.addActions([drawBoardAction, texteditAction]) self.viewToolBtn.setMenu(viewMenu) self.viewToolBtn.setPopupMode(QToolButton.InstantPopup) self.textedit_trigger = texteditAction.triggered self.drawboard_trigger = drawBoardAction.triggered self.goToolBtn = TitleBarToolBtn(self) self.goToolBtn.setText(self.tr('Go')) prevPageAction = QAction(self.tr('Previous Page'), self) prevPageAction.setShortcuts([QKeySequence.StandardKey.MoveToPreviousPage, QKeySequence('A')]) nextPageAction = QAction(self.tr('Next Page'), self) nextPageAction.setShortcuts([QKeySequence.StandardKey.MoveToNextPage, QKeySequence('D')]) goMenu = QMenu(self.goToolBtn) goMenu.addActions([prevPageAction, nextPageAction]) self.goToolBtn.setMenu(goMenu) self.goToolBtn.setPopupMode(QToolButton.InstantPopup) self.prevpage_trigger = prevPageAction.triggered self.nextpage_trigger = nextPageAction.triggered self.runToolBtn = TitleBarToolBtn(self) self.runToolBtn.setText(self.tr('Run')) runAction = QAction(self.tr('Run'), self) translatePageAction = QAction(self.tr('Translate page'), self) runMenu = QMenu(self.runToolBtn) runMenu.addActions([runAction, translatePageAction]) self.runToolBtn.setMenu(runMenu) self.runToolBtn.setPopupMode(QToolButton.InstantPopup) self.run_trigger = runAction.triggered self.translate_page_trigger = translatePageAction.triggered self.iconLabel = QLabel(self) self.iconLabel.setFixedWidth(LEFTBAR_WIDTH - 12) Loading @@ -354,6 +390,9 @@ class TitleBar(Widget): hlayout.setAlignment(Qt.AlignmentFlag.AlignCenter) hlayout.addWidget(self.iconLabel) hlayout.addWidget(self.editToolBtn) hlayout.addWidget(self.viewToolBtn) hlayout.addWidget(self.goToolBtn) hlayout.addWidget(self.runToolBtn) hlayout.addStretch() hlayout.addWidget(self.titleLabel) hlayout.addStretch() Loading Loading
ballontranslator/data/config/stylesheet.css +2 −2 Original line number Diff line number Diff line Loading @@ -867,8 +867,8 @@ ClickableLabel#ReplaceAllBtn { } TitleBarToolBtn { padding-left: 6px; padding-right: 6px; padding-left: 4px; padding-right: 4px; border-style: none; font-size: 15px; color: #6d6d6f; Loading
ballontranslator/ui/global_search_widget.py +6 −9 Original line number Diff line number Diff line from qtpy.QtWidgets import QHBoxLayout, QSizePolicy, QComboBox, QStyledItemDelegate, QLabel, QTreeView, QCheckBox, QStyleOptionViewItem, QVBoxLayout, QStyle, QMessageBox, QStyle, QApplication, QWidget from qtpy.QtCore import Qt, QItemSelection, QSize, Signal, QUrl, QModelIndex, QRectF from qtpy.QtGui import QPalette, QPainter, QTextCursor, QStandardItemModel, QStandardItem, QAbstractTextDocumentLayout, QColor, QShowEvent, QTextDocument, QTextCharFormat from qtpy.QtGui import QFont, QPainter, QTextCursor, QStandardItemModel, QStandardItem, QAbstractTextDocumentLayout, QColor, QShowEvent, QTextDocument, QTextCharFormat from typing import List, Union, Tuple, Dict import re, time Loading Loading @@ -44,10 +44,11 @@ class HTMLDelegate( QStyledItemDelegate ): style.drawControl(QStyle.ControlElement.CE_ItemViewItem, options, painter) def get_rstitem_renderhtml(text: str, span: Tuple[int, int]) -> str: def get_rstitem_renderhtml(text: str, span: Tuple[int, int], font: QFont = None) -> str: if text == '': return text doc = QTextDocument() if font is None: font = doc.defaultFont() font.setPointSizeF(SEARCHRST_FONTSIZE) doc.setDefaultFont(font) Loading Loading @@ -76,14 +77,9 @@ class SearchResultItem(QStandardItem): self.is_src = is_src self.blk_idx = blk_idx self.pagename = pagename self.setText(get_rstitem_renderhtml(text, span)) self.setText(get_rstitem_renderhtml(text, span, font=self.font())) self.setEditable(False) def setBold(self, bold: bool): font = self.font() font.setBold(bold) self.setFont(font) class PageSeachResultItem(QStandardItem): def __init__(self, pagename: str, result_counter: int, blkid2match: dict): Loading Loading @@ -534,6 +530,7 @@ class GlobalSearchWidget(Widget): if self.counter_sum > 0: self.search_tree.clearPages() self.result_label.setText(self.doc_edited_str) self.counter_sum = 0 def on_img_writed(self, pagename: str): if not self.progress_bar.isVisible(): Loading
ballontranslator/ui/mainwindow.py +13 −18 Original line number Diff line number Diff line Loading @@ -355,19 +355,18 @@ class MainWindow(FramelessWindow): self.page_changing = False def setupShortcuts(self): shortcutNext = QShortcut(QKeySequence.StandardKey.MoveToNextPage, self) shortcutNext.activated.connect(self.shortcutNext) shortcutD = QShortcut(QKeySequence("D"), self) shortcutD.activated.connect(self.shortcutNext) shortcutBefore = QShortcut(QKeySequence.StandardKey.MoveToPreviousPage, self) shortcutBefore.activated.connect(self.shortcutBefore) shortcutA = QShortcut(QKeySequence("A"), self) shortcutA.activated.connect(self.shortcutBefore) shortcutTextedit = QShortcut(QKeySequence("T"), self) shortcutTextedit.activated.connect(self.shortcutTextedit) self.titleBar.nextpage_trigger.connect(self.shortcutNext) self.titleBar.prevpage_trigger.connect(self.shortcutBefore) self.titleBar.textedit_trigger.connect(self.shortcutTextedit) self.titleBar.drawboard_trigger.connect(self.shortcutDrawboard) self.titleBar.redo_trigger.connect(self.on_redo) self.titleBar.undo_trigger.connect(self.on_undo) self.titleBar.page_search_trigger.connect(self.on_page_search) self.titleBar.global_search_trigger.connect(self.on_global_search) self.titleBar.run_trigger.connect(self.leftBar.runImgtransBtn.click) self.titleBar.translate_page_trigger.connect(self.bottomBar.transTranspageBtn.click) shortcutTextblock = QShortcut(QKeySequence("W"), self) shortcutPaint = QShortcut(QKeySequence("P"), self) shortcutPaint.activated.connect(self.shortcutPaint) shortcutTextblock.activated.connect(self.shortcutTextblock) shortcutZoomIn = QShortcut(QKeySequence.StandardKey.ZoomIn, self) shortcutZoomIn.activated.connect(self.canvas.gv.scale_up_signal) Loading @@ -380,14 +379,9 @@ class MainWindow(FramelessWindow): shortcutSelectAll = QShortcut(QKeySequence.StandardKey.SelectAll, self) shortcutSelectAll.activated.connect(self.shortcutSelectAll) self.titleBar.redo_trigger.connect(self.on_redo) self.titleBar.undo_trigger.connect(self.on_undo) self.titleBar.page_search_trigger.connect(self.on_page_search) self.titleBar.global_search_trigger.connect(self.on_global_search) shortcutEscape = QShortcut(QKeySequence("Escape"), self) shortcutEscape.activated.connect(self.shortcutEscape) # font formatting shortcutBold = QShortcut(QKeySequence.StandardKey.Bold, self) shortcutBold.activated.connect(self.shortcutBold) shortcutItalic = QShortcut(QKeySequence.StandardKey.Italic, self) Loading Loading @@ -422,7 +416,7 @@ class MainWindow(FramelessWindow): if self.bottomBar.texteditChecker.isChecked(): self.bottomBar.textblockChecker.click() def shortcutPaint(self): def shortcutDrawboard(self): if self.centralStackWidget.currentIndex() == 0: self.bottomBar.paintChecker.click() Loading Loading @@ -672,6 +666,7 @@ class MainWindow(FramelessWindow): return if run_target and self.canvas.text_change_unsaved(): self.st_manager.updateTextBlkList() self.global_search_widget.set_document_edited() self.dl_manager.translatePage(run_target, page_key) def finishTranslatePage(self, page_key): Loading
ballontranslator/ui/mainwindowbars.py +40 −1 Original line number Diff line number Diff line Loading @@ -330,10 +330,46 @@ class TitleBar(Widget): editMenu.addActions([undoAction, redoAction]) editMenu.addSeparator() editMenu.addActions([pageSearchAction, globalSearchAction]) self.editToolBtn.setMenu(editMenu) self.editToolBtn.setPopupMode(QToolButton.InstantPopup) self.viewToolBtn = TitleBarToolBtn(self) self.viewToolBtn.setText(self.tr('View')) drawBoardAction = QAction(self.tr('Drawing Board '), self) drawBoardAction.setShortcut(QKeySequence('P')) texteditAction = QAction(self.tr('Text Editor'), self) texteditAction.setShortcut(QKeySequence('T')) viewMenu = QMenu(self.viewToolBtn) viewMenu.addActions([drawBoardAction, texteditAction]) self.viewToolBtn.setMenu(viewMenu) self.viewToolBtn.setPopupMode(QToolButton.InstantPopup) self.textedit_trigger = texteditAction.triggered self.drawboard_trigger = drawBoardAction.triggered self.goToolBtn = TitleBarToolBtn(self) self.goToolBtn.setText(self.tr('Go')) prevPageAction = QAction(self.tr('Previous Page'), self) prevPageAction.setShortcuts([QKeySequence.StandardKey.MoveToPreviousPage, QKeySequence('A')]) nextPageAction = QAction(self.tr('Next Page'), self) nextPageAction.setShortcuts([QKeySequence.StandardKey.MoveToNextPage, QKeySequence('D')]) goMenu = QMenu(self.goToolBtn) goMenu.addActions([prevPageAction, nextPageAction]) self.goToolBtn.setMenu(goMenu) self.goToolBtn.setPopupMode(QToolButton.InstantPopup) self.prevpage_trigger = prevPageAction.triggered self.nextpage_trigger = nextPageAction.triggered self.runToolBtn = TitleBarToolBtn(self) self.runToolBtn.setText(self.tr('Run')) runAction = QAction(self.tr('Run'), self) translatePageAction = QAction(self.tr('Translate page'), self) runMenu = QMenu(self.runToolBtn) runMenu.addActions([runAction, translatePageAction]) self.runToolBtn.setMenu(runMenu) self.runToolBtn.setPopupMode(QToolButton.InstantPopup) self.run_trigger = runAction.triggered self.translate_page_trigger = translatePageAction.triggered self.iconLabel = QLabel(self) self.iconLabel.setFixedWidth(LEFTBAR_WIDTH - 12) Loading @@ -354,6 +390,9 @@ class TitleBar(Widget): hlayout.setAlignment(Qt.AlignmentFlag.AlignCenter) hlayout.addWidget(self.iconLabel) hlayout.addWidget(self.editToolBtn) hlayout.addWidget(self.viewToolBtn) hlayout.addWidget(self.goToolBtn) hlayout.addWidget(self.runToolBtn) hlayout.addStretch() hlayout.addWidget(self.titleLabel) hlayout.addStretch() Loading