diff --git a/conf/editannottooldialog.h b/conf/editannottooldialog.h --- a/conf/editannottooldialog.h +++ b/conf/editannottooldialog.h @@ -40,7 +40,8 @@ ToolPolygon, ToolTextMarkup, ToolGeometricalShape, - ToolStamp + ToolStamp, + ToolTypewriter }; explicit EditAnnotToolDialog( QWidget *parent = nullptr, const QDomElement &initialState = QDomElement() ); diff --git a/conf/editannottooldialog.cpp b/conf/editannottooldialog.cpp --- a/conf/editannottooldialog.cpp +++ b/conf/editannottooldialog.cpp @@ -133,6 +133,7 @@ engineElement.appendChild( annotationElement ); const QString color = m_stubann->style().color().name( QColor::HexArgb ); + const QString textColor = static_cast< Okular::TextAnnotation * >( m_stubann )->textColor().name(); const QString opacity = QString::number( m_stubann->style().opacity() ); const QString width = QString::number( m_stubann->style().width() ); @@ -271,10 +272,10 @@ Okular::TextAnnotation * ta = static_cast( m_stubann ); toolElement.setAttribute( QStringLiteral("type"), QStringLiteral("typewriter") ); engineElement.setAttribute( QStringLiteral("type"), QStringLiteral("PickPoint") ); - engineElement.setAttribute( QStringLiteral("color"), color ); engineElement.setAttribute( QStringLiteral("block"), QStringLiteral("true") ); annotationElement.setAttribute( QStringLiteral("type"), QStringLiteral("Typewriter") ); annotationElement.setAttribute( QStringLiteral("color"), color ); + annotationElement.setAttribute( QStringLiteral("textColor"), textColor ); annotationElement.setAttribute( QStringLiteral("width"), width ); if ( ta->textFont() != QApplication::font() ) annotationElement.setAttribute( QStringLiteral("font"), ta->textFont().toString() ); @@ -362,6 +363,7 @@ ta->setInplaceIntent( Okular::TextAnnotation::TypeWriter ); ta->style().setWidth( 0.0 ); ta->style().setColor( QColor(255,255,255,0) ); + ta->setTextColor( Qt::black ); m_stubann = ta; } } @@ -504,6 +506,8 @@ f.fromString( annotationElement.attribute( QStringLiteral("font") ) ); ta->setTextFont( f ); } + if ( annotationElement.hasAttribute( QStringLiteral("textColor") ) ) + ta->setTextColor( QColor( annotationElement.attribute( QStringLiteral("textColor") ) ) ); } // Common properties diff --git a/core/annotations.h b/core/annotations.h --- a/core/annotations.h +++ b/core/annotations.h @@ -819,6 +819,16 @@ */ QFont textFont() const; + /** + * Sets the @p color of the text annotation. + */ + void setTextColor( const QColor &color ); + + /** + * Returns the font color of the text annotation. + */ + QColor textColor() const; + /** * Sets the inplace @p alignment of the text annotation. */ diff --git a/core/annotations.cpp b/core/annotations.cpp --- a/core/annotations.cpp +++ b/core/annotations.cpp @@ -1028,6 +1028,7 @@ TextAnnotation::TextType m_textType; QString m_textIcon; QFont m_textFont; + QColor m_textColor; int m_inplaceAlign; NormalizedPoint m_inplaceCallout[3]; NormalizedPoint m_transformedInplaceCallout[3]; @@ -1087,6 +1088,18 @@ return d->m_textFont; } +void TextAnnotation::setTextColor( const QColor &color ) +{ + Q_D( TextAnnotation ); + d->m_textColor = color; +} + +QColor TextAnnotation::textColor() const +{ + Q_D( const TextAnnotation ); + return d->m_textColor; +} + void TextAnnotation::setInplaceAlignment( int alignment ) { Q_D( TextAnnotation ); @@ -1160,6 +1173,8 @@ textElement.setAttribute( QStringLiteral("icon"), d->m_textIcon ); if ( d->m_textFont != QApplication::font() ) textElement.setAttribute( QStringLiteral("font"), d->m_textFont.toString() ); + if ( d->m_textColor.isValid() ) + textElement.setAttribute( QStringLiteral("fontColor"), d->m_textColor.name() ); if ( d->m_inplaceAlign ) textElement.setAttribute( QStringLiteral("align"), d->m_inplaceAlign ); if ( d->m_inplaceIntent != Unknown ) @@ -1246,6 +1261,8 @@ m_textIcon = e.attribute( QStringLiteral("icon") ); if ( e.hasAttribute( QStringLiteral("font") ) ) m_textFont.fromString( e.attribute( QStringLiteral("font") ) ); + if ( e.hasAttribute( QStringLiteral("fontColor") ) ) + m_textColor = QColor( e.attribute( QStringLiteral("fontColor") ) ); if ( e.hasAttribute( QStringLiteral("align") ) ) m_inplaceAlign = e.attribute( QStringLiteral("align") ).toInt(); if ( e.hasAttribute( QStringLiteral("intent") ) ) diff --git a/doc/configure-annotations.png b/doc/configure-annotations.png index 08981988fbb4ad2184ba7775b6ba3820a7e1cbcb..4cffd1e452e9bf8dac3cd1c4feb9828c9b481ccf GIT binary patch literal 23450 zc$|g21z1$?+Bd35$q<6T0+sF>T1r7WRJs{JNl{|xZbyNkOX+Uu8oIl?ySuy2_}}~8 z@BY4XuIoHJv(^*$Q+NFCd#!a{_$$gw<6ynOdi3ZKj;xG?@}oyj0OXGs^9izrH};kr zS$U-RK~?h6|4(}SPgZ;U7!Mnp_r(jYSFc`?le1A!P*71((a^Bb(6G|buu#!5)Ba5? z|76DhWU9ZJ0ePkWCsEO}{F51J=$UEg87b(QXz7_~7+4q>7-$(-Xc?HP8JLk}DrA+B zk&2O#2AP?dSpG>AEG%qnY^)sIT>m6Y9^RJ%0*~IlB^CLb9=&_l)7!VRv-|L0>Hhxy z_V)JV_CM+3_VxyOyZ)zg{XebO*Vi}KJIL$B#pUJY)y+l!>G}E0`NhfE*~Qu7$?56Y z+1b(A*~!`Q$=T`l>B&EZvw!8ov%l%+c;n>c(iOi2S9xbnJoUP@ru5B!@uC1(XEG{iCF0U*uuPrW3k1wq?FP=3op8j(^ zTUcD4UtHc_sG46~w3~Z$G5>RJem-gXxPE&3U^;zzW_D$=adc{WYHHef?9s^hU=y?Coz~InOS>J3>@6lv0qNlgFrL$wRBdn>p^%1>8Wmqli>{P#!;i@&p6x zDLy71F&Qm@!NegTAR_WXRfUlH&1(r+B|}3oQh7Cf90q9$ZdQDB0Az`VhJ%idiu&a8 zj7#*@+M`FBsIn5Gs!r3pBahL&6rZ6r!mz3zoS#reZ!T5#&3@i~v|sy(y%BVX^7jT8 zY5G^`^`*}wh%PiO{ap|SJM!XEZlF(e${o)Bo#b7}A&B7zl;%<_Ky*~5?u$lzQGtWh zYFnG-+zJBciPEbLoMYK8$=qyXDp5Jwmnhzs_ZOIP?tQe-)*y_5&iT*M<%qaUa zKMqLgF(JoMze`{f`WHWJ9PBI;D&|krnf-xUY?+_L{~>|1Xc7{2p-P+vPT>fK2T?!a zDBulT0qcdpvO8&oIZf&U#f@qc1Kj~E;#BGsFMqtiDcsitIAJN@mvD=`0_uPI8}A4i zs_RsIN;{xhd4!$ynR9>yPQpj@6ivp>xYwq!cu0oJpw+0?7H8!*JQl4Tg*m|gymXA@ z8yu&z(P)%o6r5Y-)I=?n{Rk^m^G`bo)C=9H^%AAM0Rws9PprwQX#UTdFN2C7Mh}0H zCk9cWE`FhU5|IL1a;VR?CnA<@Lm`@yIP|E#X=Rs(Oax)z56sdNJxDHkabHYs)j=qi<&n2%^ho$txH2TpXHp9D#vQXw7rt2 zQcPQpiIS?F?ugr!F>iZj=2kUz+7Ih)j$8$~4HSJs&G@F&kA_Qc6?s}dO`sW$aPTBA zxyJ?)bM$+8E6A-a9|3f%VwWuiq)xAo%dBf3#E&8_rh8yKvh35<^Y>ODMFd|r0ivBO zSt3j<@Yx9v$ZKO8|+W9LXzNYU2iNghBPQ*NtwQ*>ESl09LJ@+my z1G*4?-%|b*{UL~ZtoLOfY}Kq&QIK3VPZ#~^v&eq(@F-_wU#Vb27&e2@^ zr-lVWe=0doEM~};aShA#cdkFS3wJvr+B9bl$eyqBB?uemEYhSFydKv}Mo;0r+O3)f z&DzV?Q3@K5HIj_mirCN0l7?Dzv_YHv9z$rs@X69uzUn6itCXC{;Q?sv59_e|1(-i* za5;ZeEDJ_gUKG$~kT`((K$a`gwHbHpQ^>ICgu=I)pfI=oy{1DsfOsXlM_?a%zZSnd zLcc-b?`CN|e~+bkaL3F~7&+@i0Y ze8OnLvEkrr#1-4lPqA2lr<8}5IkzU>im@^M$apRua75h7;hpmE^XNCw#ns)~rvD5` zhT*~uj@BH?xi;Dco?RXdK!fTIXI?=u;xQQfYV`S&CV7s1$d&r*oY~#ZhG?A42oj|h z#(ECLT)cOF4>)tKW7*+m{b5X>qj`htP^3k`zC06*V}Qx&CG=BzSEEv&7%s^54jVJD z;ln3Z#`M?ZENLGgBy6gh<{EipKEIE+myeZo4_aN8E71lomX=*??ET*9QbDCdf4E6} zq!K2$nk7gL8gLU5B{kXtbnB+2t~F1F)ab z{Nnb0Ov9ui!*&4khxa)_I-_;Wl+?6e?K9L}a$Z;T>jj3m*I_y`q6#%NxNr)mia8C# zafzEJ^ctlfC@*DX#m${1tY(i_ryM9-AJu+&<~;q?b;+Nn$YQ0HTz=l)Xu+bEU)4Z0 zilpQ!7^6M&X&_x4$DU+rU_dTo2COUWk1Zihv)%MUBi_sz0NkJ?vC$@VP$laq=;Hb$xPHJA90RNz~{2I|q^2k;Iu3L9)o6 zZfqtgRarVLrjbvq$JA4L62_6_QeB8gYymULlEN9m)uchqXMG_5>xOxN`g`I?z<0n! zeumg!*2>P*nQAagd&HQUXrFhX+^wMQS$Z()Ry?+@2I?@##$o!b32rZW$9^z7emYji zp|>g;xJT_r^+Y@*Jync(>J#fu+Z_+{xURWY?pn0=>PeLE7Ip-XHWU&!RJrAAbh$C4 zi{3P{A-dA=BxSu%lrHI)LH7F0bbvj{#q*ptJ=O)i?0uA6#{4$DHTz!Br}V0r%y926 zlBDEKCf`ugBo2mlSKHWQ0|ofwsK|Ye;g^97PM@biDpEPjxsYgWLWhl7%mc5jiM+hR zWy@GObjvaA`_l&*blwK;tdpA>G$yI4Kg>uu$DprN>2)r6{WgnaPNM`fM~QvDaFDvR zm0~<-nOTsKYA38A>)1j#y_lJ2BV;DR#8#7u@sGS^>x`)7Sjo=bdp*L)h#aR^SAVC{ z)yeOK=KUBJ86zVZR7onsc1|sj39Aqq(u`F?lw|R)dm6+*XV1KC%0>ZOg zKTpHO{oo?g@W5UWW?)Md`bxv@2q(VRJM2dsZ$BNbefkj;mI@;>nXE2zOmdPL105Pv zc{akIRBP|(1s42I==85!_2Yk)WTw!ameBN^yaByM81U~RlSX{uWJB%m7y!@Jv2nOF zro;MneyPr<_e}CY`Y2w35U@+&jUEfmm$&F2&e?*Q}_sNuLqHOr>v3?BqD@gLUCP@tN z4>729Nz%hRi1{IFjmmY3DaWZt6WYcb9<9|225a)O(Y1>9cIJ-KiHpE3F?}nc+w}TO zT?}he02A!=yNwn?C}5TAXvg`mr?Gp!{%ux3_^U00IR~o2nNC#71s>Rq)ZKvdF>u0G zxJT+}!ztww=BQ2**M~?HxO&cr3V6s1ANcjn>88)MqqCbGtJ96F>&Y6k4($|FkYyD! zu0`s4DC?&ef8;HfNZC7dtZ=C^^)(g8AOP|f1H{XEq>q&E<2j&7~;THH|g^?UKRYz&N7MW2ED+NdQW@1|nfv48^uBTO))e+~rnx&2aT zg?Vgh@_5}Goruajnc()tPp~%cYhaRc=Tb}t(Bn(Wi{ML7woF8vec?ao3!m||fIGA4 zjd|5_ROTZi2AVFI#V35>`us$RVEQE=30kvY=$|35+>4;$lduFV!c`~JgP#*MM6)Qh;<{W5^O}y~6X(RFrQ3 z_zX;p&l&atR6r`bHQ?k5Zo_!-`np(Mt7Z=N^L<6kqT4;9*wE$LGF!>0#BJ zHtyDQlGA%X3r2!V>oIE%i;I??LB1a!I}bECO9P-)QQY^IbBoKjTqD>_p&~u+HJM&) zHIXk!ZZ__KPg@30T$Xl}PN6gf(lE$oq3Tl**b)z1J(kN&3REqg{s8C9FH$>cQ+G|4 z?2zrc7ZO!DLRZO067I=u@P#>csZRw%s~-eIdp6j=IBdS!&BuA`iSIxaKZ=J7=@=%d zrbA2?s$UsFMqfpAZ8q=XfLBK*6Ww08zUE$p1djUjD417sPl|(^G4veqJ?0kIPUh?s zn{eJP?1_YtJEWLSGc-p&C9cE(#{8=gS?TY1juxAJL3V72%@(w3Vub*$a=?fyn0^eTuom@9Gq6L(}BUYgHF^Ij4CP`G;f=n5Bc z`OXLAX36aXLcD`MMq2tJ3KhZ&gbE-h5EJ?H1?ru;xNJOQJwNtqahVGhAgw&QgP$Gm zCE=YgL6T*vep~UXPWN|Jz8%>JSQ9j!C|0}5+;)u4oOof8RW|Do-;V`J_Cv@d#Q+po znlAOiMdk4-%G?H4*S#L<{M=`;rVm?P+xze_brl$h5CSDi1+eqDjLA3Jg{?=wB`J^n)qhC8rsBVvH$Ajs@VL6LI0luJz=^=gLM&OhWveXNOhwL&LO zP>sq&(o!!|+ZuT4u2(EK#IdNKu+~k6^j!Ij13dbE6q#+0e-H#AiCS+t*eWXQp5;Xu zlxJRE^&*zVy5i{#+cI+{Xpl0lDs!4GHNADT{W$UcC(PSH0}!iI!NHP6qJgr^CUadr4&TxuI&+; zr3A%a=+`$B>TiF#v#(;9DYIi)dAb|tW4 z4&_wg7s%<^DLb_+h-!qD%tlX`MRoA*$H@JeRA9yfBQ(20zMz5W)pm`@y__$V96j-k|2QiEm54R;_Q@XiQs6Ckl=C_a3+CzQ|}m9a<5Vgy-n!D zu;_0>3&@3M{ zQwOJy9BByK)CZM@ers*R;l)HgNGsX~_gchqMSn2N!U8Zil*Ue4C6vmsTY9z2q${2P zj3qmk6y7nw14)UyCon$8SOR9H5OrWcd`7QiMZ8n8FJ7jZ#PZsWYa%Q``Mccux$hV% z8>>UB$cz?6C(>zWSAQ}Yvs&mkS(}PHXf{F~}`WXxnmo$(@$?p)>_Y&aRQss(sA6&fr+kZEw!rJ)TZAXXR5{c!14GIgLo{l{1cx?N4R}G z2;(knI7dpNdd=KA+hSxXj^0M?FtjqicP$xP20@|9d69rIAoyDvIJwhJzWkRo+ zvbn}gu;y96$@FdOxXBt&^6i6p{0~8WhfAT8+c#eah@@ftX~eS59c8Pz z+}}Dc@x*Lu`8=xP0PCV|C_$|~n_zk@eHX0l1a)g_a zZ@xW1^l325UV8{In$?3mY3_}64BIT--T?QNRqWV*Vzk9|_s>@Rz3;9di`1IPXyZmp zpAw--LQ>k+&eL-ip)9L%rVuRC+uWEAlN?%*1+z;1#H~uES=XVn_yCB7y5XjA)y+Bx zu6evshgOjxl6T4ydF}U?@e8Eqq@iIutug#z#~s2rmQ_otYh5WSo@pgzH~XJHMu7XV zt2#++L~Ay|NI+Y`M9Mh6`-kr3OF2*HMTZD;kIKEtN+j4%84!5ELue72YKPZr}m7fifH0E4K!P4t33*s zO4{N2)Ym+l;{AOz$}cSeb5R4l=c8xXwd`9oPr>UtrR<{ZZ8=l%+Ez@y7402n2x-yn#qw1sjZX`f*kQEhA{c8aNpx zN)DWYZnzBH_m9Et*7)Vm{x4i^dl33>kfua99kXwrWhc&#wS8D>j8`TL0u&V@-I zTH^Txt?9m0^~H^JleFQosH8bee7RtIYiS%+tj*8eesysta=7~PM#28BVdb)^Z6|Hz zWWN4R_H?D;f#&+^yNkO95Tae1q)I$%>9u5CNYNmi>M}J1zVDbPMO1{vTih<3VthZ8 zC4Q9MgyW@V)X$K_z81TJjRWPuefQ*3UcZt}Rp)1>X!!g658_NEdu;(>H0DeWc-b~N zw0q3v*R|Xy=IRmVp|;C%yUtI;)MK4D5{_;iOxsTadt4>!VdQRCC&i(iF6Fj1qDC6@ z9cWJyy^6hsLqQcQ&VANLDr}^sSPWl#p4RrGr0|)F;WyU2WD> z`=T~&E%BW9m_Izi1|F163(4XO)|VJ_ALnh_p^?U(HU4_2X3-;|onKo}41Cc^WHK)utZ-#LqHA-$aBe#?Qk&?huP zFV>~Mt=1NTM`_piA+cbtN()#EsJy3*8ocJ?dG zbZNsDhRrZR6|bC5eyogSnUwNTf&Mie=8uE5%Lthj6je>l525hSLb={>1Da!sGHU&x zG!wy=pqsNz&X9JcN^$aaRt7DL^RF?#;rn0fhkA2n3MUHZ3LSycpwDL$`aD0%G4g*& z<5^#iozBgP6pH2)bSPc23&&s$I_+|_Ogq{r58Qtek8eEczRg;1hI-4FU-wcAdHLkRMi;T2U)Dovs6pvTsk zO(YVM0ZixOZxV`%o!&kL-xDY1!%XRxQeKg>Z%*ttHI;5El4VFCAOB8>+aXhXD+ax= zq_F#(YSL;CYcJ~f(^2Lq$J{F*NAtsXcwwTH>(bQR zGm!#iCkGwG6v3NxH?K97|VZ1zpSbiFafzcXfK8n9+Ttd1u7yMZ%FNw zZJKCvS=VKa)Ry>e1C1sw&biB!simr;Zv_d~evBDMkr3r|LAew6@4ranO@w32CtU}< zuzcfeZ}fYGItug>q|8YL?*6Qgc!yVKhB!=JjT~L~fyZquQrCD^$BK85`~=O@M;Yot zJ;HQncvtXkI1?8B{QL=8_Klda11p-0h|5^nDv|lZb3Npv|B!USf+b%3{JX4LFN`NL zrKXyfQAX(4%y;~Y+Id_q+FEDPC>o>#t=KPTGwBiB-#W}QVCG?u*wShSU+}kfIGj4|v%+vJbX>O)gi|p>(h)hGRUr;Uo%Pm1Niu9bpb^qQ)H?jxl<7()~iZ z4YKH>C@tsuN)o(lt%?N%4lRpG`#fmrsxy&BS;l2qKNIsRGt_#{^x-qdS#8#nYM6pb zuk}zRIl%BBa<+$B)o4fEoFMcf5%oANP(E1w!rJ?ae*?H0U!w4k2Cq8h-7M^|vx4~# zDyl-Q?TTqvm;CZFR%>s_AV!rx%UyRc;N6_;*noy3U-X3d7>4tpo%6xWjD1Yr^+o+m zPO=6OvG#eb(7IUsrf3Yz<{y%*Gs8rH|_|< zll}d6zPQVbTp(VT$^OugY47bV4Q}!891SwS3^Gdo@&?1){_EH6DLC+ag?hoSzhD!s zJ5c*+ey8Nam#7^jE%w0RE|~UrH$7(t0FqT+)k!(eu#v0&s_;!7OdOc&vRGzu8R zI%x70kFF&~u8e&zF|py!-7k!BL5pw@uWfLZ3_X77gxLtYhud!D+a!qz5nWwS1+S)4M*;kEbk(l}43My87+p-ChEF&%{^j$F2DU3|}7RM=Esjoh$E-P}J z*J872`174)>|6k>(0sF}qiuDuFT( z%;>nR&xbsWtHP>+EX7hMDH6^9T-*jS`woBt*c7{S0W1JZ%};0xvCykLRNAVf^G1rL4cx^CC z97vZx&7-C5*$tl}YCuv=t2_@@1QRl^f-^}vQr2_hq;fPJFvPLiwl8~q0R+kiWculd8Bt%nfivq2q?+NQ60!+PFAgoYi>8m~_?R(xo03lWV^T(73bCm}{78>VK!wBn{!_sOkWKcF7r2bcA)Cq9CHVGw4AUu2jmx5z|LG3S)oIIkp zDCBetVmH&bJmVo($52T8l2_sfQZfW?kZ$LT9eqDgu#7oa!pfX{l7(g^n+H6ap`aw% z+g7G*1wAq6Z-)61n8Q#sLTB#J+PP_6`GCL|O4AJc6_i(&gkv7ps& z8t?1QKTFvbhYw~!U%~zux1dE44Rb^$ZXSn2;`8lsZ7Y&K)Y}iU?k6p(@YIm?#2u-w zaoHSQ|5~O_bew@KVuZ8&-26~CeIW9&w?+lg`7H%i5^Y&Fk3W0<5S``f?#p*LHZP$p z%x9=ba%@+)U7QKR@s;S+#+;t!N5P?CJnO!Hb~Fj0Y|e-`N}WWh*^gQlPkSLYh{pCa zIjzUobKQ;f&L!nDEkpIj0+w;IVf`;>RBg&Gm~z-EtH?<1GWmDcW*8Z0W6u0b05A9n zP*bR4;W!NW@avRoTLV-`tmBl;~|^38-`D( ziG`L=-29B)=?&76q(v_x*uPfz+sd-#3(M^4S_2ATLcEX)!3I*m_M31dM#@!0-9 zSOP$5;2Z7?I#AH})z(F}5Oxo|!Y|%R;LN(gb6-IWHM(xaJQ8(QmxOaxb*n{A4>N@3 z^xXU6Il4-b?KIB*EP6|n5~0eegqhng?eq73$_)E zu)5&C2#&|m0b6N~S!uRj>a|`%K-UqPUq0>4SX(2*eJY`5pY?MsDru3Wmh>fxXiU31 zH3)0Qj}cULn+u#a%(-!yzN!s@OY1A>tJ|KRrG*5;%lnV^`d6m3?tVFO6h8u-ay`&hyaJW%0+?lO2ph}S8+PZG z6keJpVjPML98+;F_o3sa2JEek@s8;&H2O0Vg3~46DMmoiRs6%%%%3Qtwv$AR{x(C-X`>*{foFG!(LRCMzTS#2)?^e29<`g@cH`hz!>!i6p(Hl&WYSrmAku#rqyS{vw8!v7^2yILP_I3MyfQj+|9vH{m@wh1}=sc*y9iS?Jn z*j?8$dyFb9)ez6x3YNQ8sb>t_(4GL(3;oJRd^lhUs>}AI0c+8f#EtQ^l~f1`Te}7U zI)u^mqO2JWFqKzOkj6cT(On%#J6&GAqN#Kyr-Q`vg>+Ytw4gyERW76c0K0Lzei_^o zI1dv$`NXk!RcD#2xAv7#Dwn_pe#1G7GLn`yH3urkMwr=)wjPXotD3`4xmQH?EiR@U zk!1=dm(QFcQDWNHZm=MKhw{?1y$q%b& z;AhCme|RpUc!Q8?vg}5@b^7w&8(vEZ{fvt2W29F9M|+6&%We!Sb8yqHn5x1SqJ_aZbmaB|(LuVUYuip1iheX3c2ru|U z1?w>?ax4GNgxK!-t65cti4jasnP71G9_4=Uv?I^QnG;^!)s&ka28_aaeE+a7Jy}&n zNzbkFzu$faFB%vMmPLGBzY7+kSX(AoSE{h(I>D&+0wMh7%wk0xRICi>?X5mM=c-+ccqp&)B%7gKrKAq7F^>ju)3wXKX64hP zC0aCape?;{cbxGs7qok3`O(rjbMzo?9M2arF<6mwT+UFbeYztVw;d<JsqtAk|2U?^1WR+xuuY6gx^hX@iIh%t4dv|#3o@*Kw73CT z+}O#?y>;tdvK0WXPsUZQC$C+0R3NpRoTjp3_g{b=*Yrif>Or1u>MC)xcOUihzrETn zm1_vX<+V5F>9=|5`kN1OI2$mq1_=f3*Pd)kQc=vXL6x+S{38zMB+s#aBS+qdOU(z-GgEZ{x#GYo#SAuZ(2Z{u_@Rug?gwv&^b zr1#vQ)-x>f?%F4{p+KKZxKn80grO94m$49~W$9v;C{480%*&_dIHNwJXc{4G7Z!Ry z*ofvl`PJEGw_YLYj_g98ysFJ99}?=twh;NkQp0zJ%4JVFxOpYz^2t)Fy{Tc*#aK$# z+Z48uV%KCE&pF*l`274+W2tB%qH-0SMi>z|(pF}b8XEd@?Pjh^6Qhr8bJ}{Bcm)Pw zj9T`ws?PM(TXZdUJBXSfIN*yzs!oAI`qf%toL%Z$vw8)cK+sKVs^GS=Y3gH1-BI0J znXRQHfB|ed_`=VU@ICNRgMN%v_Vj_@arx4F5(W=GNlOrn9Ux(mKOP(sRa-UKMaTr$ zdk;uYnTMN4(C<0K^;wEk>4jpG%R|f&w?a8_fMW{m8yIQtweyK5F5(@frwdYIHoL?$ zkjP0`e$8R^O{-*}-g?LWwzEf)Qm#i`l+(k^pLEmj`gc1oc|$JU+i-m4Cz|3^OZQXR zM1fMBvzypV7+rk{%t{u(gACgERGh~6SxsEjTP>v6SCVY-#kJu=0U}d27D^gkSJj@3@pA}T? zgX;xEwC^A1Q=84mUZ{P!za6+d+U1)Hlb?GovOw5PSM3GAjZsa6H_)o|b>%bX+<&SP ztkR`(uP8OQ5d}hj<*fgKYvjbO`p`F@_Bis{1MCY!W2;1O&u$wf@v9(6$MDVet-7>@ zgFisB(VNC|&qI9jiDs-T=!O4l8dAX++a~rq{P|6=A70gO5uWjdYWQwkG~ZI{Wh0Ci zyxL#Y_?;GQxx70v+*2gLK|a5R0X>(t6#f!C0abep*hL}9JaQVVYeq^UgWxG5^f29Q z+Y*9MNbU>8B!yzoXP=5p`$`GI);HU8AGO(7-^WXLTufs2r4fILj*OEYTABa7p+uYg z3hCoGO%IAZElL+EW?sDX-0&cztK66WNw)LzI>X!T`?q!OU7zU5n<{%gg*fFZd&fIb zL}{*vXU__@?wvg!q!Gr(-f%#DAZ&3BRp;XJJoI2mS;*>3ue6kFM)Q{SzbR9;r%i)h zQQkS6PuFZ#utJrTfy_{lw*K#y9VCh}4@w$z#dq4}Scb5d?xI3(!#`AqPBuppwS5mxREZ_b%K=t83Wp~Mo>WjFUO z18lf|y}b$XG!qH(4qdvEb~$q=M*j=Vn8fu|`a>Lpo=X1UMIWufMvhdd(mptrK8vl} zXzH|>c)+JL_ipY9u(oetgP2IgRuE*Kgl!~g5!dq+d%dH>lS4bW~PWg+I0;}9~xwnqfEij`+on}hBK$S|INY%p0Hhk zixU7YD~ly&^@+2y?baAi3h{x*{A`HWa(c5(fFU1MD%g2b4NpS95o`Jh^n9SJ>C9*I zu`1V39rCQZP%Qx=D2Y*i>^JiX3kzQ>A{HNmm#vtr>@f3?BpPO?=_^pBaqxA2pB==Q zrhj!R%dF%d5b7VhAi?n3={*Wl0qd#YvlL++h!pPu+@Bo83Z;Ej)3e!s4QGB+tT zw4?hBE;)_v2a|DdAKEYlHKReyE!#DG zof&-MhEjU$m*kpZT^CI|*ud`@h zE4$w9WQ!0?SMeo@hF=sV6yLKzDvi06qh`^0)awcOkB#WvoKU*Y!;-iAVMv$cx$8X) z{t~~^PJKKlVe(e9>lI>?{rBbODo=5zh~!CjS6A1ON7nKVg^KUpZgYd+y~a<)eN)R6Sh+8083jx%?b%)O4F6!~EF_S!hb(8 z*WA|Q7}l$Vkn2rrr5bDg(!fSSFn*CO)V0YozZNn2K8LKzO5&6&25DoAtw>O5TdO)` z=$G4k0&Hm#sX2jwW#}sZuHRs%)f2tO+b5_#zU zc1bLWh7ANviPvGJ36kbjR^*&Nb=iHT8qoGkg|pu%ZRUI zRW(R|P{SnU5cYP}#Hw3rTypHX#>54C?{J9CLs3I&g|!6+3C(#zdKU(2F1DD zkux<(v1hyH5gA2RyyhQ0`Fw=cSseUFV>ob~%kakBrI{;pDZ6}8~+-?0bJ9S7t z2>YSvbP@6z7+la5Kpwd?&ANG``fzu6nOb?WEmYb)VqVPCu?-onHd^zOU}NDK^u|da zy<$lo$e)zlJ$)mGNFMaEcg#RymdDiz++}>%XJT&XluMUumRwKzI~Nn5z>)Lu_*^p@ zTaWuG0?Qf+t)dZBaua1mcaP_*Yk51oWSZdevcf0JZBs6u@8hs1ttp`cC)kqaq87 zTCsfo;Jug15ec5%57oOe0ivB|<5J#9d4q}PjCCM`qdCWge0MNaG$J(Xri3GNEgt^( zXA*>8!)HZ>rCzw<#jA_L?vdI9)i3&I{D?1B=20C-Pp2Cyz+d-XWt@V)`k~Q*wFpk- znG5P!v42rRvI(m(q4+G7^242UkyY+eO*D7>S5$^&oE`Q=Z~i%a-vFk7TJ=3#8oaQw)BQWQ!`2=0VRA3XAtudg=f#T*<*Mwj zj_9kKFEYFtl;X>UyTX$ll@r(5nn->}2XV`Tf1P4rOuZ{`3WpqaeZG5Tfr)n(fD<@W z*pGA_2n!Keal@6p>G$?jteXVrizle!cyi^iE(Rti6A8tFxpqkO z=b6IbN?M7eWC>wwLvFyG9o^=}O<4eRX+-yQ=fdnp3w0+MBhT)Qn>(aeW_Thz9_N6u z`|c*gy13n+d5E`ZdGzA;Tcqa4V(>cN!OSOUKtef?T* z`^{IjLx!07sr%c7QVMz@vfJ5FXNSol<-fMX z8Wb5HZ?JKN4Tx1F41If;^02%3qJC~Y|px!T+A-K*Oe=*PNkYbo4= zwSc;f5FpjbGaW2p!`iz8r>WGVV!B40U5%uz zxP}Cq(wQZ|1I|XO3=USMi0lcItn0GF)>ZnJr=UuZ#nhVq`1iW{geIT$^aB@$W&MQr zo!$9e8VjM8<7rz&WE(^zKete9+uwW@4NoM04L5zS!GR2~Yzkim1yr6%r0P#%^`=d> zHSOkXV3r47SZZr~w=sFwX4=H0JLR_h#7R7Og>8YXG?|Tr8+W<3zKyCEYBp&$Ef)yN69ec6Csr98gbRWYqi9@ z~ujv)OZLiGl_xGzaP^dMb zK_F^?oUZPIg)R8Nh3dNI$&^+kzTpCrC)O}sez{GtQ%C8B8_Hw*z4tyK#Iw7(Zxls- zdMo6dNFa_&%zoM)`~1!YYF(~-`^g*R>O0~}kVS?>NMwV=fDAr(up>ZtT+XIATk0&E z8p{|TEQj3cvTNK@^L26v(H($!efIB{ASizi(TwIZ-*s#~WWQ_aUT3{gU4sl#zvxcz z_cXU@gdHY?8D8)@B7yw~ym;n<0Rxc>L#-*m%$bhE@tnD%u9t&VsfiPv(*Tz6D#lg8 z#{=4`FGG&g&$rUDg+sp1Y>0$ejy0g3$bYl>#z$78f^rI7Cb@oo6U;6nFs|PTb-tuXQf(Q#K7`sn;@xY^oD_38+V0ZhRde0!q4_iRkt5# z%yDn_d>rDb^xKddbB;U%+pxO0xJ198V?hDDFM04rjvD>pqOmWp;#a+0)t$wkGYR(G zwMA0aK;vziq$k?YKE{0c_!;38$rr+04%api^_L+=dO&Zd^LRdT4hPM~->FX6z>_Dn zLpj*|Tgp_!6j;O2kWHc8WW0c6zfYk z&Se0{vz(?4ByEO5266Ye9^>!Nj(AQ`q>_1jTB{l4FBY;(IUYpOZdCaom9r#88_Q-QzKu>#Pck(1>%IQcb0 zT$aL)Evs00_?b7HS_}*>4v! z6&yySmvn}E>Lh-+w0F}ZaSlzB&<@FCTL~^yN}bt{V66D{<>krb2TI6^GJNiO;6=_G zmo-jhStzy%~gzMZCnDZLZ_D8^VoA~&w{o4nL zr>1tm&I~U>NUCPYBSQX^ zLR=XVrnY{qHqvNc_pYjN}SXCG;BTPX<83`zQf1I-Dr93y&KvEV>!sFYaS#OW$ zbvNysY75^n z+d|wlwx#d0uO=pHkwM`iHF=0sR9}`|{-uaXF^|Z&Up+0N@gjz$a&6kQ&}CChbg61| z#080ve`*92eo5VWJVd;{4peo(MFakZkgmKg4DXR>ml{GOO2L8*D<^!B4^M-IKaopn zKKrlO^PjiB&D%)#Jy3`qG~Ctn6PBjY@&~;SFUN0Q78xtYJTB(rpn()&&L#Fw0yE@2lV_Ki8) zM=_AW;sPrE45z9o1RnVCDjRDv;Z+c`oE?v&49br?tU`iG*u1c;#-r3!pd^4_T=cGZ zw>kTB2C*B;+M4tTUKQgGl2`92b|iQNIYSS8w$*%}?D|k1b{1Z#)dh~N`i##>_(;LV zI_)T1&>*UE4fB^y^WMG%0Ir6JK305tbxqP&1|rLZ(-8vKZHDP3?xrKzdWD%JUB?m9 zG3gM@?SWke04YK^)^>ss@a8yAXSApU^PXrSd@ST_VesDRoHm4NtVL#VdH9+=(Szjg ziy^csRV3Ct0fVOyg*f({p)7?vmM@ z?1ZoHlwAGWq^lOALAI5ZOi6pJ?~RF0>6&2f21;c1IowKO#glon#7O(jR_DFbLC7)k z%evQ2?TQ7u2tC5XuT(Yh2KA=VPSJmy-h2J>0h5>>P(4_V)Amn9Wb^8hV%0GAAQf=3 z8urA*x&j_%$cHDzaFMq1g?{Xnz+iB*8o~Q3)-d4!@|vzEd%bdno1!@;OU=Kf>)e2@ z!!0N;{OG9y71k z+XN36GdD{%HV0z{tq~xV-9V{R(w^46tjdLD$A{mDL7vlct6)JtbLUabSv7+p1Qh3 zMw#X(j)w_bV(j07jBk$k3M!C5)eM^z0Dgz2zpJeVM=e4hIIY@ewoT|czGN9t|+dn zt83^Dz)KS|xu|KRUOkKqh!~4jUsqkSS|?{*%!bc*^?{uZ-d5Tt&1SiW+74B)?2mkn z9Ibl;40jep&%X-q{`)2IZPKm4Nmz@k@){B~#EKZ_C3Oy$Ci|tLRGE+yh7t>-<68F#! zjaNYFzK`ui0?1kvv3TMA3=9=TG@>n`0N+99>|jdB;@=YFzndWtiT`Q&)DQ=4^5FYO z4t5d_Ku+0=2F3)CbYQ3wR_BHfwCM&mfVSjwXPJcTx|wSN`~1>)3UHS!kZp?Hw|kV< z{QyCFS3N3O2PNI@S2`7~z2T&@2f{6F@~W!|PwQ%pD@zODzh9~4^G3p==L$%eii=Fo z9mAVRFZN?`)SiKx&z&RV7GOe_Ne{_v2c%{fcd1{psS5xD>7b}u<8*_cd*wLa7^;nU zN6~cQSk02zkWLf`M2JWECyr!mjm?i4GVGp(@J+wJE&jT?Kqh4)V#%k}CL`OTPp#E=KuPm(^bxdU%sJf!<60k}SE zmZIOM(ZG`j9yVVagf`u%T5mhuBTuS#G!N&bVV!?_g5&28a2=?m`sWNh798qv2j+4e z_i=MTki*$z*2%Vw0kbr*KXFw}n?^Om>U9HV)|?|?r+!Ex^J?CP7t|Ym1#5EcY){*9 z{>IJBXoQ?FG0vz#$f`o+c&y|`TUoIaQnYZ#cV5%cg5>zXsxr(*MWQ>1oJyS2SYin|4X<&cYg&~ulN6wx90yT?~8Q&|CKj=$baNciClTl@h{cP z0aErJj-l`wwh^~NCU^%aXT)D_Jp!!jjy9J>@=AA5kW9YOMLchNLSA9<&Ht?cE=@o} zz!>|i2@x=$P)&Y`RQnnCcM`!v6=T$Ci%;d@s5yafovxE z>T|n+uermLe+;H7>X-t^)UHFpv!I=LVJQCio#j?@G^>X*yOfSdzbtU2w?E;Z7GvWL zI}62UuTk73^B91e9N=`)(ca6wk&X=guvYMsN}U9+MTQ*sW`oEs|#xJ5S$!`tcVXJ*2Qd57EoooDB6@MJb zPo42y8DQf>BD>ftFqEnk@46p=EF$@*1l&EDxe5T0BE?Q#&GF{1k=95EA^IIdsMQM@oxG;oSd~t=;FP|I4~h$NpE8 zACZD|9mWLSP)Po(GeY`5D)E8*uT}rG>H0YiE7l)S&X+fH*6u3z1k<|@cGfkqgd_Oi z`lhz4iy8(;>nVFt1SSmr-Y{X0I^`Q%>0R105L=C|HH7y3LunYnJ~%Lpd{)|dVMUh) z@_p}wu>rI)P~7r^KOgGF$5L|h%44$= zfj1Xh87s40RWmo_2eFip4-Xy}D+dF1O3#+%*`p3JRpFt4?6T7RQU)vez8PNdo#yZaHHEAysgwB%D#8k`yS(1nE8V4e>yeP@4&4m^$rJS zl?6^BC%A;hN{$0_?P+USYP_8=$B!R$5RGjaUMP@O=IFTvCD;WwJFzy!{9gBf8QV== zCTi7T!P9260UUzA+{S$H-~;>o)ku$jgm{PK`mW>3a^81P|J;8>($1_Mlz@fjJv2xu{ zad01Ll=l+&ToclL2|=Beo|2dPIx4AR{j+6xE*^?Cq0Waig8s;gj*FVLDxpQU;?%(E zY-!jDU4>P>M@qnhA#yO{(gf?grczF)JLk^wO2FdKJ#sOe3T~ z!zD)1!hQt>Ab7VuYU`ULpw-y0W31pQ|Lxp{df(CxNL`xQZbt*J+OE&6DLdcH4#fPt zPP#zyUjMIyti7}R>spZ_|Mvy>YjBIRZ6$D7iK46bEE-KS z+Yz}NOY2$I06d!Q8+}_g@hFxUvKyaNYvx#

