File indexing completed on 2024-04-28 09:36:08
0001 /* 0002 SPDX-FileCopyrightText: 2011 Vishesh Yadav <vishesh3y@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "createdialog.h" 0008 #include "fileviewhgpluginsettings.h" 0009 0010 #include <QHBoxLayout> 0011 #include <QProcess> 0012 #include <QLabel> 0013 #include <KLocalizedString> 0014 #include <QLineEdit> 0015 #include <KMessageBox> 0016 0017 HgCreateDialog::HgCreateDialog(const QString &directory, QWidget *parent): 0018 DialogBase(QDialogButtonBox::Ok | QDialogButtonBox::Cancel ,parent), 0019 m_workingDirectory(directory) 0020 { 0021 // dialog properties 0022 this->setWindowTitle(xi18nc("@title:window", 0023 "<application>Hg</application> Initialize Repository")); 0024 okButton()->setText(xi18nc("@action:button", "Initialize Repository")); 0025 0026 0027 ////////////// 0028 // Setup UI // 0029 ////////////// 0030 0031 m_directory = new QLabel(QLatin1String("<b>") + m_workingDirectory + QLatin1String("</b>")); 0032 m_repoNameEdit = new QLineEdit; 0033 0034 QHBoxLayout *mainLayout = new QHBoxLayout; 0035 mainLayout->addWidget(m_directory); 0036 mainLayout->addWidget(m_repoNameEdit); 0037 0038 layout()->insertLayout(0, mainLayout); 0039 m_repoNameEdit->setFocus(); 0040 } 0041 0042 void HgCreateDialog::done(int r) 0043 { 0044 if (r == QDialog::Accepted) { 0045 QProcess process; 0046 QStringList args; 0047 args << QLatin1String("init"); 0048 if (!m_repoNameEdit->text().isEmpty()) { 0049 args << m_repoNameEdit->text(); 0050 } 0051 process.setWorkingDirectory(m_workingDirectory); 0052 process.start(QLatin1String("hg"), args); 0053 process.waitForFinished(); 0054 0055 if (process.exitCode() == 0 && process.exitStatus() == QProcess::NormalExit) { 0056 QDialog::done(r); 0057 } 0058 else { 0059 KMessageBox::error(this, xi18nc("error message", "Error creating repository!")); 0060 } 0061 } 0062 else { 0063 QDialog::done(r); 0064 } 0065 } 0066 0067 0068 0069 #include "moc_createdialog.cpp"