summaryrefslogtreecommitdiffstats
path: root/tqtinterface/qt4/src/tools/tqstringlist.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tqtinterface/qt4/src/tools/tqstringlist.cpp')
-rw-r--r--tqtinterface/qt4/src/tools/tqstringlist.cpp534
1 files changed, 0 insertions, 534 deletions
diff --git a/tqtinterface/qt4/src/tools/tqstringlist.cpp b/tqtinterface/qt4/src/tools/tqstringlist.cpp
deleted file mode 100644
index 502b5dc..0000000
--- a/tqtinterface/qt4/src/tools/tqstringlist.cpp
+++ /dev/null
@@ -1,534 +0,0 @@
-/****************************************************************************
-**
-** Implementation of TQStringList
-**
-** Created : 990406
-**
-** Copyright (C) 2010 Timothy Pearson and (C) 1992-2008 Trolltech ASA.
-**
-** This file is part of the tools module of the TQt GUI Toolkit.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "tqstringlist.h"
-
-#ifndef TQT_NO_STRINGLIST
-#include "tqregexp.h"
-#include "tqstrlist.h"
-#include "tqdatastream.h"
-#include "tqtl.h"
-
-#ifdef USE_QT4
-
-#include <Qt/qstringlist.h>
-
-#endif
-
-/*!
- \class TQStringList tqstringlist.h
- \reentrant
- \brief The TQStringList class provides a list of strings.
-
- \ingroup tools
- \ingroup shared
- \ingroup text
- \mainclass
-
- It is used to store and manipulate strings that logically belong
- together. Essentially TQStringList is a TQValueList of TQString
- objects. Unlike TQStrList, which stores pointers to characters,
- TQStringList holds real TQString objects. It is the class of choice
- whenever you work with Unicode strings. TQStringList is part of the
- \link tqtl.html TQt Template Library\endlink.
-
- Like TQString itself, TQStringList objects are implicitly shared, so
- passing them around as value-parameters is both fast and safe.
-
- Strings can be added to a list using append(), operator+=() or
- operator<<(), e.g.
- \code
- TQStringList fonts;
- fonts.append( "Times" );
- fonts += "Courier";
- fonts += "Courier New";
- fonts << "Helvetica [Cronyx]" << "Helvetica [Adobe]";
- \endcode
-
- String lists have an iterator, TQStringList::Iterator(), e.g.
- \code
- for ( TQStringList::Iterator it = fonts.begin(); it != fonts.end(); ++it ) {
- cout << *it << ":";
- }
- cout << endl;
- // Output:
- // Times:Courier:Courier New:Helvetica [Cronyx]:Helvetica [Adobe]:
- \endcode
-
- Many TQt functions return string lists by value; to iterate over
- these you should make a copy and iterate over the copy.
-
- You can concatenate all the strings in a string list into a single
- string (with an optional separator) using join(), e.g.
- \code
- TQString allFonts = fonts.join( ", " );
- cout << allFonts << endl;
- // Output:
- // Times, Courier, Courier New, Helvetica [Cronyx], Helvetica [Adobe]
- \endcode
-
- You can sort the list with sort(), and extract a new list which
- contains only those strings which contain a particular substring
- (or match a particular regular expression) using the grep()
- functions, e.g.
- \code
- fonts.sort();
- cout << fonts.join( ", " ) << endl;
- // Output:
- // Courier, Courier New, Helvetica [Adobe], Helvetica [Cronyx], Times
-
- TQStringList helveticas = fonts.grep( "Helvetica" );
- cout << helveticas.join( ", " ) << endl;
- // Output:
- // Helvetica [Adobe], Helvetica [Cronyx]
- \endcode
-
- Existing strings can be split into string lists with character,
- string or regular expression separators, e.g.
- \code
- TQString s = "Red\tGreen\tBlue";
- TQStringList colors = TQStringList::split( "\t", s );
- cout << colors.join( ", " ) << endl;
- // Output:
- // Red, Green, Blue
- \endcode
-*/
-
-/*!
- \fn TQStringList::TQStringList()
-
- Creates an empty string list.
-*/
-
-/*!
- \fn TQStringList::TQStringList( const TQStringList& l )
-
- Creates a copy of the list \a l. This function is very fast
- because TQStringList is implicitly shared. In most situations this
- acts like a deep copy, for example, if this list or the original
- one or some other list referencing the same shared data is
- modified, the modifying list first makes a copy, i.e.
- copy-on-write.
- In a threaded environment you may require a real deep copy
- \omit see \l TQDeepCopy\endomit.
-*/
-
-/*!
- \fn TQStringList::TQStringList (const TQString & i)
-
- Constructs a string list consisting of the single string \a i.
- Longer lists are easily created as follows:
-
- \code
- TQStringList items;
- items << "Buy" << "Sell" << "Update" << "Value";
- \endcode
-*/
-
-/*!
- \fn TQStringList::TQStringList (const char* i)
-
- Constructs a string list consisting of the single Latin-1 string \a i.
-*/
-
-/*!
- \fn TQStringList::TQStringList( const TQValueList<TQString>& l )
-
- Constructs a new string list that is a copy of \a l.
-*/
-
-/*!
- Sorts the list of strings in ascending case-sensitive order.
-
- Sorting is very fast. It uses the \link tqtl.html TQt Template
- Library's\endlink efficient HeapSort implementation that has a
- time complexity of O(n*log n).
-
- If you want to sort your strings in an arbitrary order consider
- using a TQMap. For example you could use a TQMap\<TQString,TQString\>
- to create a case-insensitive ordering (e.g. mapping the lowercase
- text to the text), or a TQMap\<int,TQString\> to sort the strings by
- some integer index, etc.
-*/
-void TQStringList::sort()
-{
- qHeapSort( *this );
-}
-
-/*!
- \overload
-
- This version of the function uses a TQChar as separator, rather
- than a regular expression.
-
- \sa join() TQString::section()
-*/
-
-TQStringList TQStringList::split( const TQChar &sep, const TQString &str,
- bool allowEmptyEntries )
-{
- return split( TQString(sep), str, allowEmptyEntries );
-}
-
-/*!
- \overload
-
- This version of the function uses a TQString as separator, rather
- than a regular expression.
-
- If \a sep is an empty string, the return value is a list of
- one-character strings: split( TQString( "" ), "four" ) returns the
- four-item list, "f", "o", "u", "r".
-
- If \a allowEmptyEntries is TRUE, a null string is inserted in
- the list wherever the separator matches twice without intervening
- text.
-
- \sa join() TQString::section()
-*/
-
-TQStringList TQStringList::split( const TQString &sep, const TQString &str,
- bool allowEmptyEntries )
-{
- TQStringList lst;
-
- int j = 0;
- int i = str.find( sep, j );
-
- while ( i != -1 ) {
- if ( i > j && i <= (int)str.length() )
- lst << str.mid( j, i - j );
- else if ( allowEmptyEntries )
- lst << TQString::null;
- j = i + sep.length();
- i = str.find( sep, sep.length() > 0 ? j : j+1 );
- }
-
- int l = str.length() - 1;
- if ( str.mid( j, l - j + 1 ).length() > 0 )
- lst << str.mid( j, l - j + 1 );
- else if ( allowEmptyEntries )
- lst << TQString::null;
-
- return lst;
-}
-
-#ifndef TQT_NO_REGEXP
-/*!
- Splits the string \a str into strings wherever the regular
- expression \a sep occurs, and returns the list of those strings.
-
- If \a allowEmptyEntries is TRUE, a null string is inserted in
- the list wherever the separator matches twice without intervening
- text.
-
- For example, if you split the string "a,,b,c" on commas, split()
- returns the three-item list "a", "b", "c" if \a allowEmptyEntries
- is FALSE (the default), and the four-item list "a", "", "b", "c"
- if \a allowEmptyEntries is TRUE.
-
- If \a sep does not match anywhere in \a str, split() returns a
- single element list with the element containing the single string
- \a str.
-
- \sa join() TQString::section()
-*/
-
-TQStringList TQStringList::split( const TQRegExp &sep, const TQString &str,
- bool allowEmptyEntries )
-{
- TQStringList lst;
-
- TQRegExp tep = sep;
-
- int j = 0;
- int i = tep.search( str, j );
-
- while ( i != -1 ) {
- if ( str.mid( j, i - j ).length() > 0 )
- lst << str.mid( j, i - j );
- else if ( allowEmptyEntries )
- lst << TQString::null;
- if ( tep.matchedLength() == 0 )
- j = i + 1;
- else
- j = i + tep.matchedLength();
- i = tep.search( str, j );
- }
-
- int l = str.length() - 1;
- if ( str.mid( j, l - j + 1 ).length() > 0 )
- lst << str.mid( j, l - j + 1 );
- else if ( allowEmptyEntries )
- lst << TQString::null;
-
- return lst;
-}
-#endif
-
-/*!
- Returns a list of all the strings containing the substring \a str.
-
- If \a cs is TRUE, the grep is done case-sensitively; otherwise
- case is ignored.
-
- \code
- TQStringList list;
- list << "Bill Gates" << "John Doe" << "Bill Clinton";
- list = list.grep( "Bill" );
- // list == ["Bill Gates", "Bill Clinton"]
- \endcode
-
- \sa TQString::find()
-*/
-
-TQStringList TQStringList::grep( const TQString &str, bool cs ) const
-{
- TQStringList res;
- for ( TQStringList::ConstIterator it = begin(); it != end(); ++it )
- if ( (*it).contains(str, cs) )
- res << *it;
-
- return res;
-}
-
-#ifndef TQT_NO_REGEXP
-/*!
- \overload
-
- Returns a list of all the strings that match the regular
- expression \a rx.
-
- \sa TQString::find()
-*/
-
-TQStringList TQStringList::grep( const TQRegExp &rx ) const
-{
- TQStringList res;
- for ( TQStringList::ConstIterator it = begin(); it != end(); ++it )
- if ( (*it).find(rx) != -1 )
- res << *it;
-
- return res;
-}
-#endif
-
-/*!
- Replaces every occurrence of the string \a before in the strings
- that constitute the string list with the string \a after. Returns
- a reference to the string list.
-
- If \a cs is TRUE, the search is case sensitive; otherwise the
- search is case insensitive.
-
- Example:
- \code
- TQStringList list;
- list << "alpha" << "beta" << "gamma" << "epsilon";
- list.gres( "a", "o" );
- // list == ["olpho", "beto", "gommo", "epsilon"]
- \endcode
-
- \sa TQString::replace()
-*/
-TQStringList& TQStringList::gres( const TQString &before, const TQString &after,
- bool cs )
-{
- TQStringList::Iterator it = begin();
- while ( it != end() ) {
- (*it).replace( before, after, cs );
- ++it;
- }
- return *this;
-}
-
-#ifndef TQT_NO_REGEXP_CAPTURE
-/*!
- \overload
-
- Replaces every occurrence of the regexp \a rx in the string
- with \a after. Returns a reference to the string list.
-
- Example:
- \code
- TQStringList list;
- list << "alpha" << "beta" << "gamma" << "epsilon";
- list.gres( TQRegExp("^a"), "o" );
- // list == ["olpha", "beta", "gamma", "epsilon"]
- \endcode
-
- For regexps containing \link tqregexp.html#capturing-text
- capturing parentheses \endlink, occurrences of <b>\\1</b>,
- <b>\\2</b>, ..., in \a after are replaced with \a{rx}.cap(1),
- cap(2), ...
-
- Example:
- \code
- TQStringList list;
- list << "Bill Clinton" << "Gates, Bill";
- list.gres( TQRegExp("^(.*), (.*)$"), "\\2 \\1" );
- // list == ["Bill Clinton", "Bill Gates"]
- \endcode
-
- \sa TQString::replace()
-*/
-TQStringList& TQStringList::gres( const TQRegExp &rx, const TQString &after )
-{
- TQStringList::Iterator it = begin();
- while ( it != end() ) {
- (*it).replace( rx, after );
- ++it;
- }
- return *this;
-}
-
-#endif
-
-/*!
- Joins the string list into a single string with each element
- separated by the string \a sep (which can be empty).
-
- \sa split()
-*/
-TQString TQStringList::join( const TQString &sep ) const
-{
- TQString res;
- bool alredy = FALSE;
- for ( TQStringList::ConstIterator it = begin(); it != end(); ++it ) {
- if ( alredy )
- res += sep;
- alredy = TRUE;
- res += *it;
- }
-
- return res;
-}
-
-#ifndef TQT_NO_DATASTREAM
-TQ_EXPORT TQDataStream &operator>>( TQDataStream & s, TQStringList& l )
-{
- return s >> (TQValueList<TQString>&)l;
-}
-
-TQ_EXPORT TQDataStream &operator<<( TQDataStream & s, const TQStringList& l )
-{
- return s << (const TQValueList<TQString>&)l;
-}
-#endif
-
-/*!
- Converts from an ASCII-TQStrList \a ascii to a TQStringList (Unicode).
-*/
-TQStringList TQStringList::fromStrList(const TQStrList& ascii)
-{
- TQStringList res;
- const char * s;
- for ( TQStrListIterator it(ascii); (s=it.current()); ++it )
- res << s;
- return res;
-}
-
-/*! \fn void TQStringList::detach()
- \reimp
-*/
-
-#ifdef USE_QT4
-
-// Interoperability
-// [FIXME]
-// These conversions are probably too weak
-
-#if 0
-/*!
- QT4 INTEROPERABILITY
-*/
-TQStringList::TQStringList( const QStringList &qs )
-{
- setAscii( TQString(qs).ascii() );
-}
-
-/*!
- QT4 INTEROPERABILITY
-*/
-TQStringList::operator QStringList() const
-{
- return QStringList::fromUtf8( this->utf8() );
-}
-#endif
-
-/*!
- QT4 INTEROPERABILITY
-*/
-TQStringList::operator QStringList() const
-{
- QStringList qn;
- for (int i = 0; i < size(); ++i) {
- qn.append(*at(i));
- }
- return qn;
-}
-
-/*!
- QT4 INTEROPERABILITY
-*/
-// TQStringList TQStringList::operator=( const QStringList qs )
-// {
-// TQStringList qn;
-// for (int i = 0; i < qs.size(); ++i) {
-// qn.append(qs.at(i));
-// }
-// return qn;
-// }
-
-/*!
- QT4 INTEROPERABILITY
-*/
-TQStringList TQStringList::convertFromQStringList( const QStringList qs )
-{
- TQStringList qn;
- for (int i = 0; i < qs.size(); ++i) {
- qn.append(qs.at(i));
- }
- return qn;
-}
-
-#endif // USE_QT4
-
-#endif //TQT_NO_STRINGLIST