From c419d4351ce81841b66f8e5c367fca82328c3db6 Mon Sep 17 00:00:00 2001 From: octaeder <102688820+octaeder@users.noreply.github.com> Date: Fri, 3 Jan 2025 11:20:29 +0100 Subject: [PATCH] make menu entries Show embedded PDF large/small consistent --- src/pdfviewer/PDFDocument.cpp | 24 +++++++++++++++++++++++- src/pdfviewer/PDFDocument.h | 1 + src/texstudio.cpp | 5 ++--- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/pdfviewer/PDFDocument.cpp b/src/pdfviewer/PDFDocument.cpp index 7eb13b0dca..bc10e5d406 100644 --- a/src/pdfviewer/PDFDocument.cpp +++ b/src/pdfviewer/PDFDocument.cpp @@ -2880,7 +2880,10 @@ PDFDocument::PDFDocument(PDFDocumentConfig *const pdfConfig, bool embedded) if (embeddedMode && globalConfig->autoHideToolbars) { setAutoHideToolbars(true); } - + ConfigManager *configManager=dynamic_cast(ConfigManager::getInstance()); + if(!configManager) return; + bool enlarged=configManager->viewerEnlarged; + setVisibleMenuEntriesEnlargeShrink(embeddedMode && !enlarged, embeddedMode && enlarged); } PDFDocument::~PDFDocument() @@ -2890,6 +2893,10 @@ PDFDocument::~PDFDocument() ConfigManager *configManager=dynamic_cast(ConfigManager::getInstance()); if(configManager){ + if (embeddedMode) { + QAction *act=configManager->getManagedAction("main/view/enlargePDF"); + setVisibleMenuEntriesEnlargeShrink(false, false); + } #if (QT_VERSION > 0x050000) && (QT_VERSION <= 0x050700) && (defined(Q_OS_MAC)) QList keys=configManager->specialShortcuts.keys(); foreach(QKeySequence key,keys){ @@ -3774,6 +3781,10 @@ void PDFDocument::runInternalViewer() void PDFDocument::toggleEmbedded() { + ConfigManager *configManager=dynamic_cast(ConfigManager::getInstance()); + if(!configManager) return; + bool enlarged=configManager->viewerEnlarged; + setVisibleMenuEntriesEnlargeShrink(!embeddedMode && !enlarged, !embeddedMode && enlarged); if (embeddedMode) emit runCommand("txs:///view-pdf-internal --windowed --close-embedded", masterFile, QFileInfo(lastSyncPoint.filename), lastSyncPoint.line); else @@ -3855,6 +3866,7 @@ void PDFDocument::setStateEnlarged(bool state) { actionEnlargeViewer->setVisible(!state); actionShrinkViewer->setVisible(state); + setVisibleMenuEntriesEnlargeShrink(!state, state); } /*! @@ -4878,4 +4890,14 @@ void PDFDocument::splitMergeTool() psmt->show(); } +void PDFDocument::setVisibleMenuEntriesEnlargeShrink(bool visibleEnlarge, bool visibleShrink) +{ + ConfigManager *configManager=dynamic_cast(ConfigManager::getInstance()); + if(!configManager) return; + QAction *act=configManager->getManagedAction("main/view/enlargePDF"); + act->setVisible(visibleEnlarge); + act=configManager->getManagedAction("main/view/shrinkPDF"); + act->setVisible(visibleShrink); +} + #endif // ndef NO_POPPLER_PREVIEW diff --git a/src/pdfviewer/PDFDocument.h b/src/pdfviewer/PDFDocument.h index 7ca022804d..4b8bbffafa 100644 --- a/src/pdfviewer/PDFDocument.h +++ b/src/pdfviewer/PDFDocument.h @@ -565,6 +565,7 @@ private slots: void setupToolBar(); void setCurrentFile(const QString &fileName); void loadSyncData(); + void setVisibleMenuEntriesEnlargeShrink(bool visibleEnlarge, bool visibleShrink); qreal zoomSliderPosToScale(int pos); int scaleToZoomSliderPos(qreal scale); diff --git a/src/texstudio.cpp b/src/texstudio.cpp index a09c48f410..e32044eb70 100644 --- a/src/texstudio.cpp +++ b/src/texstudio.cpp @@ -1403,9 +1403,8 @@ void Texstudio::setupMenus() } } - newManagedAction(menu, "enlargePDF", tr("Show embedded PDF large"), SLOT(enlargeEmbeddedPDFViewer())); - newManagedAction(menu, "shrinkPDF", tr("Show embedded PDF small"), SLOT(shrinkEmbeddedPDFViewer())); - + newManagedAction(menu, "enlargePDF", tr("Show embedded PDF large"), SLOT(enlargeEmbeddedPDFViewer()))->setVisible(false); + newManagedAction(menu, "shrinkPDF", tr("Show embedded PDF small"), SLOT(shrinkEmbeddedPDFViewer()))->setVisible(false); newManagedAction(menu, "closeelement", tr("Close Element"), SLOT(viewCloseElement()), Qt::Key_Escape); menu->addSeparator();