replased QString to String

This commit is contained in:
Igor Korsukov 2022-06-09 13:23:24 +03:00
parent 3239b6708a
commit bdac16a415
25 changed files with 91 additions and 68 deletions

View file

@ -206,7 +206,7 @@ void Articulation::write(XmlWriter& xml) const
// typeUserName
//---------------------------------------------------------
QString Articulation::typeUserName() const
String Articulation::typeUserName() const
{
return SymNames::translatedUserNameForSymId(symId());
}

View file

@ -117,7 +117,7 @@ public:
SymId symId() const { return _symId; }
void setSymId(SymId id);
int subtype() const override;
QString typeUserName() const override;
String typeUserName() const override;
String articulationName() const; // type-name of articulation; used for midi rendering
static String symId2ArticulationName(SymId symId);

View file

@ -778,7 +778,7 @@ const char* EngravingObject::typeName() const
return Factory::name(type());
}
QString EngravingObject::typeUserName() const
String EngravingObject::typeUserName() const
{
return qtrc("elementName", Factory::userName(type()));
}

View file

@ -221,7 +221,7 @@ public:
inline ElementType type() const { return m_type; }
inline bool isType(ElementType t) const { return t == m_type; }
const char* typeName() const;
virtual QString typeUserName() const;
virtual String typeUserName() const;
EngravingObject* parent() const;
void setParent(EngravingObject* p);

View file

@ -145,7 +145,7 @@ int Fermata::subtype() const
// typeUserName
//---------------------------------------------------------
QString Fermata::typeUserName() const
String Fermata::typeUserName() const
{
return SymNames::translatedUserNameForSymId(symId());
}

View file

@ -68,7 +68,7 @@ public:
void setSymId(SymId id) { _symId = id; }
FermataType fermataType() const;
int subtype() const override;
QString typeUserName() const override;
String typeUserName() const override;
void layout() override;

View file

@ -222,7 +222,7 @@ public:
bool showNut() const { return _showNut; }
void setShowNut(bool val) { _showNut = val; }
QString harmonyText() const { return _harmony ? _harmony->plainText() : QString(); }
String harmonyText() const { return _harmony ? _harmony->plainText() : String(); }
qreal centerX() const;
void setHarmony(QString harmonyText);

View file

