/[thuban]/branches/WIP-pyshapelib-bramz/ChangeLog
ViewVC logotype

Contents of /branches/WIP-pyshapelib-bramz/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 359 - (show annotations)
Mon Dec 9 10:32:51 2002 UTC (22 years, 3 months ago) by bh
Original Path: trunk/thuban/ChangeLog
File size: 45629 byte(s)
update ChangeLog

1 2002-12-09 Bernhard Herzog <[email protected]>
2
3 * Thuban/UI/command.py (ToolCommand): New class for tool commands.
4 (Command.IsTool): New method to distinguish between command
5 switching tools and other commands.
6
7 * Thuban/UI/view.py (MapCanvas.SelectTool): New method to select
8 the tool to avoid direct assignments to instance variables
9 (MapCanvas.ZoomInTool, MapCanvas.ZoomOutTool, MapCanvas.PanTool)
10 (MapCanvas.IdentifyTool, MapCanvas.LabelTool): Use SelectTool to
11 change the tool
12
13 * Thuban/UI/mainwindow.py (MainWindow.update_command_ui): If an
14 active tool's command turns insensitive, disable the tool.
15 (_tool_command): Use the new ToolCommand class
16
17 * Examples/simple_extensions/simple_tool.py (simple_tool): Use the
18 SelectTool method to change the tool
19 (iconfile): Use the ToolCommand class
20
21 2002-12-03 Bernhard Herzog <[email protected]>
22
23 * Thuban/UI/tree.py (SessionTreeCtrl.normalize_selection): Handle
24 the case of selected items that are not children of Layers or Maps
25 properly. Previously this bug would trigger an assertion in
26 wxWindows.
27
28 2002-11-06 Frank Koormann <[email protected]>
29
30 * Thuban/UI/mainwindow.py: Altered the order of tools in the
31 toolbar: First now are all navigation tools (Zoom In/Out, Pan,
32 Full Extent).
33
34 2002-10-23 Bernhard Herzog <[email protected]>
35
36 * setup.py (setup call): version now 0.1.3
37
38 * MANIFEST.in: Add the files in test/
39
40 * test/README: Add note about tests requiring the iceland data
41
42 * Thuban/UI/mainwindow.py (MainWindow.About): Add 2002 to
43 copyright notice.
44
45 2002-10-18 Bernhard Herzog <[email protected]>
46
47 * test/test_map.py
48 (TestMapWithContents.test_projected_bounding_box): Use an explicit
49 epsilon.
50
51 * test/support.py (FloatComparisonMixin.assertFloatEqual)
52 (FloatComparisonMixin.assertFloatSeqEqual): give a more useful
53 message if the assertion fails and don't return the return value
54 of self.assert_. In assertFloatSeqEqual the return meant that not
55 all items of the sequence were compared.
56
57 2002-09-20 Bernhard Herzog <[email protected]>
58
59 * test/test_fileutil.py: New. Test cases for Thuban.Lib.fileutil
60
61 * Thuban/Lib/fileutil.py: Fixup some whitespace and typos
62
63 * test/test_map.py (TestMapWithContents.test_tree_info): Create
64 the string with the bounding box on the fly because of platform
65 differences in the way %g is handled.
66
67 * test/test_layer.py (TestLayer.test_empty_layer): Create an empty
68 DBFfile too because Thuban layers can't yet cope missing DBF
69 files.
70
71 2002-09-20 Bernhard Herzog <[email protected]>
72
73 * test/test_menu.py: Use initthuban instead of
74 add_thuban_dir_to_path to initialize Thuban.
75
76 * test/support.py (FloatComparisonMixin.assertFloatEqual): New.
77 Mixin class for float comparisons
78 (SubscriberMixin): New. Mixin class to test messages sent through
79 the Connector class
80
81 * test/README: Fix a typo and add the -v flag to the command for
82 individual tests
83
84 * test/test_session.py: New. Test cases for Thuban.Model.session
85
86 * test/test_proj.py: New. Test cases for Thuban.Model.proj
87
88 * test/test_map.py: New. Test cases for Thuban.Model.map
89
90 * test/test_layer.py: New. Test cases for Thuban.Model.layer
91
92 * test/test_label.py: New. Test cases for Thuban.Model.label
93
94 * test/test_connector.py: New. Test cases for Thuban.Lib.connector
95
96 * test/test_color.py: New. Test cases for Thuban.Model.color
97
98 * test/test_base.py: New. Test cases for Thuban.Model.base
99
100 2002-09-13 Bernhard Herzog <[email protected]>
101
102 * Thuban/Model/session.py (Session.forwarded_channels): Forward
103 the CHANGED channel too.
104
105 * Thuban/Model/map.py (Map.forwarded_channels): Forward the
106 CHANGED channel too.
107 (Map.__init__): Call the Modifiable constructor as well.
108
109 * Thuban/Model/base.py (Modifiable.UnsetModified): Issue a CHANGED
110 event if the modified flag changes.
111 (Modifiable.changed): Tweak the doc-string.
112
113 * Thuban/UI/mainwindow.py (MainWindow.view_position_changed)
114 (MainWindow.set_position_text): Put the code that puts the text
115 with the mouse position into the status bar into the new method
116 set_position_text so that it can overwritten in derived classes.
117
118 2002-09-12 Bernhard Herzog <[email protected]>
119
120 * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): Center the
121 message box on the main window.
122
123 2002-09-11 Bernhard Herzog <[email protected]>
124
125 * Thuban/UI/mainwindow.py: Underline the 'x' in "Exit" instead of
126 the 'E' because it's less likely to interfere with other menu
127 entries.
128 (MainWindow.build_menu): remove an incorrect comment.
129
130 2002-09-10 Bernhard Herzog <[email protected]>
131
132 * Thuban/UI/mainwindow.py (MainWindow.Map): New.
133 (_tool_command): Add sensitive parameter
134 (_has_visible_map): Sensitivity callback to tools and other
135 commands that require a visible map. Use it in map_zoom_in_tool,
136 map_zoom_out_tool, map_pan_tool, map_identify_tool, map_label_tool
137 and map_full_extent
138
139 2002-09-06 Bernhard Herzog <[email protected]>
140
141 * Thuban/UI/mainwindow.py (MainWindow.OnClose): Unsubscribe
142 VIEW_POSITION
143
144 2002-09-04 Frank Koormann <[email protected]>
145
146 * Resources/Bitmaps/fullextent.xpm: Updated Icon (removed "potatoe")
147
148 2002-09-02 Bernhard Herzog <[email protected]>
149
150 * Thuban/UI/view.py: Get rid of the idle redraw. This is done by
151 wxWindows already and our implementation doesn't work correctly
152 with wxGTK 2.3:
153 (MapCanvas.__init__): Remove the instance variable
154 (MapCanvas.OnPaint): Always call do_redraw when there's a map to
155 be drawin
156 (MapCanvas.OnIdle): Removed.
157
158 * Thuban/UI/view.py (MapCanvas.unprojected_rect_around_point): Add
159 a parameter to determine the size of the rectangle.
160 (MapCanvas.find_shape_at): Create the box around the point on a
161 layer by layer basis and make the size depend on the shape type.
162 This solves a problem with the selection of point shapes at the
163 border of the layer's bounding box
164
165 2002-08-30 Bernhard Herzog <[email protected]>
166
167 * Thuban/UI/mainwindow.py (MainWindow.CanRemoveLayer): New method
168 for the sensitivity of remove layer.
169 (_can_remove_layer): New. Sensitivity callback for remove layer
170 (Command layer_remove): Use _can_remove_layer
171
172 * Thuban/Model/map.py (Map.CanRemoveLayer): New method to
173 determine whether a given layer can be deleted.
174
175 * Thuban/UI/view.py (MapCanvas.__init__, MapCanvas.OnPaint)
176 (MapCanvas.do_redraw): Get rid of the unused update_region
177 instance variable
178
179 * Thuban/UI/view.py: Add/update some doc-strings.
180
181 * test/: new subdirectory with a bunch of unit tests.
182
183 * test/README, test/test_table.py, test/test_save.py,
184 test/test_menu.py, test/test_load.py: Initial set of tests and
185 brief instructions on how to run them
186
187 2002-08-29 Bernhard Herzog <[email protected]>
188
189 * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Handle
190 arcs with multiple parts.
191
192 * Thuban/UI/view.py (ZoomInTool.MouseUp, ZoomOutTool.MouseUp):
193 Handle degenrate rectangles.
194
195 * Thuban/Model/table.py: Make writing records work correctly:
196 (Table.__init__): Keep track of whether the DBF is open for
197 writing
198 (Table.write_record): Open the DBF file for writing when necessary
199
200 2002-08-27 Bernhard Herzog <[email protected]>
201
202 * Thuban/Model/table.py (Table.write_record, Table.__init__): Open
203 dbf files only for reading by default. Use a new writable dbf
204 object for writing.
205
206 2002-08-26 Bernhard Herzog <[email protected]>
207
208 * Thuban/UI/mainwindow.py: Refactor the context creation:
209 (MainWindow.Context): New method to return a context
210 (MainWindow.invoke_command, MainWindow.update_command_ui): Use the
211 new method
212
213 * Thuban/UI/tableview.py (TableGrid, LayerTableGrid): Split the
214 layer table specific code from TableGrid into LayerTableGrid
215 (TableFrame, LayerTableFrame): Split the layer table specific code
216 from TableFrame into LayerTableFrame
217 (LayerTableGrid.select_shape): Remove a debug print
218
219 * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Use the
220 LayerTableFrame
221
222 2002-08-23 Bernhard Herzog <[email protected]>
223
224 * Thuban/Model/layer.py (Layer.__init__): Make sure we have an
225 absolute filename.
226
227 2002-08-22 Bernhard Herzog <[email protected]>
228
229 * Thuban/Model/table.py (Table.write_record): New method to write
230 records.
231 (Table.__init__): Open the DBF file for writing too.
232
233 * Thuban/UI/controls.py (RecordTable.SetValue): Write the value
234 into the underlying table.
235
236 * extensions/shapelib/shapefil.h (DBFCommit),
237 extensions/shapelib/dbfopen.c (DBFCommit): New API function to
238 commit any changes made to the DBF file.
239
240 * Thuban/UI/mainwindow.py (make_check_current_tool)
241 (_tool_command): Put the code that generates the "checked"
242 callback into a separate function so that we can reuse it
243 elsewhere
244
245 * Thuban/Model/save.py (Saver): New class to handle serializing a
246 session into an XML file. The main reason to introduce a class is
247 that applications built on Thuban can derive from it so that they
248 can save additional information in a session file.
249 (save_session): Delegate almost all the work to the Saver class.
250 Rename the filename argument to file because it may be a file like
251 object now.
252
253 * Thuban/Model/load.py: Get rid of the Python 1.5.2 compatibility
254 code. Remove the little test code which would be executed when the
255 module is run as a script which didn't work anymore since it can't
256 import the other Thuban modules.
257 (ProcessSession, load_session): Refactor the ProcessSession to
258 have one method for each element start and end tag so that derived
259 classes can easily override the processing of individual tags.
260 Also, always parse with namespaces enabled because applications
261 built on top of Thuban will likely use namespaces if they extend
262 the session file format.
263
264 2002-08-21 Bernhard Herzog <[email protected]>
265
266 * setup.py (ThubanInstall.run): Don't repr install_lib_orig
267 because thubaninit_contents will do it for us.
268
269 2002-08-16 Jan-Oliver Wagner <[email protected]>
270
271 * Thuban/UI/mainwindow.py: menu item 'show session tree' now disable if
272 tree window already open
273
274 2002-08-15 Bernhard Herzog <[email protected]>
275
276 * Thuban/Model/layer.py (Layer.Destroy): Call the unboundd method
277 with self.
278
279 * Thuban/UI/view.py (MapCanvas.OnLeftUp): Only release the mouse
280 when we have actually captured it.
281
282 * Thuban/Model/layer.py (Layer.Destroy): New. Explicitly close the
283 shapefile and destroy the table.
284
285 * Thuban/Model/table.py (Table.Destroy): New. Close the DBF file.
286
287 2002-08-14 Bernhard Herzog <[email protected]>
288
289 * Thuban/UI/controls.py (RecordTable.__init__): Remove the unused
290 instance variable columns
291 (RecordTable.GetTypeName): row and col may be negative in some
292 cases.
293
294 * setup.py (InstallLocal.initialize_options)
295 (InstallLocal.finalize_options, InstallLocal.user_options): New
296 option create-init-file to build a thubaninit.py when running
297 install_local
298 (InstallLocal.run): Create the thubaninit.py module when requested
299 (thubaninit_contents): Split the template into several parts and
300 create a new function thubaninit_contents that creates the
301 contents of a thubaninit module.
302 (ThubanInstall.run): Use the new function to create the thubaninit
303 module.
304
305 2002-07-30 Bernhard Herzog <[email protected]>
306
307 * Thuban/UI/application.py (ThubanApplication.OnExit): Do some
308 cleanup.
309 (ThubanApplication.MainLoop): Extend to automatically call OnExit.
310
311 * Thuban/Model/session.py (Session.Destroy): Don't bypass the
312 direct base class' Destroy method.
313
314 * Thuban/Model/map.py (Map.ClearLayers): New method to delete all
315 layers.
316 (Map.Destroy): Destroy the label_layer as well and call the
317 inherited Desatroymethod first so that no more messages are
318 issued.
319 (Map.RaiseLayer, Map.LowerLayer): Only issue LAYERS_CHANGED
320 message if the stacking order actually has changed. Add
321 doc-strings.
322 (Map.BoundingBox): Correct the doc-string.
323 (Map.AddLayer, Map.RemoveLayer, Map.Layers, Map.HasLayers)
324 (Map.ProjectedBoundingBox, Map.SetProjection): Add doc-strings.
325
326 * Thuban/Model/label.py (LabelLayer.ClearLabels): New to delete
327 all labels.
328
329 2002-07-29 Bernhard Herzog <[email protected]>
330
331 * Thuban/Model/map.py (Map.subscribe_layer_channels)
332 (Map.unsubscribe_layer_channels): Put the code that (un)subscribes
333 to a layer's channels into separate methods.
334 (Map.RemoveLayer, Map.AddLayer): Call the new methods
335 (Map.Destroy): Unsubscribe from a layer's channels before
336 destroying it.
337
338 * Thuban/UI/view.py (MapCanvas.find_shape_at): Change the
339 selected_layer parameter to searched_layer which is the layer to
340 search in.
341 (MapCanvas.SelectShapeAt): New parameter layer to restrict the
342 search to that layer. Return the selected layer and shape.
343
344 * Examples/simple_extensions/simple_tool.py (simple_tool): Fix a
345 typo
346
347 2002-07-24 Bernhard Herzog <[email protected]>
348
349 * Thuban/UI/application.py (ThubanApplication.create_session):
350 Extend the doc string.
351 (ThubanApplication.subscribe_session)
352 (ThubanApplication.unsubscribe_session): New methods to
353 subscribe/unsubscribe to/from session channels.
354 (ThubanApplication.SetSession): Call the new methods here.
355 (ThubanApplication.maps_changed, ThubanApplication.set_map):
356 Renamed set_map to maps_changed. Its now a subscriber for
357 MAPS_CHANGED.
358
359 * Thuban/UI/view.py (ZoomOutTool.MouseUp): Use the correct
360 x-coordinate in case of simple clicks
361
362 * Thuban/Model/base.py (Modifiable.changed): Apply the args tuple,
363 don't pass it as a parameter
364
365 * Thuban/Model/session.py (Session.RemoveMap): New
366
367 * Thuban/UI/mainwindow.py (MainWindow.__init__): Turn the initial
368 window size into a parameter.
369
370 2002-07-23 Bernhard Herzog <[email protected]>
371
372 * Thuban/UI/menu.py (Menu.item_index): Also search for menus not
373 just commands.
374
375 * Thuban/UI/mainwindow.py (MainWindow.__init__): Change the
376 parameter list a bit to allow setting the window title and the
377 initial message in the status bar. Update the callers.
378
379 * Thuban/UI/application.py (ThubanApplication.OnInit)
380 (ThubanApplication.CreateMainWindow): Put the mainwindow
381 instantiation into a separate method so that it can be overridden
382 by a subclass.
383
384 2002-07-19 Bernhard Herzog <[email protected]>
385
386 * Thuban/Model/session.py: Issue a CHANGED message every time
387 another changed message is issued to make it easier to get
388 notified of changes.
389 (Session): Update the doc string
390 (Session.forward): Issue changed-events as CHANGED as well.
391 (Session.changed): Overwrite the inherited version to issue
392 CHANGED events as well.
393
394 * Thuban/UI/tree.py: We can now simply subscribe to the session's
395 CHANGED channel to be informed of changes.
396 (SessionTreeCtrl.session_channels): Not needed any longer.
397 (SessionTreeCtrl.unsubscribe_all, SessionTreeCtrl.session_changed):
398 Only have to (un)subscribe CHANGED
399
400 * Thuban/Model/map.py (Map.TreeInfo): Deal better with empty maps.
401
402 * Thuban/UI/main.py, Thuban/UI/__init__.py: Move the work-around
403 for the wxPython locale bug to __init__.py so that it's
404 automatically executed by anybody using UI code from Thuban.
405
406 2002-07-18 Bernhard Herzog <[email protected]>
407
408 * Thuban/UI/main.py (main): app no longer needs to be global
409
410 * Thuban/UI/mainwindow.py (MainWindow.__init__): Add application
411 as parameter and store it in an instance variable
412 (MainWindow.invoke_command, MainWindow.update_command_ui)
413 (MainWindow.save_modified_session, MainWindow.NewSession)
414 (MainWindow.OpenSession, MainWindow.SaveSession)
415 (MainWindow.SaveSessionAs, MainWindow.ShowSessionTree): Use self's
416 application object.
417
418 * Thuban/UI/application.py (ThubanApplication.OnInit): Instantiate
419 the main window with self.
420
421 * Thuban/UI/context.py: New module with the context class
422
423 * Thuban/UI/command.py (Command): Update doc string.
424
425 * Thuban/UI/mainwindow.py (MainWindow.invoke_command,
426 MainWindow.update_command_ui): Pass an instance of the context
427 class to the command's methods
428 (check_current_tool, call_method): Handle the new context
429 implementation
430
431 * Examples/simple_extensions/simple_tool.py (simple_tool,
432 check_simple_tool): Handle the new context implementation
433
434 * Examples/simple_extensions/simple_command.py (simple_command):
435 Handle the new context implementation. Update the comments about
436 the context.
437
438 * Thuban/UI/application.py (ThubanApplication.SetSession): Add
439 doc-string
440 (ThubanApplication.Session): New method to return the session
441 object
442
443 * Thuban/UI/tree.py (SessionTreeCtrl.update_tree): The
444 interactor's selected_layer may not be a layer of the current
445 session when the tree is updated while a new session is being set.
446
447 2002-07-17 Bernhard Herzog <[email protected]>
448
449 * Thuban/UI/tree.py (color_string): Removed. No longer used.
450 (SessionTreeCtrl.update_tree, SessionTreeCtrl.add_items): Split
451 update_tree into update_tree and add_items. The tree now uses a
452 more generic way to display the contents of the tree.
453 (SessionTreeCtrl): Add a doc string explaining the TreeInfo method
454
455 * Thuban/Model/layer.py (Layer.TreeInfo),
456 Thuban/Model/extension.py (Extension.TreeInfo),
457 Thuban/Model/map.py (Map.TreeInfo),
458 Thuban/Model/session.py (Session.TreeInfo):
459 Add TreeInfo methods to implement the new tree view update scheme
460
461 2002-07-16 Bernhard Herzog <[email protected]>
462
463 * Thuban/UI/application.py: Don't use "import from" for the
464 MainWindow. It can't always be resolved.
465 (ThubanApplication.OnInit): change reference to MainWindow
466 accordingly.
467
468 * Thuban/UI/menu.py (Menu.SetItems): New method to replace a menu
469 completely
470
471 2002-07-10 Bernhard Herzog <[email protected]>
472
473 * setup.py (create_init_module): New configurable variable whose
474 default depends on the platform we're running on.
475 (ThubanInstall.initialize_options): Initialize
476 self.create_init_module from the global create_init_module
477 (ThubanInstall.user_options): indictate that the options
478 create-init-module and init-module-dir have arguments.
479
480 * setup.py: In the setup call change the version number to include
481 cvs.
482
483 * MANIFEST.in: Add the files in Examples
484
485 2002-07-09 Bernhard Herzog <[email protected]>
486
487 * setup.py: In the setup call, use the thuban homepage as the
488 value of the url parameter.
489
490 * Examples: New subdirectory for examples.
491
492 * Examples/simple_extensions/simple_tool.xpm,
493 Examples/simple_extensions/simple_tool.py,
494 Examples/simple_extensions/simple_command.py,
495 Examples/simple_extensions/README: Simple examples showing how to
496 add new commands and tools.
497
498 * setup.cfg (bdist_rpm): Add the default value for prefix and tell
499 bdist_rpm that we also have an install script.
500 (bdist_inno): Add 2002 to the copyright notice.
501
502 * setup.py: Create a file in python's site-packages directory to
503 make installation of Thuban as a library easier.
504 (ThubanInstall.user_options): Add two new options,
505 create-init-module and init-module-dir
506 (ThubanInstall.expand_with_pure_python_dirs): New method to expand
507 filenames for installation in the default directories.
508 (ThubanInstall.select_scheme, ThubanInstall.convert_paths): Extend
509 the inherited methods to capture some filenames before they're
510 transformed too much by distutils.
511 (ThubanInstall.run): Create the init module if requested.
512 (ThubanInstall.thuban_init_filename): New method to return the
513 full name of the init module.
514 (ThubanInstall.get_outputs): Append the filename of the init
515 module.
516
517 2002-07-08 Bernhard Herzog <[email protected]>
518
519 * setup.py (thuban_bdist_rpm): Extend this version of bdist_rpm to
520 handle the prefix properly which means that the default for the
521 installation prefix should be /usr for RPMs and /usr/local when
522 doing a normal source install.
523 (bdist_rpm_install_script): Script to override the default install
524 commands in the specfile generated by the bdist_rpm command.
525 (thuban_bdist_rpm.user_options): Add a prefix option
526 (thuban_bdist_rpm.initialize_options): Init the prefix option.
527 Create the script files for the spec files as empty files here
528 (thuban_bdist_rpm._make_spec_file): Override the inherited method
529 to fill the script files with content.
530
531 * Thuban/Model/save.py (relative_filename): Wrapper around
532 Thuban.Lib.fileutil.relative_filename that accepts an empty dir
533 argument. save_session now automatically uses this version,
534 solving a problem when saving to a relative filename.
535
536 * setup.py: In the setup call, make sure that the library
537 directories are under $prefix/lib not directly under $prefix.
538
539 2002-06-20 Jan-Oliver Wagner <[email protected]>
540
541 * Thuban/Model/extension.py: new module to handle extension objects.
542 * Thuban/Model/messages.py: new messages for extensions.
543 * Thuban/Model/session.py (Session.Extensions, Session.HasExtensions,
544 Session.AddExtension): new for handling extensions.
545 Also some other minor changes to round up extension handling.
546 * Thuban/UI/tree.py (SessionTreeCrtl:update_tree): Added visualization
547 of Extension titles and title and names of its objects.
548
549 2002-05-29 Bernhard Herzog <[email protected]>
550
551 * Thuban/UI/mainwindow.py (MainWindow.bind_command_events): Bind
552 the events for a command.
553 (MainWindow.add_toolbar_command, MainWindow.add_menu_command):
554 Call bind_command_events to bind the events. add_toolbar_command
555 can now bind events too so that it's possible to have commands
556 that are only available through the toolbar.
557 (MainWindow.init_ids): New instance variable events_bound to keep
558 track of for which commands events have been bound.
559
560 2002-05-28 Bernhard Herzog <[email protected]>
561
562 * Thuban/UI/menu.py: New module to build and manage menus.
563
564 * Thuban/UI/mainwindow.py: Remove some unused imports.
565 (MainWindow.__init__, main_menu): move the definition of the main
566 menu from __init__ to the Menu instance main_menu.
567 (MainWindow.build_menu_bar, MainWindow.build_menu): New methods to
568 build the menu bar and sub-menus from a menu description.
569
570 * Thuban/UI/application.py (ThubanApplication.OnInit): Read the
571 startup file
572 (ThubanApplication.read_startup_files): New method to run
573 ~/.thuban/thubanstart.py
574
575 * Thuban/UI/mainwindow.py (MainWindow.__init__, main_toolbar):
576 Move the toolbar definition to the Menu instance main_toolbar.
577 (MainWindow.build_toolbar): New method to build the toolbar
578 similar to the build_menu methods
579
580 2002-05-23 Bernhard Herzog <[email protected]>
581
582 * Thuban/UI/mainwindow.py (MainWindow.__init__): Fix spelling of
583 layer_outline_color. Fix it in the definition of the command too.
584
585 * Thuban/UI/command.py (Command): Fix typo in doc string
586
587 2002-05-22 Bernhard Herzog <[email protected]>
588
589 * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): Fix a typo
590 in the docstring
591
592 2002-05-15 Bernhard Herzog <[email protected]>
593
594 * Thuban/Model/layer.py (Layer.open_shapefile): Set bbox to None
595 when the shapefile is empty.
596 (Layer.BoundingBox, Layer.LatLongBoundingBox): Both methods may
597 now return None for empty shapefiles. Update doc-strings.
598
599 * Thuban/Model/map.py (Map.BoundingBox): Add doc-string. Deal with
600 the layer's bbox being None.
601
602 * Thuban/UI/tree.py (SessionTreeCtrl.update_tree): Deal with the
603 layer's bbox being None.
604
605 * Thuban/UI/view.py (MapCanvas.shape_selected): Only redraw when
606 necessary.
607 (MapCanvas.__init__): New instance variables, last_selected_layer
608 and last_selected_shape to determine how the selection has
609 changed.
610
611 * Thuban/UI/tableview.py (TableGrid.__init__): Do not call
612 AutoSizeColumns because it will cause a traversal of the entire
613 table which for large .dbf files will take a very long time.
614
615 2002-05-14 Bernhard Herzog <[email protected]>
616
617 * Thuban/Model/layer.py (Layer.open_shapefile): Choose a better
618 maximum depth for the tree than shapelib does by default.
619
620 2002-05-10 Bernhard Herzog <[email protected]>
621
622 * setup.py (py_modules): The shptree modules doesn't have a
623 wrapper, so don't include it in the py_modules
624
625 2002-05-08 Bernhard Herzog <[email protected]>
626
627 * extensions/shapelib/shptree.c (compare_ints): Make arguments
628 const void * as in the qsort prototype
629 (SHPTreeFindLikelyShapes): Remove some unused variables.
630
631 * Thuban/UI/view.py (PanTool.MouseMove): Use the bitmap the view
632 maintains to redraw the window during a drag.
633 (MapCanvas.unprojected_rect_around_point): New method to determine
634 a small region around a point for hit-testing.
635 (MapCanvas.find_shape_at): Only test the shapes in a small region
636 around the point.
637
638 * setup.py: Increment the version to 0.1.2
639
640 * Thuban/UI/tree.py (SessionTreeCtrl.unsubscribe_all): Remove a
641 debug print and set session to None after unsubscribing
642
643 2002-05-07 Bernhard Herzog <[email protected]>
644
645 * Data/iceland_sample.session, Data/iceland_sample.thuban: Rename
646 the file to have a .thuban extension.
647
648 * Thuban/UI/tree.py (session_channels): New class constant with
649 all the session channels to subscribe to to update the tree
650 (SessionTreeCtrl.session_changed): Remember the session so that we
651 can unsubscribe properly. Use the new class constant to
652 unsubscribe from the old session and subscribe to the new one.
653 (SessionTreeCtrl.unsubscribe_all): New method to unsubscribe all
654 subscriptions of the SessionTreeCtrl.
655 (SessionTreeView.OnClose): Call the tree's unsubscribe_all method.
656
657 * Thuban/UI/mainwindow.py (MainWindow.__init__): Add the "Show
658 Session Tree" command to the file menu.
659
660 * Thuban/UI/view.py (MapCanvas.do_redraw): Pass the entire bitmap
661 as update_region to the renderer.
662
663 * Thuban/UI/renderer.py
664 (ScreenRenderer.layer_ids, ScreenRenderer.draw_shape_layer): The
665 update box is now directly a tuple, not a wxRect anymore.
666
667 * Thuban/Model/layer.py (Layer.ShapesInRegion): Remove some debug
668 prints.
669
670 2002-05-07 Bernhard Herzog <[email protected]>
671
672 * setup.py: Add the shptree extension module. See
673 extensions/pyshapelib/ChangeLog for more details.
674
675 * extensions/shapelib/shpopen.c, extensions/shapelib/shapefil.h,
676 extensions/shapelib/dbfopen.c: Really update to the versions of
677 shapelib 1.2.9. For some reason it wasn't really done on
678 2002-04-11.
679
680 * extensions/shapelib/shptree.c: Modified version of shptree.c of
681 shapelib 1.2.9. The only real difference is the use of qsort
682 instead of a bubble sort implementation
683
684 * Thuban/Model/layer.py (Layer.__init__): New instance variable
685 shapetree to hold the shapelib quadtree for the shapefile
686 (Layer.open_shapefile): Create the quad tree.
687 (Layer.ShapesInRegion): New method to return the ids of shapes in
688 a given region using the quad tree.
689
690 * extensions/thuban/wxproj.cpp (project_points): Fix some typos in
691 comment
692 (draw_polygon_shape): Accept both arcs and polygons.
693 (initwxproj): Use the new PYSHAPELIB_IMPORT_API macro to import
694 the api.
695
696 * Thuban/UI/renderer.py (MapRenderer.layer_ids): New method to
697 return the shape ids to be rendered in a given layer.
698 (MapRenderer.draw_shape_layer): Call layer_ids to get the list of
699 ids. Use draw_polygon_shape to draw arc shapes as well.
700 (ScreenRenderer.RenderMap): New parameter for the rectangle that
701 has to be updated
702 (ScreenRenderer.layer_ids): Make use of the layer's quadtree by
703 calling it's ShapesInRegion method.
704
705 * Thuban/UI/view.py (MapCanvas.__init__): New instance variable
706 update_region for the update region.
707 (MapCanvas.OnPaint): Maintain the update region
708 (MapCanvas.do_redraw): Pass the bounding box of the update_region
709 to the renderer when drawing the bitmap. Reset the update_region.
710
711 2002-05-03 Bernhard Herzog <[email protected]>
712
713 * Thuban/UI/mainwindow.py (MainWindow.SaveSessionAs,
714 MainWindow.OpenSession): Change the file extension of the session
715 files to .thuban
716
717 * Thuban/Model/session.py (Session.AddMap, forwarded_channels):
718 Move the map channels to be forwarded by the session into the
719 class constant with forwarded_channels. Also add
720 LAYER_PROJECTION_CHANGED and LAYER_VISIBILITY_CHANGED to
721 forwarded_channels
722
723 * Thuban/Model/base.py (Modifiable.changed): Fix doc-string (a
724 typo and some rewording).
725
726 2002-05-02 Bernhard Herzog <[email protected]>
727
728 * Thuban/UI/view.py: Keep the temporary bitmap used during drawing
729 around to speed up most redraws:
730 (MapCanvas.__init__): New instance variable bitmap which holds the
731 bitmap
732 (MapCanvas.do_redraw): Redraw self.bitmap if necessary. Use
733 self.bitmap to draw.
734 (MapCanvas.full_redraw): New method to force a full redraw
735 including the bitmap
736 (MapCanvas.SetMap): Subscribe full_redraw instead of redraw to
737 make sure the bitmap is redrawn.
738 (MapCanvas.projection_changed, MapCanvas.set_view_transform,
739 MapCanvas.shape_selected): Call full_redraw instead of readraw to
740 make sure the bitmap is redrawn.
741 (MapCanvas.OnSize): New method to handle size events so that the
742 bitmap can be redrawn.
743
744 2002-04-29 Bernhard Herzog <[email protected]>
745
746 * Thuban/UI/mainwindow.py (MainWindow.__init__): Subscribe to the
747 canvas' VIEW_POSITION event
748 (MainWindow.view_position_changed): Handler for VIEW_POSITION.
749 Update the text in the status-bar accordingly.
750
751 * Thuban/UI/view.py (MapCanvas): Derive from Publisher as well
752 (MapCanvas.__del__): Implement because Publisher.__del__ has to be
753 called.
754 (MapCanvas.__init__): Bind EVT_LEAVE_WINDOW too. Initialize
755 current_position
756 (MapCanvas.set_current_position): New method to set
757 current_position. Issue a VIEW_POSITION event
758 (MapCanvas.CurrentPosition): New public method to return the value
759 of current_position. Should be called when the VIEW_POSITION event
760 is processed.
761 (MapCanvas.OnLeftDown, MapCanvas.OnLeftUp, MapCanvas.OnMotion):
762 Update the position.
763 (MapCanvas.OnLeaveWindow): Set the position to None.
764
765 * Thuban/UI/messages.py (VIEW_POSITION): New message for the
766 position in the statusbar
767
768 2002-04-26 Frank Koormann <[email protected]>
769
770 * Thuban/UI/mainwindow.py: AddLayer, Dialog title s/session/data
771
772 2002-04-24 Frank Koormann <[email protected]>
773
774 * Resources/Bitmaps/identify.xpm: shadow added
775
776 * Resources/Bitmaps/fullextent.xpm: new
777
778 2002-04-22 Jan-Oliver Wagner <[email protected]>
779
780 * Thuban/UI/tree.py (update_tree): added test for None on map bounding box
781
782 2002-04-21 Jan-Oliver Wagner <[email protected]>
783
784 * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog): new
785
786 * Thuban/UI/tree.py (update_tree): added added map extent
787
788 * Thuban/UI/mainwindow.py (_method_command): extended by parameter
789 icon; added map_full_extend as tool
790
791 2002-04-19 Jan-Oliver Wagner <[email protected]>
792
793 * Thuban/UI/mainwindow.py (SaveSession): launch save as dialog for
794 saving _new_ sessions
795
796 * Thuban/Model/session.py (create_empty_session): new session
797 don't have a filename (set to None)
798
799 * Thuban/UI/tree.py (update_tree): added filename and modified flag
800
801 * Thuban/Model/load.py (ProcessSession): convert projection
802 parameters from unicode to regular string
803
804 * Data/iceland_sample.session: Added UTM Zone 26 projection.
805
806 2002-04-11 Bernhard Herzog <[email protected]>
807
808 * extensions/shapelib/shapefil.h, extensions/shapelib/shpopen.c,
809 extensions/shapelib/dbfopen.c: Update to the versions of shapelib
810 1.2.9
811
812 * setup.py (Lib.wxproj extension): Don't link shpopen.c and put
813 the pyshapelib directoy into the list of include dirs, so that
814 pyshapelib_api.h can be found.
815
816 * extensions/thuban/wxproj.cpp (pyshapelib_api): New variable that
817 holds the pyshapelib C-API
818 (draw_polygon_shape, point_in_polygon_shape, shape_centroid): Use
819 pyshapelib_api to access the shapelib functions.
820 (initwxproj): Import the c_api from the shapelib module and
821 initialize pyshapelib_api.
822
823 2002-04-04 Bernhard Herzog <[email protected]>
824
825 * setup.py (thuban_bdist_rpm.initialize_options): Use
826 initialize_options to create the scripts for the rpm.
827
828 * extensions/pyprojection/setup.py (PROJ4_PREFIX): Just use /
829
830 2002-04-03 Bernhard Herzog <[email protected]>
831
832 * setup.py: Increment version to 0.1.1
833
834 * Thuban/UI/mainwindow.py (MainWindow.__init__): Move the "Add
835 Layer" and "Remove Layer" commands from the layer menu to the map
836 menu
837
838 2002-02-15 Bernhard Herzog <[email protected]>
839
840 * Thuban/Model/layer.py (Layer.Shape): list append only takes one
841 argument (python <= 1.5.2 erroneously accepted multiuple
842 arguments)
843
844 2002-02-04 Bernhard Herzog <[email protected]>
845
846 * Thuban/UI/identifyview.py (IdentifyGridCtrl): New class to use a
847 RecordGrid in the identifyview.
848 (IdentifyView.__init__): Use IdentifyGridCtrl instead of
849 IdentifyListCtrl. The grid allows editing of the values.
850
851 * Thuban/UI/controls.py (RecordTable, RecordGridCtrl): New classes
852 implementing a grid for a single row of a thuban table.
853
854 * Thuban/UI/view.py (MapCanvas.SelectShapeAt): Search through all
855 layers by default. Easier to use than the previous default of only
856 searching through the select layer which meant that if no layer
857 was selected, you couldn't select a shape.
858
859 * Thuban/UI/tableview.py (TableGrid.__init__): Fix typo
860
861 * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Honour the
862 stroke_width attribute
863
864 * Thuban/Model/save.py (save_session): Write the new stroke_width
865 attribute
866
867 * Thuban/Model/load.py (ProcessSession.startElement): Read the
868 stroke_width attribute
869
870 * Thuban/Model/layer.py (Layer.__init__): New parameter and
871 instance variable stroke_width
872 (Layer.SetStrokeWidth): Set the stroke_width.
873
874 2002-02-01 Bernhard Herzog <[email protected]>
875
876 * extensions/thuban/wxproj.cpp (project_points): Fix two
877 off-by-one errors in the last loop that joins the various parts
878 together.
879
880 2002-01-14 Bernhard Herzog <[email protected]>
881
882 * setup.py (data_dist.make_distribution): Fix some typos
883
884 2001-09-18 Bernhard Herzog <[email protected]>
885
886 * README: Slight tweaking in preparation for the 0.1 release
887
888 * setup.cfg: Add section for sdist to create both tgz and zip
889 archives
890
891 * setup.py: increase version number to 0.1
892 (data_dist): New command class for data distribution
893
894
895 2001-09-14 Bernhard Herzog <[email protected]>
896
897 * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):
898 Handle the case of no layer (i.e. layer is None) properly.
899
900 * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):
901 Set the initial selection of the combo boxes to reflect the
902 projection we're starting with in a way that works on windows,
903 too.
904
905 * Thuban/Lib/connector.py (Connector.print_connections): Print the
906 puiblisher's ids in hex to make it easier to compare them to the
907 standard repr of python methods
908
909 * Thuban/Model/map.py (Map.Destroy): Unsubscribe the label_layer
910 messages
911
912 2001-09-13 Bernhard Herzog <[email protected]>
913
914 * Thuban/UI/tree.py (SessionTreeCtrl.OnSelChanged): Make sure to
915 deselect the layer if no layer is selected
916
917 * Thuban/UI/view.py (MapCanvas.OnPaint): Only delay drawing to
918 idle time when there actually is something to draw. If there's
919 nothing to draw simply clear the window
920 (MapCanvas.do_redraw): Call dc.EndDrawing and add some comments.
921 (MapCanvas.SetMap): force a redraw in all cases because
922 FitMapToWindow doesn't always do it.
923 (MapCanvas.ZoomFactor): Add an optional parameter, center, to
924 specify the point to move into the center of the window
925 (ZoomOutTool.MouseUp, ZoomInTool.MouseUp): If the mouse wasn't
926 dragged, zoon in/out by a factor of 2
927 (MapCanvas.find_shape_at): Iterate backwards (i.e. with decreasing
928 index, i.e. reversed drawing order) so that objects appearing to
929 be in from of others are selected first. This is probably mostly
930 relevant for point shapes where the symbols used may overlap
931
932 * Thuban/Model/session.py (create_empty_session): Unset the
933 modified bit before returning it
934
935 * Thuban/UI/mainwindow.py (MainWindow.NewSession): Use
936 create_empty_session session to create the new, empty session.
937
938 * Thuban/UI/mainwindow.py (MainWindow.__init__): Set the size of
939 the tool bitmaps.
940 (MainWindow.OnClose, MainWindow.save_modified_session): Separate
941 the code that asks whether the session should be saved into the
942 new method save_modified_session.
943 (MainWindow.OpenSession, MainWindow.NewSession): Use the new
944 method to save modified session here too.
945
946 2001-09-11 Bernhard Herzog <[email protected]>
947
948 * setup.py (InnoIconItem): fix typo
949
950 (thuban_bdist_inno.run):
951 (bdist_inno.run): Move the decision not to create symlinks on
952 non-nt platforms to thuban_bdist_inno and do it unconditinally
953 since we never want to create the symlinks here
954
955 2001-09-10 Bernhard Herzog <[email protected]>
956
957 * Thuban/UI/mainwindow.py (MainWindow.IdentifyTool): Popup the
958 identify view immediately
959
960 * Thuban/UI/controls.py: New file with two classes RecordListCtrl
961 and SelectableRecordListCtrl that implement the code shared by the
962 identify view and the label dialog
963
964 * Thuban/UI/identifyview.py (IdentifyListCtrl): Derive from the
965 new class RecordListCtrl
966
967 * Thuban/UI/labeldialog.py (LabelDialog.OnOK): Check whether the
968 return value of GetValue is None instead of using it as a boolean
969 directly so that Zero numbers are handled properly.
970 (LabelListCtrl): Derive from the new class
971 SelectableRecordListCtrl
972
973 * Thuban/UI/proj4dialog.py (Proj4Dialog.__init__):
974 (Proj4Dialog.dialogLayout): Make the window resizable and set the
975 size of the text control explicitly to make the sizers work on
976 both Windows and X.
977
978 2001-09-07 Bernhard Herzog <[email protected]>
979
980 * Thuban/UI/view.py (MapCanvas.find_shape_at):Add a new parameter
981 that can limit the search to the currently selected layer.
982 (MapCanvas.SelectShapeAt): Make sure that the currently selected
983 layer stays selected even when no shape is found
984 (MapCanvas.FitRectToWindow): If the rect has zero with or zero
985 height do nothing (avoids zero division errors)
986
987 2001-09-06 Bernhard Herzog <[email protected]>
988
989 * Thuban/UI/tree.py (SessionTreeCtrl, SessionTreeView.__init__):
990 Correct the spelling of SessionTreeCtrl. dabbrev is too damn
991 convenient :-)
992 (SessionTreeCtrl.__init__, SessionTreeCtrl.update_tree): Introduce
993 a new instvar layer_to_item to map layers to tree items
994 (SessionTreeCtrl.layer_selected): Select the appropriate tree item
995 to match the current selection in the interactor
996
997 * Thuban/UI/interactor.py (Interactor.SelectedLayer):
998 (Interactor.HasSelectedLayer): New methods to query the current
999 selection
1000
1001 * Thuban/UI/mainwindow.py (MainWindow.current_layer):
1002 (MainWindow.has_selected_layer): Simply call the appropriate
1003 interactor method
1004
1005 * Thuban/UI/mainwindow.py (MainWindow.__init__):
1006 (MainWindow.LayerShowTable):
1007 (MainWindow.identify_view_on_demand): Store the interactor in an
1008 instvar and use that reference instead of going through main.app
1009
1010 * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):
1011 * Thuban/UI/application.py (ThubanApplication.OnInit):
1012 * Thuban/UI/main.py (main): Create the session tree view in main
1013 with the new mainwindow method ShowSessionTree and not directly
1014 the application's OnInit method
1015
1016 * Thuban/UI/tree.py (myTreeCtrlPanel):
1017 (SessioinTreeCtrl): Rename to SessioinTreeCtrl and turn it into a
1018 TreeCtrl isntead of a panel. This affects most method since we now
1019 refer to self instead of self.tree
1020 (SessionTreeView): New class implementing a non-modal dialog
1021 showing the session tree.
1022
1023 * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Pass the
1024 layer to the tableview dialog.
1025
1026 * Thuban/UI/tableview.py: Add some doc-strings
1027 (TableGrid):
1028 (TableGrid.OnRangeSelect):
1029 (TableGrid.OnSelectCell):
1030 (TableFrame.__init__):
1031 (TableFrame.row_selected):
1032 Selecting rows in the grid view now updates the selected shapes
1033 through the TableFrame. To achieve this we derive TableGrid from
1034 Publisher and introduce the message type ROW_SELECTED which the
1035 TableFrame subscribes to and which is issued by OnRangeSelect and
1036 OnSelectCell
1037
1038 (DataTable.SelectRow): Removed because it's no longer needed in
1039 the row/shape selection scheme
1040
1041 * Thuban/UI/dialogs.py: New file implementing common classes for
1042 dialogs
1043
1044 * Thuban/UI/tableview.py (TableGrid.__init__): Don't subscribe to
1045 the SELECTED_SHAPE message anymore. This is now handled by the
1046 parent.
1047 (TableGrid.select_shape): Only update the selection if the shape
1048 is not None.
1049 (TableFrame): Inherit from the new NonModalDialog class.
1050 (TableFrame.__init__, TableFrame.select_shape): Handle the
1051 SELECT_SHAPE message.
1052 (TableFrame.OnClose): Extend the inherited method to unsubscribe
1053 SELECT_SHAPE
1054
1055 * Thuban/UI/mainwindow.py (MainWindow.init_dialogs):
1056 (MainWindow.add_dialog):
1057 (MainWindow.dialog_open):
1058 (MainWindow.remove_dialog):
1059 (MainWindow.get_open_dialog): New methods to maintain a dictionary
1060 of opened non-modal dialogs.
1061
1062 (MainWindow.__init__): Initialize the new non-modal dictionary
1063 management code
1064 (MainWindow.LayerShowTable): maintain separate dialogs for each
1065 table using the non-modal dialog management code to only open a
1066 view once for each table.
1067
1068 (MainWindow.IdentifyTool):
1069 (MainWindow.__init__):
1070 (MainWindow.identify_view_on_demand): Don't open the identify view
1071 in IdentifyTool anymore. This will be done automatically by the
1072 new method identify_view_on_demand which handles the
1073 SELECTED_SHAPE message so that the identify view will be opened on
1074 demand
1075
1076 * Thuban/UI/identifyview.py (IdentifyListCtrl.__init__): Remove
1077 the interactor argument. The SELECTED_SHAPE message is now handled
1078 by the parent.
1079 (IdentifyView.__init__): Add the interactor argument so that we
1080 can handle the SELECTED_SHAPE message here
1081 (IdentifyView.selected_shape): New method to handle the
1082 SELECTED_SHAPE messages
1083
1084 * Thuban/UI/identifyview.py (IdentifyView): Derive from the new
1085 NonModalDialog class
1086 (IdentifyView.OnClose): Extend the inherited version to
1087 unsubscribe SELECT_SHAPE
1088
1089 * Thuban/Model/session.py (Session.UnsetModified): Remove debug prints
1090
1091 2001-09-05 Bernhard Herzog <[email protected]>
1092
1093 * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.
1094
1095 * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument
1096 interactor to pass through to the MapCanvas
1097
1098 * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new
1099 argument to the MainWindow constructor to get rid of the ugly hack
1100 that made main.app available early just so that the mapcanvas
1101 could access the interactor object.
1102
1103 2001-09-04 Bernhard Herzog <[email protected]>
1104
1105 * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): New method
1106 that runs a modal message box
1107 (MainWindow.OnClose): Use the new method
1108 (MainWindow.RemoveLayer): Just do nothing in case no layer is
1109 selected. The command should be grayed out anyway, so there's no
1110 need to pop up a message box.
1111 (MainWindow.AddLayer): Pop up a message box with an error message
1112 if the shape file can't be opened
1113
1114 * Thuban/Model/layer.py (Layer.__init__): Open the shapefile
1115 immediately. This will cause an exception in case the file can't
1116 be opened and we can display an appropriate message.
1117
1118 * MANIFEST.in: Add extensions/pyprojection/LICENSE
1119
1120 * setup.py (thuban_bdist_rpm): New class implementing a Thuban
1121 specific bdist_rpm command.
1122
1123 * Thuban/UI/main.py: Catch ImportError exceptions when importing
1124 the locale module because it may not be available on some
1125 installations.
1126
1127 * extensions/pyprojection/LICENSE: Copy of the license text in
1128 Projection.i. Having it in a separate file makes it easier to
1129 refer to license text in e.g. RPMs
1130
1131 2001-09-03 Bernhard Herzog <[email protected]>
1132
1133 * setup.py: use wx-config instead of wxgtk-config because it's
1134 more generic
1135
1136 * setup.py (ThubanInstall.get_outputs): Add the symlink in
1137 <prefix>/bin to the outputs
1138 (ThubanInstall.link_file): New method to link files. We need this
1139 because the standard copy_files refuses to link non-existing
1140 files.
1141 (ThubanInstall.run): Remove the leading install root from the
1142 script filename if an install root was specified and use the new
1143 link_file method
1144
1145 * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Fit the map to
1146 the window when the first layer is added to the map.
1147
1148 * setup.py (ThubanInstall.run): Honor the build root (self.root)
1149 when linking thuban.py to <prefix>/bin
1150
1151 2001-08-31 Bernhard Herzog <[email protected]>
1152
1153 * setup.py: In the setup call, the install parameters shouldn't
1154 have trailing slashes because distutils on non-posix platforms
1155 doesn't like that. The same applies to other directories like
1156 "Resources/Bitmaps"
1157
1158 In the configuration section for nt, move the wxWindows directory
1159 optins into the part clearly marked as editable.
1160
1161 (InstallLocal.initialize_options):
1162 (InstallLocal.user_options): remove the currently unused debug
1163 flag
1164 (thuban_build_py.find_all_modules): Add this method so that it
1165 works for our case of having packages and modules in one
1166 distribution as well.
1167 (ThubanInstall.initialize_options):
1168 (ThubanInstall.finalize_options):
1169 (ThubanInstall.user_options):
1170 (ThubanInstall.boolean_options): Add new options, do-symlink and
1171 extra files. Since these are the first ThubanInstall specific
1172 options, override user_options and boolean_options
1173 (ThubanInstall.run): Honor the new do-symlink and extra-files
1174 options.
1175 (ThubanInstall.get_outputs): Add to override the base-class's
1176 version and add the extra-files to the outputs
1177 (bdist_inno): New class for windows distributions with Inno Setup
1178 (InnoIconItem): Helper class for bdist_inno
1179 (thuban_bdist_inno): Thuban specific version of bdist_inno. Added
1180 this together with the appropriate parameters, to the setup call.
1181
1182 * setup.cfg (bdist_inno): added new section for the inno setup
1183 installer
1184
1185 * Thuban/UI/tree.py (myTreeCtrlPanel.__init__): New inst var
1186 changing_selection to avoid recursive selection events when
1187 modifying the selection in response to a selection event.
1188 (myTreeCtrlPanel.normalize_selection): Set the new inst var when
1189 changing the tree's selection.
1190 (myTreeCtrlPanel.OnSelChanged): Only normalize the selection when
1191 we're not being called indirectly from normalize_selection.
1192
1193 * Thuban/UI/mainwindow.py (MainWindow.update_command_ui): Call
1194 event.Check only if the command is actuall checkable.
1195 (MainWindow.__init__): Call the toolbar's Realize method to make
1196 sure that the items are actually shown
1197
1198 2001-08-28 Bernhard Herzog <[email protected]>
1199
1200 * setup.py: Fix some doc strings
1201
1202 * ChangeLog: started
1203

Properties

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26