/[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 505 by jonathan, Mon Mar 10 15:48:17 2003 UTC revision 581 by jonathan, Tue Apr 1 10:20:17 2003 UTC
# Line 1  Line 1 
1    2003-04-01  Jonathan Coles   <[email protected]>
2    
3            * Thuban/Model/session.py: Use LAYER_CHANGED instead of
4            LAYER_LEGEND_CHANGED
5    
6            * Thuban/UI/dock.py (DockableWindow._OnButtonClose): Call
7            self.Destroy() to close the window after yesterday's changes.
8    
9            * test/test_map.py, test/test_session.py: Fix messages that
10            are sent from maps and layers.
11    
12    2003-03-31  Jonathan Coles   <[email protected]>
13    
14            * Thuban/UI/classifier.py: Commented out some debugging statements.
15            (ClassDataPreviewer.Draw): Draw rectangles for polygon layers per
16            RTbug #1769.
17    
18            * Thuban/UI/dock.py (DockableWindow.UnDock): Restore size and
19            position (although position doesn't work yet under GTK).
20            (DockableWindow.Destroy): New. Called when the window must be
21            closed. Namely needed when the DockFrame closes and must close
22            its children.
23            (DockFrame): Listen for EVT_CLOSE and destroy all children.
24    
25            * Thuban/UI/legend.py (LegendPanel.Destroy): New. Cleans up
26            when then window is told to close.
27            (LegendTree._OnMsgLayerChanged): Fixes a seg fault bug. See
28            comment in source for more info.
29    
30            * Thuban/UI/main.py: Show the legend by default when Thuban starts.
31    
32            * Thuban/UI/mainwindow.py: Renamed OnClose to _OnClose for
33            symmetry with other such methods.
34            (MainWindow.ShowLegend): Show the legend docked by default.
35    
36    2003-03-28  Jonathan Coles   <[email protected]>
37    
38            * Thuban/UI/classifier.py: Support for highlighting a specific
39            group within the grid when the classification dialog is opened.
40            Also contains a lot of debugging printouts which will later
41            be removed.
42    
43            * Thuban/UI/dock.py: Complete rework on the dock code so that
44            that it is fairly removed from the rest of the Thuban application.
45            It is easy to add new docks which the rest of the program having
46            to be aware of them.
47    
48            * Thuban/UI/legend.py: Modifications to support selecting a
49            specific group in the classification dialog. Changed how layers
50            are drawn when the layer is visible/invisible.
51    
52            * Thuban/UI/mainwindow.py: Removed legend specific code and
53            replaced it with calls to the new dock code.
54    
55            * Thuban/UI/renderer.py (MapRenderer.__init__): Added assert
56            to check if scale > 0. Trying to track down a divide by zero.
57    
58    2003-03-26  Jonathan Coles   <[email protected]>
59    
60            * Thuban/UI/legend.py: Removed unnecessary LegendDialog class.
61            (LegendPanel): Removed _OnDock()/_OnUnDock() methods which are
62            now part of DockableWindow.
63            (LegendPanel.DoOnSelChanged): Select the current layer in the
64            map.
65            (LegendTree._OnSelChanged): Call LegendPanel.DoOnSelChanged()
66            with the selected layer and/or group.
67    
68    2003-03-26  Jonathan Coles   <[email protected]>
69    
70            This putback contains the code for dockable windows. There is
71            no support in wxWindows as of this date for windows that can
72            attach themselves to other windows.
73    
74            The current model contains a DockableWindow which has a parent
75            window for when it is detached and a dock window that it puts
76            its contents in when it is docked. The contents of a DockableWindow
77            must be a DockPanel. DockPanel itself derives from wxPanel.
78    
79            * Thuban/Model/layer.py (Layer.ClassChanged): Send a LAYER_CHANGED
80            message, not a LAYER_LEGEND_CHANGED message.
81    
82            * Thuban/Model/map.py (Map): Forward LAYER_CHANGED messages.
83    
84            * Thuban/UI/classifier.py (Classifier.__init__): Use wxADJUST_MINSIZE
85            as one of the style properties for the fieldTypeText item to
86            be sure that its size is correct when the text changes.
87    
88            * Thuban/UI/dock.py: New. Classes for the DockPanel and
89            DockableWindow.
90    
91            * Thuban/UI/legend.py: Added some more buttons and made the
92            LegendPanel a DockPanel.
93    
94            * Thuban/UI/mainwindow.py: Added sash windows to the main window
95            and supporting functions for manipulating the sashes.
96            (MainWindow.ShowLegend): Create a DockableWindow with the
97            LegendPanel as the contents.
98    
99            * Thuban/UI/messages.py: Added DOCKABLE_* messages
100    
101            * Thuban/UI/view.py (MapCanves.SetMap): Listen for LAYER_CHANGED,
102            not LAYER_LEGEND_CHANGED, messages.
103    
104    2003-03-25  Jonathan Coles   <[email protected]>
105    
106            * setup.py: Added custom script bdist_rpm_build_script so that
107            when the rpm is built the path to wx-config is correct.
108    
109            * setup.cfg: Added line saying to use the custom build script
110    
111    2003-03-20  Jonathan Coles   <[email protected]>
112    
113            Initial implementation of the Legend.
114    
115            * Thuban/UI/legend.py: New. Creates a window that shows the map's
116            Legend information and allows the user to add/modify classifications
117            and how the layers are drawn on the map.
118    
119            * setup.py: New command 'build_docs' which currently uses
120            happydoc to generate html documentation for Thuban.
121    
122            * Thuban/Model/classification.py (ClassGroup.GetDisplayText): New.
123            Returns a string which is appropriately describes the group.
124    
125            * Thuban/Model/layer.py (Layer.SetClassification): Generate a
126            LAYER_CHANGED event instead of a LAYER_LEGEND_CHANGED event.
127    
128            * Thuban/Model/map.py (Map): Rename messages and use new, more
129            specific, messages.
130    
131            * Thuban/Model/messages.py: New message to indicate that a layer's
132            data has changed (LAYER_CHANGED). New map messages to indicate
133            when layers have been added/removed/changed or if the stacking order
134            of the layers has changed.
135    
136            * Thuban/Model/session.py: Rename and use new messages.
137    
138            * Thuban/UI/classifier.py: Remember if any changes have actually
139            been applied so that if the dialog is cancelled without an application
140            of changes we don't have to set a new classification.
141            (ClassDataPreviewer): Pulled out the window specific code and put it
142            ClassDataPreviewWindow. ClassDataPreviewer can then be used to draw
143            symbols on any DC.
144            
145            * Thuban/UI/mainwindow.py: New code to open the legend.
146    
147            * Thuban/UI/view.py: Use new message names.
148    
149    2003-03-19  Jonathan Coles   <[email protected]>
150    
151            * Thuban/UI/main.py (verify_versions): New. Checks the versions
152            of Python, wxPython, and some other libraries.
153    
154            * extensions/thuban/wxproj.cpp (check_version): Checks the given
155            version against what wxproj was compiled with.
156            (check_version_gtk): If wxproj was compiled with gtk then check
157            the given version against the version of the gtk library
158            currently being used.
159    
160    2003-03-14  Bernhard Herzog  <[email protected]>
161    
162            * test/test_command.py: Run the tests when the module is run as a
163            script
164    
165    2003-03-14  Bernhard Herzog  <[email protected]>
166    
167            Implement selection of multiple selected shapes in the same layer:
168    
169            - Introduce a new class to hold the selection. This basically
170              replaces the interactor which was nothing more than the
171              selection anyway. A major difference is of course that the new
172              selection class supports multiple selected shapes in one layer
173            
174            - Move the object that represents the selection from the
175              application to the canvas. The canvas is a better place than the
176              application because the selection represents which shapes and
177              layer of the map displayed by the canvas are selected and
178              affects how the map is drawn.
179    
180            - Make the selection and its messages publicly available through
181              the mainwindow.
182    
183            - The non-modal dialogs do not get a reference to the interactor
184              anymore as they can simply refer to their parent, the
185              mainwindow, for the what the interactor had to offer.
186    
187            * Thuban/UI/selection.py: New module with a class to represent the
188            selection.
189    
190            * Thuban/UI/messages.py (SELECTED_TABLE, SELECTED_MAP): Remove
191            these unused messages
192    
193            * Thuban/UI/application.py (ThubanApplication.OnInit)
194            (ThubanApplication.OnExit, ThubanApplication.SetSession): The
195            interactor is gone now.
196            (ThubanApplication.CreateMainWindow): There is no interactor
197            anymore so we pass None as the interactor argument for now for
198            compatibility.
199    
200            * Thuban/UI/view.py (MapCanvas.delegated_messages)
201            (MapCanvas.Subscribe, MapCanvas.Unsubscribe): In Subscribe and
202            Unsubscribe, delegate messages according to the delegated_messages
203            class variable.
204            (MapCanvas.__getattr__, MapCanvas.delegated_methods): Get some
205            attributes from instance variables as described with the
206            delegated_methods class variable.
207            (MapCanvas.__init__): New instance variable selection holding the
208            current selection
209            (MapCanvas.do_redraw): Deal with multiple selected shapes. Simply
210            pass them on to the renderer
211            (MapCanvas.SetMap): Clear the selection when a different map is
212            selected.
213            (MapCanvas.shape_selected): Simple force a complete redraw. The
214            selection class now takes care of only issueing SHAPES_SELECTED
215            messages when the set of selected shapes actually does change.
216            (MapCanvas.SelectShapeAt): The selection is now managed in
217            self.selection
218    
219            * Thuban/UI/mainwindow.py (MainWindow.delegated_messages)
220            (MainWindow.Subscribe, MainWindow.Unsubscribe): In Subscribe and
221            Unsubscribe, delegate messages according to the delegated_messages
222            class variable.
223            (MainWindow.delegated_methods, MainWindow.__getattr__): Get some
224            attributes from instance variables as described with the
225            delegated_methods class variable.
226            (MainWindow.__init__): The interactor as ivar is gone. The
227            parameter is still there for compatibility. The selection messages
228            now come from the canvas.
229            (MainWindow.current_layer, MainWindow.has_selected_layer):
230            Delegate to the the canvas.
231            (MainWindow.LayerShowTable, MainWindow.Classify)
232            (MainWindow.identify_view_on_demand): The dialogs don't need the
233            interactor parameter anymore.
234    
235            * Thuban/UI/tableview.py (TableFrame.__init__)
236            (LayerTableFrame.__init__, LayerTableFrame.OnClose)
237            (LayerTableFrame.row_selected): The interactor is gone. It's job
238            from the dialog's point of view is now done by the mainwindow,
239            i.e. the parent. Subscribe to SHAPES_SELECTED instead
240            of SELECTED_SHAPE
241            
242            * Thuban/UI/dialogs.py (NonModalDialog.__init__): The interactor
243            is gone. It's job from the dialog's point of view is now done by
244            the mainwindow, i.e. the parent.
245            
246            * Thuban/UI/classifier.py (Classifier.__init__): The interactor is
247            gone. It's job from the dialog's point of view is now done by the
248            mainwindow, i.e. the parent.
249    
250            * Thuban/UI/tree.py (SessionTreeView.__init__): The interactor is
251            gone. It's job from the dialog's point of view is now done by the
252            mainwindow, i.e. the parent.
253            (SessionTreeCtrl.__init__): New parameter mainwindow which is
254            stored as self.mainwindow. The mainwindow is need so that the tree
255            can still subscribe to the selection messages.
256            (SessionTreeCtrl.__init__, SessionTreeCtrl.unsubscribe_all)
257            (SessionTreeCtrl.update_tree, SessionTreeCtrl.OnSelChanged): The
258            selection is now accessible through the mainwindow. Subscribe to
259            SHAPES_SELECTED instead of SELECTED_SHAPE
260    
261            * Thuban/UI/identifyview.py (IdentifyView.__init__): Use the
262            SHAPES_SELECTED message now.
263            (IdentifyView.selected_shape): Now subscribed to SHAPES_SELECTED,
264            so deal with multiple shapes
265            (IdentifyView.__init__, IdentifyView.OnClose): The interactor is
266            gone. It's job from the dialog's point of view is now done by the
267            mainwindow, i.e. the parent.
268    
269            * Thuban/UI/controls.py (RecordListCtrl.fill_list): The second
270            parameter is now a list of shape ids.
271            (RecordTable.SetTable): The second parameter is now a list of
272            indices.
273    
274            * Thuban/UI/renderer.py (ScreenRenderer.RenderMap): Rename the
275            selected_shape parameter and ivar to selected_shapes. It's now a
276            list of shape ids.
277            (MapRenderer.draw_label_layer): Deal with multiple selected
278            shapes. Rearrange the code a bit so that the setup and shape type
279            distinctions are only executed once.
280    
281            * test/test_selection.py: Test cases for the selection class
282    
283    2003-03-11  Jonathan Coles   <[email protected]>
284    
285            * Thuban/Model/load.py: Temporary fix so that the xml reader
286            doesn't cause Thuban to crash.
287    
288            * Thuban/Model/layer.py: Handle the cyclic references between
289            a layer and its classification better, and be sure to disconnect
290            the classification from the layer when the layer is destroyed
291            so that we don't maintain a cyclic reference that may not be
292            garbage collected.
293    
294            * Thuban/Model/classification.py: See comment for layer.py.
295    
296    2003-03-12  Jan-Oliver Wagner <[email protected]>
297    
298            * HOWTO-Release: New. Information on the steps for releasing
299            a new version of Thuban.
300    
301    2003-03-11  Jonathan Coles   <[email protected]>
302    
303            * Thuban/UI/classifier.py: Add normal border to SelectPropertiesDialog.
304            Use True instead of true.
305            (Classifier): Should have a single panel in which all the controls lie.
306    
307            * Thuban/UI/proj4dialog.py: Add normal border.
308    
309            * Thuban/UI/tree.py: Fixed problem with bad item images under Windows.
310    
311            * Thuban/UI/mainwindow.py: Use True instead of true.
312    
313            * setup.py: Update some definitions to use wxWindows2.4 files
314    
315            * Data/iceland_sample_class.thuban: Fixed file so that the
316            field_type information is present.
317    
318  2003-03-10  Jonathan Coles   <[email protected]>  2003-03-10  Jonathan Coles   <[email protected]>
319    
320          * Thuban/UI/classifier.py (Classifier.__init__): Make the          * Thuban/UI/classifier.py (Classifier.__init__): Make the

Legend:
Removed from v.505  
changed lines
  Added in v.581

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26