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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 207 - (show annotations)
Tue Jul 9 14:06:48 2002 UTC (22 years, 8 months ago) by bh
Original Path: trunk/thuban/ChangeLog
File size: 27465 byte(s)
update ChangeLog

1 2002-07-09 Bernhard Herzog <[email protected]>
2
3 * setup.cfg (bdist_rpm): Add the default value for prefix and tell
4 bdist_rpm that we also have an install script.
5 (bdist_inno): Add 2002 to the copyright notice.
6
7 * setup.py: Create a file in python's site-packages directory to
8 make installation of Thuban as a library easier.
9 (ThubanInstall.user_options): Add two new options,
10 create-init-module and init-module-dir
11 (ThubanInstall.expand_with_pure_python_dirs): New method to expand
12 filenames for installation in the default directories.
13 (ThubanInstall.select_scheme, ThubanInstall.convert_paths): Extend
14 the inherited methods to capture some filenames before they're
15 transformed too much by distutils.
16 (ThubanInstall.run): Create the init module if requested.
17 (ThubanInstall.thuban_init_filename): New method to return the
18 full name of the init module.
19 (ThubanInstall.get_outputs): Append the filename of the init
20 module.
21
22 2002-07-08 Bernhard Herzog <[email protected]>
23
24 * setup.py (thuban_bdist_rpm): Extend this version of bdist_rpm to
25 handle the prefix properly which means that the default for the
26 installation prefix should be /usr for RPMs and /usr/local when
27 doing a normal source install.
28 (bdist_rpm_install_script): Script to override the default install
29 commands in the specfile generated by the bdist_rpm command.
30 (thuban_bdist_rpm.user_options): Add a prefix option
31 (thuban_bdist_rpm.initialize_options): Init the prefix option.
32 Create the script files for the spec files as empty files here
33 (thuban_bdist_rpm._make_spec_file): Override the inherited method
34 to fill the script files with content.
35
36 * Thuban/Model/save.py (relative_filename): Wrapper around
37 Thuban.Lib.fileutil.relative_filename that accepts an empty dir
38 argument. save_session now automatically uses this version,
39 solving a problem when saving to a relative filename.
40
41 * setup.py: In the setup call, make sure that the library
42 directories are under $prefix/lib not directly under $prefix.
43
44 2002-06-20 Jan-Oliver Wagner <[email protected]>
45
46 * Thuban/Model/extension.py: new module to handle extension objects.
47 * Thuban/Model/messages.py: new messages for extensions.
48 * Thuban/Model/session.py (Session.Extensions, Session.HasExtensions,
49 Session.AddExtension): new for handling extensions.
50 Also some other minor changes to round up extension handling.
51 * Thuban/UI/tree.py (SessionTreeCrtl:update_tree): Added visualization
52 of Extension titles and title and names of its objects.
53
54 2002-05-29 Bernhard Herzog <[email protected]>
55
56 * Thuban/UI/mainwindow.py (MainWindow.bind_command_events): Bind
57 the events for a command.
58 (MainWindow.add_toolbar_command, MainWindow.add_menu_command):
59 Call bind_command_events to bind the events. add_toolbar_command
60 can now bind events too so that it's possible to have commands
61 that are only available through the toolbar.
62 (MainWindow.init_ids): New instance variable events_bound to keep
63 track of for which commands events have been bound.
64
65 2002-05-28 Bernhard Herzog <[email protected]>
66
67 * Thuban/UI/menu.py: New module to build and manage menus.
68
69 * Thuban/UI/mainwindow.py: Remove some unused imports.
70 (MainWindow.__init__, main_menu): move the definition of the main
71 menu from __init__ to the Menu instance main_menu.
72 (MainWindow.build_menu_bar, MainWindow.build_menu): New methods to
73 build the menu bar and sub-menus from a menu description.
74
75 * Thuban/UI/application.py (ThubanApplication.OnInit): Read the
76 startup file
77 (ThubanApplication.read_startup_files): New method to run
78 ~/.thuban/thubanstart.py
79
80 * Thuban/UI/mainwindow.py (MainWindow.__init__, main_toolbar):
81 Move the toolbar definition to the Menu instance main_toolbar.
82 (MainWindow.build_toolbar): New method to build the toolbar
83 similar to the build_menu methods
84
85 2002-05-23 Bernhard Herzog <[email protected]>
86
87 * Thuban/UI/mainwindow.py (MainWindow.__init__): Fix spelling of
88 layer_outline_color. Fix it in the definition of the command too.
89
90 * Thuban/UI/command.py (Command): Fix typo in doc string
91
92 2002-05-22 Bernhard Herzog <[email protected]>
93
94 * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): Fix a typo
95 in the docstring
96
97 2002-05-15 Bernhard Herzog <[email protected]>
98
99 * Thuban/Model/layer.py (Layer.open_shapefile): Set bbox to None
100 when the shapefile is empty.
101 (Layer.BoundingBox, Layer.LatLongBoundingBox): Both methods may
102 now return None for empty shapefiles. Update doc-strings.
103
104 * Thuban/Model/map.py (Map.BoundingBox): Add doc-string. Deal with
105 the layer's bbox being None.
106
107 * Thuban/UI/tree.py (SessionTreeCtrl.update_tree): Deal with the
108 layer's bbox being None.
109
110 * Thuban/UI/view.py (MapCanvas.shape_selected): Only redraw when
111 necessary.
112 (MapCanvas.__init__): New instance variables, last_selected_layer
113 and last_selected_shape to determine how the selection has
114 changed.
115
116 * Thuban/UI/tableview.py (TableGrid.__init__): Do not call
117 AutoSizeColumns because it will cause a traversal of the entire
118 table which for large .dbf files will take a very long time.
119
120 2002-05-14 Bernhard Herzog <[email protected]>
121
122 * Thuban/Model/layer.py (Layer.open_shapefile): Choose a better
123 maximum depth for the tree than shapelib does by default.
124
125 2002-05-10 Bernhard Herzog <[email protected]>
126
127 * setup.py (py_modules): The shptree modules doesn't have a
128 wrapper, so don't include it in the py_modules
129
130 2002-05-08 Bernhard Herzog <[email protected]>
131
132 * extensions/shapelib/shptree.c (compare_ints): Make arguments
133 const void * as in the qsort prototype
134 (SHPTreeFindLikelyShapes): Remove some unused variables.
135
136 * Thuban/UI/view.py (PanTool.MouseMove): Use the bitmap the view
137 maintains to redraw the window during a drag.
138 (MapCanvas.unprojected_rect_around_point): New method to determine
139 a small region around a point for hit-testing.
140 (MapCanvas.find_shape_at): Only test the shapes in a small region
141 around the point.
142
143 * setup.py: Increment the version to 0.1.2
144
145 * Thuban/UI/tree.py (SessionTreeCtrl.unsubscribe_all): Remove a
146 debug print and set session to None after unsubscribing
147
148 2002-05-07 Bernhard Herzog <[email protected]>
149
150 * Data/iceland_sample.session, Data/iceland_sample.thuban: Rename
151 the file to have a .thuban extension.
152
153 * Thuban/UI/tree.py (session_channels): New class constant with
154 all the session channels to subscribe to to update the tree
155 (SessionTreeCtrl.session_changed): Remember the session so that we
156 can unsubscribe properly. Use the new class constant to
157 unsubscribe from the old session and subscribe to the new one.
158 (SessionTreeCtrl.unsubscribe_all): New method to unsubscribe all
159 subscriptions of the SessionTreeCtrl.
160 (SessionTreeView.OnClose): Call the tree's unsubscribe_all method.
161
162 * Thuban/UI/mainwindow.py (MainWindow.__init__): Add the "Show
163 Session Tree" command to the file menu.
164
165 * Thuban/UI/view.py (MapCanvas.do_redraw): Pass the entire bitmap
166 as update_region to the renderer.
167
168 * Thuban/UI/renderer.py
169 (ScreenRenderer.layer_ids, ScreenRenderer.draw_shape_layer): The
170 update box is now directly a tuple, not a wxRect anymore.
171
172 * Thuban/Model/layer.py (Layer.ShapesInRegion): Remove some debug
173 prints.
174
175 2002-05-07 Bernhard Herzog <[email protected]>
176
177 * setup.py: Add the shptree extension module. See
178 extensions/pyshapelib/ChangeLog for more details.
179
180 * extensions/shapelib/shpopen.c, extensions/shapelib/shapefil.h,
181 extensions/shapelib/dbfopen.c: Really update to the versions of
182 shapelib 1.2.9. For some reason it wasn't really done on
183 2002-04-11.
184
185 * extensions/shapelib/shptree.c: Modified version of shptree.c of
186 shapelib 1.2.9. The only real difference is the use of qsort
187 instead of a bubble sort implementation
188
189 * Thuban/Model/layer.py (Layer.__init__): New instance variable
190 shapetree to hold the shapelib quadtree for the shapefile
191 (Layer.open_shapefile): Create the quad tree.
192 (Layer.ShapesInRegion): New method to return the ids of shapes in
193 a given region using the quad tree.
194
195 * extensions/thuban/wxproj.cpp (project_points): Fix some typos in
196 comment
197 (draw_polygon_shape): Accept both arcs and polygons.
198 (initwxproj): Use the new PYSHAPELIB_IMPORT_API macro to import
199 the api.
200
201 * Thuban/UI/renderer.py (MapRenderer.layer_ids): New method to
202 return the shape ids to be rendered in a given layer.
203 (MapRenderer.draw_shape_layer): Call layer_ids to get the list of
204 ids. Use draw_polygon_shape to draw arc shapes as well.
205 (ScreenRenderer.RenderMap): New parameter for the rectangle that
206 has to be updated
207 (ScreenRenderer.layer_ids): Make use of the layer's quadtree by
208 calling it's ShapesInRegion method.
209
210 * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
211 update_region for the update region.
212 (MapCanvas.OnPaint): Maintain the update region
213 (MapCanvas.do_redraw): Pass the bounding box of the update_region
214 to the renderer when drawing the bitmap. Reset the update_region.
215
216 2002-05-03 Bernhard Herzog <[email protected]>
217
218 * Thuban/UI/mainwindow.py (MainWindow.SaveSessionAs,
219 MainWindow.OpenSession): Change the file extension of the session
220 files to .thuban
221
222 * Thuban/Model/session.py (Session.AddMap, forwarded_channels):
223 Move the map channels to be forwarded by the session into the
224 class constant with forwarded_channels. Also add
225 LAYER_PROJECTION_CHANGED and LAYER_VISIBILITY_CHANGED to
226 forwarded_channels
227
228 * Thuban/Model/base.py (Modifiable.changed): Fix doc-string (a
229 typo and some rewording).
230
231 2002-05-02 Bernhard Herzog <[email protected]>
232
233 * Thuban/UI/view.py: Keep the temporary bitmap used during drawing
234 around to speed up most redraws:
235 (MapCanvas.__init__): New instance variable bitmap which holds the
236 bitmap
237 (MapCanvas.do_redraw): Redraw self.bitmap if necessary. Use
238 self.bitmap to draw.
239 (MapCanvas.full_redraw): New method to force a full redraw
240 including the bitmap
241 (MapCanvas.SetMap): Subscribe full_redraw instead of redraw to
242 make sure the bitmap is redrawn.
243 (MapCanvas.projection_changed, MapCanvas.set_view_transform,
244 MapCanvas.shape_selected): Call full_redraw instead of readraw to
245 make sure the bitmap is redrawn.
246 (MapCanvas.OnSize): New method to handle size events so that the
247 bitmap can be redrawn.
248
249 2002-04-29 Bernhard Herzog <[email protected]>
250
251 * Thuban/UI/mainwindow.py (MainWindow.__init__): Subscribe to the
252 canvas' VIEW_POSITION event
253 (MainWindow.view_position_changed): Handler for VIEW_POSITION.
254 Update the text in the status-bar accordingly.
255
256 * Thuban/UI/view.py (MapCanvas): Derive from Publisher as well
257 (MapCanvas.__del__): Implement because Publisher.__del__ has to be
258 called.
259 (MapCanvas.__init__): Bind EVT_LEAVE_WINDOW too. Initialize
260 current_position
261 (MapCanvas.set_current_position): New method to set
262 current_position. Issue a VIEW_POSITION event
263 (MapCanvas.CurrentPosition): New public method to return the value
264 of current_position. Should be called when the VIEW_POSITION event
265 is processed.
266 (MapCanvas.OnLeftDown, MapCanvas.OnLeftUp, MapCanvas.OnMotion):
267 Update the position.
268 (MapCanvas.OnLeaveWindow): Set the position to None.
269
270 * Thuban/UI/messages.py (VIEW_POSITION): New message for the
271 position in the statusbar
272
273 2002-04-26 Frank Koormann <[email protected]>
274
275 * Thuban/UI/mainwindow.py: AddLayer, Dialog title s/session/data
276
277 2002-04-24 Frank Koormann <[email protected]>
278
279 * Resources/Bitmaps/identify.xpm: shadow added
280
281 * Resources/Bitmaps/fullextent.xpm: new
282
283 2002-04-22 Jan-Oliver Wagner <[email protected]>
284
285 * Thuban/UI/tree.py (update_tree): added test for None on map bounding box
286
287 2002-04-21 Jan-Oliver Wagner <[email protected]>
288
289 * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog): new
290
291 * Thuban/UI/tree.py (update_tree): added added map extent
292
293 * Thuban/UI/mainwindow.py (_method_command): extended by parameter
294 icon; added map_full_extend as tool
295
296 2002-04-19 Jan-Oliver Wagner <[email protected]>
297
298 * Thuban/UI/mainwindow.py (SaveSession): launch save as dialog for
299 saving _new_ sessions
300
301 * Thuban/Model/session.py (create_empty_session): new session
302 don't have a filename (set to None)
303
304 * Thuban/UI/tree.py (update_tree): added filename and modified flag
305
306 * Thuban/Model/load.py (ProcessSession): convert projection
307 parameters from unicode to regular string
308
309 * Data/iceland_sample.session: Added UTM Zone 26 projection.
310
311 2002-04-11 Bernhard Herzog <[email protected]>
312
313 * extensions/shapelib/shapefil.h, extensions/shapelib/shpopen.c,
314 extensions/shapelib/dbfopen.c: Update to the versions of shapelib
315 1.2.9
316
317 * setup.py (Lib.wxproj extension): Don't link shpopen.c and put
318 the pyshapelib directoy into the list of include dirs, so that
319 pyshapelib_api.h can be found.
320
321 * extensions/thuban/wxproj.cpp (pyshapelib_api): New variable that
322 holds the pyshapelib C-API
323 (draw_polygon_shape, point_in_polygon_shape, shape_centroid): Use
324 pyshapelib_api to access the shapelib functions.
325 (initwxproj): Import the c_api from the shapelib module and
326 initialize pyshapelib_api.
327
328 2002-04-04 Bernhard Herzog <[email protected]>
329
330 * setup.py (thuban_bdist_rpm.initialize_options): Use
331 initialize_options to create the scripts for the rpm.
332
333 * extensions/pyprojection/setup.py (PROJ4_PREFIX): Just use /
334
335 2002-04-03 Bernhard Herzog <[email protected]>
336
337 * setup.py: Increment version to 0.1.1
338
339 * Thuban/UI/mainwindow.py (MainWindow.__init__): Move the "Add
340 Layer" and "Remove Layer" commands from the layer menu to the map
341 menu
342
343 2002-02-15 Bernhard Herzog <[email protected]>
344
345 * Thuban/Model/layer.py (Layer.Shape): list append only takes one
346 argument (python <= 1.5.2 erroneously accepted multiuple
347 arguments)
348
349 2002-02-04 Bernhard Herzog <[email protected]>
350
351 * Thuban/UI/identifyview.py (IdentifyGridCtrl): New class to use a
352 RecordGrid in the identifyview.
353 (IdentifyView.__init__): Use IdentifyGridCtrl instead of
354 IdentifyListCtrl. The grid allows editing of the values.
355
356 * Thuban/UI/controls.py (RecordTable, RecordGridCtrl): New classes
357 implementing a grid for a single row of a thuban table.
358
359 * Thuban/UI/view.py (MapCanvas.SelectShapeAt): Search through all
360 layers by default. Easier to use than the previous default of only
361 searching through the select layer which meant that if no layer
362 was selected, you couldn't select a shape.
363
364 * Thuban/UI/tableview.py (TableGrid.__init__): Fix typo
365
366 * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Honour the
367 stroke_width attribute
368
369 * Thuban/Model/save.py (save_session): Write the new stroke_width
370 attribute
371
372 * Thuban/Model/load.py (ProcessSession.startElement): Read the
373 stroke_width attribute
374
375 * Thuban/Model/layer.py (Layer.__init__): New parameter and
376 instance variable stroke_width
377 (Layer.SetStrokeWidth): Set the stroke_width.
378
379 2002-02-01 Bernhard Herzog <[email protected]>
380
381 * extensions/thuban/wxproj.cpp (project_points): Fix two
382 off-by-one errors in the last loop that joins the various parts
383 together.
384
385 2002-01-14 Bernhard Herzog <[email protected]>
386
387 * setup.py (data_dist.make_distribution): Fix some typos
388
389 2001-09-18 Bernhard Herzog <[email protected]>
390
391 * README: Slight tweaking in preparation for the 0.1 release
392
393 * setup.cfg: Add section for sdist to create both tgz and zip
394 archives
395
396 * setup.py: increase version number to 0.1
397 (data_dist): New command class for data distribution
398
399
400 2001-09-14 Bernhard Herzog <[email protected]>
401
402 * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):
403 Handle the case of no layer (i.e. layer is None) properly.
404
405 * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):
406 Set the initial selection of the combo boxes to reflect the
407 projection we're starting with in a way that works on windows,
408 too.
409
410 * Thuban/Lib/connector.py (Connector.print_connections): Print the
411 puiblisher's ids in hex to make it easier to compare them to the
412 standard repr of python methods
413
414 * Thuban/Model/map.py (Map.Destroy): Unsubscribe the label_layer
415 messages
416
417 2001-09-13 Bernhard Herzog <[email protected]>
418
419 * Thuban/UI/tree.py (SessionTreeCtrl.OnSelChanged): Make sure to
420 deselect the layer if no layer is selected
421
422 * Thuban/UI/view.py (MapCanvas.OnPaint): Only delay drawing to
423 idle time when there actually is something to draw. If there's
424 nothing to draw simply clear the window
425 (MapCanvas.do_redraw): Call dc.EndDrawing and add some comments.
426 (MapCanvas.SetMap): force a redraw in all cases because
427 FitMapToWindow doesn't always do it.
428 (MapCanvas.ZoomFactor): Add an optional parameter, center, to
429 specify the point to move into the center of the window
430 (ZoomOutTool.MouseUp, ZoomInTool.MouseUp): If the mouse wasn't
431 dragged, zoon in/out by a factor of 2
432 (MapCanvas.find_shape_at): Iterate backwards (i.e. with decreasing
433 index, i.e. reversed drawing order) so that objects appearing to
434 be in from of others are selected first. This is probably mostly
435 relevant for point shapes where the symbols used may overlap
436
437 * Thuban/Model/session.py (create_empty_session): Unset the
438 modified bit before returning it
439
440 * Thuban/UI/mainwindow.py (MainWindow.NewSession): Use
441 create_empty_session session to create the new, empty session.
442
443 * Thuban/UI/mainwindow.py (MainWindow.__init__): Set the size of
444 the tool bitmaps.
445 (MainWindow.OnClose, MainWindow.save_modified_session): Separate
446 the code that asks whether the session should be saved into the
447 new method save_modified_session.
448 (MainWindow.OpenSession, MainWindow.NewSession): Use the new
449 method to save modified session here too.
450
451 2001-09-11 Bernhard Herzog <[email protected]>
452
453 * setup.py (InnoIconItem): fix typo
454
455 (thuban_bdist_inno.run):
456 (bdist_inno.run): Move the decision not to create symlinks on
457 non-nt platforms to thuban_bdist_inno and do it unconditinally
458 since we never want to create the symlinks here
459
460 2001-09-10 Bernhard Herzog <[email protected]>
461
462 * Thuban/UI/mainwindow.py (MainWindow.IdentifyTool): Popup the
463 identify view immediately
464
465 * Thuban/UI/controls.py: New file with two classes RecordListCtrl
466 and SelectableRecordListCtrl that implement the code shared by the
467 identify view and the label dialog
468
469 * Thuban/UI/identifyview.py (IdentifyListCtrl): Derive from the
470 new class RecordListCtrl
471
472 * Thuban/UI/labeldialog.py (LabelDialog.OnOK): Check whether the
473 return value of GetValue is None instead of using it as a boolean
474 directly so that Zero numbers are handled properly.
475 (LabelListCtrl): Derive from the new class
476 SelectableRecordListCtrl
477
478 * Thuban/UI/proj4dialog.py (Proj4Dialog.__init__):
479 (Proj4Dialog.dialogLayout): Make the window resizable and set the
480 size of the text control explicitly to make the sizers work on
481 both Windows and X.
482
483 2001-09-07 Bernhard Herzog <[email protected]>
484
485 * Thuban/UI/view.py (MapCanvas.find_shape_at):Add a new parameter
486 that can limit the search to the currently selected layer.
487 (MapCanvas.SelectShapeAt): Make sure that the currently selected
488 layer stays selected even when no shape is found
489 (MapCanvas.FitRectToWindow): If the rect has zero with or zero
490 height do nothing (avoids zero division errors)
491
492 2001-09-06 Bernhard Herzog <[email protected]>
493
494 * Thuban/UI/tree.py (SessionTreeCtrl, SessionTreeView.__init__):
495 Correct the spelling of SessionTreeCtrl. dabbrev is too damn
496 convenient :-)
497 (SessionTreeCtrl.__init__, SessionTreeCtrl.update_tree): Introduce
498 a new instvar layer_to_item to map layers to tree items
499 (SessionTreeCtrl.layer_selected): Select the appropriate tree item
500 to match the current selection in the interactor
501
502 * Thuban/UI/interactor.py (Interactor.SelectedLayer):
503 (Interactor.HasSelectedLayer): New methods to query the current
504 selection
505
506 * Thuban/UI/mainwindow.py (MainWindow.current_layer):
507 (MainWindow.has_selected_layer): Simply call the appropriate
508 interactor method
509
510 * Thuban/UI/mainwindow.py (MainWindow.__init__):
511 (MainWindow.LayerShowTable):
512 (MainWindow.identify_view_on_demand): Store the interactor in an
513 instvar and use that reference instead of going through main.app
514
515 * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):
516 * Thuban/UI/application.py (ThubanApplication.OnInit):
517 * Thuban/UI/main.py (main): Create the session tree view in main
518 with the new mainwindow method ShowSessionTree and not directly
519 the application's OnInit method
520
521 * Thuban/UI/tree.py (myTreeCtrlPanel):
522 (SessioinTreeCtrl): Rename to SessioinTreeCtrl and turn it into a
523 TreeCtrl isntead of a panel. This affects most method since we now
524 refer to self instead of self.tree
525 (SessionTreeView): New class implementing a non-modal dialog
526 showing the session tree.
527
528 * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Pass the
529 layer to the tableview dialog.
530
531 * Thuban/UI/tableview.py: Add some doc-strings
532 (TableGrid):
533 (TableGrid.OnRangeSelect):
534 (TableGrid.OnSelectCell):
535 (TableFrame.__init__):
536 (TableFrame.row_selected):
537 Selecting rows in the grid view now updates the selected shapes
538 through the TableFrame. To achieve this we derive TableGrid from
539 Publisher and introduce the message type ROW_SELECTED which the
540 TableFrame subscribes to and which is issued by OnRangeSelect and
541 OnSelectCell
542
543 (DataTable.SelectRow): Removed because it's no longer needed in
544 the row/shape selection scheme
545
546 * Thuban/UI/dialogs.py: New file implementing common classes for
547 dialogs
548
549 * Thuban/UI/tableview.py (TableGrid.__init__): Don't subscribe to
550 the SELECTED_SHAPE message anymore. This is now handled by the
551 parent.
552 (TableGrid.select_shape): Only update the selection if the shape
553 is not None.
554 (TableFrame): Inherit from the new NonModalDialog class.
555 (TableFrame.__init__, TableFrame.select_shape): Handle the
556 SELECT_SHAPE message.
557 (TableFrame.OnClose): Extend the inherited method to unsubscribe
558 SELECT_SHAPE
559
560 * Thuban/UI/mainwindow.py (MainWindow.init_dialogs):
561 (MainWindow.add_dialog):
562 (MainWindow.dialog_open):
563 (MainWindow.remove_dialog):
564 (MainWindow.get_open_dialog): New methods to maintain a dictionary
565 of opened non-modal dialogs.
566
567 (MainWindow.__init__): Initialize the new non-modal dictionary
568 management code
569 (MainWindow.LayerShowTable): maintain separate dialogs for each
570 table using the non-modal dialog management code to only open a
571 view once for each table.
572
573 (MainWindow.IdentifyTool):
574 (MainWindow.__init__):
575 (MainWindow.identify_view_on_demand): Don't open the identify view
576 in IdentifyTool anymore. This will be done automatically by the
577 new method identify_view_on_demand which handles the
578 SELECTED_SHAPE message so that the identify view will be opened on
579 demand
580
581 * Thuban/UI/identifyview.py (IdentifyListCtrl.__init__): Remove
582 the interactor argument. The SELECTED_SHAPE message is now handled
583 by the parent.
584 (IdentifyView.__init__): Add the interactor argument so that we
585 can handle the SELECTED_SHAPE message here
586 (IdentifyView.selected_shape): New method to handle the
587 SELECTED_SHAPE messages
588
589 * Thuban/UI/identifyview.py (IdentifyView): Derive from the new
590 NonModalDialog class
591 (IdentifyView.OnClose): Extend the inherited version to
592 unsubscribe SELECT_SHAPE
593
594 * Thuban/Model/session.py (Session.UnsetModified): Remove debug prints
595
596 2001-09-05 Bernhard Herzog <[email protected]>
597
598 * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.
599
600 * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument
601 interactor to pass through to the MapCanvas
602
603 * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new
604 argument to the MainWindow constructor to get rid of the ugly hack
605 that made main.app available early just so that the mapcanvas
606 could access the interactor object.
607
608 2001-09-04 Bernhard Herzog <[email protected]>
609
610 * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): New method
611 that runs a modal message box
612 (MainWindow.OnClose): Use the new method
613 (MainWindow.RemoveLayer): Just do nothing in case no layer is
614 selected. The command should be grayed out anyway, so there's no
615 need to pop up a message box.
616 (MainWindow.AddLayer): Pop up a message box with an error message
617 if the shape file can't be opened
618
619 * Thuban/Model/layer.py (Layer.__init__): Open the shapefile
620 immediately. This will cause an exception in case the file can't
621 be opened and we can display an appropriate message.
622
623 * MANIFEST.in: Add extensions/pyprojection/LICENSE
624
625 * setup.py (thuban_bdist_rpm): New class implementing a Thuban
626 specific bdist_rpm command.
627
628 * Thuban/UI/main.py: Catch ImportError exceptions when importing
629 the locale module because it may not be available on some
630 installations.
631
632 * extensions/pyprojection/LICENSE: Copy of the license text in
633 Projection.i. Having it in a separate file makes it easier to
634 refer to license text in e.g. RPMs
635
636 2001-09-03 Bernhard Herzog <[email protected]>
637
638 * setup.py: use wx-config instead of wxgtk-config because it's
639 more generic
640
641 * setup.py (ThubanInstall.get_outputs): Add the symlink in
642 <prefix>/bin to the outputs
643 (ThubanInstall.link_file): New method to link files. We need this
644 because the standard copy_files refuses to link non-existing
645 files.
646 (ThubanInstall.run): Remove the leading install root from the
647 script filename if an install root was specified and use the new
648 link_file method
649
650 * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Fit the map to
651 the window when the first layer is added to the map.
652
653 * setup.py (ThubanInstall.run): Honor the build root (self.root)
654 when linking thuban.py to <prefix>/bin
655
656 2001-08-31 Bernhard Herzog <[email protected]>
657
658 * setup.py: In the setup call, the install parameters shouldn't
659 have trailing slashes because distutils on non-posix platforms
660 doesn't like that. The same applies to other directories like
661 "Resources/Bitmaps"
662
663 In the configuration section for nt, move the wxWindows directory
664 optins into the part clearly marked as editable.
665
666 (InstallLocal.initialize_options):
667 (InstallLocal.user_options): remove the currently unused debug
668 flag
669 (thuban_build_py.find_all_modules): Add this method so that it
670 works for our case of having packages and modules in one
671 distribution as well.
672 (ThubanInstall.initialize_options):
673 (ThubanInstall.finalize_options):
674 (ThubanInstall.user_options):
675 (ThubanInstall.boolean_options): Add new options, do-symlink and
676 extra files. Since these are the first ThubanInstall specific
677 options, override user_options and boolean_options
678 (ThubanInstall.run): Honor the new do-symlink and extra-files
679 options.
680 (ThubanInstall.get_outputs): Add to override the base-class's
681 version and add the extra-files to the outputs
682 (bdist_inno): New class for windows distributions with Inno Setup
683 (InnoIconItem): Helper class for bdist_inno
684 (thuban_bdist_inno): Thuban specific version of bdist_inno. Added
685 this together with the appropriate parameters, to the setup call.
686
687 * setup.cfg (bdist_inno): added new section for the inno setup
688 installer
689
690 * Thuban/UI/tree.py (myTreeCtrlPanel.__init__): New inst var
691 changing_selection to avoid recursive selection events when
692 modifying the selection in response to a selection event.
693 (myTreeCtrlPanel.normalize_selection): Set the new inst var when
694 changing the tree's selection.
695 (myTreeCtrlPanel.OnSelChanged): Only normalize the selection when
696 we're not being called indirectly from normalize_selection.
697
698 * Thuban/UI/mainwindow.py (MainWindow.update_command_ui): Call
699 event.Check only if the command is actuall checkable.
700 (MainWindow.__init__): Call the toolbar's Realize method to make
701 sure that the items are actually shown
702
703 2001-08-28 Bernhard Herzog <[email protected]>
704
705 * setup.py: Fix some doc strings
706
707 * ChangeLog: started
708

Properties

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26