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

Legend:
Removed from v.18  
changed lines
  Added in v.83

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26