/[thuban]/branches/greater-ms3/thuban/ChangeLog
ViewVC logotype

Contents of /branches/greater-ms3/thuban/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 87 - (show annotations)
Wed Apr 3 19:02:32 2002 UTC (22 years, 11 months ago) by bh
Original Path: trunk/thuban/ChangeLog
File size: 14316 byte(s)
update ChangeLog

1 2002-04-03 Bernhard Herzog <[email protected]>
2
3 * setup.py: Increment version to 0.1.1
4
5 * Thuban/UI/mainwindow.py (MainWindow.__init__): Move the "Add
6 Layer" and "Remove Layer" commands from the layer menu to the map
7 menu
8
9 2002-02-15 Bernhard Herzog <[email protected]>
10
11 * Thuban/Model/layer.py (Layer.Shape): list append only takes one
12 argument (python <= 1.5.2 erroneously accepted multiuple
13 arguments)
14
15 2002-02-04 Bernhard Herzog <[email protected]>
16
17 * Thuban/UI/identifyview.py (IdentifyGridCtrl): New class to use a
18 RecordGrid in the identifyview.
19 (IdentifyView.__init__): Use IdentifyGridCtrl instead of
20 IdentifyListCtrl. The grid allows editing of the values.
21
22 * Thuban/UI/controls.py (RecordTable, RecordGridCtrl): New classes
23 implementing a grid for a single row of a thuban table.
24
25 * Thuban/UI/view.py (MapCanvas.SelectShapeAt): Search through all
26 layers by default. Easier to use than the previous default of only
27 searching through the select layer which meant that if no layer
28 was selected, you couldn't select a shape.
29
30 * Thuban/UI/tableview.py (TableGrid.__init__): Fix typo
31
32 * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Honour the
33 stroke_width attribute
34
35 * Thuban/Model/save.py (save_session): Write the new stroke_width
36 attribute
37
38 * Thuban/Model/load.py (ProcessSession.startElement): Read the
39 stroke_width attribute
40
41 * Thuban/Model/layer.py (Layer.__init__): New parameter and
42 instance variable stroke_width
43 (Layer.SetStrokeWidth): Set the stroke_width.
44
45 2002-02-01 Bernhard Herzog <[email protected]>
46
47 * extensions/thuban/wxproj.cpp (project_points): Fix two
48 off-by-one errors in the last loop that joins the various parts
49 together.
50
51 2002-01-14 Bernhard Herzog <[email protected]>
52
53 * setup.py (data_dist.make_distribution): Fix some typos
54
55 2001-09-18 Bernhard Herzog <[email protected]>
56
57 * README: Slight tweaking in preparation for the 0.1 release
58
59 * setup.cfg: Add section for sdist to create both tgz and zip
60 archives
61
62 * setup.py: increase version number to 0.1
63 (data_dist): New command class for data distribution
64
65
66 2001-09-14 Bernhard Herzog <[email protected]>
67
68 * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):
69 Handle the case of no layer (i.e. layer is None) properly.
70
71 * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):
72 Set the initial selection of the combo boxes to reflect the
73 projection we're starting with in a way that works on windows,
74 too.
75
76 * Thuban/Lib/connector.py (Connector.print_connections): Print the
77 puiblisher's ids in hex to make it easier to compare them to the
78 standard repr of python methods
79
80 * Thuban/Model/map.py (Map.Destroy): Unsubscribe the label_layer
81 messages
82
83 2001-09-13 Bernhard Herzog <[email protected]>
84
85 * Thuban/UI/tree.py (SessionTreeCtrl.OnSelChanged): Make sure to
86 deselect the layer if no layer is selected
87
88 * Thuban/UI/view.py (MapCanvas.OnPaint): Only delay drawing to
89 idle time when there actually is something to draw. If there's
90 nothing to draw simply clear the window
91 (MapCanvas.do_redraw): Call dc.EndDrawing and add some comments.
92 (MapCanvas.SetMap): force a redraw in all cases because
93 FitMapToWindow doesn't always do it.
94 (MapCanvas.ZoomFactor): Add an optional parameter, center, to
95 specify the point to move into the center of the window
96 (ZoomOutTool.MouseUp, ZoomInTool.MouseUp): If the mouse wasn't
97 dragged, zoon in/out by a factor of 2
98 (MapCanvas.find_shape_at): Iterate backwards (i.e. with decreasing
99 index, i.e. reversed drawing order) so that objects appearing to
100 be in from of others are selected first. This is probably mostly
101 relevant for point shapes where the symbols used may overlap
102
103 * Thuban/Model/session.py (create_empty_session): Unset the
104 modified bit before returning it
105
106 * Thuban/UI/mainwindow.py (MainWindow.NewSession): Use
107 create_empty_session session to create the new, empty session.
108
109 * Thuban/UI/mainwindow.py (MainWindow.__init__): Set the size of
110 the tool bitmaps.
111 (MainWindow.OnClose, MainWindow.save_modified_session): Separate
112 the code that asks whether the session should be saved into the
113 new method save_modified_session.
114 (MainWindow.OpenSession, MainWindow.NewSession): Use the new
115 method to save modified session here too.
116
117 2001-09-11 Bernhard Herzog <[email protected]>
118
119 * setup.py (InnoIconItem): fix typo
120
121 (thuban_bdist_inno.run):
122 (bdist_inno.run): Move the decision not to create symlinks on
123 non-nt platforms to thuban_bdist_inno and do it unconditinally
124 since we never want to create the symlinks here
125
126 2001-09-10 Bernhard Herzog <[email protected]>
127
128 * Thuban/UI/mainwindow.py (MainWindow.IdentifyTool): Popup the
129 identify view immediately
130
131 * Thuban/UI/controls.py: New file with two classes RecordListCtrl
132 and SelectableRecordListCtrl that implement the code shared by the
133 identify view and the label dialog
134
135 * Thuban/UI/identifyview.py (IdentifyListCtrl): Derive from the
136 new class RecordListCtrl
137
138 * Thuban/UI/labeldialog.py (LabelDialog.OnOK): Check whether the
139 return value of GetValue is None instead of using it as a boolean
140 directly so that Zero numbers are handled properly.
141 (LabelListCtrl): Derive from the new class
142 SelectableRecordListCtrl
143
144 * Thuban/UI/proj4dialog.py (Proj4Dialog.__init__):
145 (Proj4Dialog.dialogLayout): Make the window resizable and set the
146 size of the text control explicitly to make the sizers work on
147 both Windows and X.
148
149 2001-09-07 Bernhard Herzog <[email protected]>
150
151 * Thuban/UI/view.py (MapCanvas.find_shape_at):Add a new parameter
152 that can limit the search to the currently selected layer.
153 (MapCanvas.SelectShapeAt): Make sure that the currently selected
154 layer stays selected even when no shape is found
155 (MapCanvas.FitRectToWindow): If the rect has zero with or zero
156 height do nothing (avoids zero division errors)
157
158 2001-09-06 Bernhard Herzog <[email protected]>
159
160 * Thuban/UI/tree.py (SessionTreeCtrl, SessionTreeView.__init__):
161 Correct the spelling of SessionTreeCtrl. dabbrev is too damn
162 convenient :-)
163 (SessionTreeCtrl.__init__, SessionTreeCtrl.update_tree): Introduce
164 a new instvar layer_to_item to map layers to tree items
165 (SessionTreeCtrl.layer_selected): Select the appropriate tree item
166 to match the current selection in the interactor
167
168 * Thuban/UI/interactor.py (Interactor.SelectedLayer):
169 (Interactor.HasSelectedLayer): New methods to query the current
170 selection
171
172 * Thuban/UI/mainwindow.py (MainWindow.current_layer):
173 (MainWindow.has_selected_layer): Simply call the appropriate
174 interactor method
175
176 * Thuban/UI/mainwindow.py (MainWindow.__init__):
177 (MainWindow.LayerShowTable):
178 (MainWindow.identify_view_on_demand): Store the interactor in an
179 instvar and use that reference instead of going through main.app
180
181 * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):
182 * Thuban/UI/application.py (ThubanApplication.OnInit):
183 * Thuban/UI/main.py (main): Create the session tree view in main
184 with the new mainwindow method ShowSessionTree and not directly
185 the application's OnInit method
186
187 * Thuban/UI/tree.py (myTreeCtrlPanel):
188 (SessioinTreeCtrl): Rename to SessioinTreeCtrl and turn it into a
189 TreeCtrl isntead of a panel. This affects most method since we now
190 refer to self instead of self.tree
191 (SessionTreeView): New class implementing a non-modal dialog
192 showing the session tree.
193
194 * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Pass the
195 layer to the tableview dialog.
196
197 * Thuban/UI/tableview.py: Add some doc-strings
198 (TableGrid):
199 (TableGrid.OnRangeSelect):
200 (TableGrid.OnSelectCell):
201 (TableFrame.__init__):
202 (TableFrame.row_selected):
203 Selecting rows in the grid view now updates the selected shapes
204 through the TableFrame. To achieve this we derive TableGrid from
205 Publisher and introduce the message type ROW_SELECTED which the
206 TableFrame subscribes to and which is issued by OnRangeSelect and
207 OnSelectCell
208
209 (DataTable.SelectRow): Removed because it's no longer needed in
210 the row/shape selection scheme
211
212 * Thuban/UI/dialogs.py: New file implementing common classes for
213 dialogs
214
215 * Thuban/UI/tableview.py (TableGrid.__init__): Don't subscribe to
216 the SELECTED_SHAPE message anymore. This is now handled by the
217 parent.
218 (TableGrid.select_shape): Only update the selection if the shape
219 is not None.
220 (TableFrame): Inherit from the new NonModalDialog class.
221 (TableFrame.__init__, TableFrame.select_shape): Handle the
222 SELECT_SHAPE message.
223 (TableFrame.OnClose): Extend the inherited method to unsubscribe
224 SELECT_SHAPE
225
226 * Thuban/UI/mainwindow.py (MainWindow.init_dialogs):
227 (MainWindow.add_dialog):
228 (MainWindow.dialog_open):
229 (MainWindow.remove_dialog):
230 (MainWindow.get_open_dialog): New methods to maintain a dictionary
231 of opened non-modal dialogs.
232
233 (MainWindow.__init__): Initialize the new non-modal dictionary
234 management code
235 (MainWindow.LayerShowTable): maintain separate dialogs for each
236 table using the non-modal dialog management code to only open a
237 view once for each table.
238
239 (MainWindow.IdentifyTool):
240 (MainWindow.__init__):
241 (MainWindow.identify_view_on_demand): Don't open the identify view
242 in IdentifyTool anymore. This will be done automatically by the
243 new method identify_view_on_demand which handles the
244 SELECTED_SHAPE message so that the identify view will be opened on
245 demand
246
247 * Thuban/UI/identifyview.py (IdentifyListCtrl.__init__): Remove
248 the interactor argument. The SELECTED_SHAPE message is now handled
249 by the parent.
250 (IdentifyView.__init__): Add the interactor argument so that we
251 can handle the SELECTED_SHAPE message here
252 (IdentifyView.selected_shape): New method to handle the
253 SELECTED_SHAPE messages
254
255 * Thuban/UI/identifyview.py (IdentifyView): Derive from the new
256 NonModalDialog class
257 (IdentifyView.OnClose): Extend the inherited version to
258 unsubscribe SELECT_SHAPE
259
260 * Thuban/Model/session.py (Session.UnsetModified): Remove debug prints
261
262 2001-09-05 Bernhard Herzog <[email protected]>
263
264 * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.
265
266 * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument
267 interactor to pass through to the MapCanvas
268
269 * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new
270 argument to the MainWindow constructor to get rid of the ugly hack
271 that made main.app available early just so that the mapcanvas
272 could access the interactor object.
273
274 2001-09-04 Bernhard Herzog <[email protected]>
275
276 * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): New method
277 that runs a modal message box
278 (MainWindow.OnClose): Use the new method
279 (MainWindow.RemoveLayer): Just do nothing in case no layer is
280 selected. The command should be grayed out anyway, so there's no
281 need to pop up a message box.
282 (MainWindow.AddLayer): Pop up a message box with an error message
283 if the shape file can't be opened
284
285 * Thuban/Model/layer.py (Layer.__init__): Open the shapefile
286 immediately. This will cause an exception in case the file can't
287 be opened and we can display an appropriate message.
288
289 * MANIFEST.in: Add extensions/pyprojection/LICENSE
290
291 * setup.py (thuban_bdist_rpm): New class implementing a Thuban
292 specific bdist_rpm command.
293
294 * Thuban/UI/main.py: Catch ImportError exceptions when importing
295 the locale module because it may not be available on some
296 installations.
297
298 * extensions/pyprojection/LICENSE: Copy of the license text in
299 Projection.i. Having it in a separate file makes it easier to
300 refer to license text in e.g. RPMs
301
302 2001-09-03 Bernhard Herzog <[email protected]>
303
304 * setup.py: use wx-config instead of wxgtk-config because it's
305 more generic
306
307 * setup.py (ThubanInstall.get_outputs): Add the symlink in
308 <prefix>/bin to the outputs
309 (ThubanInstall.link_file): New method to link files. We need this
310 because the standard copy_files refuses to link non-existing
311 files.
312 (ThubanInstall.run): Remove the leading install root from the
313 script filename if an install root was specified and use the new
314 link_file method
315
316 * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Fit the map to
317 the window when the first layer is added to the map.
318
319 * setup.py (ThubanInstall.run): Honor the build root (self.root)
320 when linking thuban.py to <prefix>/bin
321
322 2001-08-31 Bernhard Herzog <[email protected]>
323
324 * setup.py: In the setup call, the install parameters shouldn't
325 have trailing slashes because distutils on non-posix platforms
326 doesn't like that. The same applies to other directories like
327 "Resources/Bitmaps"
328
329 In the configuration section for nt, move the wxWindows directory
330 optins into the part clearly marked as editable.
331
332 (InstallLocal.initialize_options):
333 (InstallLocal.user_options): remove the currently unused debug
334 flag
335 (thuban_build_py.find_all_modules): Add this method so that it
336 works for our case of having packages and modules in one
337 distribution as well.
338 (ThubanInstall.initialize_options):
339 (ThubanInstall.finalize_options):
340 (ThubanInstall.user_options):
341 (ThubanInstall.boolean_options): Add new options, do-symlink and
342 extra files. Since these are the first ThubanInstall specific
343 options, override user_options and boolean_options
344 (ThubanInstall.run): Honor the new do-symlink and extra-files
345 options.
346 (ThubanInstall.get_outputs): Add to override the base-class's
347 version and add the extra-files to the outputs
348 (bdist_inno): New class for windows distributions with Inno Setup
349 (InnoIconItem): Helper class for bdist_inno
350 (thuban_bdist_inno): Thuban specific version of bdist_inno. Added
351 this together with the appropriate parameters, to the setup call.
352
353 * setup.cfg (bdist_inno): added new section for the inno setup
354 installer
355
356 * Thuban/UI/tree.py (myTreeCtrlPanel.__init__): New inst var
357 changing_selection to avoid recursive selection events when
358 modifying the selection in response to a selection event.
359 (myTreeCtrlPanel.normalize_selection): Set the new inst var when
360 changing the tree's selection.
361 (myTreeCtrlPanel.OnSelChanged): Only normalize the selection when
362 we're not being called indirectly from normalize_selection.
363
364 * Thuban/UI/mainwindow.py (MainWindow.update_command_ui): Call
365 event.Check only if the command is actuall checkable.
366 (MainWindow.__init__): Call the toolbar's Realize method to make
367 sure that the items are actually shown
368
369 2001-08-28 Bernhard Herzog <[email protected]>
370
371 * setup.py: Fix some doc strings
372
373 * ChangeLog: started
374

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26