File indexing completed on 2024-04-28 16:01:31

0001 /******************************************************************************
0002  * This file is part of the libqgit2 library
0003  *
0004  * This library is free software; you can redistribute it and/or
0005  * modify it under the terms of the GNU Lesser General Public
0006  * License as published by the Free Software Foundation; either
0007  * version 2.1 of the License, or (at your option) any later version.
0008  *
0009  * This library is distributed in the hope that it will be useful,
0010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012  * Lesser General Public License for more details.
0013  *
0014  * You should have received a copy of the GNU Lesser General Public
0015  * License along with this library; if not, write to the Free Software
0016  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
0017  */
0018 
0019 #ifndef LIBQGIT2_DIFFDELTA_H
0020 #define LIBQGIT2_DIFFDELTA_H
0021 
0022 #include "libqgit2_export.h"
0023 
0024 #include "git2.h"
0025 
0026 namespace LibQGit2 {
0027 
0028 class DiffFile;
0029 
0030 /**
0031  * @brief Wrapper class for git_diff_delta.
0032  *
0033  * @ingroup LibQGit2
0034  * @{
0035  */
0036 class LIBQGIT2_EXPORT DiffDelta
0037 {
0038 public:
0039     DiffDelta(const git_diff_delta *d);
0040 
0041     enum Type {
0042         Unknown = GIT_DELTA_UNMODIFIED - 1,  ///< unknown type
0043         Unmodified = GIT_DELTA_UNMODIFIED,   ///< no changes
0044         Added = GIT_DELTA_ADDED,             ///< entry does not exist in old version
0045         Deleted = GIT_DELTA_DELETED,         ///< entry does not exist in new version
0046         Modified = GIT_DELTA_MODIFIED,       ///< entry content changed between old and new
0047         Renamed = GIT_DELTA_RENAMED,         ///< entry was renamed between old and new
0048         Copied = GIT_DELTA_COPIED,           ///< entry was copied from another old entry
0049         Ignored = GIT_DELTA_IGNORED,         ///< entry is ignored item in workdir
0050         Untracked = GIT_DELTA_UNTRACKED,     ///< entry is untracked item in workdir
0051         Typechange = GIT_DELTA_TYPECHANGE,   ///< type of entry changed between old and new
0052     };
0053 
0054     /**
0055      * Gets the type of this delta.
0056      */
0057     Type type() const;
0058 
0059     /**
0060      * Returns the information of the file on the "old" side of the diff.
0061      */
0062     DiffFile oldFile() const;
0063 
0064     /**
0065      * Returns the information of the file on the "new" side of the diff.
0066      */
0067     DiffFile newFile() const;
0068 
0069 private:
0070     const git_diff_delta *m_diff_delta;
0071 };
0072 
0073 /** @} */
0074 
0075 }
0076 
0077 #endif // LIBQGIT2_DIFFDELTA_H