diff --git a/toonz/sources/toonz/main.cpp b/toonz/sources/toonz/main.cpp index 64d0f34..35f7291 100644 --- a/toonz/sources/toonz/main.cpp +++ b/toonz/sources/toonz/main.cpp @@ -690,14 +690,17 @@ int main(int argc, char *argv[]) { TFontManager *fontMgr = TFontManager::instance(); std::vector typefaces; - fontMgr->loadFontNames(); - fontMgr->setFamily(fontName.toStdWString()); - fontMgr->getAllTypefaces(typefaces); - bool isBold = false, isItalic = false, hasKerning = false; - isBold = fontMgr->isBold(fontName, fontStyle); - isItalic = fontMgr->isItalic(fontName, fontStyle); - hasKerning = fontMgr->hasKerning(); + try { + fontMgr->loadFontNames(); + fontMgr->setFamily(fontName.toStdWString()); + fontMgr->getAllTypefaces(typefaces); + isBold = fontMgr->isBold(fontName, fontStyle); + isItalic = fontMgr->isItalic(fontName, fontStyle); + hasKerning = fontMgr->hasKerning(); + } catch (TFontCreationError &) { + // Do nothing. A default font should load + } myFont = new QFont(fontName); myFont->setPixelSize(EnvSoftwareCurrentFontSize); diff --git a/toonz/sources/toonz/preferencespopup.cpp b/toonz/sources/toonz/preferencespopup.cpp index 2294411..047a66e 100644 --- a/toonz/sources/toonz/preferencespopup.cpp +++ b/toonz/sources/toonz/preferencespopup.cpp @@ -359,13 +359,19 @@ void PreferencesPopup::onDropdownShortcutsCycleOptionsChanged(int index) { void PreferencesPopup::rebuilldFontStyleList() { TFontManager *instance = TFontManager::instance(); std::vector typefaces; - QString font = m_interfaceFont->currentText(); - instance->loadFontNames(); - instance->setFamily(font.toStdWString()); - instance->getAllTypefaces(typefaces); + std::vector::iterator it; + QString font = m_interfaceFont->currentText(); + QString style = m_pref->getInterfaceFontStyle(); + try { + instance->loadFontNames(); + instance->setFamily(font.toStdWString()); + instance->getAllTypefaces(typefaces); + } catch (TFontCreationError &) { + it = typefaces.begin(); + typefaces.insert(it, style.toStdWString()); + } m_interfaceFontStyle->clear(); - for (std::vector::iterator it = typefaces.begin(); - it != typefaces.end(); ++it) + for (it = typefaces.begin(); it != typefaces.end(); ++it) m_interfaceFontStyle->addItem(QString::fromStdWString(*it)); }