/[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 541 by jonathan, Wed Mar 19 16:03:12 2003 UTC revision 619 by jonathan, Mon Apr 7 10:14:03 2003 UTC
# Line 1  Line 1 
1    2003-04-07  Jonathan Coles   <[email protected]>
2    
3            * Thuban/UI/classgen.py: Fix Windows problem.
4    
5            * Thuban/UI/dock.py: Fix Windows problem.
6    
7            * Thuban/UI/mainwindow.py: Use False instead of false.
8            (MainWindow.ShowLegend): Remove unnecessary switch parameter.
9    
10    2003-04-07  Jonathan Coles   <[email protected]>
11    
12            Since we now say that the order of the groups in a classification
13            matters, it makes sense to be able to manipulate that order. Most
14            of the changes to Thuban/Model/classification.py are to that end.
15    
16            * Thuban/Model/classification.py (Classification.AppendGroup,
17            Classification.InsertGroup, Classification.ReplaceGroup,
18            Classification.RemoveGroup, Classification.GetGroup): Do as the
19            names imply.
20            (Classification.FindGroup): This was called GetGroup, but GetGroup
21            takes an index, while FindGroup takes a value.
22            (Classification.__deepcopy__): Copy all the groups, BUT NOT THE LAYER
23            REFERENCE. Currently there is a cyclic reference between the layer
24            and its classification. If the classification doesn't need to know
25            its owning layer we can change this, since it may make sense to be
26            able to use the same classification with different layers.
27    
28            * Thuban/Model/load.py: Use Classification.AppendGroup(), not AddGroup()
29    
30            * Thuban/UI/classgen.py: Use Classification.AppendGroup(),
31            not AddGroup()
32    
33            * Thuban/UI/classifier.py: Now that we can depend on the order in
34            a Classification and have methods to manipulate that order we don't
35            need to use our own data structures in the grid. We can simply make
36            the grid/table access the information they need from a copy of
37            the classification object.
38            (Classifier._OnCloseBtn): Event handler for when the user clicks
39            'Close'. This is needed so if the user applies changes and then
40            continues to change the table the user has the option of discarding
41            the most recent changes and keeping what they applied.
42    
43            * Thuban/UI/mainwindow.py: Put "Show Legend" and "Show Session Tree"
44            into the same group.
45    
46            * extensions/thuban/wxproj.cpp (check_version): If Thuban is compiled
47            with a really old version of proj, PJ_VERSION won't even be defined.
48            If it isn't defined then just compile so that the function always
49            returns Py_False.
50    
51            * test/test_classification.py: Fix tests to use the renamed methods.
52            Still need to write tests for the new methods.
53    
54    2003-04-04  Jonathan Coles   <[email protected]>
55    
56            * Thuban/UI/classifier.py (Classifier.__SelectField): Move the
57            call to SetSelection out of the method and before the call
58            to __SelectField in __init__. This prevents a recursion of events
59            when _OnFieldSelect is triggered by the user.
60    
61    2003-04-04  Jonathan Coles   <[email protected]>
62    
63            * Thuban/Model/classification.py: Rename Color.None to
64            Color.Transparent.
65            (ClassGroupProperties.SetLineColori, ClassGroupProperties.SetFill):
66            Don't bother copying the color, since Colors are immutable.
67    
68            * Thuban/Model/color.py, Thuban/Model/layer.py, Thuban/Model/load.py,
69            Thuban/UI/classifier.py, Thuban/UI/mainwindow.py,
70            Thuban/UI/renderer.py, Thuban/UI/view.py:
71            Rename Color.None to Color.Transparent.
72        
73            * test/test_classification.py, test/test_load.py: Rename Color.None
74            to Color.Transparent.
75    
76    2003-04-04  Jonathan Coles   <[email protected]>
77    
78            * Thuban/Model/classification.py: Fix assert calls.
79            (ClassGroupProperties.SetLineColor, ClassGroupProperties.SetFill):
80            Copy the color parameter rather than hold onto a reference.
81    
82            * Thuban/Model/color.py (Color.__copy__, Color.__deepcopy): Copy
83            the color object.
84            (NoColor.__copy__, NoColor.__deepcopy): Return 'self' so that we
85            are sure there exists only one refernce to Color.None in the system.
86            This allows us to use 'is' rather than the comparision functions.
87            
88            * Thuban/Model/save.py: Fix assert calls.
89            
90            * Thuban/UI/classifier.py: Fix assert calls.
91            (ClassGrid._OnCellDClick): Call up to the classifier to open the
92            dialog to edit the groups properties.
93            (ClassGrid._OnCellResize): Make sure that the scollbars are drawn
94            correctly if a cell is resized.
95            (ClassTable.SetClassification): New. Changes the classification
96            that is in the table.
97            (ClassTable.__SetRow): Allow groups to be prepended.
98            (Classifier): New code for opening the EditProperties and
99            GenerateRanges dialogs.
100            (SelectPropertiesDialog.__GetColor): Only set the color in the
101            color dialog if the current color is not None.
102            
103            * Thuban/UI/dock.py: Fix assert calls.
104            
105            * Thuban/UI/legend.py: Fix assert calls.
106            
107            * Thuban/UI/renderer.py: Fix assert calls.
108            
109            * Thuban/UI/classgen.py (ClassGenDialog): Dialog for generating
110            classifications.
111            (GenRangePanel): Panel specific to range generation.
112            (GenSingletonPanel): Panel specific to singleton generation.
113            (ClassGenerator): Class responsible for actually generating
114            the classification from the data gathered in the dialog box.
115            (PropertyRamp): Generates properties whose values range from
116            a starting property to an ending property.
117    
118    2003-04-03  Bernhard Herzog  <[email protected]>
119    
120            * test/support.py (print_garbage_information): New function that
121            prints information about still connected messages and memory
122            leaks.
123            (run_suite): Removed.
124            (run_tests): New function for use as a replacement of
125            unittest.main in the test_* files. This one calls
126            print_garbage_information at the end.
127    
128            * test/runtests.py (main): Use support.print_garbage_information
129    
130            * test/test_layer.py: Use support.run_tests instead of
131            unittest.main so we get memory leak information
132            (TestLayer.test_arc_layer, TestLayer.test_polygon_layer)
133            (TestLayer.test_point_layer, TestLayer.test_empty_layer)
134            (TestLayerLegend.test_visibility): Call the layer's Destroy method
135            to fix a memory leak.
136    
137            * test/test_classification.py: Use support.run_tests instead of
138            unittest.main so we get memory leak information
139            (TestClassification.test_classification): Call the layer's Destroy
140            method to fix a memory leak.
141    
142    2003-04-02  Bernhard Herzog  <[email protected]>
143    
144            * extensions/thuban/wxproj.cpp (check_version, check_version_gtk):
145            Handle the reference counts of the return value and errors in
146            PyArg_ParseTuple correctly.
147    
148            * Thuban/UI/application.py (ThubanApplication.OpenSession): Make
149            sure the filename is absolute to avoid problems when saving the
150            session again
151    
152            * Thuban/Model/table.py: Remove unnecessary import. Fix a typo.
153    
154    2003-04-01  Jonathan Coles   <[email protected]>
155    
156            *  Thuban/UI/renderer.py (MapRenderer.draw_point_shape): Check
157            that there actually are points in the returned list of points
158            before trying to index into the list. The list may be empty if
159            the shape is a Null Shape.
160    
161    2003-04-01  Bernhard Herzog  <[email protected]>
162    
163            * test/test_map.py: Don't use from <module> import *
164    
165    2003-04-01  Jonathan Coles   <[email protected]>
166    
167            * Thuban/Model/session.py: Use LAYER_CHANGED instead of
168            LAYER_LEGEND_CHANGED
169    
170            * Thuban/UI/dock.py (DockableWindow._OnButtonClose): Call
171            self.Destroy() to close the window after yesterday's changes.
172    
173            * test/test_map.py, test/test_session.py: Fix messages that
174            are sent from maps and layers.
175    
176    2003-03-31  Jonathan Coles   <[email protected]>
177    
178            * Thuban/UI/classifier.py: Commented out some debugging statements.
179            (ClassDataPreviewer.Draw): Draw rectangles for polygon layers per
180            RTbug #1769.
181    
182            * Thuban/UI/dock.py (DockableWindow.UnDock): Restore size and
183            position (although position doesn't work yet under GTK).
184            (DockableWindow.Destroy): New. Called when the window must be
185            closed. Namely needed when the DockFrame closes and must close
186            its children.
187            (DockFrame): Listen for EVT_CLOSE and destroy all children.
188    
189            * Thuban/UI/legend.py (LegendPanel.Destroy): New. Cleans up
190            when then window is told to close.
191            (LegendTree._OnMsgLayerChanged): Fixes a seg fault bug. See
192            comment in source for more info.
193    
194            * Thuban/UI/main.py: Show the legend by default when Thuban starts.
195    
196            * Thuban/UI/mainwindow.py: Renamed OnClose to _OnClose for
197            symmetry with other such methods.
198            (MainWindow.ShowLegend): Show the legend docked by default.
199    
200    2003-03-28  Jonathan Coles   <[email protected]>
201    
202            * Thuban/UI/classifier.py: Support for highlighting a specific
203            group within the grid when the classification dialog is opened.
204            Also contains a lot of debugging printouts which will later
205            be removed.
206    
207            * Thuban/UI/dock.py: Complete rework on the dock code so that
208            that it is fairly removed from the rest of the Thuban application.
209            It is easy to add new docks which the rest of the program having
210            to be aware of them.
211    
212            * Thuban/UI/legend.py: Modifications to support selecting a
213            specific group in the classification dialog. Changed how layers
214            are drawn when the layer is visible/invisible.
215    
216            * Thuban/UI/mainwindow.py: Removed legend specific code and
217            replaced it with calls to the new dock code.
218    
219            * Thuban/UI/renderer.py (MapRenderer.__init__): Added assert
220            to check if scale > 0. Trying to track down a divide by zero.
221    
222    2003-03-26  Jonathan Coles   <[email protected]>
223    
224            * Thuban/UI/legend.py: Removed unnecessary LegendDialog class.
225            (LegendPanel): Removed _OnDock()/_OnUnDock() methods which are
226            now part of DockableWindow.
227            (LegendPanel.DoOnSelChanged): Select the current layer in the
228            map.
229            (LegendTree._OnSelChanged): Call LegendPanel.DoOnSelChanged()
230            with the selected layer and/or group.
231    
232    2003-03-26  Jonathan Coles   <[email protected]>
233    
234            This putback contains the code for dockable windows. There is
235            no support in wxWindows as of this date for windows that can
236            attach themselves to other windows.
237    
238            The current model contains a DockableWindow which has a parent
239            window for when it is detached and a dock window that it puts
240            its contents in when it is docked. The contents of a DockableWindow
241            must be a DockPanel. DockPanel itself derives from wxPanel.
242    
243            * Thuban/Model/layer.py (Layer.ClassChanged): Send a LAYER_CHANGED
244            message, not a LAYER_LEGEND_CHANGED message.
245    
246            * Thuban/Model/map.py (Map): Forward LAYER_CHANGED messages.
247    
248            * Thuban/UI/classifier.py (Classifier.__init__): Use wxADJUST_MINSIZE
249            as one of the style properties for the fieldTypeText item to
250            be sure that its size is correct when the text changes.
251    
252            * Thuban/UI/dock.py: New. Classes for the DockPanel and
253            DockableWindow.
254    
255            * Thuban/UI/legend.py: Added some more buttons and made the
256            LegendPanel a DockPanel.
257    
258            * Thuban/UI/mainwindow.py: Added sash windows to the main window
259            and supporting functions for manipulating the sashes.
260            (MainWindow.ShowLegend): Create a DockableWindow with the
261            LegendPanel as the contents.
262    
263            * Thuban/UI/messages.py: Added DOCKABLE_* messages
264    
265            * Thuban/UI/view.py (MapCanves.SetMap): Listen for LAYER_CHANGED,
266            not LAYER_LEGEND_CHANGED, messages.
267    
268    2003-03-25  Jonathan Coles   <[email protected]>
269    
270            * setup.py: Added custom script bdist_rpm_build_script so that
271            when the rpm is built the path to wx-config is correct.
272    
273            * setup.cfg: Added line saying to use the custom build script
274    
275    2003-03-20  Jonathan Coles   <[email protected]>
276    
277            Initial implementation of the Legend.
278    
279            * Thuban/UI/legend.py: New. Creates a window that shows the map's
280            Legend information and allows the user to add/modify classifications
281            and how the layers are drawn on the map.
282    
283            * setup.py: New command 'build_docs' which currently uses
284            happydoc to generate html documentation for Thuban.
285    
286            * Thuban/Model/classification.py (ClassGroup.GetDisplayText): New.
287            Returns a string which is appropriately describes the group.
288    
289            * Thuban/Model/layer.py (Layer.SetClassification): Generate a
290            LAYER_CHANGED event instead of a LAYER_LEGEND_CHANGED event.
291    
292            * Thuban/Model/map.py (Map): Rename messages and use new, more
293            specific, messages.
294    
295            * Thuban/Model/messages.py: New message to indicate that a layer's
296            data has changed (LAYER_CHANGED). New map messages to indicate
297            when layers have been added/removed/changed or if the stacking order
298            of the layers has changed.
299    
300            * Thuban/Model/session.py: Rename and use new messages.
301    
302            * Thuban/UI/classifier.py: Remember if any changes have actually
303            been applied so that if the dialog is cancelled without an application
304            of changes we don't have to set a new classification.
305            (ClassDataPreviewer): Pulled out the window specific code and put it
306            ClassDataPreviewWindow. ClassDataPreviewer can then be used to draw
307            symbols on any DC.
308            
309            * Thuban/UI/mainwindow.py: New code to open the legend.
310    
311            * Thuban/UI/view.py: Use new message names.
312    
313  2003-03-19  Jonathan Coles   <[email protected]>  2003-03-19  Jonathan Coles   <[email protected]>
314    
315          * Thuban/UI/main.py (verify_versions): New. Checks the versions          * Thuban/UI/main.py (verify_versions): New. Checks the versions

Legend:
Removed from v.541  
changed lines
  Added in v.619

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26