annotate Mac/scripts/MkDistr_ui.py @ 5817:48b94de85bf3 legacy-trunk

Extensive changes by AMK.
author Guido van Rossum <guido@python.org>
date Thu, 17 Jul 1997 16:29:42 +0000
parents e1413fa64b83
children 9815b18b23e3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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:
5621
e1413fa64b83 Nothing important
Jack Jansen <jack.jansen@cwi.nl>
parents: 4168
diff changeset
186 ## XXXX Why doesn't this work??!?!?
e1413fa64b83 Nothing important
Jack Jansen <jack.jansen@cwi.nl>
parents: 4168
diff changeset
187 ## fss, ok = macfs.StandardPutFile('Destination folder?')
4168
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()