From ddfedb55cc4e50e06e3c53f0997c858b3a6446a3 Mon Sep 17 00:00:00 2001 From: Jim Evins Date: Sun, 27 Oct 2013 12:16:45 -0400 Subject: [PATCH] Added some fallback icons. --- app/Icons.h | 118 ++++++++++++++++++ app/MainWindow.cpp | 24 ++-- app/icons.qrc | 12 ++ .../24x24/actions/fallback-edit-copy.png | Bin 0 -> 859 bytes app/icons/24x24/actions/fallback-edit-cut.png | Bin 0 -> 1347 bytes .../24x24/actions/fallback-edit-paste.png | Bin 0 -> 1084 bytes app/icons/24x24/actions/fallback-file-new.png | Bin 0 -> 1255 bytes .../24x24/actions/fallback-file-open.png | Bin 0 -> 1021 bytes .../24x24/actions/fallback-file-print.png | Bin 0 -> 1253 bytes .../24x24/actions/fallback-file-save-as.png | Bin 0 -> 1187 bytes .../24x24/actions/fallback-file-save.png | Bin 0 -> 1238 bytes .../24x24/actions/fallback-zoom-best-fit.png | Bin 0 -> 878 bytes app/icons/24x24/actions/fallback-zoom-in.png | Bin 0 -> 858 bytes .../24x24/actions/fallback-zoom-original.png | Bin 0 -> 879 bytes app/icons/24x24/actions/fallback-zoom-out.png | Bin 0 -> 791 bytes 15 files changed, 142 insertions(+), 12 deletions(-) create mode 100644 app/icons/24x24/actions/fallback-edit-copy.png create mode 100644 app/icons/24x24/actions/fallback-edit-cut.png create mode 100644 app/icons/24x24/actions/fallback-edit-paste.png create mode 100644 app/icons/24x24/actions/fallback-file-new.png create mode 100644 app/icons/24x24/actions/fallback-file-open.png create mode 100644 app/icons/24x24/actions/fallback-file-print.png create mode 100644 app/icons/24x24/actions/fallback-file-save-as.png create mode 100644 app/icons/24x24/actions/fallback-file-save.png create mode 100644 app/icons/24x24/actions/fallback-zoom-best-fit.png create mode 100644 app/icons/24x24/actions/fallback-zoom-in.png create mode 100644 app/icons/24x24/actions/fallback-zoom-original.png create mode 100644 app/icons/24x24/actions/fallback-zoom-out.png diff --git a/app/Icons.h b/app/Icons.h index 588eec5..f0bd0d2 100644 --- a/app/Icons.h +++ b/app/Icons.h @@ -306,6 +306,124 @@ namespace gLabels } }; + + /* + * Fallback Icons. These are fallbacks for icons that would normally come from the current theme, + * if supported. These icons are copied from the mate-icon-theme (GPL-v3 or CC-BY-SA-v3). + */ + namespace Fallback + { + + class EditCopy : public QIcon + { + public: + EditCopy() + { + addFile( ":icons/24x24/actions/fallback-edit-copy.png" ); + } + }; + + class EditCut : public QIcon + { + public: + EditCut() + { + addFile( ":icons/24x24/actions/fallback-edit-cut.png" ); + } + }; + + class EditPaste : public QIcon + { + public: + EditPaste() + { + addFile( ":icons/24x24/actions/fallback-edit-paste.png" ); + } + }; + + class FileNew : public QIcon + { + public: + FileNew() + { + addFile( ":icons/24x24/actions/fallback-file-new.png" ); + } + }; + + class FileOpen : public QIcon + { + public: + FileOpen() + { + addFile( ":icons/24x24/actions/fallback-file-open.png" ); + } + }; + + class FilePrint : public QIcon + { + public: + FilePrint() + { + addFile( ":icons/24x24/actions/fallback-file-print.png" ); + } + }; + + class FileSave : public QIcon + { + public: + FileSave() + { + addFile( ":icons/24x24/actions/fallback-file-save.png" ); + } + }; + + class FileSaveAs : public QIcon + { + public: + FileSaveAs() + { + addFile( ":icons/24x24/actions/fallback-file-save-as.png" ); + } + }; + + class ZoomBestFit : public QIcon + { + public: + ZoomBestFit() + { + addFile( ":icons/24x24/actions/fallback-zoom-best-fit.png" ); + } + }; + + class ZoomIn : public QIcon + { + public: + ZoomIn() + { + addFile( ":icons/24x24/actions/fallback-zoom-in.png" ); + } + }; + + class ZoomOriginal : public QIcon + { + public: + ZoomOriginal() + { + addFile( ":icons/24x24/actions/fallback-zoom-original.png" ); + } + }; + + class ZoomOut : public QIcon + { + public: + ZoomOut() + { + addFile( ":icons/24x24/actions/fallback-zoom-out.png" ); + } + }; + + } + } } diff --git a/app/MainWindow.cpp b/app/MainWindow.cpp index 256121a..99930eb 100644 --- a/app/MainWindow.cpp +++ b/app/MainWindow.cpp @@ -62,31 +62,31 @@ namespace gLabels { /* File actions */ fileNewAction = new QAction( tr("&New..."), this ); - fileNewAction->setIcon( QIcon::fromTheme( "document-new" ) ); + fileNewAction->setIcon( QIcon::fromTheme( "document-new", Icons::Fallback::FileNew() ) ); fileNewAction->setShortcut( QKeySequence::New ); fileNewAction->setStatusTip( tr("Create a new file") ); connect( fileNewAction, SIGNAL(triggered()), this, SLOT(fileNew()) ); fileOpenAction = new QAction( tr("&Open..."), this ); - fileOpenAction->setIcon( QIcon::fromTheme( "document-open" ) ); + fileOpenAction->setIcon( QIcon::fromTheme( "document-open", Icons::Fallback::FileOpen() ) ); fileOpenAction->setShortcut( QKeySequence::Open ); fileOpenAction->setStatusTip( tr("Open a file") ); connect( fileOpenAction, SIGNAL(triggered()), this, SLOT(fileOpen()) ); fileSaveAction = new QAction( tr("&Save"), this ); - fileSaveAction->setIcon( QIcon::fromTheme( "document-save" ) ); + fileSaveAction->setIcon( QIcon::fromTheme( "document-save", Icons::Fallback::FileSave() ) ); fileSaveAction->setShortcut( QKeySequence::Save ); fileSaveAction->setStatusTip( tr("Save current file") ); connect( fileSaveAction, SIGNAL(triggered()), this, SLOT(fileSave()) ); fileSaveAsAction = new QAction( tr("Save &As..."), this ); - fileSaveAsAction->setIcon( QIcon::fromTheme( "document-save-as" ) ); + fileSaveAsAction->setIcon( QIcon::fromTheme( "document-save-as", Icons::Fallback::FileSaveAs() ) ); fileSaveAsAction->setShortcut( QKeySequence::SaveAs ); fileSaveAsAction->setStatusTip( tr("Save current file to a different name") ); connect( fileSaveAsAction, SIGNAL(triggered()), this, SLOT(fileSaveAs()) ); filePrintAction = new QAction( tr("&Print..."), this ); - filePrintAction->setIcon( QIcon::fromTheme( "document-print" ) ); + filePrintAction->setIcon( QIcon::fromTheme( "document-print", Icons::Fallback::FilePrint() ) ); filePrintAction->setShortcut( QKeySequence::Print ); filePrintAction->setStatusTip( tr("Print the current file") ); connect( filePrintAction, SIGNAL(triggered()), this, SLOT(filePrint()) ); @@ -127,19 +127,19 @@ namespace gLabels connect( editRedoAction, SIGNAL(triggered()), this, SLOT(editRedo()) ); editCutAction = new QAction( tr("Cut"), this ); - editCutAction->setIcon( QIcon::fromTheme( "edit-cut" ) ); + editCutAction->setIcon( QIcon::fromTheme( "edit-cut", Icons::Fallback::EditCut() ) ); editCutAction->setShortcut( QKeySequence::Cut ); editCutAction->setStatusTip( tr("Cut the selection") ); connect( editCutAction, SIGNAL(triggered()), this, SLOT(editCut()) ); editCopyAction = new QAction( tr("&Copy"), this ); - editCopyAction->setIcon( QIcon::fromTheme( "edit-copy" ) ); + editCopyAction->setIcon( QIcon::fromTheme( "edit-copy", Icons::Fallback::EditCopy() ) ); editCopyAction->setShortcut( QKeySequence::Copy ); editCopyAction->setStatusTip( tr("Copy the selection") ); connect( editCopyAction, SIGNAL(triggered()), this, SLOT(editCopy()) ); editPasteAction = new QAction( tr("&Paste"), this ); - editPasteAction->setIcon( QIcon::fromTheme( "edit-paste" ) ); + editPasteAction->setIcon( QIcon::fromTheme( "edit-paste", Icons::Fallback::EditPaste() ) ); editPasteAction->setShortcut( QKeySequence::Paste ); editPasteAction->setStatusTip( tr("Paste the clipboard") ); connect( editPasteAction, SIGNAL(triggered()), this, SLOT(editPaste()) ); @@ -200,24 +200,24 @@ namespace gLabels connect( viewMarkupAction, SIGNAL(triggered()), this, SLOT(viewMarkup()) ); viewZoomInAction = new QAction( tr("Zoom &In"), this ); - viewZoomInAction->setIcon( QIcon::fromTheme( "zoom-in" ) ); + viewZoomInAction->setIcon( QIcon::fromTheme( "zoom-in", Icons::Fallback::ZoomIn() ) ); viewZoomInAction->setShortcut( QKeySequence::ZoomIn ); viewZoomInAction->setStatusTip( tr("Increase magnification") ); connect( viewZoomInAction, SIGNAL(triggered()), this, SLOT(viewZoomIn()) ); viewZoomOutAction = new QAction( tr("Zoom &Out"), this ); - viewZoomOutAction->setIcon( QIcon::fromTheme( "zoom-out" ) ); + viewZoomOutAction->setIcon( QIcon::fromTheme( "zoom-out", Icons::Fallback::ZoomOut() ) ); viewZoomOutAction->setShortcut( QKeySequence::ZoomOut ); viewZoomOutAction->setStatusTip( tr("Decrease magnification") ); connect( viewZoomOutAction, SIGNAL(triggered()), this, SLOT(viewZoomOut()) ); viewZoom1to1Action = new QAction( tr("Zoom &1 to 1"), this ); - viewZoom1to1Action->setIcon( QIcon::fromTheme( "zoom-original" ) ); + viewZoom1to1Action->setIcon( QIcon::fromTheme( "zoom-original", Icons::Fallback::ZoomOriginal() ) ); viewZoom1to1Action->setStatusTip( tr("Restore scale to 100%") ); connect( viewZoom1to1Action, SIGNAL(triggered()), this, SLOT(viewZoom1to1()) ); viewZoomToFitAction = new QAction( tr("Zoom to &Fit"), this ); - viewZoomToFitAction->setIcon( QIcon::fromTheme( "zoom-fit-best" ) ); + viewZoomToFitAction->setIcon( QIcon::fromTheme( "zoom-fit-best", Icons::Fallback::ZoomBestFit() ) ); viewZoomToFitAction->setStatusTip( tr("Set scale to fit window") ); connect( viewZoomToFitAction, SIGNAL(triggered()), this, SLOT(viewZoomToFit()) ); diff --git a/app/icons.qrc b/app/icons.qrc index 5ce1660..bf9b5ed 100644 --- a/app/icons.qrc +++ b/app/icons.qrc @@ -42,6 +42,18 @@ icons/24x24/actions/glabels-object-properties.png icons/24x24/actions/glabels-pencil.png icons/24x24/actions/glabels-text.png + icons/24x24/actions/fallback-edit-copy.png + icons/24x24/actions/fallback-edit-cut.png + icons/24x24/actions/fallback-edit-paste.png + icons/24x24/actions/fallback-file-new.png + icons/24x24/actions/fallback-file-open.png + icons/24x24/actions/fallback-file-print.png + icons/24x24/actions/fallback-file-save-as.png + icons/24x24/actions/fallback-file-save.png + icons/24x24/actions/fallback-zoom-best-fit.png + icons/24x24/actions/fallback-zoom-in.png + icons/24x24/actions/fallback-zoom-original.png + icons/24x24/actions/fallback-zoom-out.png icons/24x24/apps/glabels.png icons/32x32/apps/glabels.png icons/48x48/apps/glabels.png diff --git a/app/icons/24x24/actions/fallback-edit-copy.png b/app/icons/24x24/actions/fallback-edit-copy.png new file mode 100644 index 0000000000000000000000000000000000000000..1075bfe490773277c782c09252dd47672e424632 GIT binary patch literal 859 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)4%b@U_I1CZGssfk$L9 zP{%b8W}J{;IR_+IR^XTpq`~?bDtwkMV_;x%@N{tu@i=~U%K2>JK!M}-#`=nTuQn@r zMSr;NS;e(g$s>17Zj0QV$~fD z-ZfjceLS@3#^m(=oC$k&9(h?}#ZdGABkz0Ld+jYJ?eD1b9M1Sz>*qU1nd26-=si)6 zCWeNx4aZMkH9ccU94+uBDNW)`!83zbGfm&uV`maaC>8&976ypp4wmFM=J;_u&Fz3<5y3*A2x zWAaO5Vx@m#O3T{v=q+XC!GiC&?ySDIKW6PctsHgf+xu6`&A0eiocU2rzN|bT)TL#j zQ{%>sg>L;l%arC=Z^*xzmAn3aM3|gju#Q;fK6|glAEiWH=Pthbt3>0_UlzWte#@Iz zO*;R4Wr!BD;vCNeiI&ZrJdGa$WK$e1COb$Sx+tCE!r}gVXU)6ZqA)f=h9?Fsza!U% zWl!Go<^QcZ#`JyU~f)BzKgYKdz^NlIc#s#S7PDv)9@GBB{zH8j#SFbpv;vNAHV zGB(vVFtjo-SRryE8%0BIeoAIqC2kEjJqxY_HAsSN2+mI{DNig)WhgH%*UQYyE>2D? zNY%?PN}v7CMhd7%7^Em9vm_^#!M~s+GdVFw!KEm(EY&W37Y|UH!PC{xWt~$(696mc BXiWeB literal 0 HcmV?d00001 diff --git a/app/icons/24x24/actions/fallback-edit-cut.png b/app/icons/24x24/actions/fallback-edit-cut.png new file mode 100644 index 0000000000000000000000000000000000000000..406636abeafb3e8fa58402656e9e9613e2a217d2 GIT binary patch literal 1347 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjoCO|{#X$LMAj~)+zj6*pu&lr_ z9i$SBD}0tN12Wi>yxmwQYF(cW zhtpwoSFV3g-m-bM@~7JT^Wh8=KAqov-H@62`=aD^6Mbb@UsQ8RcyP0C=1c`0eO-p1 ze7ZV1d;V&~v@T5AzjK?F5{KY|ih1epRlFX|SLM67f@ORD_l~mmt3Oxhe6hLx@^huR zN+84i^?3@au|7V`d)3TrEg2tPkXp0WZb{#v7cc%^+COFD<$XC@O}Qtj9P%j;vUz9t zfM?g!7LJN}h5dKrn-UK2n;dxXU~liP^JgEcbjQ{wStwhZ*#DQdiHU2`+|QnO_m^9e zrEjVeOV!?GSJJZiY&m`;6ejX1JroF;?Yr>ZyV=vX@Amn8tlZYzb>fwKujN`FY~l9_ zopZq83^%8sg$&=$g9m*67~R-!`Sv@L=*72XjQNkA&Gmb37c6Qo9u<9;OJ>HbhIjAs zUC*u9Y=3XTOTFh3>kAaW|Ij#dmd&A~W#PhuLaSEoEGn<4(AX6!HJ_c0{axNCw`1}Ddq+z4jJmy1#M$H5rF0(7d>~?C zcC|VC4(r~%whz8n9*l_=zP3qJ_5ZIJrQEDln`f~0r6=U%u)LUEGS%bO&%^3mH@Yt9 zNgumvHd7~O>d7NO>ei<6^&6e-@qH=c3 zz9(l+2|YhQr*Y{br3fv(wtZ)OUf2{ctovA%v7>^q&cpxyFaPV$&(CZ9H%I2=vVb)L z|G(^D$>o@8#V_Aip c_nKl?_=K8L7b~qRWHn(v?)`suJ*{hDJ%~+8NKlG?!H($ z+e=jT)Y++Zc2yyplKy1=kvvdwqyCl1jVrHu(^}$gDIJvvJ3pU2h;5>)Ml(z2+Bw$j zWlMvuOxSc`&F!hDZiFN%Zb^RA@4q0R$7j9`r|ij-Oo}IzCHHz62{zw8H<{&=iRRH6 z^AoIsgAZ@z*n6`hfbXOi#~eG}vYzFSg(k#KOK zmC6<6FPx2U);Xy+=(zzpU;qLp6FDzHb*j+FGkYG~r=f|`Y`Jd7^S|@T%_Flj zdbX8qjoQGL9~bhWc}uqaHnY}OiWP4hAD!iD5?g(*MP|yP3IkR{_x%gBM6Yb)?C28r zcbeTSZ@Xn#h(Y98y_+{H=N~_OX3gCcdyy~pJfF{<`8@yspa19g7&HGjP6;?@{r=p( zoDY*`KE16nkz=B;zwF$)TmgIY6$`?CKc0HL-)5pV@AO;8Uwy6m_t@WWKi41Y#`S)7 zMIJ}av+<_#@FXwXcE~Gtrf#&`$9uv~4^CZ5otAz2=VoJmiH4aE_v{zS{!;Sw$M^YP zMFJ+@y#0RP`kKc#=B`=Cx-a(6++$ZoA6YzGKEK|@^uZi=(+d%6i*vK5vLAQX5S7*5 zAFK8M(_!VLbr#MHyczxS{etBVUL31zc5QF!creGib<)== zlil1$9KOq?u)LS~{F&RLu%p;QP@sLnp5NcY`M;Dccxm(EL&99XJ>NrChwk}Y@xJif z<2l}UFU)hl%c9aU!G!1L2a{Bm!oK44^XlSX`QF=1ZdWV3r>qpwuV$SP;k)i%)yqfQ zqRV@>&z^qs1P9X_`wjf>i=XT{{#%B_V^_qj?yr1Y2ez#jf1STAYQCMi*xe}>Tgy@| zt`ldtQT4g(*TKiuvgscgToa59STe7cTGT!I$$#ceT=3B|lRT&OUcL0@@N&PEETNEoCjB(o$Z imBGKDBr`cNN5Q2ivnfFDZ*Bm0X>@2HVIW9V zM@1lLWo&RDW^!+BAWC6tbz+882eSYG1Mo>iK~zYIwUtYZ6jc<4zjOOl)!hRFLl2CY z$lwHwu#y;c;ljj)D-&YE!Ub`~%14YlH(=t%xYdQ2pbLp6hA=P*ny3?uqDF)O5+jU; zI55M&yvOwPqwc-OMOF25O%shKp3X_%s_Op#^Z)1Ex}vK5pOH@&r@uITUtZ-c_5OhO zS_CB}S5-vhPeCTs>rWQe) z51q3_*3xdbn7%#Lnw~sc-#PT_Sgm@#)o#q}%@?ZY`ucW$#Neqb_f+7VJ+O0l#57w? zymxr-<5Z9L4it1-3^q#b`kjM~r3ncKk5Hd^^YLP7U?hKc|MA@5$rC*U z*1DpIU~Pn|;?<+7sE@zB_e3_rw=WSzUr{amf^S`uu=X0|+KWKWG#208-&gGSc4q&4 ze%r~j0A@{r1GH1QdPP%`WDX1wxz-u{%7-k?j$>U&xaDO4!hsivBDga-{@m=;cc0$+ zq5Rl-i_oN@9pK~xnh-3~Uiz5+;o}smPi32FLTY=ig09e57~L{A@zN+Tw5GsXP-4$j z6QZPg1w}EeP%J$_W9}HJyT{BpaCKJaPx@RgxRkNT`ee#d1*H2UT?t4)Y2%al=6P0b zzM93>Cb$I_ZoGnBy*OLjzVG#{Mb>5Dl8YEx;#oZS z>lE0;2th>=ku{?9iGXDvg^ka$Joz@ux8A2z-bz>XLb+nJwDY#U=xB|@|qBl1X!|G z2?(2TJdO8Dh+hDdVr2)Huf3<=U)V5z_|Y}DvkC;npwJ(;NKG)9w|OSZam_HPKB?^G%x7%_-R!A*uF?LS=`GA`0~L&hRI1b&S@ z_P=wLPHX}m6PkpSGy!Y>!J>3$WluSe$HWBcG82`)yVfjn7 literal 0 HcmV?d00001 diff --git a/app/icons/24x24/actions/fallback-file-open.png b/app/icons/24x24/actions/fallback-file-open.png new file mode 100644 index 0000000000000000000000000000000000000000..53c5ee802c6eb890b9be4ba1326ddd83b6148f74 GIT binary patch literal 1021 zcmV0000NbVXQnL3MO!Z*l-k zVQ_CCLt$)TZDDR?a%E}Xks2xh001d;MObu1WpiV4X>fFDZ*BlWVRL0A355XXP}{E}b?*A8hf2(?Y6 zSc0CA5E92C0^*85LIe(#fKyctKxt9Mm6r5YZWV_L!3hwT9^ilwAF2o`4xdG-50xS{ z#ZF?!v7h}uc80@qjGygTg{X|QdOLda|NnPpXLpUNayQMntL*=WfZOZ5ar))gQpP#2 z=){oNstB)MIDhGre@zf3lp zH?y+^SFJ@<5K&YF(KyR64ENpst9%X^E?^_e=H>>T*8*UD-J?>eBO)Wq;5ZHk4(wz9 z{z+6d)BCTlL=ly8nIP~1s8s5F^x?;(Qi-quvo>P>r5DJg&A?*%_kdch*7Ze%RLZ4V z-54n_H8qWh;CU^aRI>92N)!g+0KrmmaiqZ9<4*$+1|g~OWVU@746pSg4?j9mAi2m9 zC9>9{3dSTscbdTt$L<1=1r&%CRFy`f!J!9cMt0KL+8XV)4`ezVBQoeU-w#;1ah-3z z{eqh}OGHt$tH{BFxtMT#j1wncR6r*t#y>Zz%88Tn@7u^8w<4K-U@n*A=z|Y2GgDw} zZ0Cy7ZicpIvnUs@3gJ7k~WWsktYgm{g<-{)d2sXgug4PcEofTyEB?^|t|BV~i;j?*Gyl z@$$L!2Rm0N-9 z-t&&{M+?S$fA6lXat9U!;qAr6pWg*ibdHn(#(`;|(E0Ags=%MX1`rrk#TerdpNTQ{ r{!R-J0+Fgp_sKM-|AN??X@~f4uCvTxt{yfi00000NkvXXu0mjftD4XG literal 0 HcmV?d00001 diff --git a/app/icons/24x24/actions/fallback-file-print.png b/app/icons/24x24/actions/fallback-file-print.png new file mode 100644 index 0000000000000000000000000000000000000000..eb47921dfcc78388a783d89aab3cad7487a1b7d9 GIT binary patch literal 1253 zcmV9$)bpbYM_Zpn>KBtZPQEI zq%)Ju?VE4rn{#myGbGr8wRYpPc@O9CKF`a0;~1GthKC9Bp|bxk1nl)gu2jA(rP}ge zkQxSgQ#7`AbaYg0fZK(_qphKE*O5c7*+WCaj0}(bE8_Y2IVPqi`0o1?p?t151Weih zhG00|l@?knq!hT-3dcV^PGPlhPqJdMNHiM7G)>}(ILAIXhBh=xD$=QxwX#xp9GG0I zfn|(zccsEwYXXkLm8+M@WpnJ>HG&Z0Z&nC_lnUSX5kip9<++nx#&Il^QlwJt5z91p z!(TNBIQIT@XUdjRV%aA7)gk~>Q`2{~j^i*oI?CRso@B?4?KqBu<2Y2xWt5V%CliM4 z*!!9SCXA*#Qz#{If)3jT2l(id57AoRH9e+jVVcIKJ0Tm`0h>TDKxa6DQhH}opdnS? z;NSpNugb3BJy@1?f7RW98`p2r($a!bDw)gW92-C><(!*2Pxj6o(w$uoBrrZcPFpMv zKt39^Yyhn_b92A5yu8GVmC^$VT)H$*Tdb{_-sYfHTo>PO5Q#*vZJWJM><7TuIO`hj zR+f`LjS)|*McojBit9Gt48YjEZ@=HSrP~&b2Fux1gb=)a=nY|?0%Z(w!cm~-p7*n2WCJMiL{bP zBnXGYbf!8emR$;^3Q|frdtv6l!oots1hnt_ixMgRBYouCxSt?!O)a7pgO}Hh5=XpHV*Gs9enm<4N+sCtKrw%qe?+T#IOeUj& zl9cjdC=`qj3~VKzU%|F4T-U{~2}E7f7u`d9pr2MV#S8s!@oev#xUP#*nnIz((C|)d z+m0w9ewI?60#-Abj9%{|323kC#g=X_vT*e(N8de4YisnL?b!azdzhxhjgz0Vc=HAq zXJ@H-)gZPl5W>x5GICR!0#?0NGftg8L%Cc*G$i#}Z4>Fn)v)y=tRM;?0ejPuf4P*1ZxfeXIYRt`E0B8syDnK)mbpZ|BsuYU{ zfquX)7Ygbhv9G~oEzQ?~Ye3W2SpT++jg47A3lL;&0PhzX@PX=j{sI03V#ww8Dg}@Q P00000NkvXXu0mjf%ECLR literal 0 HcmV?d00001 diff --git a/app/icons/24x24/actions/fallback-file-save-as.png b/app/icons/24x24/actions/fallback-file-save-as.png new file mode 100644 index 0000000000000000000000000000000000000000..e2f6b7267863721e944211eca116e9e57a01d56e GIT binary patch literal 1187 zcmV;U1YG-xP)PIH6d0000NbVXQnL3MO! zZ*l-kVQ_CCLt$)TZDDR?a%E}Xks2xh000V>IRB3Hx05UKzIV~|U zEiy94!OSKA00X;8L_t(YiM5tpOdM4d$A2@kQ0vyIU76#U`btr9rTiCVi+r z)TUz5m{_$9@!c8|HO7YcVl+OPs6>sV#6)SuL}{&!q9syGOGR7I?n0 z=h(Xkehq1=>y`j)DgJu0=-x z?zE;$=+f0E0H$>8(4O6UOVTO&;llYP_oZXs016fYTK2bQJ-=Mz*Y|(NiC8n|P7N$4 zT@AD(0i8$87NDiA{e5S9RW*UYHHwOhaJh6eO~a+Rc<$S+MBSqho9pn(y?t21LI?}f zH2HmE0{{9l&iD1weE8|i1j)4!o1dRYQE@SoQ-4rgT!N;msH%pls*6SpN5ZUHm5(J< zR81u_%T2+W)#T-^OwpwPq?D+NiV%VukwM<;KT4*aL!GyA5uk7KBo}}Am|VS(ot`I9 z{w_e+0x4yRE@d<+C90}oS%TvOFH%>%i~DPvI6L;%BEU7}G>7&+OHoAzXUELS2@JFo;o&T>6=87+I3#~WUtd#EF+yKnOY)R!ON=h&Cb*dc6NCuYXbbv+G$suGXK zDVO{By7vvHHjXjv9i?W&gGpVvzk&e?`3k$oC{NP zq22>{fZF+5OU{Br8b@T?Oixd^Z%fS8xL~gWXA%4fo096PIH6d0000NbVXQnL3MO! zZ*l-kVQ_CCLt$)TZDDR?a%E}Xks2xh000V>IRB3Hx05UKzIV~|U zEiy94!OSKA00ZtxL_t(YiM5vBZxmG&$3OSZ%oe+%(o(iiY!|l%P}K568zN#ck{}5X zBEO^2gb<%K##iGXV0_T{fZ~HhBr#ARY87H!Lz)-@MypbY-7RWcLa>#Y-EDV!fBDd| zY-y3zg!6K8&zyTc^F8Ozv`oO2js`E&5nhD;`VJe^K&sf0`c7>Y+z zi(1z=HZBOXQWz%WvG%3Z@4gS8fG4at@Vu+~n=n+A|lqLrqpsfi#6%1UmwL_>nQ`Z*}2C>DzhT^>Sf zb9;c060J3!=OYl{n6?QZ%0+m-L}`UmiqWxAjL}sn5EFob+^-xs_bRo)Jv_Z=_cXxS ztDT&=c$nEi109Kd$kBTA3;C9VSX%p?&eza$a3?z}fskvcLE7NAC!a6kf&!5CpN?1GLsWzG@Xp zKgPo&D>(Se>x6&*#OShX%&l1jz+c6Femg&axq2Vl=D$rtZ3~Hc^Qur_EZS)LGJSM+ zcQY_Jh-5Wk)AyVUdr3VMfrCu%ASTnqto}B-_>NR6#WNl2NG7ZJ4vf|~VQF9e1nuP~ zJ15-8gzIPo8i6No>{WJr#v?twMaD2PGQx_smE1jhHh~`y1hGjUOcYaU^8AmZv?8C& z@xzbjP)b#yz-YoSqEsqTDwXK(&yvYzXiYsxGMNOZh_#YTPRu0?Ba~KHQ^k)TmcZ*Zxup_1TY^E zyY_59WsI%oKbYsq;lqbMTMszk@^uB`PG4L80V3}(RWC!{K>z>%07*qoM6N<$f}?&a AyZ`_I literal 0 HcmV?d00001 diff --git a/app/icons/24x24/actions/fallback-zoom-best-fit.png b/app/icons/24x24/actions/fallback-zoom-best-fit.png new file mode 100644 index 0000000000000000000000000000000000000000..6bb52570686d5e2bd1becef67349847b402170e9 GIT binary patch literal 878 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAF&8^|hH!9j+9gP2NC6dbffR*g zmgJ-|MCIq_?qLko28ybIL>)^@GV+TUyb`lZlN5qWQZw^Xi*yux5)1MboD*{ra})DY zic&L0LOw2MU|`e<@Ck9Pr~uiE2khU!8BNyC&I~AGX=wx(|NZ;7l$4aHsOX`c!{1quSe^chpno;wv4 z8v$hR+_huZo?XvhJbU@-1rTl8yb&lE5fzr1ot9siQ(9hBRa;(NSJBu~-`v{J-PbW? z`ovjtr_Y@~bHU=dOIIvfwsP^>4J+4eT(xcIrd@lt-Me?^!Gn7bA3b>d_~DBe&tANE z@$x0e*jKM!zJ2@p!-w}@zkc}&1mC`X1A_10zJLGz;|CD^`1$kauU|j}^vG|ZU;h66 z`|saBpi7e7K0OBd*{meUFPMRmiJ66!jh%~|S431yLRMZ;MMYIZ)5n>N4m5x@I&cg6FWfBBowf8T#-qtEoyM-Kh54c*fC zTW{Gk)qfAH%%1P~UMRNdoYHrnGimqE>dw*Ojy>>6v!Q1rkGZ;0n;yRhqidjm((^z^ zn-Yf51x*_H4(+XGKC7?3`qI6C`IgR>m^YQ`FAAb{Ox|vff1}3zYR~djS?{MVNM5%o zVEz~B3onB2&A1Y|BC?Hb)-p*p%kWu=S0gm|egFQDD!F{+;U5R{_EfP;%-a8*dXC>a z8{KSDE7o%4F2{Kbn_a#fOq@vt-#2~foOVopX?L!tN}{TWrIof#Ve6BJ&sN?4?ZlOv z^VaqI%olzswYmzI=6C#SP+^ty9gP2NC6dbffR*g zmgJ-|MCIq_?qLko28ybIL>)^@GV+TUyb`lZlN5qWQZw^Xi*yux5)1MboD*{ra})DY zic&L0LOw2MU|=*2@Ck9Pr~uiE2khU!8BNyC&I~AGX=wx(my(ha6&2mHf9Jk~y9)~Q zeEqzAe7*J^*qxD?R$f`M_rQ+52X>}sq(;R??A*0u*PdO^Up#yH>ID#O+PpC|JUAjM zEHODQCodDIxT?0iy0)UZwV}JOqi;g@l<5;^&Y3oQ-i$f(XU?5JbIJ0BOIIvfw{g{m z&1<&p+_Y=&wmtiI>^r#g=B*od@7=j~@6Mw~4<0{$`0V-97cZW@c=6)p%NMU+y?p)V z_1m|v-@SYH{{8z8AKriZ^zqZDPoF=3{QMb6e*XOB^OrB5zkdDl_3PJfK=A$B_wV0- z{P_O!=g(iifaurnKfnKg(4W75|Ni^;@Bjb*@jF!8fS%Vb3GxeOU}R!uVP#|I;^q|* z6_b#aS5#3^)zEYcTd`v0m1}Q+w!ZuD18B(aKY!!GZLDgPgSc#!_0(rxykqz}^>!auCIc+2VPZVpz# zIpMioQ%qXIa}IS2G%dR#;`x^6nSfiutXuq3^DRC`@A=Ji@!Me;g}N?r_K0Ae>vLJ^ zSRN>>neO1wkw4ihk|E$hm4BeYLD9p_?|w{>iuE}iIx~c0?xOgT>fQyb9;HbaI|#or qSNfV~`Fsv9qhO(vwt=bfzbE2aCQ}tQJmK>Mr7KTYKbLh*2~7aX$%~u- literal 0 HcmV?d00001 diff --git a/app/icons/24x24/actions/fallback-zoom-original.png b/app/icons/24x24/actions/fallback-zoom-original.png new file mode 100644 index 0000000000000000000000000000000000000000..9761f7ab1a4198030863aa1927f2bd84305c5303 GIT binary patch literal 879 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAF&8^|hH!9j+9gP2NC6dbffR*g zmgJ-|MCIq_?qLko28ybIL>)^@GV+TUyb`lZlN5qWQZw^Xi*yux5)1MboD*{ra})DY zic&L0LOw2MU|@6)@Ck9Pr~uiE2khU!8BNyC&I~AGX=wx(my(ha6&2mHf9Jk~y9)~Q zeEqzAe7*J^*qxD?R$f`M_rQ+52X>}sq(;R??A*0u*PdO^Up#yH>ID#O+PpC$Dl98E zqqMxJs{t)r#0r>(oMW6HD%Q>IUxGJW#g`7`G&oV8%#+@&iPtysNu z-Nsd$wyxi{bJMQ9+YTK*c=OhcTeolCy?5sx5Z%9f|Nh+v5AHvD^x*O1hfkh7diMP3 zixnR^$4{R=eg6FE^Ow(GzI^%m z6^Oom`vyeczJ34p{rmSHKfeF``SaH=Ao}(DHxT{)^9P9j{Qdj)-@kwV|No!QXnzJ6 z9NHy8e!&ckOw25-Z0uazydt7v60-7&Dk`cPnr>k$R;;{o4P@oJ4?jTW{P{a~lh|`$ zOh|jWIEH8huRXg_-^Ed&;bZ>uw^e%W919gJS-CE92EORnA3bG}XlqQ1i-?f=yLUT_ zcUv#s@qM1xbM5ETXExTKW-JL8E5CK}b4kS23$gF#i0dv{eX^RBb;HJ*#;D0}_U#Dd zoo@K_e#!fn%r+M$OE%mIFIW`tP3}3v{eUIgE5z0Xx1`Q!UML`EHJj0qakb;ggd&!T z(+y?`#xG9rF6S`bz_uxEhFpaFo)rss-s}*xbHB|hVyC&$cB;{WIENaeAZAT&1xE*` zg-@>7@i#PEAGrPg^TQoJ2ObDWaManb$n>p!SLnmQ$1I<>KhChdW$D$T`d+KQFTxLN ztvsyX;-_(%?Z>=hCw0>L)wayA2tTj;e9q>F2Q1b5#0*T0|Gi;fJ!`t}vVa*2K#9%M L)z4*}Q$iB}AqJkZ literal 0 HcmV?d00001 diff --git a/app/icons/24x24/actions/fallback-zoom-out.png b/app/icons/24x24/actions/fallback-zoom-out.png new file mode 100644 index 0000000000000000000000000000000000000000..bcd3599477933f764b8920daf1a314293e5a6c43 GIT binary patch literal 791 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbMaAF&8^|hH!9j+9gP2NC6dbffR*g zmgJ-|MCIq_?qLko28ybIL>)^@GV+TUyb`lZlN5qWQZw^Xi*yux5)1MboD*{ra})DY zic&L0LOw2MU|}sq(;R??A*0u*PdO^Up#yH>ID#O+PpC$Dh#Nm zsb<&|r1fcCxn@B?Vb?>~R% zZW4PA)b`oa#W6%9c&>VsfH-6C?Aa(-ULL z(vKawyEpqy&C}{L$2T3=@5pdr&RMamHSf%0`OZH57?kC4es?K5N5ksN?lZ)HJnN29 zV3=X+BE9zWCr$?D8O2uwCqDnNm!YaBb3*fBr!`fR9+*m a{uA>CqqYNj+bx(tiNe#>&t;ucLK6U}plt5| literal 0 HcmV?d00001