Patch: Let form and sign interface to respect the OSD setting

This commit is contained in:
shenleban tongying 2021-04-23 03:44:44 +00:00 committed by Nate Graham
parent 5a58d3bb8e
commit 1855f9e4b1
6 changed files with 29 additions and 12 deletions

View file

@ -775,8 +775,9 @@ void PartTest::testeRectSelectionStartingOnLinks()
Okular::Part part(nullptr, nullptr, dummyArgs);
QVERIFY(openDocument(&part, QStringLiteral(KDESRCDIR "data/pdf_with_links.pdf")));
// hide info messages as they interfere with selection area
Okular::Settings::self()->setShowEmbeddedContentMessages(false);
Okular::Settings::self()->setShowOSD(false);
;
part.widget()->show();
QVERIFY(QTest::qWaitForWindowExposed(part.widget()));

View file

@ -178,6 +178,9 @@
<default>true</default>
</entry>
<entry key="ShowOSD" type="Bool" >
<default>true</default>
</entry>
<entry key="ShowEmbeddedContentMessages" type="Bool" >
<default>true</default>
</entry>
<entry key="DisplayDocumentTitle" type="Bool" >

View file

@ -2554,6 +2554,13 @@ Context menu actions like Rename Bookmarks etc.)
load, &etc;</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Notify about embedded files, forms, or signatures</guilabel></term>
<listitem>
<para>Whether to show informative panels about embedded files, forms
or signatures &etc;</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Display document title in titlebar if available</guilabel></term>
<listitem>

View file

@ -50,11 +50,17 @@ DlgGeneral::DlgGeneral(QWidget *parent, Okular::EmbedMode embedMode)
layout->addRow(QString(), scrollThumbnails);
}
// Checkbox: show hints and info messages
QCheckBox *showHints = new QCheckBox(this);
showHints->setText(i18nc("@option:check Config dialog, general page", "Show hints and info messages"));
showHints->setObjectName(QStringLiteral("kcfg_ShowOSD"));
layout->addRow(QString(), showHints);
// Checkbox: Show welcoming messages (the balloons or OSD)
QCheckBox *showOSD = new QCheckBox(this);
showOSD->setText(i18nc("@option:check Config dialog, general page", "Show hints and info messages"));
showOSD->setObjectName(QStringLiteral("kcfg_ShowOSD"));
layout->addRow(QString(), showOSD);
// Checkbox: Notify about embedded files, forms, or signatures
QCheckBox *showEmbeddedContentMessages = new QCheckBox(this);
showEmbeddedContentMessages->setText(i18nc("@option:check Config dialog, general page", "Notify about embedded files, forms, or signatures"));
showEmbeddedContentMessages->setObjectName(QStringLiteral("kcfg_ShowEmbeddedContentMessages"));
layout->addRow(QString(), showEmbeddedContentMessages);
if (embedMode != Okular::ViewerWidgetMode) {
// Checkbox: display document title in titlebar

View file

@ -1253,8 +1253,8 @@ void PageView::notifySetup(const QVector<Okular::Page *> &pageSet, int setupFlag
// be done and the old document would still be shown
}
// OSD to display pages
if (documentChanged && pageSet.count() > 0 && Okular::Settings::showOSD())
// OSD (Message balloons) to display pages
if (documentChanged && pageSet.count() > 0)
d->messageWindow->display(i18np(" Loaded a one-page document.", " Loaded a %1-page document.", pageSet.count()), QString(), PageViewMessage::Info, 4000);
updateActionState(haspages, hasformwidgets);

View file

@ -1531,18 +1531,18 @@ bool Part::openFile()
bool hasEmbeddedFiles = ok && m_document->embeddedFiles() && m_document->embeddedFiles()->count() > 0;
if (m_showEmbeddedFiles)
m_showEmbeddedFiles->setEnabled(hasEmbeddedFiles);
m_topMessage->setVisible(hasEmbeddedFiles && Okular::Settings::showOSD());
m_topMessage->setVisible(hasEmbeddedFiles && Okular::Settings::showEmbeddedContentMessages());
m_migrationMessage->setVisible(m_document->isDocdataMigrationNeeded());
// Warn the user that XFA forms are not supported yet (NOTE: poppler generator only)
if (ok && m_document->metaData(QStringLiteral("HasUnsupportedXfaForm")).toBool() == true) {
if (ok && Okular::Settings::showEmbeddedContentMessages() && m_document->metaData(QStringLiteral("HasUnsupportedXfaForm")).toBool() == true) {
m_formsMessage->setText(i18n("This document has XFA forms, which are currently <b>unsupported</b>."));
m_formsMessage->setIcon(QIcon::fromTheme(QStringLiteral("dialog-warning")));
m_formsMessage->setMessageType(KMessageWidget::Warning);
m_formsMessage->setVisible(true);
}
// m_pageView->toggleFormsAction() may be null on dummy mode
else if (ok && m_pageView->toggleFormsAction() && m_pageView->toggleFormsAction()->isEnabled()) {
else if (ok && Okular::Settings::showEmbeddedContentMessages() && m_pageView->toggleFormsAction() && m_pageView->toggleFormsAction()->isEnabled()) {
m_formsMessage->setText(i18n("This document has forms. Click on the button to interact with them, or use View -> Show Forms."));
m_formsMessage->setMessageType(KMessageWidget::Information);
m_formsMessage->setVisible(true);
@ -1561,7 +1561,7 @@ bool Part::openFile()
}
}
if (isDigitallySigned) {
if (isDigitallySigned && Okular::Settings::showEmbeddedContentMessages()) {
if (m_embedMode == PrintPreviewMode) {
m_signatureMessage->setText(i18n("All editing and interactive features for this document are disabled. Please save a copy and reopen to edit this document."));
} else {