PDF4QT/PdfForQtViewer/pdfdocumentpropertiesdialog.h

89 lines
2.4 KiB
C
Raw Normal View History

2020-01-18 11:38:54 +01:00
// Copyright (C) 2019-2020 Jakub Melka
2019-12-20 18:56:03 +01:00
//
// This file is part of PdfForQt.
//
// PdfForQt 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.
//
// PdfForQt 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 PDFForQt. If not, see <https://www.gnu.org/licenses/>.
#ifndef PDFDOCUMENTPROPERTIESDIALOG_H
#define PDFDOCUMENTPROPERTIESDIALOG_H
#include "pdfglobal.h"
#include <QDialog>
2019-12-21 18:10:54 +01:00
#include <QFuture>
#include <QFutureWatcher>
class QTreeWidgetItem;
2019-12-20 18:56:03 +01:00
namespace Ui
{
class PDFDocumentPropertiesDialog;
}
namespace pdf
{
class PDFDocument;
}
namespace pdfviewer
{
struct PDFFileInfo
{
2019-12-22 18:03:19 +01:00
QString originalFileName;
2019-12-20 18:56:03 +01:00
QString fileName;
QString path;
pdf::PDFInteger fileSize = 0;
bool writable = false;
QDateTime creationTime;
QDateTime lastModifiedTime;
QDateTime lastReadTime;
};
class PDFDocumentPropertiesDialog : public QDialog
{
Q_OBJECT
2019-12-21 18:10:54 +01:00
private:
using BaseClass = QDialog;
2019-12-20 18:56:03 +01:00
public:
explicit PDFDocumentPropertiesDialog(const pdf::PDFDocument* document,
const PDFFileInfo* fileInfo,
QWidget* parent);
virtual ~PDFDocumentPropertiesDialog() override;
2019-12-21 18:10:54 +01:00
protected:
virtual void closeEvent(QCloseEvent* event) override;
2019-12-20 18:56:03 +01:00
private:
Ui::PDFDocumentPropertiesDialog* ui;
void initializeProperties(const pdf::PDFDocument* document);
void initializeFileInfoProperties(const PDFFileInfo* fileInfo);
2019-12-21 15:02:11 +01:00
void initializeSecurity(const pdf::PDFDocument* document);
2019-12-21 18:10:54 +01:00
void initializeFonts(const pdf::PDFDocument* document);
2019-12-22 16:33:50 +01:00
void initializeDisplayAndPrintSettings(const pdf::PDFDocument* document);
2019-12-21 18:10:54 +01:00
void onFontsFinished();
std::vector<QTreeWidgetItem*> m_fontTreeWidgetItems;
QFuture<void> m_future;
QFutureWatcher<void> m_futureWatcher;
2019-12-20 18:56:03 +01:00
};
} // namespace pdfviewer
#endif // PDFDOCUMENTPROPERTIESDIALOG_H