From d1ee78e58aef92b526244955da0b4302edbc43e1 Mon Sep 17 00:00:00 2001 From: Jaye Evins Date: Fri, 27 Mar 2026 15:47:46 -0400 Subject: [PATCH] Fix incorrect font sizes (#321) Recently, when chasing the font size differences between the wayland and xcb Qt backends, I ended up normalizing on the wayland sizing when bypassing the backend's font metrics calculation (#272). Unfortunately, the wayland backend was not rendering the font sizes correctly, and it was a mistake to duplicate its behavior. * Assume a virtual DPI of 72 pixels/in instead of 96 when compulting font size - Based on testing, this produces the correct font size - Updated reference labels. * No longer need to scale fonts when importing glabels-3 files. - The glabels-3 font sizes were correct afterall! (#306) - No longer need to compensate for scale factor in unit tests when importing glabels-3 files. --- model/ModelTextObject.cpp | 9 ++++++--- model/XmlLabelParser_3.cpp | 4 +--- model/unit_tests/TestXmlLabel.cpp | 12 +++--------- test-data/simple-text-liberation-sans.pdf | Bin 15670 -> 15641 bytes test-data/simple-text-liberation-serif.pdf | Bin 16476 -> 16424 bytes 5 files changed, 10 insertions(+), 15 deletions(-) diff --git a/model/ModelTextObject.cpp b/model/ModelTextObject.cpp index 9a6779b..29d0a0d 100644 --- a/model/ModelTextObject.cpp +++ b/model/ModelTextObject.cpp @@ -42,13 +42,16 @@ namespace /// /// Calculate pixel size /// - /// Assume a virtual DPI of 96 pixels/inch for all QPainter contexts. + /// Assume a virtual DPI of 72 pixels/inch for all QPainter contexts. /// Ideally, we should use pointSizes for device independence, but as - /// Qt-6.4 on X11, Wayland, and MacOS this approach has better results. + /// of Qt-6.4, the xcb (X11) and Wayland backends will render the same + /// font differently. Currently this function is basically the unity + /// function (i.e. 1 pt = 1 pixel) with rounding, but is a placeholder + /// that may need to be tweaked for different backends. /// int pixelSize( double pointSize ) { - const double virtual_dpi = 96; + const double virtual_dpi = 72; return qMax( 1, qRound( pointSize * virtual_dpi/72.0 ) ); } } diff --git a/model/XmlLabelParser_3.cpp b/model/XmlLabelParser_3.cpp index 4a70218..b1fb325 100644 --- a/model/XmlLabelParser_3.cpp +++ b/model/XmlLabelParser_3.cpp @@ -53,8 +53,6 @@ namespace using namespace glabels::model; const uint32_t GDK_PIXBUF_MAGIC_NUMBER {0x47646b50}; - - const double FONT_SCALE_FACTOR {0.75}; // In glabels-3, fonts were rendered at 75% of specified fontsize const Distance MARGIN_OFFSET { Distance::pt(3) }; // In glabels-3, margin was not accounted for in text baseline calculations typedef enum @@ -557,7 +555,7 @@ namespace glabels::model /* font attrs */ fontFamily = XmlUtil::getStringAttr( element, "font_family", "Sans" ); - fontSize = XmlUtil::getDoubleAttr( element, "font_size", 10 ) * FONT_SCALE_FACTOR; + fontSize = XmlUtil::getDoubleAttr( element, "font_size", 10 ); fontWeight = getWeightAttr( element, "font_weight", QFont::Normal ); fontItalicFlag = XmlUtil::getBoolAttr( element, "font_italic", false ); diff --git a/model/unit_tests/TestXmlLabel.cpp b/model/unit_tests/TestXmlLabel.cpp index e60a162..c925151 100644 --- a/model/unit_tests/TestXmlLabel.cpp +++ b/model/unit_tests/TestXmlLabel.cpp @@ -60,12 +60,6 @@ using namespace glabels::barcode; using namespace glabels::merge; -namespace -{ - const double FONT_SCALE_FACTOR {0.75}; -} - - void TestXmlLabel::initTestCase() { QCoreApplication::setOrganizationName( glabels::model::Version::ORGANIZATION_NAME ); @@ -548,7 +542,7 @@ void TestXmlLabel::parser_3ReadFile() QCOMPARE( modelTextObject0->shadow(), false ); QCOMPARE( modelTextObject0->text(), QString( "Hello, my name is" ) ); QCOMPARE( modelTextObject0->fontFamily(), QString( "Sans" ) ); - QCOMPARE( modelTextObject0->fontSize(), 16 * FONT_SCALE_FACTOR ); + QCOMPARE( modelTextObject0->fontSize(), 16 ); QCOMPARE( modelTextObject0->fontWeight(), QFont::Bold ); QCOMPARE( modelTextObject0->fontItalicFlag(), false ); QCOMPARE( modelTextObject0->textLineSpacing(), 1.0 ); @@ -566,7 +560,7 @@ void TestXmlLabel::parser_3ReadFile() QCOMPARE( modelTextObject1->shadow(), false ); QCOMPARE( modelTextObject1->text(), QString( "${Name}" ) ); QCOMPARE( modelTextObject1->fontFamily(), QString( "Sans" ) ); - QCOMPARE( modelTextObject1->fontSize(), 20 * FONT_SCALE_FACTOR ); + QCOMPARE( modelTextObject1->fontSize(), 20 ); QCOMPARE( modelTextObject1->fontWeight(), QFont::Normal ); QCOMPARE( modelTextObject1->fontItalicFlag(), false ); QCOMPARE( modelTextObject1->textLineSpacing(), 1.0 ); @@ -584,7 +578,7 @@ void TestXmlLabel::parser_3ReadFile() QCOMPARE( modelTextObject2->shadow(), false ); QCOMPARE( modelTextObject2->text(), QString( "Department: ${Department}" ) ); QCOMPARE( modelTextObject2->fontFamily(), QString( "Sans" ) ); - QCOMPARE( modelTextObject2->fontSize(), 11 * FONT_SCALE_FACTOR ); + QCOMPARE( modelTextObject2->fontSize(), 11 ); QCOMPARE( modelTextObject2->fontWeight(), QFont::Normal ); QCOMPARE( modelTextObject2->fontItalicFlag(), false ); QCOMPARE( modelTextObject2->textLineSpacing(), 1.0 ); diff --git a/test-data/simple-text-liberation-sans.pdf b/test-data/simple-text-liberation-sans.pdf index c99461f091c44479e98be9bdbbc8e18db31b6b58..3e3f06cb0eebe7c1f0e7eaf0f24fb5eae5e2da18 100644 GIT binary patch delta 10466 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 delta 10496 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�*7(9Z zrMYzY35A(S+m2$xsLJeDq5)H_=_+hG<2(7Wc~I~C0&CPqj%o!;Ah{PaXb*IFN~)W& zYgzIY| z)=lj>{R4;}BPYeCKcSvJH$p{0DjbwbkCl z&}#BlV$+$l!i9;U^xm5iEk`b1gL)Y~7E=sy3gk3&aHHN(u@(`LG))yIQ5+k75<6u| zUr(09b6?`$U$h1@W;MsupxHw0VC2lf5iO}9s-k|lN*dX__}rSK=$N}!bRcf}$f324 zg)1Jv+saaAO4*!~+{)RXSIlEBJbvwhL#K-@wi8b_L58s+(vieVi~jqFCL2{>9vNlX zVIc$MULI~FcKUZInVlS{Z?I#Mnj5Jxt*LQSGh-*s<4oE9`-@Yvx71putD2gTtYL@u zh3R5sZ0Txq2H5gKV>vkve867Xo}19vF?F#L4e>xHGuYCaq6Zcq1|+%B>qEZLPtwa00i1kDow%eiP;w~IQ{_Y zkiKz69xmO`PE>U{o1(GmS!j_=3}Gu>rwZhmP4C;7r)ChRk=MZ90nT)HTe1s%c6sUS zpXRkD3(PF^jV?}0T7C8Qe!*o4Aa#*@4%TShyEso}5_TIi%>ULxa&dm{w!7p=&tP;y zqG_CW+r+o~Dj=_hKH)K0Q=Y;``Z*!J{E40NO#No)IkQgZ^!w$V<%@v z69b$7iR=t55tzAZ?69L?00Tc8>(0c8S85QbqBlJ+&P8LIrnx2p8R8oa1KM={5edXK zt`L4I8Jk6_BuQM*ZA`Asu#B`&>Jb~w5Yrh2L&o^-R6fke+s_MQB(foyJg&8dmW`Je zuMGr)fM`6~uf$p9nZ@|;GwR;RJmQ;6T$lt=NNJ(4zU|=(YECMcKzG)YFDe>~YER~O z1Oh752O|w}gEn4#byp61Px#WJ*XLwH^!thEjnbcFE5URad81 z7yeL9pU2*?wvo>sy^Tc%f2|(=NN9|2^M8fM+`={>AHZ|V>EaCLXbr0_Xqh^z4!6~>J@D(Sb&1;CX9D&cyIA(zrP9}#FkzlMBS7GXfahWKFR=Xpdl+Pm3D2IBU` ziw4fuJ}L~9x2@C4)mhg%mY0+pc~d8=>W#yZzWQ753-q2G7+t%6eX|rqh4>O^|w#I|0={j$54SG6>(??7+*`%qQO=r0o}#;h&N%|TV`tkt)U7;D2K(j zvyK~ILCN!{yoYtEw^&(;S2o#;Q#8LBf2gf4J07g}c!26<`JRs#sddGUwbD{cN}A+R zkxy%DWkDc=>d~rfr#^&Mqmv_L)YT3f#QyiWBVj~kgNqevBXeVQHiKluOs*dT? zKxO71=s?oYE?1ob%DnmIBgQV66HNSu{SU2PJ=cl$Z}Ylm9^{~xdHmvDNC-)OKI_`Y zFRlUG`Rm8W!wKKLi9%m4YrqY>*P~T%FB}!rcwiO|52JziA&=k%5D~;jgRI^@EV64> zo_-8fE$p;p#I&*2skgx5ZStunHfW{vUeI+t(`zk3m2-sjjG2V9w*IyZypE2|cUHTc zsCuWa{=iU1y#wMVvTI-Bxhq&9&1RoTdII#SPdU-5jS>2Ny3rF%XohByw`=zIrrUsD zd{8SMpU~_04a8leN{&xmg}<&>8caN1ee1mpO1$E0e9)Kv)Bs0y;kjx57p9?ZgDVAu zA}zq{@TjkTP`-5_Ps}^JBv~>8JLeXf1#3|0=4Hcz?Y8`#|2*gQ)$0wcPN|VnDh;?d z*qop)xFhu+^6lRee4%q~s)Sa>nbU!xYtWpV&bG?Grt^Nh`XeSN#q_iVhi~HJ8 zvpvIKoK-llAf9!(UGyNADnCI-()d=TpR;B|bITFGn1q!%!Sx3P|DcIz3$z4F_VX#(=pql=^%Hnq6(^i<9)LQc{kU4gy2wVg>AmEZsudy z->C0UB?tdZZtl${3!pcCtX$1D5SPv%L4#rD%k)NogM7K?4{m^2emM6y=xeW&Ek9Ng zud^CCRBu*$ak|<8UUqvz)&PsEX`mup{*q+Ju=QEZWVdeP{jgn-r#}Q2q#vpF#g_OT zx$vvZ<+dRM%tBDeknL5>=p}1PsN2Py6AaEeF<#M)KeyXl8SEJ4AR)%TbbuO< zM6YoJ-^OeAD%0@?rJKPC{ju5<^rK%Teck7|hFo3l?I6_P%M9B~4O0nph*Fv+u8^g{1Jkj@rq`dLp*2)<LnaA%A9x)1dnBRvW0DeO1oL4Aypf<>n)C zJ7_JR;VL9;f#B^5;;Q8CY0YMPrRx;S*q`KWl`3%C?IGf}5oCN#mLpJvco!_FQJ^%N zvcPywUdf&@RT=*fD>(R@2U{a&=440E%FTyU#wf<(U>#Jm-oks zkDM>&8&)FL7q+bRFo7{-G-r@ zLuSZcDQr#a2?SWt;dWj!LMc-UQ1C82JAvfPc?!PxNh^D8O?_7P>3__kQk+aj*H&%d z2}zMOX#t)ri_jjPz#s#8(=AW$H~7mCq%wr`-_}^BT1Dq$ol`xH%_$TN{==n|xat?O z^gn(3J|l{x_u&~fTSTXt;vE+1PU@HkPzpiF(I$n+W<91ScuJB%Dk=+Ugd-Lid=)Pr zAe0Odj?E6GS&T7)GFSig%HJuZh^YsW#MOB5`iIs`k{kpFEzFK9d zQW_Bidz3vC!lI=wipuIzdxg=wOBxP&9T*hCNO!m?$wZLj&Zd&D1ScBsMmuT?X^pn8 zmk$V=u27XGL;4574sfOyhjaAW6B&6=P2mKeTGYedZGrm5OjM#c$8XVR;V+nBby9rk z6t%m3elgJDHh~$%vB9R~( zJ*2J?74M#5%p+Ip>zjmPpg3V6fON4b%MMuLrLPIrQZesWut>Z5xe;WBD2{;kLXQ$_ ze;b{~;${}f2W%;gm?v8}dCQHH({mKts+tl9Zk4EN_aq`!la~@}%~%zx3&e5x?y1l3 z#o7zmShV-nQQ2Z+noF5)>C%wVB^cAw24)+}C`f3ifc-j)KFR)(7zA=A z6>R2w_F5$EBOt|mma+WW7f0h3|8%G#M58FW7Ra}nE3H3tqE$;9e83bz$0<{GUV6QTVCGgPpCIJbZ==p^|wuRof z%h<1HMXy387ywmCsr3(~_zeQa)T+ur3Y0l>)8w~_{NuVmfciyqk zf13Wq)w1_OUtnX%?VY&@Z}&TK{bWi6w~kIe z;e%zKv~ivZ$OytMsF;UZjb8n2uq-h+3Km*L^BY2ydWul;MEDF-Hmn$A6&eu3Tj!yDke7{R#PIR@3XlM#<@7b9Wo7@ty%b7q%}YDwmoBf zbj{(OH2;UR^24X$UczdUWb->4z;Th5PW@o53Qx1KTsyC6QN`OZc0jovgPLec#{jak zIYx3A)$xhJ+GrhiqmRPFt-^n_Zxq_HucXk}cEn6d$krrp$(6pGKlc`~Zg(y+tm?>` zn48vWZPwk+ylMQdd-`V;!+|@5yjq_aGQpn_iYU2+s}eeAC%vBV*blb=SnHJv$-(YF1 zF!b$Gu$LnYgG#nH`NQV`mKs9yPQDsYZrP2mY{br(RY)q4w{hRF@7T+|al^&p57V2K zVmj=&`#U%)J*MFvzR45d0loTHwK@Kw`4MUVHRb&zw@>z82u^2i4XA@c_>>4% z>~aidujL)IFn$MeqcBZABvDF_H8HzmW*GzCSpt!*E@Z4Z_sOci5WMpC!n*HlI@<6- z5dbPm9oj2wRUO{!7S@X|zh<<~ca7nmo-|nmL7850tqxQkK_Zc_zhwvq+f%&WCJnAn zqox{u+@5`&M=^`X5N3TY9zUe(4W80M2^y?6%;~svxE2R&TR%>mpuAK^BzjUqn(e*n zO7_m${!r5>>9BG>zQ7r+HXV5Xv^Gz}1Pt}SbYxEZjGU5<$75jK6=n*AsTu+}=5{Re z8)Ykk{T#F%r$)kYGBYI;mEA?gYt?@T-hU@;r%TS4It+liWYngF zs7@iI!Wo3I<$4g7+t=OV-+v#W=OHy*#V{3V003GEcXt4z)nFQW|4W0Ulm0g%swfbqOOUlVs?ML?k=LRlv)ASR*X(!xXZEke zkVPV0M<*+bzlf;z6ZMQhhwG0*vizt>#+5{n5D^sC6IDSo+Q#I4^e*uIjg1A&Fe~N} zKihyedfH@971B&m^q*fJgDxdh*!@{I?>vNE)x5>$TwTP(!0|uC%)W_T(j=xDtST$a ztRYCp$Qv`wUWyo(;Lcbc5(`H1_s{iEMC=}qYNa~dZFCuOXocr^#{X~(WgT`Vm>joI zi%uM6u^BKd9`(nKOAD1{_2B@>yQ;-tic5rKWZ;jPRJS*vF;x2kN{_Nb(;QP#e!aBT zicj{{$^|-y-^(NZ9N2MGF-}udoP#k|bB6y?=_Qg-mrTfBYO&5kc05k>6H%CT5;d8N z+$e`0l>o1$YTogyS2HK=bcA1dSZdd*A5v<{tG2<5W-;a}I|3-^h$R*vXa3i{M=`sI zi5JKYk)1lYtM|;tW650RrbH;R;tS{ZLyM++S&iD_+bHbop`>rr%4#yhz(x=fD*q~G zU8g?(c7?}briDIXR7~^`Uc1fgeNT|Q&kVWcKJx#Vmhi81N7`CiyNT zmuIKUyg1Oht}7Zb`m+)Y7D~oGm5fbhn6CHd8;zQ*Y)YjjI)3@KbW4(1E}y=|k~D=o zv;QQ(6;-o(n6Db>hS~E?{fe+2GoHxcZjjvz!UTzpkmWhvNk~QYl0FXepTo}ro7Aht4~6`Qnt}>!>GSH&Ke7&J&JvpHVo*Fz zq~)HZ!2YrO*TK^zvoeH|kA=xSwRdPieZvbnOu3OVS!8m~M`LwmFN-o0!JsMLPqL>hkMs<5+gCAby`m%Or=E|}D<1os1^9yJ lGP7}Vvi>K=&d&Z{3$w9vaK#}CiX$+wk|I!2ipq;2{2#gC_*DP^ delta 11161 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