File indexing completed on 2024-04-28 05:42:10

0001 /***************************************************************************
0002  *   Copyright (C) 2006-2009 by Rajko Albrecht                             *
0003  *   ral@alwins-world.de                                                   *
0004  *                                                                         *
0005  * This program is free software; you can redistribute it and/or           *
0006  * modify it under the terms of the GNU Lesser General Public              *
0007  * License as published by the Free Software Foundation; either            *
0008  * version 2.1 of the License, or (at your option) any later version.      *
0009  *                                                                         *
0010  * This program is distributed in the hope that it will be useful,         *
0011  * but WITHOUT ANY WARRANTY; without even the implied warranty of          *
0012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU       *
0013  * Lesser General Public License for more details.                         *
0014  *                                                                         *
0015  * You should have received a copy of the GNU Lesser General Public        *
0016  * License along with this program (in the file LGPL.txt); if not,         *
0017  * write to the Free Software Foundation, Inc., 51 Franklin St,            *
0018  * Fifth Floor, Boston, MA  02110-1301  USA                                *
0019  *                                                                         *
0020  * This software consists of voluntary contributions made by many          *
0021  * individuals.  For exact contribution history, see the revision          *
0022  * history and logs, available at https://commits.kde.org/kdesvn.          *
0023  ***************************************************************************/
0024 #ifndef SVNQT_INFO_ENTRY_H
0025 #define SVNQT_INFO_ENTRY_H
0026 
0027 #include <svnqt/conflictdescription.h>
0028 #include <svnqt/datetime.h>
0029 #include <svnqt/helper.h>
0030 #include <svnqt/lock_entry.h>
0031 #include <svnqt/revision.h>
0032 #include <svnqt/svnqttypes.h>
0033 
0034 #include <QString>
0035 #include <QUrl>
0036 
0037 #include <svn_version.h>
0038 
0039 struct svn_client_info2_t;
0040 
0041 namespace svn
0042 {
0043 class SVNQT_EXPORT InfoEntry
0044 {
0045 public:
0046     static const qlonglong SVNQT_SIZE_UNKNOWN = -1;
0047     InfoEntry();
0048     InfoEntry(const svn_client_info2_t *, const char *path);
0049     InfoEntry(const svn_client_info2_t *, const QString &path);
0050     ~InfoEntry();
0051 
0052     void init(const svn_client_info2_t *, const char *path);
0053     void init(const svn_client_info2_t *, const QString &path);
0054 
0055     DateTime cmtDate() const;
0056     DateTime textTime() const;
0057     DateTime propTime() const;
0058     bool hasWc() const;
0059     /**
0060      * @return lock for that entry
0061      * @since subversion 1.2
0062      */
0063     const LockEntry &lockEntry() const;
0064     /**
0065      * @return last commit author of this file
0066      */
0067     const QString &cmtAuthor() const;
0068     const QString &Name() const;
0069 
0070     const QString &checksum() const;
0071     const ConflictDescriptionList &conflicts() const;
0072     const QUrl &copyfromUrl() const;
0073     const QString &prejfile() const;
0074     const QUrl &reposRoot() const;
0075     const QUrl &url() const;
0076     const QString &uuid() const;
0077     svn_node_kind_t kind() const;
0078     const Revision &cmtRev() const;
0079     const Revision &copyfromRev() const;
0080     const Revision &revision() const;
0081     svn_wc_schedule_t Schedule() const;
0082 
0083     qlonglong size() const;
0084     qlonglong working_size() const;
0085     const QByteArray &changeList() const;
0086     svn::Depth depth() const;
0087 
0088     bool isDir() const;
0089 
0090 protected:
0091     DateTime m_last_changed_date;
0092     DateTime m_text_time;
0093     DateTime m_prop_time;
0094     bool m_hasWc;
0095     LockEntry m_Lock;
0096     QString m_name;
0097     QString m_checksum;
0098     ConflictDescriptionList m_conflicts;
0099     QUrl m_copyfrom_url;
0100     QString m_last_author;
0101     QString m_prejfile;
0102     QUrl m_repos_root;
0103     QUrl m_url;
0104     QString m_UUID;
0105     svn_node_kind_t m_kind;
0106     Revision m_copy_from_rev;
0107     Revision m_last_changed_rev;
0108     Revision m_revision;
0109     svn_wc_schedule_t m_schedule;
0110 
0111     qlonglong m_size;
0112     qlonglong m_working_size;
0113     QByteArray m_changeList;
0114     svn::Depth m_depth;
0115 
0116 protected:
0117     void init();
0118 };
0119 }
0120 #endif