/[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 19 by bh, Tue Sep 4 15:11:27 2001 UTC revision 85 by bh, Wed Apr 3 15:21:58 2002 UTC
# Line 1  Line 1 
1    2002-04-03  Bernhard Herzog  <[email protected]>
2    
3            * Thuban/UI/mainwindow.py (MainWindow.__init__): Move the "Add
4            Layer" and "Remove Layer" commands from the layer menu to the map
5            menu
6    
7    2002-02-15  Bernhard Herzog  <[email protected]>
8    
9            * Thuban/Model/layer.py (Layer.Shape): list append only takes one
10            argument (python <= 1.5.2 erroneously accepted multiuple
11            arguments)
12    
13    2002-02-04  Bernhard Herzog  <[email protected]>
14    
15            * Thuban/UI/identifyview.py (IdentifyGridCtrl): New class to use a
16            RecordGrid in the identifyview.
17            (IdentifyView.__init__): Use IdentifyGridCtrl instead of
18            IdentifyListCtrl. The grid allows editing of the values.
19    
20            * Thuban/UI/controls.py (RecordTable, RecordGridCtrl): New classes
21            implementing a grid for a single row of a thuban table.
22    
23            * Thuban/UI/view.py (MapCanvas.SelectShapeAt): Search through all
24            layers by default. Easier to use than the previous default of only
25            searching through the select layer which meant that if no layer
26            was selected, you couldn't select a shape.
27    
28            * Thuban/UI/tableview.py (TableGrid.__init__): Fix typo
29    
30            * Thuban/UI/renderer.py (MapRenderer.draw_shape_layer): Honour the
31            stroke_width attribute
32    
33            * Thuban/Model/save.py (save_session): Write the new stroke_width
34            attribute
35    
36            * Thuban/Model/load.py (ProcessSession.startElement): Read the
37            stroke_width attribute
38    
39            * Thuban/Model/layer.py (Layer.__init__): New parameter and
40            instance variable stroke_width
41            (Layer.SetStrokeWidth): Set the stroke_width.
42    
43    2002-02-01  Bernhard Herzog  <[email protected]>
44    
45            * extensions/thuban/wxproj.cpp (project_points): Fix two
46            off-by-one errors in the last loop that joins the various parts
47            together.
48    
49    2002-01-14  Bernhard Herzog  <[email protected]>
50    
51            * setup.py (data_dist.make_distribution): Fix some typos
52    
53    2001-09-18  Bernhard Herzog  <[email protected]>
54    
55            * README: Slight tweaking in preparation for the 0.1 release
56    
57            * setup.cfg: Add section for sdist to create both tgz and zip
58            archives
59    
60            * setup.py: increase version number to 0.1
61            (data_dist): New command class for data distribution
62            
63    
64    2001-09-14  Bernhard Herzog  <[email protected]>
65    
66            * Thuban/UI/identifyview.py (IdentifyListCtrl.selected_shape):
67            Handle the case of no layer (i.e. layer is None) properly.
68    
69            * Thuban/UI/proj4dialog.py (UTMDialog.__init__, Proj4Dialog.__init__):
70            Set the initial selection of the combo boxes to reflect the
71            projection we're starting with in a way that works on windows,
72            too.
73    
74            * Thuban/Lib/connector.py (Connector.print_connections): Print the
75            puiblisher's ids in hex to make it easier to compare them to the
76            standard repr of python methods
77    
78            * Thuban/Model/map.py (Map.Destroy): Unsubscribe the label_layer
79            messages
80    
81    2001-09-13  Bernhard Herzog  <[email protected]>
82    
83            * Thuban/UI/tree.py (SessionTreeCtrl.OnSelChanged): Make sure to
84            deselect the layer if no layer is selected
85    
86            * Thuban/UI/view.py (MapCanvas.OnPaint): Only delay drawing to
87            idle time when there actually is something to draw. If there's
88            nothing to draw simply clear the window
89            (MapCanvas.do_redraw): Call dc.EndDrawing and add some comments.
90            (MapCanvas.SetMap): force a redraw in all cases because
91            FitMapToWindow doesn't always do it.
92            (MapCanvas.ZoomFactor): Add an optional parameter, center, to
93            specify the point to move into the center of the window
94            (ZoomOutTool.MouseUp, ZoomInTool.MouseUp): If the mouse wasn't
95            dragged, zoon in/out by a factor of 2
96            (MapCanvas.find_shape_at): Iterate backwards (i.e. with decreasing
97            index, i.e. reversed drawing order) so that objects appearing to
98            be in from of others are selected first. This is probably mostly
99            relevant for point shapes where the symbols used may overlap
100    
101            * Thuban/Model/session.py (create_empty_session): Unset the
102            modified bit before returning it
103    
104            * Thuban/UI/mainwindow.py (MainWindow.NewSession): Use
105            create_empty_session session to create the new, empty session.
106    
107            * Thuban/UI/mainwindow.py (MainWindow.__init__): Set the size of
108            the tool bitmaps.
109            (MainWindow.OnClose, MainWindow.save_modified_session): Separate
110            the code that asks whether the session should be saved into the
111            new method save_modified_session.
112            (MainWindow.OpenSession, MainWindow.NewSession): Use the new
113            method to save modified session here too.
114    
115    2001-09-11  Bernhard Herzog  <[email protected]>
116    
117            * setup.py (InnoIconItem): fix typo
118    
119            (thuban_bdist_inno.run):
120            (bdist_inno.run): Move the decision not to create symlinks on
121            non-nt platforms to thuban_bdist_inno and do it unconditinally
122            since we never want to create the symlinks here
123    
124    2001-09-10  Bernhard Herzog  <[email protected]>
125    
126            * Thuban/UI/mainwindow.py (MainWindow.IdentifyTool): Popup the
127            identify view immediately
128    
129            * Thuban/UI/controls.py: New file with two classes RecordListCtrl
130            and SelectableRecordListCtrl that implement the code shared by the
131            identify view and the label dialog
132    
133            * Thuban/UI/identifyview.py (IdentifyListCtrl): Derive from the
134            new class RecordListCtrl
135    
136            * Thuban/UI/labeldialog.py (LabelDialog.OnOK): Check whether the
137            return value of GetValue is None instead of using it as a boolean
138            directly so that Zero numbers are handled properly.
139            (LabelListCtrl): Derive from the new class
140            SelectableRecordListCtrl
141    
142            * Thuban/UI/proj4dialog.py (Proj4Dialog.__init__):
143            (Proj4Dialog.dialogLayout): Make the window resizable and set the
144            size of the text control explicitly to make the sizers work on
145            both Windows and X.
146    
147    2001-09-07  Bernhard Herzog  <[email protected]>
148    
149            * Thuban/UI/view.py (MapCanvas.find_shape_at):Add a new parameter
150            that can limit the search to the currently selected layer.
151            (MapCanvas.SelectShapeAt): Make sure that the currently selected
152            layer stays selected even when no shape is found
153            (MapCanvas.FitRectToWindow): If the rect has zero with or zero
154            height do nothing (avoids zero division errors)
155    
156    2001-09-06  Bernhard Herzog  <[email protected]>
157    
158            * Thuban/UI/tree.py (SessionTreeCtrl, SessionTreeView.__init__):
159            Correct the spelling of SessionTreeCtrl. dabbrev is too damn
160            convenient :-)
161            (SessionTreeCtrl.__init__, SessionTreeCtrl.update_tree): Introduce
162            a new instvar layer_to_item to map layers to tree items
163            (SessionTreeCtrl.layer_selected): Select the appropriate tree item
164            to match the current selection in the interactor
165    
166            * Thuban/UI/interactor.py (Interactor.SelectedLayer):
167            (Interactor.HasSelectedLayer): New methods to query the current
168            selection
169    
170            * Thuban/UI/mainwindow.py (MainWindow.current_layer):
171            (MainWindow.has_selected_layer): Simply call the appropriate
172            interactor method
173    
174            * Thuban/UI/mainwindow.py (MainWindow.__init__):
175            (MainWindow.LayerShowTable):
176            (MainWindow.identify_view_on_demand): Store the interactor in an
177            instvar and use that reference instead of going through main.app
178    
179            * Thuban/UI/mainwindow.py (MainWindow.ShowSessionTree):
180            * Thuban/UI/application.py (ThubanApplication.OnInit):
181            * Thuban/UI/main.py (main): Create the session tree view in main
182            with the new mainwindow method ShowSessionTree and not directly
183            the application's OnInit method
184    
185            * Thuban/UI/tree.py (myTreeCtrlPanel):
186            (SessioinTreeCtrl): Rename to SessioinTreeCtrl and turn it into a
187            TreeCtrl isntead of a panel. This affects most method since we now
188            refer to self instead of self.tree
189            (SessionTreeView): New class implementing a non-modal dialog
190            showing the session tree.
191    
192            * Thuban/UI/mainwindow.py (MainWindow.LayerShowTable): Pass the
193            layer to the tableview dialog.
194    
195            * Thuban/UI/tableview.py: Add some doc-strings
196            (TableGrid):
197            (TableGrid.OnRangeSelect):
198            (TableGrid.OnSelectCell):
199            (TableFrame.__init__):
200            (TableFrame.row_selected):
201            Selecting rows in the grid view now updates the selected shapes
202            through the TableFrame. To achieve this we derive TableGrid from
203            Publisher and introduce the message type ROW_SELECTED which the
204            TableFrame subscribes to and which is issued by OnRangeSelect and
205            OnSelectCell
206    
207            (DataTable.SelectRow): Removed because it's no longer needed in
208            the row/shape selection scheme
209    
210            * Thuban/UI/dialogs.py: New file implementing common classes for
211            dialogs
212    
213            * Thuban/UI/tableview.py (TableGrid.__init__): Don't subscribe to
214            the SELECTED_SHAPE message anymore. This is now handled by the
215            parent.
216            (TableGrid.select_shape): Only update the selection if the shape
217            is not None.
218            (TableFrame): Inherit from the new NonModalDialog class.
219            (TableFrame.__init__, TableFrame.select_shape): Handle the
220            SELECT_SHAPE message.
221            (TableFrame.OnClose): Extend the inherited method to unsubscribe
222            SELECT_SHAPE
223    
224            * Thuban/UI/mainwindow.py (MainWindow.init_dialogs):
225            (MainWindow.add_dialog):
226            (MainWindow.dialog_open):
227            (MainWindow.remove_dialog):
228            (MainWindow.get_open_dialog): New methods to maintain a dictionary
229            of opened non-modal dialogs.
230    
231            (MainWindow.__init__): Initialize the new non-modal dictionary
232            management code
233            (MainWindow.LayerShowTable): maintain separate dialogs for each
234            table using the non-modal dialog management code to only open a
235            view once for each table.
236    
237            (MainWindow.IdentifyTool):
238            (MainWindow.__init__):
239            (MainWindow.identify_view_on_demand): Don't open the identify view
240            in IdentifyTool anymore. This will be done automatically by the
241            new method identify_view_on_demand which handles the
242            SELECTED_SHAPE message so that the identify view will be opened on
243            demand
244    
245            * Thuban/UI/identifyview.py (IdentifyListCtrl.__init__): Remove
246            the interactor argument. The SELECTED_SHAPE message is now handled
247            by the parent.
248            (IdentifyView.__init__): Add the interactor argument so that we
249            can handle the SELECTED_SHAPE message here
250            (IdentifyView.selected_shape): New method to handle the
251            SELECTED_SHAPE messages
252    
253            * Thuban/UI/identifyview.py (IdentifyView): Derive from the new
254            NonModalDialog class
255            (IdentifyView.OnClose): Extend the inherited version to
256            unsubscribe SELECT_SHAPE
257    
258            * Thuban/Model/session.py (Session.UnsetModified): Remove debug prints
259    
260    2001-09-05  Bernhard Herzog  <[email protected]>
261    
262            * Thuban/UI/view.py (MapCanvas.__init__): New argument, interactor.
263            
264            * Thuban/UI/mainwindow.py (MainWindow.__init__): New argument
265            interactor to pass through to the MapCanvas
266            
267            * Thuban/UI/application.py (ThubanApplication.OnInit): Use the new
268            argument to the MainWindow constructor to get rid of the ugly hack
269            that made main.app available early just so that the mapcanvas
270            could access the interactor object.
271    
272  2001-09-04  Bernhard Herzog  <[email protected]>  2001-09-04  Bernhard Herzog  <[email protected]>
273    
274            * Thuban/UI/mainwindow.py (MainWindow.RunMessageBox): New method
275            that runs a modal message box
276            (MainWindow.OnClose): Use the new method
277            (MainWindow.RemoveLayer): Just do nothing in case no layer is
278            selected. The command should be grayed out anyway, so there's no
279            need to pop up a message box.
280            (MainWindow.AddLayer): Pop up a message box with an error message
281            if the shape file can't be opened
282    
283            * Thuban/Model/layer.py (Layer.__init__): Open the shapefile
284            immediately. This will cause an exception in case the file can't
285            be opened and we can display an appropriate message.
286    
287          * MANIFEST.in: Add extensions/pyprojection/LICENSE          * MANIFEST.in: Add extensions/pyprojection/LICENSE
288    
289          * setup.py (thuban_bdist_rpm): New class implementing a Thuban          * setup.py (thuban_bdist_rpm): New class implementing a Thuban

Legend:
Removed from v.19  
changed lines
  Added in v.85

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26