diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-03-15 17:32:48 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-03-15 17:32:48 +0000 |
commit | e2f541c98dfa4081fa3ab3d28f08ea2309281884 (patch) | |
tree | cb721a55bc88753ddeb9754dc98ef45e2850ce30 /src/svnqt/stringarray.cpp | |
download | tdesvn-e2f541c98dfa4081fa3ab3d28f08ea2309281884.tar.gz tdesvn-e2f541c98dfa4081fa3ab3d28f08ea2309281884.zip |
Added KDE3 version of kdesvn
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kdesvn@1103685 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'src/svnqt/stringarray.cpp')
-rw-r--r-- | src/svnqt/stringarray.cpp | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/src/svnqt/stringarray.cpp b/src/svnqt/stringarray.cpp new file mode 100644 index 0000000..bdac55b --- /dev/null +++ b/src/svnqt/stringarray.cpp @@ -0,0 +1,121 @@ +/*************************************************************************** + * Copyright (C) 2006-2008 by Rajko Albrecht * + * ral@alwins-world.de * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +#include "svnqt/stringarray.hpp" +#include "svnqt/pool.hpp" + +#include <svn_types.h> +// apr api +#include <apr_pools.h> +#include <apr_strings.h> + +/*! + \fn svn::StringArray::StringArray() + */ + svn::StringArray::StringArray() + :m_content() +{ + setNull(true); +} + + +/*! + \fn svn::StringArray::StringArray(const QStringList&) + */ +svn::StringArray::StringArray(const QStringList&aList) + :m_content(aList) +{ + setNull(false); +} + +/*! + \fn svn::StringArray::StringArray(const apr_array_header_t * apr_targets) + */ +svn::StringArray::StringArray(const apr_array_header_t * apr_targets) + :m_content() +{ + int i; + for (i = 0; i < apr_targets->nelts; i++) + { + const char ** target = + &APR_ARRAY_IDX (apr_targets, i, const char *); + + m_content.push_back (QString::FROMUTF8(*target)); + } +} + + +/*! + \fn svn::StringArray::size()const + */ +size_t svn::StringArray::size()const +{ + if (isNull()) { + return 0; + } + return m_content.size (); +} + + +/*! + \fn svn::StringArray::operator[](size_t which) + */ +const QString& svn::StringArray::operator[](size_t which) +{ + return m_content[which]; +} + + +/*! + \fn svn::StringArray::array (const Pool & pool) const + */ +apr_array_header_t * svn::StringArray::array (const Pool & pool) const +{ + if (isNull()) { + return 0; + } + QStringList::const_iterator it; + + apr_pool_t *apr_pool = pool.pool (); + apr_array_header_t *apr_targets = + apr_array_make (apr_pool,m_content.size(),sizeof (const char *)); + + for (it = m_content.begin (); it != m_content.end (); it++) + { + QByteArray s = (*it).TOUTF8(); + char * t2 = apr_pstrndup (apr_pool,s,s.size()); + + (*((const char **) apr_array_push (apr_targets))) = t2; + } + return apr_targets; +} + +bool svn::StringArray::isNull()const +{ + return m_isNull; +} + +void svn::StringArray::setNull(bool _n) +{ + if (_n) { + m_content.clear(); + } + m_isNull = _n; +} |