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