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

0001 /***************************************************************************
0002  *   Copyright (C) 2007-2010 by Rajko Albrecht  ral@alwins-world.de        *
0003  *   https://kde.org/applications/development/org.kde.kdesvn               *
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 
0025 #ifndef CLIENT_UPDATE_PARAMETER_H
0026 #define CLIENT_UPDATE_PARAMETER_H
0027 
0028 #include <QScopedPointer>
0029 #include <svnqt/revision.h>
0030 #include <svnqt/svnqt_defines.h>
0031 #include <svnqt/svnqttypes.h>
0032 #include <svnqt/targets.h>
0033 
0034 namespace svn
0035 {
0036 
0037 struct UpdateParameterData;
0038 
0039 class SVNQT_EXPORT UpdateParameter
0040 {
0041 private:
0042     //! internal data
0043     QScopedPointer<UpdateParameterData> _data;
0044 
0045 public:
0046     //! constructor
0047     UpdateParameter();
0048     //! non-virtual destructor
0049     ~UpdateParameter();
0050 
0051     //! returns the targets for update
0052     const Targets &targets() const;
0053     //! set the targets for update
0054     UpdateParameter &targets(const Targets &_target);
0055 
0056     //! returns the revision the update should work on
0057     const Revision &revision() const;
0058     //! set the revision the update should work on
0059     UpdateParameter &revision(const Revision &rev);
0060 
0061     //! return depth of update operation
0062     /*!
0063      * \sa svn::Depth
0064      */
0065     Depth depth() const;
0066     //! set depth of update operation
0067     /*!
0068      * \sa svn::Depth
0069      */
0070     UpdateParameter &depth(Depth depth);
0071 
0072     //! return if update should ignore external definitions
0073     bool ignore_externals() const;
0074     //! set if update should ignore external definitions
0075     UpdateParameter &ignore_externals(bool);
0076 
0077     bool allow_unversioned() const;
0078     UpdateParameter &allow_unversioned(bool);
0079 
0080     bool sticky_depth() const;
0081     UpdateParameter &sticky_depth(bool);
0082 
0083     bool make_parents() const;
0084     UpdateParameter &make_parents(bool);
0085 
0086     bool add_as_modification() const;
0087     UpdateParameter &add_as_modification(bool);
0088 };
0089 }
0090 
0091 #endif // CLIENT_UPDATE_PARAMETER_H