66from savedesktop .gui .flatpak_apps_dialog import FolderSwitchRow , FlatpakAppsDialog
77from savedesktop .core .synchronization_setup import create_savedesktop_json
88from savedesktop .globals import *
9-
9+
1010class itemsDialog (Adw .AlertDialog ):
11- def __init__ (self , parent ):
11+ def __init__ (self , parent , items_list = None ):
1212 super ().__init__ ()
1313 self .parent = parent
14+ self .items_list = items_list if items_list is not None else []
15+ print (self .items_list )
1416
1517 self .set_heading (_ ("Select configuration items" ))
1618 self .set_body (_ ("These settings are used for manual and periodic saves, imports, and synchronization." ))
@@ -34,7 +36,8 @@ def __init__(self, parent):
3436 self .icons_row .set_subtitle_lines (3 )
3537 self .icons_row .add_suffix (self .switch_01 )
3638 self .icons_row .set_activatable_widget (self .switch_01 )
37- self .itemsBox .append (child = self .icons_row )
39+ if self .should_show ("icon-themes.tgz" , "icon-themes-legacy.tgz" ):
40+ self .itemsBox .append (child = self .icons_row )
3841
3942 # Switch and row of option 'Save themes'
4043 self .switch_02 = Gtk .Switch .new ()
@@ -49,7 +52,8 @@ def __init__(self, parent):
4952 self .themes_row .set_subtitle_lines (3 )
5053 self .themes_row .add_suffix (self .switch_02 )
5154 self .themes_row .set_activatable_widget (self .switch_02 )
52- self .itemsBox .append (child = self .themes_row )
55+ if self .should_show (".themes" , "themes" ):
56+ self .itemsBox .append (child = self .themes_row )
5357
5458 # Switch and row of option 'Save fonts'
5559 self .switch_03 = Gtk .Switch .new ()
@@ -64,7 +68,8 @@ def __init__(self, parent):
6468 self .fonts_row .set_subtitle_lines (3 )
6569 self .fonts_row .add_suffix (self .switch_03 )
6670 self .fonts_row .set_activatable_widget (self .switch_03 )
67- self .itemsBox .append (child = self .fonts_row )
71+ if self .should_show ("fonts" , ".fonts" ):
72+ self .itemsBox .append (child = self .fonts_row )
6873
6974 # Switch and row of option 'Save backgrounds'
7075 self .switch_04 = Gtk .Switch .new ()
@@ -79,7 +84,8 @@ def __init__(self, parent):
7984 self .backgrounds_row .set_subtitle_lines (3 )
8085 self .backgrounds_row .add_suffix (self .switch_04 )
8186 self .backgrounds_row .set_activatable_widget (self .switch_04 )
82- self .itemsBox .append (child = self .backgrounds_row )
87+ if self .should_show ("backgrounds" ):
88+ self .itemsBox .append (child = self .backgrounds_row )
8389
8490 # show extension switch and row if user has installed these environments
8591 if environment ["de_name" ] in ["GNOME" , "Cinnamon" , "COSMIC (Old)" , "KDE Plasma" ]:
@@ -100,7 +106,8 @@ def __init__(self, parent):
100106 self .gtk_row .set_subtitle_lines (3 )
101107 self .gtk_row .add_suffix (self .switch_gtk )
102108 self .gtk_row .set_activatable_widget (self .switch_gtk )
103- self .itemsBox .append (child = self .gtk_row )
109+ if self .should_show ("gtk-3.0" ):
110+ self .itemsBox .append (child = self .gtk_row )
104111
105112 # Switch and row of option 'Save Desktop' (~/Desktop)
106113 self .switch_de = Gtk .Switch .new ()
@@ -116,7 +123,8 @@ def __init__(self, parent):
116123 self .desktop_row .set_title_lines (2 )
117124 self .desktop_row .add_suffix (self .switch_de )
118125 self .desktop_row .set_activatable_widget (self .switch_de )
119- self .itemsBox .append (child = self .desktop_row )
126+ if self .should_show ("desktop-folder.tgz" ):
127+ self .itemsBox .append (child = self .desktop_row )
120128
121129 # Custom directories section
122130 self .custom_button = Gtk .Button .new_from_icon_name ("go-next-symbolic" )
@@ -128,9 +136,10 @@ def __init__(self, parent):
128136 self .custom_row .set_title ("Custom folders" )
129137 self .custom_row .add_suffix (self .custom_button )
130138 self .custom_row .set_activatable_widget (self .custom_button )
131- self .itemsBox .append (child = self .custom_row )
139+ if self .should_show ("Custom_Dirs" ):
140+ self .itemsBox .append (child = self .custom_row )
132141
133- if flatpak :
142+ if flatpak and self . should_show ( "installed_flatpaks.sh" ) :
134143 self .flatpak_row = Adw .ExpanderRow .new ()
135144 self .flatpak_row .set_title (title = _ ("Flatpak apps" ))
136145 self .flatpak_row .set_subtitle (f"<a href='https://vikdevelop.github.io/SaveDesktop/wiki/flatpak_apps/{ language } '>{ _ ('Learn more' )} </a>" )
@@ -178,7 +187,6 @@ def __init__(self, parent):
178187 if settings ["save-flatpak-data" ]:
179188 self .switch_06 .set_active (True )
180189 self .data_row .add_suffix (self .appsButton )
181- self .flatpak_data_sw_state = settings ["save-flatpak-data" ]
182190 self .switch_06 .set_valign (align = Gtk .Align .CENTER )
183191
184192 self .switch_07 = Gtk .Switch .new ()
@@ -207,7 +215,18 @@ def __init__(self, parent):
207215 self .add_response ('ok' , _ ("Apply" ))
208216 self .set_response_appearance ('ok' , Adw .ResponseAppearance .SUGGESTED )
209217 self .connect ('response' , self .itemsdialog_closed )
210-
218+
219+ def should_show (self , * search_terms ):
220+ if not self .items_list :
221+ return True
222+
223+ for term in search_terms :
224+ for item in self .items_list :
225+ if term in item :
226+ return True
227+
228+ return False
229+
211230 def _set_sw05_sensitivity (self , GParamBoolean , switch_05 ):
212231 if not self .switch_05 .get_active ():
213232 self .switch_06 .set_sensitive (False )
@@ -219,7 +238,7 @@ def _set_sw05_sensitivity(self, GParamBoolean, switch_05):
219238 self .switch_07 .set_sensitive (True )
220239
221240 def _show_custom_dirs_dialog (self , w ):
222- self .CDDialog = CustomDirsDialog (self .parent )
241+ self .CDDialog = CustomDirsDialog (self .parent , self . items_list )
223242 self .CDDialog .choose (self .parent , None , None , None )
224243 self .CDDialog .present (self .parent )
225244
@@ -244,7 +263,8 @@ def show_extensions_row(self):
244263 self .ext_row .set_subtitle_lines (3 )
245264 self .ext_row .add_suffix (self .switch_ext )
246265 self .ext_row .set_activatable_widget (self .switch_ext )
247- self .itemsBox .append (child = self .ext_row )
266+ if self .should_show ("cinnamon" , "gnome-shell" , "plasma" ):
267+ self .itemsBox .append (child = self .ext_row )
248268
249269 # Action after closing itemsDialog
250270 def itemsdialog_closed (self , w , response ):
@@ -265,8 +285,3 @@ def itemsdialog_closed(self, w, response):
265285 settings ["keep-flatpaks" ] = self .switch_07 .get_active ()
266286 if hasattr (self , "switch_ext" ):
267287 settings ["save-extensions" ] = self .switch_ext .get_active ()
268- self .save_ext_switch_state = False
269- elif response == 'cancel' :
270- if flatpak :
271- switch_status = self .flatpak_data_sw_state
272- settings ["save-flatpak-data" ] = switch_status
0 commit comments