/[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 247 by bh, Mon Jul 29 13:38:13 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]>  2002-07-29  Bernhard Herzog  <[email protected]>
379    
380          * Thuban/Model/map.py (Map.subscribe_layer_channels)          * Thuban/Model/map.py (Map.subscribe_layer_channels)

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26