void TextPropertyGridWidget::UpdatePushButtonWidgetWithFont(QPushButton *pushButtonWidget, Font* font) { if (pushButtonWidget != this->ui->fontSelectButton) { return; //Not font select button } if (font) { //Set button text Font::eFontType fontType = font->GetFontType(); QString buttonText; switch (fontType) { case Font::TYPE_FT: { FTFont *ftFont = static_cast<FTFont*>(font); //Set pushbutton widget text buttonText = QString::fromStdString(ftFont->GetFontPath().GetFrameworkPath()); break; } case Font::TYPE_GRAPHICAL: { GraphicsFont *gFont = static_cast<GraphicsFont*>(font); //Put into result string font definition and font sprite path Sprite *fontSprite = gFont->GetFontSprite(); if (!fontSprite) //If no sprite available - quit { pushButtonWidget->setText("Graphical font is not available"); return; } //Get font definition and sprite relative path QString fontDefinitionName = QString::fromStdString(gFont->GetFontDefinitionName().GetFrameworkPath()); QString fontSpriteName =QString::fromStdString(fontSprite->GetRelativePathname().GetFrameworkPath()); //Set push button widget text - for grapics font it contains font definition and sprite names buttonText = QString("%1\n%2").arg(fontDefinitionName, fontSpriteName); break; } case Font::TYPE_DISTANCE: { DFFont *dfFont = static_cast<DFFont*>(font); //Set pushbutton widget text buttonText = QString::fromStdString(dfFont->GetFontPath().GetFrameworkPath()); break; } default: { //Do nothing if we can't determine font type return; } } pushButtonWidget->setText(buttonText); } }
void UITextFieldPropertyGridWidget::UpdatePushButtonWidgetWithPropertyValue(QPushButton *pushButtonWidget, const QMetaProperty &curProperty) { if (pushButtonWidget != this->ui->fontSelectButton) { return; //Not font select button } bool isPropertyValueDiffers = false; Font *fontPropertyValue = PropertiesHelper::GetPropertyValue<Font *>(this->activeMetadata, curProperty.name(), isPropertyValueDiffers); if (fontPropertyValue) { //Set button text WidgetSignalsBlocker blocker(pushButtonWidget); Font::eFontType fontType = fontPropertyValue->GetFontType(); QString buttonText; switch (fontType) { case Font::TYPE_FT: { FTFont *ftFont = dynamic_cast<FTFont*>(fontPropertyValue); //Set pushbutton widget text buttonText = QString::fromStdString(ftFont->GetFontPath().GetFrameworkPath()); break; } case Font::TYPE_GRAPHICAL: { GraphicsFont *gFont = dynamic_cast<GraphicsFont*>(fontPropertyValue); //Put into result string font definition and font sprite path Sprite *fontSprite = gFont->GetFontSprite(); if (!fontSprite) //If no sprite available - quit { pushButtonWidget->setText("Graphical font is not available"); return; } //Get font definition and sprite relative path QString fontDefinitionName = QString::fromStdString(gFont->GetFontDefinitionName().GetFrameworkPath()); QString fontSpriteName =QString::fromStdString(fontSprite->GetRelativePathname().GetFrameworkPath()); //Set push button widget text - for grapics font it contains font definition and sprite names buttonText = QString("%1\n%2").arg(fontDefinitionName, fontSpriteName); break; } default: { //Do nothing if we can't determine font type return; } } pushButtonWidget->setText(buttonText); } }
QString EditorFontManager::GetDefaultFontName() const { Font::eFontType fontType = defaultFont->GetFontType(); switch (fontType) { case Font::TYPE_FT: { FTFont *ftFont = dynamic_cast<FTFont*>(defaultFont); return QString::fromStdString(ftFont->GetFontPath().GetAbsolutePathname()); } case Font::TYPE_GRAPHICAL: { GraphicsFont *gFont = dynamic_cast<GraphicsFont*>(defaultFont); return QString::fromStdString(gFont->GetFontDefinitionName().GetAbsolutePathname()); } } return QString::fromStdString(DEFAULT_FONT_PATH); }
EditorFontManager::DefaultFontPath EditorFontManager::GetDefaultFontPath() { FilePath defFontPath; FilePath defFontSpritePath; if (defaultFont) { Font::eFontType fontType = defaultFont->GetFontType(); switch (fontType) { case Font::TYPE_FT: { FTFont *ftFont = dynamic_cast<FTFont*>(defaultFont); FilePath ftFontPath = ftFont->GetFontPath(); // Don't save standart default font if (ftFontPath.GetAbsolutePathname().find(DEFAULT_FONT_NAME) == String::npos) { // Set font path defFontPath = ftFontPath; } break; } case Font::TYPE_GRAPHICAL: { GraphicsFont *gFont = dynamic_cast<GraphicsFont*>(defaultFont); // Try to get font sprite Sprite *fontSprite = gFont->GetFontSprite(); // Save font only if sprite is available if (fontSprite) { // Set font definition and sprite relative path defFontPath = gFont->GetFontDefinitionName(); defFontSpritePath = fontSprite->GetRelativePathname(); } break; } } } return DefaultFontPath(defFontPath, defFontSpritePath); }
void EditFontDialog::UpdatePushButtonWidgetWithPropertyValue(QPushButton *pushButtonWidget)//, const QMetaProperty &curProperty) { Font *fontPropertyValue = NULL; if(pushButtonWidget == ui->fontSelectButton) { fontPropertyValue = dialogResult.font; } else if(pushButtonWidget == ui->localizedFontSelectButton) { fontPropertyValue = dialogResult.GetLocalizedFont(currentLocale); } Logger::FrameworkDebug("EditFontDialog::UpdatePushButtonWidgetWithPropertyValue fontPropertyValue=%p fontPresetName=%s", fontPropertyValue, dialogResult.fontPresetName.c_str()); if(fontPropertyValue) { //Set button text Font::eFontType fontType = fontPropertyValue->GetFontType(); QString buttonText; switch(fontType) { case Font::TYPE_FT: { FTFont *ftFont = static_cast<FTFont*>(fontPropertyValue); //Set pushbutton widget text buttonText = QString::fromStdString(ftFont->GetFontPath().GetFrameworkPath()); break; } case Font::TYPE_GRAPHICAL: { GraphicsFont *gFont = static_cast<GraphicsFont*>(fontPropertyValue); //Put into result string font definition and font sprite path Sprite *fontSprite = gFont->GetFontSprite(); if (!fontSprite) //If no sprite available - quit { pushButtonWidget->setText("Graphical font is not available"); return; } //Get font definition and sprite relative path QString fontDefinitionName = QString::fromStdString(gFont->GetFontDefinitionName().GetFrameworkPath()); QString fontSpriteName =QString::fromStdString(fontSprite->GetRelativePathname().GetFrameworkPath()); //Set push button widget text - for grapics font it contains font definition and sprite names buttonText = QString("%1\n%2").arg(fontDefinitionName, fontSpriteName); break; } case Font::TYPE_DISTANCE: { DFFont *dfFont = static_cast<DFFont*>(fontPropertyValue); //Set pushbutton widget text buttonText = QString::fromStdString(dfFont->GetFontPath().GetFrameworkPath()); break; } default: { //Do nothing if we can't determine font type return; } } Logger::FrameworkDebug("EditFontDialog::UpdatePushButtonWidgetWithPropertyValue %s", buttonText.toStdString().c_str()); pushButtonWidget->setText(buttonText); } }