From e2282a4af815aa0d1071a2c7ee6679f67f8b0058 Mon Sep 17 00:00:00 2001
From: jean-pierre charras <jp.charras@wanadoo.fr>
Date: Fri, 27 Sep 2024 13:34:09 +0200
Subject: [PATCH] Minor cosmetic enhancement: add icon to Revert and Generate
 Legacy BOM tools

---
 common/bitmap_info.cpp                        |  10 ++
 common/tool/actions.cpp                       |   4 +-
 eeschema/tools/ee_actions.cpp                 |   1 +
 include/bitmaps/bitmaps_list.h                |   1 +
 resources/bitmaps_png/CMakeLists.txt          |   1 +
 .../bitmaps_png/png/restore_from_file_16.png  | Bin 0 -> 489 bytes
 .../bitmaps_png/png/restore_from_file_24.png  | Bin 0 -> 639 bytes
 .../bitmaps_png/png/restore_from_file_32.png  | Bin 0 -> 852 bytes
 .../bitmaps_png/png/restore_from_file_48.png  | Bin 0 -> 1167 bytes
 .../bitmaps_png/png/restore_from_file_64.png  | Bin 0 -> 1497 bytes
 .../png/restore_from_file_dark_16.png         | Bin 0 -> 487 bytes
 .../png/restore_from_file_dark_24.png         | Bin 0 -> 648 bytes
 .../png/restore_from_file_dark_32.png         | Bin 0 -> 840 bytes
 .../png/restore_from_file_dark_48.png         | Bin 0 -> 1133 bytes
 .../png/restore_from_file_dark_64.png         | Bin 0 -> 1492 bytes
 .../sources/dark/restore_from_file.svg        | 129 +++++++++++++++++
 .../sources/light/restore_from_file.svg       | 130 ++++++++++++++++++
 17 files changed, 275 insertions(+), 1 deletion(-)
 create mode 100644 resources/bitmaps_png/png/restore_from_file_16.png
 create mode 100644 resources/bitmaps_png/png/restore_from_file_24.png
 create mode 100644 resources/bitmaps_png/png/restore_from_file_32.png
 create mode 100644 resources/bitmaps_png/png/restore_from_file_48.png
 create mode 100644 resources/bitmaps_png/png/restore_from_file_64.png
 create mode 100644 resources/bitmaps_png/png/restore_from_file_dark_16.png
 create mode 100644 resources/bitmaps_png/png/restore_from_file_dark_24.png
 create mode 100644 resources/bitmaps_png/png/restore_from_file_dark_32.png
 create mode 100644 resources/bitmaps_png/png/restore_from_file_dark_48.png
 create mode 100644 resources/bitmaps_png/png/restore_from_file_dark_64.png
 create mode 100644 resources/bitmaps_png/sources/dark/restore_from_file.svg
 create mode 100644 resources/bitmaps_png/sources/light/restore_from_file.svg

diff --git a/common/bitmap_info.cpp b/common/bitmap_info.cpp
index 4cfe349342..111b1c36a8 100644
--- a/common/bitmap_info.cpp
+++ b/common/bitmap_info.cpp
@@ -668,6 +668,7 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
     aBitmapInfoCache[BITMAPS::reload].emplace_back( BITMAPS::reload, wxT( "reload_24.png" ), 24, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::render_mode].emplace_back( BITMAPS::render_mode, wxT( "render_mode_24.png" ), 24, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::rescue].emplace_back( BITMAPS::rescue, wxT( "rescue_24.png" ), 24, wxT( "light" ) );
+    aBitmapInfoCache[BITMAPS::restore_from_file].emplace_back( BITMAPS::restore_from_file, wxT( "restore_from_file_24.png" ), 24, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::right].emplace_back( BITMAPS::right, wxT( "right_24.png" ), 24, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner].emplace_back( BITMAPS::router_len_tuner, wxT( "router_len_tuner_24.png" ), 24, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner_setup].emplace_back( BITMAPS::router_len_tuner_setup, wxT( "router_len_tuner_setup_24.png" ), 24, wxT( "light" ) );
@@ -1086,6 +1087,7 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
     aBitmapInfoCache[BITMAPS::reload].emplace_back( BITMAPS::reload, wxT( "reload_dark_24.png" ), 24, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::render_mode].emplace_back( BITMAPS::render_mode, wxT( "render_mode_dark_24.png" ), 24, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::rescue].emplace_back( BITMAPS::rescue, wxT( "rescue_dark_24.png" ), 24, wxT( "dark" ) );
+    aBitmapInfoCache[BITMAPS::restore_from_file].emplace_back( BITMAPS::restore_from_file, wxT( "restore_from_file_dark_24.png" ), 24, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::right].emplace_back( BITMAPS::right, wxT( "right_dark_24.png" ), 24, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner].emplace_back( BITMAPS::router_len_tuner, wxT( "router_len_tuner_dark_24.png" ), 24, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner_setup].emplace_back( BITMAPS::router_len_tuner_setup, wxT( "router_len_tuner_setup_dark_24.png" ), 24, wxT( "dark" ) );
@@ -1504,6 +1506,7 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
     aBitmapInfoCache[BITMAPS::reload].emplace_back( BITMAPS::reload, wxT( "reload_16.png" ), 16, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::render_mode].emplace_back( BITMAPS::render_mode, wxT( "render_mode_16.png" ), 16, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::rescue].emplace_back( BITMAPS::rescue, wxT( "rescue_16.png" ), 16, wxT( "light" ) );
+    aBitmapInfoCache[BITMAPS::restore_from_file].emplace_back( BITMAPS::restore_from_file, wxT( "restore_from_file_16.png" ), 16, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::right].emplace_back( BITMAPS::right, wxT( "right_16.png" ), 16, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner].emplace_back( BITMAPS::router_len_tuner, wxT( "router_len_tuner_16.png" ), 16, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner_setup].emplace_back( BITMAPS::router_len_tuner_setup, wxT( "router_len_tuner_setup_16.png" ), 16, wxT( "light" ) );
@@ -1922,6 +1925,7 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
     aBitmapInfoCache[BITMAPS::reload].emplace_back( BITMAPS::reload, wxT( "reload_dark_16.png" ), 16, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::render_mode].emplace_back( BITMAPS::render_mode, wxT( "render_mode_dark_16.png" ), 16, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::rescue].emplace_back( BITMAPS::rescue, wxT( "rescue_dark_16.png" ), 16, wxT( "dark" ) );
+    aBitmapInfoCache[BITMAPS::restore_from_file].emplace_back( BITMAPS::restore_from_file, wxT( "restore_from_file_dark_16.png" ), 16, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::right].emplace_back( BITMAPS::right, wxT( "right_dark_16.png" ), 16, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner].emplace_back( BITMAPS::router_len_tuner, wxT( "router_len_tuner_dark_16.png" ), 16, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner_setup].emplace_back( BITMAPS::router_len_tuner_setup, wxT( "router_len_tuner_setup_dark_16.png" ), 16, wxT( "dark" ) );
@@ -2340,6 +2344,7 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
     aBitmapInfoCache[BITMAPS::reload].emplace_back( BITMAPS::reload, wxT( "reload_32.png" ), 32, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::render_mode].emplace_back( BITMAPS::render_mode, wxT( "render_mode_32.png" ), 32, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::rescue].emplace_back( BITMAPS::rescue, wxT( "rescue_32.png" ), 32, wxT( "light" ) );
