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

Legend:
Removed from v.190  
changed lines
  Added in v.285

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26