/[thuban]/branches/WIP-pyshapelib-bramz/ChangeLog
ViewVC logotype

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26