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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 163 by bh, Wed May 8 13:49:00 2002 UTC revision 380 by jonathan, Tue Jan 28 12:55:47 2003 UTC
# Line 1  Line 1 
1    2003-01-28  Jonathan Coles  <[email protected]>
2    
3            * Thuban/UI/classifier.py (Classifier): resolved merging conflicts.
4            Fixed crashing problem on some systems. Dialog box shows
5            classification data.
6    
7    2003-01-27      Jan-Oliver Wagner <[email protected]>
8    
9            * Thuban/__init__.py (_): New.
10    
11            * Thuban/Model/classification.py, Thuban/Model/extension.py,
12            Thuban/Model/layer.py, Thuban/Model/load.py, Thuban/Model/map.py,
13            Thuban/Model/session.py, Thuban/UI/application.py, Thuban/UI/classifier.py,
14            Thuban/UI/context.py, Thuban/UI/controls.py, Thuban/UI/identifyview.py,
15            Thuban/UI/labeldialog.py, Thuban/UI/mainwindow.py, Thuban/UI/menu.py,
16            Thuban/UI/proj4dialog.py, Thuban/UI/renderer.py, Thuban/UI/tree.py,
17            Thuban/Lib/connector.py, Thuban/Lib/fileutil.py:
18            Replace user string by _() for i18n.
19    
20    2003-01-27  Jonathan Coles  <[email protected]>
21    
22      * Thuban/Model/layer.py: Classification initialization calls.
23    
24      * Thuban/Model/classification.py: Created class to encapsulate
25      a layer classification. Supports specific data points and
26      ranges.
27    
28      * Thuban/Model/load.py: Added support for loading classification
29      information.
30    
31      * Thuban/Model/save.py: Added support for saving classification
32      information.
33    
34      * Thuban/UI/classifier.py: Initial class for a dialog box for
35      specifying classification information.
36    
37      * Thuban/UI/mainwindows.py: Support for opening the classifier
38      dialog.
39    
40      * Thuban/UI/renderer.py: Support for drawing a layer with the
41      classification information.
42    
43      * Data/iceland_sample_class.thuban: iceland_sample with
44      classification data.
45    
46      * test/test_classification: Tests for the Classification class.
47    
48    2002-12-09  Bernhard Herzog  <[email protected]>
49    
50            * test/test_command.py: New. Tests for the command classes.
51    
52            * Thuban/UI/command.py (ToolCommand): New class for tool commands.
53            (Command.IsTool): New method to distinguish between command
54            switching tools and other commands.
55    
56            * Thuban/UI/view.py (MapCanvas.SelectTool): New method to select
57            the tool to avoid direct assignments to instance variables
58            (MapCanvas.ZoomInTool, MapCanvas.ZoomOutTool, MapCanvas.PanTool)
59            (MapCanvas.IdentifyTool, MapCanvas.LabelTool): Use SelectTool to
60            change the tool
61    
62            * Thuban/UI/mainwindow.py (MainWindow.update_command_ui): If an
63            active tool's command turns insensitive, disable the tool.
64            (_tool_command): Use the new ToolCommand class
65    
66            * Examples/simple_extensions/simple_tool.py (simple_tool): Use the
67            SelectTool method to change the tool
68            (iconfile): Use the ToolCommand class
69    
70    2002-12-03  Bernhard Herzog  <[email protected]>
71    
72            * Thuban/UI/tree.py (SessionTreeCtrl.normalize_selection): Handle
73            the case of selected items that are not children of Layers or Maps
74            properly. Previously this bug would trigger an assertion in
75            wxWindows.
76    
77    2002-11-06  Frank Koormann  <[email protected]>
78    
79            * Thuban/UI/mainwindow.py: Altered the order of tools in the
80            toolbar: First now are all navigation tools (Zoom In/Out, Pan,
81            Full Extent).
82        
83    2002-10-23  Bernhard Herzog  <[email protected]>
84    
85            * setup.py (setup call): version now 0.1.3
86    
87            * MANIFEST.in: Add the files in test/
88    
89            * test/README: Add note about tests requiring the iceland data
90    
91            * Thuban/UI/mainwindow.py (MainWindow.About): Add 2002 to
92            copyright notice.
93    
94    2002-10-18  Bernhard Herzog  <[email protected]>
95    
96            * test/test_map.py
97            (TestMapWithContents.test_projected_bounding_box): Use an explicit
98            epsilon.
99    
100            * test/support.py (FloatComparisonMixin.assertFloatEqual)
101            (FloatComparisonMixin.assertFloatSeqEqual): give a more useful
102            message if the assertion fails and don't return the return value
103            of self.assert_. In assertFloatSeqEqual the return meant that not
104            all items of the sequence were compared.
105    
106    2002-09-20  Bernhard Herzog  <[email protected]>
107    
108            * test/test_fileutil.py: New. Test cases for Thuban.Lib.fileutil
109    
110            * Thuban/Lib/fileutil.py: Fixup some whitespace and typos
111    
112            * test/test_map.py (TestMapWithContents.test_tree_info): Create
113            the string with the bounding box on the fly because of platform
114            differences in the way %g is handled.
115    
116            * test/test_layer.py (TestLayer.test_empty_layer): Create an empty
117            DBFfile too because Thuban layers can't yet cope missing DBF
118            files.
119    
120    2002-09-20  Bernhard Herzog  <[email protected]>
121    
122            * test/test_menu.py: Use initthuban instead of
123            add_thuban_dir_to_path to initialize Thuban.
124    
125            * test/support.py (FloatComparisonMixin.assertFloatEqual): New.
126            Mixin class for float comparisons
127            (SubscriberMixin): New. Mixin class to test messages sent through
128            the Connector class
129    
130            * test/README: Fix a typo and add the -v flag to the command for
131            individual tests
132    
133            * test/test_session.py: New. Test cases for Thuban.Model.session
134    
135            * test/test_proj.py: New. Test cases for Thuban.Model.proj
136    
137            * test/test_map.py: New. Test cases for Thuban.Model.map
138    
139            * test/test_layer.py: New. Test cases for Thuban.Model.layer
140    
141            * test/test_label.py: New. Test cases for Thuban.Model.label
142    
143            * test/test_connector.py: New. Test cases for Thuban.Lib.connector
144    
145            * test/test_color.py: New. Test cases for Thuban.Model.color
146    
147            * test/test_base.py: New. Test cases for Thuban.Model.base
148    
149    2002-09-13  Bernhard Herzog  <[email protected]>
150    
151            * Thuban/Model/session.py (Session.forwarded_channels): Forward
152            the CHANGED channel too.
153    
154            * Thuban/Model/map.py (Map.forwarded_channels): Forward the
155            CHANGED channel too.
156            (Map.__init__): Call the Modifiable constructor as well.
157    
158            * Thuban/Model/base.py (Modifiable.UnsetModified): Issue a CHANGED
159            event if the modified flag changes.
160            (Modifiable.changed): Tweak the doc-string.
161    
162            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed)
163            (MainWindow.set_position_text): Put the code that puts the text
164            with the mouse position into the status bar into the new method
165            set_position_text so that it can overwritten in derived classes.
166    
167    2002-09-12  Bernhard Herzog  <[email protected]>
168    
169            * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): Center the
170            message box on the main window.
171    
172    2002-09-11  Bernhard Herzog  <[email protected]>
173    
174            * Thuban/UI/mainwindow.py: Underline the 'x' in "Exit" instead of
175            the 'E' because it's less likely to interfere with other menu
176            entries.
177            (MainWindow.build_menu): remove an incorrect comment.
178    
179    2002-09-10  Bernhard Herzog  <[email protected]>
180    
181            * Thuban/UI/mainwindow.py (MainWindow.Map): New.
182            (_tool_command): Add sensitive parameter
183            (_has_visible_map): Sensitivity callback to tools and other
184            commands that require a visible map. Use it in map_zoom_in_tool,
185            map_zoom_out_tool, map_pan_tool, map_identify_tool, map_label_tool
186            and map_full_extent
187    
188    2002-09-06  Bernhard Herzog  <[email protected]>
189    
190            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Unsubscribe
191            VIEW_POSITION
192    
193    2002-09-04  Frank Koormann   <[email protected]>
194    
195            * Resources/Bitmaps/fullextent.xpm: Updated Icon (removed "potatoe")
196    
197    2002-09-02  Bernhard Herzog  <[email protected]>
198    
199            * Thuban/UI/view.py: Get rid of the idle redraw. This is done by
200            wxWindows already and our implementation doesn't work correctly
201            with wxGTK 2.3:
202            (MapCanvas.__init__): Remove the instance variable
203            (MapCanvas.OnPaint): Always call do_redraw when there's a map to
204            be drawin
205            (MapCanvas.OnIdle): Removed.
206    
207            * Thuban/UI/view.py (MapCanvas.unprojected_rect_around_point): Add
208            a parameter to determine the size of the rectangle.
209            (MapCanvas.find_shape_at): Create the box around the point on a
210            layer by layer basis and make the size depend on the shape type.
211            This solves a problem with the selection of point shapes at the
212            border of the layer's bounding box
213    
214    2002-08-30  Bernhard Herzog  <[email protected]>
215    
216            * Thuban/UI/mainwindow.py (MainWindow.CanRemoveLayer): New method
217            for the sensitivity  of remove layer.
218            (_can_remove_layer): New. Sensitivity callback for remove layer
219            (Command layer_remove): Use _can_remove_layer
220    
221            * Thuban/Model/map.py (Map.CanRemoveLayer): New method to
222            determine whether a given layer can be deleted.
223    
224            * Thuban/UI/view.py (MapCanvas.__init__, MapCanvas.OnPaint)
225            (MapCanvas.do_redraw): Get rid of the unused update_region
226            instance variable
227    
228            * Thuban/UI/view.py: Add/update some doc-strings.
229    
230            * test/: new subdirectory with a bunch of unit tests.
231    
232            * test/README, test/test_table.py, test/test_save.py,
233            test/test_menu.py, test/test_load.py: Initial set of tests and
234            brief instructions on how to run them
235    
236    2002-08-29  Bernhard Herzog  <[email protected]>
237    
238            * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Handle
239            arcs with multiple parts.
240    
241            * Thuban/UI/view.py (ZoomInTool.MouseUp, ZoomOutTool.MouseUp):
242            Handle degenrate rectangles.
243    
244            * Thuban/Model/table.py: Make writing records work correctly:
245            (Table.__init__): Keep track of whether the DBF is open for
246            writing
247            (Table.write_record): Open the DBF file for writing when necessary
248    
249    2002-08-27  Bernhard Herzog  <[email protected]>
250    
251            * Thuban/Model/table.py (Table.write_record, Table.__init__): Open
252            dbf files only for reading by default. Use a new writable dbf
253            object for writing.
254    
255    2002-08-26  Bernhard Herzog  <[email protected]>
256    
257            * Thuban/UI/mainwindow.py: Refactor the context creation:
258            (MainWindow.Context): New method to return a context
259            (MainWindow.invoke_command, MainWindow.update_command_ui): Use the
260            new method
261    
262            * Thuban/UI/tableview.py (TableGrid, LayerTableGrid): Split the
263            layer table specific code from TableGrid into LayerTableGrid
264            (TableFrame, LayerTableFrame): Split the layer table specific code
265            from TableFrame into LayerTableFrame
266            (LayerTableGrid.select_shape): Remove a debug print
267    
268            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Use the
269            LayerTableFrame
270    
271    2002-08-23  Bernhard Herzog  <[email protected]>
272    
273            * Thuban/Model/layer.py (Layer.__init__): Make sure we have an
274            absolute filename.
275    
276    2002-08-22  Bernhard Herzog  <[email protected]>
277    
278            * Thuban/Model/table.py (Table.write_record): New method to write
279            records.
280            (Table.__init__): Open the DBF file for writing too.
281    
282            * Thuban/UI/controls.py (RecordTable.SetValue): Write the value
283            into the underlying table.
284    
285            * extensions/shapelib/shapefil.h (DBFCommit),
286            extensions/shapelib/dbfopen.c (DBFCommit): New API function to
287            commit any changes made to the DBF file.
288    
289            * Thuban/UI/mainwindow.py (make_check_current_tool)
290            (_tool_command): Put the code that generates the "checked"
291            callback into a separate function so that we can reuse it
292            elsewhere
293    
294            * Thuban/Model/save.py (Saver): New class to handle serializing a
295            session into an XML file. The main reason to introduce a class is
296            that applications built on Thuban can derive from it so that they
297            can save additional information in a session file.
298            (save_session): Delegate almost all the work to the Saver class.
299            Rename the filename argument to file because it may be a file like
300            object now.
301    
302            * Thuban/Model/load.py: Get rid of the Python 1.5.2 compatibility
303            code. Remove the little test code which would be executed when the
304            module is run as a script which didn't work anymore since it can't
305            import the other Thuban modules.
306            (ProcessSession, load_session): Refactor the ProcessSession to
307            have one method for each element start and end tag so that derived
308            classes can easily override the processing of individual tags.
309            Also, always parse with namespaces enabled because applications
310            built on top of Thuban will likely use namespaces if they extend
311            the session file format.
312    
313    2002-08-21  Bernhard Herzog  <[email protected]>
314    
315            * setup.py (ThubanInstall.run): Don't repr install_lib_orig
316            because thubaninit_contents will do it for us.
317    
318    2002-08-16      Jan-Oliver Wagner <[email protected]>
319    
320            * Thuban/UI/mainwindow.py: menu item 'show session tree' now disable if
321            tree window already open
322    
323    2002-08-15  Bernhard Herzog  <[email protected]>
324    
325            * Thuban/Model/layer.py (Layer.Destroy): Call the unboundd method
326            with self.
327    
328            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Only release the mouse
329            when we have actually captured it.
330    
331            * Thuban/Model/layer.py (Layer.Destroy): New. Explicitly close the
332            shapefile and destroy the table.
333    
334            * Thuban/Model/table.py (Table.Destroy): New. Close the DBF file.
335    
336    2002-08-14  Bernhard Herzog  <[email protected]>
337    
338            * Thuban/UI/controls.py (RecordTable.__init__): Remove the unused
339            instance variable columns
340            (RecordTable.GetTypeName): row and col may be negative in some
341            cases.
342    
343            * setup.py (InstallLocal.initialize_options)
344            (InstallLocal.finalize_options, InstallLocal.user_options): New
345            option create-init-file to build a thubaninit.py when running
346            install_local
347            (InstallLocal.run): Create the thubaninit.py module when requested
348            (thubaninit_contents): Split the template into several parts and
349            create a new function thubaninit_contents that creates the
350            contents of a thubaninit module.
351            (ThubanInstall.run): Use the new function to create the thubaninit
352            module.
353    
354    2002-07-30  Bernhard Herzog  <[email protected]>
355    
356            * Thuban/UI/application.py (ThubanApplication.OnExit): Do some
357            cleanup.
358            (ThubanApplication.MainLoop): Extend to automatically call OnExit.
359    
360            * Thuban/Model/session.py (Session.Destroy): Don't bypass the
361            direct base class' Destroy method.
362    
363            * Thuban/Model/map.py (Map.ClearLayers): New method to delete all
364            layers.
365            (Map.Destroy): Destroy the label_layer as well and call the
366            inherited Desatroymethod first so that no more messages are
367            issued.
368            (Map.RaiseLayer, Map.LowerLayer): Only issue LAYERS_CHANGED
369            message if the stacking order actually has changed. Add
370            doc-strings.
371            (Map.BoundingBox): Correct the doc-string.
372            (Map.AddLayer, Map.RemoveLayer, Map.Layers, Map.HasLayers)
373            (Map.ProjectedBoundingBox, Map.SetProjection): Add doc-strings.
374    
375            * Thuban/Model/label.py (LabelLayer.ClearLabels): New to delete
376            all labels.
377    
378    2002-07-29  Bernhard Herzog  <[email protected]>
379    
380            * Thuban/Model/map.py (Map.subscribe_layer_channels)
381            (Map.unsubscribe_layer_channels): Put the code that (un)subscribes
382            to a layer's channels into separate methods.
383            (Map.RemoveLayer, Map.AddLayer): Call the new methods
384            (Map.Destroy): Unsubscribe from a layer's channels before
385            destroying it.
386    
387            * Thuban/UI/view.py (MapCanvas.find_shape_at): Change the
388            selected_layer parameter to searched_layer which is the layer to
389            search in.
390            (MapCanvas.SelectShapeAt): New parameter layer to restrict the
391            search to that layer. Return the selected layer and shape.
392    
393            * Examples/simple_extensions/simple_tool.py (simple_tool): Fix a
394            typo
395    
396    2002-07-24  Bernhard Herzog  <[email protected]>
397    
398            * Thuban/UI/application.py (ThubanApplication.create_session):
399            Extend the doc string.
400            (ThubanApplication.subscribe_session)
401            (ThubanApplication.unsubscribe_session): New methods to
402            subscribe/unsubscribe to/from session channels.
403            (ThubanApplication.SetSession): Call the new methods here.
404            (ThubanApplication.maps_changed, ThubanApplication.set_map):
405            Renamed set_map to maps_changed. Its now a subscriber for
406            MAPS_CHANGED.
407    
408            * Thuban/UI/view.py (ZoomOutTool.MouseUp): Use the correct
409            x-coordinate in case of simple clicks
410    
411            * Thuban/Model/base.py (Modifiable.changed): Apply the args tuple,
412            don't pass it as a parameter
413    
414            * Thuban/Model/session.py (Session.RemoveMap): New
415    
416            * Thuban/UI/mainwindow.py (MainWindow.__init__): Turn the initial
417            window size into a parameter.
418    
419    2002-07-23  Bernhard Herzog  <[email protected]>
420    
421            * Thuban/UI/menu.py (Menu.item_index): Also search for menus not
422            just commands.
423    
424            * Thuban/UI/mainwindow.py (MainWindow.__init__): Change the
425            parameter list a bit to allow setting the window title and the
426            initial message in the status bar. Update the callers.
427    
428            * Thuban/UI/application.py (ThubanApplication.OnInit)
429            (ThubanApplication.CreateMainWindow): Put the mainwindow
430            instantiation into a separate method so that it can be overridden
431            by a subclass.
432    
433    2002-07-19  Bernhard Herzog  <[email protected]>
434    
435            * Thuban/Model/session.py: Issue a CHANGED message every time
436            another changed message is issued to make it easier to get
437            notified of changes.
438            (Session): Update the doc string
439            (Session.forward): Issue changed-events as CHANGED as well.
440            (Session.changed): Overwrite the inherited version to issue
441            CHANGED events as well.
442    
443            * Thuban/UI/tree.py: We can now simply subscribe to the session's
444            CHANGED channel to be informed of changes.
445            (SessionTreeCtrl.session_channels): Not needed any longer.
446            (SessionTreeCtrl.unsubscribe_all, SessionTreeCtrl.session_changed):
447            Only have to (un)subscribe CHANGED
448    
449            * Thuban/Model/map.py (Map.TreeInfo): Deal better with empty maps.
450    
451            * Thuban/UI/main.py, Thuban/UI/__init__.py: Move the work-around
452            for the wxPython locale bug to __init__.py so that it's
453            automatically executed by anybody using UI code from Thuban.
454    
455    2002-07-18  Bernhard Herzog  <[email protected]>
456    
457            * Thuban/UI/main.py (main): app no longer needs to be global
458    
459            * Thuban/UI/mainwindow.py (MainWindow.__init__): Add application
460            as parameter and store it in an instance variable
461            (MainWindow.invoke_command, MainWindow.update_command_ui)
462            (MainWindow.save_modified_session, MainWindow.NewSession)
463            (MainWindow.OpenSession, MainWindow.SaveSession)
464            (MainWindow.SaveSessionAs, MainWindow.ShowSessionTree): Use self's
465            application object.
466    
467            * Thuban/UI/application.py (ThubanApplication.OnInit): Instantiate
468            the main window with self.
469    
470            * Thuban/UI/context.py: New module with the context class
471    
472            * Thuban/UI/command.py (Command): Update doc string.
473    
474            * Thuban/UI/mainwindow.py (MainWindow.invoke_command,
475            MainWindow.update_command_ui): Pass an instance of the context
476            class to the command's methods
477            (check_current_tool, call_method): Handle the new context
478            implementation
479    
480            * Examples/simple_extensions/simple_tool.py (simple_tool,
481            check_simple_tool): Handle the new context implementation
482    
483            * Examples/simple_extensions/simple_command.py (simple_command):
484            Handle the new context implementation. Update the comments about
485            the context.
486    
487            * Thuban/UI/application.py (ThubanApplication.SetSession): Add
488            doc-string
489            (ThubanApplication.Session): New method to return the session
490            object
491    
492            * Thuban/UI/tree.py (SessionTreeCtrl.update_tree): The
493            interactor's selected_layer may not be a layer of the current
494            session when the tree is updated while a new session is being set.
495    
496    2002-07-17  Bernhard Herzog  <[email protected]>
497    
498            * Thuban/UI/tree.py (color_string): Removed. No longer used.
499            (SessionTreeCtrl.update_tree, SessionTreeCtrl.add_items): Split
500            update_tree into update_tree and add_items. The tree now uses a
501            more generic way to display the contents of the tree.
502            (SessionTreeCtrl): Add a doc string explaining the TreeInfo method
503    
504            * Thuban/Model/layer.py (Layer.TreeInfo),
505            Thuban/Model/extension.py (Extension.TreeInfo),
506            Thuban/Model/map.py (Map.TreeInfo),
507            Thuban/Model/session.py (Session.TreeInfo):
508            Add TreeInfo methods to implement the new tree view update scheme
509    
510    2002-07-16  Bernhard Herzog  <[email protected]>
511    
512            * Thuban/UI/application.py: Don't use "import from" for the
513            MainWindow. It can't always be resolved.
514            (ThubanApplication.OnInit): change reference to MainWindow
515            accordingly.
516    
517            * Thuban/UI/menu.py (Menu.SetItems): New method to replace a menu
518            completely
519    
520    2002-07-10  Bernhard Herzog  <[email protected]>
521    
522            * setup.py (create_init_module): New configurable variable whose
523            default depends on the platform we're running on.
524            (ThubanInstall.initialize_options): Initialize
525            self.create_init_module from the global create_init_module
526            (ThubanInstall.user_options): indictate that the options
527            create-init-module and init-module-dir have arguments.
528    
529            * setup.py: In the setup call change the version number to include
530            cvs.
531    
532            * MANIFEST.in: Add the files in Examples
533    
534    2002-07-09  Bernhard Herzog  <[email protected]>
535    
536            * setup.py: In the setup call, use the thuban homepage as the
537            value of the url parameter.
538    
539            * Examples: New subdirectory for examples.
540    
541            * Examples/simple_extensions/simple_tool.xpm,
542            Examples/simple_extensions/simple_tool.py,
543            Examples/simple_extensions/simple_command.py,
544            Examples/simple_extensions/README: Simple examples showing how to
545            add new commands and tools.
546    
547            * setup.cfg (bdist_rpm): Add the default value for prefix and tell
548            bdist_rpm that we also have an install script.
549            (bdist_inno): Add 2002 to the copyright notice.
550    
551            * setup.py: Create a file in python's site-packages directory to
552            make installation of Thuban as a library easier.
553            (ThubanInstall.user_options): Add two new options,
554            create-init-module and init-module-dir
555            (ThubanInstall.expand_with_pure_python_dirs): New method to expand
556            filenames for installation in the default directories.
557            (ThubanInstall.select_scheme, ThubanInstall.convert_paths): Extend
558            the inherited methods to capture some filenames before they're
559            transformed too much by distutils.
560            (ThubanInstall.run): Create the init module if requested.
561            (ThubanInstall.thuban_init_filename): New method to return the
562            full name of the init module.
563            (ThubanInstall.get_outputs): Append the filename of the init
564            module.
565    
566    2002-07-08  Bernhard Herzog  <[email protected]>
567    
568            * setup.py (thuban_bdist_rpm): Extend this version of bdist_rpm to
569            handle the prefix properly which means that the default for the
570            installation prefix should be /usr for RPMs and /usr/local when
571            doing a normal source install.
572            (bdist_rpm_install_script): Script to override the default install
573            commands in the specfile generated by the bdist_rpm command.
574            (thuban_bdist_rpm.user_options): Add a prefix option
575            (thuban_bdist_rpm.initialize_options): Init the prefix option.
576            Create the script files for the spec files as empty files here
577            (thuban_bdist_rpm._make_spec_file): Override the inherited method
578            to fill the script files with content.
579    
580            * Thuban/Model/save.py (relative_filename): Wrapper around
581            Thuban.Lib.fileutil.relative_filename that accepts an empty dir
582            argument. save_session now automatically uses this version,
583            solving a problem when saving to a relative filename.
584    
585            * setup.py: In the setup call, make sure that the library
586            directories are under $prefix/lib not directly under $prefix.
587    
588    2002-06-20      Jan-Oliver Wagner <[email protected]>
589    
590            * Thuban/Model/extension.py: new module to handle extension objects.
591            * Thuban/Model/messages.py: new messages for extensions.
592            * Thuban/Model/session.py (Session.Extensions, Session.HasExtensions,
593            Session.AddExtension): new for handling extensions.
594            Also some other minor changes to round up extension handling.
595            * Thuban/UI/tree.py (SessionTreeCrtl:update_tree): Added visualization
596            of Extension titles and title and names of its objects.
597    
598    2002-05-29  Bernhard Herzog  <[email protected]>
599    
600            * Thuban/UI/mainwindow.py (MainWindow.bind_command_events): Bind
601            the events for a command.
602            (MainWindow.add_toolbar_command, MainWindow.add_menu_command):
603            Call bind_command_events to bind the events. add_toolbar_command
604            can now bind events too so that it's possible to have commands
605            that are only available through the toolbar.
606            (MainWindow.init_ids): New instance variable events_bound to keep
607            track of for which commands events have been bound.
608    
609    2002-05-28  Bernhard Herzog  <[email protected]>
610    
611            * Thuban/UI/menu.py: New module to build and manage menus.
612    
613            * Thuban/UI/mainwindow.py: Remove some unused imports.
614            (MainWindow.__init__, main_menu): move the definition of the main
615            menu from __init__ to the Menu instance main_menu.
616            (MainWindow.build_menu_bar, MainWindow.build_menu): New methods to
617            build the menu bar and sub-menus from a menu description.
618    
619            * Thuban/UI/application.py (ThubanApplication.OnInit): Read the
620            startup file
621            (ThubanApplication.read_startup_files): New method to run
622            ~/.thuban/thubanstart.py
623    
624            * Thuban/UI/mainwindow.py (MainWindow.__init__, main_toolbar):
625            Move the toolbar definition to the Menu instance main_toolbar.
626            (MainWindow.build_toolbar): New method to build the toolbar
627            similar to the build_menu methods
628    
629    2002-05-23  Bernhard Herzog  <[email protected]>
630    
631            * Thuban/UI/mainwindow.py (MainWindow.__init__): Fix spelling of
632            layer_outline_color. Fix it in the definition of the command too.
633    
634            * Thuban/UI/command.py (Command): Fix typo in doc string
635    
636    2002-05-22  Bernhard Herzog  <[email protected]>
637    
638            * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): Fix a typo
639            in the docstring
640    
641    2002-05-15  Bernhard Herzog  <[email protected]>
642    
643            * Thuban/Model/layer.py (Layer.open_shapefile): Set bbox to None
644            when the shapefile is empty.
645            (Layer.BoundingBox, Layer.LatLongBoundingBox): Both methods may
646            now return None for empty shapefiles. Update doc-strings.
647    
648            * Thuban/Model/map.py (Map.BoundingBox): Add doc-string. Deal with
649            the layer's bbox being None.
650    
651            * Thuban/UI/tree.py (SessionTreeCtrl.update_tree): Deal with the
652            layer's bbox being None.
653    
654            * Thuban/UI/view.py (MapCanvas.shape_selected): Only redraw when
655            necessary.
656            (MapCanvas.__init__): New instance variables, last_selected_layer
657            and last_selected_shape to determine how the selection has
658            changed.
659    
660            * Thuban/UI/tableview.py (TableGrid.__init__): Do not call
661            AutoSizeColumns because it will cause a traversal of the entire
662            table which for large .dbf files will take a very long time.
663    
664    2002-05-14  Bernhard Herzog  <[email protected]>
665    
666            * Thuban/Model/layer.py (Layer.open_shapefile): Choose a better
667            maximum depth for the tree than shapelib does by default.
668    
669    2002-05-10  Bernhard Herzog  <[email protected]>
670    
671            * setup.py (py_modules): The shptree modules doesn't have a
672            wrapper, so don't include it in the py_modules
673    
674  2002-05-08  Bernhard Herzog  <[email protected]>  2002-05-08  Bernhard Herzog  <[email protected]>
675    
676          * extensions/shapelib/shptree.c (compare_ints): Make arguments          * extensions/shapelib/shptree.c (compare_ints): Make arguments

Legend:
Removed from v.163  
changed lines
  Added in v.380

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26