src/eric7/PdfViewer/PdfViewerWindow.py

branch
pdf_viewer
changeset 9702
7c973954919d
parent 9700
b74a13a382a8
child 9704
6e1650b9b3b5
equal deleted inserted replaced
9700:b74a13a382a8 9702:7c973954919d
28 from eric7.Globals import recentNamePdfFiles 28 from eric7.Globals import recentNamePdfFiles
29 from eric7.SystemUtilities import FileSystemUtilities 29 from eric7.SystemUtilities import FileSystemUtilities
30 30
31 from .PdfPageSelector import PdfPageSelector 31 from .PdfPageSelector import PdfPageSelector
32 from .PdfZoomSelector import PdfZoomSelector 32 from .PdfZoomSelector import PdfZoomSelector
33 from .PdfToCWidget import PdfToCWidget
34 from .PdfInfoWidget import PdfInfoWidget
33 35
34 36
35 class PdfViewerWindow(EricMainWindow): 37 class PdfViewerWindow(EricMainWindow):
36 """ 38 """
37 Class implementing the PDF viewer main window. 39 Class implementing the PDF viewer main window.
80 self.__view = QPdfView(self) 82 self.__view = QPdfView(self)
81 self.__view.setDocument(self.__pdfDocument) 83 self.__view.setDocument(self.__pdfDocument)
82 self.__cw.addWidget(self.__view) 84 self.__cw.addWidget(self.__view)
83 self.setCentralWidget(self.__cw) 85 self.setCentralWidget(self.__cw)
84 86
87 # create the various info widgets
88 self.__documentInfoWidget = PdfInfoWidget(self.__pdfDocument, self)
89 index = self.__info.addTab(
90 self.__documentInfoWidget, EricPixmapCache.getIcon("documentProperties"), ""
91 )
92 self.__info.setTabToolTip(index, self.tr("Document Properties"))
93
94 self.__tocWidget = PdfToCWidget(self.__pdfDocument, self)
95 index = self.__info.addTab(
96 self.__tocWidget, EricPixmapCache.getIcon("listSelection"), ""
97 )
98 self.__info.setTabToolTip(index, self.tr("Table of Contents"))
99
100 self.__info.setCurrentWidget(self.__tocWidget)
101
85 # create a few widgets needed in the toolbars 102 # create a few widgets needed in the toolbars
86 self.__pageSelector = PdfPageSelector(self) 103 self.__pageSelector = PdfPageSelector(self)
87 self.__pageSelector.setDocument(self.__pdfDocument) 104 self.__pageSelector.setDocument(self.__pdfDocument)
88 self.__view.pageNavigator().currentPageChanged.connect( 105 self.__view.pageNavigator().currentPageChanged.connect(
89 self.__pageSelector.setValue 106 self.__pageSelector.setValue
119 self.__zoomSelector.zoomModeChanged.connect(self.__view.setZoomMode) 136 self.__zoomSelector.zoomModeChanged.connect(self.__view.setZoomMode)
120 self.__zoomSelector.zoomModeChanged.connect(self.__zoomModeChanged) 137 self.__zoomSelector.zoomModeChanged.connect(self.__zoomModeChanged)
121 self.__zoomSelector.zoomFactorChanged.connect(self.__view.setZoomFactor) 138 self.__zoomSelector.zoomFactorChanged.connect(self.__view.setZoomFactor)
122 self.__view.zoomFactorChanged.connect(self.__zoomSelector.setZoomFactor) 139 self.__view.zoomFactorChanged.connect(self.__zoomSelector.setZoomFactor)
123 self.__view.zoomModeChanged.connect(self.__zoomSelector.setZoomMode) 140 self.__view.zoomModeChanged.connect(self.__zoomSelector.setZoomMode)
141
142 self.__tocWidget.topicActivated.connect(self.__tocActivated)
124 143
125 PdfViewerWindow.windows.append(self) 144 PdfViewerWindow.windows.append(self)
126 145
127 self.__restoreViewerState() 146 self.__restoreViewerState()
128 147
782 self.tr( 801 self.tr(
783 """<p>The PDF file <b>{0}</b> could not be loaded.</p>""" 802 """<p>The PDF file <b>{0}</b> could not be loaded.</p>"""
784 """<p>Reason: {1}</p>""" 803 """<p>Reason: {1}</p>"""
785 ).format(fileName, self.__getErrorString(err)), 804 ).format(fileName, self.__getErrorString(err)),
786 ) 805 )
806 self.__documentInfoWidget.setFileName("")
787 return 807 return
788 808
789 self.__lastOpenPath = os.path.dirname(fileName) 809 self.__lastOpenPath = os.path.dirname(fileName)
790 self.__setCurrentFile(fileName) 810 self.__setCurrentFile(fileName)
791 811
793 self.__setViewerTitle(documentTitle) 813 self.__setViewerTitle(documentTitle)
794 814
795 self.__pageSelected(0) 815 self.__pageSelected(0)
796 self.__pageSelector.setMaximum(self.__pdfDocument.pageCount() - 1) 816 self.__pageSelector.setMaximum(self.__pdfDocument.pageCount() - 1)
797 self.__pageSelector.setValue(0) 817 self.__pageSelector.setValue(0)
818
819 self.__documentInfoWidget.setFileName(fileName)
820
821 self.__info.setCurrentWidget(self.__tocWidget)
798 822
799 @pyqtSlot() 823 @pyqtSlot()
800 def __reload(self): 824 def __reload(self):
801 """ 825 """
802 Private slot to reload the current PDF document. 826 Private slot to reload the current PDF document.
878 """ 902 """
879 nav = self.__view.pageNavigator() 903 nav = self.__view.pageNavigator()
880 nav.jump(page, QPointF(), nav.currentZoom()) 904 nav.jump(page, QPointF(), nav.currentZoom())
881 905
882 self.__checkActions() 906 self.__checkActions()
907
908 @pyqtSlot(int, float)
909 def __tocActivated(self, page, zoomFactor):
910 """
911 Private slot to handle the selection of a ToC topic.
912
913 @param page page number
914 @type int
915 @param zoomFactor zoom factor
916 @type float
917 """
918 nav = self.__view.pageNavigator()
919 nav.jump(page, QPointF(), zoomFactor)
883 920
884 def __setCurrentFile(self, fileName): 921 def __setCurrentFile(self, fileName):
885 """ 922 """
886 Private method to register the file name of the current file. 923 Private method to register the file name of the current file.
887 924

eric ide

mercurial