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

Legend:
Removed from v.7  
changed lines
  Added in v.129

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26