File indexing completed on 2024-03-24 05:43:50
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