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

Legend:
Removed from v.16  
changed lines
  Added in v.72

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26