File indexing completed on 2024-05-05 04:41:01

0001 /*
0002     SPDX-FileCopyrightText: 2007 Andreas Pakulat <apaku@gmx.de>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef KDEVPLATFORM_PLUGIN_SVNINFOJOB_H
0008 #define KDEVPLATFORM_PLUGIN_SVNINFOJOB_H
0009 
0010 #include "svnjobbase.h"
0011 
0012 #include <QDateTime>
0013 #include <QUrl>
0014 
0015 #include <vcs/vcsrevision.h>
0016 
0017 class SvnInternalInfoJob;
0018 
0019 
0020 /// A structure which describes various system-generated metadata about
0021 /// a working-copy path or URL.
0022 class SvnInfoHolder
0023 {
0024 public:
0025     QString name;
0026     QUrl url;
0027     qlonglong rev;
0028     int kind;
0029     QUrl repoUrl;
0030     QString repouuid;
0031     qlonglong lastChangedRev;
0032     QDateTime lastChangedDate;
0033     QString lastChangedAuthor;
0034     int scheduled;
0035     QUrl copyFromUrl;
0036     qlonglong copyFromRevision;
0037     QDateTime textTime;
0038     QDateTime propertyTime;
0039     QString oldFileConflict;
0040     QString newFileConflict;
0041     QString workingCopyFileConflict;
0042     QString propertyRejectFile;
0043 
0044 };
0045 
0046 
0047 /// This is an svn internal class, it shouldn't be used outside of the svn
0048 /// plugin
0049 class SvnInfoJob : public SvnJobBaseImpl<SvnInternalInfoJob>
0050 {
0051     Q_OBJECT
0052 public:
0053     enum ProvideInformationType
0054     {
0055         AllInfo,
0056         RevisionOnly,
0057         RepoUrlOnly
0058     };
0059     explicit SvnInfoJob( KDevSvnPlugin* parent );
0060     QVariant fetchResults() override;
0061     void start() override;
0062     void setLocation( const QUrl &location );
0063     void setProvideInformation( ProvideInformationType );
0064     void setProvideRevisionType( KDevelop::VcsRevision::RevisionType );
0065 public Q_SLOTS:
0066     void setInfo( const SvnInfoHolder& );
0067 private:
0068     SvnInfoHolder m_info;
0069     ProvideInformationType m_provideInfo;
0070     KDevelop::VcsRevision::RevisionType m_provideRevisionType;
0071 
0072 };
0073 
0074 Q_DECLARE_METATYPE( SvnInfoHolder )
0075 
0076 #endif
0077