Skip to content

Commit

Permalink
Return status + error msg
Browse files Browse the repository at this point in the history
  • Loading branch information
vadi2 committed Aug 6, 2019
1 parent 05a79b3 commit 766acc5
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 10 deletions.
8 changes: 4 additions & 4 deletions src/Host.cpp
Expand Up @@ -528,18 +528,18 @@ QString Host::getMmpMapLocation() const
return mpMap->getMmpMapLocation();
}

bool Host::setDisplayFont(const QFont& font)
std::pair<bool, QString> Host::setDisplayFont(const QFont& font)
{
const QFontMetrics metrics(font);
if (metrics.averageCharWidth() == 0) {
return false;
return std::make_pair(false, QStringLiteral("specified font is invalid (its letters have 0 width)"));
}

mDisplayFont = font;
return true;
return std::make_pair(true, QString());
}

bool Host::setDisplayFont(const QString& fontName)
std::pair<bool, QString> Host::setDisplayFont(const QString& fontName)
{
return setDisplayFont(QFont(fontName));
}
Expand Down
4 changes: 2 additions & 2 deletions src/Host.h
Expand Up @@ -229,8 +229,8 @@ class Host : public QObject
void setMmpMapLocation(const QString& data);
QString getMmpMapLocation() const;
const QFont& getDisplayFont() const { return mDisplayFont; }
bool setDisplayFont(const QFont& font);
bool setDisplayFont(const QString& fontName);
std::pair<bool, QString> setDisplayFont(const QFont& font);
std::pair<bool, QString> setDisplayFont(const QString& fontName);
void setDisplayFontSize(int size);
void setDisplayFontSpacing(const qreal spacing);
void setDisplayFontStyle(QFont::StyleStrategy s);
Expand Down
4 changes: 2 additions & 2 deletions src/TLuaInterpreter.cpp
Expand Up @@ -2804,9 +2804,9 @@ int TLuaInterpreter::setFont(lua_State* L)

if (windowName.isEmpty() || windowName.compare(QStringLiteral("main"), Qt::CaseSensitive) == 0) {
if (mudlet::self()->mConsoleMap.contains(pHost)) {
if (!pHost->setDisplayFont(font)) {
if (auto [setNewFont, errorMessage] = pHost->setDisplayFont(font); !setNewFont) {
lua_pushnil(L);
lua_pushstring(L, "specified font is invalid (average character width is 0)");
lua_pushstring(L, errorMessage.toUtf8().constData());
return 2;
}

Expand Down
2 changes: 1 addition & 1 deletion src/XMLimport.cpp
Expand Up @@ -994,7 +994,7 @@ void XMLimport::readHostPackage(Host* pHost)
pHost->mLightWhite.setNamedColor(readElementText());
} else if (name() == "mDisplayFont") {
const auto oldDisplayFont = pHost->getDisplayFont();
if (!pHost->setDisplayFont(readElementText())) {
if (auto [setNewFont, errorMessage] = pHost->setDisplayFont(readElementText()); !setNewFont) {
pHost->setDisplayFont(oldDisplayFont);
}
QFont::insertSubstitution(pHost->mDisplayFont.family(), QStringLiteral("Noto Color Emoji"));
Expand Down
2 changes: 1 addition & 1 deletion src/dlgProfilePreferences.cpp
Expand Up @@ -1503,7 +1503,7 @@ void dlgProfilePreferences::setDisplayFont()
}
QFont font = fontComboBox->currentFont();
font.setPointSize(mFontSize);
if (pHost->getDisplayFont() != font && pHost->setDisplayFont(font)) {
if (auto [setNewFont, errorMessage] = pHost->setDisplayFont(font); pHost->getDisplayFont() != font && setNewFont) {
QFont::insertSubstitution(pHost->mDisplayFont.family(), QStringLiteral("Noto Color Emoji"));
if (mudlet::self()->mConsoleMap.contains(pHost)) {
mudlet::self()->mConsoleMap[pHost]->changeColors();
Expand Down

0 comments on commit 766acc5

Please sign in to comment.