/[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 265 by jan, Fri Aug 16 17:07:36 2002 UTC revision 402 by bh, Tue Feb 11 15:19:47 2003 UTC
# Line 1  Line 1 
1    2003-02-11  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/UI/application.py (ThubanApplication.splash_screen): New
4            method to create a splash screen.
5            (ThubanApplication.ShowMainWindow): New. Show the main window.
6            Needed so the splash screen can display the mainwindow
7            (ThubanApplication.OnInit): Call the
8            new splash_screen method to determine whether the application
9            should display a splash screen. If it displays a splash screen do
10            not immediately show the main window.
11    
12    2003-02-11  Jonathan Coles  <[email protected]>
13    
14            * Thuban/Model/classification.py: Added import line to fix
15            feature conflicts between running on python2.2 and python2.1.
16    
17            * Thuban/UI/classifier.py (ClassTable): Didn't need to hang
18            onto the clinfo parameter, so removed the deepcopy().
19    
20    2003-02-10  Jonathan Coles  <[email protected]>
21    
22            * Thuban/Model/save.py (Saver.open_element, Saver.close_element):
23            Added element_open variable to track opening and closing of tags
24            so that tags that don't span more than one line are closed with
25            /> instead of </tag_name>. Use the GetDefault*() methods of
26            the Classification class.
27    
28            * Thuban/Model/classification.py (Classificaton): Added set and
29            get methods for the default data. The class also takes a layer
30            reference so that modification messages can be sent. Fixed the
31            methods to use the new ClassData class.
32            (ClassData): New class to encapsulate the classification data
33    
34            * Thuban/Model/layer.py (Layer): Remove the
35            Set[Fill|Stroke|StrokeWidth]() methods. Code should call the
36            SetDefault*() methods on the layer's classification object.
37            (Layer.__init__): Use the new SetDefault*() methods in the
38            Classification class.
39    
40            * Thuban/Model/load.py (ProcessSession): Use the new ClassData
41            object instead of a dictionary.
42    
43            * Thuban/UI/classifier.py (ClassRenderer): New class to
44            draw the classifications in the dialog box's table.
45            (Classifier): Modified to use the ClassRenderer class.
46    
47            * Thuban/UI/mainwindow.py (MainWindow): Use the SetDefault*()
48            methods of the Classification class.    
49    
50            * Thuban/UI/renderer.py (MapRenderer): Use the Get*() methods
51            of the ClassData class.
52    
53            * test/test_classification.py, test/test_layer.py,
54            test/test_map.py, test/test_session.py: Fix the tests to work
55            with the above code changes.
56    
57    2003-02-03  Jonathan Coles  <[email protected]>
58    
59            * Thuban/Model/classification.py (Classification): Added getNull()
60            to return the NullData reference
61    
62            * Thuban/Model/layer.py (Layer.SetFill, Layer.SetStroke,
63            Layer.SetStrokeWidth): Modified these functions to change the
64            null data in the classification rather than keep these values
65            directly in the Layer class. Menu options to change these values
66            work again.
67    
68    2003-01-28  Jonathan Coles  <[email protected]>
69    
70            * Thuban/UI/classifier.py (Classifier): Resolved merging conflicts.
71            Fixed crashing problem on some systems. Dialog box shows
72            classification data.
73    
74            * Thuban/UI/tree.py (SessionTreeCtrl.add_items): Handle drawing
75            Colors in the tree view.
76    
77            * Thuban/Model/layer.py (Layer.TreeInfo): Added a call to build
78            the tree info for classifications. Commented out unnecessary lines.
79    
80            * Thuban/Model/classification.py (Classification.TreeInfo): New
81            function to add information about the classification into the
82            tree view.
83    
84    2003-01-27      Jan-Oliver Wagner <[email protected]>
85    
86            * Thuban/__init__.py (_): New.
87    
88            * Thuban/Model/classification.py, Thuban/Model/extension.py,
89            Thuban/Model/layer.py, Thuban/Model/load.py, Thuban/Model/map.py,
90            Thuban/Model/session.py, Thuban/UI/application.py, Thuban/UI/classifier.py,
91            Thuban/UI/context.py, Thuban/UI/controls.py, Thuban/UI/identifyview.py,
92            Thuban/UI/labeldialog.py, Thuban/UI/mainwindow.py, Thuban/UI/menu.py,
93            Thuban/UI/proj4dialog.py, Thuban/UI/renderer.py, Thuban/UI/tree.py,
94            Thuban/Lib/connector.py, Thuban/Lib/fileutil.py:
95            Replace user string by _() for i18n.
96    
97    2003-01-27  Jonathan Coles  <[email protected]>
98    
99      * Thuban/Model/layer.py: Classification initialization calls.
100    
101      * Thuban/Model/classification.py: Created class to encapsulate
102      a layer classification. Supports specific data points and
103      ranges.
104    
105      * Thuban/Model/load.py: Added support for loading classification
106      information.
107    
108      * Thuban/Model/save.py: Added support for saving classification
109      information.
110    
111      * Thuban/UI/classifier.py: Initial class for a dialog box for
112      specifying classification information.
113    
114      * Thuban/UI/mainwindows.py: Support for opening the classifier
115      dialog.
116    
117      * Thuban/UI/renderer.py: Support for drawing a layer with the
118      classification information.
119    
120      * Data/iceland_sample_class.thuban: iceland_sample with
121      classification data.
122    
123      * test/test_classification: Tests for the Classification class.
124    
125    2002-12-09  Bernhard Herzog  <[email protected]>
126    
127            * test/test_command.py: New. Tests for the command classes.
128    
129            * Thuban/UI/command.py (ToolCommand): New class for tool commands.
130            (Command.IsTool): New method to distinguish between command
131            switching tools and other commands.
132    
133            * Thuban/UI/view.py (MapCanvas.SelectTool): New method to select
134            the tool to avoid direct assignments to instance variables
135            (MapCanvas.ZoomInTool, MapCanvas.ZoomOutTool, MapCanvas.PanTool)
136            (MapCanvas.IdentifyTool, MapCanvas.LabelTool): Use SelectTool to
137            change the tool
138    
139            * Thuban/UI/mainwindow.py (MainWindow.update_command_ui): If an
140            active tool's command turns insensitive, disable the tool.
141            (_tool_command): Use the new ToolCommand class
142    
143            * Examples/simple_extensions/simple_tool.py (simple_tool): Use the
144            SelectTool method to change the tool
145            (iconfile): Use the ToolCommand class
146    
147    2002-12-03  Bernhard Herzog  <[email protected]>
148    
149            * Thuban/UI/tree.py (SessionTreeCtrl.normalize_selection): Handle
150            the case of selected items that are not children of Layers or Maps
151            properly. Previously this bug would trigger an assertion in
152            wxWindows.
153    
154    2002-11-06  Frank Koormann  <[email protected]>
155    
156            * Thuban/UI/mainwindow.py: Altered the order of tools in the
157            toolbar: First now are all navigation tools (Zoom In/Out, Pan,
158            Full Extent).
159        
160    2002-10-23  Bernhard Herzog  <[email protected]>
161    
162            * setup.py (setup call): version now 0.1.3
163    
164            * MANIFEST.in: Add the files in test/
165    
166            * test/README: Add note about tests requiring the iceland data
167    
168            * Thuban/UI/mainwindow.py (MainWindow.About): Add 2002 to
169            copyright notice.
170    
171    2002-10-18  Bernhard Herzog  <[email protected]>
172    
173            * test/test_map.py
174            (TestMapWithContents.test_projected_bounding_box): Use an explicit
175            epsilon.
176    
177            * test/support.py (FloatComparisonMixin.assertFloatEqual)
178            (FloatComparisonMixin.assertFloatSeqEqual): give a more useful
179            message if the assertion fails and don't return the return value
180            of self.assert_. In assertFloatSeqEqual the return meant that not
181            all items of the sequence were compared.
182    
183    2002-09-20  Bernhard Herzog  <[email protected]>
184    
185            * test/test_fileutil.py: New. Test cases for Thuban.Lib.fileutil
186    
187            * Thuban/Lib/fileutil.py: Fixup some whitespace and typos
188    
189            * test/test_map.py (TestMapWithContents.test_tree_info): Create
190            the string with the bounding box on the fly because of platform
191            differences in the way %g is handled.
192    
193            * test/test_layer.py (TestLayer.test_empty_layer): Create an empty
194            DBFfile too because Thuban layers can't yet cope missing DBF
195            files.
196    
197    2002-09-20  Bernhard Herzog  <[email protected]>
198    
199            * test/test_menu.py: Use initthuban instead of
200            add_thuban_dir_to_path to initialize Thuban.
201    
202            * test/support.py (FloatComparisonMixin.assertFloatEqual): New.
203            Mixin class for float comparisons
204            (SubscriberMixin): New. Mixin class to test messages sent through
205            the Connector class
206    
207            * test/README: Fix a typo and add the -v flag to the command for
208            individual tests
209    
210            * test/test_session.py: New. Test cases for Thuban.Model.session
211    
212            * test/test_proj.py: New. Test cases for Thuban.Model.proj
213    
214            * test/test_map.py: New. Test cases for Thuban.Model.map
215    
216            * test/test_layer.py: New. Test cases for Thuban.Model.layer
217    
218            * test/test_label.py: New. Test cases for Thuban.Model.label
219    
220            * test/test_connector.py: New. Test cases for Thuban.Lib.connector
221    
222            * test/test_color.py: New. Test cases for Thuban.Model.color
223    
224            * test/test_base.py: New. Test cases for Thuban.Model.base
225    
226    2002-09-13  Bernhard Herzog  <[email protected]>
227    
228            * Thuban/Model/session.py (Session.forwarded_channels): Forward
229            the CHANGED channel too.
230    
231            * Thuban/Model/map.py (Map.forwarded_channels): Forward the
232            CHANGED channel too.
233            (Map.__init__): Call the Modifiable constructor as well.
234    
235            * Thuban/Model/base.py (Modifiable.UnsetModified): Issue a CHANGED
236            event if the modified flag changes.
237            (Modifiable.changed): Tweak the doc-string.
238    
239            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed)
240            (MainWindow.set_position_text): Put the code that puts the text
241            with the mouse position into the status bar into the new method
242            set_position_text so that it can overwritten in derived classes.
243    
244    2002-09-12  Bernhard Herzog  <[email protected]>
245    
246            * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): Center the
247            message box on the main window.
248    
249    2002-09-11  Bernhard Herzog  <[email protected]>
250    
251            * Thuban/UI/mainwindow.py: Underline the 'x' in "Exit" instead of
252            the 'E' because it's less likely to interfere with other menu
253            entries.
254            (MainWindow.build_menu): remove an incorrect comment.
255    
256    2002-09-10  Bernhard Herzog  <[email protected]>
257    
258            * Thuban/UI/mainwindow.py (MainWindow.Map): New.
259            (_tool_command): Add sensitive parameter
260            (_has_visible_map): Sensitivity callback to tools and other
261            commands that require a visible map. Use it in map_zoom_in_tool,
262            map_zoom_out_tool, map_pan_tool, map_identify_tool, map_label_tool
263            and map_full_extent
264    
265    2002-09-06  Bernhard Herzog  <[email protected]>
266    
267            * Thuban/UI/mainwindow.py (MainWindow.OnClose): Unsubscribe
268            VIEW_POSITION
269    
270    2002-09-04  Frank Koormann   <[email protected]>
271    
272            * Resources/Bitmaps/fullextent.xpm: Updated Icon (removed "potatoe")
273    
274    2002-09-02  Bernhard Herzog  <[email protected]>
275    
276            * Thuban/UI/view.py: Get rid of the idle redraw. This is done by
277            wxWindows already and our implementation doesn't work correctly
278            with wxGTK 2.3:
279            (MapCanvas.__init__): Remove the instance variable
280            (MapCanvas.OnPaint): Always call do_redraw when there's a map to
281            be drawin
282            (MapCanvas.OnIdle): Removed.
283    
284            * Thuban/UI/view.py (MapCanvas.unprojected_rect_around_point): Add
285            a parameter to determine the size of the rectangle.
286            (MapCanvas.find_shape_at): Create the box around the point on a
287            layer by layer basis and make the size depend on the shape type.
288            This solves a problem with the selection of point shapes at the
289            border of the layer's bounding box
290    
291    2002-08-30  Bernhard Herzog  <[email protected]>
292    
293            * Thuban/UI/mainwindow.py (MainWindow.CanRemoveLayer): New method
294            for the sensitivity  of remove layer.
295            (_can_remove_layer): New. Sensitivity callback for remove layer
296            (Command layer_remove): Use _can_remove_layer
297    
298            * Thuban/Model/map.py (Map.CanRemoveLayer): New method to
299            determine whether a given layer can be deleted.
300    
301            * Thuban/UI/view.py (MapCanvas.__init__, MapCanvas.OnPaint)
302            (MapCanvas.do_redraw): Get rid of the unused update_region
303            instance variable
304    
305            * Thuban/UI/view.py: Add/update some doc-strings.
306    
307            * test/: new subdirectory with a bunch of unit tests.
308    
309            * test/README, test/test_table.py, test/test_save.py,
310            test/test_menu.py, test/test_load.py: Initial set of tests and
311            brief instructions on how to run them
312    
313    2002-08-29  Bernhard Herzog  <[email protected]>
314    
315            * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Handle
316            arcs with multiple parts.
317    
318            * Thuban/UI/view.py (ZoomInTool.MouseUp, ZoomOutTool.MouseUp):
319            Handle degenrate rectangles.
320    
321            * Thuban/Model/table.py: Make writing records work correctly:
322            (Table.__init__): Keep track of whether the DBF is open for
323            writing
324            (Table.write_record): Open the DBF file for writing when necessary
325    
326    2002-08-27  Bernhard Herzog  <[email protected]>
327    
328            * Thuban/Model/table.py (Table.write_record, Table.__init__): Open
329            dbf files only for reading by default. Use a new writable dbf
330            object for writing.
331    
332    2002-08-26  Bernhard Herzog  <[email protected]>
333    
334            * Thuban/UI/mainwindow.py: Refactor the context creation:
335            (MainWindow.Context): New method to return a context
336            (MainWindow.invoke_command, MainWindow.update_command_ui): Use the
337            new method
338    
339            * Thuban/UI/tableview.py (TableGrid, LayerTableGrid): Split the
340            layer table specific code from TableGrid into LayerTableGrid
341            (TableFrame, LayerTableFrame): Split the layer table specific code
342            from TableFrame into LayerTableFrame
343            (LayerTableGrid.select_shape): Remove a debug print
344    
345            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Use the
346            LayerTableFrame
347    
348    2002-08-23  Bernhard Herzog  <[email protected]>
349    
350            * Thuban/Model/layer.py (Layer.__init__): Make sure we have an
351            absolute filename.
352    
353    2002-08-22  Bernhard Herzog  <[email protected]>
354    
355            * Thuban/Model/table.py (Table.write_record): New method to write
356            records.
357            (Table.__init__): Open the DBF file for writing too.
358    
359            * Thuban/UI/controls.py (RecordTable.SetValue): Write the value
360            into the underlying table.
361    
362            * extensions/shapelib/shapefil.h (DBFCommit),
363            extensions/shapelib/dbfopen.c (DBFCommit): New API function to
364            commit any changes made to the DBF file.
365    
366            * Thuban/UI/mainwindow.py (make_check_current_tool)
367            (_tool_command): Put the code that generates the "checked"
368            callback into a separate function so that we can reuse it
369            elsewhere
370    
371            * Thuban/Model/save.py (Saver): New class to handle serializing a
372            session into an XML file. The main reason to introduce a class is
373            that applications built on Thuban can derive from it so that they
374            can save additional information in a session file.
375            (save_session): Delegate almost all the work to the Saver class.
376            Rename the filename argument to file because it may be a file like
377            object now.
378    
379            * Thuban/Model/load.py: Get rid of the Python 1.5.2 compatibility
380            code. Remove the little test code which would be executed when the
381            module is run as a script which didn't work anymore since it can't
382            import the other Thuban modules.
383            (ProcessSession, load_session): Refactor the ProcessSession to
384            have one method for each element start and end tag so that derived
385            classes can easily override the processing of individual tags.
386            Also, always parse with namespaces enabled because applications
387            built on top of Thuban will likely use namespaces if they extend
388            the session file format.
389    
390    2002-08-21  Bernhard Herzog  <[email protected]>
391    
392            * setup.py (ThubanInstall.run): Don't repr install_lib_orig
393            because thubaninit_contents will do it for us.
394    
395  2002-08-16      Jan-Oliver Wagner <[email protected]>  2002-08-16      Jan-Oliver Wagner <[email protected]>
396    
397          * Thuban/UI/mainwindow.py: menu item 'show session tree' now disable if          * Thuban/UI/mainwindow.py: menu item 'show session tree' now disable if

Legend:
Removed from v.265  
changed lines
  Added in v.402

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26