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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 344 - (hide annotations)
Fri Oct 18 17:29:22 2002 UTC (22 years, 4 months ago) by bh
Original Path: trunk/thuban/ChangeLog
File size: 44074 byte(s)
update ChangeLog

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

Properties

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26