@@ -979,7 +979,13 @@ def load_project(self, directory, readonly=False):
979979 self .set_window_icon ()
980980 self .open_export_button .setEnabled (True )
981981
982- self .tree_browser .init (directory , ['.*' ])
982+ blacklist_setting = self .get_setting ('blacklist' )
983+
984+ output_blacklist = os .path .basename (self .output_dir ())
985+
986+ self .tree_browser .init (directory ,
987+ blacklist = (blacklist_setting .value .split ('\n ' ) +
988+ ['*' + output_blacklist + '*' ]))
983989
984990 self .update_json = True
985991
@@ -1152,6 +1158,7 @@ def create_export_settings(self):
11521158 ex_setting_order = self .settings ['order' ]['export_setting_order' ]
11531159
11541160 vlayout = self .create_layout (ex_setting_order , cols = 1 )
1161+ vlayout .setContentsMargins (0 , 10 , 0 , 0 )
11551162
11561163 output_name_layout = self .create_output_name_pattern_line ()
11571164
@@ -1162,18 +1169,15 @@ def create_export_settings(self):
11621169 hlayout = QtGui .QHBoxLayout ()
11631170
11641171 platform_group = QtGui .QGroupBox ('Platforms' )
1172+ platform_group .setContentsMargins (0 , 10 , 0 , 0 )
11651173 playout = QtGui .QVBoxLayout ()
11661174 playout .addLayout (vlayout )
11671175 platform_group .setLayout (playout )
11681176
11691177 hlayout .addWidget (platform_group )
11701178
1171- tree_layout = self .create_blacklist_layout ()
1172-
1173- tree_group = QtGui .QGroupBox ('Files' )
1174- tree_group .setLayout (tree_layout )
1175-
1176- hlayout .addWidget (tree_group )
1179+ tree_layout = self .create_blacklist_layout (hlayout )
1180+ tree_layout .setContentsMargins (0 , 10 , 0 , 0 )
11771181
11781182 vbox = QtGui .QVBoxLayout ()
11791183 vbox .addLayout (hlayout )
@@ -1184,15 +1188,85 @@ def create_export_settings(self):
11841188 group_box .setLayout (vbox )
11851189 return group_box
11861190
1187- def create_blacklist_layout (self ):
1188- blacklist_layout = QtGui .QVBoxLayout ()
1191+ def create_blacklist_layout (self , blacklist_layout ):
11891192
11901193 self .tree_browser = TreeBrowser ()
1194+ self .tree_browser .setContentsMargins (0 , 0 , 0 , 0 )
1195+
1196+ self .blacklist_text = QtGui .QPlainTextEdit ()
1197+ self .whitelist_text = QtGui .QPlainTextEdit ()
1198+
1199+ hlayout = QtGui .QHBoxLayout ()
1200+
1201+ blacklayout = QtGui .QVBoxLayout ()
1202+ whitelayout = QtGui .QHBoxLayout ()
11911203
1204+ blacklayout .addWidget (self .blacklist_text )
1205+ whitelayout .addWidget (self .whitelist_text )
1206+
1207+ whitelist_setting = self .get_setting ('whitelist' )
1208+ blacklist_setting = self .get_setting ('blacklist' )
1209+
1210+ self .blacklist_text .setStatusTip (blacklist_setting .description )
1211+ self .whitelist_text .setStatusTip (whitelist_setting .description )
1212+
1213+ self .blacklist_text .setObjectName (blacklist_setting .name )
1214+ self .whitelist_text .setObjectName (whitelist_setting .name )
1215+
1216+ blackgroup = QtGui .QGroupBox (blacklist_setting .display_name )
1217+ whitegroup = QtGui .QGroupBox (whitelist_setting .display_name )
1218+
1219+ blackgroup .setLayout (blacklayout )
1220+ whitegroup .setLayout (whitelayout )
1221+
1222+ blacklist_layout .addWidget (blackgroup )
1223+ blacklist_layout .addWidget (whitegroup )
11921224 blacklist_layout .addWidget (self .tree_browser )
11931225
1226+ self .blacklist_text .textChanged .connect (
1227+ self .call_with_object ('setting_changed' ,
1228+ self .blacklist_text ,
1229+ blacklist_setting )
1230+ )
1231+
1232+ self .whitelist_text .textChanged .connect (
1233+ self .call_with_object ('setting_changed' ,
1234+ self .whitelist_text ,
1235+ whitelist_setting )
1236+ )
1237+
1238+ self .blacklist_text .textChanged .connect (
1239+ self .call_with_object ('blacklist_changed' ,
1240+ self .blacklist_text ,
1241+ blacklist_setting )
1242+ )
1243+
1244+ self .whitelist_text .textChanged .connect (
1245+ self .call_with_object ('whitelist_changed' ,
1246+ self .whitelist_text ,
1247+ whitelist_setting )
1248+ )
1249+
11941250 return blacklist_layout
11951251
1252+ def blacklist_changed (self , text , blacklist_setting ):
1253+ new_val = text .toPlainText ()
1254+ output_blacklist = os .path .basename (self .output_dir ())
1255+ self .tree_browser .refresh (blacklist = (new_val .split ('\n ' ) +
1256+ ['*' + output_blacklist + '*' ]))
1257+
1258+ def whitelist_changed (self , text , whitelist_setting ):
1259+ new_val = text .toPlainText ()
1260+ self .tree_browser .refresh (whitelist = new_val .split ('\n ' ))
1261+
1262+ @property
1263+ def used_project_files (self ):
1264+ return self .tree_browser .files
1265+
1266+ @property
1267+ def used_project_dirs (self ):
1268+ return self .tree_browser .dirs
1269+
11961270 def create_output_name_pattern_line (self ):
11971271 output_name_layout = QtGui .QHBoxLayout ()
11981272
@@ -1432,7 +1506,10 @@ def reset_settings(self):
14321506 old_val = setting .default_value
14331507
14341508 setting .value = old_val .replace ('\\ ' , '\\ \\ ' )
1435- widget .setText (old_val )
1509+ if hasattr (widget , 'setText' ):
1510+ widget .setText (old_val )
1511+ elif hasattr (widget , 'setPlainText' ):
1512+ widget .setPlainText (old_val )
14361513 elif setting .type == 'strings' :
14371514 old_val = []
14381515 if setting .default_value is not None :
@@ -1494,7 +1571,11 @@ def setting_changed(self, obj, setting, *args):
14941571 setting .type == 'file' or
14951572 setting .type == 'folder' or
14961573 setting .type == 'int' ):
1497- setting .value = args [0 ]
1574+ if args :
1575+ setting .value = args [0 ]
1576+ else :
1577+ setting .value = obj .toPlainText ()
1578+
14981579 if not setting .value :
14991580 setting .value = setting .default_value
15001581 elif setting .type == 'strings' :
@@ -1646,7 +1727,10 @@ def load_package_json(self, json_path=None):
16461727 setting .type == 'folder' or
16471728 setting .type == 'int' ):
16481729 val_str = self .convert_val_to_str (setting .value )
1649- setting_field .setText (setting .filter_name (val_str ))
1730+ if hasattr (setting_field , 'setText' ):
1731+ setting_field .setText (setting .filter_name (val_str ))
1732+ elif hasattr (setting_field , 'setPlainText' ):
1733+ setting_field .setPlainText (setting .filter_name (val_str ))
16501734 if setting .type == 'strings' :
16511735 vals = [self .convert_val_to_str (v ) for v in setting .value ]
16521736 setting_field .setText (',' .join (vals ))
0 commit comments