From e2f541c98dfa4081fa3ab3d28f08ea2309281884 Mon Sep 17 00:00:00 2001 From: tpearson Date: Mon, 15 Mar 2010 17:32:48 +0000 Subject: Added KDE3 version of kdesvn git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kdesvn@1103685 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- src/svnqt/stringarray.cpp | 121 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 src/svnqt/stringarray.cpp (limited to 'src/svnqt/stringarray.cpp') 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 +// apr api +#include +#include + +/*! + \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; +} -- cgit v1.2.3