File indexing completed on 2024-04-21 04:34:34

0001 /*
0002     This file is part of KDevelop
0003 
0004     Copyright 2017 Sergey Kalinichev <kalinichev.so.0@gmail.com>
0005 
0006     This library is free software; you can redistribute it and/or
0007     modify it under the terms of the GNU Library General Public
0008     License as published by the Free Software Foundation; either
0009     version 2 of the License, or (at your option) any later version.
0010 
0011     This library is distributed in the hope that it will be useful,
0012     but WITHOUT ANY WARRANTY; without even the implied warranty of
0013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0014     Library General Public License for more details.
0015 
0016     You should have received a copy of the GNU Library General Public License
0017     along with this library; see the file COPYING.LIB.  If not, write to
0018     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0019     Boston, MA 02110-1301, USA.
0020 */
0021 
0022 #pragma once
0023 
0024 #include <vcs/vcsjob.h>
0025 
0026 #include <QDir>
0027 #include <QPointer>
0028 
0029 class MercurialPlugin;
0030 
0031 class MercurialJob : public KDevelop::VcsJob
0032 {
0033 public:
0034     MercurialJob(const QDir& workingDir, MercurialPlugin* parent, JobType jobType);
0035 
0036     QVariant fetchResults() override;
0037     KDevelop::VcsJob::JobStatus status() const override;
0038     KDevelop::IPlugin *vcsPlugin() const override;
0039 
0040 protected:
0041     bool doKill() override;
0042 
0043     void setFail();
0044     void setSuccess();
0045 
0046     KDevelop::VcsJob::JobStatus m_status;
0047     mutable QPointer<KJob> m_job;
0048     QDir m_workingDir;
0049 };