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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

Properties

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26