UString integration done

- now UString works for both Qt (uses QString) and non-Qt (uses modified
CBString) builds
This commit is contained in:
Nikolaj Schlej 2016-07-05 16:18:55 +02:00
parent 9bd71281b9
commit 804a55ba64
8 changed files with 20 additions and 19 deletions

View File

@ -79,7 +79,7 @@ USTATUS FfsDumper::recursiveDump(const UModelIndex & index, const UString & path
if (!file.open(QFile::Text | QFile::WriteOnly))
return U_FILE_OPEN;
file.write(info);
file.write(info.toLocal8Bit());
file.close();
dumped = true;
}

View File

@ -62,7 +62,7 @@ int main(int argc, char *argv[])
// Show ffsParser's messages
std::vector<std::pair<UString, UModelIndex> > messages = ffsParser.getMessages();
for (size_t i = 0; i < messages.size(); i++) {
std::cout << messages[i].first << std::endl;
std::cout << (const char*)messages[i].first.toLocal8Bit() << std::endl;
}
// Get last VTF
@ -76,7 +76,7 @@ int main(int argc, char *argv[])
// Show fitParser's messages
std::vector<std::pair<UString, UModelIndex> > fitMessages = fitParser.getMessages();
for (size_t i = 0; i < fitMessages.size(); i++) {
std::cout << fitMessages[i].first << std::endl;
std::cout << (const char*)fitMessages[i].first.toLocal8Bit() << std::endl;
}
// Show FIT table
@ -86,11 +86,11 @@ int main(int argc, char *argv[])
std::cout << " Address | Size | Ver | Type | CS " << std::endl;
std::cout << "-------------------------------------------------------------------" << std::endl;
for (size_t i = 0; i < fitTable.size(); i++) {
std::cout << fitTable[i][0] << " | "
<< fitTable[i][1] << " | "
<< fitTable[i][2] << " | "
<< fitTable[i][3] << " | "
<< fitTable[i][4] << std::endl;
std::cout << (const char*)fitTable[i][0].toLocal8Bit() << " | "
<< (const char*)fitTable[i][1].toLocal8Bit() << " | "
<< (const char*)fitTable[i][2].toLocal8Bit() << " | "
<< (const char*)fitTable[i][3].toLocal8Bit() << " | "
<< (const char*)fitTable[i][4].toLocal8Bit() << std::endl;
}
}
}
@ -103,7 +103,7 @@ int main(int argc, char *argv[])
std::ofstream ofs;
ofs.open("report.txt", std::ofstream::out);
for (size_t i = 0; i < report.size(); i++) {
ofs << report[i] << std::endl;
ofs << (const char*)report[i].toLocal8Bit() << std::endl;
}
ofs.close();
}

View File

@ -903,7 +903,7 @@ struct tagbstring t;
return bninchrr ((bstring) this, pos, &t);
}
const CBString CBString::midstr (int left, int len) const {
CBString CBString::midstr (int left, int len) const {
struct tagbstring t;
if (left < 0) {
len += left;

View File

@ -317,7 +317,7 @@ struct CBString : public tagbstring {
void findreplacecaseless (const char * find, const char * repl, int pos = 0);
// Extraction method.
const CBString midstr (int left, int len) const;
CBString midstr (int left, int len) const;
// Standard manipulation methods.
void setsubstr (int pos, const CBString& b, unsigned char fill = ' ');
@ -362,8 +362,11 @@ struct CBString : public tagbstring {
int read (bNread readPtr, void * parm);
// QString compatibility methods
CBString toLocal8Bit() { return *this; }
bool isEmpty() const { return slen == 0; }
void clear() { *this = ""; }
CBString left(int len) { return midstr(0, len); }
CBString mid(int pos, int len) { return midstr(pos, len); }
static CBString fromUtf16(const ushort* str) { // Naive implementation assuming that only ASCII part of UCS2 is used
CBString msg; while (*str) { msg += *(char*)str; str++; } return msg;
}

View File

@ -4137,8 +4137,8 @@ USTATUS FfsParser::parseSlicMarkerHeader(const UByteArray & store, const UINT32
markerHeader->Size, markerHeader->Size,
header.size(), header.size(),
markerHeader->Version,
(const char*)UString((const char*)&(markerHeader->OemId), 6),
(const char*)UString((const char*)&(markerHeader->OemTableId), 8),
(const char*)UString((const char*)&(markerHeader->OemId)).left(6).toLocal8Bit(),
(const char*)UString((const char*)&(markerHeader->OemTableId)).left(8).toLocal8Bit(),
markerHeader->SlicVersion);
// Add correct offset

View File

@ -44,9 +44,9 @@ QVariant TreeModel::data(const UModelIndex &index, int role) const
TreeItem *item = static_cast<TreeItem*>(index.internalPointer());
if (role == Qt::DisplayRole)
return (const char*)item->data(index.column());
return (const char*)item->data(index.column()).toLocal8Bit();
else
return (const char*)item->info();
return (const char*)item->info().toLocal8Bit();
}
Qt::ItemFlags TreeModel::flags(const UModelIndex &index) const

View File

@ -15,7 +15,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
//TODO: modify properly
#ifndef QT_CORE_LIB
#if defined(QT_CORE_LIB) && defined (U_USE_QSTRING)
UString usprintf(const char* fmt, ...)
{
UString msg;

View File

@ -13,9 +13,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#ifndef USTRING_H
#define USTRING_H
//TODO: modify properly
#ifndef QT_CORE_LIB
#if defined (QT_CORE_LIB) && defined(U_USE_QSTRING)
// Use Qt class, if Qt is available
#include <QString>
#define UString QString