+    aBitmapInfoCache[BITMAPS::restore_from_file].emplace_back( BITMAPS::restore_from_file, wxT( "restore_from_file_32.png" ), 32, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::right].emplace_back( BITMAPS::right, wxT( "right_32.png" ), 32, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner].emplace_back( BITMAPS::router_len_tuner, wxT( "router_len_tuner_32.png" ), 32, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner_setup].emplace_back( BITMAPS::router_len_tuner_setup, wxT( "router_len_tuner_setup_32.png" ), 32, wxT( "light" ) );
@@ -2758,6 +2763,7 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
     aBitmapInfoCache[BITMAPS::reload].emplace_back( BITMAPS::reload, wxT( "reload_dark_32.png" ), 32, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::render_mode].emplace_back( BITMAPS::render_mode, wxT( "render_mode_dark_32.png" ), 32, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::rescue].emplace_back( BITMAPS::rescue, wxT( "rescue_dark_32.png" ), 32, wxT( "dark" ) );
+    aBitmapInfoCache[BITMAPS::restore_from_file].emplace_back( BITMAPS::restore_from_file, wxT( "restore_from_file_dark_32.png" ), 32, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::right].emplace_back( BITMAPS::right, wxT( "right_dark_32.png" ), 32, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner].emplace_back( BITMAPS::router_len_tuner, wxT( "router_len_tuner_dark_32.png" ), 32, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner_setup].emplace_back( BITMAPS::router_len_tuner_setup, wxT( "router_len_tuner_setup_dark_32.png" ), 32, wxT( "dark" ) );
@@ -3176,6 +3182,7 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
     aBitmapInfoCache[BITMAPS::reload].emplace_back( BITMAPS::reload, wxT( "reload_48.png" ), 48, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::render_mode].emplace_back( BITMAPS::render_mode, wxT( "render_mode_48.png" ), 48, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::rescue].emplace_back( BITMAPS::rescue, wxT( "rescue_48.png" ), 48, wxT( "light" ) );
+    aBitmapInfoCache[BITMAPS::restore_from_file].emplace_back( BITMAPS::restore_from_file, wxT( "restore_from_file_48.png" ), 48, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::right].emplace_back( BITMAPS::right, wxT( "right_48.png" ), 48, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner].emplace_back( BITMAPS::router_len_tuner, wxT( "router_len_tuner_48.png" ), 48, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner_setup].emplace_back( BITMAPS::router_len_tuner_setup, wxT( "router_len_tuner_setup_48.png" ), 48, wxT( "light" ) );
@@ -3594,6 +3601,7 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
     aBitmapInfoCache[BITMAPS::reload].emplace_back( BITMAPS::reload, wxT( "reload_dark_48.png" ), 48, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::render_mode].emplace_back( BITMAPS::render_mode, wxT( "render_mode_dark_48.png" ), 48, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::rescue].emplace_back( BITMAPS::rescue, wxT( "rescue_dark_48.png" ), 48, wxT( "dark" ) );
+    aBitmapInfoCache[BITMAPS::restore_from_file].emplace_back( BITMAPS::restore_from_file, wxT( "restore_from_file_dark_48.png" ), 48, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::right].emplace_back( BITMAPS::right, wxT( "right_dark_48.png" ), 48, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner].emplace_back( BITMAPS::router_len_tuner, wxT( "router_len_tuner_dark_48.png" ), 48, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner_setup].emplace_back( BITMAPS::router_len_tuner_setup, wxT( "router_len_tuner_setup_dark_48.png" ), 48, wxT( "dark" ) );
@@ -4012,6 +4020,7 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
     aBitmapInfoCache[BITMAPS::reload].emplace_back( BITMAPS::reload, wxT( "reload_64.png" ), 64, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::render_mode].emplace_back( BITMAPS::render_mode, wxT( "render_mode_64.png" ), 64, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::rescue].emplace_back( BITMAPS::rescue, wxT( "rescue_64.png" ), 64, wxT( "light" ) );
+    aBitmapInfoCache[BITMAPS::restore_from_file].emplace_back( BITMAPS::restore_from_file, wxT( "restore_from_file_64.png" ), 64, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::right].emplace_back( BITMAPS::right, wxT( "right_64.png" ), 64, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner].emplace_back( BITMAPS::router_len_tuner, wxT( "router_len_tuner_64.png" ), 64, wxT( "light" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner_setup].emplace_back( BITMAPS::router_len_tuner_setup, wxT( "router_len_tuner_setup_64.png" ), 64, wxT( "light" ) );
@@ -4430,6 +4439,7 @@ void BuildBitmapInfo( std::unordered_map<BITMAPS, std::vector<BITMAP_INFO>>& aBi
     aBitmapInfoCache[BITMAPS::reload].emplace_back( BITMAPS::reload, wxT( "reload_dark_64.png" ), 64, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::render_mode].emplace_back( BITMAPS::render_mode, wxT( "render_mode_dark_64.png" ), 64, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::rescue].emplace_back( BITMAPS::rescue, wxT( "rescue_dark_64.png" ), 64, wxT( "dark" ) );
+    aBitmapInfoCache[BITMAPS::restore_from_file].emplace_back( BITMAPS::restore_from_file, wxT( "restore_from_file_dark_64.png" ), 64, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::right].emplace_back( BITMAPS::right, wxT( "right_dark_64.png" ), 64, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner].emplace_back( BITMAPS::router_len_tuner, wxT( "router_len_tuner_dark_64.png" ), 64, wxT( "dark" ) );
     aBitmapInfoCache[BITMAPS::router_len_tuner_setup].emplace_back( BITMAPS::router_len_tuner_setup, wxT( "router_len_tuner_setup_dark_64.png" ), 64, wxT( "dark" ) );
diff --git a/common/tool/actions.cpp b/common/tool/actions.cpp
index 754bea5083..0abef1cdcb 100644
--- a/common/tool/actions.cpp
+++ b/common/tool/actions.cpp
@@ -119,7 +119,9 @@ TOOL_ACTION ACTIONS::revert( TOOL_ACTION_ARGS()
         .Name( "common.Control.revert" )
         .Scope( AS_GLOBAL )
         .FriendlyName( _( "Revert" ) )
-        .Tooltip( _( "Throw away changes" ) ) );
+        .Tooltip( _( "Throw away changes" ) )
+        .Icon( BITMAPS::restore_from_file )
+        );
 
 TOOL_ACTION ACTIONS::pageSettings( TOOL_ACTION_ARGS()
         .Name( "common.Control.pageSettings" )
diff --git a/eeschema/tools/ee_actions.cpp b/eeschema/tools/ee_actions.cpp
index db55dbb712..aac25af6cc 100644
--- a/eeschema/tools/ee_actions.cpp
+++ b/eeschema/tools/ee_actions.cpp
@@ -1137,6 +1137,7 @@ TOOL_ACTION EE_ACTIONS::generateBOMLegacy( TOOL_ACTION_ARGS()
         .Scope( AS_GLOBAL )
         .FriendlyName( _( "Generate Legacy Bill of Materials..." ) )
         .Tooltip( _( "Generate a bill of materials for the current schematic (Legacy Generator)" ) )
+        .Icon( BITMAPS::file_bom )
         );
 
 TOOL_ACTION EE_ACTIONS::generateBOMExternal( TOOL_ACTION_ARGS()
diff --git a/include/bitmaps/bitmaps_list.h b/include/bitmaps/bitmaps_list.h
index b905b54875..69bbf61e39 100644
--- a/include/bitmaps/bitmaps_list.h
+++ b/include/bitmaps/bitmaps_list.h
@@ -503,6 +503,7 @@ enum class BITMAPS : unsigned int
     repaint,
     rescue,
     resize_sheet,
+    restore_from_file,
     right,
     rotate_ccw,
     rotate_ccw_x,
diff --git a/resources/bitmaps_png/CMakeLists.txt b/resources/bitmaps_png/CMakeLists.txt
index 06326d088d..af9c28f178 100644
--- a/resources/bitmaps_png/CMakeLists.txt
+++ b/resources/bitmaps_png/CMakeLists.txt
@@ -468,6 +468,7 @@ set( BMAPS_MID
     reload
     render_mode
     rescue
+    restore_from_file
     right
     router_len_tuner
     router_len_tuner_setup
diff --git a/resources/bitmaps_png/png/restore_from_file_16.png b/resources/bitmaps_png/png/restore_from_file_16.png
new file mode 100644
index 0000000000000000000000000000000000000000..47cc33b572057cbf21834e6ca73b2c15645f0c14
GIT binary patch
literal 489
zcmV<F0T%v=P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00057Nkl<ZI8U9^
z$x8xJ90zcr&ixryR<s>DW}{6}q|=NNB`pLk9*a)>2YTu*9W**b%c0dmXDXsSlD0#K
zKqSldnj*#W+sq?}LdTZF7as5Z-iP0h$J5wswj7JaV*PD6j$^D=YZd^F9L?tek`V+U
zZCox_vL+@0-XxL&h@z;(>2#7kzu!-gFLhBVOM1ON`@aCBQDnrH5pXyhWRK_h6hIEk
zvK<+LKp;Ra2ZO=1fYe2M3XnFO1-<nQ`fAPSG_ijJ251we3yoN-U?6C#NJh$NbV!i&
z60P3=xy`R5gl2tM))^6UParP7K**&OWTwC%cV$-vp6>6lUfG1(l}#X#z}?0k&W47u
zMYk%*cyYB)6^QHvNKrH#K_VW<<Ngs|&oA*FjVXvPk9t%ELJI;ZS}m=|!`>mHksAp4
z28hR}(nyo!jMq|cs=)QZiPGw7NgWP)2gy1z$K%SoLe^d#6;cJ{Y_mNIlFZ%OF2ZB8
zWbH1i@nn3)u7*a;>kQujxsx5H8=i6+%?#J9`RP0N(~Nzp$hhp!qn>$f)%#*Tb>S(m
f8ErGOE%MzDX*pWSBHawu00000NkvXXu0mjfUMtxR

