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

Legend:
Removed from v.9  
changed lines
  Added in v.114

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26