@ -26,6 +26,7 @@
#include <QRegularExpression>
#include "containers.h"
#include "translation.h"
#include "draw/fontmetrics.h"
#include "draw/brush.h"
#include "draw/pen.h"
@ -2074,13 +2075,13 @@ void Harmony::setHarmonyType(HarmonyType val)
// typeUserName
//---------------------------------------------------------
QString Harmony::typeUserName() const
String Harmony::typeUserName() const
{
switch (_harmonyType) {
case HarmonyType::ROMAN:
return QObject::tr("Roman numeral");
return qtrc("engraving", "Roman numeral");
case HarmonyType::NASHVILLE:
return QObject::tr("Nashville number");
return qtrc("engraving", "Nashville number");
case HarmonyType::STANDARD:
break;
}

View file

@ -223,7 +223,7 @@ public:
mu::PointF calculateBoundingRect();
qreal xShapeOffset() const;
QString typeUserName() const override;
String typeUserName() const override;
QString accessibleInfo() const override;
QString generateScreenReaderInfo() const;
QString screenReaderInfo() const override;

View file

@ -2525,7 +2525,7 @@ void TextBase::resetFormatting()
// return plain text with symbols
//---------------------------------------------------------
QString TextBase::plainText() const
String TextBase::plainText() const
{
QString s;

View file

@ -353,7 +353,7 @@ public:
void setPlainText(const QString& t) { setXmlText(plainToXmlText(t)); }
virtual void setXmlText(const QString&);
QString xmlText() const;
QString plainText() const;
String plainText() const;
void resetFormatting();
void insertText(EditData&, const QString&);

View file

@ -1319,7 +1319,7 @@ private:
void TextReaderContext206::copyProperties(XmlReader& original, XmlReader& derived)
{
derived.setDocName(original.getDocName());
derived.setDocName(original.docName());
derived.setContext(original.context());
}
@ -3345,7 +3345,7 @@ bool Read206::readScore206(Score* score, XmlReader& e, ReadContext& ctx)
}
if (e.error() != XmlStreamReader::NoError) {
LOGD("%s: xml read error at line %lld col %lld: %s",
qPrintable(e.getDocName()), e.lineNumber(), e.columnNumber(), e.name().ascii());
qPrintable(e.docName()), e.lineNumber(), e.columnNumber(), e.name().ascii());
MScore::lastError = QObject::tr("XML read error at line %1, column %2: %3").arg(e.lineNumber()).arg(e.columnNumber()).arg(
e.name().ascii());
return false;

View file

@ -226,7 +226,7 @@ bool Read302::readScore302(Score* score, XmlReader& e, ReadContext& ctx)
e.context()->reconnectBrokenConnectors();
if (e.error() != XmlStreamReader::NoError) {
LOGD("%s: xml read error at line %lld col %lld: %s",
qPrintable(e.getDocName()), e.lineNumber(), e.columnNumber(), e.name().ascii());
qPrintable(e.docName()), e.lineNumber(), e.columnNumber(), e.name().ascii());
if (e.error() == XmlStreamReader::CustomError) {
MScore::lastError = e.errorString();
} else {

View file

@ -43,7 +43,7 @@ using namespace mu::engraving::rw;
bool Read400::read400(Score* score, XmlReader& e, ReadContext& ctx)
{
if (!e.readNextStartElement()) {
LOGD("%s: xml file is empty", qPrintable(e.getDocName()));
LOGD("%s: xml file is empty", qPrintable(e.docName()));
return false;
}
@ -65,7 +65,7 @@ bool Read400::read400(Score* score, XmlReader& e, ReadContext& ctx)
}
}
} else {
LOGD("%s: invalid structure of xml file", qPrintable(e.getDocName()));
LOGD("%s: invalid structure of xml file", qPrintable(e.docName()));
return false;
}
@ -222,7 +222,7 @@ bool Read400::readScore400(Score* score, XmlReader& e, ReadContext& ctx)
ctx.reconnectBrokenConnectors();
if (e.error() != XmlStreamReader::NoError) {
LOGD("%s: xml read error at line %lld col %lld: %s",
qPrintable(e.getDocName()), e.lineNumber(), e.columnNumber(), e.name().ascii());
qPrintable(e.docName()), e.lineNumber(), e.columnNumber(), e.name().ascii());
if (e.error() == XmlStreamReader::CustomError) {
MScore::lastError = e.errorString();
} else {

View file

@ -130,14 +130,15 @@ Fraction XmlReader::readFraction()
Q_ASSERT(tokenType() == XmlStreamReader::StartElement);
int z = intAttribute("z", 0);
int n = intAttribute("n", 1);
const QString& s(readText());
if (!s.isEmpty()) {
int i = s.indexOf('/');
if (i == -1) {
AsciiStringView s = readAsciiText();
if (!s.empty()) {
size_t i = s.indexOf('/');
if (i == mu::nidx) {
return Fraction::fromTicks(s.toInt());
} else {
z = s.leftRef(i).toInt();
n = s.midRef(i + 1).toInt();
String str = String::fromAscii(s.ascii());
z = str.left(i).toInt();
n = str.mid(i + 1).toInt();
}
}
return Fraction(z, n);
@ -153,10 +154,11 @@ void XmlReader::unknown()
if (XmlStreamReader::error()) {
LOGD("%s ", qPrintable(errorString()));
}
if (!docName.isEmpty()) {
LOGD("tag in <%s> line %ld col %lld: %s", qPrintable(docName), lineNumber() + _offsetLines, columnNumber(), name().ascii());
if (!m_docName.isEmpty()) {
LOGD("tag in <%s> line %ld col %lld: %s", qPrintable(m_docName.toUtf8().constChar()), lineNumber() + m_offsetLines,
columnNumber(), name().ascii());
} else {
LOGD("line %lld col %ld: %s", lineNumber() + _offsetLines, columnNumber(), name().ascii());
LOGD("line %lld col %ld: %s", lineNumber() + m_offsetLines, columnNumber(), name().ascii());
}
skipCurrentElement();
}
@ -218,9 +220,6 @@ void XmlReader::htmlToString(int level, String* s)
String XmlReader::readXml()
{
static int count = 0;
++count;
String s;
int level = 1;
for (XmlStreamReader::TokenType t = readNext(); t != XmlStreamReader::EndElement; t = readNext()) {
@ -243,7 +242,6 @@ String XmlReader::readXml()
return s;
}
}
LOGI() << count << "| " << s;
return s;
}

View file

@ -58,19 +58,19 @@ public:
double readDouble(bool* ok = nullptr) { return XmlStreamReader::readDouble(ok); }
double readDouble(double min, double max);
mu::PointF readPoint();
mu::SizeF readSize();
mu::ScaleF readScale();
mu::RectF readRect();
mu::draw::Color readColor();
PointF readPoint();
SizeF readSize();
ScaleF readScale();
RectF readRect();
draw::Color readColor();
Fraction readFraction();
String readXml();
void setDocName(const QString& s) { docName = s; }
QString getDocName() const { return docName; }
void setDocName(const String& s) { m_docName = s; }
String docName() const { return m_docName; }
// for reading old files (< 3.01)
void setOffsetLines(qint64 val) { _offsetLines = val; }
void setOffsetLines(qint64 val) { m_offsetLines = val; }
ReadContext* context() const;
void setContext(ReadContext* context);
@ -79,8 +79,8 @@ private:
void htmlToString(int level, String*);
QString docName; // used for error reporting
qint64 _offsetLines = 0;
String m_docName; // used for error reporting
qint64 m_offsetLines = 0;
mutable ReadContext* m_context = nullptr;
mutable bool m_selfContext = false;
};

View file

@ -20,11 +20,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include "xml.h"
#include "libmscore/property.h"
#include "xmlwriter.h"
#include "types/typesconv.h"
#include "rw/writecontext.h"
#include "libmscore/engravingitem.h"
#include "libmscore/property.h"
#include "log.h"

View file

@ -27,16 +27,12 @@
#include "containers.h"
#include "io/iodevice.h"
#include "infrastructure/draw/color.h"
#include "libmscore/connector.h"
#include "libmscore/stafftype.h"
#include "libmscore/interval.h"
#include "libmscore/engravingitem.h"
#include "serialization/xmlstreamwriter.h"
#include "libmscore/property.h"
namespace mu::engraving {
class EngravingObject;
class WriteContext;
class XmlWriter : public XmlStreamWriter
{

View file

@ -40,7 +40,7 @@ const char* SymNames::userNameForSymId(SymId id)
return s_symUserNames.at(size_t(id));
}
QString SymNames::translatedUserNameForSymId(SymId id)
String SymNames::translatedUserNameForSymId(SymId id)
{
return mu::qtrc("symUserNames", userNameForSymId(id));
}

View file

@ -33,7 +33,7 @@ namespace mu::engraving {
struct SymNames {
static AsciiStringView nameForSymId(SymId id);
static const char* userNameForSymId(SymId id);
static QString translatedUserNameForSymId(SymId id);
static String translatedUserNameForSymId(SymId id);
static SymId symIdByName(const AsciiStringView& name, SymId def = SymId::noSym);
static SymId symIdByName(const QString& name, SymId def = SymId::noSym);

View file

@ -248,6 +248,15 @@ TEST_F(Global_Types_StringTests, String_SubStr)
//! CHECK
EXPECT_EQ(newStr, u"3abc");
}
{
//! GIVEN Some String
String str = u"123abc";
//! DO
String newStr = str.left(2);
//! CHECK
EXPECT_EQ(newStr, u"12");
}
}
TEST_F(Global_Types_StringTests, String_Trimmed)

View file

@ -110,8 +110,7 @@ char16_t Char::fromAscii(char c)
char Char::toAscii(bool* ok) const
{
UNUSED(ok);
return toAscii(m_ch);
return toAscii(m_ch, ok);
}
// ============================
@ -413,6 +412,11 @@ String String::mid(size_t pos, size_t count) const
return s;
}
String String::left(size_t n) const
{
return mid(0, n);
}
String String::trimmed() const
{
String s = *this;
@ -420,6 +424,10 @@ String String::trimmed() const
return s;
}
String String::simplified() const
{
}
String String::toXmlEscaped(char16_t c)
{
switch (c) {
@ -509,13 +517,18 @@ AsciiChar AsciiStringView::at(size_t i) const
}
bool AsciiStringView::contains(char ch) const
{
return indexOf(ch) != mu::nidx;
}
size_t AsciiStringView::indexOf(char ch) const
{
for (size_t i = 0; i < m_size; ++i) {
if (m_data[i] == ch) {
return true;
return i;
}
}
return false;
return mu::nidx;
}
int AsciiStringView::toInt(bool* ok, int base) const

View file

@ -28,6 +28,7 @@
#include <string>
#include <string_view>
#include "containers.h"
#include "bytearray.h"
#include "global/logstream.h"
@ -108,8 +109,6 @@ class String
{
public:
static const size_t npos = static_cast<size_t>(-1);
String();
String(const char16_t* str);
String(const Char& ch);
@ -132,9 +131,9 @@ public:
String& operator +=(const char16_t* s);
inline String& operator +=(char16_t s) { return append(s); }
inline String operator+(const mu::String& s) const { mu::String t(*this); t += s; return t; }
inline String operator+(const char16_t* s) const { mu::String t(*this); t += s; return t; }
inline String operator+(char16_t s) const { mu::String t(*this); t += s; return t; }
inline String operator+(const mu::String& s) const { String t(*this); t += s; return t; }
inline String operator+(const char16_t* s) const { String t(*this); t += s; return t; }
inline String operator+(char16_t s) const { String t(*this); t += s; return t; }
String& append(Char ch);
String& append(const String& s);
@ -171,8 +170,11 @@ public:
StringList split(const Char& ch) const;
String& replace(const String& before, const String& after);
String mid(size_t pos, size_t count = npos) const;
String mid(size_t pos, size_t count = mu::nidx) const;
String left(size_t n) const;
String trimmed() const;
String simplified() const;
String toXmlEscaped() const;
static String toXmlEscaped(const String& str);
static String toXmlEscaped(char16_t c);
@ -203,8 +205,6 @@ class AsciiStringView
{
public:
static const size_t npos = static_cast<size_t>(-1);
constexpr AsciiStringView() = default;
constexpr AsciiStringView(const char* str)
: m_size(str ? std::char_traits<char>::length(str) : 0), m_data(str) {}
@ -239,6 +239,7 @@ public:
bool empty() const;
AsciiChar at(size_t i) const;
bool contains(char ch) const;
size_t indexOf(char ch) const;
int toInt(bool* ok = nullptr, int base = 10) const;
double toDouble(bool* ok = nullptr) const;
@ -276,4 +277,8 @@ inline mu::logger::Stream& operator<<(mu::logger::Stream& s, const mu::AsciiStri
return s;
}
#ifndef muPrintable
# define muPrintable(string) string.toUtf8().constChar()
#endif
#endif // MU_GLOBAL_STRING_H

View file

@ -47,7 +47,7 @@ SelectDialog::SelectDialog(QWidget* parent)
setWindowFlags(this->windowFlags() & ~Qt::WindowContextHelpButtonHint);
m_element = contextItem(globalContext()->currentNotation()->interaction());
type->setText(qApp->translate("elementName", m_element->typeUserName().toUtf8()));
type->setText(qtrc("elementName", m_element->typeUserName()));
switch (m_element->type()) {
case ElementType::ACCIDENTAL:

View file

@ -305,7 +305,7 @@ PaletteCellPtr PaletteCell::fromElementMimeData(const QByteArray& data)
}
}
const QString name = (element->isFretDiagram()) ? toFretDiagram(element.get())->harmonyText() : element->typeUserName();
const String name = (element->isFretDiagram()) ? toFretDiagram(element.get())->harmonyText() : element->typeUserName();
return std::make_shared<PaletteCell>(element, name);
}