QFont stripStyleName(QFont &f, QFontDatabase &db) { const QString &styleName = f.styleName(); if (styleName.isEmpty()) { return f; } else { QFont g = (db.styleString(f) != styleName) ? db.font(f.family(), styleName, f.pointSize()) : QFont(f.family(), f.pointSize(), f.weight()); if (auto s = f.pixelSize() > 0) { g.setPixelSize(s); } g.setStyleHint(f.styleHint(), f.styleStrategy()); g.setStyle(f.style()); if (f.underline()) { g.setUnderline(true); } if (f.strikeOut()) { g.setStrikeOut(true); } if (f.fixedPitch()) { g.setFixedPitch(true); } return g; } }
void ShapeSideBar::updateForCurrentPropertyChange() { d->rectGroup->setVisible((bool)d->rectLayer); d->textGroup->setVisible((bool)d->textLayer); if (d->rectLayer) { emit xChanged(d->rectLayer->rect().x()); emit yChanged(d->rectLayer->rect().y()); emit widthChanged(d->rectLayer->rect().width()); emit heightChanged(d->rectLayer->rect().height()); } if (d->textLayer) { if (d->textEdit->toPlainText() != d->textLayer->text()) d->textEdit->setText(d->textLayer->text()); QFont font = d->textLayer->font(); QString fontText = font.family() + " / " + font.styleName() + " / " + QString::number(font.pointSize()) + "pt"; d->fontButton->setText(fontText); emit fontItalicChanged(font.italic()); auto alignment = d->textLayer->alignment(); for (Qt::Alignment alignElem : { Qt::AlignLeft, Qt::AlignHCenter, Qt::AlignRight, Qt::AlignTop, Qt::AlignVCenter, Qt::AlignBottom }) { if (alignment & alignElem) d->alignButtons[alignElem]->setChecked(true); } } }
static void set_system_font(QFont font){ QApplication::setFont(font); qApp->setFont(font); printf("Raw font name: \"%s\". family name: %s, style: %s\n",font.rawName().toUtf8().constData(),font.family().toUtf8().constData(),font.styleName().toUtf8().constData()); { QFont write_font = font; #if 0 //FOR_MACOSX font.setPointSize(font.pointSize()*72.0/96.0); // macs have dpi of 72, while linux and mac have 96. #endif SETTINGS_write_string("system_font",write_font.toString()); } SETTINGS_write_string("system_font_style",font.styleName()); // toString doesn't seem to cover this. { struct Tracker_Windows *tvisual = root->song->tracker_windows; const QFont &font=QApplication::font(); QFontMetrics fm(font); tvisual->systemfontheight=fm.height(); } foreach (QWidget *widget, QApplication::allWidgets()) { updateAllFonts(widget); widget->update(); }
void FontButton::setFont(const QFont& font) { m_font = font; QString style; if (!font.styleName().isEmpty()) { style = font.styleName(); } else { QStringList styles; if (font.bold()) styles << "Bold"; if (font.italic()) styles << "Italic"; style = styles.join(" "); } m_ui->fontPreviewLabel->setText(QString("%1 %2").arg(m_font.family(), style)); m_ui->fontPreviewLabel->setFont(m_font); if (font.family() != m_font.family()) { emit fontChanged(m_font); } }
bool WidgetInfo::FontChanged(const char *setting) { obs_data_t *font_obj = obs_data_get_obj(view->settings, setting); bool success; uint32_t flags; QFont font; if (!font_obj) { font = QFontDialog::getFont(&success, view); } else { MakeQFont(font_obj, font); font = QFontDialog::getFont(&success, font, view); obs_data_release(font_obj); } if (!success) return false; font_obj = obs_data_create(); obs_data_set_string(font_obj, "face", QT_TO_UTF8(font.family())); obs_data_set_string(font_obj, "style", QT_TO_UTF8(font.styleName())); obs_data_set_int(font_obj, "size", font.pointSize()); flags = font.bold() ? OBS_FONT_BOLD : 0; flags |= font.italic() ? OBS_FONT_ITALIC : 0; flags |= font.underline() ? OBS_FONT_UNDERLINE : 0; flags |= font.strikeOut() ? OBS_FONT_STRIKEOUT : 0; obs_data_set_int(font_obj, "flags", flags); QLabel *label = static_cast<QLabel*>(widget); label->setFont(font); label->setText(QString("%1 %2").arg(font.family(), font.styleName())); obs_data_set_obj(view->settings, setting, font_obj); obs_data_release(font_obj); return true; }
void smooth_font_size(QFont &font) { QFontDatabase fdb; QList<int> size_list = fdb.smoothSizes(font.family(), font.styleName()); if (size_list.size() < 2) return; int last_size = size_list.takeFirst(); foreach (int cur_size, size_list) { if (font.pointSize() > last_size && font.pointSize() <= cur_size) { font.setPointSize(cur_size); return; } last_size = cur_size; } }
void XmlFontSerializator::save(const QVariant &value, QString name) { QFont font = value.value<QFont>(); QDomElement _node = doc()->createElement(name); _node.setAttribute("Type","QFont"); _node.setAttribute("family",font.family()); _node.setAttribute("pointSize",font.pointSize()); #if QT_VERSION>0x040800 _node.setAttribute("stylename",font.styleName()); #endif _node.setAttribute("weight",font.weight()); //saveBool(_node,"bold",font.bold()); saveBool(_node,"italic",font.italic()); saveBool(_node,"underline",font.underline()); node()->appendChild(_node); }
void obs_data_set_qfont(obs_data_t* data, const char* name, QFont font){ obs_data_t *fontObj = obs_data_create(); obs_data_set_string(fontObj, "face", (font.family()).toUtf8().data()); obs_data_set_string(fontObj, "style", (font.styleName()).toUtf8().data()); obs_data_set_int(fontObj, "size", font.pointSize()); int flags = font.bold() ? OBS_FONT_BOLD : 0; flags |= font.italic() ? OBS_FONT_ITALIC : 0; flags |= font.underline() ? OBS_FONT_UNDERLINE : 0; flags |= font.strikeOut() ? OBS_FONT_STRIKEOUT : 0; obs_data_set_int(fontObj, "flags", flags); obs_data_set_obj(data, "font", fontObj); obs_data_release(fontObj); return; }
void smooth_font_size(QFont &font) { QFontDatabase fdb; #if QT_VERSION < QT_VERSION_CHECK(4, 8, 0) QList<int> size_list = fdb.smoothSizes(font.family(), ""); #else QList<int> size_list = fdb.smoothSizes(font.family(), font.styleName()); #endif if (size_list.size() < 2) return; int last_size = size_list.takeFirst(); foreach (int cur_size, size_list) { if (font.pointSize() > last_size && font.pointSize() <= cur_size) { font.setPointSize(cur_size); return; } last_size = cur_size; } }
void tst_QPicture::serialization() { QDataStream stream; const int thisVersion = stream.version(); for (int version = QDataStream::Qt_1_0; version <= thisVersion; ++version) { const QDataStream::Version versionEnum = static_cast<QDataStream::Version>(version); { // streaming of null pictures ensureSerializesCorrectly(QPicture(), versionEnum); } { // picture with a simple line, checking bitwise equality QPicture picture; QPainter painter(&picture); painter.drawLine(10, 20, 30, 40); ensureSerializesCorrectly(picture, versionEnum); } } { // Test features that were added after Qt 4.5, as that was hard-coded as the major // version for a while, which was incorrect. In this case, we'll test font hints. QPicture picture; QPainter painter; QFont font; font.setStyleName("Blah"); font.setHintingPreference(QFont::PreferFullHinting); painter.begin(&picture); painter.setFont(font); painter.drawText(20, 20, "Hello"); painter.end(); Picture customPicture; painter.begin(&customPicture); picture.play(&painter); const QFont actualFont = ((PaintEngine*)customPicture.paintEngine())->font(); painter.end(); QCOMPARE(actualFont.styleName(), QStringLiteral("Blah")); QCOMPARE(actualFont.hintingPreference(), QFont::PreferFullHinting); } }
void BiLiTextSourcePropertyDlg::mSltFontComboxChanged(const QString &text) { QFont font = qobject_cast<QFontComboBox *>(sender())->currentFont(); obs_data_t *fontObj = obs_data_create(); obs_data_set_string(fontObj, "face", (font.family()).toUtf8().data()); obs_data_set_string(fontObj, "style", (font.styleName()).toUtf8().data()); obs_data_set_int(fontObj, "size", font.pointSize()); int flags = font.bold() ? OBS_FONT_BOLD : 0; flags |= font.italic() ? OBS_FONT_ITALIC : 0; flags |= font.underline() ? OBS_FONT_UNDERLINE : 0; flags |= font.strikeOut() ? OBS_FONT_STRIKEOUT : 0; obs_data_set_int(fontObj, "flags", flags); obs_data_t *settingFont = obs_source_get_settings(mSrc); obs_data_set_obj(settingFont, "font", fontObj); obs_data_release(fontObj); obs_data_release(settingFont); }
QString fontToString(const QFont& f) { return f.family() + ' ' + f.styleName() + ' ' + QString::number(f.pointSize()); }