1 /* 2 For general Scribus (>=1.3.2) copyright and licensing information please refer 3 to the COPYING file provided with the program. Following this notice may exist 4 a copyright and/or license notice that predates the release of Scribus 1.3.2 5 for which a new license (GPL+exception) is in place. 6 */ 7 8 #include "pdfversioncombo.h" 9 #include "pdfversionmodel.h" 10 PdfVersionCombo(QWidget * parent)11PdfVersionCombo::PdfVersionCombo(QWidget* parent) : QComboBox(parent) 12 { 13 m_isPdfXEnabled = false; 14 m_pdfVersionModel = new PdfVersionModel(this); 15 16 setEditable(false); 17 setModel(m_pdfVersionModel); 18 } 19 ~PdfVersionCombo()20PdfVersionCombo::~PdfVersionCombo() 21 { 22 if (m_pdfVersionModel) 23 { 24 delete m_pdfVersionModel; 25 m_pdfVersionModel = nullptr; 26 } 27 } 28 version() const29PDFVersion PdfVersionCombo::version() const 30 { 31 int curIndex = currentIndex(); 32 33 if (curIndex == PdfVersionModel::ItemPDF_13) 34 return PDFVersion::PDF_13; 35 if (curIndex == PdfVersionModel::ItemPDF_14) 36 return PDFVersion::PDF_14; 37 if (curIndex == PdfVersionModel::ItemPDF_15) 38 return PDFVersion::PDF_15; 39 if (curIndex == PdfVersionModel::ItemPDF_16) 40 return PDFVersion::PDF_16; 41 if (curIndex == PdfVersionModel::ItemPDFX_1a) 42 return PDFVersion::PDF_X1a; 43 if (curIndex == PdfVersionModel::ItemPDFX_3) 44 return PDFVersion::PDF_X3; 45 if (curIndex == PdfVersionModel::ItemPDFX_4) 46 return PDFVersion::PDF_X4; 47 return PDFVersion::PDF_14; 48 } 49 versionIs(const PDFVersion & version) const50bool PdfVersionCombo::versionIs(const PDFVersion& version) const 51 { 52 int curIndex = currentIndex(); 53 54 if (version == PDFVersion::PDF_13) 55 return (curIndex == PdfVersionModel::ItemPDF_13); 56 if (version == PDFVersion::PDF_14) 57 return (curIndex == PdfVersionModel::ItemPDF_14); 58 if (version == PDFVersion::PDF_15) 59 return (curIndex == PdfVersionModel::ItemPDF_15); 60 if (version == PDFVersion::PDF_16) 61 return (curIndex == PdfVersionModel::ItemPDF_16); 62 if (version == PDFVersion::PDF_X1a) 63 return (curIndex == PdfVersionModel::ItemPDFX_1a); 64 if (version == PDFVersion::PDF_X3) 65 return (curIndex == PdfVersionModel::ItemPDFX_3); 66 if (version == PDFVersion::PDF_X4) 67 return (curIndex == PdfVersionModel::ItemPDFX_4); 68 return false; 69 } 70 versionIsPDFX() const71bool PdfVersionCombo::versionIsPDFX() const 72 { 73 int curIndex = currentIndex(); 74 if (curIndex == PdfVersionModel::ItemPDFX_1a) 75 return true; 76 if (curIndex == PdfVersionModel::ItemPDFX_3) 77 return true; 78 if (curIndex == PdfVersionModel::ItemPDFX_4) 79 return true; 80 return false; 81 } 82 setVersion(const PDFVersion & version)83void PdfVersionCombo::setVersion(const PDFVersion& version) 84 { 85 if ((version == PDFVersion::PDF_X1a) && !m_isPdfXEnabled) 86 { 87 setCurrentIndex(PdfVersionModel::ItemPDF_13); 88 return; 89 } 90 if ((version == PDFVersion::PDF_X3) && !m_isPdfXEnabled) 91 { 92 setCurrentIndex(PdfVersionModel::ItemPDF_13); 93 return; 94 } 95 if ((version == PDFVersion::PDF_X4) && !m_isPdfXEnabled) 96 { 97 setCurrentIndex(PdfVersionModel::ItemPDF_15); 98 return; 99 } 100 101 if (version == PDFVersion::PDF_13) 102 setCurrentIndex(PdfVersionModel::ItemPDF_13); 103 else if (version == PDFVersion::PDF_14) 104 setCurrentIndex(PdfVersionModel::ItemPDF_14); 105 else if (version == PDFVersion::PDF_15) 106 setCurrentIndex(PdfVersionModel::ItemPDF_15); 107 else if (version == PDFVersion::PDF_16) 108 setCurrentIndex(PdfVersionModel::ItemPDF_16); 109 else if (version == PDFVersion::PDF_X1a) 110 setCurrentIndex(PdfVersionModel::ItemPDFX_1a); 111 else if (version == PDFVersion::PDF_X3) 112 setCurrentIndex(PdfVersionModel::ItemPDFX_3); 113 else if (version == PDFVersion::PDF_X4) 114 setCurrentIndex(PdfVersionModel::ItemPDFX_4); 115 } 116 setPDFXEnabled(bool enabled)117void PdfVersionCombo::setPDFXEnabled(bool enabled) 118 { 119 if (m_isPdfXEnabled == enabled) 120 return; 121 m_isPdfXEnabled = enabled; 122 123 PDFVersion oldVersion = version(); 124 if (!enabled) 125 { 126 if ((oldVersion == PDFVersion::PDF_X1a) && !enabled) 127 setCurrentIndex((int) PdfVersionModel::ItemPDF_13); 128 if ((oldVersion == PDFVersion::PDF_X3) && !enabled) 129 setCurrentIndex((int) PdfVersionModel::ItemPDF_13); 130 if ((oldVersion == PDFVersion::PDF_X4) && !enabled) 131 setCurrentIndex((int) PdfVersionModel::ItemPDF_15); 132 } 133 m_pdfVersionModel->setPdfXEnabled(enabled); 134 } 135