Mercurial > cpython-lru_cache-weakref
annotate Mac/scripts/EditPythonPrefs.py @ 3484:ce27e0328462 legacy-trunk
Added support for editing override preferences in applets
| author | Jack Jansen <jack.jansen@cwi.nl> |
|---|---|
| date | Thu, 04 Apr 1996 15:38:44 +0000 |
| parents | 8b3f2a8620f5 |
| children | e8d501c88a3e |
| rev | line source |
|---|---|
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
1 """Edit the Python Preferences file.""" |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
2 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
3 from Dlg import * |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
4 from Events import * |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
5 from Res import * |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
6 import string |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
7 import struct |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
8 import macfs |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
9 import MacOS |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
10 import os |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
11 import sys |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
12 import Res # For Res.Error |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
13 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
14 # resource IDs in our own resources (dialogs, etc) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
15 MESSAGE_ID = 256 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
16 |
|
2979
7eea9b426802
Added prompts to various file-select dialogs
Jack Jansen <jack.jansen@cwi.nl>
parents:
2873
diff
changeset
|
17 DIALOG_ID = 512 |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
18 TEXT_ITEM = 1 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
19 OK_ITEM = 2 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
20 CANCEL_ITEM = 3 |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
21 DIR_ITEM = 4 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
22 TITLE_ITEM = 5 |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
23 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
24 # Resource IDs in the preferences file |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
25 PATH_STRINGS_ID = 128 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
26 DIRECTORY_ID = 128 |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
27 OPTIONS_ID = 128 |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
28 |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
29 # Override IDs (in the applet) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
30 OVERRIDE_PATH_STRINGS_ID = 129 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
31 OVERRIDE_DIRECTORY_ID = 129 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
32 OVERRIDE_OPTIONS_ID = 129 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
33 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
34 READ = 1 |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
35 WRITE = 2 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
36 smAllScripts = -3 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
37 kOnSystemDisk = 0x8000 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
38 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
39 def restolist(data): |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
40 """Convert STR# resource data to a list of strings""" |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
41 if not data: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
42 return [] |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
43 num, = struct.unpack('h', data[:2]) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
44 data = data[2:] |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
45 rv = [] |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
46 for i in range(num): |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
47 strlen = ord(data[0]) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
48 if strlen < 0: strlen = strlen + 256 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
49 str = data[1:strlen+1] |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
50 data = data[strlen+1:] |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
51 rv.append(str) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
52 return rv |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
53 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
54 def listtores(list): |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
55 """Convert a list of strings to STR# resource data""" |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
56 rv = struct.pack('h', len(list)) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
57 for str in list: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
58 rv = rv + chr(len(str)) + str |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
59 return rv |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
60 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
61 def message(str = "Hello, world!", id = MESSAGE_ID): |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
62 """Show a simple alert with a text message""" |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
63 d = GetNewDialog(id, -1) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
64 print 'd=', d |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
65 tp, h, rect = d.GetDialogItem(2) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
66 SetDialogItemText(h, str) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
67 while 1: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
68 n = ModalDialog(None) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
69 if n == 1: break |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
70 |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
71 def interact(list, pythondir, title): |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
72 """Let the user interact with the dialog""" |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
73 opythondir = pythondir |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
74 try: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
75 # Try to go to the "correct" dir for GetDirectory |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
76 os.chdir(pythondir.as_pathname()) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
77 except os.error: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
78 pass |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
79 d = GetNewDialog(DIALOG_ID, -1) |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
80 tp, h, rect = d.GetDialogItem(TITLE_ITEM) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
81 SetDialogItemText(h, title) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
82 tp, h, rect = d.GetDialogItem(TEXT_ITEM) |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
83 SetDialogItemText(h, string.joinfields(list, '\r')) |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
84 ## d.SetDialogDefaultItem(OK_ITEM) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
85 d.SetDialogCancelItem(CANCEL_ITEM) |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
86 while 1: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
87 n = ModalDialog(None) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
88 if n == OK_ITEM: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
89 break |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
90 if n == CANCEL_ITEM: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
91 return None |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
92 ## if n == REVERT_ITEM: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
93 ## return [], pythondir |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
94 if n == DIR_ITEM: |
|
2979
7eea9b426802
Added prompts to various file-select dialogs
Jack Jansen <jack.jansen@cwi.nl>
parents:
2873
diff
changeset
|
95 fss, ok = macfs.GetDirectory('Select python home folder:') |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
96 if ok: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
97 pythondir = fss |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
98 tmp = string.splitfields(GetDialogItemText(h), '\r') |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
99 rv = [] |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
100 for i in tmp: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
101 if i: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
102 rv.append(i) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
103 return rv, pythondir |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
104 |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
105 def getprefpath(id): |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
106 # Load the path and directory resources |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
107 try: |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
108 sr = GetResource('STR#', id) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
109 except (MacOS.Error, Res.Error): |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
110 return None, None |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
111 d = sr.data |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
112 l = restolist(d) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
113 return l, sr |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
114 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
115 def getprefdir(id): |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
116 try: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
117 dr = GetResource('alis', id) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
118 fss, fss_changed = macfs.RawAlias(dr.data).Resolve() |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
119 except (MacOS.Error, Res.Error): |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
120 return None, None, 1 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
121 return fss, dr, fss_changed |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
122 |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
123 def openpreffile(rw): |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
124 # Find the preferences folder and our prefs file, create if needed. |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
125 vrefnum, dirid = macfs.FindFolder(kOnSystemDisk, 'pref', 0) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
126 preff_fss = macfs.FSSpec((vrefnum, dirid, 'Python Preferences')) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
127 try: |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
128 preff_handle = FSpOpenResFile(preff_fss, rw) |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
129 except Res.Error: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
130 # Create it |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
131 message('No preferences file, creating one...') |
|
3410
022474ac2451
Changed MacOS creator code from PYTH to Pyth
Jack Jansen <jack.jansen@cwi.nl>
parents:
2979
diff
changeset
|
132 FSpCreateResFile(preff_fss, 'Pyth', 'pref', smAllScripts) |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
133 preff_handle = FSpOpenResFile(preff_fss, rw) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
134 return preff_handle |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
135 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
136 def openapplet(name): |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
137 fss = macfs.FSSpec(name) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
138 try: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
139 app_handle = FSpOpenResFile(fss, WRITE) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
140 except Res.Error: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
141 message('File does not have a resource fork.') |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
142 sys.exit(0) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
143 return app_handle |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
144 |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
145 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
146 def edit_preferences(): |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
147 preff_handle = openpreffile(WRITE) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
148 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
149 l, sr = getprefpath(PATH_STRINGS_ID) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
150 if l == None: |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
151 message('Cannot find any sys.path resource! (Old python?)') |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
152 sys.exit(0) |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
153 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
154 fss, dr, fss_changed = getprefdir(DIRECTORY_ID) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
155 if fss == None: |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
156 fss = macfs.FSSpec(os.getcwd()) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
157 fss_changed = 1 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
158 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
159 # Let the user play away |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
160 result = interact(l, fss, 'System-wide preferences') |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
161 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
162 # See what we have to update, and how |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
163 if result == None: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
164 sys.exit(0) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
165 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
166 pathlist, nfss = result |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
167 if nfss != fss: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
168 fss_changed = 1 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
169 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
170 if fss_changed or pathlist != l: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
171 if fss_changed: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
172 alias = nfss.NewAlias() |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
173 if dr: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
174 dr.data = alias.data |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
175 dr.ChangedResource() |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
176 else: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
177 dr = Resource(alias.data) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
178 dr.AddResource('alis', DIRECTORY_ID, '') |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
179 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
180 if pathlist != l: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
181 if pathlist == []: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
182 if sr.HomeResFile() == preff_handle: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
183 sr.RemoveResource() |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
184 elif sr.HomeResFile() == preff_handle: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
185 sr.data = listtores(pathlist) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
186 sr.ChangedResource() |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
187 else: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
188 sr = Resource(listtores(pathlist)) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
189 sr.AddResource('STR#', PATH_STRINGS_ID, '') |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
190 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
191 CloseResFile(preff_handle) |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
192 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
193 def edit_applet(name): |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
194 pref_handle = openpreffile(READ) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
195 app_handle = openapplet(name) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
196 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
197 notfound = '' |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
198 l, sr = getprefpath(OVERRIDE_PATH_STRINGS_ID) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
199 if l == None: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
200 notfound = 'path' |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
201 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
202 l, dummy = getprefpath(PATH_STRINGS_ID) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
203 if l == None: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
204 message('Cannot find any sys.path resource! (Old python?)') |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
205 sys.exit(0) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
206 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
207 fss, dr, fss_changed = getprefdir(OVERRIDE_DIRECTORY_ID) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
208 if fss == None: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
209 if notfound: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
210 notfound = notfound + ' and ' + 'directory' |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
211 else: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
212 notfound = 'directory' |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
213 fss, dummy, dummy2 = getprefdir(DIRECTORY_ID) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
214 if fss == None: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
215 fss = macfs.FSSpec(os.getcwd()) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
216 fss_changed = 1 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
217 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
218 dummy = dummy2 = None # Discard them. |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
219 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
220 if notfound: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
221 message('Warning: initial %s taken from system-wide defaults'%notfound) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
222 # Let the user play away |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
223 result = interact(l, fss, name) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
224 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
225 # See what we have to update, and how |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
226 if result == None: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
227 sys.exit(0) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
228 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
229 pathlist, nfss = result |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
230 if nfss != fss: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
231 fss_changed = 1 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
232 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
233 if fss_changed or pathlist != l: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
234 if fss_changed: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
235 alias = nfss.NewAlias() |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
236 if dr: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
237 dr.data = alias.data |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
238 dr.ChangedResource() |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
239 else: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
240 dr = Resource(alias.data) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
241 dr.AddResource('alis', OVERRIDE_DIRECTORY_ID, '') |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
242 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
243 if pathlist != l: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
244 if pathlist == []: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
245 if sr.HomeResFile() == app_handle: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
246 sr.RemoveResource() |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
247 elif sr and sr.HomeResFile() == app_handle: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
248 sr.data = listtores(pathlist) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
249 sr.ChangedResource() |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
250 else: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
251 sr = Resource(listtores(pathlist)) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
252 sr.AddResource('STR#', OVERRIDE_PATH_STRINGS_ID, '') |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
253 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
254 CloseResFile(app_handle) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
255 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
256 def main(): |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
257 try: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
258 h = OpenResFile('EditPythonPrefs.rsrc') |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
259 except Res.Error: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
260 pass # Assume we already have acces to our own resource |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
261 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
262 if len(sys.argv) <= 1: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
263 edit_preferences() |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
264 else: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
265 for appl in sys.argv[1:]: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
266 edit_applet(appl) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
267 |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
268 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
269 if __name__ == '__main__': |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
270 print # Stupid, to init toolboxes... |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
271 main() |
