summaryrefslogtreecommitdiffstats
path: root/qtools/qdict.h
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2013-12-30 17:55:14 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2013-12-30 17:55:14 (GMT)
commit6e51abf63021dc9fe32c05f003232fe68a08591d (patch)
treee9fe6f526e4a2b22b1a55659331c15750969a019 /qtools/qdict.h
parent744d1ca52e25dfa9e3d656056d87ed7cb6320585 (diff)
downloadDoxygen-6e51abf63021dc9fe32c05f003232fe68a08591d.zip
Doxygen-6e51abf63021dc9fe32c05f003232fe68a08591d.tar.gz
Doxygen-6e51abf63021dc9fe32c05f003232fe68a08591d.tar.bz2
Reduced and improved functionality of QList
- operations on current index and node (next(), prev(), last(), first()) have been removed. - access to internal nodes has been removed. - old QList has been renamed to QInternalList for use inside qtools only. - added type safe compare, new, and delete operations (compareValues(), newValue(), deleteValue()). - add compareValues also to QDict for consistency. - changed doxygen's implementation to comply with the new QList and QDict interface.
Diffstat (limited to 'qtools/qdict.h')
-rw-r--r--qtools/qdict.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/qtools/qdict.h b/qtools/qdict.h
index 682b270..efc5bd0 100644
--- a/qtools/qdict.h
+++ b/qtools/qdict.h
@@ -52,7 +52,7 @@
#else
-template<class type> class Q_EXPORT QDict : public QGDict
+template<class type> class Q_EXPORT QDict : private QGDict
{
public:
QDict(int size=17, bool caseSensitive=TRUE)
@@ -61,26 +61,40 @@ public:
~QDict() { clear(); }
QDict<type> &operator=(const QDict<type> &d)
{ return (QDict<type>&)QGDict::operator=(d); }
+
+ // capacity
uint count() const { return QGDict::count(); }
uint size() const { return QGDict::size(); }
bool isEmpty() const { return QGDict::count() == 0; }
+ // modifiers
void insert( const QString &k, const type *d )
{ QGDict::look_string(k,(Item)d,1); }
void replace( const QString &k, const type *d )
{ QGDict::look_string(k,(Item)d,2); }
bool remove( const QString &k ) { return QGDict::remove_string(k); }
type *take( const QString &k ) { return (type *)QGDict::take_string(k); }
+ void clear() { QGDict::clear(); }
+ void resize( uint n ) { QGDict::resize(n); }
+
+ // search
type *find( const QString &k ) const
{ return (type *)((QGDict*)this)->QGDict::look_string(k,0,0); }
type *operator[]( const QString &k ) const
{ return (type *)((QGDict*)this)->QGDict::look_string(k,0,0); }
- void clear() { QGDict::clear(); }
- void resize( uint n ) { QGDict::resize(n); }
+ // operations
void statistics() const { QGDict::statistics(); }
private:
void deleteItem( Item d );
+
+ // new to be reimplemented methods
+ virtual int compareValues(const type *t1,const type *t2) const
+ { return const_cast<QDict<type>*>(this)->QGDict::compareItems((QCollection::Item)t1,(QCollection::Item)t2); }
+
+ // reimplemented methods
+ virtual int compareItems(QCollection::Item i1,QCollection::Item i2)
+ { return compareValues((const type*)i1,(const type*)i2); }
};
#if defined(Q_DELETING_VOID_UNDEFINED)