1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-26 18:35:20 +00:00

Merge branch 'journalbooks' into 'master'

Use string_view in journalbooks

See merge request OpenMW/openmw!2663
This commit is contained in:
psi29a 2023-01-30 13:25:12 +00:00
commit ac8ae3f226
5 changed files with 24 additions and 18 deletions

View File

@ -167,7 +167,7 @@ namespace MWGui
{
const MyGUI::Colour& headerColour = windowManager->getTextColours().header;
BookTypesetter::Style* title = typesetter->createStyle({}, headerColour, false);
typesetter->write(title, to_utf8_span(mTitle.c_str()));
typesetter->write(title, to_utf8_span(mTitle));
typesetter->sectionBreak();
}
@ -206,7 +206,7 @@ namespace MWGui
break;
}
typesetter->addContent(to_utf8_span(text.c_str()));
typesetter->addContent(to_utf8_span(text));
if (hyperLinks.size()
&& MWBase::Environment::get().getWindowManager()->getTranslationDataStorage().hasTranslation())
@ -271,7 +271,7 @@ namespace MWGui
const MyGUI::Colour& textColour = MWBase::Environment::get().getWindowManager()->getTextColours().notify;
BookTypesetter::Style* title = typesetter->createStyle("", textColour, false);
typesetter->sectionBreak(9);
typesetter->write(title, to_utf8_span(mText.c_str()));
typesetter->write(title, to_utf8_span(mText));
}
// --------------------------------------------------------------------------------------------------
@ -628,7 +628,7 @@ namespace MWGui
typesetter->lineBreak();
BookTypesetter::Style* questionStyle = typesetter->createHotStyle(
body, textColours.answer, textColours.answerOver, textColours.answerPressed, interactiveId);
typesetter->write(questionStyle, to_utf8_span(choice.first.c_str()));
typesetter->write(questionStyle, to_utf8_span(choice.first));
}
mGoodbye = MWBase::Environment::get().getDialogueManager()->isGoodbye();
@ -647,7 +647,7 @@ namespace MWGui
BookTypesetter::Style* questionStyle = typesetter->createHotStyle(
body, textColours.answer, textColours.answerOver, textColours.answerPressed, interactiveId);
typesetter->lineBreak();
typesetter->write(questionStyle, to_utf8_span(goodbye.c_str()));
typesetter->write(questionStyle, to_utf8_span(goodbye));
}
TypesetBook::Ptr book = typesetter->complete();

View File

@ -146,13 +146,13 @@ namespace
namespace MWGui
{
MWGui::BookTypesetter::Utf8Span to_utf8_span(char const* text)
MWGui::BookTypesetter::Utf8Span to_utf8_span(std::string_view text)
{
typedef MWGui::BookTypesetter::Utf8Point point;
point begin = reinterpret_cast<point>(text);
point begin = reinterpret_cast<point>(text.data());
return MWGui::BookTypesetter::Utf8Span(begin, begin + strlen(text));
return MWGui::BookTypesetter::Utf8Span(begin, begin + text.length());
}
typedef TypesetBook::Ptr book;
@ -207,7 +207,7 @@ namespace MWGui
return typesetter->complete();
}
book JournalBooks::createQuestBook(const std::string& questName)
book JournalBooks::createQuestBook(std::string_view questName)
{
BookTypesetter::Ptr typesetter = createTypesetter();
@ -215,7 +215,7 @@ namespace MWGui
BookTypesetter::Style* body = typesetter->createStyle("", MyGUI::Colour::Black);
AddQuestName addName(typesetter, header);
addName(to_utf8_span(questName.c_str()));
addName(to_utf8_span(questName));
mModel->visitJournalEntries(questName, AddJournalEntry(typesetter, body, header, false));
@ -241,12 +241,14 @@ namespace MWGui
mIndexPagesCount = 2;
char ch = 'A';
std::string buffer;
BookTypesetter::Style* body = typesetter->createStyle("", MyGUI::Colour::Black);
for (int i = 0; i < 26; ++i)
{
char buffer[32];
sprintf(buffer, "( %c )", ch);
buffer = "( ";
buffer += ch;
buffer += " )";
const MWGui::TextColours& textColours = MWBase::Environment::get().getWindowManager()->getTextColours();
BookTypesetter::Style* style = typesetter->createHotStyle(body, textColours.journalTopic,
@ -286,10 +288,14 @@ namespace MWGui
unsigned char ch[3] = { 0xd0, 0x90, 0x00 }; // CYRILLIC CAPITAL A is a 0xd090 in UTF-8
std::string buffer;
for (int i = 0; i < 32; ++i)
{
char buffer[32];
sprintf(buffer, "( %c%c )", ch[0], ch[1]);
buffer = "( ";
buffer += ch[0];
buffer += ch[1];
buffer += " )";
Utf8Stream stream((char*)ch);
Utf8Stream::UnicodeChar first = stream.peek();

View File

@ -8,7 +8,7 @@
namespace MWGui
{
MWGui::BookTypesetter::Utf8Span to_utf8_span(char const* text);
MWGui::BookTypesetter::Utf8Span to_utf8_span(std::string_view text);
struct JournalBooks
{
@ -21,7 +21,7 @@ namespace MWGui
Book createJournalBook();
Book createTopicBook(uintptr_t topicId);
Book createTopicBook(const std::string& topicId);
Book createQuestBook(const std::string& questName);
Book createQuestBook(std::string_view questName);
Book createTopicIndexBook();
ToUTF8::FromType mEncoding;

View File

@ -264,7 +264,7 @@ namespace MWGui
};
void visitJournalEntries(
const std::string& questName, std::function<void(JournalEntry const&)> visitor) const override
std::string_view questName, std::function<void(JournalEntry const&)> visitor) const override
{
MWBase::Journal* journal = MWBase::Environment::get().getJournal();

View File

@ -78,7 +78,7 @@ namespace MWGui
/// walks over the journal entries related to all quests with the given name
/// If \a questName is empty, simply visits all journal entries
virtual void visitJournalEntries(
const std::string& questName, std::function<void(JournalEntry const&)> visitor) const = 0;
std::string_view questName, std::function<void(JournalEntry const&)> visitor) const = 0;
/// provides the name of the topic specified by its id
virtual void visitTopicName(TopicId topicId, std::function<void(Utf8Span)> visitor) const = 0;