00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00024
00025 #ifndef QVINDEXEDSTRINGLIST_H
00026 #define QVINDEXEDSTRINGLIST_H
00027
00028 #include <QStringList>
00029 #include <QMetaType>
00030
00034
00035 #ifndef DOXYGEN_IGNORE_THIS
00036 class QVIndexedStringList: public QStringList
00037 {
00038 private:
00039 int index;
00040
00041 public:
00042 QVIndexedStringList() : QStringList(), index(-1) { }
00043 QVIndexedStringList( const QVIndexedStringList& l ) : QStringList(l), index(l.index) { }
00044 QVIndexedStringList( const QStringList& l ) : QStringList(l), index(l.isEmpty()? -1 : 0) { }
00045 QVIndexedStringList( const QString& i ) { append(i); index = 0; }
00046
00047
00048
00049 void sort();
00050 QVIndexedStringList filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
00051 #ifndef QT_NO_REGEXP
00052 QVIndexedStringList filter(const QRegExp &rx) const;
00053 #endif
00054 QVIndexedStringList operator+(const QVIndexedStringList &other) const;
00055
00056
00057
00058 int getIndex() const { return index; }
00059 QString getCurrent() const;
00060 bool setIndex(int i);
00061 bool incIndex();
00062 bool decIndex();
00063 void append(const QString &str);
00064 };
00065
00066 Q_DECLARE_METATYPE(QVIndexedStringList);
00067 #endif
00068 #endif
00069