File indexing completed on 2024-05-12 17:16:23
0001 /*************************************************************************** 0002 * Copyright (C) 2007-2009 by Rajko Albrecht ral@alwins-world.de * 0003 * http://kdesvn.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 http://kdesvn.alwins-world.de. * 0023 ***************************************************************************/ 0024 0025 #ifndef DIFF_OPTIONS_HPP 0026 #define DIFF_OPTIONS_HPP 0027 0028 #include <svnqt/svnqt_defines.h> 0029 0030 struct svn_diff_file_options_t; 0031 class QStringList; 0032 0033 namespace svn 0034 { 0035 class Pool; 0036 /** c++ wrapper for svn_diffoptions_t 0037 * 0038 * This is needed until svnqt stops support for subversion prior 1.4 0039 */ 0040 class SVNQT_EXPORT DiffOptions 0041 { 0042 public: 0043 enum IgnoreSpace { 0044 IgnoreSpaceNone, 0045 IgnoreSpaceChange, 0046 IgnoreSpaceAll 0047 }; 0048 protected: 0049 DiffOptions::IgnoreSpace _ignorespace = DiffOptions::IgnoreSpaceNone; 0050 bool _ignoreeol = false; 0051 bool _showc = false; 0052 0053 void init(const svn_diff_file_options_t *options); 0054 0055 public: 0056 DiffOptions() = default; 0057 /** Initialize options with values depending on options. 0058 * Supported types are: 0059 * - --ignore-space-change, -b 0060 * - --ignore-all-space, -w 0061 * - --ignore-eol-style 0062 * - --unified, -u (for compatibility, does nothing). 0063 * @sa svn_diff_file_options_parse 0064 */ 0065 explicit DiffOptions(const QStringList &options); 0066 0067 /** Initialize options with values depending on options. 0068 * Only if build against subversion 1.4 or newer. 0069 */ 0070 explicit DiffOptions(const svn_diff_file_options_t *options); 0071 0072 svn_diff_file_options_t *options(const Pool &pool)const; 0073 }; 0074 } 0075 0076 #endif