Thu, 12 Jan 2023 18:08:12 +0100
Started implementing a PDF viewer tool.
--- a/eric7.epj Thu Jan 12 14:01:40 2023 +0100 +++ b/eric7.epj Thu Jan 12 18:08:12 2023 +0100 @@ -1314,6 +1314,8 @@ "src/eric7/Network/IRC/IrcWidget.py", "src/eric7/Network/IRC/__init__.py", "src/eric7/Network/__init__.py", + "src/eric7/PdfViewer/PdfViewerWindow.py", + "src/eric7/PdfViewer/__init__.py", "src/eric7/PipInterface/Pip.py", "src/eric7/PipInterface/PipDialog.py", "src/eric7/PipInterface/PipFileSelectionDialog.py", @@ -2362,6 +2364,7 @@ "src/eric7/eric7_iconeditor.pyw", "src/eric7/eric7_ide.py", "src/eric7/eric7_ide.pyw", + "src/eric7/eric7_pdf.py", "src/eric7/eric7_plugininstall.py", "src/eric7/eric7_plugininstall.pyw", "src/eric7/eric7_pluginrepository.py",
--- a/pyproject.toml Thu Jan 12 14:01:40 2023 +0100 +++ b/pyproject.toml Thu Jan 12 18:08:12 2023 +0100 @@ -107,6 +107,7 @@ eric7_hexeditor = "eric7.eric7_hexeditor:main" eric7_iconeditor = "eric7.eric7_iconeditor:main" eric7_ide = "eric7.eric7_ide:main" +eric7_pdf = "eric7.eric7_pdf:main" eric7_plugininstall = "eric7.eric7_plugininstall:main" eric7_pluginrepository = "eric7.eric7_pluginrepository:main" eric7_pluginuninstall = "eric7.eric7_pluginuninstall:main"
--- a/scripts/install.py Thu Jan 12 14:01:40 2023 +0100 +++ b/scripts/install.py Thu Jan 12 18:08:12 2023 +0100 @@ -513,6 +513,7 @@ "eric7_hexeditor", "eric7_iconeditor", "eric7_ide", + "eric7_pdf", "eric7_plugininstall", "eric7_pluginrepository", "eric7_pluginuninstall", @@ -751,6 +752,7 @@ "eric7_hexeditor", "eric7_iconeditor", "eric7_ide", + "eric7_pdf", "eric7_plugininstall", "eric7_pluginrepository", "eric7_pluginuninstall",
--- a/scripts/uninstall.py Thu Jan 12 14:01:40 2023 +0100 +++ b/scripts/uninstall.py Thu Jan 12 18:08:12 2023 +0100 @@ -133,6 +133,7 @@ "eric7_hexeditor", "eric7_iconeditor", "eric7_ide", + "eric7_pdf", "eric7_plugininstall", "eric7_pluginrepository", "eric7_pluginuninstall",
--- a/src/eric7/Globals/__init__.py Thu Jan 12 14:01:40 2023 +0100 +++ b/src/eric7/Globals/__init__.py Thu Jan 12 18:08:12 2023 +0100 @@ -55,13 +55,14 @@ settingsNameRecent = "eric7recent" # key names of the various recent entries -recentNameMultiProject = "MultiProjects" -recentNameProject = "Projects" +recentNameBreakpointConditions = "BreakPointConditions" +recentNameBreakpointFiles = "BreakPointFiles" recentNameFiles = "Files" recentNameHexFiles = "HexFiles" recentNameHosts = "Hosts" -recentNameBreakpointFiles = "BreakPointFiles" -recentNameBreakpointConditions = "BreakPointConditions" +recentNameMultiProject = "MultiProjects" +recentNamePdfFiles = "PdfFiles" +recentNameProject = "Projects" recentNameTestDiscoverHistory = "UTDiscoverHistory" recentNameTestFileHistory = "UTFileHistory" recentNameTestNameHistory = "UTTestnameHistory"
--- a/src/eric7/HexEdit/HexEditMainWindow.py Thu Jan 12 14:01:40 2023 +0100 +++ b/src/eric7/HexEdit/HexEditMainWindow.py Thu Jan 12 18:08:12 2023 +0100 @@ -39,7 +39,7 @@ class HexEditMainWindow(EricMainWindow): """ - Class implementing the web browser main window. + Class implementing the hex editor main window. @signal editorClosed() emitted after the window was requested to close down """
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/eric7/PdfViewer/PdfViewerWindow.py Thu Jan 12 18:08:12 2023 +0100 @@ -0,0 +1,508 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2023 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the PDF viewer main window. +""" + +import os +import pathlib + +from PyQt6.QtCore import Qt, pyqtSignal, QSize, pyqtSlot, QPointF +from PyQt6.QtGui import QAction, QKeySequence +from PyQt6.QtPdf import QPdfDocument +from PyQt6.QtPdfWidgets import QPdfView +from PyQt6.QtWidgets import ( + QWhatsThis, QMenu, QTabWidget, QSplitter, QSpinBox +) + +from eric7 import Preferences +from eric7.EricGui import EricPixmapCache +from eric7.EricGui.EricAction import EricAction +from eric7.EricWidgets import EricFileDialog, EricMessageBox +from eric7.EricWidgets.EricMainWindow import EricMainWindow +from eric7.Globals import recentNamePdfFiles +from eric7.SystemUtilities import FileSystemUtilities + + +class PdfViewerWindow(EricMainWindow): + """ + Class implementing the PDF viewer main window. + + @signal editorClosed() emitted after the window was requested to close down + """ + + editorClosed = pyqtSignal() + + maxMenuFilePathLen = 75 + + def __init__(self, fileName="", parent=None, fromEric=False, project=None): + """ + Constructor + + @param fileName name of a file to load on startup + @type str + @param parent parent widget of this window + @type QWidget + @param fromEric flag indicating whether it was called from within + eric + @type bool + @param project reference to the project object + @type Project + """ + super().__init__(parent) + self.setObjectName("eric7_pdf_viewer") + + self.__fromEric = fromEric + self.setWindowIcon(EricPixmapCache.getIcon("ericPdf")) + + if not self.__fromEric: + self.setStyle(Preferences.getUI("Style"), Preferences.getUI("StyleSheet")) + + self.__pdfDocument = QPdfDocument(self) + + # TODO: insert central widget here + self.__cw = QSplitter(Qt.Orientation.Horizontal, self) + self.__info = QTabWidget(self) + self.__cw.addWidget(self.__info) + self.__view = QPdfView(self) + self.__view.setDocument(self.__pdfDocument) + self.__cw.addWidget(self.__view) + self.setCentralWidget(self.__cw) + + g = Preferences.getGeometry("PdfViewerGeometry") + if g.isEmpty(): + s = QSize(1000, 1000) + self.resize(s) + self.__cw.setSizes([300, 700]) + else: + self.restoreGeometry(g) + + self.__initActions() + self.__initMenus() + self.__initToolbars() + self.__createStatusBar() + + state = Preferences.getPdfViewer("PdfViewerState") + self.restoreState(state) + + self.__project = project + self.__lastOpenPath = "" + + self.__recent = [] + self.__loadRecent() + + self.__setCurrentFile("") + self.__setViewerTitle("") + if fileName: + self.__loadPdfFile(fileName) + + self.__checkActions() + + def __initActions(self): + """ + Private method to define the user interface actions. + """ + # list of all actions + self.__actions = [] + + self.__initFileActions() + self.__initHelpActions() + + def __initFileActions(self): + """ + Private method to define the file related user interface actions. + """ + # TODO: not yet implemented + self.exitAct = EricAction( + self.tr("Quit"), + EricPixmapCache.getIcon("exit"), + self.tr("&Quit"), + QKeySequence(self.tr("Ctrl+Q", "File|Quit")), + 0, + self, + "pdfviewer_file_quit", + ) + self.exitAct.setStatusTip(self.tr("Quit the PDF Viewer")) + self.exitAct.setWhatsThis(self.tr("""<b>Quit</b><p>Quit the PDF Viewer.</p>""")) + self.__actions.append(self.exitAct) + + def __initHelpActions(self): + """ + Private method to create the Help actions. + """ + self.aboutAct = EricAction( + self.tr("About"), self.tr("&About"), 0, 0, self, "pdfviewer_help_about" + ) + self.aboutAct.setStatusTip(self.tr("Display information about this software")) + self.aboutAct.setWhatsThis( + self.tr( + """<b>About</b>""" + """<p>Display some information about this software.</p>""" + ) + ) + self.aboutAct.triggered.connect(self.__about) + self.__actions.append(self.aboutAct) + + self.aboutQtAct = EricAction( + self.tr("About Qt"), + self.tr("About &Qt"), + 0, + 0, + self, + "pdfviewer_help_about_qt", + ) + self.aboutQtAct.setStatusTip( + self.tr("Display information about the Qt toolkit") + ) + self.aboutQtAct.setWhatsThis( + self.tr( + """<b>About Qt</b>""" + """<p>Display some information about the Qt toolkit.</p>""" + ) + ) + self.aboutQtAct.triggered.connect(self.__aboutQt) + self.__actions.append(self.aboutQtAct) + + self.whatsThisAct = EricAction( + self.tr("What's This?"), + EricPixmapCache.getIcon("whatsThis"), + self.tr("&What's This?"), + QKeySequence(self.tr("Shift+F1", "Help|What's This?'")), + 0, + self, + "pdfviewer_help_whats_this", + ) + self.whatsThisAct.setStatusTip(self.tr("Context sensitive help")) + self.whatsThisAct.setWhatsThis( + self.tr( + """<b>Display context sensitive help</b>""" + """<p>In What's This? mode, the mouse cursor shows an arrow""" + """ with a question mark, and you can click on the interface""" + """ elements to get a short description of what they do and""" + """ how to use them. In dialogs, this feature can be accessed""" + """ using the context help button in the titlebar.</p>""" + ) + ) + self.whatsThisAct.triggered.connect(self.__whatsThis) + self.__actions.append(self.whatsThisAct) + + @pyqtSlot() + def __checkActions(self): + """ + Private slot to check some actions for their enable/disable status. + """ + # TODO: not yet implemented + + def __initMenus(self): + """ + Private method to create the menus. + """ + mb = self.menuBar() + + menu = mb.addMenu(self.tr("&File")) + menu.setTearOffEnabled(True) + self.__recentMenu = QMenu(self.tr("Open &Recent Files"), menu) + + # TODO: not yet implemented + + mb.addSeparator() + + menu = mb.addMenu(self.tr("&Help")) + menu.addAction(self.aboutAct) + menu.addAction(self.aboutQtAct) + menu.addSeparator() + menu.addAction(self.whatsThisAct) + + def __initToolbars(self): + """ + Private method to create the toolbars. + """ + # create a few widgets needed in the toolbars + self.__pageSelector = QSpinBox(self) + + filetb = self.addToolBar(self.tr("File")) + filetb.setObjectName("FileToolBar") + # TODO: not yet implemented + if not self.__fromEric: + filetb.addAction(self.exitAct) + + # TODO: not yet implemented + + helptb = self.addToolBar(self.tr("Help")) + helptb.setObjectName("HelpToolBar") + helptb.addAction(self.whatsThisAct) + + def __createStatusBar(self): + """ + Private method to initialize the status bar. + """ + self.__statusBar = self.statusBar() + self.__statusBar.setSizeGripEnabled(True) + + # not yet implemented + + def closeEvent(self, evt): + """ + Protected method handling the close event. + + @param evt reference to the close event + @type QCloseEvent + """ + state = self.saveState() + Preferences.setPdfViewer("PdfViewerState", state) + + Preferences.setGeometry("PdfViewerGeometry", self.saveGeometry()) + + if not self.__fromEric: + Preferences.syncPreferences() + + self.__saveRecent() + + evt.accept() + self.editorClosed.emit() + + def __setViewerTitle(self, title): + """ + Private method to set the viewer title. + + @param title title to be set + @type str + """ + if title: + self.setWindowTitle(self.tr("{0} - PDF Viewer").format(title)) + else: + self.setWindowTitle(self.tr("PDF Viewer")) + + def __getErrorString(self, err): + """ + Private method to get an error string for the given error. + + @param err error type + @type QPdfDocument.Error + @return string for the given error type + @rtype str + """ + if err == QPdfDocument.Error.None_: + reason = "" + elif err == QPdfDocument.Error.DataNotYetAvailable: + reason = self.tr("The document is still loading.") + elif err == QPdfDocument.Error.FileNotFound: + reason = self.tr("The file does not exist.") + elif err == QPdfDocument.Error.InvalidFileFormat: + reason = self.tr("The file is not a valid PDF file.") + elif err == QPdfDocument.Error.IncorrectPassword: + reason = self.tr("The password is not correct for this file.") + elif err == QPdfDocument.Error.UnsupportedSecurityScheme: + reason = self.tr("This kind of PDF file cannot be unlocked.") + else: + reason = self.tr("Unknown type of error.") + + return reason + + def __loadPdfFile(self, fileName): + """ + Private method to load a PDF file. + + @param fileName path of the PDF file to load + @type str + """ + # TODO: not yet implemented + err = self.__pdfDocument.load(fileName) + if err != QPdfDocument.Error.None_: + EricMessageBox.critical( + self, + self.tr("Load PDF File"), + self.tr( + """<p>The PDF file <b>{0}</b> could not be loaded.</p>""" + """<p>Reason: {1}</p>""" + ).format(fileName, self.__getErrorString(err)), + ) + return + + self.__lastOpenPath = os.path.dirname(fileName) + self.__setCurrentFile(fileName) + + documentTitle = self.__pdfDocument.metaData(QPdfDocument.MetaDataField.Title) + self.__setViewerTitle(documentTitle) + + self.__pageSelected(0) + self.__pageSelector.setMaximum(self.__pdfDocument.pageCount() - 1) + + def __openPdfFile(self): + """ + Private slot to open a PDF file. + """ + if ( + not self.__lastOpenPath + and self.__project is not None + and self.__project.isOpen() + ): + self.__lastOpenPath = self.__project.getProjectPath() + + fileName = EricFileDialog.getOpenFileName( + self, + self.tr("Open PDF File"), + self.__lastOpenPath, + self.tr("PDF Files (*.pdf);;All Files (*)"), + ) + if fileName: + self.__loadPdfFile(fileName) + + self.__checkActions() + + def __pageSelected(self, page): + """ + Private method to navigate to the given page. + + @param page index of the page to be shown + @type int + """ + nav = self.__view.pageNavigator() + nav.jump(page, QPointF(), nav.currentZoom()) + + def __setCurrentFile(self, fileName): + """ + Private method to register the file name of the current file. + + @param fileName name of the file to register + @type str + """ + self.__fileName = fileName + # insert filename into list of recently opened files + self.__addToRecentList(fileName) + + def __strippedName(self, fullFileName): + """ + Private method to return the filename part of the given path. + + @param fullFileName full pathname of the given file + @type str + @return filename part + @rtype str + """ + return pathlib.Path(fullFileName).name + + def __about(self): + """ + Private slot to show a little About message. + """ + EricMessageBox.about( + self, + self.tr("About eric PDF Viewer"), + self.tr( + "The eric PDF Viewer is a simple component for viewing PDF files." + ), + ) + + def __aboutQt(self): + """ + Private slot to handle the About Qt dialog. + """ + EricMessageBox.aboutQt(self, "eric PDF Viewer") + + def __whatsThis(self): + """ + Private slot called in to enter Whats This mode. + """ + QWhatsThis.enterWhatsThisMode() + + def __showPreferences(self): + """ + Private slot to set the preferences. + """ + from eric7.Preferences.ConfigurationDialog import ( + ConfigurationDialog, + ConfigurationMode, + ) + + # TODO: not yet implemented + + @pyqtSlot() + def __showFileMenu(self): + """ + Private slot to modify the file menu before being shown. + """ + self.__menuRecentAct.setEnabled(len(self.__recent) > 0) + + @pyqtSlot() + def __showRecentMenu(self): + """ + Private slot to set up the recent files menu. + """ + self.__loadRecent() + + self.__recentMenu.clear() + + for idx, rs in enumerate(self.__recent, start=1): + formatStr = "&{0:d}. {1}" if idx < 10 else "{0:d}. {1}" + act = self.__recentMenu.addAction( + formatStr.format( + idx, + FileSystemUtilities.compactPath( + rs, PdfViewerWindow.maxMenuFilePathLen + ), + ) + ) + act.setData(rs) + act.setEnabled(pathlib.Path(rs).exists()) + + self.__recentMenu.addSeparator() + self.__recentMenu.addAction(self.tr("&Clear"), self.__clearRecent) + + @pyqtSlot(QAction) + def __openRecentPdfFile(self, act): + """ + Private method to open a file from the list of recently opened files. + + @param act reference to the action that triggered + @type QAction + """ + fileName = act.data() + if fileName and self.__maybeSave(): + self.__loadPdfFile(fileName) + self.__checkActions() + + @pyqtSlot() + def __clearRecent(self): + """ + Private method to clear the list of recently opened files. + """ + self.__recent = [] + + def __loadRecent(self): + """ + Private method to load the list of recently opened files. + """ + self.__recent = [] + Preferences.Prefs.rsettings.sync() + rs = Preferences.Prefs.rsettings.value(recentNamePdfFiles) + if rs is not None: + for f in Preferences.toList(rs): + if pathlib.Path(f).exists(): + self.__recent.append(f) + + def __saveRecent(self): + """ + Private method to save the list of recently opened files. + """ + Preferences.Prefs.rsettings.setValue(recentNamePdfFiles, self.__recent) + Preferences.Prefs.rsettings.sync() + + def __addToRecentList(self, fileName): + """ + Private method to add a file name to the list of recently opened files. + + @param fileName name of the file to be added + """ + if fileName: + for recent in self.__recent[:]: + if FileSystemUtilities.samepath(fileName, recent): + self.__recent.remove(recent) + self.__recent.insert(0, fileName) + maxRecent = Preferences.getPdfViewer("RecentNumber") + if len(self.__recent) > maxRecent: + self.__recent = self.__recent[:maxRecent] + self.__saveRecent()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/eric7/PdfViewer/__init__.py Thu Jan 12 18:08:12 2023 +0100 @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2023 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Package implementing a simple PDF viewer tool. +"""
--- a/src/eric7/Preferences/__init__.py Thu Jan 12 14:01:40 2023 +0100 +++ b/src/eric7/Preferences/__init__.py Thu Jan 12 18:08:12 2023 +0100 @@ -1451,13 +1451,12 @@ # defaults for geometry geometryDefaults = { - "HelpViewerGeometry": QByteArray(), - "HelpInspectorGeometry": QByteArray(), - "WebBrowserGeometry": QByteArray(), - "IconEditorGeometry": QByteArray(), - "HexEditorGeometry": QByteArray(), "MainGeometry": QByteArray(), "MainMaximized": False, + "HexEditorGeometry": QByteArray(), + "IconEditorGeometry": QByteArray(), + "PdfViewerGeometry": QByteArray(), + "WebBrowserGeometry": QByteArray(), "WebInspectorGeometry": QByteArray(), } @@ -1631,6 +1630,12 @@ "MouseClickGotoButton": Qt.MouseButton.LeftButton, } + # defaults for Hex Editor + pdfViewerDefaults = { + "PdfViewerState": QByteArray(), + "RecentNumber": 9, + } + def readToolGroups(): """ @@ -3838,6 +3843,35 @@ Prefs.settings.setValue("AssistantJedi/" + key, value) +def getPdfViewer(key): + """ + Module function to retrieve the Pdf Viewer related settings. + + @param key the key of the value to get + @type str + @return the requested user setting + @rtype Any + """ + if key in ("RecentNumber"): + return int( + Prefs.settings.value("PdfViewer/" + key, Prefs.pdfViewerDefaults[key]) + ) + else: + return Prefs.settings.value("PdfViewer/" + key, Prefs.pdfViewerDefaults[key]) + + +def setPdfViewer(key, value): + """ + Module function to store the Pdf Viewer related settings. + + @param key the key of the setting to be set + @type str + @param value the value to be set + @type Any + """ + Prefs.settings.setValue("PdfViewer/" + key, value) + + def getGeometry(key): """ Module function to retrieve the display geometry.
--- a/src/eric7/Project/ProjectBrowser.py Thu Jan 12 14:01:40 2023 +0100 +++ b/src/eric7/Project/ProjectBrowser.py Thu Jan 12 18:08:12 2023 +0100 @@ -50,6 +50,7 @@ @signal designerFile(filename) emitted to open a Qt-Designer file (str) @signal linguistFile(filename) emitted to open a Qt-Linguist (*.ts) file (str) + @signal pdfFile(filename) emitted to open a PDF file (str) @signal pixmapEditFile(filename) emitted to edit a pixmap file (str) @signal pixmapFile(filename) emitted to open a pixmap file (str) @signal preferencesChanged() emitted when the preferences have been changed @@ -80,6 +81,7 @@ closeSourceWindow = pyqtSignal(str) designerFile = pyqtSignal(str) linguistFile = pyqtSignal(str) + pdfFile = pyqtSignal(str) pixmapEditFile = pyqtSignal(str) pixmapFile = pyqtSignal(str) preferencesChanged = pyqtSignal()
--- a/src/eric7/Project/ProjectOthersBrowser.py Thu Jan 12 14:01:40 2023 +0100 +++ b/src/eric7/Project/ProjectOthersBrowser.py Thu Jan 12 18:08:12 2023 +0100 @@ -114,6 +114,7 @@ self.svgFile.connect(projectBrowser.svgFile) self.umlFile.connect(projectBrowser.umlFile) self.binaryFile.connect(projectBrowser.binaryFile) + self.pdfFile.connect(projectBrowser.pdfFile) def getIcon(self): """ @@ -137,6 +138,8 @@ self.openInEditorAct = self.menu.addAction( self.tr("Open in Editor"), self._openFileInEditor ) + self.openInPdfViewerAct = self.menu.addAction( + self.tr("Open in PDF Viewer"), self._openPdfViewer) self.menu.addSeparator() self.mimeTypeAct = self.menu.addAction( self.tr("Show Mime-Type"), self.__showMimeType @@ -260,6 +263,7 @@ if isinstance(itm, ProjectBrowserFileItem): self.editPixmapAct.setVisible(itm.isPixmapFile()) self.openInEditorAct.setVisible(itm.isSvgFile()) + self.openInPdfViewerAct.setVisible(itm.isPdfFile()) self.mimeTypeAct.setVisible(True) self.menu.popup(self.mapToGlobal(coord)) elif isinstance(itm, ProjectBrowserDirectoryItem): @@ -347,6 +351,16 @@ if isinstance(itm, ProjectBrowserFileItem): self.binaryFile.emit(itm.fileName()) + def _openPdfViewer(self): + """ + Protected slot to handle the open in PDF viewer popup menu entry. + """ + itmList = self.getSelectedItems() + + for itm in itmList: + if isinstance(itm, ProjectBrowserFileItem) and itm.isPdfFile(): + self.pdfFile.emit(itm.fileName()) + def _openItem(self): """ Protected slot to handle the open popup menu entry. @@ -355,7 +369,9 @@ for itm in itmList: if isinstance(itm, ProjectBrowserFileItem): - if itm.isSvgFile(): + if itm.isPdfFile(): + self.pdfFile.emit(itm.fileName()) + elif itm.isSvgFile(): self.svgFile.emit(itm.fileName()) elif itm.isPixmapFile(): self.pixmapFile.emit(itm.fileName())
--- a/src/eric7/UI/Browser.py Thu Jan 12 14:01:40 2023 +0100 +++ b/src/eric7/UI/Browser.py Thu Jan 12 18:08:12 2023 +0100 @@ -89,6 +89,7 @@ @signal binaryFile(filename) emitted to open a file as binary (str) @signal testFile(filename) emitted to open a Python file for a unit test (str) + @signal pdfFile(filename) emitted to open a PDF file (str) """ sourceFile = pyqtSignal((str,), (str, int), (str, list), (str, int, str)) @@ -102,6 +103,7 @@ svgFile = pyqtSignal(str) umlFile = pyqtSignal(str) binaryFile = pyqtSignal(str) + pdfFile = pyqtSignal(str) testFile = pyqtSignal(str) def __init__(self, parent=None): @@ -294,6 +296,10 @@ QCoreApplication.translate("Browser", "Open in Editor"), self._openFileInEditor, ) + self.openInPdfViewerAct = self.menu.addAction( + QCoreApplication.translate("Browser", "Open in PDF Viewer"), + self._openPdfViewer, + ) self.menu.addSeparator() self.mimeTypeAct = self.menu.addAction( QCoreApplication.translate("Browser", "Show Mime-Type"), self.__showMimeType @@ -447,11 +453,13 @@ else: self.editPixmapAct.setVisible(itm.isPixmapFile()) self.openInEditorAct.setVisible(itm.isSvgFile()) + self.openInPdfViewerAct.setVisible(itm.isPdfFile()) self.menu.popup(coord) elif isinstance( itm, (BrowserClassItem, BrowserMethodItem, BrowserImportItem) ): self.editPixmapAct.setVisible(False) + self.openInPdfViewerAct.setVisible(False) self.menu.popup(coord) elif isinstance(itm, BrowserClassAttributeItem): self.attributeMenu.popup(coord) @@ -651,6 +659,16 @@ if isinstance(itm, BrowserFileItem): self.binaryFile.emit(itm.fileName()) + def _openPdfViewer(self): + """ + Protected slot to handle the open in PDF viewer popup menu entry. + """ + itmList = self.getSelectedItems([BrowserFileItem]) + + for itm in itmList: + if isinstance(itm, BrowserFileItem): + self.pdfFile.emit(itm.fileName()) + def _openFileInEditor(self): """ Protected slot to handle the Open in Editor menu action.
--- a/src/eric7/UI/BrowserModel.py Thu Jan 12 14:01:40 2023 +0100 +++ b/src/eric7/UI/BrowserModel.py Thu Jan 12 18:08:12 2023 +0100 @@ -1394,6 +1394,15 @@ """ return self.fileext == ".svg" + def isPdfFile(self): + """ + Public method to check, if this file is a PDF file. + + @return flag indicating a PDF file + @rtype bool + """ + return self.fileext == ".pdf" + def isDFile(self): """ Public method to check, if this file is a D file.
--- a/src/eric7/UI/UserInterface.py Thu Jan 12 14:01:40 2023 +0100 +++ b/src/eric7/UI/UserInterface.py Thu Jan 12 18:08:12 2023 +0100 @@ -433,6 +433,7 @@ self.projectBrowser.svgFile.connect(self.__showSvg) self.projectBrowser.umlFile.connect(self.__showUml) self.projectBrowser.binaryFile.connect(self.__openHexEditor) + self.projectBrowser.pdfFile.connect(self.__openPdfViewer) self.project.sourceFile.connect(self.viewmanager.openSourceFile) self.project.designerFile.connect(self.__designer) @@ -517,6 +518,7 @@ self.browser.svgFile.connect(self.__showSvg) self.browser.umlFile.connect(self.__showUml) self.browser.binaryFile.connect(self.__openHexEditor) + self.browser.pdfFile.connect(self.__openPdfViewer) self.browser.testFile.connect(self.__startTestScript) self.browser.trpreview.connect(self.__TRPreviewer) @@ -3141,6 +3143,25 @@ self.snapshotAct.triggered.connect(self.__snapshot) self.actions.append(self.snapshotAct) + self.pdfViewerAct = EricAction( + self.tr("eric PDF Viewer"), + EricPixmapCache.getIcon("ericPdf"), + self.tr("eric PDF &Viewer..."), + 0, + 0, + self, + "pdf_viewer", + ) + self.pdfViewerAct.setStatusTip(self.tr("Start the eric PDF Viewer")) + self.pdfViewerAct.setWhatsThis( + self.tr( + """<b>eric PDF Viewer</b>""" + """<p>Starts the eric PDF Viewer for viewing PDF files.</p>""" + ) + ) + self.pdfViewerAct.triggered.connect(self.__openPdfViewer) + self.actions.append(self.pdfViewerAct) + self.prefAct = EricAction( self.tr("Preferences"), EricPixmapCache.getIcon("configure"), @@ -4142,6 +4163,7 @@ toolstb.addAction(self.hexEditorAct) toolstb.addAction(self.iconEditorAct) toolstb.addAction(self.snapshotAct) + toolstb.addAction(self.pdfViewerAct) if self.webBrowserAct: toolstb.addSeparator() toolstb.addAction(self.webBrowserAct) @@ -5085,6 +5107,7 @@ btMenu.addAction(self.hexEditorAct) btMenu.addAction(self.iconEditorAct) btMenu.addAction(self.snapshotAct) + btMenu.addAction(self.pdfViewerAct) if self.webBrowserAct: btMenu.addAction(self.webBrowserAct) @@ -6323,7 +6346,8 @@ """ Private slot to open the hex editor window. - @param fn filename of the file to show (string) + @param fn path of the file to show (defaults to "") + @type str (optional) """ from eric7.HexEdit.HexEditMainWindow import HexEditMainWindow @@ -6332,11 +6356,26 @@ @pyqtSlot() @pyqtSlot(str) + def __openPdfViewer(self, fn=""): + """ + Private slot to open the PDF viewer window. + + @param fn path of the file to show (defaults to "") + @type str (optional) + """ + from eric7.PdfViewer.PdfViewerWindow import PdfViewerWindow + + dlg = PdfViewerWindow(fn, self, fromEric=True, project=self.project) + dlg.show() + + @pyqtSlot() + @pyqtSlot(str) def __editPixmap(self, fn=""): """ Private slot to show a pixmap in a dialog. - @param fn filename of the file to show (string) + @param fn path of the file to show (defaults to "") + @type str (optional) """ from eric7.IconEditor.IconEditorWindow import IconEditorWindow @@ -6349,7 +6388,8 @@ """ Private slot to show a pixmap in a dialog. - @param fn filename of the file to show (string) + @param fn path of the file to show (defaults to "") + @type str (optional) """ from eric7.Graphics.PixmapDiagram import PixmapDiagram
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/eric7/eric7_pdf.py Thu Jan 12 18:08:12 2023 +0100 @@ -0,0 +1,85 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +# Copyright (c) 2016 - 2023 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +eric PDF Viewer. + +This is the main Python script that performs the necessary initialization +of the PDF viewer and starts the Qt event loop. This is a standalone version +of the integrated PDF viewer. +""" + +import os +import sys + +from PyQt6.QtGui import QGuiApplication + +for arg in sys.argv[:]: + if arg.startswith("--config="): + from eric7 import Globals + + configDir = arg.replace("--config=", "") + Globals.setConfigDir(configDir) + sys.argv.remove(arg) + elif arg.startswith("--settings="): + from PyQt6.QtCore import QSettings + + settingsDir = os.path.expanduser(arg.replace("--settings=", "")) + if not os.path.isdir(settingsDir): + os.makedirs(settingsDir) + QSettings.setPath( + QSettings.Format.IniFormat, QSettings.Scope.UserScope, settingsDir + ) + sys.argv.remove(arg) + +from eric7.Globals import AppInfo +from eric7.Toolbox import Startup + + +def createMainWidget(argv): + """ + Function to create the main widget. + + @param argv list of commandline parameters (list of strings) + @return reference to the main widget (QWidget) + """ + from eric7.PdfViewer.PdfViewerWindow import PdfViewerWindow + + try: + fileName = argv[1] + except IndexError: + fileName = "" + + editor = PdfViewerWindow(fileName, None) + return editor + + +def main(): + """ + Main entry point into the application. + """ + QGuiApplication.setDesktopFileName("eric7_pdf.desktop") + + options = [ + ( + "--config=configDir", + "use the given directory as the one containing the config files", + ), + ( + "--settings=settingsDir", + "use the given directory to store the settings files", + ), + ("", "name of file to edit"), + ] + appinfo = AppInfo.makeAppInfo( + sys.argv, "eric PDF Viewer", "", "Little tool to view PDF files.", options + ) + res = Startup.simpleAppStartup(sys.argv, appinfo, createMainWidget) + sys.exit(res) + + +if __name__ == "__main__": + main()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/eric7/icons/breeze-dark/ericPdf.svg Thu Jan 12 18:08:12 2023 +0100 @@ -0,0 +1,285 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + width="22" + height="22" + version="1.1" + viewBox="0 0 5.8208 5.8208" + id="svg37" + sodipodi:docname="ericPdf.svg" + inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview39" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + showgrid="false" + inkscape:zoom="29.272727" + inkscape:cx="11" + inkscape:cy="11" + inkscape:window-width="2580" + inkscape:window-height="1080" + inkscape:window-x="426" + inkscape:window-y="146" + inkscape:window-maximized="0" + inkscape:current-layer="svg37" /> + <defs + id="defs19"> + <linearGradient + id="f" + x1="4" + x2="4" + y1="44" + y2="4" + gradientTransform="matrix(0.066146,0,0,0.066142,2.4253,293.6)" + gradientUnits="userSpaceOnUse"> + <stop + stop-color="#54d883" + offset="0" + id="stop2" /> + <stop + stop-color="#abf9c7" + offset="1" + id="stop4" /> + </linearGradient> + <linearGradient + id="a" + x1="34" + x2="44" + y1="19.008" + y2="29.008" + gradientUnits="userSpaceOnUse"> + <stop + stop-color="#292c2f" + offset="0" + id="stop7" /> + <stop + stop-opacity="0" + offset="1" + id="stop9" /> + </linearGradient> + <linearGradient + id="g" + x1="9" + x2="38" + y1="9" + y2="38" + gradientTransform="matrix(0.066146,0,0,0.066142,2.4253,293.6)" + gradientUnits="userSpaceOnUse" + xlink:href="#a" /> + <linearGradient + id="h" + x1="4" + x2="4" + y1="44" + y2="4" + gradientTransform="matrix(0.066146,0,0,0.066142,2.4253,293.6)" + gradientUnits="userSpaceOnUse"> + <stop + stop-color="#197cf1" + offset="0" + id="stop13" /> + <stop + stop-color="#20bcfa" + offset="1" + id="stop15" /> + </linearGradient> + <linearGradient + id="e" + x1="34" + x2="44" + y1="19.008" + y2="29.008" + gradientTransform="matrix(0.066146,0,0,0.066142,2.4253,293.6)" + gradientUnits="userSpaceOnUse" + xlink:href="#a" /> + <linearGradient + id="a-3" + y1="392.36" + y2="336.36" + x2="0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.07298809,0,0,0.07298809,0.59308977,-23.158892)"> + <stop + stop-color="#ffffff" + stop-opacity="0" + id="stop2-6" /> + <stop + offset="1" + stop-color="#ffffff" + stop-opacity=".15" + id="stop4-7" /> + </linearGradient> + <linearGradient + id="linearGradient860" + y1="392.36" + y2="336.36" + x2="0" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-14-332.36)"> + <stop + stop-color="#ffffff" + stop-opacity="0" + id="stop856" /> + <stop + offset="1" + stop-color="#ffffff" + stop-opacity=".15" + id="stop858" /> + </linearGradient> + <linearGradient + id="a-5" + y1="392.36" + y2="336.36" + x2="0" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-14,-332.36)"> + <stop + stop-color="#ffffff" + stop-opacity="0" + id="stop2-3" /> + <stop + offset="1" + stop-color="#ffffff" + stop-opacity=".15" + id="stop4-5" /> + </linearGradient> + <linearGradient + id="linearGradient916" + y1="392.36" + y2="336.36" + x2="0" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-14-332.36)"> + <stop + stop-color="#ffffff" + stop-opacity="0" + id="stop912" /> + <stop + offset="1" + stop-color="#ffffff" + stop-opacity=".15" + id="stop914" /> + </linearGradient> + <linearGradient + id="a-6" + y1="392.35999" + y2="365.20001" + x2="0" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(365.57,152.44)"> + <stop + stop-color="#ffffff" + stop-opacity="0" + id="stop2-2" /> + <stop + offset="1" + stop-color="#ffffff" + stop-opacity=".2" + id="stop4-9" /> + </linearGradient> + </defs> + <g + id="g918"> + <path + color-rendering="auto" + color-interpolation-filters="linearRGB" + shape-rendering="auto" + image-rendering="auto" + text-rendering="auto" + id="use26" + color-interpolation="sRGB" + color="#000000" + d="M 10,3 V 61 H 54 V 3 H 40 Z" + style="fill:url(#a-5)" /> + </g> + <g + id="g921" /> + <g + id="g952" + transform="translate(-0.26458001,-0.26000243)"> + <image + x="0.26458001" + y="0.26000243" + width="5.2916999" + height="5.2916999" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image21" /> + </g> + <g + transform="matrix(0.09621154,0,0,0.09449347,-34.041566,-46.018318)" + id="g27"> + <g + color-rendering="auto" + color-interpolation-filters="linearRGB" + shape-rendering="auto" + image-rendering="auto" + text-rendering="auto" + color-interpolation="sRGB" + color="#000000" + id="g15"> + <path + fill="#da2c2c" + d="m 389.57,517.8 v 28 h 22 v -28 h -14 z" + id="path9" /> + <rect + opacity="0.25" + x="389.57001" + y="544.79999" + width="22" + height="1" + id="rect11" /> + <rect + opacity="0.5" + x="389.57001" + y="517.79999" + width="22" + fill="#ffffff" + height="1" + id="rect13" /> + </g> + <rect + width="1" + x="392.57001" + y="518.79999" + fill="#ffffff" + height="26" + fill-opacity="0.252" + id="rect17" /> + <g + color-rendering="auto" + color-interpolation-filters="linearRGB" + shape-rendering="auto" + image-rendering="auto" + text-rendering="auto" + color-interpolation="sRGB" + color="#000000" + id="g25"> + <rect + x="393.57001" + y="518.79999" + fill-opacity="0.083" + width="1" + height="26" + id="rect19" /> + <path + opacity="0.8" + fill="#ffffff" + d="m 398.43,525.8 c -0.162,0.01 -0.336,0 -0.527,0.132 -1.705,0.734 -0.561,2.747 1.612,4.279 0.013,-0.289 0.133,-0.917 0.13,-1.194 -1.854,-1.271 -2.939,-2.509 -1.757,-2.999 1.246,-0.517 1.633,0.895 1.655,2.944 0.116,0.12 0.92,0.654 1.042,0.739 -0.045,-1.869 -1.039,-3.777 -1.993,-3.885 -0.051,-0.01 -0.107,-0.01 -0.161,-0.01 m 1.736,3.252 -0.388,-0.151 -0.322,0.217 -0.065,0.682 0.406,0.312 0.169,0.226 c 1.251,0.83 2.317,1.469 3.718,1.997 l 0.874,0.13 h 0.575 c 0.53,-0.313 0.214,-0.433 2.141,-0.673 l -2.171,0.168 c -1.675,-0.649 -3.385,-1.582 -4.94,-2.6 m 3.822,2.72 c 0.251,0 2.211,-0.17 2.99,-0.242 0.772,-0.12 1.719,-0.156 1.54,0.746 0.204,-0.481 -0.261,-1.298 -0.922,-1.442 -1.023,-0.229 -2.646,0.398 -3.229,0.591 m 0.94,0.25 c -0.304,0.12 -0.999,0.207 -1.327,0.316 0.465,0.241 2.802,1.103 3.766,0.923 0.154,0 0.805,-0.468 0.821,-0.805 -0.05,0.613 -2.906,0.156 -3.26,-0.445 m 0.635,0.011 c -0.25,-0.12 -1.422,-0.114 -1.681,-0.211 -1.468,0.513 -3.442,1.719 -4.855,2.532 l -0.409,0.12 c -0.079,0.561 -0.425,0.755 -0.74,1.118 l 0.478,0.481 0.374,-0.613 c 1.654,-0.998 4.924,-2.611 6.832,-3.386 m -6.832,3.386 c -0.202,0.12 -0.395,0.241 -0.578,0.361 -0.424,1.204 -0.919,2.01 -1.391,1.98 0.729,0.349 2.301,-1.37 2.83,-2.986 m -2.83,2.986 c -1.113,-0.661 1.243,-1.867 1.77,-2.217 0.119,-0.337 -0.206,-0.895 -0.1,-1.292 -1.661,1.034 -2.643,2.531 -2.086,3.24 0.134,0.168 0.276,0.253 0.417,0.265 m 1.617,-2.52 c 0.077,-0.31 1.103,-1.015 1.289,-1.123 0.248,-1.954 0.26,-2.147 0.471,-3.666 -0.126,-0.12 -0.902,-0.725 -1.022,-0.809 -0.149,1.624 -0.429,3.824 -0.826,5.293" + id="path21" /> + <path + fill="url(#a)" + d="m 389.57,517.8 v 28 h 22 v -28 h -17 z" + id="path23" + style="fill:url(#a-6)" /> + </g> + </g> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/eric7/icons/breeze-dark/ericPdf48.svg Thu Jan 12 18:08:12 2023 +0100 @@ -0,0 +1,206 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + width="48" + height="48" + version="1.1" + viewBox="0 0 12.7 12.7" + id="svg37" + sodipodi:docname="ericPdf48.svg" + inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" + inkscape:export-filename="/home/detlev/Development/Python/Eric/eric7_pdf/src/eric7/icons/oxygen/ericPdf48.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview39" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + showgrid="false" + inkscape:zoom="13.416667" + inkscape:cx="23.999999" + inkscape:cy="23.999999" + inkscape:window-width="2580" + inkscape:window-height="1080" + inkscape:window-x="426" + inkscape:window-y="146" + inkscape:window-maximized="0" + inkscape:current-layer="svg37" /> + <defs + id="defs19"> + <linearGradient + id="f" + x1="4" + x2="4" + y1="44" + y2="4" + gradientTransform="matrix(0.15875,0,0,0.15874,5.1858,289.49)" + gradientUnits="userSpaceOnUse"> + <stop + stop-color="#54d883" + offset="0" + id="stop2" /> + <stop + stop-color="#abf9c7" + offset="1" + id="stop4" /> + </linearGradient> + <linearGradient + id="a" + x1="34" + x2="44" + y1="19.008" + y2="29.008" + gradientUnits="userSpaceOnUse"> + <stop + stop-color="#292c2f" + offset="0" + id="stop7" /> + <stop + stop-opacity="0" + offset="1" + id="stop9" /> + </linearGradient> + <linearGradient + id="g" + x1="9" + x2="38" + y1="9" + y2="38" + gradientTransform="matrix(0.15875,0,0,0.15874,5.1858,289.49)" + gradientUnits="userSpaceOnUse" + xlink:href="#a" /> + <linearGradient + id="h" + x1="4" + x2="4" + y1="44" + y2="4" + gradientTransform="matrix(0.15875,0,0,0.15874,5.1858,289.49)" + gradientUnits="userSpaceOnUse"> + <stop + stop-color="#197cf1" + offset="0" + id="stop13" /> + <stop + stop-color="#20bcfa" + offset="1" + id="stop15" /> + </linearGradient> + <linearGradient + id="e" + x1="34" + x2="44" + y1="19.008" + y2="29.008" + gradientTransform="matrix(0.15875,0,0,0.15874,5.1858,289.49)" + gradientUnits="userSpaceOnUse" + xlink:href="#a" /> + <linearGradient + id="a-3" + y1="392.35999" + y2="365.20001" + x2="0" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(365.57,152.44)"> + <stop + stop-color="#ffffff" + stop-opacity="0" + id="stop2-6" /> + <stop + offset="1" + stop-color="#ffffff" + stop-opacity=".2" + id="stop4-7" /> + </linearGradient> + </defs> + <g + id="g952"> + <g + id="g956"> + <image + y="-1.2207031e-05" + width="12.7" + height="12.7" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image21" + x="0" /> + </g> + </g> + <g + transform="matrix(0.20445069,0,0,0.20788681,-71.974939,-101.29379)" + id="g27"> + <g + color-rendering="auto" + color-interpolation-filters="linearRGB" + shape-rendering="auto" + image-rendering="auto" + text-rendering="auto" + color-interpolation="sRGB" + color="#000000" + id="g15"> + <path + fill="#da2c2c" + d="m 389.57,517.8 v 28 h 22 v -28 h -14 z" + id="path9" /> + <rect + opacity="0.25" + x="389.57001" + y="544.79999" + width="22" + height="1" + id="rect11" /> + <rect + opacity="0.5" + x="389.57001" + y="517.79999" + width="22" + fill="#ffffff" + height="1" + id="rect13" /> + </g> + <rect + width="1" + x="392.57001" + y="518.79999" + fill="#ffffff" + height="26" + fill-opacity="0.252" + id="rect17" /> + <g + color-rendering="auto" + color-interpolation-filters="linearRGB" + shape-rendering="auto" + image-rendering="auto" + text-rendering="auto" + color-interpolation="sRGB" + color="#000000" + id="g25"> + <rect + x="393.57001" + y="518.79999" + fill-opacity="0.083" + width="1" + height="26" + id="rect19" /> + <path + opacity="0.8" + fill="#ffffff" + d="m 398.43,525.8 c -0.162,0.01 -0.336,0 -0.527,0.132 -1.705,0.734 -0.561,2.747 1.612,4.279 0.013,-0.289 0.133,-0.917 0.13,-1.194 -1.854,-1.271 -2.939,-2.509 -1.757,-2.999 1.246,-0.517 1.633,0.895 1.655,2.944 0.116,0.12 0.92,0.654 1.042,0.739 -0.045,-1.869 -1.039,-3.777 -1.993,-3.885 -0.051,-0.01 -0.107,-0.01 -0.161,-0.01 m 1.736,3.252 -0.388,-0.151 -0.322,0.217 -0.065,0.682 0.406,0.312 0.169,0.226 c 1.251,0.83 2.317,1.469 3.718,1.997 l 0.874,0.13 h 0.575 c 0.53,-0.313 0.214,-0.433 2.141,-0.673 l -2.171,0.168 c -1.675,-0.649 -3.385,-1.582 -4.94,-2.6 m 3.822,2.72 c 0.251,0 2.211,-0.17 2.99,-0.242 0.772,-0.12 1.719,-0.156 1.54,0.746 0.204,-0.481 -0.261,-1.298 -0.922,-1.442 -1.023,-0.229 -2.646,0.398 -3.229,0.591 m 0.94,0.25 c -0.304,0.12 -0.999,0.207 -1.327,0.316 0.465,0.241 2.802,1.103 3.766,0.923 0.154,0 0.805,-0.468 0.821,-0.805 -0.05,0.613 -2.906,0.156 -3.26,-0.445 m 0.635,0.011 c -0.25,-0.12 -1.422,-0.114 -1.681,-0.211 -1.468,0.513 -3.442,1.719 -4.855,2.532 l -0.409,0.12 c -0.079,0.561 -0.425,0.755 -0.74,1.118 l 0.478,0.481 0.374,-0.613 c 1.654,-0.998 4.924,-2.611 6.832,-3.386 m -6.832,3.386 c -0.202,0.12 -0.395,0.241 -0.578,0.361 -0.424,1.204 -0.919,2.01 -1.391,1.98 0.729,0.349 2.301,-1.37 2.83,-2.986 m -2.83,2.986 c -1.113,-0.661 1.243,-1.867 1.77,-2.217 0.119,-0.337 -0.206,-0.895 -0.1,-1.292 -1.661,1.034 -2.643,2.531 -2.086,3.24 0.134,0.168 0.276,0.253 0.417,0.265 m 1.617,-2.52 c 0.077,-0.31 1.103,-1.015 1.289,-1.123 0.248,-1.954 0.26,-2.147 0.471,-3.666 -0.126,-0.12 -0.902,-0.725 -1.022,-0.809 -0.149,1.624 -0.429,3.824 -0.826,5.293" + id="path21" /> + <path + fill="url(#a)" + d="m 389.57,517.8 v 28 h 22 v -28 h -17 z" + id="path23" + style="fill:url(#a-3)" /> + </g> + </g> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/eric7/icons/breeze-dark/pdfviewer.svg Thu Jan 12 18:08:12 2023 +0100 @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="22" + version="1.1" + height="22" + id="svg6" + sodipodi:docname="pdfviewer.svg" + inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview8" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + showgrid="false" + inkscape:zoom="29.272727" + inkscape:cx="11" + inkscape:cy="11" + inkscape:window-width="2580" + inkscape:window-height="1080" + inkscape:window-x="426" + inkscape:window-y="146" + inkscape:window-maximized="0" + inkscape:current-layer="layer1" /> + <defs + id="defs3871" /> + <metadata + id="metadata3874" /> + <g + inkscape:label="Capa 1" + inkscape:groupmode="layer" + id="layer1" + transform="matrix(1 0 0 1 -326 -534.3622)"> + <path + inkscape:label="Capa 1" + inkscape:connector-curvature="0" + style="fill:#cf000f;stroke-width:1.66883" + id="path26" + d="m 330.10511,535.3622 c -0.27018,0.0167 -0.56038,0 -0.87894,0.22043 -2.84194,1.22285 -0.93576,4.57763 2.68673,7.13137 0.0217,-0.48109 0.22193,-1.52877 0.21693,-1.98983 -3.09046,-2.11874 -4.89836,-4.18137 -2.92868,-4.99911 2.07642,-0.86199 2.72089,1.49137 2.75758,4.90693 0.19346,0.2004 1.53367,1.0906 1.73713,1.23105 -0.075,-3.115 -1.73115,-6.29445 -3.32223,-6.47479 -0.085,-0.0167 -0.17847,-0.0167 -0.26853,-0.0167 m 2.8932,5.41942 -0.64665,-0.25182 -0.53614,0.36119 -0.108,1.13669 0.6772,0.51933 0.28105,0.37706 c 2.08477,1.38316 3.86088,2.44854 6.19747,3.32857 l 1.4572,0.21643 h 0.95898 c 0.88393,-0.52118 0.35692,-0.72173 3.56912,-1.12251 l -3.61916,0.28055 c -2.79191,-1.08242 -5.64098,-2.63691 -8.23276,-4.33284 m 6.37082,4.53405 c 0.41863,0 3.68487,-0.28337 4.98408,-0.40361 1.28589,-0.20055 2.8653,-0.26066 2.56676,1.24273 0.34024,-0.80172 -0.43501,-2.16282 -1.53744,-2.40329 -1.7045,-0.3809 -4.4093,0.66361 -5.38163,0.9844 m 1.56707,0.41663 c -0.50701,0.20054 -1.66531,0.3455 -2.21236,0.52584 0.77553,0.40095 4.66929,1.83871 6.27705,1.53796 0.25685,0 1.34235,-0.78083 1.36904,-1.34224 -0.0834,1.02229 -4.84331,0.26066 -5.43373,-0.7416 m 1.05906,0.0184 c -0.41694,-0.2004 -2.36933,-0.19054 -2.8013,-0.35086 -2.44604,0.85565 -5.7362,2.86453 -8.09116,4.21946 l -0.68213,0.20056 c -0.13154,0.93579 -0.70815,1.25808 -1.23418,1.86408 l 0.79721,0.80188 0.62377,-1.0223 c 2.75689,-1.66371 8.20729,-4.35171 11.38612,-5.6427 m -11.38612,5.6427 c -0.3369,0.20039 -0.65879,0.40093 -0.964,0.60132 -0.70715,2.00652 -1.53105,3.35746 -2.31825,3.29935 1.21582,0.58129 3.8346,-2.28323 4.71687,-4.97725 m -4.71687,4.97725 c -1.85462,-1.10246 2.07107,-3.1115 2.95001,-3.69478 0.19847,-0.56125 -0.34407,-1.49121 -0.1673,-2.15281 -2.76856,1.72398 -4.4055,4.21794 -3.47653,5.40056 0.22349,0.2807 0.46032,0.42097 0.69548,0.44102 m 2.69438,-4.19993 c 0.12892,-0.51665 1.8391,-1.69175 2.14764,-1.87226 0.41376,-3.25709 0.43347,-3.57872 0.78492,-6.11075 -0.21015,-0.20039 -1.50359,-1.20867 -1.70373,-1.34892 -0.24836,2.70602 -0.71546,6.37308 -1.37591,8.82246" /> + </g> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/eric7/icons/breeze-light/ericPdf.svg Thu Jan 12 18:08:12 2023 +0100 @@ -0,0 +1,285 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + width="22" + height="22" + version="1.1" + viewBox="0 0 5.8208 5.8208" + id="svg37" + sodipodi:docname="ericPdf.svg" + inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview39" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + showgrid="false" + inkscape:zoom="29.272727" + inkscape:cx="11" + inkscape:cy="11" + inkscape:window-width="2580" + inkscape:window-height="1080" + inkscape:window-x="426" + inkscape:window-y="146" + inkscape:window-maximized="0" + inkscape:current-layer="svg37" /> + <defs + id="defs19"> + <linearGradient + id="f" + x1="4" + x2="4" + y1="44" + y2="4" + gradientTransform="matrix(0.066146,0,0,0.066142,2.4253,293.6)" + gradientUnits="userSpaceOnUse"> + <stop + stop-color="#54d883" + offset="0" + id="stop2" /> + <stop + stop-color="#abf9c7" + offset="1" + id="stop4" /> + </linearGradient> + <linearGradient + id="a" + x1="34" + x2="44" + y1="19.008" + y2="29.008" + gradientUnits="userSpaceOnUse"> + <stop + stop-color="#292c2f" + offset="0" + id="stop7" /> + <stop + stop-opacity="0" + offset="1" + id="stop9" /> + </linearGradient> + <linearGradient + id="g" + x1="9" + x2="38" + y1="9" + y2="38" + gradientTransform="matrix(0.066146,0,0,0.066142,2.4253,293.6)" + gradientUnits="userSpaceOnUse" + xlink:href="#a" /> + <linearGradient + id="h" + x1="4" + x2="4" + y1="44" + y2="4" + gradientTransform="matrix(0.066146,0,0,0.066142,2.4253,293.6)" + gradientUnits="userSpaceOnUse"> + <stop + stop-color="#197cf1" + offset="0" + id="stop13" /> + <stop + stop-color="#20bcfa" + offset="1" + id="stop15" /> + </linearGradient> + <linearGradient + id="e" + x1="34" + x2="44" + y1="19.008" + y2="29.008" + gradientTransform="matrix(0.066146,0,0,0.066142,2.4253,293.6)" + gradientUnits="userSpaceOnUse" + xlink:href="#a" /> + <linearGradient + id="a-3" + y1="392.36" + y2="336.36" + x2="0" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.07298809,0,0,0.07298809,0.59308977,-23.158892)"> + <stop + stop-color="#ffffff" + stop-opacity="0" + id="stop2-6" /> + <stop + offset="1" + stop-color="#ffffff" + stop-opacity=".15" + id="stop4-7" /> + </linearGradient> + <linearGradient + id="linearGradient860" + y1="392.36" + y2="336.36" + x2="0" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-14-332.36)"> + <stop + stop-color="#ffffff" + stop-opacity="0" + id="stop856" /> + <stop + offset="1" + stop-color="#ffffff" + stop-opacity=".15" + id="stop858" /> + </linearGradient> + <linearGradient + id="a-5" + y1="392.36" + y2="336.36" + x2="0" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-14,-332.36)"> + <stop + stop-color="#ffffff" + stop-opacity="0" + id="stop2-3" /> + <stop + offset="1" + stop-color="#ffffff" + stop-opacity=".15" + id="stop4-5" /> + </linearGradient> + <linearGradient + id="linearGradient916" + y1="392.36" + y2="336.36" + x2="0" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(-14-332.36)"> + <stop + stop-color="#ffffff" + stop-opacity="0" + id="stop912" /> + <stop + offset="1" + stop-color="#ffffff" + stop-opacity=".15" + id="stop914" /> + </linearGradient> + <linearGradient + id="a-6" + y1="392.35999" + y2="365.20001" + x2="0" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(365.57,152.44)"> + <stop + stop-color="#ffffff" + stop-opacity="0" + id="stop2-2" /> + <stop + offset="1" + stop-color="#ffffff" + stop-opacity=".2" + id="stop4-9" /> + </linearGradient> + </defs> + <g + id="g918"> + <path + color-rendering="auto" + color-interpolation-filters="linearRGB" + shape-rendering="auto" + image-rendering="auto" + text-rendering="auto" + id="use26" + color-interpolation="sRGB" + color="#000000" + d="M 10,3 V 61 H 54 V 3 H 40 Z" + style="fill:url(#a-5)" /> + </g> + <g + id="g921" /> + <g + id="g952" + transform="translate(-0.26458001,-0.26000243)"> + <image + x="0.26458001" + y="0.26000243" + width="5.2916999" + height="5.2916999" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image21" /> + </g> + <g + transform="matrix(0.09621154,0,0,0.09449347,-34.041566,-46.018318)" + id="g27"> + <g + color-rendering="auto" + color-interpolation-filters="linearRGB" + shape-rendering="auto" + image-rendering="auto" + text-rendering="auto" + color-interpolation="sRGB" + color="#000000" + id="g15"> + <path + fill="#da2c2c" + d="m 389.57,517.8 v 28 h 22 v -28 h -14 z" + id="path9" /> + <rect + opacity="0.25" + x="389.57001" + y="544.79999" + width="22" + height="1" + id="rect11" /> + <rect + opacity="0.5" + x="389.57001" + y="517.79999" + width="22" + fill="#ffffff" + height="1" + id="rect13" /> + </g> + <rect + width="1" + x="392.57001" + y="518.79999" + fill="#ffffff" + height="26" + fill-opacity="0.252" + id="rect17" /> + <g + color-rendering="auto" + color-interpolation-filters="linearRGB" + shape-rendering="auto" + image-rendering="auto" + text-rendering="auto" + color-interpolation="sRGB" + color="#000000" + id="g25"> + <rect + x="393.57001" + y="518.79999" + fill-opacity="0.083" + width="1" + height="26" + id="rect19" /> + <path + opacity="0.8" + fill="#ffffff" + d="m 398.43,525.8 c -0.162,0.01 -0.336,0 -0.527,0.132 -1.705,0.734 -0.561,2.747 1.612,4.279 0.013,-0.289 0.133,-0.917 0.13,-1.194 -1.854,-1.271 -2.939,-2.509 -1.757,-2.999 1.246,-0.517 1.633,0.895 1.655,2.944 0.116,0.12 0.92,0.654 1.042,0.739 -0.045,-1.869 -1.039,-3.777 -1.993,-3.885 -0.051,-0.01 -0.107,-0.01 -0.161,-0.01 m 1.736,3.252 -0.388,-0.151 -0.322,0.217 -0.065,0.682 0.406,0.312 0.169,0.226 c 1.251,0.83 2.317,1.469 3.718,1.997 l 0.874,0.13 h 0.575 c 0.53,-0.313 0.214,-0.433 2.141,-0.673 l -2.171,0.168 c -1.675,-0.649 -3.385,-1.582 -4.94,-2.6 m 3.822,2.72 c 0.251,0 2.211,-0.17 2.99,-0.242 0.772,-0.12 1.719,-0.156 1.54,0.746 0.204,-0.481 -0.261,-1.298 -0.922,-1.442 -1.023,-0.229 -2.646,0.398 -3.229,0.591 m 0.94,0.25 c -0.304,0.12 -0.999,0.207 -1.327,0.316 0.465,0.241 2.802,1.103 3.766,0.923 0.154,0 0.805,-0.468 0.821,-0.805 -0.05,0.613 -2.906,0.156 -3.26,-0.445 m 0.635,0.011 c -0.25,-0.12 -1.422,-0.114 -1.681,-0.211 -1.468,0.513 -3.442,1.719 -4.855,2.532 l -0.409,0.12 c -0.079,0.561 -0.425,0.755 -0.74,1.118 l 0.478,0.481 0.374,-0.613 c 1.654,-0.998 4.924,-2.611 6.832,-3.386 m -6.832,3.386 c -0.202,0.12 -0.395,0.241 -0.578,0.361 -0.424,1.204 -0.919,2.01 -1.391,1.98 0.729,0.349 2.301,-1.37 2.83,-2.986 m -2.83,2.986 c -1.113,-0.661 1.243,-1.867 1.77,-2.217 0.119,-0.337 -0.206,-0.895 -0.1,-1.292 -1.661,1.034 -2.643,2.531 -2.086,3.24 0.134,0.168 0.276,0.253 0.417,0.265 m 1.617,-2.52 c 0.077,-0.31 1.103,-1.015 1.289,-1.123 0.248,-1.954 0.26,-2.147 0.471,-3.666 -0.126,-0.12 -0.902,-0.725 -1.022,-0.809 -0.149,1.624 -0.429,3.824 -0.826,5.293" + id="path21" /> + <path + fill="url(#a)" + d="m 389.57,517.8 v 28 h 22 v -28 h -17 z" + id="path23" + style="fill:url(#a-6)" /> + </g> + </g> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/eric7/icons/breeze-light/ericPdf48.svg Thu Jan 12 18:08:12 2023 +0100 @@ -0,0 +1,203 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + width="48" + height="48" + version="1.1" + viewBox="0 0 12.7 12.7" + id="svg37" + sodipodi:docname="ericPdf48.svg" + inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview39" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + showgrid="false" + inkscape:zoom="13.416667" + inkscape:cx="23.999999" + inkscape:cy="23.999999" + inkscape:window-width="2580" + inkscape:window-height="1080" + inkscape:window-x="426" + inkscape:window-y="146" + inkscape:window-maximized="0" + inkscape:current-layer="svg37" /> + <defs + id="defs19"> + <linearGradient + id="f" + x1="4" + x2="4" + y1="44" + y2="4" + gradientTransform="matrix(0.15875,0,0,0.15874,5.1858,289.49)" + gradientUnits="userSpaceOnUse"> + <stop + stop-color="#54d883" + offset="0" + id="stop2" /> + <stop + stop-color="#abf9c7" + offset="1" + id="stop4" /> + </linearGradient> + <linearGradient + id="a" + x1="34" + x2="44" + y1="19.008" + y2="29.008" + gradientUnits="userSpaceOnUse"> + <stop + stop-color="#292c2f" + offset="0" + id="stop7" /> + <stop + stop-opacity="0" + offset="1" + id="stop9" /> + </linearGradient> + <linearGradient + id="g" + x1="9" + x2="38" + y1="9" + y2="38" + gradientTransform="matrix(0.15875,0,0,0.15874,5.1858,289.49)" + gradientUnits="userSpaceOnUse" + xlink:href="#a" /> + <linearGradient + id="h" + x1="4" + x2="4" + y1="44" + y2="4" + gradientTransform="matrix(0.15875,0,0,0.15874,5.1858,289.49)" + gradientUnits="userSpaceOnUse"> + <stop + stop-color="#197cf1" + offset="0" + id="stop13" /> + <stop + stop-color="#20bcfa" + offset="1" + id="stop15" /> + </linearGradient> + <linearGradient + id="e" + x1="34" + x2="44" + y1="19.008" + y2="29.008" + gradientTransform="matrix(0.15875,0,0,0.15874,5.1858,289.49)" + gradientUnits="userSpaceOnUse" + xlink:href="#a" /> + <linearGradient + id="a-3" + y1="392.35999" + y2="365.20001" + x2="0" + gradientUnits="userSpaceOnUse" + gradientTransform="translate(365.57,152.44)"> + <stop + stop-color="#ffffff" + stop-opacity="0" + id="stop2-6" /> + <stop + offset="1" + stop-color="#ffffff" + stop-opacity=".2" + id="stop4-7" /> + </linearGradient> + </defs> + <g + id="g952"> + <g + id="g956"> + <image + y="-1.2207031e-05" + width="12.7" + height="12.7" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image21" + x="0" /> + </g> + </g> + <g + transform="matrix(0.20445069,0,0,0.20788681,-71.974939,-101.29379)" + id="g27"> + <g + color-rendering="auto" + color-interpolation-filters="linearRGB" + shape-rendering="auto" + image-rendering="auto" + text-rendering="auto" + color-interpolation="sRGB" + color="#000000" + id="g15"> + <path + fill="#da2c2c" + d="m 389.57,517.8 v 28 h 22 v -28 h -14 z" + id="path9" /> + <rect + opacity="0.25" + x="389.57001" + y="544.79999" + width="22" + height="1" + id="rect11" /> + <rect + opacity="0.5" + x="389.57001" + y="517.79999" + width="22" + fill="#ffffff" + height="1" + id="rect13" /> + </g> + <rect + width="1" + x="392.57001" + y="518.79999" + fill="#ffffff" + height="26" + fill-opacity="0.252" + id="rect17" /> + <g + color-rendering="auto" + color-interpolation-filters="linearRGB" + shape-rendering="auto" + image-rendering="auto" + text-rendering="auto" + color-interpolation="sRGB" + color="#000000" + id="g25"> + <rect + x="393.57001" + y="518.79999" + fill-opacity="0.083" + width="1" + height="26" + id="rect19" /> + <path + opacity="0.8" + fill="#ffffff" + d="m 398.43,525.8 c -0.162,0.01 -0.336,0 -0.527,0.132 -1.705,0.734 -0.561,2.747 1.612,4.279 0.013,-0.289 0.133,-0.917 0.13,-1.194 -1.854,-1.271 -2.939,-2.509 -1.757,-2.999 1.246,-0.517 1.633,0.895 1.655,2.944 0.116,0.12 0.92,0.654 1.042,0.739 -0.045,-1.869 -1.039,-3.777 -1.993,-3.885 -0.051,-0.01 -0.107,-0.01 -0.161,-0.01 m 1.736,3.252 -0.388,-0.151 -0.322,0.217 -0.065,0.682 0.406,0.312 0.169,0.226 c 1.251,0.83 2.317,1.469 3.718,1.997 l 0.874,0.13 h 0.575 c 0.53,-0.313 0.214,-0.433 2.141,-0.673 l -2.171,0.168 c -1.675,-0.649 -3.385,-1.582 -4.94,-2.6 m 3.822,2.72 c 0.251,0 2.211,-0.17 2.99,-0.242 0.772,-0.12 1.719,-0.156 1.54,0.746 0.204,-0.481 -0.261,-1.298 -0.922,-1.442 -1.023,-0.229 -2.646,0.398 -3.229,0.591 m 0.94,0.25 c -0.304,0.12 -0.999,0.207 -1.327,0.316 0.465,0.241 2.802,1.103 3.766,0.923 0.154,0 0.805,-0.468 0.821,-0.805 -0.05,0.613 -2.906,0.156 -3.26,-0.445 m 0.635,0.011 c -0.25,-0.12 -1.422,-0.114 -1.681,-0.211 -1.468,0.513 -3.442,1.719 -4.855,2.532 l -0.409,0.12 c -0.079,0.561 -0.425,0.755 -0.74,1.118 l 0.478,0.481 0.374,-0.613 c 1.654,-0.998 4.924,-2.611 6.832,-3.386 m -6.832,3.386 c -0.202,0.12 -0.395,0.241 -0.578,0.361 -0.424,1.204 -0.919,2.01 -1.391,1.98 0.729,0.349 2.301,-1.37 2.83,-2.986 m -2.83,2.986 c -1.113,-0.661 1.243,-1.867 1.77,-2.217 0.119,-0.337 -0.206,-0.895 -0.1,-1.292 -1.661,1.034 -2.643,2.531 -2.086,3.24 0.134,0.168 0.276,0.253 0.417,0.265 m 1.617,-2.52 c 0.077,-0.31 1.103,-1.015 1.289,-1.123 0.248,-1.954 0.26,-2.147 0.471,-3.666 -0.126,-0.12 -0.902,-0.725 -1.022,-0.809 -0.149,1.624 -0.429,3.824 -0.826,5.293" + id="path21" /> + <path + fill="url(#a)" + d="m 389.57,517.8 v 28 h 22 v -28 h -17 z" + id="path23" + style="fill:url(#a-3)" /> + </g> + </g> +</svg>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/eric7/icons/breeze-light/pdfviewer.svg Thu Jan 12 18:08:12 2023 +0100 @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="22" + version="1.1" + height="22" + id="svg6" + sodipodi:docname="pdfviewer.svg" + inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview8" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + showgrid="false" + inkscape:zoom="29.272727" + inkscape:cx="11" + inkscape:cy="11" + inkscape:window-width="2580" + inkscape:window-height="1080" + inkscape:window-x="426" + inkscape:window-y="146" + inkscape:window-maximized="0" + inkscape:current-layer="layer1" /> + <defs + id="defs3871" /> + <metadata + id="metadata3874" /> + <g + inkscape:label="Capa 1" + inkscape:groupmode="layer" + id="layer1" + transform="matrix(1 0 0 1 -326 -534.3622)"> + <path + inkscape:label="Capa 1" + inkscape:connector-curvature="0" + style="fill:#cf000f;stroke-width:1.66883" + id="path26" + d="m 330.10511,535.3622 c -0.27018,0.0167 -0.56038,0 -0.87894,0.22043 -2.84194,1.22285 -0.93576,4.57763 2.68673,7.13137 0.0217,-0.48109 0.22193,-1.52877 0.21693,-1.98983 -3.09046,-2.11874 -4.89836,-4.18137 -2.92868,-4.99911 2.07642,-0.86199 2.72089,1.49137 2.75758,4.90693 0.19346,0.2004 1.53367,1.0906 1.73713,1.23105 -0.075,-3.115 -1.73115,-6.29445 -3.32223,-6.47479 -0.085,-0.0167 -0.17847,-0.0167 -0.26853,-0.0167 m 2.8932,5.41942 -0.64665,-0.25182 -0.53614,0.36119 -0.108,1.13669 0.6772,0.51933 0.28105,0.37706 c 2.08477,1.38316 3.86088,2.44854 6.19747,3.32857 l 1.4572,0.21643 h 0.95898 c 0.88393,-0.52118 0.35692,-0.72173 3.56912,-1.12251 l -3.61916,0.28055 c -2.79191,-1.08242 -5.64098,-2.63691 -8.23276,-4.33284 m 6.37082,4.53405 c 0.41863,0 3.68487,-0.28337 4.98408,-0.40361 1.28589,-0.20055 2.8653,-0.26066 2.56676,1.24273 0.34024,-0.80172 -0.43501,-2.16282 -1.53744,-2.40329 -1.7045,-0.3809 -4.4093,0.66361 -5.38163,0.9844 m 1.56707,0.41663 c -0.50701,0.20054 -1.66531,0.3455 -2.21236,0.52584 0.77553,0.40095 4.66929,1.83871 6.27705,1.53796 0.25685,0 1.34235,-0.78083 1.36904,-1.34224 -0.0834,1.02229 -4.84331,0.26066 -5.43373,-0.7416 m 1.05906,0.0184 c -0.41694,-0.2004 -2.36933,-0.19054 -2.8013,-0.35086 -2.44604,0.85565 -5.7362,2.86453 -8.09116,4.21946 l -0.68213,0.20056 c -0.13154,0.93579 -0.70815,1.25808 -1.23418,1.86408 l 0.79721,0.80188 0.62377,-1.0223 c 2.75689,-1.66371 8.20729,-4.35171 11.38612,-5.6427 m -11.38612,5.6427 c -0.3369,0.20039 -0.65879,0.40093 -0.964,0.60132 -0.70715,2.00652 -1.53105,3.35746 -2.31825,3.29935 1.21582,0.58129 3.8346,-2.28323 4.71687,-4.97725 m -4.71687,4.97725 c -1.85462,-1.10246 2.07107,-3.1115 2.95001,-3.69478 0.19847,-0.56125 -0.34407,-1.49121 -0.1673,-2.15281 -2.76856,1.72398 -4.4055,4.21794 -3.47653,5.40056 0.22349,0.2807 0.46032,0.42097 0.69548,0.44102 m 2.69438,-4.19993 c 0.12892,-0.51665 1.8391,-1.69175 2.14764,-1.87226 0.41376,-3.25709 0.43347,-3.57872 0.78492,-6.11075 -0.21015,-0.20039 -1.50359,-1.20867 -1.70373,-1.34892 -0.24836,2.70602 -0.71546,6.37308 -1.37591,8.82246" /> + </g> +</svg>