/[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 205 by bh, Tue Jul 9 14:02:40 2002 UTC revision 291 by bh, Thu Aug 29 14:11:38 2002 UTC
# Line 1  Line 1 
1    2002-08-29  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Handle
4            arcs with multiple parts.
5    
6            * Thuban/UI/view.py (ZoomInTool.MouseUp, ZoomOutTool.MouseUp):
7            Handle degenrate rectangles.
8    
9            * Thuban/Model/table.py: Make writing records work correctly:
10            (Table.__init__): Keep track of whether the DBF is open for
11            writing
12            (Table.write_record): Open the DBF file for writing when necessary
13    
14    2002-08-27  Bernhard Herzog  <[email protected]>
15    
16            * Thuban/Model/table.py (Table.write_record, Table.__init__): Open
17            dbf files only for reading by default. Use a new writable dbf
18            object for writing.
19    
20    2002-08-26  Bernhard Herzog  <[email protected]>
21    
22            * Thuban/UI/mainwindow.py: Refactor the context creation:
23            (MainWindow.Context): New method to return a context
24            (MainWindow.invoke_command, MainWindow.update_command_ui): Use the
25            new method
26    
27            * Thuban/UI/tableview.py (TableGrid, LayerTableGrid): Split the
28            layer table specific code from TableGrid into LayerTableGrid
29            (TableFrame, LayerTableFrame): Split the layer table specific code
30            from TableFrame into LayerTableFrame
31            (LayerTableGrid.select_shape): Remove a debug print
32    
33            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Use the
34            LayerTableFrame
35    
36    2002-08-23  Bernhard Herzog  <[email protected]>
37    
38            * Thuban/Model/layer.py (Layer.__init__): Make sure we have an
39            absolute filename.
40    
41    2002-08-22  Bernhard Herzog  <[email protected]>
42    
43            * Thuban/Model/table.py (Table.write_record): New method to write
44            records.
45            (Table.__init__): Open the DBF file for writing too.
46    
47            * Thuban/UI/controls.py (RecordTable.SetValue): Write the value
48            into the underlying table.
49    
50            * extensions/shapelib/shapefil.h (DBFCommit),
51            extensions/shapelib/dbfopen.c (DBFCommit): New API function to
52            commit any changes made to the DBF file.
53    
54            * Thuban/UI/mainwindow.py (make_check_current_tool)
55            (_tool_command): Put the code that generates the "checked"
56            callback into a separate function so that we can reuse it
57            elsewhere
58    
59            * Thuban/Model/save.py (Saver): New class to handle serializing a
60            session into an XML file. The main reason to introduce a class is
61            that applications built on Thuban can derive from it so that they
62            can save additional information in a session file.
63            (save_session): Delegate almost all the work to the Saver class.
64            Rename the filename argument to file because it may be a file like
65            object now.
66    
67            * Thuban/Model/load.py: Get rid of the Python 1.5.2 compatibility
68            code. Remove the little test code which would be executed when the
69            module is run as a script which didn't work anymore since it can't
70            import the other Thuban modules.
71            (ProcessSession, load_session): Refactor the ProcessSession to
72            have one method for each element start and end tag so that derived
73            classes can easily override the processing of individual tags.
74            Also, always parse with namespaces enabled because applications
75            built on top of Thuban will likely use namespaces if they extend
76            the session file format.
77    
78    2002-08-21  Bernhard Herzog  <[email protected]>
79    
80            * setup.py (ThubanInstall.run): Don't repr install_lib_orig
81            because thubaninit_contents will do it for us.
82    
83    2002-08-16      Jan-Oliver Wagner <[email protected]>
84    
85            * Thuban/UI/mainwindow.py: menu item 'show session tree' now disable if
86            tree window already open
87    
88    2002-08-15  Bernhard Herzog  <[email protected]>
89    
90            * Thuban/Model/layer.py (Layer.Destroy): Call the unboundd method
91            with self.
92    
93            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Only release the mouse
94            when we have actually captured it.
95    
96            * Thuban/Model/layer.py (Layer.Destroy): New. Explicitly close the
97            shapefile and destroy the table.
98    
99            * Thuban/Model/table.py (Table.Destroy): New. Close the DBF file.
100    
101    2002-08-14  Bernhard Herzog  <[email protected]>
102    
103            * Thuban/UI/controls.py (RecordTable.__init__): Remove the unused
104            instance variable columns
105            (RecordTable.GetTypeName): row and col may be negative in some
106            cases.
107    
108            * setup.py (InstallLocal.initialize_options)
109            (InstallLocal.finalize_options, InstallLocal.user_options): New
110            option create-init-file to build a thubaninit.py when running
111            install_local
112            (InstallLocal.run): Create the thubaninit.py module when requested
113            (thubaninit_contents): Split the template into several parts and
114            create a new function thubaninit_contents that creates the
115            contents of a thubaninit module.
116            (ThubanInstall.run): Use the new function to create the thubaninit
117            module.
118    
119    2002-07-30  Bernhard Herzog  <[email protected]>
120    
121            * Thuban/UI/application.py (ThubanApplication.OnExit): Do some
122            cleanup.
123            (ThubanApplication.MainLoop): Extend to automatically call OnExit.
124    
125            * Thuban/Model/session.py (Session.Destroy): Don't bypass the
126            direct base class' Destroy method.
127    
128            * Thuban/Model/map.py (Map.ClearLayers): New method to delete all
129            layers.
130            (Map.Destroy): Destroy the label_layer as well and call the
131            inherited Desatroymethod first so that no more messages are
132            issued.
133            (Map.RaiseLayer, Map.LowerLayer): Only issue LAYERS_CHANGED
134            message if the stacking order actually has changed. Add
135            doc-strings.
136            (Map.BoundingBox): Correct the doc-string.
137            (Map.AddLayer, Map.RemoveLayer, Map.Layers, Map.HasLayers)
138            (Map.ProjectedBoundingBox, Map.SetProjection): Add doc-strings.
139    
140            * Thuban/Model/label.py (LabelLayer.ClearLabels): New to delete
141            all labels.
142    
143    2002-07-29  Bernhard Herzog  <[email protected]>
144    
145            * Thuban/Model/map.py (Map.subscribe_layer_channels)
146            (Map.unsubscribe_layer_channels): Put the code that (un)subscribes
147            to a layer's channels into separate methods.
148            (Map.RemoveLayer, Map.AddLayer): Call the new methods
149            (Map.Destroy): Unsubscribe from a layer's channels before
150            destroying it.
151    
152            * Thuban/UI/view.py (MapCanvas.find_shape_at): Change the
153            selected_layer parameter to searched_layer which is the layer to
154            search in.
155            (MapCanvas.SelectShapeAt): New parameter layer to restrict the
156            search to that layer. Return the selected layer and shape.
157    
158            * Examples/simple_extensions/simple_tool.py (simple_tool): Fix a
159            typo
160    
161    2002-07-24  Bernhard Herzog  <[email protected]>
162    
163            * Thuban/UI/application.py (ThubanApplication.create_session):
164            Extend the doc string.
165            (ThubanApplication.subscribe_session)
166            (ThubanApplication.unsubscribe_session): New methods to
167            subscribe/unsubscribe to/from session channels.
168            (ThubanApplication.SetSession): Call the new methods here.
169            (ThubanApplication.maps_changed, ThubanApplication.set_map):
170            Renamed set_map to maps_changed. Its now a subscriber for
171            MAPS_CHANGED.
172    
173            * Thuban/UI/view.py (ZoomOutTool.MouseUp): Use the correct
174            x-coordinate in case of simple clicks
175    
176            * Thuban/Model/base.py (Modifiable.changed): Apply the args tuple,
177            don't pass it as a parameter
178    
179            * Thuban/Model/session.py (Session.RemoveMap): New
180    
181            * Thuban/UI/mainwindow.py (MainWindow.__init__): Turn the initial
182            window size into a parameter.
183    
184    2002-07-23  Bernhard Herzog  <[email protected]>
185    
186            * Thuban/UI/menu.py (Menu.item_index): Also search for menus not
187            just commands.
188    
189            * Thuban/UI/mainwindow.py (MainWindow.__init__): Change the
190            parameter list a bit to allow setting the window title and the
191            initial message in the status bar. Update the callers.
192    
193            * Thuban/UI/application.py (ThubanApplication.OnInit)
194            (ThubanApplication.CreateMainWindow): Put the mainwindow
195            instantiation into a separate method so that it can be overridden
196            by a subclass.
197    
198    2002-07-19  Bernhard Herzog  <[email protected]>
199    
200            * Thuban/Model/session.py: Issue a CHANGED message every time
201            another changed message is issued to make it easier to get
202            notified of changes.
203            (Session): Update the doc string
204            (Session.forward): Issue changed-events as CHANGED as well.
205            (Session.changed): Overwrite the inherited version to issue
206            CHANGED events as well.
207    
208            * Thuban/UI/tree.py: We can now simply subscribe to the session's
209            CHANGED channel to be informed of changes.
210            (SessionTreeCtrl.session_channels): Not needed any longer.
211            (SessionTreeCtrl.unsubscribe_all, SessionTreeCtrl.session_changed):
212            Only have to (un)subscribe CHANGED
213    
214            * Thuban/Model/map.py (Map.TreeInfo): Deal better with empty maps.
215    
216            * Thuban/UI/main.py, Thuban/UI/__init__.py: Move the work-around
217            for the wxPython locale bug to __init__.py so that it's
218            automatically executed by anybody using UI code from Thuban.
219    
220    2002-07-18  Bernhard Herzog  <[email protected]>
221    
222            * Thuban/UI/main.py (main): app no longer needs to be global
223    
224            * Thuban/UI/mainwindow.py (MainWindow.__init__): Add application
225            as parameter and store it in an instance variable
226            (MainWindow.invoke_command, MainWindow.update_command_ui)
227            (MainWindow.save_modified_session, MainWindow.NewSession)
228            (MainWindow.OpenSession, MainWindow.SaveSession)
229            (MainWindow.SaveSessionAs, MainWindow.ShowSessionTree): Use self's
230            application object.
231    
232            * Thuban/UI/application.py (ThubanApplication.OnInit): Instantiate
233            the main window with self.
234    
235            * Thuban/UI/context.py: New module with the context class
236    
237            * Thuban/UI/command.py (Command): Update doc string.
238    
239            * Thuban/UI/mainwindow.py (MainWindow.invoke_command,
240            MainWindow.update_command_ui): Pass an instance of the context
241            class to the command's methods
242            (check_current_tool, call_method): Handle the new context
243            implementation
244    
245            * Examples/simple_extensions/simple_tool.py (simple_tool,
246            check_simple_tool): Handle the new context implementation
247    
248            * Examples/simple_extensions/simple_command.py (simple_command):
249            Handle the new context implementation. Update the comments about
250            the context.
251    
252            * Thuban/UI/application.py (ThubanApplication.SetSession): Add
253            doc-string
254            (ThubanApplication.Session): New method to return the session
255            object
256    
257            * Thuban/UI/tree.py (SessionTreeCtrl.update_tree): The
258            interactor's selected_layer may not be a layer of the current
259            session when the tree is updated while a new session is being set.
260    
261    2002-07-17  Bernhard Herzog  <[email protected]>
262    
263            * Thuban/UI/tree.py (color_string): Removed. No longer used.
264            (SessionTreeCtrl.update_tree, SessionTreeCtrl.add_items): Split
265            update_tree into update_tree and add_items. The tree now uses a
266            more generic way to display the contents of the tree.
267            (SessionTreeCtrl): Add a doc string explaining the TreeInfo method
268    
269            * Thuban/Model/layer.py (Layer.TreeInfo),
270            Thuban/Model/extension.py (Extension.TreeInfo),
271            Thuban/Model/map.py (Map.TreeInfo),
272            Thuban/Model/session.py (Session.TreeInfo):
273            Add TreeInfo methods to implement the new tree view update scheme
274    
275    2002-07-16  Bernhard Herzog  <[email protected]>
276    
277            * Thuban/UI/application.py: Don't use "import from" for the
278            MainWindow. It can't always be resolved.
279            (ThubanApplication.OnInit): change reference to MainWindow
280            accordingly.
281    
282            * Thuban/UI/menu.py (Menu.SetItems): New method to replace a menu
283            completely
284    
285    2002-07-10  Bernhard Herzog  <[email protected]>
286    
287            * setup.py (create_init_module): New configurable variable whose
288            default depends on the platform we're running on.
289            (ThubanInstall.initialize_options): Initialize
290            self.create_init_module from the global create_init_module
291            (ThubanInstall.user_options): indictate that the options
292            create-init-module and init-module-dir have arguments.
293    
294            * setup.py: In the setup call change the version number to include
295            cvs.
296    
297            * MANIFEST.in: Add the files in Examples
298    
299  2002-07-09  Bernhard Herzog  <[email protected]>  2002-07-09  Bernhard Herzog  <[email protected]>
300    
301            * setup.py: In the setup call, use the thuban homepage as the
302            value of the url parameter.
303    
304            * Examples: New subdirectory for examples.
305    
306            * Examples/simple_extensions/simple_tool.xpm,
307            Examples/simple_extensions/simple_tool.py,
308            Examples/simple_extensions/simple_command.py,
309            Examples/simple_extensions/README: Simple examples showing how to
310            add new commands and tools.
311    
312            * setup.cfg (bdist_rpm): Add the default value for prefix and tell
313            bdist_rpm that we also have an install script.
314            (bdist_inno): Add 2002 to the copyright notice.
315    
316          * setup.py: Create a file in python's site-packages directory to          * setup.py: Create a file in python's site-packages directory to
317          make installation of Thuban as a library easier.          make installation of Thuban as a library easier.
318          (ThubanInstall.user_options): Add two new options,          (ThubanInstall.user_options): Add two new options,

Legend:
Removed from v.205  
changed lines
  Added in v.291

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26