Diffstat (limited to 'noncore/apps/tableviewer/db/common.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/apps/tableviewer/db/common.cpp | 165 |
1 files changed, 81 insertions, 84 deletions
diff --git a/noncore/apps/tableviewer/db/common.cpp b/noncore/apps/tableviewer/db/common.cpp index b58af85..c35dbea 100644 --- a/noncore/apps/tableviewer/db/common.cpp +++ b/noncore/apps/tableviewer/db/common.cpp @@ -15,10 +15,10 @@ ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** -**********************************************************************/ -#include "common.h" +**********************************************************************/ +#include "common.h" #include "datacache.h" /* OPIE */ #include <opie2/odebug.h> @@ -87,15 +87,15 @@ int parseNextNumber(QString *q) { int QStringVector::compareItems(Item a, Item b) { QString *qa = (QString *)a; QString *qb = (QString *)b; - + return QString::compare(*qa, *qb); } /*! \class TVVariant - A way of abstracting void * and keeping information on + A way of abstracting void * and keeping information on the keytypes and behaviours in one place */ TVVariantPrivate::TVVariantPrivate() @@ -319,9 +319,9 @@ void TVVariant::load(QDataStream &s ) d->value.i = x; } break; default: - ofatal << "Unrecognized data type" << oendl; + ofatal << "Unrecognized data type" << oendl; } } void TVVariant::save( QDataStream &s ) const @@ -381,9 +381,9 @@ const QString TVVariant::toString() const case Date: return ((QDate*)d->value.ptr)->toString(); case Time: return ((QTime*)d->value.ptr)->toString(); - case Int: + case Int: return QString::number(d->value.i); case Invalid: default: return QString::null; @@ -423,18 +423,18 @@ const QDate TVVariant::toDate() const if (!QDate::isValid(year, month, day)) return QDate(); return QDate(year, month, day); } - + return QDate(); } const QTime TVVariant::toTime() const { if(d->typ == Time) return *((QTime *)d->value.ptr); - + if(d->typ == String) { QString q = toString(); int hour = parseNextNumber(&q); int minute = parseNextNumber(&q); @@ -453,9 +453,9 @@ const QTime TVVariant::toTime() const *this = TVVariant( to##f() ); \ else \ detach(); \ return *((Q##f*)d->value.ptr); } - + TV_VARIANT_AS(String) TV_VARIANT_AS(Date) TV_VARIANT_AS(Time) @@ -559,9 +559,9 @@ bool TVVariant::operator>( const TVVariant &v ) const bool TVVariant::closer(TVVariant n, TVVariant o) { /* Nothing is close to an invalid, so nothing can be closer */ if(d->typ == Invalid) - return FALSE; + return FALSE; /* can't be closer if of different type */ if(n.type() != type()) return FALSE; @@ -571,9 +571,9 @@ bool TVVariant::closer(TVVariant n, TVVariant o) return TRUE; switch(type()){ case String: { - /* case for strings is close is a substring.. closer is + /* case for strings is close is a substring.. closer is * earlier alphabetically */ QString qs1 = n.toString().lower(); QString qs2 = o.toString().lower(); QString qsv = toString().lower(); @@ -581,9 +581,9 @@ bool TVVariant::closer(TVVariant n, TVVariant o) if (!qs1.startsWith(qsv)) return FALSE; /* contains sub-str, if later than is not closer */ - if(QString::compare(qs1, qs2) > 0) + if(QString::compare(qs1, qs2) > 0) return FALSE; return TRUE; } case Int: { @@ -592,15 +592,15 @@ bool TVVariant::closer(TVVariant n, TVVariant o) int i2 = o.toInt(); int iv = toInt(); int diff1 = (i1 - iv); - if (diff1 < 0) + if (diff1 < 0) diff1 = -diff1; int diff2 = (i2 - iv); - if (diff2 < 0) + if (diff2 < 0) diff2 = -diff2; - if (diff1 < diff2) + if (diff1 < diff2) return TRUE; return FALSE; } case Date: { @@ -609,12 +609,12 @@ bool TVVariant::closer(TVVariant n, TVVariant o) QDate iv = toDate(); /* definition of closer is the least difference in days */ int diff1 = i1.daysTo(iv); - if (diff1 < 0) + if (diff1 < 0) diff1 = -diff1; int diff2 = i2.daysTo(iv); - if (diff2 < 0) + if (diff2 < 0) diff2 = -diff2; if (diff1 < diff2) return TRUE; @@ -626,12 +626,12 @@ bool TVVariant::closer(TVVariant n, TVVariant o) QTime iv = toTime(); /* definition of closer is the least difference in days */ int diff1 = i1.msecsTo(iv); - if (diff1 < 0) + if (diff1 < 0) diff1 = -diff1; int diff2 = i2.msecsTo(iv); - if (diff2 < 0) + if (diff2 < 0) diff2 = -diff2; if (diff1 < diff2) return TRUE; return FALSE; @@ -648,26 +648,26 @@ bool TVVariant::closer(TVVariant n, TVVariant o) bool TVVariant::close(TVVariant n) { /* Nothing is close to an invalid, so nothing can be closer */ if(type() == Invalid) - return FALSE; + return FALSE; /* can't be close if of different type */ if(n.type() != type()) return FALSE; switch(type()){ case String: { - /* case for strings is close is a substring.. closer is + /* case for strings is close is a substring.. closer is * earlier alphabetically */ QString qs1 = n.toString().lower(); QString qsv = toString().lower(); if (!qs1.startsWith(qsv)) return FALSE; return TRUE; } - case Int: + case Int: case Date: case Time: return TRUE; default: @@ -680,25 +680,25 @@ bool TVVariant::close(TVVariant n) /*! \class Key \brief document me! - + document me! */ Key::Key() : kname(), kexample(), kflags(0) { } Key::Key(QString name, TVVariant example, int flags) : - kname(name), kexample(example), kflags(flags) { } + kname(name), kexample(example), kflags(flags) { } Key::Key(const Key &other) { kname = other.kname; kexample = other.kexample; kflags = other.kflags; } -Key& Key::operator=(const Key& key) +Key& Key::operator=(const Key& key) { kname = key.kname; kexample = key.kexample; kflags = key.kflags; @@ -776,15 +776,15 @@ void Key::setNewFlag(bool v) /*! Constructs a KeyList */ -KeyList::KeyList() : QIntDict<Key>(20) +KeyList::KeyList() : QIntDict<Key>(20) { setAutoDelete(TRUE); } /* Should be deep copy, but isn't */ -KeyList::KeyList(const KeyList &k) : QIntDict<Key>(k) +KeyList::KeyList(const KeyList &k) : QIntDict<Key>(k) { KeyListIterator it(k); while(it.current()) { replace(it.currentKey(), new Key(*it.current())); @@ -821,9 +821,9 @@ bool KeyList::operator!=(const KeyList &other) /*! Returns the number of keys stored in the KeyList */ -int KeyList::getNumFields() const +int KeyList::getNumFields() const { return count(); } @@ -846,29 +846,28 @@ int KeyList::addKey(QString name, TVVariant::KeyType type) { /* generate a valid type for the example? */ TVVariant e = TVVariant("0"); switch(type) { - case TVVariant::String: + case TVVariant::String: return addKey(name, TVVariant("<undefined>").asString()); break; - case TVVariant::Date: + case TVVariant::Date: return addKey(name, TVVariant(QDate::currentDate()).asDate()); break; - case TVVariant::Time: + case TVVariant::Time: return addKey(name, TVVariant(QTime(0,0,0)).toTime()); break; - case TVVariant::Int: + case TVVariant::Int: return addKey(name, TVVariant(0).toInt()); break; default: - qWarning(QObject::tr("KeyList::addKey() Cannot make default " - "value for type %1, Key not added.").arg(type)); + owarn << "KeyList::addKey() Cannot make default value for type " << type << ", Key not added." << oendl; break; } return -1; } -void KeyList::setKeyFlags(int i, int flag) +void KeyList::setKeyFlags(int i, int flag) { if(find(i)) find(i)->setFlags(flag); } @@ -879,30 +878,30 @@ int KeyList::getKeyFlags(int i) const return find(i)->flags(); return 0; } -bool KeyList::checkNewFlag(int i) const +bool KeyList::checkNewFlag(int i) const { if (find(i)) return find(i)->newFlag(); return false; } -void KeyList::setNewFlag(int i, bool f) +void KeyList::setNewFlag(int i, bool f) { if(!find(i)) return; find(i)->setNewFlag(f); } -bool KeyList::checkDeleteFlag(int i) const +bool KeyList::checkDeleteFlag(int i) const { if (find(i)) return find(i)->delFlag(); return false; } -void KeyList::setDeleteFlag(int i, bool f) +void KeyList::setDeleteFlag(int i, bool f) { if(!find(i)) return; find(i)->setDelFlag(f); @@ -917,9 +916,9 @@ QString KeyList::getKeyName(int i) const return find(i)->name(); return QString(); } -void KeyList::setKeyName(int i, const QString &n) +void KeyList::setKeyName(int i, const QString &n) { if(find(i)) find(i)->setName(n); } @@ -933,9 +932,9 @@ TVVariant::KeyType KeyList::getKeyType(int i) const return find(i)->type(); return TVVariant::Invalid; } -void KeyList::setKeyType(int i, TVVariant::KeyType t) +void KeyList::setKeyType(int i, TVVariant::KeyType t) { if(!find(i)) return; switch(t) { @@ -1039,11 +1038,11 @@ QDataStream &operator>>( QDataStream &s, KeyList &k) */ /*! - Constructs a DataElem. This function needs a container because the - size, types of keys and primary key are all defined by the containing - database + Constructs a DataElem. This function needs a container because the + size, types of keys and primary key are all defined by the containing + database */ DataElem::DataElem(DBStore *c) : values(20) { int size; @@ -1085,9 +1084,9 @@ QDataStream &operator>>( QDataStream &s, DataElem &d) Q_UINT16 index = 0; s >> size; /* redundent data but makes streaming easier */ if (size != d.getNumFields()) { - owarn << "DataSize mis-match" << oendl; + owarn << "DataSize mis-match" << oendl; return s; /* sanity check failed.. don't load */ } for(i = 0; i < size; i++) { @@ -1108,39 +1107,39 @@ KeyList DataElem::getKeys() const { return *(contained->getKeys()); } -/*! +/*! This function determines whether field index i of the element has been set yet. - \return A boolean value that is TRUE if the specfied field of this - element has been set and FALSE if the field has not yet been set + \return A boolean value that is TRUE if the specfied field of this + element has been set and FALSE if the field has not yet been set */ bool DataElem::hasValidValue(int i) const { if(!values.find(i)) return FALSE; - if(!contained->getKeys()->validIndex(i)) + if(!contained->getKeys()->validIndex(i)) return FALSE; return values.find(i)->isValid(); } -/*! +/*! This function determines whether field name qs of the element has been set yet. - \return A boolean value that is TRUE if the specfied field of this - element has been set and FALSE if the field has not yet been set + \return A boolean value that is TRUE if the specfied field of this + element has been set and FALSE if the field has not yet been set */ -bool DataElem::hasValidValue(QString qs) const +bool DataElem::hasValidValue(QString qs) const { int i = contained->getKeyIndex(qs); return hasValidValue(i); } /*! returns the type of the field specified by index i */ -TVVariant::KeyType DataElem::getFieldType(int i) const +TVVariant::KeyType DataElem::getFieldType(int i) const { return contained->getKeyType(i); } @@ -1150,22 +1149,22 @@ TVVariant::KeyType DataElem::getFieldType(QString qs) const int i = contained->getKeyIndex(qs); return contained->getKeyType(i); } -/*! - returns a pointer to the data stored in field index i for this - data element, (value may not be valid) +/*! + returns a pointer to the data stored in field index i for this + data element, (value may not be valid) */ TVVariant DataElem::getField(int i) const { if(hasValidValue(i)) return TVVariant(*values.find(i)); return TVVariant(); } -/*! - returns a pointer to the data stored in field name qs for this - data element, (value may not be valid) +/*! + returns a pointer to the data stored in field name qs for this + data element, (value may not be valid) */ TVVariant DataElem::getField(QString qs) const { int i = contained->getKeyIndex(qs); @@ -1178,9 +1177,9 @@ TVVariant DataElem::getField(QString qs) const \param i index of the field to set \param q a string that can be parsed to get the value to be set */ -void DataElem::setField(int i, QString q) +void DataElem::setField(int i, QString q) { /* from the type of the field, parse q and store */ TVVariant::KeyType kt = contained->getKeyType(i); @@ -1207,22 +1206,20 @@ void DataElem::setField(int i, QString q) setField(i, t); return; } default: - qWarning( - QObject::tr("DataElem::setField(%1, %2) No valid type found").arg(i).arg(q) - ); + owarn << "DataElem::setField(" << i << ", " << q << ") No valid type found" << oendl; } } /*! Sets the value of the elements field index i to the value at the pointer value. \param i index of the field to set - \param value a pointer to the (already allocated) value to set + \param value a pointer to the (already allocated) value to set */ -void DataElem::setField(int i, TVVariant value) +void DataElem::setField(int i, TVVariant value) { if (value.isValid()) { values.remove(i); values.replace(i, new TVVariant(value)); @@ -1235,9 +1232,9 @@ void DataElem::setField(int i, TVVariant value) \param qs name of the field to set \param q a string that can be parsed to get the value to be set */ -void DataElem::setField(QString qs, QString q) +void DataElem::setField(QString qs, QString q) { /* from the type of the field, parse q and store */ int i = contained->getKeyIndex(qs); setField(i, qs); @@ -1247,9 +1244,9 @@ void DataElem::setField(QString qs, QString q) Sets the value of the elements field name qs to the value at the pointer value. \param qs name of the field to set - \param value a pointer to the (already allocated) value to set + \param value a pointer to the (already allocated) value to set */ void DataElem::setField(QString qs, TVVariant value) { int i = contained->getKeyIndex(qs); @@ -1266,9 +1263,9 @@ void DataElem::unsetField(QString qs) unsetField(i); } /*! - Converts the data element to a Rich Text QString + Converts the data element to a Rich Text QString */ QString DataElem::toQString() const { /* lets make an attempt at this function */ @@ -1289,17 +1286,17 @@ QString DataElem::toQString() const return scratch; } /*! formats individual fields to strings so can be displayed */ -QString DataElem::toQString(int i) const +QString DataElem::toQString(int i) const { if(hasValidValue(i)) { return getField(i).toString(); } return ""; } /*! formats individual fields to strings so can be sorted by QListView */ -QString DataElem::toSortableQString(int i) const +QString DataElem::toSortableQString(int i) const { QString scratch = ""; if(hasValidValue(i)) { switch (contained->getKeyType(i)) { @@ -1312,15 +1309,15 @@ QString DataElem::toSortableQString(int i) const break; } case TVVariant::Date: { static QDate epochD(1800, 1, 1); - scratch.sprintf("%08d", + scratch.sprintf("%08d", epochD.daysTo(getField(i).toDate())); break; } case TVVariant::Time: { static QTime epochT(0, 0, 0); - scratch.sprintf("%08d", + scratch.sprintf("%08d", epochT.msecsTo(getField(i).toTime())); break; } default: @@ -1379,14 +1376,14 @@ bool DataElem::contains(int i, TVVariant v) const } /* meaningless for ints */ /* meaningless for time */ /* meaningless for dates */ - case TVVariant::Int: + case TVVariant::Int: case TVVariant::Time: case TVVariant::Date: break; default: - owarn << "Tried to compare unknown data type" << oendl; + owarn << "Tried to compare unknown data type" << oendl; } return FALSE; } @@ -1405,14 +1402,14 @@ bool DataElem::startsWith(int i, TVVariant v) const } /* meaningless for ints */ /* meaningless for time */ /* meaningless for dates */ - case TVVariant::Int: + case TVVariant::Int: case TVVariant::Time: case TVVariant::Date: return FALSE; default: - owarn << "Tried to compare unknown data type" << oendl; + owarn << "Tried to compare unknown data type" << oendl; } return FALSE; } @@ -1431,33 +1428,33 @@ bool DataElem::endsWith(int i, TVVariant v) const } /* meaningless for ints */ /* meaningless for time */ /* meaningless for dates */ - case TVVariant::Int: + case TVVariant::Int: case TVVariant::Time: case TVVariant::Date: return FALSE; default: - owarn << "Tried to compare unknown data type" << oendl; + owarn << "Tried to compare unknown data type" << oendl; } return FALSE; } /*! Determins which of the first to parameters are closer to the third, target parameter. - \return + \return <UL> - <LI>TRUE if the first element is a closer match to the target than the + <LI>TRUE if the first element is a closer match to the target than the second element</LI> <LI>FALSE if the first element is not a closer match to the target than the second element</LI> </UL> */ bool DataElem::closer(DataElem*d1, DataElem *d2, TVVariant target, int column) { - int type; + int type; if(!d1) return FALSE; if (!d1->hasValidValue(column)) return FALSE; @@ -1468,11 +1465,11 @@ bool DataElem::closer(DataElem*d1, DataElem *d2, TVVariant target, int column) if(d2) { if (type != d2->getField(column).type()) { /* can't do compare */ - owarn << "Tried to compare two incompatable types" << oendl; + owarn << "Tried to compare two incompatable types" << oendl; return FALSE; } return target.closer(d1->getField(column), d2->getField(column)); - } + } return target.close(d1->getField(column)); } |