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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 326 - (hide annotations)
Fri Sep 20 13:56:09 2002 UTC (22 years, 5 months ago) by bh
Original Path: trunk/thuban/ChangeLog
File size: 42636 byte(s)
update ChangeLog

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

Properties

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26