>Y-#6xf%a>4z0eMGZ|u0^ALVapiy>{bI>8MaaC0iR;&>OVSbknu{FaT$AHY+Pju1!f~F(4P496Pg=?+pYY!QNdM;4Mvzrvs3nf1_3eC&fjorAD3=I{4n@8|9OK znx`_tXt9y{W_!T~2}EiXfn}K(PRgYFSR$Fyl>&NWu!Q|sb3H^A(rofcWSh$j~l-^>*e;2)T)dM3`|%U{<+eo zaTSx_slUc#l1RnXaNnn{XKKVyahl?i@}`uOj<>CsTVkK$b;Nsth77z;_{QtB^vr}Q zlqHz0_BNFLJJ1YTf*p!EQPmdJEXaMGj$wPI$DfNN_Xu-H>I;AYl zV4=KLFzBkl8yGSbE&CWZf0O~-@Gg}1{szEtU31lk;}+$XOiAH4wf+&c$rvxX>O2x? zrXTbEs=$DAlx7$nyse$gj3lryj6^x+U8pO04%rS4iaAwL+n*DZHngW7e*U zpyfCs>6kjaO3^gDJ_{%rS2EHX;&Cn`oP0S%>hW;=mOnIX9 z<#}tF+WRs2;CTO(piBwVLYJfVU$D&aH^QEk!>?m8#h-)?1k=hXtqOhZ!wQv7YZvlzC%-xAwsuRUlNKOYEuM0r!5WaH0K?-Af&&IxCdMawvm&NLh zGSl>i?@v5)(_4hr;XkBO@CDILpcX47u%oOMvX_>5>gCHE&_vd zt^AzkF1PtF1VaWNdsccSkC5j@I}lV;6DJxACFXz z&X)05F*`9 z$R;NehNR_~!c&yko=HxZDzILTc zvB-5md}4ld5IAvSQlqPaA%(E8BMw}4YW)>~)RqL;2#-PIH~eW4?I=yILzFrngg&T+ z>CH{bB)V?96QN%A>dLEO+>H(XqOg{ghMN8S>#M_ z)}3w^-sNF}&Bj0E@!8lofBKOA2S?SR08hZ5(~LCrsp^bv$1cJ&?pT7iea$y8;nv|! zQ0Lb_ExY{FpcO$jREGqIVbBW8sCt{BlW2F(nCR}f-sVe|T|oj9`7djs4-I2F)e(S9#)|g4Vqd?H zy9NeMW!D+{pb+YpQ>}_2T9rKMYW=Or+MN&|bYgC30`Y6%&dxfH2FH^r>+e8{?4Y4+s5&m$wgo);FfIxfAJ% zWgq34vx-9-gPTwin zF8?Gy7WMIYQmdJ@%!|ZlA)M!SBd+jh`tpM-Bd&#^@HfRnlWI&e4=HLm>|#`h)OHRD z=gqr^z5Pchp`*A|WNKJ*-#N#( z+pQlFdU<7lGl^&zIe(bM5!=leF?nYnloc+-93)P?;)3w2eNotac)%5@=e{6VLI#); z2+C$Oe6Sx>^t1^o`W-|KdA78?r_=8@e=h{=OjrrfxadB(f(zjAnK1(@z;WknVj>VO zdU}3sUsoRiZ!@shfj}A-B>QS6iGaA9t*rG_Y$^LkxN-hRdo_lwgH1olAe7Ae#PB;b7D(*D;ci_e$mpzwjB~- zfBoygnsW+|!$BI)N+{g~-B8PjHfVDqqxkm}sr~8hJPzx5gy-(Efvb~Kjd-q}GMZEZ zcIqD@BA8@d>MW_flYbh?s9&e#4o?zZYJW{@(s) z&1w>n^i#=Poc0kl-;^#!9!paRff_bO9^#<3F_k!wd(iekwik#@*^*tHVH05TF6KW2E^G8Tm;~`*{dwZ)%>};@b_Ow}5ldS8QQ_ zXW^la2@U98wl(~$p&AGGga6%|y;n+CDE5%dtDz{>FRZw%(?nx^l8vxWyLWVSB-aoY z($p}1>Xc9{_hcfFr{rE6^`gOT_%X)^sf;lG)U3?rVv?#R+GqZMtpH_ygCvyH zo&03SaoV08!AWM+DK+e8WT42IZ7h-GRE%w{`86z2~6eV*^>3+Z0V-liNL>8>u5kie(;AIY4 z@rg+D^x(}BbwwG;co;1)f?-Z5zi8zUE@V%Fek(1Jf zY)XqSsiJCjO1}DGM1nKbNj9W_15=gIM1^2Vv5WH<(Kt$YVo4S@Yf3;+Kgs;~(kXT9 zch5zrjBmQ6i;A2AN*f|W`<=R=xdyX^1IaLvR6rcx6yKJLMDIr|ru4oa{rq>;R^$1a4Rh|00Bo}n-6xyau8Vq)})8YDyaBM_)z>% z>k~zyY53XB{uHgf21udDKAkV I_Q~h}0W1hlmjD0& literal 49186 zc$}2I1z1#Z`!+Z*Fd#5=4lO7kEkoDPEg&f!N~d&#NJ)2hgOo^jE8X27-QDcy`~JWE zuH9>|-6e)O=ltU7=e}ov6QcA^3XBFp0{{SE8ENtN003eI{JRwu5q<_3VsHTfwC&1> zi>SIH9HarGbOx^b&aD}j-40Np zexX7&N^EC`zTUmp$JA+c_cC+Ehh@E>Y23m!Y=q1j?zaaOw95Q>e^?rN*+C~882EZW zY}$%VuSuD(YifVSYWYQC8|cg5b#xvPStq%dpAMhBi5v~vtwicA+Iusw6udTm^gzf% zFJYHxg5*GB!Q3g(Ys-A4iE+1$vbrfpj8)OUqCVSInt`yNEgrgz?oom?*SCQ{Hmfb3 ziK%vHOMW4!W4Nr)drSQs^pb>qvt5YAKFKa5X@{hIOKD=#>n_<;_{NO=3iRKl}W>)5=CiB`5d@a>({ZSk41j}v<blz-NI(sd9)Yg3wOk9lkeb)p+i z3yNC5*>%`4g7~j>5?Nnaz!dr_S6kE+P?SP?eeb>|cMEwBd zp{dl`t^lgwqV5ZHr*NQHmwy+HLfIkufL$8}-`y>@aAn^zD}Cp056TPS*r=WE^F#>S zT=ZB~LBdscm_P|A*oVrTSHg5yKSuVOSw@8=jOb!T`lBZ#>HcQ5=xbB;lRA1wwlQ56 z@95Xlqc;dF)v7>k<{r-?i~a4^mV=w7{;VC~D^9Sr6EnFJvo7Ft*n?8wsT;2}ZYrtA z^-;YZ`|Foj71d>7wzw1(`p>7ewJum8GG8=dX}t-xvvKmlK0NeZfl_^yPSp12HTD<5 zGQ&H2yNvXuCM`3zPDkjW$;R{;y;|V)5nrk+Bq@Xs_aPJ8Z_#D9A+)p*PDXv!w=5vo zU}*4-YCx+uFTI9N*cP3;#B>tXY`9aYAV@w=HgTICehJ>LzzV+>&=lY1jiHLJzT= z&CIv!i8G#<9XJ$;Zw20dtJXC0eD=y_#};}rOkZkgMKBz71@?RB(!~u&}^QWp|dAD`)rdVf2@oxK4=`QP>XJ zw_yJa{z3H2w4_jtzW9Bnz5zm{v?vIGsMQRfV1($@ly9^eL+u%0ADrU9K`annO+BAp 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 MuPR?AYa0B&090=kd;kCd diff --git a/doc/index.docbook b/doc/index.docbook --- a/doc/index.docbook +++ b/doc/index.docbook @@ -34,8 +34,8 @@ &FDLNotice; - 2018-02-04 - 1.4 (Applications 18.04) + 2018-09-26 + 1.6 (Applications 18.12) &okular; is a &kde; universal document viewer based on &kpdf; code. @@ -453,7 +453,7 @@ &okular; has two different kind of annotations: Text annotations like Yellow Highlighter and Black Underlining for files with text like ⪚ &PDF;. - Graphic annotations like Pop-up Note, Inline Note, Freehand Line, Highlighter, Straight Line, Polygon, Stamp, Underline, and Ellipse for all formats supported by &okular;. + Graphic annotations like Pop-up Note, Inline Note, Freehand Line, Highlighter, Straight Line, Polygon, Stamp, Underline, Ellipse, and Typewriter for all formats supported by &okular;. Using the context menu either in the Reviews view of the navigation panel or in the main window you can open a Pop up Note for any kind of annotation and add or edit comments. Annotations are not only limited to &PDF; files, they can be used for any format &okular; supports. @@ -724,6 +724,30 @@ + + + + + + + + + + + + + Typewriter + + + + + Typewriter features opaque letters on transparent background, so that it is useful to fill noninteractive forms. + + + Click on the tool button, then click with the &LMB; and hold to place the top-left corner of the note, then drag to place the bottom-right one. Enter the text of the note then click on the OK to save the note, Cancel to cancel note entering or Clear to clear the note. + + + @@ -811,7 +835,7 @@ else on the annotation to move it. Pressing &Esc; or clicking an area outside the annotation cancels a selection. - Resizing is only applicable for annotation types Inline Note, Stamp and Ellipse. + Resizing is only applicable for annotation types Inline Note, Typewriter, Stamp and Ellipse. diff --git a/doc/tool-stamp-okular.png b/doc/tool-stamp-okular.png index 1bbd2688bb896f35474533a393b7bb8cd41d6bab..cb0b2de592b5b4366a68d5b47a640cf12901f2d2 GIT binary patch literal 1229 zc$@*v1Ty=HP)0b000McNliru;t3iCG9+*k39$eG1X@W% zK~z}7?Uv6^R96(oKli;iKbUzi8mzzwGZi|cRzhJ?OGsN2gfuaYNnLhPS6wx3nr_-n z_x%Ifr0J^5CXI`RG%iS>HJTVlO^F@UAi@kdgda1*fMu9>e{_KkPSHgx;-a49Cg?iNm%g%vU z0A2xb9y9mu-J?`0;rIJVCX-aFRT>)`@jMSHC6;9o2n3K)B7~q)sSpl_pC3RzpGOFR zl#<28MWWFtV`F33woNLP;_B6_Y;JCH^5jV_T)03y9;Z|)QK?iI7#N_ft?l_j(AwI{ z>gp=<^YavoMM9wvi9~|6wKeAF=gH^uw6?Z#`SN8f%c4@L(AU?8-|xqD-RF;ic|=l5 zGden2<1?9z(OMg&)MFK+l&ZV`7aAHGdLOWND zS63I`eEJzfWeGqg*-o+LK%K$ge!nyZtOy~t#_`zL7^zgMR$8f4iq6hXlv1SAX|7zk z!uj*(xp?s+9UUEHvsudJGQGXMWV2bK(J0kwmG16td_EtGf8OSh+3F7?t4rJn*;rQH z02~A`j-T?|XRwx+m&xUF6bc1aR#qsN%NS#rnVDg3ZjN|7PCA{YTrN{8m59Y+G&D3Y zIXMY{QmWQN78VxJN}+{83xkpp=}A1#t9eT)g%@yHIP)d`=|6Ce963U7Z!e`%iAW?u zxm?C^96CEYIe73OuInO%pr>bRaSDgSB$G*eJ|D$mk>=)R;_*1aV2}q79w4^qfu(hBeJ=Zhlycc`|%t~%NGOSx^0+p9fSZOEKq9u_kAA| zocI;xZEp7gr4-}i;}nZU)Fb7aH*b>5<=EKR_}2imQW&k#N~5H#9Vz^5cD##yKVA3k zOixdf%jJm0V%)lQ3!l%&ojZ3J9v&v0PSeuTg4UYl{&9I42eX7si`TB9z9AV62WmCjvqfxGMQw3 zeVt;lNH7?ry}g}KDD>>_kq6wvgY43LmS7V00000NkvXXu0mjf_E1K4 literal 1074 zc$@(;1kL-2P)U36v9YMAsI#-Pyu7^D*4F*~{pjfE@9*!w zzrUB3mbSIDxVX3Z`T6zt_-?e{MxNH(>hs;*-R0%w&d$#F_xJVo_H?z~KAF+dCpX=rNGYyx8iyySuWovdPKGtgNiU!oshwug}lV zqobqb;Ogq?;^N|-o}QADlA)oYlarI3ot?|e%axUt%F4>3qN2yg$Dp8~+1c5{!^4=E zn2?Z=k&%&>mX`4F@UXD3zP`Tc>FMq5?bFlK)YR1B;o;ui-iU~ZhK7cNgM*EYjf#qj zmzS4ALqms$hm@3*dU|>|I5>fUf#ToX;^5um;NIln-{j)o<>TPy>gea|>F4a~=+kOD@b2yK@9y#N@AC2Q^YZcZ^YZlb z^Y!%eF}6C)0005qNkl62q_R05*88VXBQLU=MtB|R3IrOEh8%@ub`-;psb>(Dv6;$O ztBC_0pr*zzZmH^^=;-L^UhIm(-pYnP!oKXLKm~sO0U{6u z8V-R$!CZnNsye=*!eOdD;SrIlKm}3JV0lXh1|hW=BNKi#Q8j)E34ReH1^yT@4M!1? z*f@~1WjuCA0_74CK`u>7#;HIgB{eNQBQpz|0wW(W5s-GrY)4C=H^oh3#Q7a^#9-3l zxq0~og~66Zg?Spq+9eDOnx%H3W#y5f6`qy4#-Td=RT4%LMxuGuH45TtT-mh@3?cfa z@(#Xrs*3eB!VRJP{G~;rjZLAs#<@BsTqY`|3=BriA}!)}64Gj-t&K4v{QPZI?H!$6 zt?aE{o$cK{(wL5H@9pcaV+Vm4?+FtpVfQ9G0uYRDY9xEWCQq3XeM^#A|> diff --git a/doc/tool-typewriter-okular.png b/doc/tool-typewriter-okular.png new file mode 100644 index 0000000000000000000000000000000000000000..4f4465a1c67c9465604b1b0912b53362c3b2ffd5 GIT binary patch literal 894 zc$@)#1A+XBP)0b000McNliru;t3iC3m|#>KoS4|0}Dw+ zK~z}7?Uu_hNvAzj(dLWz4Vwxu9a=GhLDwSe-dKz8V357yE!9t-B zQc6mt5{*WKsi~>A30z%Wp(qNiR*T!)Tcng7=k@h9i9~{YKF|30I6FH#3=9ms2|6}5 z20%KUCKwF9UIL%b$HT(|rBaD%waU=Y5CHr8``p~zP_0(+`Ftc22~<_3(P+Foy|c5k zJU%|YnAMKSZ`NwHQzPi4E^mO_Z{SELX^X0uuOZH#t3`Fvi!WI~9J zZ+(4z4X||efW=~AetsU{huSHM@>jZ46;Gs8lKx3I*=(@436XqgJaSrNl4{ip3&+zn^3>Nv&4HG)+cF zM_-+keNVz*Fv!x<5~gY5a=ED0YG|59AP`_=WCUH;Q51!Rg@reRJUu=2pMgjuf}$w6 z-ELG>Wq5eFBR_}3(UGCuZpUu7zY6B}`~TzH@FPqULa?{D$Kv85PNx%##X>5T!sGGa z@pwAB!7vN}ip642u;;#Bldp?FE|;TFC@?WG!O6)9R;!hCI!!bhC7Dd(^?E533PhvP zH^J7{)_(Z?dJhTh=;#Qy+s(zr11RufO`$|F{Gj8ylRRoiQ^r zLnf19Zf*{j%Y~+Cgu~&^N)3m@*laeeRx5*pgV=1gSApMK0^}##-`DXk8U7;hCw2Sa Urm#@-u>b%707*qoM6N<$g6`Luod5s; literal 0 Hc$@ +#include +int main() +{ + Poppler::TextAnnotation *annot = new Poppler::TextAnnotation( Poppler::TextAnnotation::InPlace ); + annot->setTextColor( Qt::blue ); + return 0; +} +" HAVE_POPPLER_0_69) + configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/config-okular-poppler.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-okular-poppler.h diff --git a/generators/poppler/annots.cpp b/generators/poppler/annots.cpp --- a/generators/poppler/annots.cpp +++ b/generators/poppler/annots.cpp @@ -180,6 +180,9 @@ Poppler::TextAnnotation * ppl_txtann = static_cast(ppl_ann); ppl_txtann->setTextIcon( okl_txtann->textIcon() ); ppl_txtann->setTextFont( okl_txtann->textFont() ); + #ifdef HAVE_POPPLER_0_69 + ppl_txtann->setTextColor( okl_txtann->textColor() ); + #endif //HAVE_POPPLER_0_69 ppl_txtann->setInplaceAlign( okl_txtann->inplaceAlignment() ); ppl_txtann->setCalloutPoints( QVector() ); ppl_txtann->setInplaceIntent( (Poppler::TextAnnotation::InplaceIntent)okl_txtann->inplaceIntent() ); diff --git a/generators/poppler/config-okular-poppler.h.cmake b/generators/poppler/config-okular-poppler.h.cmake --- a/generators/poppler/config-okular-poppler.h.cmake +++ b/generators/poppler/config-okular-poppler.h.cmake @@ -30,3 +30,6 @@ /* Defined if we have the 0.65 version of the Poppler library */ #cmakedefine HAVE_POPPLER_0_65 1 + +/* Defined if we have the 0.69 version of the Poppler library */ +#cmakedefine HAVE_POPPLER_0_69 1 diff --git a/ui/annotationpropertiesdialog.cpp b/ui/annotationpropertiesdialog.cpp --- a/ui/annotationpropertiesdialog.cpp +++ b/ui/annotationpropertiesdialog.cpp @@ -117,7 +117,12 @@ if(((Okular::TextAnnotation*)m_annot)->textType()==Okular::TextAnnotation::Linked) captiontext = i18n( "Pop-up Note Properties" ); else - captiontext = i18n( "Inline Note Properties" ); + { + if(((Okular::TextAnnotation*)m_annot)->inplaceIntent()==Okular::TextAnnotation::TypeWriter) + captiontext = i18n( "Typewriter Properties" ); + else + captiontext = i18n( "Inline Note Properties" ); + } break; case Okular::Annotation::ALine: if ( ((Okular::LineAnnotation*)m_annot)->linePoints().count() == 2 ) diff --git a/ui/annotationwidgets.h b/ui/annotationwidgets.h --- a/ui/annotationwidgets.h +++ b/ui/annotationwidgets.h @@ -127,14 +127,16 @@ void createTypewriterStyleUi( QWidget * widget, QVBoxLayout * layout ); void addPixmapSelector( QWidget * widget, QLayout * layout ); void addFontRequester( QWidget * widget, QGridLayout * layout ); + void addTextColorButton( QWidget * widget, QGridLayout * layout ); void addTextAlignComboBox( QWidget * widget, QGridLayout * layout ); void addWidthSpinBox( QWidget * widget, QGridLayout * layout ); inline bool isTypewriter() const { return ( m_textAnn->inplaceIntent() == Okular::TextAnnotation::TypeWriter ); } Okular::TextAnnotation * m_textAnn; PixmapPreviewSelector * m_pixmapSelector { nullptr }; KFontRequester * m_fontReq { nullptr }; + KColorButton *m_textColorBn { nullptr }; QComboBox * m_textAlign { nullptr }; QDoubleSpinBox * m_spinWidth { nullptr }; }; diff --git a/ui/annotationwidgets.cpp b/ui/annotationwidgets.cpp --- a/ui/annotationwidgets.cpp +++ b/ui/annotationwidgets.cpp @@ -220,7 +220,6 @@ tmplabel->setBuddy( m_opacity ); gridlayout->addWidget( m_opacity, 1, 1 ); } - QWidget * styleWidget = createStyleWidget(); if ( styleWidget ) gridlayout->addWidget( styleWidget, 2, 0, 1, 2 ); @@ -286,16 +285,24 @@ AnnotationWidget::applyChanges(); if ( m_textAnn->textType() == Okular::TextAnnotation::Linked ) { + Q_ASSERT( m_pixmapSelector ); m_textAnn->setTextIcon( m_pixmapSelector->icon() ); } else if ( m_textAnn->textType() == Okular::TextAnnotation::InPlace ) { + Q_ASSERT( m_fontReq ); m_textAnn->setTextFont( m_fontReq->font() ); if ( !isTypewriter() ) { + Q_ASSERT( m_textAlign && m_spinWidth ); m_textAnn->setInplaceAlignment( m_textAlign->currentIndex() ); m_textAnn->style().setWidth( m_spinWidth->value() ); } + else + { + Q_ASSERT( m_textColorBn ); + m_textAnn->setTextColor( m_textColorBn->color() ); + } } } @@ -310,15 +317,16 @@ void TextAnnotationWidget::createInlineNoteStyleUi( QWidget * widget, QVBoxLayout * layout ) { QGridLayout * innerlay = new QGridLayout(); layout->addLayout( innerlay ); - addFontRequester(widget, innerlay); - addTextAlignComboBox(widget, innerlay); - addWidthSpinBox(widget, innerlay); + addFontRequester( widget, innerlay ); + addTextAlignComboBox( widget, innerlay ); + addWidthSpinBox( widget, innerlay ); } void TextAnnotationWidget::createTypewriterStyleUi( QWidget * widget, QVBoxLayout * layout ) { QGridLayout * innerlay = new QGridLayout(); layout->addLayout( innerlay ); - addFontRequester(widget, innerlay); + addFontRequester( widget, innerlay ); + addTextColorButton( widget, innerlay ); } void TextAnnotationWidget::addPixmapSelector( QWidget * widget, QLayout * layout ) @@ -338,20 +346,34 @@ void TextAnnotationWidget::addFontRequester( QWidget * widget, QGridLayout * layout ) { + const int row = layout->rowCount(); QLabel * tmplabel = new QLabel( i18n( "Font:" ), widget ); - layout->addWidget( tmplabel, 0, 0 ); + layout->addWidget( tmplabel, row, 0 ); m_fontReq = new KFontRequester( widget ); - layout->addWidget( m_fontReq, 0, 1 ); + layout->addWidget( m_fontReq, row, 1 ); m_fontReq->setFont( m_textAnn->textFont() ); connect( m_fontReq, &KFontRequester::fontSelected, this, &AnnotationWidget::dataChanged ); } +void TextAnnotationWidget::addTextColorButton( QWidget * widget, QGridLayout * layout ) +{ + const int row = layout->rowCount(); + QLabel * tmplabel = new QLabel( i18n( "&Text Color:" ), widget ); + layout->addWidget( tmplabel, row, 0, Qt::AlignRight ); + m_textColorBn = new KColorButton( widget ); + m_textColorBn->setColor( m_textAnn->textColor() ); + tmplabel->setBuddy( m_textColorBn ); + layout->addWidget( m_textColorBn, row, 1 ); + connect( m_textColorBn, &KColorButton::changed, this, &AnnotationWidget::dataChanged ); +} + void TextAnnotationWidget::addTextAlignComboBox( QWidget * widget, QGridLayout * layout ) { + const int row = layout->rowCount(); QLabel * tmplabel = new QLabel( i18n( "Align:" ), widget ); - layout->addWidget( tmplabel, 1, 0 ); + layout->addWidget( tmplabel, row, 0 ); m_textAlign = new KComboBox( widget ); - layout->addWidget( m_textAlign, 1, 1 ); + layout->addWidget( m_textAlign, row, 1 ); m_textAlign->addItem( i18n("Left") ); m_textAlign->addItem( i18n("Center") ); m_textAlign->addItem( i18n("Right") ); @@ -361,10 +383,11 @@ void TextAnnotationWidget::addWidthSpinBox( QWidget * widget, QGridLayout * layout ) { + const int row = layout->rowCount(); QLabel * tmplabel = new QLabel( i18n( "Border Width:" ), widget ); - layout->addWidget( tmplabel, 2, 0, Qt::AlignRight ); + layout->addWidget( tmplabel, row, 0, Qt::AlignRight ); m_spinWidth = new QDoubleSpinBox( widget ); - layout->addWidget( m_spinWidth, 2, 1 ); + layout->addWidget( m_spinWidth, row, 1 ); tmplabel->setBuddy( m_spinWidth ); m_spinWidth->setRange( 0, 100 ); m_spinWidth->setValue( m_textAnn->style().width() ); diff --git a/ui/annotwindow.cpp b/ui/annotwindow.cpp --- a/ui/annotwindow.cpp +++ b/ui/annotwindow.cpp @@ -259,7 +259,15 @@ void AnnotWindow::reloadInfo() { - const QColor newcolor = m_annot->style().color().isValid() ? m_annot->style().color() : Qt::yellow; + QColor newcolor; + if ( m_annot->subType() == Okular::Annotation::AText ) + { + Okular::TextAnnotation * textAnn = static_cast< Okular::TextAnnotation * >( m_annot ); + if ( textAnn->textType() == Okular::TextAnnotation::InPlace && textAnn->inplaceIntent() == Okular::TextAnnotation::TypeWriter ) + newcolor = QColor("#fdfd96"); + } + if ( !newcolor.isValid() ) + newcolor = m_annot->style().color().isValid() ? QColor(m_annot->style().color().red(), m_annot->style().color().green(), m_annot->style().color().blue(), 255) : Qt::yellow; if ( newcolor != m_color ) { m_color = newcolor; diff --git a/ui/data/CMakeLists.txt b/ui/data/CMakeLists.txt --- a/ui/data/CMakeLists.txt +++ b/ui/data/CMakeLists.txt @@ -21,6 +21,8 @@ tool-note-inline.png tool-note-inline-okular-colorizable.png tool-note-inline-okular-colorizable@2x.png + tool-typewriter-okular-colorizable.png + tool-typewriter-okular-colorizable@2x.png DESTINATION ${KDE_INSTALL_DATADIR}/okular/pics) # install annotation page images install(FILES diff --git a/ui/data/sources/tool-typewriter-okular-colorizable.svgz b/ui/data/sources/tool-typewriter-okular-colorizable.svgz new file mode 100644 index 0000000000000000000000000000000000000000..8bb05eba3a075fd148a425ee5ffe712fce00a292 GIT binary patch literal 2611 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 V;r8m9{`d3t>ff{AnG???005_~{v!YY literal 0 Hc$@Wti6hXZE%w*73;Z-V<*DYpp5E@;6D6IaiaW>7uS{b*YpjBHKbl+dR*| z0Sw!`WdI-nAdcg&s;UYu?=7IUUIG~X&z}-#$+B!_j9H%}uqle-hs*m4G>o;@OCs9& z3ZNML_}ICXdQ rX}lND!;gU5crIkm-l}JPAn+LW(6Ri0&vE#)00000NkvXXu0mjf-{q-z literal 0 Hc$@No2g~i4uO(5kJ7W)|j`2?bk zbvj9vDv*#=!4HrWNf}cHY;99Xsvr`*TLjmQ$+CL0DQ*P|b2qcMGk?SVe_$i?o^Rg{ zyEBXc!!QiPFw8B*QW*PGTM9jVk{NVI(#)Msr*CVu+JhSeGKTN_L8Vgh01U4iD_a1n z)oLY|%Sn%?q*N;1mmQna8RUO}3!n}_4Hux%Tg>Nkuib8cuq^APs@S&eH~oJ9YZOJl zb%ayJ-EOyGEWv8E@>{LedjL-Wob2>6+I;}HiMG*bG+s<5lb=EeDXkFVVoz_TfZ1$z z<~YuC0F^`f8x*i3Z`*cfJRbizssf@Y`qOMSUjevxl|F+4cG!;NJo9~jNnXHUF!%=G zp^RR3`breAqt@&7zK8?HCJGRpPUj1pokw#bPH2g1}?}7pJGEuT}MN94j@T zcma<_qtSP*1$dr!9){tvUa!A{+Ab2%UjP6&-EQ~uX0urbLExv*Uw;wFC!a=Zpa9_V zwY$qHh05-3sFsC<5Q;f@DNG%J8ZLl305wNhz~xK83`bdjNsJYsa#t-&b)A(So&nSW zsNn*r15m>SnED};Pj(e}22cl}h6|t$Kn)i_9e^4xfI0v*I{x$H9{BEY3ZH*zhAF&^ z;f7(jPR;-h9os3Bc!)TTh39!^$oRk`^BIuO=TDHF9A&ZmO*||BD3{Auoj|98p8;7L zuGi~dg+d|oI|TrX#bTMYr;aU}tHE=hp=N)EVHk#C7>2nG`~_<1fUDAqA143+002ov JPDHLkV1flrFp~fP literal 0 Hc$@ - + diff --git a/ui/guiutils.cpp b/ui/guiutils.cpp --- a/ui/guiutils.cpp +++ b/ui/guiutils.cpp @@ -73,7 +73,12 @@ if( ( (Okular::TextAnnotation*)ann )->textType() == Okular::TextAnnotation::Linked ) ret = i18n( "Pop-up Note" ); else - ret = i18n( "Inline Note" ); + { + if( ( (Okular::TextAnnotation*)ann )->inplaceIntent() == Okular::TextAnnotation::TypeWriter ) + ret = i18n( "Typewriter" ); + else + ret = i18n( "Inline Note" ); + } break; case Okular::Annotation::ALine: if( ( (Okular::LineAnnotation*)ann )->linePoints().count() == 2 ) diff --git a/ui/pagepainter.cpp b/ui/pagepainter.cpp --- a/ui/pagepainter.cpp +++ b/ui/pagepainter.cpp @@ -686,6 +686,7 @@ image.fill( acolor.rgba() ); QPainter painter( &image ); painter.setFont( text->textFont() ); + painter.setPen( text->textColor() ); Qt::AlignmentFlag halign = ( text->inplaceAlignment() == 1 ? Qt::AlignHCenter : ( text->inplaceAlignment() == 2 ? Qt::AlignRight : Qt::AlignLeft ) ); const double invXScale = (double)page->width() / scaledWidth; const double invYScale = (double)page->height() / scaledHeight; diff --git a/ui/pageviewannotator.cpp b/ui/pageviewannotator.cpp --- a/ui/pageviewannotator.cpp +++ b/ui/pageviewannotator.cpp @@ -159,6 +159,14 @@ f.fromString( m_annotElement.attribute( QStringLiteral("font") ) ); ta->setTextFont( f ); } + // set font color + if ( m_annotElement.hasAttribute( QStringLiteral("textColor") ) ) + { + if ( inplaceIntent == Okular::TextAnnotation::TypeWriter ) + ta->setTextColor( m_annotElement.attribute( QStringLiteral("textColor") ) ); + else + ta->setTextColor( Qt::black ); + } //set width if ( m_annotElement.hasAttribute( QStringLiteral ( "width" ) ) ) {