/[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 591 by bh, Wed Apr 2 15:03:30 2003 UTC revision 687 by bh, Wed Apr 16 13:22:45 2003 UTC
# Line 1  Line 1 
1    2003-04-16  Bernhard Herzog  <[email protected]>
2    
3            Safer implementation of the performance enhancements of the
4            low-level renderer:
5            
6            * extensions/thuban/wxproj.cpp (extract_projection)
7            (extract_pointer): Rename extract_projection to extract_pointer
8            and redefine its purpose to return the pointer stored in a CObject
9            returned by the object's cobject method. Update all callers.
10            (s_draw_info, free_draw_info, draw_polygon_init): Implement the
11            handling of these low-level parameters so that each s_draw_info
12            instance is handled as a CObject at python level that also
13            contains real references to the actual python objects which
14            contain the values in the struct. Add free_draw_info as the
15            destructor.
16            (draw_polygon_shape): Add the py_draw_info parameter which must a
17            cobject containing an s_draw_info pointer.
18    
19            * Thuban/UI/renderer.py (MapRenderer.polygon_render_param): New
20            method to instantiat the low-level render parameter
21            (MapRenderer.draw_shape_layer): Use the new method. Remove some
22            commented out code.
23            (MapRenderer.draw_polygon_shape): Make the first parameter not the
24            layer but the low-level render parameter
25            (ScreenRenderer.draw_shape_layer): Use the low-level render
26            parameter.
27    
28    2003-04-15  Jonathan Coles   <[email protected]>
29    
30            * Thuban/Model/classification.py: Implemented __repr__ for
31            the ClassGroup* classes to make debugging a bit easier.
32            (ClassGroup.SetLabel): Check that the string is an instance
33            of StringTypes not StringType. Accounts for Unicode strings.
34    
35            * Thuban/Model/color.py: Implemented __repr__ to make
36            debugging a bit easier.
37    
38            * Thuban/Model/save.py (Saver.write_classification): Need to
39            save the group label.
40    
41            * test/test_load.py (testClassification): New. Loads the
42            iceland_sample_test.thuban file and checks if it was loaded
43            correctly.
44    
45    2003-04-15  Jonathan Coles   <[email protected]>
46    
47            * extensions/thuban/wxproj.cpp (draw_polygon_init): New. Used
48            to improve rendering performance by initializing the variables
49            that are not change each time draw_polygon_shape() is called.
50            The values are stored in a global struct draw_info.
51            (draw_polygon_shape): Removed initialization code that is
52            now in draw_polygon_init().
53    
54            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Make
55            drawing initialization call to draw_polygon_init()
56            (MapRenderer.draw_polygon_shape): Use new signature of
57            draw_polygon_shape.
58    
59            * Thuban/UI/classgen.py (GenUniformPanel): Fix spin control
60            weirdness by setting the range to (1, maxint).
61    
62            * Thuban/Model/classification.py (ClassGroupProperties): Make
63            instance variables private and optimize comparison operator
64            by first checking if the color references are the same.
65            (ClassGroupSingleton): Make instance variables private.
66            (ClassGroupRange): Make instance variables private.
67    
68            * HOWTO-Release: Filled in missing steps for releasing packages.
69    
70    2003-04-15  Bernhard Herzog  <[email protected]>
71    
72            First stab at internationalized messages:
73    
74            * Thuban/__init__.py (_): Implement the translation function for
75            real using the python gettext module.
76    
77            * Thuban/UI/classifier.py (ClassTable.GetRowLabelValue): Don't
78            translate empty strings.
79    
80            * Thuban/UI/application.py (ThubanApplication.read_startup_files):
81            Add a missing space to a warning message
82    
83            * po/README: New. Notes about the management of the translation
84            files.
85    
86            * po/Makefile: New. Makefile to help manage the translation files.
87    
88            * po/es.po: New. Spanish translation by Daniel Calvelo Aros
89    
90            * MANIFEST.in: Include the *.mo files in Resources/Locale and the
91            translations and support files in po/
92    
93            * setup.py (data_files): Add the *.mo files to the data_files too
94    
95            * README: Add note about the translations when building from CVS
96    
97    2003-04-14  Jonathan Coles   <[email protected]>
98    
99            * Thuban/UI/dock.py: Fixes some window resizing problems most
100            noticable under windows. Always assume the button bitmaps will
101            be there. Code clean up.
102            (DockabelWindow.Dock, DockableWindow.UnDock): Force all the
103            images for the dock/undock button to the same images.
104            Work around for RTbug #1801.
105    
106            * Thuban/UI/legend.py (LegendPanel.__init__): The toolbar should
107            be allowed to grow within the sizer. Fixes a bug under Windows
108            where the toolbar wasn't being drawn.
109    
110    2003-04-14  Frank Koormann   <[email protected]>
111    
112            * Resources/Bitmaps/dock_12.xpm, Resources/Bitmaps/undock_12.xpm:
113            Updated design to try to make the button functionality more
114            transparent.
115    
116    2003-04-14  Jonathan Coles   <[email protected]>
117    
118            * Thuban/UI/legend.py (LegendPanel.__init__): Call Create() to
119            finalize the intialization of the panel.
120    
121            * Thuban/UI/dock.py (DockPanel.Create): New. Finalizes the
122            creation of the panel. Should be the last thing called in the
123            initializer of a subclass.
124    
125            * Thuban/UI/classgen.py (ClassGenDialog.__init__): Actively
126            set the current selections in the combo boxes. This is needed
127            under Windows.
128    
129            * Thuban/UI/classifier.py (Classifier.__init__): Add a top
130            level panel to the dialog so that the background colors are
131            consistent under Windows.
132    
133    2003-04-11  Jonathan Coles   <[email protected]>
134    
135            * Thuban/UI/classgen.py: Change color ramps to start at white
136            not black.
137    
138            * Thuban/UI/legend.py: Enable/disable the legend buttons when
139            the legend changes. Fixes RTbug #1793.
140    
141            * test/test_classification.py: Added test for copying of
142            classifications.
143    
144    2003-04-11  Jonathan Coles   <[email protected]>
145    
146            * Thuban/UI/resource.py: New. Centralize the loading of resources
147            such as bitmaps.
148    
149            * Thuban/UI/classgen.py (GenUniquePanel.__init__): Reordered buttons,
150            added images to the move buttons, added 'reverse' button.
151            (CustomRampPanel.__init__): Added images to the move buttons.
152            (GreyRamp): New. Generates a ramp from white to black.
153            (HotToColdRamp): New. Generates a ramp from cold to hot colors.
154    
155            * Thuban/UI/classifier.py: Refactored ID's from ID_CLASSIFY_* to
156            ID_PROPERTY_*.
157            (Classifier.__init__): Minor changes to the layout.
158            (Classifier._OnTitleChanged): Listen for when the user edits the
159            title and update the dialog's title and the layer's title.
160    
161            * Thuban/UI/dock.py: Use new bitmaps for the control buttons.
162    
163            * Thuban/UI/legend.py: Use new bitmaps for the control buttons.
164            (LegendTree._OnMsgLayerTitleChanged): Change the displayed title
165            if the layer's title changes.
166    
167            * Thuban/UI/mainwindow.py: Added new menu item and associated code
168            to open a dialog to rename the map.
169            (MainWindow): Use new resource class to import bitmaps.
170    
171    2003-04-11  Jonathan Coles   <[email protected]>
172    
173            * Resources/Bitmaps/close_12.xpm, Resources/Bitmaps/dock_12.xpm,
174            Resources/Bitmaps/group_use.xpm, Resources/Bitmaps/group_use_all.xpm,
175            Resources/Bitmaps/group_use_none.xpm,
176            Resources/Bitmaps/group_use_not.xpm,
177            Resources/Bitmaps/hide_layer.xpm,
178            Resources/Bitmaps/layer_properties.xpm,
179            Resources/Bitmaps/lower_layer.xpm, Resources/Bitmaps/raise_layer.xpm,
180            Resources/Bitmaps/show_layer.xpm, Resources/Bitmaps/undock_12.xpm:
181            New.
182    
183    2003-04-10  Jonathan Coles   <[email protected]>
184    
185            * Thuban/Model/classification.py: (ClassGroupRange.__init__):
186            Should pass group to ClassGroup constructor.
187    
188    2003-04-10  Jonathan Coles   <[email protected]>
189    
190            * Thuban/Model/classification.py: (ClassGroup): Move all the common
191            methods of the derived classes ([Set|Get]Properties(), __eq__, __ne__)
192            here. Implement SetVisible(), IsVisible().
193            (ClassGroup.__init__): Add group parameter which acts as a copy
194            constructor.
195    
196            * Thuban/UI/classifier.py (ClassTable): Add a new column for the
197            "Visible" check boxes.
198            (Classifier): Rename the buttons and refactor the code to match
199            the new labels.
200    
201            * Thuban/UI/legend.py: Classify button is now called "Properties".
202            Refactored the code to change variable names.
203            (LegendTree.__FillTreeLayer): Only list a group if it is visible.
204    
205            * Thuban/UI/mainwindow.py: MainWindow.OpenClassifier renamed to
206            MainWindow.OpenLayerProperties. MainWindow.LayerEditProperties
207            renamed to MainWindow.LayerEditProperties.
208            (MainWindow.ToggleLegend): Don't include map name in legend title.
209            (MainWindow.SetMap): Added the map name to the window title.
210            (MainWindow.LayerFillColor, MainWindow.LayerTransparentFill,
211            MainWindow.LayerOutlineColor, MainWindow.LayerNoOutline): Removed.
212            Functionality is found in the layer properties dialog.
213    
214            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Only
215            draw visible groups.
216    
217    2003-04-09  Jonathan Coles   <[email protected]>
218    
219            * Thuban/UI/classgen.py: Modifications to allow simple
220            addition and selection of new color schemes.
221            (MonochromaticRamp): New. Generates a ramp between two colors.
222            (RedRamp): New. Generates a ramp of all red.
223            (GreenRamp): New. Generates a ramp of all green.
224            (BlueRamp): New. Generates a ramp of all blue.
225    
226    2003-04-09  Jonathan Coles   <[email protected]>
227    
228            * Thuban/Model/classification.py (Classification.__deepcopy__):
229            Need to copy over field and fieldType attributes.
230    
231            * Thuban/Model/table.py (Table.field_range): New. Retrive the
232            maximum and minimum values over the entire table for a given
233            field.
234            (Table.GetUniqueValues): New. Retrieve all the unique values
235            in the table for a given field.
236    
237            * Thuban/UI/classgen.py: Renamed GenRangePanel to GenUniformPanel.
238            (GenUniquePanel): New. Controls to allow the user to select
239            which unique field values they would like in the classification.
240            (CustomRampPanel): Code that was in ClassGenDialog that allows
241            the user to select the properties for a custom ramp.
242            (ClassGenerator.GenUniformDistribution): Was called GenerateRanges.
243    
244            * Thuban/UI/classifier.py: Removed a lot of debugging code.
245            (Classifier._SetClassification): Callback method so that the
246            class generator can set the classification in the grid.
247            (ClassGroupPropertiesCtrl): New. Encapsulates the drawing and
248            editing of a group properties class into a wxWindows control.
249    
250            * Thuban/UI/dock.py: It was decided that if the user closes
251            a dockable window the window should simply hide itself. That
252            way if the user wants to show the dock again it appears in the
253            same place as it was when it was closed.
254            (DockableWindow.Destroy): Call renamed method OnDockDestroy().
255            (DockableWindow._OnButtonClose): Hide the window instead of
256            destroying it.
257            (DockableWindow._OnClose): Hide the window instead of
258            destroying it.
259    
260            * Thuban/UI/legend.py (LegendTree): Use a private method to
261            consistently set the font and style of the text. Fixes RTbug #1786.
262    
263            * Thuban/UI/mainwindow.py: Import just the Classifier class.
264    
265    2003-04-07  Bernhard Herzog  <[email protected]>
266    
267            * Thuban/UI/mainwindow.py (main_menu): Move the toggle_legend item
268            to the map module
269    
270    2003-04-07  Bernhard Herzog  <[email protected]>
271    
272            * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree): Removed in
273            favor of ToggleSessionTree
274            (MainWindow.ToggleSessionTree): New method to toggle visibility of
275            the session tree.
276            (MainWindow.SessionTreeShown): New method to return whether the
277            session tree is currently shown.
278            (MainWindow.ToggleLegend): New method to toggle visibility of the
279            legend
280            (MainWindow.ShowLegend): Implement in terms of ToggleLegend and
281            LegendShown
282            (MainWindow.LegendShown): New method to return whether the legend
283            is currently shown.
284            (_method_command): Add checked parameter so we can define check
285            menu items
286            (_has_tree_window_shown, _has_legend_shown): Use the appropriate
287            mainwindow methods.
288            (show_session_tree, show_legend commands): Removed.
289            (toggle_session_tree, toggle_legend commands): New commands to
290            toggle the visibility of the dialogs
291    
292    2003-04-07  Jonathan Coles   <[email protected]>
293    
294            * Thuban/UI/classgen.py: Fix Windows problem.
295    
296            * Thuban/UI/dock.py: Fix Windows problem.
297    
298            * Thuban/UI/mainwindow.py: Use False instead of false.
299            (MainWindow.ShowLegend): Remove unnecessary switch parameter.
300    
301    2003-04-07  Jonathan Coles   <[email protected]>
302    
303            Since we now say that the order of the groups in a classification
304            matters, it makes sense to be able to manipulate that order. Most
305            of the changes to Thuban/Model/classification.py are to that end.
306    
307            * Thuban/Model/classification.py (Classification.AppendGroup,
308            Classification.InsertGroup, Classification.ReplaceGroup,
309            Classification.RemoveGroup, Classification.GetGroup): Do as the
310            names imply.
311            (Classification.FindGroup): This was called GetGroup, but GetGroup
312            takes an index, while FindGroup takes a value.
313            (Classification.__deepcopy__): Copy all the groups, BUT NOT THE LAYER
314            REFERENCE. Currently there is a cyclic reference between the layer
315            and its classification. If the classification doesn't need to know
316            its owning layer we can change this, since it may make sense to be
317            able to use the same classification with different layers.
318    
319            * Thuban/Model/load.py: Use Classification.AppendGroup(), not AddGroup()
320    
321            * Thuban/UI/classgen.py: Use Classification.AppendGroup(),
322            not AddGroup()
323    
324            * Thuban/UI/classifier.py: Now that we can depend on the order in
325            a Classification and have methods to manipulate that order we don't
326            need to use our own data structures in the grid. We can simply make
327            the grid/table access the information they need from a copy of
328            the classification object.
329            (Classifier._OnCloseBtn): Event handler for when the user clicks
330            'Close'. This is needed so if the user applies changes and then
331            continues to change the table the user has the option of discarding
332            the most recent changes and keeping what they applied.
333    
334            * Thuban/UI/mainwindow.py: Put "Show Legend" and "Show Session Tree"
335            into the same group.
336    
337            * extensions/thuban/wxproj.cpp (check_version): If Thuban is compiled
338            with a really old version of proj, PJ_VERSION won't even be defined.
339            If it isn't defined then just compile so that the function always
340            returns Py_False.
341    
342            * test/test_classification.py: Fix tests to use the renamed methods.
343            Still need to write tests for the new methods.
344    
345    2003-04-04  Jonathan Coles   <[email protected]>
346    
347            * Thuban/UI/classifier.py (Classifier.__SelectField): Move the
348            call to SetSelection out of the method and before the call
349            to __SelectField in __init__. This prevents a recursion of events
350            when _OnFieldSelect is triggered by the user.
351    
352    2003-04-04  Jonathan Coles   <[email protected]>
353    
354            * Thuban/Model/classification.py: Rename Color.None to
355            Color.Transparent.
356            (ClassGroupProperties.SetLineColori, ClassGroupProperties.SetFill):
357            Don't bother copying the color, since Colors are immutable.
358    
359            * Thuban/Model/color.py, Thuban/Model/layer.py, Thuban/Model/load.py,
360            Thuban/UI/classifier.py, Thuban/UI/mainwindow.py,
361            Thuban/UI/renderer.py, Thuban/UI/view.py:
362            Rename Color.None to Color.Transparent.
363        
364            * test/test_classification.py, test/test_load.py: Rename Color.None
365            to Color.Transparent.
366    
367    2003-04-04  Jonathan Coles   <[email protected]>
368    
369            * Thuban/Model/classification.py: Fix assert calls.
370            (ClassGroupProperties.SetLineColor, ClassGroupProperties.SetFill):
371            Copy the color parameter rather than hold onto a reference.
372    
373            * Thuban/Model/color.py (Color.__copy__, Color.__deepcopy): Copy
374            the color object.
375            (NoColor.__copy__, NoColor.__deepcopy): Return 'self' so that we
376            are sure there exists only one refernce to Color.None in the system.
377            This allows us to use 'is' rather than the comparision functions.
378            
379            * Thuban/Model/save.py: Fix assert calls.
380            
381            * Thuban/UI/classifier.py: Fix assert calls.
382            (ClassGrid._OnCellDClick): Call up to the classifier to open the
383            dialog to edit the groups properties.
384            (ClassGrid._OnCellResize): Make sure that the scollbars are drawn
385            correctly if a cell is resized.
386            (ClassTable.SetClassification): New. Changes the classification
387            that is in the table.
388            (ClassTable.__SetRow): Allow groups to be prepended.
389            (Classifier): New code for opening the EditProperties and
390            GenerateRanges dialogs.
391            (SelectPropertiesDialog.__GetColor): Only set the color in the
392            color dialog if the current color is not None.
393            
394            * Thuban/UI/dock.py: Fix assert calls.
395            
396            * Thuban/UI/legend.py: Fix assert calls.
397            
398            * Thuban/UI/renderer.py: Fix assert calls.
399            
400            * Thuban/UI/classgen.py (ClassGenDialog): Dialog for generating
401            classifications.
402            (GenRangePanel): Panel specific to range generation.
403            (GenSingletonPanel): Panel specific to singleton generation.
404            (ClassGenerator): Class responsible for actually generating
405            the classification from the data gathered in the dialog box.
406            (PropertyRamp): Generates properties whose values range from
407            a starting property to an ending property.
408    
409    2003-04-03  Bernhard Herzog  <[email protected]>
410    
411            * test/support.py (print_garbage_information): New function that
412            prints information about still connected messages and memory
413            leaks.
414            (run_suite): Removed.
415            (run_tests): New function for use as a replacement of
416            unittest.main in the test_* files. This one calls
417            print_garbage_information at the end.
418    
419            * test/runtests.py (main): Use support.print_garbage_information
420    
421            * test/test_layer.py: Use support.run_tests instead of
422            unittest.main so we get memory leak information
423            (TestLayer.test_arc_layer, TestLayer.test_polygon_layer)
424            (TestLayer.test_point_layer, TestLayer.test_empty_layer)
425            (TestLayerLegend.test_visibility): Call the layer's Destroy method
426            to fix a memory leak.
427    
428            * test/test_classification.py: Use support.run_tests instead of
429            unittest.main so we get memory leak information
430            (TestClassification.test_classification): Call the layer's Destroy
431            method to fix a memory leak.
432    
433  2003-04-02  Bernhard Herzog  <[email protected]>  2003-04-02  Bernhard Herzog  <[email protected]>
434    
435            * extensions/thuban/wxproj.cpp (check_version, check_version_gtk):
436            Handle the reference counts of the return value and errors in
437            PyArg_ParseTuple correctly.
438    
439            * Thuban/UI/application.py (ThubanApplication.OpenSession): Make
440            sure the filename is absolute to avoid problems when saving the
441            session again
442    
443          * Thuban/Model/table.py: Remove unnecessary import. Fix a typo.          * Thuban/Model/table.py: Remove unnecessary import. Fix a typo.
444    
445  2003-04-01  Jonathan Coles   <[email protected]>  2003-04-01  Jonathan Coles   <[email protected]>

Legend:
Removed from v.591  
changed lines
  Added in v.687

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26