File indexing completed on 2024-05-19 04:35:20
0001 /* 0002 SPDX-FileCopyrightText: 2007 Pino Toscano <pino@kde.org> 0003 SPDX-FileCopyrightText: 2019 Oliver Sander <oliver.sander@tu-dresden.de> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef _OKULAR_GENERATOR_PDF_FORMFIELDS_H_ 0009 #define _OKULAR_GENERATOR_PDF_FORMFIELDS_H_ 0010 0011 #include "core/form.h" 0012 #include <poppler-form.h> 0013 0014 class PopplerFormFieldButton : public Okular::FormFieldButton 0015 { 0016 public: 0017 explicit PopplerFormFieldButton(std::unique_ptr<Poppler::FormFieldButton> field); 0018 0019 // inherited from Okular::FormField 0020 Okular::NormalizedRect rect() const override; 0021 int id() const override; 0022 QString name() const override; 0023 QString uiName() const override; 0024 QString fullyQualifiedName() const override; 0025 bool isReadOnly() const override; 0026 void setReadOnly(bool value) override; 0027 bool isVisible() const override; 0028 void setVisible(bool value) override; 0029 bool isPrintable() const override; 0030 void setPrintable(bool value) override; 0031 0032 // inherited from Okular::FormFieldButton 0033 ButtonType buttonType() const override; 0034 QString caption() const override; 0035 bool state() const override; 0036 void setState(bool state) override; 0037 QList<int> siblings() const override; 0038 void setIcon(Okular::FormField *field) override; 0039 /* 0040 * Supported only in newer versions of Poppler library. 0041 * 0042 * @since 1.9 0043 */ 0044 Poppler::FormFieldIcon icon() const; 0045 0046 private: 0047 std::unique_ptr<Poppler::FormFieldButton> m_field; 0048 Okular::NormalizedRect m_rect; 0049 int m_id; 0050 }; 0051 0052 class PopplerFormFieldText : public Okular::FormFieldText 0053 { 0054 public: 0055 explicit PopplerFormFieldText(std::unique_ptr<Poppler::FormFieldText> field); 0056 0057 // inherited from Okular::FormField 0058 Okular::NormalizedRect rect() const override; 0059 int id() const override; 0060 QString name() const override; 0061 QString uiName() const override; 0062 QString fullyQualifiedName() const override; 0063 bool isReadOnly() const override; 0064 void setReadOnly(bool value) override; 0065 bool isVisible() const override; 0066 void setVisible(bool value) override; 0067 bool isPrintable() const override; 0068 void setPrintable(bool value) override; 0069 0070 // inherited from Okular::FormFieldText 0071 Okular::FormFieldText::TextType textType() const override; 0072 QString text() const override; 0073 void setText(const QString &text) override; 0074 void setAppearanceText(const QString &text) override; 0075 bool isPassword() const override; 0076 bool isRichText() const override; 0077 int maximumLength() const override; 0078 Qt::Alignment textAlignment() const override; 0079 bool canBeSpellChecked() const override; 0080 0081 private: 0082 std::unique_ptr<Poppler::FormFieldText> m_field; 0083 Okular::NormalizedRect m_rect; 0084 int m_id; 0085 }; 0086 0087 class PopplerFormFieldChoice : public Okular::FormFieldChoice 0088 { 0089 public: 0090 explicit PopplerFormFieldChoice(std::unique_ptr<Poppler::FormFieldChoice> field); 0091 0092 // inherited from Okular::FormField 0093 Okular::NormalizedRect rect() const override; 0094 int id() const override; 0095 QString name() const override; 0096 QString uiName() const override; 0097 QString fullyQualifiedName() const override; 0098 bool isReadOnly() const override; 0099 void setReadOnly(bool value) override; 0100 bool isVisible() const override; 0101 void setVisible(bool value) override; 0102 bool isPrintable() const override; 0103 void setPrintable(bool value) override; 0104 0105 // inherited from Okular::FormFieldChoice 0106 ChoiceType choiceType() const override; 0107 QStringList choices() const override; 0108 bool isEditable() const override; 0109 bool multiSelect() const override; 0110 QList<int> currentChoices() const override; 0111 void setCurrentChoices(const QList<int> &choices) override; 0112 QString editChoice() const override; 0113 void setEditChoice(const QString &text) override; 0114 Qt::Alignment textAlignment() const override; 0115 bool canBeSpellChecked() const override; 0116 0117 private: 0118 std::unique_ptr<Poppler::FormFieldChoice> m_field; 0119 Okular::NormalizedRect m_rect; 0120 int m_id; 0121 }; 0122 0123 class PopplerFormFieldSignature : public Okular::FormFieldSignature 0124 { 0125 public: 0126 explicit PopplerFormFieldSignature(std::unique_ptr<Poppler::FormFieldSignature> field); 0127 ~PopplerFormFieldSignature() override; 0128 0129 // inherited from Okular::FormField 0130 Okular::NormalizedRect rect() const override; 0131 int id() const override; 0132 QString name() const override; 0133 QString uiName() const override; 0134 QString fullyQualifiedName() const override; 0135 bool isReadOnly() const override; 0136 bool isVisible() const override; 0137 0138 // inherited from Okular::FormFieldSignature 0139 SignatureType signatureType() const override; 0140 Okular::SignatureInfo signatureInfo() const override; 0141 bool sign(const Okular::NewSignatureData &oData, const QString &newPath) const override; 0142 0143 private: 0144 std::unique_ptr<Poppler::FormFieldSignature> m_field; 0145 Okular::SignatureInfo m_info; 0146 Okular::NormalizedRect m_rect; 0147 int m_id; 0148 }; 0149 0150 #endif