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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 349 - (hide annotations)
Wed Oct 23 14:46:18 2002 UTC (22 years, 4 months ago) by bh
Original Path: trunk/thuban/ChangeLog
File size: 44352 byte(s)
update ChangeLog

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

Properties

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26