@@ -5,37 +5,39 @@ def __init__(self, settings):
55 self .settings = settings
66
77 def do_setbrowser (self , url , browser ):
8- mappingsArr = self .do_loadUrlMappings ()
9- mappingsArr .append (url + " " + browser )
8+ mappingsDict = self .do_loadUrlMappings ()
9+ mappingsDict [url ] = browser
10+
11+ mappingsArr = []
12+ for url , browser in mappingsDict .items ():
13+ mappingsArr .append (url + " " + browser )
1014
1115 tmpVariant = GLib .Variant ('aas' , mappingsArr )
1216 self .settings .set_value ("url-mapping" , tmpVariant )
1317
1418 def do_clearbrowsermappings (self ):
15- mappingsArr = []
16- tmpVariant = GLib .Variant ('aas' , mappingsArr )
17- self .settings .set_value ("url-mapping" , tmpVariant )
18-
19+ emptyVariant = GLib .Variant ('aas' , [])
20+ self .settings .set_value ("url-mapping" , emptyVariant )
21+
1922 def do_loadUrlMappings (self ):
2023 urlMappings = self .settings .get_value ("url-mapping" )
21- mappingsArr = []
24+ mappingsDict = {}
25+
2226 for mapping in urlMappings :
23- pathToMatch = "" .join (mapping )
24- mappingsArr . append ( pathToMatch )
27+ pathToMatch = "" .join (mapping ). split ( " " )
28+ mappingsDict [ pathToMatch [ 0 ]] = pathToMatch [ 1 ]
2529
26- return mappingsArr
30+ return mappingsDict
2731
2832 def do_determinebrowser (self , app , url , browsers ):
29- mappingsArr = self .do_loadUrlMappings ()
30-
31- for mapping in mappingsArr :
32- matcher = mapping .split (" " )
33+ mappingsDict = self .do_loadUrlMappings ()
3334
34- if (not url .startswith (matcher [0 ])):
35+ for urlPattern , browserID in mappingsDict .items ():
36+ if (not url .startswith (urlPattern )):
3537 continue
3638
37- for browser in browsers :
38- if (browser .get_id () != matcher [ 1 ] ):
39+ for b in browsers :
40+ if (b .get_id () != browserID ):
3941 continue
40- return browser
42+ return b
4143
0 commit comments