#ifndef BACKUPDIALOG_H #define BACKUPDIALOG_H #include #include #include "ConnectionConfig.h" #include class QLabel; class QPushButton; class QTabWidget; class QVBoxLayout; class QHBoxLayout; class QComboBox; class QSpinBox; class QCheckBox; class QPlainTextEdit; class QLineEdit; class QFormLayout; class QStackedLayout; class BackupDialog : public QDialog { Q_OBJECT public: explicit BackupDialog(QWidget *parent = nullptr); ~BackupDialog(); void ConnectTo(QProcess *process); void disconnectCurrentProcess(); void setConfig(const ConnectionConfig &cfg); void retranslateUi(); private: QProcess *m_process = nullptr; ConnectionConfig m_config; QLabel *labelFileName; QLineEdit *editFilename; QPushButton *selectDestination; QHBoxLayout *layoutDestination; QWidget *widgetDestination; QPushButton *btnStart; QWidget *optionsView; QLabel *labelFormat; QComboBox *backupFormat; QLabel *labelJobs; QSpinBox *jobs; QCheckBox *chkbxVerbose; QLabel *labelCompression; QSpinBox *compression; QCheckBox *chkbxIncludeBlobs; QCheckBox *chkbxClean; QCheckBox *chkbxCreate; QCheckBox *noOwner; QCheckBox *oids; QComboBox *what; QCheckBox *noAcl; QWidget *progressView; QPlainTextEdit *stdOutput; QTextCharFormat m_OutputOkFormat; QTextCharFormat m_OutputErrorFormat; QLabel *labelDataOrSchema; QPushButton *btnBack; QPushButton *btnClose; QStackedLayout *viewStack; enum class Format { Normal, Success, Error }; void writeOutput(const QString &s, Format f = Format::Normal); void setParams(QStringList &args); private slots: void process_readyRead(); void process_errorOccurred(QProcess::ProcessError error); void process_finished(int exitCode, QProcess::ExitStatus exitStatus); void on_btnStart_clicked(); void on_backupFormat_currentIndexChanged(int index); void on_selectDestination_clicked(); void on_btnBack_clicked(); }; #endif // BACKUPDIALOG_H