diff options
Diffstat (limited to 'examples/widgets/richtext/textedit/textedit.py')
-rw-r--r-- | examples/widgets/richtext/textedit/textedit.py | 104 |
1 files changed, 36 insertions, 68 deletions
diff --git a/examples/widgets/richtext/textedit/textedit.py b/examples/widgets/richtext/textedit/textedit.py index 1bcec7ed4..8019446f0 100644 --- a/examples/widgets/richtext/textedit/textedit.py +++ b/examples/widgets/richtext/textedit/textedit.py @@ -1,54 +1,17 @@ -############################################################################# -## -## Copyright (C) 2021 The Qt Company Ltd. -## Contact: http://www.qt.io/licensing/ -## -## This file is part of the Qt for Python examples of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:BSD$ -## You may use this file under the terms of the BSD license as follows: -## -## "Redistribution and use in source and binary forms, with or without -## modification, are permitted provided that the following conditions are -## met: -## * Redistributions of source code must retain the above copyright -## notice, this list of conditions and the following disclaimer. -## * Redistributions in binary form must reproduce the above copyright -## notice, this list of conditions and the following disclaimer in -## the documentation and/or other materials provided with the -## distribution. -## * Neither the name of The Qt Company Ltd nor the names of its -## contributors may be used to endorse or promote products derived -## from this software without specific prior written permission. -## -## -## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause import sys -from PySide6.QtCore import (QCoreApplication, QDir, QFile, QFileInfo, QMimeData, +from PySide6.QtCore import (QCoreApplication, QDir, QFile, QFileInfo, QMimeDatabase, QUrl, Qt, Slot) -from PySide6.QtGui import (QAction, QActionGroup, QGuiApplication, QClipboard, - QCloseEvent, QFont, QFontDatabase, QFontInfo, QIcon, - QKeySequence, QPixmap, QTextBlockFormat, +from PySide6.QtGui import (QAction, QActionGroup, QColor, QGuiApplication, + QFont, QFontDatabase, QFontInfo, QIcon, + QKeySequence, QPalette, QPixmap, QTextBlockFormat, QTextCharFormat, QTextCursor, QTextDocumentWriter, - QTextList, QTextListFormat) + QTextFormat, QTextListFormat) from PySide6.QtWidgets import (QApplication, QMainWindow, QColorDialog, QComboBox, - QDialog, QFileDialog, QFontComboBox, QStatusBar, - QTextEdit, QToolBar, QMenu, QMenuBar, QMessageBox) + QDialog, QFileDialog, QFontComboBox, + QTextEdit, QMessageBox) from PySide6.QtPrintSupport import (QAbstractPrintDialog, QPrinter, QPrintDialog, QPrintPreviewDialog) @@ -77,7 +40,7 @@ class TextEdit(QMainWindow): def __init__(self, parent=None): super().__init__(parent) if sys.platform == 'darwin': - setUnifiedTitleAndToolBarOnMac(True) + self.setUnifiedTitleAndToolBarOnMac(True) self.setWindowTitle(QCoreApplication.applicationName()) self._text_edit = QTextEdit(self) @@ -92,7 +55,7 @@ class TextEdit(QMainWindow): help_menu = self.menuBar().addMenu("Help") help_menu.addAction("About", self.about) - help_menu.addAction("About &Qt", qApp.aboutQt) + help_menu.addAction("About &Qt", qApp.aboutQt) # noqa: F821 text_font = QFont("Helvetica") text_font.setStyleHint(QFont.SansSerif) @@ -138,13 +101,14 @@ class TextEdit(QMainWindow): tb = self.addToolBar("File self.actions") menu = self.menuBar().addMenu("&File") - icon = QIcon.fromTheme("document-new", QIcon(RSRC_PATH + "/filenew.png")) + icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentNew, + QIcon(RSRC_PATH + "/filenew.png")) a = menu.addAction(icon, "&New", self.file_new) tb.addAction(a) a.setPriority(QAction.LowPriority) a.setShortcut(QKeySequence.New) - icon = QIcon.fromTheme("document-open", + icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentOpen, QIcon(RSRC_PATH + "/fileopen.png")) a = menu.addAction(icon, "&Open...", self.file_open) a.setShortcut(QKeySequence.Open) @@ -152,7 +116,7 @@ class TextEdit(QMainWindow): menu.addSeparator() - icon = QIcon.fromTheme("document-save", + icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentSave, QIcon(RSRC_PATH + "/filesave.png")) self._action_save = menu.addAction(icon, "&Save", self.file_save) self._action_save.setShortcut(QKeySequence.Save) @@ -163,7 +127,7 @@ class TextEdit(QMainWindow): a.setPriority(QAction.LowPriority) menu.addSeparator() - icon = QIcon.fromTheme("document-print", + icon = QIcon.fromTheme(QIcon.ThemeIcon.DocumentPrint, QIcon(RSRC_PATH + "/fileprint.png")) a = menu.addAction(icon, "&Print...", self.file_print) a.setPriority(QAction.LowPriority) @@ -188,32 +152,36 @@ class TextEdit(QMainWindow): tb = self.addToolBar("Edit self.actions") menu = self.menuBar().addMenu("&Edit") - icon = QIcon.fromTheme("edit-undo", + icon = QIcon.fromTheme(QIcon.ThemeIcon.EditUndo, QIcon(RSRC_PATH + "/editundo.png")) self._action_undo = menu.addAction(icon, "&Undo", self._text_edit.undo) self._action_undo.setShortcut(QKeySequence.Undo) tb.addAction(self._action_undo) - icon = QIcon.fromTheme("edit-redo", QIcon(RSRC_PATH + "/editredo.png")) + icon = QIcon.fromTheme(QIcon.ThemeIcon.EditRedo, + QIcon(RSRC_PATH + "/editredo.png")) self._action_redo = menu.addAction(icon, "&Redo", self._text_edit.redo) self._action_redo.setPriority(QAction.LowPriority) self._action_redo.setShortcut(QKeySequence.Redo) tb.addAction(self._action_redo) menu.addSeparator() - icon = QIcon.fromTheme("edit-cut", QIcon(RSRC_PATH + "/editcut.png")) + icon = QIcon.fromTheme(QIcon.ThemeIcon.EditCut, + QIcon(RSRC_PATH + "/editcut.png")) self._action_cut = menu.addAction(icon, "Cu&t", self._text_edit.cut) self._action_cut.setPriority(QAction.LowPriority) self._action_cut.setShortcut(QKeySequence.Cut) tb.addAction(self._action_cut) - icon = QIcon.fromTheme("edit-copy", QIcon(RSRC_PATH + "/editcopy.png")) + icon = QIcon.fromTheme(QIcon.ThemeIcon.EditCopy, + QIcon(RSRC_PATH + "/editcopy.png")) self._action_copy = menu.addAction(icon, "&Copy", self._text_edit.copy) self._action_copy.setPriority(QAction.LowPriority) self._action_copy.setShortcut(QKeySequence.Copy) tb.addAction(self._action_copy) - icon = QIcon.fromTheme("edit-paste", QIcon(RSRC_PATH + "/editpaste.png")) + icon = QIcon.fromTheme(QIcon.ThemeIcon.EditPaste, + QIcon(RSRC_PATH + "/editpaste.png")) self._action_paste = menu.addAction(icon, "&Paste", self._text_edit.paste) self._action_paste.setPriority(QAction.LowPriority) self._action_paste.setShortcut(QKeySequence.Paste) @@ -227,7 +195,7 @@ class TextEdit(QMainWindow): tb = self.addToolBar("Format self.actions") menu = self.menuBar().addMenu("F&ormat") - icon = QIcon.fromTheme("format-text-bold", + icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatTextBold, QIcon(RSRC_PATH + "/textbold.png")) self._action_text_bold = menu.addAction(icon, "&Bold", self.text_bold) self._action_text_bold.setShortcut(Qt.CTRL | Qt.Key_B) @@ -238,7 +206,7 @@ class TextEdit(QMainWindow): tb.addAction(self._action_text_bold) self._action_text_bold.setCheckable(True) - icon = QIcon.fromTheme("format-text-italic", + icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatTextItalic, QIcon(RSRC_PATH + "/textitalic.png")) self._action_text_italic = menu.addAction(icon, "&Italic", self.text_italic) self._action_text_italic.setPriority(QAction.LowPriority) @@ -249,7 +217,7 @@ class TextEdit(QMainWindow): tb.addAction(self._action_text_italic) self._action_text_italic.setCheckable(True) - icon = QIcon.fromTheme("format-text-underline", + icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatTextUnderline, QIcon(RSRC_PATH + "/textunder.png")) self._action_text_underline = menu.addAction(icon, "&Underline", self.text_underline) @@ -263,36 +231,36 @@ class TextEdit(QMainWindow): menu.addSeparator() - icon = QIcon.fromTheme("format-justify-left", + icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatJustifyLeft, QIcon(RSRC_PATH + "/textleft.png")) self._action_align_left = QAction(icon, "&Left", self) self._action_align_left.setShortcut(Qt.CTRL | Qt.Key_L) self._action_align_left.setCheckable(True) self._action_align_left.setPriority(QAction.LowPriority) - icon = QIcon.fromTheme("format-justify-center", + icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatJustifyCenter, QIcon(RSRC_PATH + "/textcenter.png")) self._action_align_center = QAction(icon, "C&enter", self) self._action_align_center.setShortcut(Qt.CTRL | Qt.Key_E) self._action_align_center.setCheckable(True) self._action_align_center.setPriority(QAction.LowPriority) - icon = QIcon.fromTheme("format-justify-right", + icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatJustifyRight, QIcon(RSRC_PATH + "/textright.png")) self._action_align_right = QAction(icon, "&Right", self) self._action_align_right.setShortcut(Qt.CTRL | Qt.Key_R) self._action_align_right.setCheckable(True) self._action_align_right.setPriority(QAction.LowPriority) - icon = QIcon.fromTheme("format-justify-fill", + icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatJustifyFill, QIcon(RSRC_PATH + "/textjustify.png")) self._action_align_justify = QAction(icon, "&Justify", self) self._action_align_justify.setShortcut(Qt.CTRL | Qt.Key_J) self._action_align_justify.setCheckable(True) self._action_align_justify.setPriority(QAction.LowPriority) - icon = QIcon.fromTheme("format-indent-more", + icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatIndentMore, QIcon(RSRC_PATH + "/format-indent-more.png")) self._action_indent_more = menu.addAction(icon, "&Indent", self.indent) self._action_indent_more.setShortcut(Qt.CTRL | Qt.Key_BracketRight) self._action_indent_more.setPriority(QAction.LowPriority) - icon = QIcon.fromTheme("format-indent-less", + icon = QIcon.fromTheme(QIcon.ThemeIcon.FormatIndentLess, QIcon(RSRC_PATH + "/format-indent-less.png")) self._action_indent_less = menu.addAction(icon, "&Unindent", self.unindent) @@ -443,7 +411,7 @@ class TextEdit(QMainWindow): @Slot() def file_save(self): if not self._file_name or self._file_name.startswith(":/"): - return fileSaveAs() + return self.file_save_as() writer = QTextDocumentWriter(self._file_name) document = self._text_edit.document() @@ -658,7 +626,7 @@ class TextEdit(QMainWindow): above = QTextCursor(cursor) above.movePosition(QTextCursor.Up) if (above.currentList() - and list_fmt.indent() + amount == above.currentList().format().indent()): + and list_fmt.indent() + amount == above.currentList().format().indent()): above.currentList().add(cursor.block()) else: list_fmt.setIndent(list_fmt.indent() + amount) |