123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- #ifndef EXPORTDIALOG_H
- #define EXPORTDIALOG_H
- #include "scrolldialog.h"
- #include <QSharedPointer>
- #include <export/exportdata.h>
- class QGroupBox;
- class QPushButton;
- class QComboBox;
- class QCheckBox;
- class QLineEdit;
- class QProgressBar;
- class QPlainTextEdit;
- class QPageLayout;
- namespace vnotex
- {
- class Notebook;
- class Node;
- class Buffer;
- class Exporter;
- class ExportDialog : public ScrollDialog
- {
- Q_OBJECT
- public:
- // Current notebook/folder/buffer.
- ExportDialog(Notebook *p_notebook,
- Node *p_folder,
- Buffer *p_buffer,
- QWidget *p_parent = nullptr);
- protected:
- void rejectedButtonClicked() Q_DECL_OVERRIDE;
- private slots:
- void updateProgress(int p_val, int p_maximum);
- void appendLog(const QString &p_log);
- private:
- enum AdvancedSettings
- {
- General,
- HTML,
- PDF,
- Max
- };
- void setupUI();
- QGroupBox *setupSourceGroup(QWidget *p_parent);
- QGroupBox *setupTargetGroup(QWidget *p_parent);
- QGroupBox *setupAdvancedGroup(QWidget *p_parent);
- QWidget *setupGeneralAdvancedSettings(QWidget *p_parent);
- QWidget *getHtmlAdvancedSettings();
- QWidget *getPdfAdvancedSettings();
- void showAdvancedSettings(AdvancedSettings p_settings);
- void setupButtonBox();
- QString getOutputDir() const;
- void initOptions();
- void restoreFields(const ExportOption &p_option);
- void saveFields(ExportOption &p_option);
- void restoreFields(const ExportHtmlOption &p_option);
- void saveFields(ExportHtmlOption &p_option);
- void restoreFields(const ExportPdfOption &p_option);
- void saveFields(ExportPdfOption &p_option);
- void startExport();
- void updateUIOnExport();
- // Return exported files count.
- int doExport(ExportOption p_option);
- Exporter *getExporter();
- QString getDefaultOutputDir() const;
- void updatePageLayoutButtonLabel();
- // Managed by QObject.
- Exporter *m_exporter = nullptr;
- Notebook *m_notebook = nullptr;
- Node *m_folder = nullptr;
- Buffer *m_buffer = nullptr;
- // Last exported single file.
- QString m_exportedFile;
- bool m_exportOngoing = false;
- QPushButton *m_exportBtn = nullptr;
- QPushButton *m_openDirBtn = nullptr;
- QPushButton *m_copyContentBtn = nullptr;
- QComboBox *m_sourceComboBox = nullptr;
- QComboBox *m_targetFormatComboBox = nullptr;
- QCheckBox *m_transparentBgCheckBox = nullptr;
- QComboBox *m_renderingStyleComboBox = nullptr;
- QComboBox *m_syntaxHighlightStyleComboBox = nullptr;
- QLineEdit *m_outputDirLineEdit = nullptr;
- QProgressBar *m_progressBar = nullptr;
- QGroupBox *m_advancedGroupBox = nullptr;
- QVector<QWidget *> m_advancedSettings;
- // General settings.
- QCheckBox *m_recursiveCheckBox = nullptr;
- QCheckBox *m_exportAttachmentsCheckBox = nullptr;
- // HTML settings.
- QCheckBox *m_embedStylesCheckBox = nullptr;
- QCheckBox *m_embedImagesCheckBox = nullptr;
- QCheckBox *m_completePageCheckBox = nullptr;
- QCheckBox *m_useMimeHtmlFormatCheckBox = nullptr;
- QCheckBox *m_addOutlinePanelCheckBox = nullptr;
- // PDF settings.
- QPushButton *m_pageLayoutBtn = nullptr;
- QCheckBox *m_addTableOfContentsCheckBox = nullptr;
- QCheckBox *m_useWkhtmltopdfCheckBox = nullptr;
- QLineEdit *m_wkhtmltopdfExePathLineEdit = nullptr;
- QLineEdit *m_wkhtmltopdfArgsLineEdit = nullptr;
- QSharedPointer<QPageLayout> m_pageLayout;
- ExportOption m_option;
- };
- }
- #endif // EXPORTDIALOG_H
|