QFont Font::font() const { QFont f = primaryFont()->getQtFont(); f.setLetterSpacing(QFont::AbsoluteSpacing, m_letterSpacing); f.setWordSpacing(m_wordSpacing); return f; }
FontPlatformData::FontPlatformData(const FontDescription& description, const AtomicString& familyName, int wordSpacing, int letterSpacing) : m_data(adoptRef(new FontPlatformDataPrivate())) { QFont font; int requestedSize = description.computedPixelSize(); font.setFamily(familyName); if (requestedSize) font.setPixelSize(requestedSize); font.setItalic(description.italic()); font.setWeight(toQFontWeight(description.weight())); font.setWordSpacing(wordSpacing); font.setLetterSpacing(QFont::AbsoluteSpacing, letterSpacing); if (description.fontSmoothing() == NoSmoothing) font.setStyleStrategy(QFont::NoAntialias); #if QT_VERSION >= QT_VERSION_CHECK(5, 1, 0) if (description.fontSmoothing() == AutoSmoothing && !Font::shouldUseSmoothing()) font.setStyleStrategy(QFont::NoAntialias); #endif m_data->bold = font.bold(); // WebKit allows font size zero but QFont does not. We will return // m_data->size if a font size of zero is requested and pixelSize() // otherwise. m_data->size = (!requestedSize) ? requestedSize : font.pixelSize(); m_data->rawFont = QRawFont::fromFont(font, QFontDatabase::Any); }
QFont Font::font() const { QFont f = primaryFont()->getQtFont(); f.setWeight(toQFontWeight(weight())); f.setItalic(italic()); if (m_letterSpacing != 0) f.setLetterSpacing(QFont::AbsoluteSpacing, m_letterSpacing); if (m_wordSpacing != 0) f.setWordSpacing(m_wordSpacing); return f; }
BasicHeader::BasicHeader( QWidget* parent ) : BackgroundWidget( parent ) , DpiScaler( this ) , ui( new Ui::HeaderWidget ) { ui->setupUi( this ); setAutoFillBackground( false ); BackgroundWidget::setBackgroundColor( TomahawkStyle::HEADER_BACKGROUND ); ui->refreshButton->setPixmap( ImageRegistry::instance()->pixmap( RESPATH "images/refresh.svg", QSize( ui->captionLabel->height() - 8, ui->captionLabel->height() - 8 ) ) ); connect( ui->refreshButton, SIGNAL( clicked() ), SIGNAL( refresh() ) ); setRefreshVisible( false ); { QFont f = ui->captionLabel->font(); f.setPointSize( TomahawkUtils::defaultFontSize() + 6 ); f.setLetterSpacing( QFont::PercentageSpacing, 110 ); QPalette p = ui->captionLabel->palette(); p.setColor( QPalette::Foreground, TomahawkStyle::HEADER_LABEL ); ui->captionLabel->setFont( f ); ui->captionLabel->setPalette( p ); ui->captionLabel->setWordWrap( true ); ui->iconLabel->hide(); ui->anchor1Label->hide(); ui->anchor2Label->hide(); ui->anchor3Label->hide(); } { QFont f = ui->anchor1Label->font(); f.setPointSize( TomahawkUtils::defaultFontSize() + 1 ); f.setBold( true ); QPalette p = ui->captionLabel->palette(); p.setColor( QPalette::Foreground, Qt::white ); ui->anchor1Label->setFont( f ); ui->anchor1Label->setPalette( p ); ui->anchor2Label->setFont( f ); ui->anchor2Label->setPalette( p ); ui->anchor3Label->setFont( f ); ui->anchor3Label->setPalette( p ); } setFixedHeight( scaledY( 130 ) ); TomahawkUtils::fixMargins( this ); }
void GraphicEQFilterGUIItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) { painter->setBrush(Qt::white); if (isSelected()) painter->setBrush(QColor(38, 147, 255)); painter->drawPath(shape()); if (index < 99) { if (isSelected()) painter->setPen(Qt::white); QFont font; font.setPixelSize(9); font.setLetterSpacing(QFont::AbsoluteSpacing, -1); QFontMetrics metrics(font); painter->setFont(font); QString text = QString::number(index + 1); painter->drawText(-metrics.width(text) / 2, metrics.boundingRect('0').height() / 2, text); } }
void tst_QFont::serializeSpacing() { QFont font; QCOMPARE(font.letterSpacing(), 0.); QCOMPARE(font.wordSpacing(), 0.); font.setLetterSpacing(QFont::AbsoluteSpacing, 105); QCOMPARE(font.letterSpacing(), 105.); QCOMPARE(font.letterSpacingType(), QFont::AbsoluteSpacing); QCOMPARE(font.wordSpacing(), 0.); QFont font2 = copyFont(font); QCOMPARE(font2.letterSpacing(), 105.); QCOMPARE(font2.letterSpacingType(), QFont::AbsoluteSpacing); QCOMPARE(font2.wordSpacing(), 0.); font.setWordSpacing(50.0); QCOMPARE(font.letterSpacing(), 105.); QCOMPARE(font.wordSpacing(), 50.); QFont font3 = copyFont(font); QCOMPARE(font3.letterSpacing(), 105.); QCOMPARE(font3.letterSpacingType(), QFont::AbsoluteSpacing); QCOMPARE(font3.wordSpacing(), 50.); }
QPixmap DeckCard::draw(uint total, bool drawRarity, QColor nameColor, int cardHeight) { QFont font; QPixmap canvas(CARD_CANVAS); canvas.fill(Qt::transparent); QPainter painter; painter.begin(&canvas); //Antialiasing painter.setRenderHint(QPainter::Antialiasing); painter.setRenderHint(QPainter::SmoothPixmapTransform); painter.setRenderHint(QPainter::TextAntialiasing); //Card QRectF target; QRectF source; if(name == "unknown") source = QRectF(63,18,100,25); else if(type==QString("Minion")) source = QRectF(48,72,100,25); else source = QRectF(48,98,100,25); if(total == 1 && rarity != "Legendary") target = QRectF(113,6,100,25); else target = QRectF(100,6,100,25); painter.drawPixmap(target, QPixmap(Utility::appPath() + "/HSCards/" + ((name=="unknown")?name:code) + ".png"), source); //Background and #cards if(drawRarity) painter.setPen(QPen(getRarityColor())); else if(nameColor!=BLACK) painter.setPen(QPen(nameColor)); else if(type==QString("Minion")) painter.setPen(QPen(WHITE)); else if (type==QString("Spell")) painter.setPen(QPen(YELLOW)); else painter.setPen(QPen(ORANGE)); int maxNameLong; if(total == 1 && rarity != "Legendary") { maxNameLong = 174; painter.drawPixmap(0,0,QPixmap(":Images/bgCard1.png")); } else { maxNameLong = 155; painter.drawPixmap(0,0,QPixmap(":Images/bgCard2.png")); if(total > 1) { font.setPointSize(16); painter.setFont(font); painter.drawText(QRectF(190,6,26,24), Qt::AlignCenter, QString::number(total)); } else { font.setPointSize(20); painter.setFont(font); painter.drawText(QRectF(190,9,26,24), Qt::AlignCenter, "*"); } } //Name and mana if(name == "unknown") { font.setPointSize(14); painter.setFont(font); painter.setPen(QPen(BLACK)); painter.drawText(QRectF(34,7,154,23), Qt::AlignVCenter, "Unknown"); } else { //Name int fontSize = 14; font.setPointSize(fontSize); font.setBold(true); #ifdef Q_OS_WIN font.setLetterSpacing(QFont::AbsoluteSpacing, -2); #else font.setLetterSpacing(QFont::AbsoluteSpacing, -1); #endif QFontMetrics fm(font); int textWide = fm.width(name); int textHigh = fm.height(); while(textWide>maxNameLong) { fontSize--; font.setPointSize(fontSize); fm = QFontMetrics(font); textWide = fm.width(name); textHigh = fm.height(); } painter.setFont(font); painter.setBrush(painter.pen().color()); painter.setPen(QPen(BLACK)); QPainterPath path; path.addText(34, 20 + textHigh/4, font, name); painter.drawPath(path); //Mana cost int manaSize = cost>9?6:cost; font.setPointSize(14+manaSize); painter.setFont(font); fm = QFontMetrics(font); textWide = fm.width(QString::number(cost)); textHigh = fm.height(); path = QPainterPath(); path.addText(14 - textWide/2, 20 + textHigh/4, font, QString::number(cost)); painter.drawPath(path); } painter.end(); //Adapt to size canvas = canvas.scaled(CARD_SIZE, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); return canvas; }
DialogDisplaySettings::DialogDisplaySettings(QWidget *parent) : QDialog(parent), ui(new Ui::DialogDisplaySettings) { ui->setupUi(this); setModal(true); ui->displayPreviewWidget_1->setScale(8); ui->displayPreviewWidget_2->setScale(8); renderer = new DisplayRenderer(ui->displayPreviewWidget_1, ui->displayPreviewWidget_2, this); runData = new RunData(this); lineEdit_formats[1] = ui->lineEdit_line1Format; lineEdit_formats[2] = ui->lineEdit_line2Format; lineEdit_formats[3] = ui->lineEdit_line3Format; lineEdit_formats[4] = ui->lineEdit_line4Format; lineEdit_formats[5] = ui->lineEdit_line5Format; lineEdit_formats[6] = ui->lineEdit_line6Format; lineEdit_fonts[1] = ui->lineEdit_line1Font; lineEdit_fonts[2] = ui->lineEdit_line2Font; lineEdit_fonts[3] = ui->lineEdit_line3Font; lineEdit_fonts[4] = ui->lineEdit_line4Font; lineEdit_fonts[5] = ui->lineEdit_line5Font; lineEdit_fonts[6] = ui->lineEdit_line6Font; offsets[1] = ui->spinBox_1; offsets[2] = ui->spinBox_2; offsets[3] = ui->spinBox_3; offsets[4] = ui->spinBox_4; offsets[5] = ui->spinBox_5; offsets[6] = ui->spinBox_6; // restore settings QSettings set; set.beginGroup("display"); for(int i=1; i<=6; i++) { lineEdit_formats[i]->setText(set.value(QString("format%1").arg(i), QString()).toString()); QFont f; f.fromString(set.value(QString("font%1").arg(i), "DejaVu Sans,8,-1,5,50,0,0,0,0,0").toString()); f.setLetterSpacing(QFont::AbsoluteSpacing, 0); fonts[i]=f; offsets[i]->setValue(set.value(QString("offset%1").arg(i), 0).toInt()); } ui->checkBox_enableDisplays->setChecked(set.value("enabled", true).toBool()); ui->checkBox_flipDisplay1->setChecked(set.value("flipDisplay1", false).toBool()); ui->checkBox_flipDisplay2->setChecked(set.value("flipDisplay2", false).toBool()); set.endGroup(); /* // Set Default Strings: QFont f; f.fromString("DejaVu Sans,8,-1,5,50,0,0,0,0,0"); f.setLetterSpacing(QFont::AbsoluteSpacing, 0); fonts[1] = f; f.fromString("DejaVu Sans,8,-1,5,50,0,0,0,0,0"); f.setLetterSpacing(QFont::AbsoluteSpacing, 0); fonts[2] = f; f.fromString("DejaVu Sans,8,-1,5,150,0,0,0,0,0"); f.setLetterSpacing(QFont::AbsoluteSpacing, -1); fonts[3] = f; f.fromString("DejaVu Sans,12,-1,5,100,0,0,0,0,0"); f.setLetterSpacing(QFont::AbsoluteSpacing, 0); fonts[4] = f; f.fromString("DejaVu Sans,10,-1,5,100,0,0,0,0,0"); f.setLetterSpacing(QFont::AbsoluteSpacing, 0); fonts[5] = f; f.fromString("DejaVu Sans,8,-1,5,100,0,0,0,0,0"); f.setLetterSpacing(QFont::AbsoluteSpacing, 0); fonts[6] = f; */ for(int n=1; n<=6; n++) { updateFontString(n); connect(lineEdit_formats[n], SIGNAL(textChanged(QString)), this, SLOT(triggerRender())); connect(offsets[n], SIGNAL(valueChanged(int)), this, SLOT(triggerRender())); } connect(ui->lineEdit_round, SIGNAL(textChanged(QString)), this, SLOT(triggerRender())); connect(ui->lineEdit_color, SIGNAL(textChanged(QString)), this, SLOT(triggerRender())); connect(ui->lineEdit_runID, SIGNAL(textChanged(QString)), this, SLOT(triggerRender())); connect(ui->lineEdit_boatID, SIGNAL(textChanged(QString)), this, SLOT(triggerRender())); connect(ui->lineEdit_runTime, SIGNAL(textChanged(QString)), this, SLOT(triggerRender())); connect(ui->checkBox_dsq, SIGNAL(toggled(bool)), this, SLOT(triggerRender())); connect(ui->lineEdit_firstName1, SIGNAL(textChanged(QString)), this, SLOT(triggerRender())); connect(ui->lineEdit_lastName1, SIGNAL(textChanged(QString)), this, SLOT(triggerRender())); connect(ui->lineEdit_firstName2, SIGNAL(textChanged(QString)), this, SLOT(triggerRender())); connect(ui->lineEdit_lastName2, SIGNAL(textChanged(QString)), this, SLOT(triggerRender())); connect(ui->lineEdit_fireBrigade, SIGNAL(textChanged(QString)), this, SLOT(triggerRender())); triggerRender(); }
void GeoDataFeaturePrivate::initializeDefaultStyles() { // We need to do this similar to the way KCmdLineOptions works in // the future: Having a PlacemarkStyleProperty properties[] would // help here greatly. QString defaultFamily = s_defaultFont.family(); #ifdef Q_OS_MACX int defaultSize = 10; #else int defaultSize = 8; #endif s_defaultStyle[GeoDataFeature::None] = new GeoDataStyle( QImage(), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Default] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/default_location.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Unknown] = new GeoDataStyle( QImage(), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::SmallCity] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_4_white.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::SmallCountyCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_4_yellow.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::SmallStateCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_4_orange.png" ) ), QFont( defaultFamily, defaultSize, 50, true ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::SmallNationCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_4_red.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::MediumCity] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_3_white.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::MediumCountyCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_3_yellow.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::MediumStateCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_3_orange.png" ) ), QFont( defaultFamily, defaultSize, 50, true ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::MediumNationCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_3_red.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::BigCity] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_2_white.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::BigCountyCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_2_yellow.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::BigStateCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_2_orange.png" ) ), QFont( defaultFamily, defaultSize, 50, true ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::BigNationCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_2_red.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::LargeCity] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_1_white.png" ) ), QFont( defaultFamily, defaultSize, 75, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::LargeCountyCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_1_yellow.png" ) ), QFont( defaultFamily, defaultSize, 75, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::LargeStateCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_1_orange.png" ) ), QFont( defaultFamily, defaultSize, 75, true ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::LargeNationCapital] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/city_1_red.png" ) ), QFont( defaultFamily, defaultSize, 75, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Nation] = new GeoDataStyle( QImage(), QFont( defaultFamily, (int)(defaultSize * 1.2 ), 75, false ), QColor( "#404040" ) ); // Align area labels centered s_defaultStyle[GeoDataFeature::Nation]->labelStyle().setAlignment( GeoDataLabelStyle::Center ); s_defaultStyle[GeoDataFeature::Mountain] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/mountain_1.png" ) ), QFont( defaultFamily, (int)(defaultSize * 0.9 ), 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Volcano] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/volcano_1.png" ) ), QFont( defaultFamily, (int)(defaultSize * 0.9 ), 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Mons] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/mountain_1.png" ) ), QFont( defaultFamily, (int)(defaultSize * 0.9 ), 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Valley] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/valley.png" ) ), QFont( defaultFamily, (int)(defaultSize * 0.9 ), 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Continent] = new GeoDataStyle( QImage(), QFont( defaultFamily, (int)(defaultSize * 1.7 ), 50, false ), QColor( "#bf0303" ) ); // Align area labels centered s_defaultStyle[GeoDataFeature::Continent]->labelStyle().setAlignment( GeoDataLabelStyle::Center ); s_defaultStyle[GeoDataFeature::Ocean] = new GeoDataStyle( QImage(), QFont( defaultFamily, (int)(defaultSize * 1.7 ), 50, true ), QColor( "#2c72c7" ) ); // Align area labels centered s_defaultStyle[GeoDataFeature::Ocean]->labelStyle().setAlignment( GeoDataLabelStyle::Center ); s_defaultStyle[GeoDataFeature::OtherTerrain] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/other.png" ) ), QFont( defaultFamily, (int)(defaultSize * 0.9 ), 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Crater] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/crater.png" ) ), QFont( defaultFamily, (int)(defaultSize * 0.9 ), 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Mare] = new GeoDataStyle( QImage(), QFont( defaultFamily, (int)(defaultSize * 1.7 ), 50, false ), QColor( "#bf0303" ) ); // Align area labels centered s_defaultStyle[GeoDataFeature::Mare]->labelStyle().setAlignment( GeoDataLabelStyle::Center ); s_defaultStyle[GeoDataFeature::GeographicPole] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/pole_1.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::MagneticPole] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/pole_2.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::ShipWreck] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/shipwreck.png" ) ), QFont( defaultFamily, (int)(defaultSize * 0.8 ), 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::AirPort] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/airport.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Observatory] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/observatory.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Wikipedia] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/wikipedia.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::OsmSite] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/osm.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Coordinate] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/coordinate.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::MannedLandingSite] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/manned_landing.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::RoboticRover] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/robotic_rover.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::UnmannedSoftLandingSite] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/unmanned_soft_landing.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::UnmannedHardLandingSite] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/unmanned_hard_landing.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Folder] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/folder.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyle[GeoDataFeature::Bookmark] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/bookmark.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); QFont const osmFont( defaultFamily, defaultSize, 50, false ); s_defaultStyle[GeoDataFeature::AccomodationCamping] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "accommodation_camping.p.16" ); s_defaultStyle[GeoDataFeature::AccomodationHostel] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "accommodation_hostel.p.16" ); s_defaultStyle[GeoDataFeature::AccomodationHotel] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "accommodation_hotel2.p.16" ); s_defaultStyle[GeoDataFeature::AccomodationMotel] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "accommodation_motel.p.16" ); s_defaultStyle[GeoDataFeature::AccomodationYouthHostel] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "accommodation_youth_hostel.p.16" ); s_defaultStyle[GeoDataFeature::AmenityLibrary] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "amenity_library.p.16" ); s_defaultStyle[GeoDataFeature::EducationCollege] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "education_college.p.16" ); s_defaultStyle[GeoDataFeature::EducationSchool] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "education_school.p.16" ); s_defaultStyle[GeoDataFeature::EducationUniversity] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "education_university.p.16" ); s_defaultStyle[GeoDataFeature::FoodBar] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "food_bar.p.16" ); s_defaultStyle[GeoDataFeature::FoodBiergarten] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "food_biergarten.p.16" ); s_defaultStyle[GeoDataFeature::FoodCafe] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "food_cafe.p.16" ); s_defaultStyle[GeoDataFeature::FoodFastFood] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "food_fastfood2.p.16" ); s_defaultStyle[GeoDataFeature::FoodPub] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "food_pub.p.16" ); s_defaultStyle[GeoDataFeature::FoodRestaurant] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "food_restaurant.p.16" ); s_defaultStyle[GeoDataFeature::HealthDoctors] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "health_doctors2.p.16" ); s_defaultStyle[GeoDataFeature::HealthHospital] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "health_hospital.p.16" ); s_defaultStyle[GeoDataFeature::HealthPharmacy] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "health_pharmacy.p.16" ); s_defaultStyle[GeoDataFeature::MoneyBank] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "money_bank2.p.16" ); s_defaultStyle[GeoDataFeature::ShoppingBeverages] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "shopping_alcohol.p.16" ); s_defaultStyle[GeoDataFeature::ShoppingHifi] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "shopping_hifi.p.16" ); s_defaultStyle[GeoDataFeature::ShoppingSupermarket] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "shopping_supermarket.p.16" ); s_defaultStyle[GeoDataFeature::TouristAttraction] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_attraction.p.16" ); s_defaultStyle[GeoDataFeature::TouristCastle] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_castle2.p.16" ); s_defaultStyle[GeoDataFeature::TouristCinema] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_cinema.p.16" ); s_defaultStyle[GeoDataFeature::TouristMonument] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_monument.p.16" ); s_defaultStyle[GeoDataFeature::TouristMuseum] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_museum.p.16" ); s_defaultStyle[GeoDataFeature::TouristRuin] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_ruin.p.16" ); s_defaultStyle[GeoDataFeature::TouristTheatre] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_theatre.p.16" ); s_defaultStyle[GeoDataFeature::TouristThemePark] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_theme_park.p.16" ); s_defaultStyle[GeoDataFeature::TouristViewPoint] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_view_point.p.16" ); s_defaultStyle[GeoDataFeature::TouristZoo] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "tourist_zoo.p.16" ); s_defaultStyle[GeoDataFeature::TransportAerodrome] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_aerodrome.p.16" ); s_defaultStyle[GeoDataFeature::TransportAirportTerminal] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_airport_terminal.p.16" ); s_defaultStyle[GeoDataFeature::TransportBusStation] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_bus_station.p.16" ); s_defaultStyle[GeoDataFeature::TransportBusStop] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_bus_stop.p.16" ); s_defaultStyle[GeoDataFeature::TransportCarShare] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_car_share.p.16" ); s_defaultStyle[GeoDataFeature::TransportFuel] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_fuel.p.16" ); s_defaultStyle[GeoDataFeature::TransportParking] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_parking.p.16", "#F6EEB6", QColor( "#F6EEB6" ).darker() ); s_defaultStyle[GeoDataFeature::TransportTrainStation] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_train_station.p.16" ); s_defaultStyle[GeoDataFeature::TransportTramStop] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_tram_stop.p.16" ); s_defaultStyle[GeoDataFeature::TransportRentalBicycle] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_rental_bicycle.p.16" ); s_defaultStyle[GeoDataFeature::TransportRentalCar] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_rental_car.p.16" ); s_defaultStyle[GeoDataFeature::TransportTaxiRank] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "transport_taxi_rank.p.16" ); s_defaultStyle[GeoDataFeature::ReligionPlaceOfWorship] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_unknown3.p.16" ); s_defaultStyle[GeoDataFeature::ReligionBahai] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_bahai3.p.16" ); s_defaultStyle[GeoDataFeature::ReligionBuddhist] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_buddhist3.p.16" ); s_defaultStyle[GeoDataFeature::ReligionChristian] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_christian3.p.16" ); s_defaultStyle[GeoDataFeature::ReligionHindu] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_hindu3.p.16" ); s_defaultStyle[GeoDataFeature::ReligionJain] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_jain3.p.16" ); s_defaultStyle[GeoDataFeature::ReligionJewish] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_jewish3.p.16" ); s_defaultStyle[GeoDataFeature::ReligionShinto] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_shinto3.p.16" ); s_defaultStyle[GeoDataFeature::ReligionSikh] = GeoDataFeaturePrivate::createOsmPOIStyle( osmFont, "place_of_worship_sikh3.p.16" ); s_defaultStyle[GeoDataFeature::HighwaySteps] = GeoDataFeaturePrivate::createStyle( 1, 5, "#F98072", "#F98072", true, true, Qt::SolidPattern, Qt::CustomDashLine, Qt::FlatCap, false, QVector< qreal >() << 0.2 << 0.2 ); s_defaultStyle[GeoDataFeature::HighwayUnknown] = GeoDataFeaturePrivate::createHighwayStyle( "highway_unclassified", "#808080" ); s_defaultStyle[GeoDataFeature::HighwayPath] = GeoDataFeaturePrivate::createHighwayStyle( "highway_path", "#F98072", 1.0, 2, Qt::DashLine ); s_defaultStyle[GeoDataFeature::HighwayTrack] = GeoDataFeaturePrivate::createHighwayStyle( "highway_track", "#986600", 1.0, 3, Qt::DashLine ); s_defaultStyle[GeoDataFeature::HighwayPedestrian] = GeoDataFeaturePrivate::createHighwayStyle( "highway_footway", "#F98072", 1.0, 2, Qt::DashLine ); s_defaultStyle[GeoDataFeature::HighwayService] = GeoDataFeaturePrivate::createHighwayStyle( "highway_unclassified", "#FEFEFE", 1.0, 6 ); s_defaultStyle[GeoDataFeature::HighwayRoad] = GeoDataFeaturePrivate::createHighwayStyle( "highway_unclassified", "#FEFEFE", 1.5, 9 ); s_defaultStyle[GeoDataFeature::HighwayTertiary] = GeoDataFeaturePrivate::createHighwayStyle( "highway_tertiary", "#FEFEB3", 2.0, 11 ); s_defaultStyle[GeoDataFeature::HighwaySecondary] = GeoDataFeaturePrivate::createHighwayStyle( "highway_secondary", "#FDD6A4", 2.0, 13 ); s_defaultStyle[GeoDataFeature::HighwayPrimary] = GeoDataFeaturePrivate::createHighwayStyle( "highway_primary", "#EB989A", 3.0, 15 ); s_defaultStyle[GeoDataFeature::HighwayTrunk] = GeoDataFeaturePrivate::createHighwayStyle( "highway_trunk", "#A9DAA9", 3.0, 18 ); s_defaultStyle[GeoDataFeature::HighwayMotorway] = GeoDataFeaturePrivate::createHighwayStyle( "highway_motorway", "#809BC0", 3.0, 20 ); s_defaultStyle[GeoDataFeature::HighwayTertiaryLink] = GeoDataFeaturePrivate::createHighwayStyle( "highway_tertiary", "#FEFEB3", 2.0, 9 ); s_defaultStyle[GeoDataFeature::HighwaySecondaryLink] = GeoDataFeaturePrivate::createHighwayStyle( "highway_secondary", "#FDD6A4", 2.0, 11 ); s_defaultStyle[GeoDataFeature::HighwayPrimaryLink] = GeoDataFeaturePrivate::createHighwayStyle( "highway_primary", "#EB989A", 2.0, 13 ); s_defaultStyle[GeoDataFeature::HighwayTrunkLink] = GeoDataFeaturePrivate::createHighwayStyle( "highway_trunk", "#A9DAA9", 3.0, 15 ); s_defaultStyle[GeoDataFeature::HighwayMotorwayLink] = GeoDataFeaturePrivate::createHighwayStyle( "highway_motorway", "#809BC0", 3.0, 18 ); s_defaultStyle[GeoDataFeature::NaturalWater] = GeoDataFeaturePrivate::createStyle( 2, 10, "#B5D0D0", "#B5D0D0", true, true, Qt::SolidPattern, Qt::SolidLine, Qt::RoundCap, false ); s_defaultStyle[GeoDataFeature::NaturalWood] = GeoDataFeaturePrivate::createWayStyle( "#8DC46C", "#8DC46C" ); s_defaultStyle[GeoDataFeature::LeisurePark] = GeoDataFeaturePrivate::createWayStyle( "#CDF6CA", "#CDF6CA" ); s_defaultStyle[GeoDataFeature::LanduseAllotments] = GeoDataFeaturePrivate::createWayStyle( "#E4C6AA", "#E4C6AA" ); s_defaultStyle[GeoDataFeature::LanduseBasin] = GeoDataFeaturePrivate::createWayStyle( QColor(0xB5, 0xD0, 0xD0, 0x80 ), QColor( 0xB5, 0xD0, 0xD0 ) ); s_defaultStyle[GeoDataFeature::LanduseCemetery] = GeoDataFeaturePrivate::createWayStyle( "#A9C9AE", "#A9C9AE" ); s_defaultStyle[GeoDataFeature::LanduseCommercial] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::LanduseConstruction] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::LanduseFarmland] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::LanduseFarmyard] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::LanduseGarages] = GeoDataFeaturePrivate::createWayStyle( "#E0DDCD", "#E0DDCD" ); s_defaultStyle[GeoDataFeature::LanduseGrass] = GeoDataFeaturePrivate::createWayStyle( "#A8C8A5", "#A8C8A5" ); s_defaultStyle[GeoDataFeature::LanduseIndustrial] = GeoDataFeaturePrivate::createWayStyle( "#DED0D5", "#DED0D5" ); s_defaultStyle[GeoDataFeature::LanduseLandfill] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::LanduseMeadow] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::LanduseMilitary] = GeoDataFeaturePrivate::createWayStyle( "#F3D8D2", "#F3D8D2", true, true, Qt::BDiagPattern ); s_defaultStyle[GeoDataFeature::LanduseQuarry] = GeoDataFeaturePrivate::createWayStyle( "#C4C2C2", "#C4C2C2" ); s_defaultStyle[GeoDataFeature::LanduseRailway] = GeoDataFeaturePrivate::createWayStyle( "#DED0D5", "#DED0D5" ); s_defaultStyle[GeoDataFeature::LanduseReservoir] = GeoDataFeaturePrivate::createWayStyle( "#B5D0D0", "#B5D0D0" ); s_defaultStyle[GeoDataFeature::LanduseResidential] = GeoDataFeaturePrivate::createWayStyle( "#DCDCDC", "#DCDCDC" ); s_defaultStyle[GeoDataFeature::LanduseRetail] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::RailwayRail] = GeoDataFeaturePrivate::createStyle( 2, 5, "#989898", "#E1E1E1", true, true, Qt::SolidPattern, Qt::DashLine, Qt::FlatCap, true ); s_defaultStyle[GeoDataFeature::RailwayTram] = GeoDataFeaturePrivate::createStyle( 1, 4, "#989898", "#989898", true, true, Qt::SolidPattern, Qt::SolidLine, Qt::RoundCap, false ); s_defaultStyle[GeoDataFeature::RailwayLightRail] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::RailwayAbandoned] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::RailwaySubway] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::RailwayPreserved] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::RailwayMiniature] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::RailwayConstruction] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::RailwayMonorail] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::RailwayFunicular] = GeoDataFeaturePrivate::createWayStyle( Qt::transparent, Qt::transparent, false, false ); s_defaultStyle[GeoDataFeature::Building] = GeoDataFeaturePrivate::createStyle( 1, 0, QColor( 0xBE, 0xAD, 0xAD ), QColor( 0xBE, 0xAD, 0xAD ).darker(), true, true, Qt::SolidPattern, Qt::SolidLine, Qt::RoundCap, false ); s_defaultStyle[GeoDataFeature::Satellite] = new GeoDataStyle( QImage( MarbleDirs::path( "bitmaps/satellite.png" ) ), QFont( defaultFamily, defaultSize, 50, false ), s_defaultLabelColor ); s_defaultStyleInitialized = true; s_defaultFont = QFont("Sans Serif"); QFont tmp; // Fonts for areas ... tmp = s_defaultStyle[GeoDataFeature::Continent]->labelStyle().font(); tmp.setLetterSpacing( QFont::AbsoluteSpacing, 2 ); tmp.setCapitalization( QFont::SmallCaps ); tmp.setBold( true ); s_defaultStyle[GeoDataFeature::Continent]->labelStyle().setFont( tmp ); // Fonts for areas ... tmp = s_defaultStyle[GeoDataFeature::Mare]->labelStyle().font(); tmp.setLetterSpacing( QFont::AbsoluteSpacing, 2 ); tmp.setCapitalization( QFont::SmallCaps ); tmp.setBold( true ); s_defaultStyle[GeoDataFeature::Mare]->labelStyle().setFont( tmp ); // Now we need to underline the capitals ... tmp = s_defaultStyle[GeoDataFeature::SmallNationCapital]->labelStyle().font(); tmp.setUnderline( true ); s_defaultStyle[GeoDataFeature::SmallNationCapital]->labelStyle().setFont( tmp ); tmp = s_defaultStyle[GeoDataFeature::MediumNationCapital]->labelStyle().font(); tmp.setUnderline( true ); s_defaultStyle[GeoDataFeature::MediumNationCapital]->labelStyle().setFont( tmp ); tmp = s_defaultStyle[GeoDataFeature::BigNationCapital]->labelStyle().font(); tmp.setUnderline( true ); s_defaultStyle[GeoDataFeature::BigNationCapital]->labelStyle().setFont( tmp ); tmp = s_defaultStyle[GeoDataFeature::LargeNationCapital]->labelStyle().font(); tmp.setUnderline( true ); s_defaultStyle[GeoDataFeature::LargeNationCapital]->labelStyle().setFont( tmp ); }
QSizeF HelperKaraokeLabel::RenderToImage(QImage** ppimage, const QString& lyric, QList<RubyChar>& ruby, const QColor& textCol, const QColor& strokeColor) { if (!ppimage) { return QSizeF(); } auto pimage = *ppimage; if (pimage) { delete pimage; pimage = NULL; *ppimage = NULL; } auto setting = Settings::getInstance(); _textColor = textCol; _strokeColor = strokeColor; // text setText(lyric); // set font QFont f; f.setFamily(setting->fontName()); f.setWeight(99); f.setPixelSize(setting->fontSize()); f.setLetterSpacing(QFont::SpacingType::AbsoluteSpacing, 1); setFont(f); // calc size QSizeF size = minimumSizeHint(); ////////////////////////////////////////////////////////////////////////// // ruby int rubyCount = ruby.size(); _maxSubW = 0.0; _maxSubH = setting->rubyFontSize(); QList<HelperKaraokeLabel*> subList; for (int i = 0; i < rubyCount; i++) { HelperKaraokeLabel* sub = new HelperKaraokeLabel(this); sub->_isRuby = true; sub->setRubyHidden(_isRubyHidden); subList.append(sub); sub->setText(ruby[i].ruby()); sub->_textColor = _textColor; sub->_strokeColor = _strokeColor; // set font QFont f; f.setFamily(setting->fontName()); f.setWeight(99); f.setPixelSize(setting->rubyFontSize()); f.setLetterSpacing(QFont::SpacingType::AbsoluteSpacing, 1); sub->setFont(f); QSizeF subsize = sub->minimumSizeHint(); if (_maxSubW < subsize.width()) { _maxSubW = subsize.width(); } // should be even!! /* if (_maxSubH < subsize.height()) { _maxSubH = subsize.height(); }*/ } // rearrange size _maxSubH += 1.0; // shadow // /--/ // _rubyOffset > 0 // /<--->/ // _maxSubW // |--|a|----|b|----|c|--| // AAAAAAAAAAAAAAAAA // // |a|b|c| // ---A--- // /--/ // _rubyOffset < 0 size.setHeight(size.height() + _maxSubH + setting->rubyVSpace()); if (rubyCount > 0) { qreal subTotalW = _maxSubW*rubyCount; qreal oWidth = size.width(); if (oWidth < subTotalW) { size.setWidth(_maxSubW*rubyCount); _rubyOffset = (oWidth - subTotalW) / 2.0; } else { auto oMaxSubW = _maxSubW; /* _maxSubW = ((qreal)(oWidth)) / rubyCount; _rubyOffset = oMaxSubW/2; */ _rubyOffset = (oWidth - rubyCount*oMaxSubW) / rubyCount / 2.0; _maxSubW = oMaxSubW + _rubyOffset * 2.0; } for (int i = 0; i < rubyCount; i++) { subList[i]->setFixedSize(QSize(_maxSubW, _maxSubH+setting->rubyVSpace())); subList[i]->_maxSubW = _maxSubW; subList[i]->_maxSubH = _maxSubH; auto geo = subList[i]->geometry(); geo.setX(geo.x() + i*_maxSubW + (_rubyOffset>0 ? _rubyOffset : 0)); subList[i]->setGeometry(geo); } /* auto geo = this->geometry(); geo.setY(maxSubH + subSpaceH); this->setGeometry(geo); */ } setFixedSize(size.toSize()); // render to image pimage = new QImage(size.toSize(), QImage::Format_ARGB32); QPainter painter(pimage); pimage->fill(qRgba(0, 0, 0, 0)); render(&painter, QPoint(), QRegion(), QWidget::DrawChildren); // assign return value *ppimage = pimage; return size; }
void tst_QFont::serialize_data() { QTest::addColumn<QFont>("font"); // The version in which the tested feature was added. QTest::addColumn<QDataStream::Version>("minimumStreamVersion"); QFont basicFont; // Versions <= Qt 2.1 had broken point size serialization, // so we set an integer point size. basicFont.setPointSize(9); // Versions <= Qt 5.4 didn't serialize styleName, so clear it basicFont.setStyleName(QString()); QFont font = basicFont; QTest::newRow("defaultConstructed") << font << QDataStream::Qt_1_0; font.setLetterSpacing(QFont::AbsoluteSpacing, 105); QTest::newRow("letterSpacing") << font << QDataStream::Qt_4_5; font = basicFont; font.setWordSpacing(50.0); QTest::newRow("wordSpacing") << font << QDataStream::Qt_4_5; font = basicFont; font.setPointSize(20); QTest::newRow("pointSize") << font << QDataStream::Qt_1_0; font = basicFont; font.setPixelSize(32); QTest::newRow("pixelSize") << font << QDataStream::Qt_3_0; font = basicFont; font.setStyleHint(QFont::Monospace); QTest::newRow("styleHint") << font << QDataStream::Qt_1_0; font = basicFont; font.setStretch(4000); QTest::newRow("stretch") << font << QDataStream::Qt_4_3; font = basicFont; font.setWeight(99); QTest::newRow("weight") << font << QDataStream::Qt_1_0; font = basicFont; font.setUnderline(true); QTest::newRow("underline") << font << QDataStream::Qt_1_0; font = basicFont; font.setStrikeOut(true); QTest::newRow("strikeOut") << font << QDataStream::Qt_1_0; font = basicFont; font.setFixedPitch(true); // This fails for versions less than this, as ignorePitch is set to false // whenever setFixedPitch() is called, but ignorePitch is considered an // extended bit, which were apparently not available until 4.4. QTest::newRow("fixedPitch") << font << QDataStream::Qt_4_4; font = basicFont; font.setLetterSpacing(QFont::AbsoluteSpacing, 10); // Fails for 4.4 because letterSpacing wasn't read until 4.5. QTest::newRow("letterSpacing") << font << QDataStream::Qt_4_5; font = basicFont; font.setKerning(false); QTest::newRow("kerning") << font << QDataStream::Qt_4_0; font = basicFont; font.setStyleStrategy(QFont::NoFontMerging); // This wasn't read properly until 5.4. QTest::newRow("styleStrategy") << font << QDataStream::Qt_5_4; font = basicFont; font.setHintingPreference(QFont::PreferFullHinting); // This wasn't read until 5.4. QTest::newRow("hintingPreference") << font << QDataStream::Qt_5_4; font = basicFont; font.setStyleName("Regular Black Condensed"); // This wasn't read until 5.4. QTest::newRow("styleName") << font << QDataStream::Qt_5_4; font = basicFont; font.setCapitalization(QFont::AllUppercase); // This wasn't read until 5.6. QTest::newRow("capitalization") << font << QDataStream::Qt_5_6; }
void QFontProto::setLetterSpacing(int type, qreal spacing) { QFont *item = qscriptvalue_cast<QFont*>(thisObject()); if (item) item->setLetterSpacing((QFont::SpacingType)type, spacing); }
static QFont fontFromObject(QQmlV4Handle object, QV4::ExecutionEngine *v4, bool *ok) { if (ok) *ok = false; QFont retn; QV4::Scope scope(v4); QV4::ScopedObject obj(scope, object); if (!obj) { if (ok) *ok = false; return retn; } QV4::ScopedString s(scope); QV4::ScopedValue vbold(scope, obj->get((s = v4->newString(QStringLiteral("bold"))))); QV4::ScopedValue vcap(scope, obj->get((s = v4->newString(QStringLiteral("capitalization"))))); QV4::ScopedValue vfam(scope, obj->get((s = v4->newString(QStringLiteral("family"))))); QV4::ScopedValue vstyle(scope, obj->get((s = v4->newString(QStringLiteral("styleName"))))); QV4::ScopedValue vital(scope, obj->get((s = v4->newString(QStringLiteral("italic"))))); QV4::ScopedValue vlspac(scope, obj->get((s = v4->newString(QStringLiteral("letterSpacing"))))); QV4::ScopedValue vpixsz(scope, obj->get((s = v4->newString(QStringLiteral("pixelSize"))))); QV4::ScopedValue vpntsz(scope, obj->get((s = v4->newString(QStringLiteral("pointSize"))))); QV4::ScopedValue vstrk(scope, obj->get((s = v4->newString(QStringLiteral("strikeout"))))); QV4::ScopedValue vundl(scope, obj->get((s = v4->newString(QStringLiteral("underline"))))); QV4::ScopedValue vweight(scope, obj->get((s = v4->newString(QStringLiteral("weight"))))); QV4::ScopedValue vwspac(scope, obj->get((s = v4->newString(QStringLiteral("wordSpacing"))))); QV4::ScopedValue vhint(scope, obj->get((s = v4->newString(QStringLiteral("hintingPreference"))))); QV4::ScopedValue vkerning(scope, obj->get((s = v4->newString(QStringLiteral("kerning"))))); QV4::ScopedValue vshaping(scope, obj->get((s = v4->newString(QStringLiteral("preferShaping"))))); // pull out the values, set ok to true if at least one valid field is given. if (vbold->isBoolean()) { retn.setBold(vbold->booleanValue()); if (ok) *ok = true; } if (vcap->isInt32()) { retn.setCapitalization(static_cast<QFont::Capitalization>(vcap->integerValue())); if (ok) *ok = true; } if (vfam->isString()) { retn.setFamily(vfam->toQString()); if (ok) *ok = true; } if (vstyle->isString()) { retn.setStyleName(vstyle->toQString()); if (ok) *ok = true; } if (vital->isBoolean()) { retn.setItalic(vital->booleanValue()); if (ok) *ok = true; } if (vlspac->isNumber()) { retn.setLetterSpacing(QFont::AbsoluteSpacing, vlspac->asDouble()); if (ok) *ok = true; } if (vpixsz->isInt32()) { retn.setPixelSize(vpixsz->integerValue()); if (ok) *ok = true; } if (vpntsz->isNumber()) { retn.setPointSize(vpntsz->asDouble()); if (ok) *ok = true; } if (vstrk->isBoolean()) { retn.setStrikeOut(vstrk->booleanValue()); if (ok) *ok = true; } if (vundl->isBoolean()) { retn.setUnderline(vundl->booleanValue()); if (ok) *ok = true; } if (vweight->isInt32()) { retn.setWeight(static_cast<QFont::Weight>(vweight->integerValue())); if (ok) *ok = true; } if (vwspac->isNumber()) { retn.setWordSpacing(vwspac->asDouble()); if (ok) *ok = true; } if (vhint->isInt32()) { retn.setHintingPreference(static_cast<QFont::HintingPreference>(vhint->integerValue())); if (ok) *ok = true; } if (vkerning->isBoolean()) { retn.setKerning(vkerning->booleanValue()); if (ok) *ok = true; } if (vshaping->isBoolean()) { bool enable = vshaping->booleanValue(); if (enable) retn.setStyleStrategy(static_cast<QFont::StyleStrategy>(retn.styleStrategy() & ~QFont::PreferNoShaping)); else retn.setStyleStrategy(static_cast<QFont::StyleStrategy>(retn.styleStrategy() | QFont::PreferNoShaping)); } return retn; }