96 lines
1.6 KiB
C++
96 lines
1.6 KiB
C++
|
|
#include "xstringtable.h"
|
||
|
|
#include "xstring.h"
|
||
|
|
|
||
|
|
XStringTable::XStringTable()
|
||
|
|
: XAsset()
|
||
|
|
, mName(new XString())
|
||
|
|
, mValues(new XStringArray())
|
||
|
|
, mColumnCount(0)
|
||
|
|
, mRowCount(0) {
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
XStringTable::~XStringTable()
|
||
|
|
{
|
||
|
|
delete mName;
|
||
|
|
|
||
|
|
for (int i = 0; i < mValues->size(); i++)
|
||
|
|
{
|
||
|
|
delete mValues->at(i);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void XStringTable::SetName(XString *aName) {
|
||
|
|
if (aName == nullptr)
|
||
|
|
{
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
mName = aName;
|
||
|
|
}
|
||
|
|
|
||
|
|
void XStringTable::SetName(const QString aName) {
|
||
|
|
mName->SetString(aName);
|
||
|
|
}
|
||
|
|
|
||
|
|
XString *XStringTable::GetName() const {
|
||
|
|
return mName;
|
||
|
|
}
|
||
|
|
|
||
|
|
void XStringTable::SetValues(XStringArray* aValues) {
|
||
|
|
mValues = aValues;
|
||
|
|
}
|
||
|
|
|
||
|
|
XStringArray* XStringTable::GetValues() const {
|
||
|
|
return mValues;
|
||
|
|
}
|
||
|
|
|
||
|
|
void XStringTable::SetColumnCount(int aColumnCount) {
|
||
|
|
mColumnCount = aColumnCount;
|
||
|
|
}
|
||
|
|
|
||
|
|
int XStringTable::GetColumnCount() const {
|
||
|
|
return mColumnCount;
|
||
|
|
}
|
||
|
|
|
||
|
|
void XStringTable::SetRowCount(int aRowCount) {
|
||
|
|
mRowCount = aRowCount;
|
||
|
|
}
|
||
|
|
|
||
|
|
int XStringTable::GetRowCount() const {
|
||
|
|
return mRowCount;
|
||
|
|
}
|
||
|
|
|
||
|
|
void XStringTable::Clear()
|
||
|
|
{
|
||
|
|
mName->Clear();
|
||
|
|
|
||
|
|
for (int i = 0; i < mValues->size(); i++)
|
||
|
|
{
|
||
|
|
delete mValues->at(i);
|
||
|
|
}
|
||
|
|
mValues->clear();
|
||
|
|
|
||
|
|
mColumnCount = 0;
|
||
|
|
mRowCount = 0;
|
||
|
|
|
||
|
|
XAsset::Clear();
|
||
|
|
}
|
||
|
|
|
||
|
|
void XStringTable::ParseData(QDataStream *aStream) {
|
||
|
|
qint32 valuesPtr;
|
||
|
|
|
||
|
|
mName->ParsePtr(aStream, false);
|
||
|
|
|
||
|
|
*aStream
|
||
|
|
>> mColumnCount
|
||
|
|
>> mRowCount
|
||
|
|
>> valuesPtr;
|
||
|
|
|
||
|
|
mName->ParseData(aStream);
|
||
|
|
if (valuesPtr)
|
||
|
|
{
|
||
|
|
mValues = XString::ParseArray(aStream, mRowCount * mColumnCount);
|
||
|
|
}
|
||
|
|
}
|