File indexing completed on 2024-04-21 09:31:40

0001 /*
0002     SPDX-FileCopyrightText: 2011 Vishesh Yadav <vishesh3y@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef HGCLONEDIALOG_H
0008 #define HGCLONEDIALOG_H
0009 
0010 #include <QString>
0011 #include <QProcess>
0012 #include "dialogbase.h"
0013 
0014 class QLineEdit;
0015 class KPushButton;
0016 class KTextEdit;
0017 class QStackedLayout;
0018 class QCheckBox;
0019 
0020 //TODO: Enable to enter username/passwords if not found in config as well
0021 //  as override within dialog
0022 
0023 /**
0024  * Implements dialog to clone repository.
0025  */
0026 class HgCloneDialog : public DialogBase
0027 {
0028     Q_OBJECT
0029 
0030 public:
0031     explicit HgCloneDialog(const QString &directory, QWidget *parent = nullptr);
0032     void setWorkingDirectory(const QString &directory);
0033 
0034 private Q_SLOTS:
0035     void saveGeometry();
0036 
0037     /**
0038      * Enables dialog's Ok button when user has entered some input in 
0039      * source LineEdit
0040      */
0041     void slotUpdateOkButton();
0042     void slotBrowseDestClicked();
0043     void slotBrowseSourceClicked();
0044     void slotCloningStarted();
0045     void slotCloningFinished(int exitCode, QProcess::ExitStatus);
0046 
0047     /** 
0048      * Show output of clone operation in TextEdit component.
0049      */
0050     void slotUpdateCloneOutput();
0051 
0052 private:
0053     void done(int r) override;
0054     void browseDirectory(QLineEdit *dest);
0055     void appendOptionArguments(QStringList &args);
0056 
0057 private:
0058     QLineEdit *m_source;
0059     QLineEdit *m_destination;
0060     KPushButton *m_browse_dest;
0061     KPushButton *m_browse_source;
0062     KTextEdit *m_outputEdit;
0063     QStackedLayout *m_stackLayout;
0064 
0065     bool m_cloned;
0066     bool m_terminated;
0067     QString m_workingDirectory;
0068     QProcess m_process;
0069 
0070     // option checkboxes
0071     QCheckBox *m_optNoUpdate;
0072     QCheckBox *m_optUsePull;
0073     QCheckBox *m_optUseUncmprdTrans;
0074     QCheckBox *m_optNoVerifyServCert;
0075 
0076 };
0077 
0078 #endif // HGCLONEDIALOG_H
0079