src/eric7/PdfViewer/PdfViewerWindow.py

branch
pdf_viewer
changeset 9707
717f95e35ca8
parent 9706
c0ff0b4d5657
child 9712
24bdc37413dd
equal deleted inserted replaced
9706:c0ff0b4d5657 9707:717f95e35ca8
144 self.__zoomSelector.zoomModeChanged.connect(self.__view.setZoomMode) 144 self.__zoomSelector.zoomModeChanged.connect(self.__view.setZoomMode)
145 self.__zoomSelector.zoomModeChanged.connect(self.__zoomModeChanged) 145 self.__zoomSelector.zoomModeChanged.connect(self.__zoomModeChanged)
146 self.__zoomSelector.zoomFactorChanged.connect(self.__view.setZoomFactor) 146 self.__zoomSelector.zoomFactorChanged.connect(self.__view.setZoomFactor)
147 self.__view.zoomFactorChanged.connect(self.__zoomSelector.setZoomFactor) 147 self.__view.zoomFactorChanged.connect(self.__zoomSelector.setZoomFactor)
148 self.__view.zoomModeChanged.connect(self.__zoomSelector.setZoomMode) 148 self.__view.zoomModeChanged.connect(self.__zoomSelector.setZoomMode)
149 self.__view.selectionAvailable.connect(self.copyAct.setEnabled)
149 150
150 self.__tocWidget.topicActivated.connect(self.__tocActivated) 151 self.__tocWidget.topicActivated.connect(self.__tocActivated)
151 152
152 self.__searchWidget.searchResultActivated.connect(self.__handleSearchResult) 153 self.__searchWidget.searchResultActivated.connect(self.__handleSearchResult)
153 self.__searchWidget.searchNextAvailable.connect(self.searchNextAct.setEnabled) 154 self.__searchWidget.searchNextAvailable.connect(self.searchNextAct.setEnabled)
154 self.__searchWidget.searchPrevAvailable.connect(self.searchPrevAct.setEnabled) 155 self.__searchWidget.searchPrevAvailable.connect(self.searchPrevAct.setEnabled)
156 self.__searchWidget.searchCleared.connect(self.__view.clearSearchMarkers)
157 self.__searchWidget.searchResult.connect(self.__view.addSearchMarker)
155 158
156 PdfViewerWindow.windows.append(self) 159 PdfViewerWindow.windows.append(self)
157 160
158 self.__restoreViewerState() 161 self.__restoreViewerState()
159 162
503 506
504 def __initEditActions(self): 507 def __initEditActions(self):
505 """ 508 """
506 Private method to create the Edit actions. 509 Private method to create the Edit actions.
507 """ 510 """
511 self.copyAct = EricAction(
512 self.tr("Copy"),
513 EricPixmapCache.getIcon("editCopy"),
514 self.tr("&Copy"),
515 QKeySequence(self.tr("Ctrl+C", "Edit|Copy")),
516 0,
517 self,
518 "pdfviewer_edit_copy",
519 )
520 self.copyAct.triggered.connect(self.__copyText)
521 self.__actions.append(self.copyAct)
522
508 self.copyAllAct = EricAction( 523 self.copyAllAct = EricAction(
509 self.tr("Copy All Text"), 524 self.tr("Copy All Text"),
510 EricPixmapCache.getIcon("editCopy"), 525 self.tr("Copy &All Text"),
511 self.tr("&Copy All Text"), 526 QKeySequence(self.tr("Alt+Ctrl+C", "Edit|Copy All Text")),
512 QKeySequence(self.tr("Ctrl+C", "Edit|Copy All Text")),
513 0, 527 0,
514 self, 528 self,
515 "pdfviewer_edit_copyall", 529 "pdfviewer_edit_copyall",
516 ) 530 )
517 self.copyAllAct.triggered.connect(self.__copyAllText) 531 self.copyAllAct.triggered.connect(self.__copyAllText)
518 self.__actions.append(self.copyAllAct) 532 self.__actions.append(self.copyAllAct)
519 533
520 self.copyAllPageAct = EricAction( 534 self.copyAllPageAct = EricAction(
521 self.tr("Copy All Page Text"), 535 self.tr("Copy All Page Text"),
522 self.tr("Copy &All Page Text"), 536 self.tr("Copy All Page &Text"),
523 QKeySequence(self.tr("Shift+Ctrl+C", "Edit|Copy All Page Text")), 537 QKeySequence(self.tr("Shift+Ctrl+C", "Edit|Copy All Page Text")),
524 0, 538 0,
525 self, 539 self,
526 "pdfviewer_edit_copyallpage", 540 "pdfviewer_edit_copyallpage",
527 ) 541 )
562 "pdfviewer_edit_searchprevious", 576 "pdfviewer_edit_searchprevious",
563 ) 577 )
564 self.searchPrevAct.triggered.connect(self.__searchWidget.previousResult) 578 self.searchPrevAct.triggered.connect(self.__searchWidget.previousResult)
565 self.__actions.append(self.searchPrevAct) 579 self.__actions.append(self.searchPrevAct)
566 580
581 self.copyAct.setEnabled(False)
567 self.searchNextAct.setEnabled(False) 582 self.searchNextAct.setEnabled(False)
568 self.searchPrevAct.setEnabled(False) 583 self.searchPrevAct.setEnabled(False)
569 584
570 def __initSettingsActions(self): 585 def __initSettingsActions(self):
571 """ 586 """
739 self.__displayModeActGrp.addAction(self.__continuousPageAct) 754 self.__displayModeActGrp.addAction(self.__continuousPageAct)
740 modeMenu.triggered.connect(self.__displayModeSelected) 755 modeMenu.triggered.connect(self.__displayModeSelected)
741 756
742 menu = mb.addMenu(self.tr("&Edit")) 757 menu = mb.addMenu(self.tr("&Edit"))
743 menu.setTearOffEnabled(True) 758 menu.setTearOffEnabled(True)
759 menu.addAction(self.copyAct)
760 menu.addSeparator()
744 menu.addAction(self.copyAllAct) 761 menu.addAction(self.copyAllAct)
745 menu.addSeparator()
746 menu.addAction(self.copyAllPageAct) 762 menu.addAction(self.copyAllPageAct)
747 menu.addSeparator() 763 menu.addSeparator()
748 menu.addAction(self.searchAct) 764 menu.addAction(self.searchAct)
749 menu.addAction(self.searchNextAct) 765 menu.addAction(self.searchNextAct)
750 menu.addAction(self.searchPrevAct) 766 menu.addAction(self.searchPrevAct)
1076 1092
1077 @param link PDF link to navigate to 1093 @param link PDF link to navigate to
1078 @type QPdfLink 1094 @type QPdfLink
1079 """ 1095 """
1080 self.__view.pageNavigator().jump(link) 1096 self.__view.pageNavigator().jump(link)
1097 self.__view.addSearchMarker(link)
1081 1098
1082 @pyqtSlot() 1099 @pyqtSlot()
1083 def __search(self): 1100 def __search(self):
1084 """ 1101 """
1085 Private slot to initiate a search. 1102 Private slot to initiate a search.
1431 for page in range(self.__pdfDocument.pageCount()): 1448 for page in range(self.__pdfDocument.pageCount()):
1432 textPages.append(self.__pdfDocument.getAllText(page).text()) 1449 textPages.append(self.__pdfDocument.getAllText(page).text())
1433 QGuiApplication.clipboard().setText( 1450 QGuiApplication.clipboard().setText(
1434 "\r\n".join(textPages), QClipboard.Mode.Clipboard 1451 "\r\n".join(textPages), QClipboard.Mode.Clipboard
1435 ) 1452 )
1453
1454 @pyqtSlot()
1455 def __copyText(self):
1456 """
1457 Private slot to copy the selected text to the system clipboard.
1458 """
1459 selection = self.__view.getSelection()
1460 if selection is not None:
1461 selection.copyToClipboard()

eric ide

mercurial