literal 0
HcmV?d00001

diff --git a/resources/bitmaps_png/png/restore_from_file_24.png b/resources/bitmaps_png/png/restore_from_file_24.png
new file mode 100644
index 0000000000000000000000000000000000000000..82a3c39c36be9f3beb461b00ae90ec408122292b
GIT binary patch
literal 639
zcmV-_0)YLAP)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv0006;Nkl<ZNXKLN
z|NlP&CD_;3mn$kNN)Uvx$%BcIkdPNZ{GS{g8XEcwNPiCw4*mh84<sZcaA30lL*wVq
zpNYa~`o074QJ|%qWLW^z2$%o#=@T{!Ff5^k1z<~nYL755Ffh`}0ucTc9UaX_k_Fi0
z@mT<L5D!f)h>eZqrgkbqNxq;wg3|&@F+~<c1qT0bwe$YJ%)s^kHZ5l`US{a_zsbSp
ze+*C#s_r)^sgi6#vAaLm!2Rk@|4(@*{y(4zWUD#C@eWO=|7C7||A9ICHz-$QwE$Om
zKi<9{XrK$&@Tbc*{Re?N9n(=P0O5V=j{hs%{Qi1+da@I3!TYDr{~tE>LoxjC_aFby
zhG%0~0Kz+gKG|&SB1g0Zw<gR5YkYtF9N6&x|Ni~|{rT(vFSqXhf4%$g|Eu|p7?$i&
zckCqEf>VKMU`@Z?fBcUNJXyK{HK^1auM=&-AtP_FrV}pF|Gz(d2{!Qa)m#71hGqS~
zS=aaf&)08YvD1Dj$d>#j-U4GExW;34VgJ89d<r)39yI8lt=t0U-)fqO?1R5VTW}K9
zWnfDl&tLujgli0#f3JTo*n$UB7bB~?O|%6!x~5}IEin9G+F}$RL47cZXbavwc>MpM
zz9&u#o~_;rw%~e2CnN=FIQ`$FW}`$>POftC1Gx&T1((vR{=YkR_Wv=P5U`p$C!hah
zRr=M=zW;XvU5Cpjz_br^h%ZR(3%CWO;)BX|vint?CIAh*1H}KJhCe!><~Vh~vV#h;
ZS^&W^!n|X^K864Q002ovPDHLkV1h73G++P#

literal 0
HcmV?d00001

