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