Commit e7036654 authored by dmMaze's avatar dmMaze
Browse files

add actions to titlebar

parent fc28dc88
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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;
+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
@@ -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)
@@ -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):
@@ -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():
+13 −18
Original line number Diff line number Diff line
@@ -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)
@@ -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)
@@ -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()

@@ -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):
+40 −1
Original line number Diff line number Diff line
@@ -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)

@@ -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()