XPlor/libs/assets/xstringtable.cpp

96 lines
1.6 KiB
C++
Raw Normal View History

2025-08-14 17:30:25 -04:00
#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);
}
}