diff --git a/resources/bitmaps_png/png/restore_from_file_32.png b/resources/bitmaps_png/png/restore_from_file_32.png
new file mode 100644
index 0000000000000000000000000000000000000000..bb3ce70a387d4e74cd040ff6ace1cf0ad94a368a
GIT binary patch
literal 852
zcmV-a1FQUrP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F80009UNkl<ZSi{Aa
z|4S2b7{~n!qWYnqgV1T;3?f9$*yh)@S<`JouAnGqzmx_d8G%CLHh+i|451(k3coD+
zWm%@)-H-{Iv^7_wFJMV?enT<IrcR$ece+nIy?OKQ$_L(e@Zs}3&+9(-e4fu;900`a
zq?n7rU`W;L_3c80d|x0DNK`bTc`ZhxaaUA;^<cmytJS(~nM@{D3<R-+G{^<P3ot)F
zzirVF9I=*kI-R??xOk5w02D>B=GE2J@d0o`NCsdwn_~e01h9<m@6jvSD++)lN!C1z
z#S#-h#7aEfNdUSq9Xky`i2@)9LKFZJDGI>tcC+@r&1Tyc0IC7vfA@in>WvBDAF4-k
zfOCa9sLVbC^%-htN>#zV^wUtI(7=`a0<KrkEg8TCtqvN}RM4HM1TsOvsb|Nsp-go)
z((jEV0OcwzbRNoFOC(c*`(gz+)AgJX1QNX}1|8$uwIu*uNPNZSC!F9olDn1wJ$=CT
z3TO*XOaqma8Fe-8r{vLn;I$}#nQx=em!kcf{P|jP+7_o~5I|N`09uv|wO16taHSb1
zpRf}+dFa;y_^Rrm|D=9PfbJyaGPz&ATM)pkKLC!yIZUA00XIamU|<qPAGAW>aSbN~
zm7usG2;h6iOB`frb`JRLw|^Y^PZe#3h*yw;0DQHLILL76Em#RI;$(BK5AfC63}bC}
zSe%^3<5Rs(u2q;31mLNtWd#~4D23&@pE%iAyPX+#9L-~ZXj=`ffHSRd6NDgukJWcK
z1!6(0uHqW`e5VnExr}8S{X&8OzBE1IEULF!6H}BUjV*Z0d#xG+c(2!NEW%HM04ClI
zZ@I-H<v}$PHeYz_h9y%p3+@90>Ps;J_^PZJz*BOQ-I`^Jbin{WI*FJ7Mj9SrfI-b=
zJl>j|6%c(G(MK*Hfa`oYgcgF#ZV0#M&V!jyl3!pK4N!zmwTCBic_EksOQyuhud21Q
ze}^PLr$tEUTfozkh<ZB@NLzB&xCuS^`cG{t29QEs2Xgk2@ygp|f_xAqTZl+JiniNh
eGEpw)^7{k$@;UR(NCp!C0000<MNUMnLSTY}oqGiU

literal 0
HcmV?d00001

diff --git a/resources/bitmaps_png/png/restore_from_file_48.png b/resources/bitmaps_png/png/restore_from_file_48.png
new file mode 100644
index 0000000000000000000000000000000000000000..c0b90ee75b798fdcb0321ac460addb12b1806095
GIT binary patch
literal 1167
zcmV;A1aSL_P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm000D5Nkl<ZXx?M^
z|NlS3P{vd<C@n3GH7Y7fkXpE*p@E4c4}^q-Gyw7cL4>ac1qI2I;(`Bz5Z@!@36eeV
z`SWM0Vj}E(7#tj|G?YC6_C$DixH4Tm5D^i9RsZ|<@5%ANe_$*;!sZE@c>rh`R{bA7
zd?3pMxI8hWJOJ}VXlSU)ko5r66L%aO99U@Tfv~VJtolEG{7A6}Ko}Sc(lqq|&;qRb
zKYjW{6%POl38^9N0bm6uIix)RG+%<I9w1i#i1k2ZWTf~|YD!?>z`#JUA?*QR5)vH>
z&1rl|NMzIl<l=b$p#Mz{KL2N!d;DLe@A7}6jx!jq)OY<q$JFD0Gf*zoH;_;s5T?5a
zay|Y3FEV!fzfaxq|9&;Xc&VZ5|57(UTzNo<ZXSpZ4E{gc)SW0tW5Wx8o=ybD8nT(7
zjz3*IkPb`=n{`}J9CSd_`Tx~|rvEqV`u-m_@+Qg?+q9hj=XeFc%?$_$5Fp6|<P?!F
zPha?d*whcz@mj9`U+p~f9|k_0yYhd(x)V{J*rVa}KhHCOJ|1}g`04*+_F;G(4+BTg
zJc$o)*L3=y;ui?Y1N=1g!1>e)49CCTbr{3(pRU{_ItE~PnW5YNG+KJ#$*x00IsWVY
z$N!Jngpif7x2Zd2(#!*=L$eT$*LM5=`RXkU$N&5N=l}PoFaLkOcKiS9JxBgOn7-uy
zg}5Sc1}DY?`_!Fo0-euDbq~D0bPdI#H~WtLCk6a`_2&Pr#)(8FtG((@PE_~6?a2#J
zEcx;5<$rR(+ry{+AJX?A;0dQ5s(avkN;!%p52h{tPcC?}bOWJSI74+09CwMvu;?K$
zeWQcF-+%nSR?_<aOmN2kYsIbqpRU;a|M$mFXc^_-|1*JUI6ZJc&G9YOJ#g4O0IOwp
z+NWW7;?K7q|IbI~!_^$I2*k+nkLIny8w=F;fSEr|%dmOk=j(UCk_XY$xSUaqBLC&)
zUHW?9gl7U?3o$$aOeTkoec<vSHhNOquYt2f`ayLMoQp3aSp3~?nf(9XpFfa{x_CW?
z{O?a+P&{$i#21%Y7pU%mo4vD$s)#@}@Cnygta6}ag$#~b1>q`2=TqGSFHT(`yWJ1N
zpv;X7aMcIEj*&n0n-aj0w`0!HWIO(lffq(eg{ufXCS%D-leW-<Ra?mRz)6pI6c2oV
z@*Gz)qK0OTxlh0f>7;KmSsu8MSc2k#cSp})sM)0L{C~Hx3qMV}l%P?CotjQ0djOPS
z|9t%h_rR^@N$BbRe*v&p#sF-I(!5Vx<l#^B2m~@d?U(ZZ(cG2)uUB@Wv`Y5@af71|
z*lfB@beFmM{okeGL~+Tq7l<37j>qMJa+-}y_yqpnpzA`m<F^1uBnmtOkj?C%`eF}4
zc$Ic28?fTZ0Xpaf36B2&OhPUDwH<h9zFLJ?3@W>U`N9wAnb|-G-T~t8XpVjalv}=E
h%^`lXlrI+{^8o)8LJbGKtq%YI002ovPDHLkV1g#wN!I`X

literal 0
HcmV?d00001

diff --git a/resources/bitmaps_png/png/restore_from_file_64.png b/resources/bitmaps_png/png/restore_from_file_64.png
new file mode 100644
index 0000000000000000000000000000000000000000..ed8f1ebd48ae4c926b315885741ccf1f86deb6e6
GIT binary patch
literal 1497
zcmV;~1t$85P)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF000G`Nkl<Zc-rlo
zTTB#J7{__)OOqyj=}Y5FEmBdD)><nO*jZQ#a&<32B}k&hC{}t=Q6pH|CT)NPO%oea
zs#Ftg00S+871#^7Tm%eVE*3#rLEPmI3kwAe<?ETzHp|Y;?#%A&%*uL_e+XfiIsf0D
z^PTTIXU7WwygXT6F92Bll9ZJ6id-&NI4aZ<koF59nM{_7e!lK7fM@2Lkl;C%34z$=
z5P)Z&BCG<Lq*CeoyaCW^wY;dXu#io^X3%ul&I<su+02V@2rT<Hhad!dG5`VslF01<
z6ciNLyk~WFHCF)aLhu9tHX#TCAU{9f<~?g_YPbeKKtQVl=E(qX&09kd1b|Yhw0Y0k
z+FDluAVva8mfrAW0Jx5LI)Iac0?5nDvw2UIO66(*#{~tDo11I%o@%xF1ppTV$na<Y
zs75#@D1e-t9GmylXf&=K0Y^O@fUwJ;Uau!i(rIvTaCHOVu^gt00iSy`0F(-Uwwm_@
zndnoG27so(C(k8-J#kXl8zY6(s5qoukSLX{ZU6@(<3PD%CtP`30yo!(fOZ{5(hXlR
zTzV%Az7CEgz%Yyf>23=kUM7drSQM0R45c(|PdKa$NeswkHlK6YEdiVejfM&bja#dD
zvxFEyG*jSXw*v6tE*YHP7S4%rOR15Rfsv%qfTqA9w*in6D}^#Y38jHLUkUVOp9Nz{
zCEUwYLLE&Uu%`=KKR^MKLjZVE!bNg3+4m<jVTqKTuJ;RvsfIgX*^Jk2I6NAz`b#WV
zjWodl%#4l0?eIPH<{MX<$J_Eh%b<HV#$gCQZVe}<1Bw9$1qYx{%VcH#DS>5ZcrVte
zxR4VRiBEw8f&v&Qu3&E-wb4qo^MTO^gA-vf*@6KujZHvfpn|pe>DCUo<-e1Y)#3Vv
zkUqfx-2bkK()@I*p4R-LaTFe$ErQ<D1<<iK1Db;3ora)!6AR`a!0aq3>f=k@qG1%+
zwkM`p7%sa>0C8-26qoZ3z@XBRI)bn9&b9@^2y`FLW(#4ddTrQiyaKqJr6hI4+|v(S
zwMUoBK>L=MIRqb360ZPSV^c|;Fce=0F5BSwD~tiut-~(y24H4<0?pM>%5-<((Fm=f
zrMY=9-|L5kAtNmPy=WHzo-Eyw9$*>=+Ia&o(Q}`+BlR1@U{cpcYs%Et`Tr8wEJ}o~
zv@96;rG^&B*l%@AN5K?t07hEcZFUBSFrjT`1mQn5ixObIe}Ft{5E!O818)Ef>IS==
zp(=n@WP(*1(*NjFj!<6Pou2Jp0ETrfj5=f!0#z-5qW<IYDbl3_=PtV!fbq^h7)NJ1
z2z1pTRs3LBH<<Zb1tzChWo$SEYh%XJD#~jOS1ZW1L(A_>mcbTY^MKnCDXg+Je2MJ+
z;tUvz(T>n5`W>O6qEZronfAN(>j59^BEOknrjql0KU@zlmXHB-^e`9!;$(hnfm)qQ
z01TH`lK@QC+YP!;bend($}50b(+uTafV0BQS~t8>v{MIE2(ur+aCu^*+3sEvfQJ`~
z?F|2rKtTZDo1qN>GEM>D^@4Tl|Mq)ZJ3@M4_XN=%09WR3ZH}PKnL0i?PI<iwB~GWr
z(MJV882N$2lc2f2zep9NZc7y9wO@&%@NMw~!2#?>$6?ntadQsX7QGMV9}E%ZA5Tm}
z=l+wl=K_kSCqwaWaWsY>i~Y*cVW`$e42=O&B6*_v`%hcKh?8fzI{_fR^nf6g`h~hA
zKd}7d6IOniLO}wMoSghJnj7^(K)}!J&TWt2+&D^g;T!bD3B}6iHQ_Iby5!YaXLTkZ
zBByq}c!Ue{mA>MxFR`d&*3Yms@0Kr5muyhHgtD}KT5qh&0pm-k!mHAFW09-k?QyNQ
z$iL19%R<IfNMkgn2hir`&&YIo{o0^4Y@hKj9cUadG9QUa00000NkvXXu0mjfhVH6q

literal 0
HcmV?d00001

diff --git a/resources/bitmaps_png/png/restore_from_file_dark_16.png b/resources/bitmaps_png/png/restore_from_file_dark_16.png
new file mode 100644
index 0000000000000000000000000000000000000000..8cba7c2a32f8441f2b58eb8cdd142b3c73128f1e
GIT binary patch
literal 487
zcmV<D0T}*?P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00055Nkl<ZILnpO
z+baZ790%|%p8ahe7P;k4Zsih%+HGd7<Uz^9k{6W1gOwx+%O-M-S=*MmSu0*vJ3G5+
znc4Z8In1!_1rOimH0O6d{m%Rv8_TjK0wa|DH6p{6ViiRIY({KkBf!H9<)CtAVQ${6
zc@qM{wuxi`cDvn*ciBtcxtugXth!q+r9XFkK40-Kz}gq!$^`U?w|t6c*y@77`pRbq
zw1dt92oe<Q3j+N;edKUcV^dCmyW#4xfSh4CJnWz2aq9^8M>qci9ybml^-dtsGY+}g
zK@z1rxIbp}eW5l3Fxvci1$Siwq!uUMc2A(arXcHU6N%}dxOdi`7pTx9HV#2y?f^}L
z8sd@i?jboc^^FWq?dApgDr!iP_96jl8Y&+_IvNAs6$^>CQSrP0t+#I!CA!>D*)X)2
z47t?_HT*=b^wou$7w9gpvRX}aj^cHCiL8~g0F=uhSxcSnNWqVIT|ZzUW|Sa@cmKub
zG+eWb1;-fnUqR{~%K(f{lC%de^bEw)P^Im+-}zzF-yR#BJdj(dq&~)Uyn}v@(w?Qr
dX{gFL`vH>E{x4Y;;kN()002ovPDHLkV1gn9-q!#C

literal 0
HcmV?d00001

diff --git a/resources/bitmaps_png/png/restore_from_file_dark_24.png b/resources/bitmaps_png/png/restore_from_file_dark_24.png
new file mode 100644
index 0000000000000000000000000000000000000000..f150b1bac90bda6a0666832b2da899bfd832347e
GIT binary patch
literal 648
zcmV;30(bq1P)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv0006{Nkl<ZNXNC6
zZEMp|6vyW)9})Zj`a=9jEg}k1vnPkX+XOdl)1ed57j>wJf($kt6s58UCUe6&b>P^9
zwd?w#NkiQlGo{$HU6Q6tkN2K#rCAe5yEXKmHuv81|J`%%xoH~!v>im^vUnmDNu8mx
z>c<-&<)mbkhbE;b*LanDYsn}V76jo~9l$Ek<#IXFzBrXk_WQ=-#_^^Ae1xm^yWMUp
z01;<`v;aV~hM9aL-bY#kAR+)gkw~0w2w>H3yZI4bkHuoAS_YsQNUPGx!>%Gz`O-6D
z3pfNd4-i)3@OxweGTx_<y*Y%Uzs0d>5SG^WmZ(HawPC>K<N_MzI($$drnycQa_!!#
z<Qw;4^Fx@9EzwhL39wu5!Al<a$J|A8J-h_;(t;mN02Jv@zn?cqnI3fvxaz(LA~Rqz
z2VIBl2e0Y@G?Sitpt4WSIR=be?#95Kc(P(%CLcuuBfSNspK(xL1nVH#PTxbvfK^W)
z29*m6*j@VPAN!Xo?ijGe+`*vy?En~=EE*aq5w?e3f;u_@Wvz&91^@F}NXaokqU*mK
znD2WG#-B`OlSA{^rY|g4p5IQ_0u0B1sOOd`eF`bgE<&L{fX`ZJ4gtlfaP7E+W5Am$
zJ(kt7r{dHXQ${$64tCfv;2J5@zq|WjCH?CP0@T-`N||>1A$y%Y-_S`;znjBzU<FWy
z$6#ljhkWlN93zg;KvRGE>EJBLU4yon$X$Likx%qpBvk>8O7RSw%`@HrG31EKXx#4o
iB{RNfGQ(b|9s3_EkJK3AyqNI-0000<MNUMnLSTaF9V?vx

literal 0
HcmV?d00001

diff --git a/resources/bitmaps_png/png/restore_from_file_dark_32.png b/resources/bitmaps_png/png/restore_from_file_dark_32.png
new file mode 100644
index 0000000000000000000000000000000000000000..163b96475a3e7a23f3bab83506e73f9e019b97e0
GIT binary patch
literal 840
zcmV-O1GoH%P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F80009INkl<ZSi{BF
z>rc~A6aaAk0;7KLe=&aXkAQ#=M6w|em58WcU}cO%4PXR$xI|D4kGK&T5Jd1Xgn%C=
z8Muu^Qra;V!b4$O%f{HC$KH-z*yz^LR%vp!q}{#em(zRC&9VR>>oi07SaOgTX%}Ud
z6O@y(xLuT$b}oKP6>b;ZNs{E5lmKBeCk0|LV6vPzW~c4R^F;Wti6JBb+1c4A4unXa
zhl(NQJPyw}RRDUOKH+ymeM4yhsSxS`%!87E14NYn{^_0fo>v5@A!-tSH)tBj2oSFX
z<sf@b4S>S!q$f@lfVQV1fPpY5t-!b<K*ha^guUO?&~!ooW&N*x;MhWREPl-h@UMag
zd{G_XwlBbnWgOOCy@!p)Zdh+M!D`P4cqZ*40P3@9fF;{JY&7>mpx6M6mJp3iq6NGk
zzaJS#e^LeD9hnAy*^^kJqG|{}>jbu<UL3+dM^&L6B+xE;EG+;nB&o%w%PW9QtqxBf
znX&`AI3EMdEq%&rY&`Em+i+A7K$DXPE1Jr~<kPX_0wBPq1)x}K?{_Hz4Bsfj$)h&s
zVe;@U?7Xo6`=CB8AW&+E`flpa$^sPR<ie&VR{FgKH>A3_tpMzfP62!Ou{c6Ql*<Ct
zU)A7AI5r4U*Zv<Lun!wV5V~<$0CWCrJV~gTKUE`9oNSNsLbz`XB9k+~`5AmaI`>Pg
z3R|)OBk}it5W!j_aKR8xhLQ`<N^1pBtPK0W-mg1`kOk<^zjJJ&1O&$cQxa=R;oc7z
z7Od+?9=9h8(0;90bWv>^UJ8pcJZL?9MQ!geAY?Qpk6DlfD9^o~c8eX2(2H&i*y-p`
z>WqX@b|088e3TIY^#ojjrmn>28r>z?fZ8jC83EAih+o^)t@!>{Rr9Li!w4O@Qh;FH
zYv6Vx!fuGSXFuPVypyxTiUIC95`I7Jkgi0jL1@|W<jd9{{E0~Qsq*KPKU&S}Exit=
zq$Vl_@l`gic_wCt(KwV71Jnq%M1O%T(pB+^Y<z@pzt<AWjJEnMtJPl?8}}DhVI>aM
SI@GEF0000<MNUMnLSTaLCwtHU

literal 0
HcmV?d00001

diff --git a/resources/bitmaps_png/png/restore_from_file_dark_48.png b/resources/bitmaps_png/png/restore_from_file_dark_48.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c8873551b1a64f0f8ef3042979f2ac8b7dd12e5
GIT binary patch
literal 1133
zcmV-z1d{uSP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm000CuNkl<ZXx{Cb
z`A-v35XaT1iN?hH{=r23OZ)@$7fSI8NQ(%H1|*)?7DPonBHl!ic%adk7!`<`m;wgH
zSgsa|wYxo`5&`M9^rE!m+bZC8x9xV_ZQSTfCTX(SdEd`_GxKJ*I|Be_h}n2^q|s>R
zShd#0d>QgND=7e6hpS9F9R3zVdU{QI(>m4wf0Ov%%#;WsX@In}G+vFxoK~y$%X%>b
zL?Dbh<A#(17`whO-Y=C(xd4!6V}cM20P8j~-k+YH&J}<WLTmsL2&@;|C}sdK>u^l1
zR?ij|KpO)<^5+1g*}DvD1qHyh7~}mCiG&vb+h^MvQ3F`?meryLF!!2Q2@1gW{(lz0
zq%*A)Q!7C;tQ%V)Y5-%0ak&`U>6m6P7?%A9;9SGobl`Z<07Dn<!syXU;5=9vvG2#L
zVCZZOIPSd!YfDF5AN_rOOH&SDfBgYQ%5H)yM+q*uBB6~au0j9vCT3r~_9ZC;Fn`jc
zmA%7CG$Y8#YOu6+Q+)n<@E0Dy*3=H8g=eXvcB{Z!{RDjXUx2&d6e|d4!D+C+X`5b@
zPV=Iq0JxOMBIyor$c|IR<d#CPT@RCE0<*CWDPm74*k8R*4M3Je3YP4nam7y#_klC4
z!-+sUW_{NQxCUP+C_r;&Azge2UHpV)fb|YcC-+qZpb-v0nUTdxd}weO+{NcOB{s^5
zJi!3kvx=uD+fxP;RtM0RJ_Mm*CxmQYA=udmfre)AoUe@}I4g)8r2)yG$vZ$n`Zmf$
z!EOU2Gr~?6`0DCeg_T>b+Qd7+o$a}lNx~ye;4*?eMsVk!OayVBcYv0t<n`A#1J^OG
z{+M6~6dK+EjM+zM6Or*vR~H1|?Wf==uLj?(r!e093Bn$4R6K>jQ+6XB#0c*I1JMW9
z<W4+(MUVHuICv^+rdJf5*wG0ec+(np7kCG7!~lp1LAWWE$9tuYT59_TQwyNqbtvwH
zGzb(XZq(;Y?E?Bu4Yl!j70J&#z=y1&gyqlws1Yq~=x2z$ZKGWedwtYaWB=(GXMv)N
zcYyml@>m^2<Ow`>tcvj(8CDd4qDp2zGG#6A00%R6a_;-508nyM0Aim9TX+YMkfn6j
z5zgY>d&_B+Dpm=F!oqoi^g`#hW^)D@E4fUqLc^oXpgF1%!J0X87kUy@qgdv>c$eDq
z>2Z1|igM!n;fjTVK2nlz6^Q)u<U<IF3;P380RD#!(OoFm8(YasGX;Mpw%50y30295
zQR#IEylw?w?KA2bfPR0iYmE3#*&p2l&(uKVmHlyLB1rM*UDBjq8h}}g9~SJ*gjxfm
z9G|=*F@K;U5;jwxA@txCynpPG&?Kt4gzUsVBxo=R@lHanDF2qPS|Iq>Dy$9FZj=|B
zU2^3uBoIU9qlAiFVIyS9M=qHn)3IAMKasy5sfAw(zfXju00000NkvXXu0mjfX9@@5

literal 0
HcmV?d00001

diff --git a/resources/bitmaps_png/png/restore_from_file_dark_64.png b/resources/bitmaps_png/png/restore_from_file_dark_64.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce30532ee50800230ed8dc66b52916abcd81dabe
GIT binary patch
literal 1492
zcmV;_1uOcAP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF000G>Nkl<Zc-rlo
z+fy5L6vuh;#TjRO@x}4QzrZ*3!Kps`N<x95wFxOu3I)og*vX9mEu|njG8SzW3UV1P
zp|qV^N2X8(v6KSY)Dn{H2FfMnnvf76BsuOb*2e56*-bXPf%G?X9x}=9{=T1_J?H$+
zZ#M}5k`mdHUIXy^U^E)vLUpJpQo|5a3Z^ri7Q#?HDtkU<csF7Iq<91!MG-R`VzXgS
zu@55xK>mw|Tl^~s)7VG60Z=Q{yjaT*&1~jnx9E%?^8z3_IhhwDAh4X96VqYG5*fe&
z1jP7h+yUtMxjW=Jt1GIx0uUBLA^->pK@b4F?L8sSS*5Px8UP8wqBnh($N&i24ul{G
zfWD62kmsyaRmKVc=?QbX+4qG7&>jYWI;H?{L(eBP05f7P7x)(F3v&x-VhRA$naczP
zpzYL#Jf}uk@ftu(0q9Mo0t4s^13(kwAZRKP6hMDhXb-4RRKz+96el_WVbkFGf+A96
zFq2B8M;ic-%VGLDKxZyWbO41%xhKdV4VnuQ8vtTHcPIf^#`IwMV;bg$Ctz;q31Cx(
zqYYqga2%{n-LS4`1bc23Y-K7aX3MLFbxjj2-y9&pFau!9k6QrPlo6IX?!jj9Ra(K}
zY+cz13;hoO)tN$7f_ZTXV6k@)Y=u`M5*}z97r!Pwi1u1K^lV%Kz#h-QYF!H_!u`!I
zQ-byT9;!F!(cHKJU>QSTv$URGM3x$M+U|h+;bYioxdmINRS|($y?h<eNdtEPh@ymx
z;wDR+3TDX#`ibXgVE?HJ{D=GZiHN;nUGeRIS;MS1pAj5Dx=0K&lCq%UJ%5{lGJHO8
z<X?&y!fMS8@^-*mVmX2X7(7|PPW(#%1(&0W3)UN2q7KLw6hK{?l)ZR->_5^)9~iS#
zu&8~Y5)42Z?)nx<IcxDAg9RM9m7HV;TVc(tU;utf&!!h|z=DeRt=nL?e-L(B2f+2!
zO>mT4jT(YOCO^hI01<AKsE?;QFD{Vn@Ht)J9+@P8M3f$7axL!wl&N1(CPL)+Xoq)g
z6I|bQvW4JrWUJoc6+r)qJjz5o^UJ{1*c%+f|5+uAN>P!{D*)tFDb)jp$AQbSclRL+
zFHpAd1|Ur&f=#KMw%jFLIOx5;vkTtmR`9NFfN#&uAUOD7yYd<{56DzJ;SE3zUiJo^
zOm+qA>rKH^;Owgu=q#%TS7ST4N2h`U*&o+4^@0uF02HTWgq{omVcNh5!b@|O)`53v
zh3W)27^XD?ZvYg>Pllfm%>wBEl^{YnX1lJL_P4HUUGW8={P+oGZW#&!-C6*T`aZjZ
z8Vqj_#TS4)aT@dJ91KE`)gWE`V7P8@@CG0i&jL0!g$e;d&#WKd9(qKL88aA@>-@!Q
z9q{Z_8M|tY><HZs+Y#FPb(9LgG|%K3Kk^Ddn{k%&zTW|W5h?(5A$%PmRb=oAfKeuh
zz}%yg)EI!whC9w}%enA2uK>ij(e?tOG(v3PAXbWDjvEl9A8<WAi*o=T%OW)m-X95b
zoct3(01(a4dC8ZY0wC54fn&Gpmrxy{DM5RJwW$)$#1kbiZ6(;yN+0;L)v(-szgX~%
zk=5E}&LDUfUQkw$4t&#;?zc;=cZki=6u|*t6VG6ytez79PE{j#t!oG3x18YmrY+>Y
z0RD`SI4-uvh;1=jQ7t!~fUgN0MOVn;iSGNg$|iE>`QL}6#PPE?_$LAz<qa{Z5B&dm
zY;x9rcUVLLV4b$UiGMjP%rgN7SZQeEUc5{N%gwg}c8AeX;w90TygD1Ly=d&L**c@K
zav^^6+$ChW{a#7nHT=cL=gZR~)f>0~DQ-vv!aaC_a~H4iKR*(0k2__m4;+~aIo`bd
u4Hvf(M6|^&Rd(1j<@v5t7vE!hjeh_a7o-;5ct9!u0000<MNUMnLSTa6zL+`y

literal 0
HcmV?d00001

diff --git a/resources/bitmaps_png/sources/dark/restore_from_file.svg b/resources/bitmaps_png/sources/dark/restore_from_file.svg
new file mode 100644
index 0000000000..3434e74f80
--- /dev/null
+++ b/resources/bitmaps_png/sources/dark/restore_from_file.svg
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   version="1.1"
+   id="Слой_1"
+   inkscape:export-filename="/Users/jeff/kicad_dev/kicad/bitmaps_png/png_26/save.png"
+   inkscape:export-xdpi="96"
+   inkscape:export-ydpi="96"
+   inkscape:version="1.2 (dc2aedaf03, 2022-05-15)"
+   sodipodi:docname="restore_from_file.svg"
+   x="0px"
+   y="0px"
+   viewBox="0 0 24 24"
+   style="enable-background:new 0 0 24 24;"
+   xml:space="preserve"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata
+   id="metadata853"><rdf:RDF><cc:Work
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title>save</dc:title><cc:license
+         rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" /></cc:Work><cc:License
+       rdf:about="http://creativecommons.org/licenses/by-sa/4.0/"><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:requires
+         rdf:resource="http://creativecommons.org/ns#Notice" /><cc:requires
+         rdf:resource="http://creativecommons.org/ns#Attribution" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /><cc:requires
+         rdf:resource="http://creativecommons.org/ns#ShareAlike" /></cc:License></rdf:RDF></metadata><defs
+   id="defs851">
+
+
+
+
+
+</defs>
+<style
+   type="text/css"
+   id="style833">
+	.st0{fill:#727272;stroke:#DED3DD;stroke-linecap:round;stroke-linejoin:bevel;}
+	.st1{fill:#545454;}
+	.st2{fill:#DED3DD;}
+	.st3{fill:none;stroke:#727272;stroke-linejoin:round;}
+</style>
+<sodipodi:namedview
+   bordercolor="#666666"
+   borderopacity="1"
+   gridtolerance="10"
+   guidetolerance="10"
+   id="namedview27"
+   inkscape:current-layer="g2083"
+   inkscape:cx="13.771687"
+   inkscape:cy="14.370456"
+   inkscape:document-rotation="0"
+   inkscape:pageopacity="0"
+   inkscape:pageshadow="2"
+   inkscape:window-height="1009"
+   inkscape:window-maximized="1"
+   inkscape:window-width="1920"
+   inkscape:window-x="-8"
+   inkscape:window-y="-8"
+   inkscape:zoom="34.23691"
+   objecttolerance="10"
+   pagecolor="#ffffff"
+   showgrid="true"
+   inkscape:showpageshadow="2"
+   inkscape:pagecheckerboard="0"
+   inkscape:deskcolor="#d1d1d1">
+	<inkscape:grid
+   color="#a1a1ff"
+   empspacing="2"
+   id="grid836"
+   opacity="0.1254902"
+   spacingx="0.5"
+   spacingy="0.5"
+   type="xygrid">
+		</inkscape:grid>
+</sodipodi:namedview>
+<title
+   id="title6">save</title>
+<path
+   id="polygon10"
+   sodipodi:nodetypes="cccccc"
+   class="st0"
+   d="M 22.554435,5 22.5,22.5 H 1.5 V 1.5 L 19,1.4626365 Z"
+   style="fill:#DED3DD;fill-opacity:1" />
+<rect
+   x="6"
+   y="2"
+   class="st1"
+   width="10"
+   height="7"
+   id="rect839"
+   style="fill:#545454;fill-opacity:1" />
+<path
+   id="line16"
+   sodipodi:nodetypes="cc"
+   class="st3"
+   d="M 12.513322,3 12.5,8"
+   style="stroke:#DED3DD;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+<rect
+   x="5"
+   y="12"
+   class="st1"
+   width="13"
+   height="9"
+   id="rect845"
+   style="fill:#545454;fill-opacity:1;stroke-width:1" />
+<g
+   id="g2083"
+   transform="matrix(1.0000162,0,0,0.99999938,-0.84473006,3.5560085)"><g
+     id="g1597"
+     transform="rotate(180,17.871444,13.500499)"><path
+       class="cls-3"
+       d="M 24.877827,13.494 A 7.0063863,7.0065041 0 1 1 17.87144,6.4939954 7.0030865,7.0032042 0 0 1 24.877827,13.494 Z"
+       id="path116542"
+       style="fill:#f2647e;stroke:none;stroke-width:1.49999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
+       id="polyline116544"
+       style="fill:none;stroke:#ffffff;stroke-width:1.99999px;stroke-linecap:round;stroke-linejoin:round"
+       d="m 21.722378,15.371001 c 0,0 -4.13652,0.640163 -5.590779,-0.814121 -1.322504,-1.322525 -0.579121,-4.7968822 -0.579121,-4.7968822"
+       sodipodi:nodetypes="csc" /><polyline
+       class="cls-4"
+       points="19.473 17.45 21.9 19.877 19.473 22.303"
+       id="polyline116546"
+       transform="matrix(0.99998378,0,0,1.0000006,-0.12826747,-4.5060109)"
+       style="fill:none;stroke:#ffffff;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round" /></g></g></svg>
diff --git a/resources/bitmaps_png/sources/light/restore_from_file.svg b/resources/bitmaps_png/sources/light/restore_from_file.svg
new file mode 100644
index 0000000000..0ceaa23153
--- /dev/null
+++ b/resources/bitmaps_png/sources/light/restore_from_file.svg
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   version="1.1"
+   id="Слой_1"
+   inkscape:export-filename="/Users/jeff/kicad_dev/kicad/bitmaps_png/png_26/save.png"
+   inkscape:export-xdpi="96"
+   inkscape:export-ydpi="96"
+   inkscape:version="1.2 (dc2aedaf03, 2022-05-15)"
+   sodipodi:docname="restore_from_file.svg"
+   x="0px"
+   y="0px"
+   viewBox="0 0 24 24"
+   style="enable-background:new 0 0 24 24;"
+   xml:space="preserve"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata
+   id="metadata853"><rdf:RDF><cc:Work
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title>save</dc:title><cc:license
+         rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" /></cc:Work><cc:License
+       rdf:about="http://creativecommons.org/licenses/by-sa/4.0/"><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:requires
+         rdf:resource="http://creativecommons.org/ns#Notice" /><cc:requires
+         rdf:resource="http://creativecommons.org/ns#Attribution" /><cc:permits
+         rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /><cc:requires
+         rdf:resource="http://creativecommons.org/ns#ShareAlike" /></cc:License></rdf:RDF></metadata><defs
+   id="defs851">
+
+
+
+
+
+</defs>
+<style
+   type="text/css"
+   id="style833">
+	.st0{fill:#727272;stroke:#545454;stroke-linecap:round;stroke-linejoin:bevel;}
+	.st1{fill:#F3F3F3;}
+	.st2{fill:#545454;}
+	.st3{fill:none;stroke:#727272;stroke-linejoin:round;}
+</style>
+<sodipodi:namedview
+   bordercolor="#666666"
+   borderopacity="1"
+   gridtolerance="10"
+   guidetolerance="10"
+   id="namedview27"
+   inkscape:current-layer="g2083"
+   inkscape:cx="13.771687"
+   inkscape:cy="12.033796"
+   inkscape:document-rotation="0"
+   inkscape:pageopacity="0"
+   inkscape:pageshadow="2"
+   inkscape:window-height="1009"
+   inkscape:window-maximized="1"
+   inkscape:window-width="1920"
+   inkscape:window-x="-8"
+   inkscape:window-y="-8"
+   inkscape:zoom="34.23691"
+   objecttolerance="10"
+   pagecolor="#ffffff"
+   showgrid="true"
+   inkscape:showpageshadow="2"
+   inkscape:pagecheckerboard="0"
+   inkscape:deskcolor="#d1d1d1">
+	<inkscape:grid
+   color="#a1a1ff"
+   empspacing="2"
+   id="grid836"
+   opacity="0.1254902"
+   spacingx="0.5"
+   spacingy="0.5"
+   type="xygrid">
+		</inkscape:grid>
+</sodipodi:namedview>
+<title
+   id="title6">save</title>
+<path
+   id="polygon10"
+   sodipodi:nodetypes="cccccc"
+   class="st0"
+   d="M 22.554435,5 22.5,22.5 H 1.5 V 1.5 L 19,1.4626365 Z"
+   style="fill:#545454;fill-opacity:1" />
+<rect
+   x="6"
+   y="2"
+   class="st1"
+   width="10"
+   height="7"
+   id="rect839"
+   style="fill:#f3f3f3;fill-opacity:1" />
+<path
+   id="line16"
+   sodipodi:nodetypes="cc"
+   class="st3"
+   d="M 12.513322,3 12.5,8"
+   style="stroke:#545454;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+<rect
+   x="5"
+   y="12"
+   class="st1"
+   width="13"
+   height="9"
+   id="rect845"
+   style="fill:#f3f3f3;fill-opacity:1;stroke-width:1" />
+<g
+   id="g2083"
+   transform="matrix(1.0000162,0,0,0.99999938,-0.84473006,3.5560085)"><g
+     id="g861"
+     transform="rotate(180,17.871444,13.500499)"><path
+       class="cls-3"
+       d="M 24.877827,13.494 A 7.0063863,7.0065041 0 1 1 17.87144,6.4939954 7.0030865,7.0032042 0 0 1 24.877827,13.494 Z"
+       id="path116542"
+       style="fill:#bf2641;stroke:none;stroke-width:1.49999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><g
+       id="g855"><path
+         id="polyline116544"
+         style="fill:none;stroke:#ffffff;stroke-width:1.99999px;stroke-linecap:round;stroke-linejoin:round"
+         d="m 21.722378,15.371001 c 0,0 -4.13652,0.640163 -5.590779,-0.814121 -1.322504,-1.322525 -0.579121,-4.7968822 -0.579121,-4.7968822"
+         sodipodi:nodetypes="csc" /><polyline
+         class="cls-4"
+         points="19.473 17.45 21.9 19.877 19.473 22.303"
+         id="polyline116546"
+         transform="matrix(0.99998378,0,0,1.0000006,-0.12826747,-4.5060109)"
+         style="fill:none;stroke:#ffffff;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round" /></g></g></g></svg>