Mercurial > cpython-lru_cache-weakref
annotate Mac/scripts/MkDistr_ui.py @ 4566:6403c94de50d legacy-trunk
Added safeguard against failure in __del__.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Wed, 27 Nov 1996 19:39:58 +0000 |
| parents | 74b8aa7f1114 |
| children | e1413fa64b83 |
| rev | line source |
|---|---|
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
1 # |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
2 # MkDistr - User Interface. |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
3 # |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
4 # Jack Jansen, CWI, August 1995 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
5 # |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
6 # XXXX To be done (requires mods of FrameWork and toolbox interfaces too): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
7 # - Give dialogs titles (need dlg->win conversion) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
8 # - Place dialogs better (???) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
9 # - <return> as <ok> |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
10 # - big box around ok button |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
11 # - window-close crashes on reopen (why?) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
12 # - Box around lists (???) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
13 # - Change cursor while busy (need cursor support in Qd) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
14 # |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
15 import Res |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
16 import Dlg |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
17 import Ctl |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
18 import List |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
19 import Win |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
20 import Qd |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
21 from FrameWork import * |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
22 import EasyDialogs |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
23 import macfs |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
24 import os |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
25 import sys |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
26 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
27 # Resource IDs |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
28 ID_MAIN = 514 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
29 MAIN_LIST=1 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
30 MAIN_MKDISTR=2 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
31 MAIN_CHECK=3 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
32 MAIN_INCLUDE=4 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
33 MAIN_EXCLUDE=5 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
34 |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
35 ID_INCWINDOW=515 |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
36 ID_EXCWINDOW=517 |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
37 INCEXC_DELETE=2 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
38 INCEXC_CHANGE=3 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
39 INCEXC_ADD=4 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
40 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
41 ID_INCLUDE=512 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
42 ID_EXCLUDE=513 |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
43 DLG_OK=1 # Include for include, exclude for exclude |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
44 DLG_CANCEL=2 |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
45 DLG_SRCPATH=3 |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
46 DLG_DSTPATH=4 # include dialog only |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
47 DLG_EXCLUDE=5 # Exclude, include dialog only |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
48 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
49 ID_DTYPE=516 |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
50 DTYPE_EXIST=1 |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
51 DTYPE_NEW=2 |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
52 DTYPE_CANCEL=3 |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
53 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
54 class EditDialogWindow(DialogWindow): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
55 """Include/exclude editor (modeless dialog window)""" |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
56 |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
57 def open(self, id, (src, dst), callback, cancelrv): |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
58 self.id = id |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
59 self.callback = callback |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
60 self.cancelrv = cancelrv |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
61 DialogWindow.open(self, id) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
62 tp, h, rect = self.wid.GetDialogItem(DLG_SRCPATH) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
63 Dlg.SetDialogItemText(h, src) |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
64 self.wid.SetDialogDefaultItem(DLG_OK) |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
65 self.wid.SetDialogCancelItem(DLG_CANCEL) |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
66 if id == ID_INCLUDE: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
67 tp, h, rect = self.wid.GetDialogItem(DLG_DSTPATH) |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
68 if dst == None: |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
69 dst = '' |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
70 Dlg.SetDialogItemText(h, dst) |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
71 self.wid.DrawDialog() |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
72 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
73 def do_itemhit(self, item, event): |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
74 if item in (DLG_OK, DLG_CANCEL, DLG_EXCLUDE): |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
75 self.done(item) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
76 # else it is not interesting |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
77 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
78 def done(self, item): |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
79 tp, h, rect = self.wid.GetDialogItem(DLG_SRCPATH) |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
80 src = Dlg.GetDialogItemText(h) |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
81 if item == DLG_OK: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
82 if self.id == ID_INCLUDE: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
83 tp, h, rect = self.wid.GetDialogItem(DLG_DSTPATH) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
84 dst = Dlg.GetDialogItemText(h) |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
85 rv = (src, dst) |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
86 else: |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
87 rv = (src, None) |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
88 elif item == DLG_EXCLUDE: |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
89 rv = (src, None) |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
90 else: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
91 rv = self.cancelrv |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
92 self.close() |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
93 self.callback((item in (DLG_OK, DLG_EXCLUDE)), rv) |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
94 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
95 class ListWindow(DialogWindow): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
96 """A dialog window containing a list as its main item""" |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
97 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
98 def open(self, id, contents): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
99 self.id = id |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
100 DialogWindow.open(self, id) |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
101 Qd.SetPort(self.wid) |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
102 tp, h, rect = self.wid.GetDialogItem(MAIN_LIST) |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
103 self.listrect = rect |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
104 rect2 = rect[0]+1, rect[1]+1, rect[2]-16, rect[3]-16 # Scroll bar space |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
105 self.list = List.LNew(rect2, (0, 0, 1, len(contents)), (0,0), 0, self.wid, |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
106 0, 1, 1, 1) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
107 self.setlist(contents) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
108 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
109 def setlist(self, contents): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
110 self.list.LDelRow(0, 0) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
111 self.list.LSetDrawingMode(0) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
112 if contents: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
113 self.list.LAddRow(len(contents), 0) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
114 for i in range(len(contents)): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
115 self.list.LSetCell(contents[i], (0, i)) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
116 self.list.LSetDrawingMode(1) |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
117 ##self.list.LUpdate(self.wid.GetWindowPort().visRgn) |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
118 Win.InvalRect(self.listrect) |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
119 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
120 def additem(self, item): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
121 where = self.list.LAddRow(1, 0) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
122 self.list.LSetCell(item, (0, where)) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
123 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
124 def delgetitem(self, item): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
125 data = self.list.LGetCell(1000, (0, item)) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
126 self.list.LDelRow(1, item) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
127 return data |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
128 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
129 def do_listhit(self, event): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
130 (what, message, when, where, modifiers) = event |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
131 Qd.SetPort(self.wid) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
132 where = Qd.GlobalToLocal(where) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
133 if self.list.LClick(where, modifiers): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
134 self.do_dclick(self.delgetselection()) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
135 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
136 def delgetselection(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
137 items = [] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
138 point = (0,0) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
139 while 1: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
140 ok, point = self.list.LGetSelect(1, point) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
141 if not ok: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
142 break |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
143 items.append(point[1]) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
144 point = point[0], point[1]+1 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
145 values = [] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
146 items.reverse() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
147 for i in items: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
148 values.append(self.delgetitem(i)) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
149 return values |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
150 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
151 def do_rawupdate(self, window, event): |
|
3519
05e85055582c
Added missing setport call to mkdistr_ui, and added scrap to
Jack Jansen <jack.jansen@cwi.nl>
parents:
3504
diff
changeset
|
152 Qd.SetPort(window) |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
153 Qd.FrameRect(self.listrect) |
|
3504
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3046
diff
changeset
|
154 self.list.LUpdate(self.wid.GetWindowPort().visRgn) |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
155 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
156 def do_close(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
157 self.close() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
158 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
159 def close(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
160 del self.list |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
161 DialogWindow.close(self) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
162 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
163 def mycb_add(self, ok, item): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
164 if item: |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
165 self.additem(item[0]) |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
166 self.cb_add(item) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
167 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
168 class MainListWindow(ListWindow): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
169 """The main window""" |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
170 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
171 def open(self, id, cb_check, cb_run, cb_add): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
172 ListWindow.open(self, id, []) |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
173 self.wid.SetDialogDefaultItem(ID_INCLUDE) |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
174 self.cb_run = cb_run |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
175 self.cb_check = cb_check |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
176 self.cb_add = cb_add |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
177 setwatchcursor() |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
178 list = self.cb_check() |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
179 self.setlist(list) |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
180 setarrowcursor() |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
181 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
182 def do_itemhit(self, item, event): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
183 if item == MAIN_LIST: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
184 self.do_listhit(event) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
185 if item == MAIN_MKDISTR: |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
186 ## XXXX This somehow stopped working... |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
187 ## fss, ok = macfs.StandardPutFile('Destination folder:') |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
188 ## if not ok: |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
189 ## return |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
190 ## dest = fss.as_pathname() |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
191 dest = os.path.join(os.getcwd(), 'Distribution') |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
192 setwatchcursor() |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
193 self.cb_run(dest) |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
194 setarrowcursor() |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
195 if item == MAIN_CHECK: |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
196 setwatchcursor() |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
197 list = self.cb_check() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
198 self.setlist(list) |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
199 setarrowcursor() |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
200 if item == MAIN_INCLUDE: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
201 self.do_dclick(self.delgetselection()) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
202 if item == MAIN_EXCLUDE: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
203 for i in self.delgetselection(): |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
204 self.cb_add((i, None)) |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
205 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
206 def do_dclick(self, list): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
207 if not list: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
208 list = [''] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
209 for l in list: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
210 w = EditDialogWindow(self.parent) |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
211 w.open(ID_INCLUDE, (l, None), self.mycb_add, None) |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
212 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
213 def mycb_add(self, ok, item): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
214 if item: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
215 self.cb_add(item) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
216 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
217 class IncListWindow(ListWindow): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
218 """An include/exclude window""" |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
219 def open(self, id, editid, contents, cb_add, cb_del, cb_get): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
220 ListWindow.open(self, id, contents) |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
221 self.wid.SetDialogDefaultItem(INCEXC_CHANGE) |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
222 self.editid = editid |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
223 self.cb_add = cb_add |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
224 self.cb_del = cb_del |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
225 self.cb_get = cb_get |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
226 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
227 def do_itemhit(self, item, event): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
228 if item == MAIN_LIST: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
229 self.do_listhit(event) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
230 if item == INCEXC_DELETE: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
231 old = self.delgetselection() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
232 for i in old: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
233 self.cb_del(i) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
234 if item == INCEXC_CHANGE: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
235 self.do_dclick(self.delgetselection()) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
236 if item == INCEXC_ADD: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
237 w = EditDialogWindow(self.parent) |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
238 w.open(self.editid, ('', None), self.mycb_add, None) |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
239 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
240 def do_dclick(self, list): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
241 if not list: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
242 list = [''] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
243 for l in list: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
244 old = self.cb_get(l) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
245 self.cb_del(l) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
246 w = EditDialogWindow(self.parent) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
247 w.open(self.editid, old, self.mycb_add, old) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
248 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
249 class MkDistrUI(Application): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
250 def __init__(self, main): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
251 self.main = main |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
252 Application.__init__(self) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
253 self.mwin = MainListWindow(self) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
254 self.mwin.open(ID_MAIN, self.main.check, self.main.run, self.main.inc.add) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
255 self.iwin = None |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
256 self.ewin = None |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
257 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
258 def makeusermenus(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
259 self.filemenu = m = Menu(self.menubar, "File") |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
260 self.includeitem = MenuItem(m, "Show Include window", "", self.showinc) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
261 self.excludeitem = MenuItem(m, "Show Exclude window", "", self.showexc) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
262 self.saveitem = MenuItem(m, "Save databases", "S", self.save) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
263 self.quititem = MenuItem(m, "Quit", "Q", self.quit) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
264 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
265 def quit(self, *args): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
266 if self.main.is_modified(): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
267 rv = EasyDialogs.AskYesNoCancel('Database modified. Save?', -1) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
268 if rv == -1: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
269 return |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
270 if rv == 1: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
271 self.main.save() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
272 raise self |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
273 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
274 def save(self, *args): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
275 self.main.save() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
276 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
277 def showinc(self, *args): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
278 if self.iwin: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
279 if self._windows.has_key(self.iwin): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
280 self.iwin.close() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
281 del self.iwin |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
282 self.iwin = IncListWindow(self) |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
283 self.iwin.open(ID_INCWINDOW, ID_INCLUDE, self.main.inc.getall(), self.main.inc.add, |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
284 self.main.inc.delete, self.main.inc.get) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
285 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
286 def showexc(self, *args): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
287 if self.ewin: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
288 if self._windows.has_key(self.ewin): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
289 self.ewin.close() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
290 del self.ewin |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
291 self.ewin = IncListWindow(self) |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
292 self.ewin.open(ID_EXCWINDOW, ID_EXCLUDE, self.main.exc.getall(), self.main.exc.add, |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
293 self.main.exc.delete, self.main.exc.get) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
294 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
295 def do_about(self, id, item, window, event): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
296 EasyDialogs.Message("Test the MkDistr user interface.") |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
297 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
298 def GetType(): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
299 """Ask user for distribution type""" |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
300 while 1: |
|
4168
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
301 d = Dlg.GetNewDialog(ID_DTYPE, -1) |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
302 d.SetDialogDefaultItem(DTYPE_EXIST) |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
303 d.SetDialogCancelItem(DTYPE_CANCEL) |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
304 while 1: |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
305 rv = ModalDialog(None) |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
306 if rv in (DTYPE_EXIST, DTYPE_NEW, DTYPE_CANCEL): |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
307 break |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
308 del d |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
309 if rv == DTYPE_CANCEL: |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
310 sys.exit(0) |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
311 if rv == DTYPE_EXIST: |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
312 ## macfs.SetFolder(':(MkDistr)') |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
313 fss, ok = macfs.StandardGetFile('TEXT') |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
314 if not ok: |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
315 sys.exit(0) |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
316 path = fss.as_pathname() |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
317 basename = os.path.split(path)[-1] |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
318 if basename[-8:] <> '.include': |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
319 EasyDialogs.Message('That is not a distribution include file') |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
320 else: |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
321 return basename[:-8] |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
322 else: |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
323 name = EasyDialogs.AskString('Distribution name:') |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
324 if name: |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
325 return name |
|
74b8aa7f1114
Completely revamped: it now uses separate instruction files per
Jack Jansen <jack.jansen@cwi.nl>
parents:
3519
diff
changeset
|
326 sys.exit(0) |
|
3046
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
327 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
328 def InitUI(): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
329 """Initialize stuff needed by UI (a resource file)""" |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
330 Res.OpenResFile('MkDistr.rsrc') |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
331 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
332 class _testerhelp: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
333 def __init__(self, which): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
334 self.which = which |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
335 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
336 def get(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
337 return [self.which+'-one', self.which+'-two'] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
338 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
339 def add(self, value): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
340 if value: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
341 print 'ADD', self.which, value |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
342 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
343 def delete(self, value): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
344 print 'DEL', self.which, value |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
345 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
346 class _test: |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
347 def __init__(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
348 import sys |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
349 Res.OpenResFile('MkDistr.rsrc') |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
350 self.inc = _testerhelp('include') |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
351 self.exc = _testerhelp('exclude') |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
352 self.ui = MkDistrUI(self) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
353 self.ui.mainloop() |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
354 sys.exit(1) |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
355 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
356 def check(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
357 print 'CHECK' |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
358 return ['rv1', 'rv2'] |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
359 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
360 def run(self): |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
361 print 'RUN' |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
362 |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
363 if __name__ == '__main__': |
|
94835b3edf3e
Interactively create a distribution from a sourcetree.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
364 _test() |
