/[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 230 by bh, Fri Jul 19 13:21:14 2002 UTC revision 322 by bh, Fri Sep 13 14:21:58 2002 UTC
# Line 1  Line 1 
1    2002-09-13  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/Model/session.py (Session.forwarded_channels): Forward
4            the CHANGED channel too.
5    
6            * Thuban/Model/map.py (Map.forwarded_channels): Forward the
7            CHANGED channel too.
8            (Map.__init__): Call the Modifiable constructor as well.
9    
10            * Thuban/Model/base.py (Modifiable.UnsetModified): Issue a CHANGED
11            event if the modified flag changes.
12            (Modifiable.changed): Tweak the doc-string.
13    
14            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed)
15            (MainWindow.set_position_text): Put the code that puts the text
16            with the mouse position into the status bar into the new method
17            set_position_text so that it can overwritten in derived classes.
18    
19    2002-09-12  Bernhard Herzog  <[email protected]>
20    
21            * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): Center the
22            message box on the main window.
23    
24    2002-09-11  Bernhard Herzog  <[email protected]>
25    
26            * Thuban/UI/mainwindow.py: Underline the 'x' in "Exit" instead of
27            the 'E' because it's less likely to interfere with other menu
28            entries.
29            (MainWindow.build_menu): remove an incorrect comment.
30    
31    2002-09-10  Bernhard Herzog  <[email protected]>
32    
33            * Thuban/UI/mainwindow.py (MainWindow.Map): New.
34            (_tool_command): Add sensitive parameter
35            (_has_visible_map): Sensitivity callback to tools and other
36            commands that require a visible map. Use it in map_zoom_in_tool,
37            map_zoom_out_tool, map_pan_tool, map_identify_tool, map_label_tool
38            and map_full_extent
39    
40    2002-09-06  Bernhard Herzog  <[email protected]>
41    
42            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Unsubscribe
43            VIEW_POSITION
44    
45    2002-09-04  Frank Koormann   <[email protected]>
46    
47            * Resources/Bitmaps/fullextent.xpm: Updated Icon (removed "potatoe")
48    
49    2002-09-02  Bernhard Herzog  <[email protected]>
50    
51            * Thuban/UI/view.py: Get rid of the idle redraw. This is done by
52            wxWindows already and our implementation doesn't work correctly
53            with wxGTK 2.3:
54            (MapCanvas.__init__): Remove the instance variable
55            (MapCanvas.OnPaint): Always call do_redraw when there's a map to
56            be drawin
57            (MapCanvas.OnIdle): Removed.
58    
59            * Thuban/UI/view.py (MapCanvas.unprojected_rect_around_point): Add
60            a parameter to determine the size of the rectangle.
61            (MapCanvas.find_shape_at): Create the box around the point on a
62            layer by layer basis and make the size depend on the shape type.
63            This solves a problem with the selection of point shapes at the
64            border of the layer's bounding box
65    
66    2002-08-30  Bernhard Herzog  <[email protected]>
67    
68            * Thuban/UI/mainwindow.py (MainWindow.CanRemoveLayer): New method
69            for the sensitivity  of remove layer.
70            (_can_remove_layer): New. Sensitivity callback for remove layer
71            (Command layer_remove): Use _can_remove_layer
72    
73            * Thuban/Model/map.py (Map.CanRemoveLayer): New method to
74            determine whether a given layer can be deleted.
75    
76            * Thuban/UI/view.py (MapCanvas.__init__, MapCanvas.OnPaint)
77            (MapCanvas.do_redraw): Get rid of the unused update_region
78            instance variable
79    
80            * Thuban/UI/view.py: Add/update some doc-strings.
81    
82            * test/: new subdirectory with a bunch of unit tests.
83    
84            * test/README, test/test_table.py, test/test_save.py,
85            test/test_menu.py, test/test_load.py: Initial set of tests and
86            brief instructions on how to run them
87    
88    2002-08-29  Bernhard Herzog  <[email protected]>
89    
90            * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Handle
91            arcs with multiple parts.
92    
93            * Thuban/UI/view.py (ZoomInTool.MouseUp, ZoomOutTool.MouseUp):
94            Handle degenrate rectangles.
95    
96            * Thuban/Model/table.py: Make writing records work correctly:
97            (Table.__init__): Keep track of whether the DBF is open for
98            writing
99            (Table.write_record): Open the DBF file for writing when necessary
100    
101    2002-08-27  Bernhard Herzog  <[email protected]>
102    
103            * Thuban/Model/table.py (Table.write_record, Table.__init__): Open
104            dbf files only for reading by default. Use a new writable dbf
105            object for writing.
106    
107    2002-08-26  Bernhard Herzog  <[email protected]>
108    
109            * Thuban/UI/mainwindow.py: Refactor the context creation:
110            (MainWindow.Context): New method to return a context
111            (MainWindow.invoke_command, MainWindow.update_command_ui): Use the
112            new method
113    
114            * Thuban/UI/tableview.py (TableGrid, LayerTableGrid): Split the
115            layer table specific code from TableGrid into LayerTableGrid
116            (TableFrame, LayerTableFrame): Split the layer table specific code
117            from TableFrame into LayerTableFrame
118            (LayerTableGrid.select_shape): Remove a debug print
119    
120            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Use the
121            LayerTableFrame
122    
123    2002-08-23  Bernhard Herzog  <[email protected]>
124    
125            * Thuban/Model/layer.py (Layer.__init__): Make sure we have an
126            absolute filename.
127    
128    2002-08-22  Bernhard Herzog  <[email protected]>
129    
130            * Thuban/Model/table.py (Table.write_record): New method to write
131            records.
132            (Table.__init__): Open the DBF file for writing too.
133    
134            * Thuban/UI/controls.py (RecordTable.SetValue): Write the value
135            into the underlying table.
136    
137            * extensions/shapelib/shapefil.h (DBFCommit),
138            extensions/shapelib/dbfopen.c (DBFCommit): New API function to
139            commit any changes made to the DBF file.
140    
141            * Thuban/UI/mainwindow.py (make_check_current_tool)
142            (_tool_command): Put the code that generates the "checked"
143            callback into a separate function so that we can reuse it
144            elsewhere
145    
146            * Thuban/Model/save.py (Saver): New class to handle serializing a
147            session into an XML file. The main reason to introduce a class is
148            that applications built on Thuban can derive from it so that they
149            can save additional information in a session file.
150            (save_session): Delegate almost all the work to the Saver class.
151            Rename the filename argument to file because it may be a file like
152            object now.
153    
154            * Thuban/Model/load.py: Get rid of the Python 1.5.2 compatibility
155            code. Remove the little test code which would be executed when the
156            module is run as a script which didn't work anymore since it can't
157            import the other Thuban modules.
158            (ProcessSession, load_session): Refactor the ProcessSession to
159            have one method for each element start and end tag so that derived
160            classes can easily override the processing of individual tags.
161            Also, always parse with namespaces enabled because applications
162            built on top of Thuban will likely use namespaces if they extend
163            the session file format.
164    
165    2002-08-21  Bernhard Herzog  <[email protected]>
166    
167            * setup.py (ThubanInstall.run): Don't repr install_lib_orig
168            because thubaninit_contents will do it for us.
169    
170    2002-08-16      Jan-Oliver Wagner <[email protected]>
171    
172            * Thuban/UI/mainwindow.py: menu item 'show session tree' now disable if
173            tree window already open
174    
175    2002-08-15  Bernhard Herzog  <[email protected]>
176    
177            * Thuban/Model/layer.py (Layer.Destroy): Call the unboundd method
178            with self.
179    
180            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Only release the mouse
181            when we have actually captured it.
182    
183            * Thuban/Model/layer.py (Layer.Destroy): New. Explicitly close the
184            shapefile and destroy the table.
185    
186            * Thuban/Model/table.py (Table.Destroy): New. Close the DBF file.
187    
188    2002-08-14  Bernhard Herzog  <[email protected]>
189    
190            * Thuban/UI/controls.py (RecordTable.__init__): Remove the unused
191            instance variable columns
192            (RecordTable.GetTypeName): row and col may be negative in some
193            cases.
194    
195            * setup.py (InstallLocal.initialize_options)
196            (InstallLocal.finalize_options, InstallLocal.user_options): New
197            option create-init-file to build a thubaninit.py when running
198            install_local
199            (InstallLocal.run): Create the thubaninit.py module when requested
200            (thubaninit_contents): Split the template into several parts and
201            create a new function thubaninit_contents that creates the
202            contents of a thubaninit module.
203            (ThubanInstall.run): Use the new function to create the thubaninit
204            module.
205    
206    2002-07-30  Bernhard Herzog  <[email protected]>
207    
208            * Thuban/UI/application.py (ThubanApplication.OnExit): Do some
209            cleanup.
210            (ThubanApplication.MainLoop): Extend to automatically call OnExit.
211    
212            * Thuban/Model/session.py (Session.Destroy): Don't bypass the
213            direct base class' Destroy method.
214    
215            * Thuban/Model/map.py (Map.ClearLayers): New method to delete all
216            layers.
217            (Map.Destroy): Destroy the label_layer as well and call the
218            inherited Desatroymethod first so that no more messages are
219            issued.
220            (Map.RaiseLayer, Map.LowerLayer): Only issue LAYERS_CHANGED
221            message if the stacking order actually has changed. Add
222            doc-strings.
223            (Map.BoundingBox): Correct the doc-string.
224            (Map.AddLayer, Map.RemoveLayer, Map.Layers, Map.HasLayers)
225            (Map.ProjectedBoundingBox, Map.SetProjection): Add doc-strings.
226    
227            * Thuban/Model/label.py (LabelLayer.ClearLabels): New to delete
228            all labels.
229    
230    2002-07-29  Bernhard Herzog  <[email protected]>
231    
232            * Thuban/Model/map.py (Map.subscribe_layer_channels)
233            (Map.unsubscribe_layer_channels): Put the code that (un)subscribes
234            to a layer's channels into separate methods.
235            (Map.RemoveLayer, Map.AddLayer): Call the new methods
236            (Map.Destroy): Unsubscribe from a layer's channels before
237            destroying it.
238    
239            * Thuban/UI/view.py (MapCanvas.find_shape_at): Change the
240            selected_layer parameter to searched_layer which is the layer to
241            search in.
242            (MapCanvas.SelectShapeAt): New parameter layer to restrict the
243            search to that layer. Return the selected layer and shape.
244    
245            * Examples/simple_extensions/simple_tool.py (simple_tool): Fix a
246            typo
247    
248    2002-07-24  Bernhard Herzog  <[email protected]>
249    
250            * Thuban/UI/application.py (ThubanApplication.create_session):
251            Extend the doc string.
252            (ThubanApplication.subscribe_session)
253            (ThubanApplication.unsubscribe_session): New methods to
254            subscribe/unsubscribe to/from session channels.
255            (ThubanApplication.SetSession): Call the new methods here.
256            (ThubanApplication.maps_changed, ThubanApplication.set_map):
257            Renamed set_map to maps_changed. Its now a subscriber for
258            MAPS_CHANGED.
259    
260            * Thuban/UI/view.py (ZoomOutTool.MouseUp): Use the correct
261            x-coordinate in case of simple clicks
262    
263            * Thuban/Model/base.py (Modifiable.changed): Apply the args tuple,
264            don't pass it as a parameter
265    
266            * Thuban/Model/session.py (Session.RemoveMap): New
267    
268            * Thuban/UI/mainwindow.py (MainWindow.__init__): Turn the initial
269            window size into a parameter.
270    
271    2002-07-23  Bernhard Herzog  <[email protected]>
272    
273            * Thuban/UI/menu.py (Menu.item_index): Also search for menus not
274            just commands.
275    
276            * Thuban/UI/mainwindow.py (MainWindow.__init__): Change the
277            parameter list a bit to allow setting the window title and the
278            initial message in the status bar. Update the callers.
279    
280            * Thuban/UI/application.py (ThubanApplication.OnInit)
281            (ThubanApplication.CreateMainWindow): Put the mainwindow
282            instantiation into a separate method so that it can be overridden
283            by a subclass.
284    
285  2002-07-19  Bernhard Herzog  <[email protected]>  2002-07-19  Bernhard Herzog  <[email protected]>
286    
287            * Thuban/Model/session.py: Issue a CHANGED message every time
288            another changed message is issued to make it easier to get
289            notified of changes.
290            (Session): Update the doc string
291            (Session.forward): Issue changed-events as CHANGED as well.
292            (Session.changed): Overwrite the inherited version to issue
293            CHANGED events as well.
294    
295            * Thuban/UI/tree.py: We can now simply subscribe to the session's
296            CHANGED channel to be informed of changes.
297            (SessionTreeCtrl.session_channels): Not needed any longer.
298            (SessionTreeCtrl.unsubscribe_all, SessionTreeCtrl.session_changed):
299            Only have to (un)subscribe CHANGED
300    
301            * Thuban/Model/map.py (Map.TreeInfo): Deal better with empty maps.
302    
303          * Thuban/UI/main.py, Thuban/UI/__init__.py: Move the work-around          * Thuban/UI/main.py, Thuban/UI/__init__.py: Move the work-around
304          for the wxPython locale bug to __init__.py so that it's          for the wxPython locale bug to __init__.py so that it's
305          automatically executed by anybody using UI code from Thuban.          automatically executed by anybody using UI code from Thuban.

Legend:
Removed from v.230  
changed lines
  Added in v.322

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26