// Copyright (C) 2019-2020 Jakub Melka // // This file is part of Pdf4Qt. // // Pdf4Qt is free software: you can redistribute it and/or modify // it under the terms of the GNU Lesser General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Pdf4Qt is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public License // along with Pdf4Qt. If not, see . #ifndef PDFDOCUMENTPROPERTIESDIALOG_H #define PDFDOCUMENTPROPERTIESDIALOG_H #include "pdfglobal.h" #include #include #include class QTreeWidgetItem; namespace Ui { class PDFDocumentPropertiesDialog; } namespace pdf { class PDFDocument; } namespace pdfviewer { struct PDFFileInfo { QString originalFileName; QString fileName; QString path; pdf::PDFInteger fileSize = 0; bool writable = false; QDateTime creationTime; QDateTime lastModifiedTime; QDateTime lastReadTime; }; class PDFDocumentPropertiesDialog : public QDialog { Q_OBJECT private: using BaseClass = QDialog; public: explicit PDFDocumentPropertiesDialog(const pdf::PDFDocument* document, const PDFFileInfo* fileInfo, QWidget* parent); virtual ~PDFDocumentPropertiesDialog() override; protected: virtual void closeEvent(QCloseEvent* event) override; private: Ui::PDFDocumentPropertiesDialog* ui; void initializeProperties(const pdf::PDFDocument* document); void initializeFileInfoProperties(const PDFFileInfo* fileInfo); void initializeSecurity(const pdf::PDFDocument* document); void initializeFonts(const pdf::PDFDocument* document); void initializeDisplayAndPrintSettings(const pdf::PDFDocument* document); void onFontsFinished(); std::vector m_fontTreeWidgetItems; QFuture m_future; QFutureWatcher m_futureWatcher; }; } // namespace pdfviewer #endif // PDFDOCUMENTPROPERTIESDIALOG_H