File indexing completed on 2024-04-28 04:38:51

0001 /*
0002     SPDX-FileCopyrightText: 2019 José Millán Soto <jmillan@kde-espana.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "rebasedialog.h"
0008 #include "gitplugin.h"
0009 #include "ui_rebasedialog.h"
0010 
0011 #include <vcs/models/brancheslistmodel.h>
0012 #include <vcs/dvcs/dvcsjob.h>
0013 #include <interfaces/icore.h>
0014 #include <interfaces/iruncontroller.h>
0015 #include <QDir>
0016 #include <QUrl>
0017 #include <QComboBox>
0018 #include <KLocalizedString>
0019 
0020 using namespace KDevelop;
0021 
0022 RebaseDialog::RebaseDialog(GitPlugin* plugin, const QUrl &repository, QWidget* parent)
0023     : QDialog(parent), m_plugin(plugin), m_repository(repository)
0024 {
0025     setWindowTitle(i18nc("@title:window", "Branch Selection"));
0026 
0027     m_ui = new Ui::RebaseDialog();
0028     m_ui->setupUi(this);
0029 
0030     m_model = new BranchesListModel(this);
0031     m_model->initialize(plugin, repository);
0032     m_ui->branches->setModel(m_model);
0033     connect(m_ui->rebaseButton, &QPushButton::clicked, this, &RebaseDialog::performRebase);
0034 }
0035 
0036 RebaseDialog::~RebaseDialog()
0037 {
0038     delete m_ui;
0039 }
0040 
0041 void RebaseDialog::performRebase()
0042 {
0043     QString selectedBranch = m_ui->branches->currentText();
0044     VcsJob *job = m_plugin->rebase(m_repository, selectedBranch);
0045     ICore::self()->runController()->registerJob(job);
0046     accept();
0047 }
0048 
0049 #include "moc_rebasedialog.cpp"