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

Legend:
Removed from v.527  
changed lines
  Added in v.586

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26