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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26