/[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 1810 by bh, Fri Oct 10 17:00:23 2003 UTC revision 1878 by bh, Mon Oct 27 17:52:47 2003 UTC
# Line 1  Line 1 
1    2003-10-27  Bernhard Herzog  <[email protected]>
2    
3            * po/fr.po, po/es.po: Updated translations from Daniel Calvelo
4    
5            * po/de.po: Update.
6    
7            * Thuban/UI/application.py
8            (ThubanApplication.ShowExceptionDialog): Handle translation of the
9            dialog message properly
10    
11    2003-10-27  Bernhard Herzog  <[email protected]>
12    
13            Rework how localization works so that we use wx's translation
14            functions when running Thuban as a normal application but not when
15            we don't need any UI, such as in the test suite. See the comment
16            in Thuban/__init__.py for details
17    
18            * Thuban/__init__.py (_): Add one level of indirection to make the
19            translation handling more flexible and to make it possible to use
20            either wx's translation services or not.
21            (gettext_identity, translation_function_installed)
22            (install_translation_function): New function to help with this
23    
24            * Thuban/UI/__init__.py: Install the wx specific translation
25            function if it's OK to do that
26    
27            * test/support.py (initthuban): Install a dummy translation
28            function so that importing Thuban.UI doesn't install a wx specific
29            one for which would need to import wxPython
30    
31    2003-10-27  Bernhard Herzog  <[email protected]>
32    
33            * HOWTO-Release: Source archives should be created first and the
34            binary packages should be created from the source archives.
35            There's an official debian package now so there's no need to test
36            the rpm on debian anymore
37    
38    2003-10-27  Bernhard Herzog  <[email protected]>
39    
40            Several rendering changes:
41    
42             - Render the selection into a separate bitmap so that only that
43               bitmap needs to be redrawn when the selection changes
44    
45             - Render incrementally showing previews and allowing interaction
46               before rendering is complete
47    
48             - Update the renderer interface a bit. Most parameters of
49               RenderMap are now parameters of the constructor
50    
51            * Thuban/UI/baserenderer.py (BaseRenderer.__init__): Add the map
52            and the update region as parameters. Update the doc-string
53            (BaseRenderer.render_map_incrementally): New. Generator function
54            to renders the map incrementally
55            (BaseRenderer.render_map): Remove the map argument (it's now in
56            the constructor) and simply iterate over the
57            render_map_incrementally generator to draw the map.
58            (BaseRenderer.draw_shape_layer_incrementally)
59            (BaseRenderer.draw_shape_layer): Renamed to
60            draw_shape_layer_incrementally and changed into a generator that
61            yields True every 500 shapes. Used by render_map_incrementally to
62            render shape layers incrementally
63    
64            * Thuban/UI/renderer.py (ScreenRenderer.RenderMap): Removed the
65            map and region parameters which are now in the constructor
66            (ScreenRenderer.RenderMapIncrementally): New. Public frontend for
67            the inherited render_map_incrementally.
68            (BaseRenderer.draw_shape_layer): Removed.
69            (ScreenRenderer.draw_selection_incrementally): New. The selection
70            drawing part of the removed draw_shape_layer as a generator
71            (ScreenRenderer.layer_shapes): Update because of the region
72            parameter change
73            (ExportRenderer.__init__): New. Extend the inherited constructor
74            with the destination region for the drawing
75            (ExportRenderer.RenderMap): Removed the map and region parameters
76            which are now in the constructor
77    
78            * Thuban/UI/view.py (MapCanvas.PreviewBitmap): New. Return a
79            bitmap suitable for a preview in a tool
80            (CanvasPanTool.MouseMove): Use the PreviewBitmap method to get the
81            bitmap
82            (MapPrintout.draw_on_dc): Adapt to new renderer interface
83            (MapCanvas.OnPaint): Handle drawing the selection bitmap if it
84            exists
85            (MapCanvas.OnIdle): Update the logic to deal with incremental
86            rendering and the selection bitmap
87            (MapCanvas._do_redraw): Handle the instantiation of the render
88            iterator and the redraws during rendering
89            (MapCanvas._render_iterator): New. Generator to incrementally
90            redraw both bitmaps
91            (MapCanvas.Export): Adapt to new renderer interface.
92            (MapCanvas.full_redraw): Reset the selection bitmap and the
93            renderer iterator too
94            (MapCanvas.redraw_selection): New. Force a redraw of the selection
95            bitmap
96            (MapCanvas.shape_selected): Only redraw the selection bitmap
97    
98            * test/test_baserenderer.py
99            (TestBaseRenderer.test_polygon_no_projection)
100            (TestBaseRenderer.test_raster_no_projection)
101            (TestBaseRenderer.test_point_map_projection)
102            (TestBaseRenderer.test_point_layer_and_map_projection)
103            (TestBaseRenderer.test_point_layer_projection)
104            (TestBaseRenderer.test_point_with_classification): Adapt to new
105            renderer interface
106    
107    2003-10-24  Bernhard Herzog  <[email protected]>
108    
109            * libraries/thuban/wxproj.cpp (draw_polygon_shape)
110            (point_in_polygon_shape, shape_centroid): Raise an exception if
111            the shape can't be read. Previously invalid shape ids would lead
112            to a segfault.
113    
114            * test/test_wxproj.py (TestShapeCentroid.test_invalid_shape_id):
115            New. test whether an exception is raised for invalid shape ids
116    
117    2003-10-24  Jan-Oliver Wagner <[email protected]>
118    
119            * Thuban/Model/proj.py (Projection.GetProjectedUnits): Added 'longlat'
120            as alias for 'latlong'.
121    
122            * Thuban/UI/projdialog.py (ProjFrame.__init__): Added 'longlat'
123            as alias for 'latlong'.
124    
125    2003-10-24  Jan-Oliver Wagner <[email protected]>
126    
127            * Thuban/UI/projdialog.py (ProjFrame.proj_selection_changed): Set
128            the projection even for the UnknownPanel.
129            (UnknownProjPanel.__init__): Define the text and create the textctrl
130            widget.
131            (UnknownProjPanel._DoLayout): Replaced static text widget by the
132            textctrl created in __init__.
133            (UnknownProjPanel.SetProjection): Set the text for the text ctrl
134            including the parameters of the projection.
135            
136    2003-10-24  Jan-Oliver Wagner <[email protected]>
137    
138            * Resources/Projections/epsg.proj: New. This is a list of
139            EPSG codes with parameters for proj. The list has been
140            generated using devtools/create_epsg.py based on the
141            file nad/epsg of the proj 4.4.7 package. Four projection
142            definitions have been deleted as they are not accepted by proj:
143            "CH1903+ / LV95", "Bern 1898 (Bern) / LV03C", "CH1903 / LV03"
144            and "HD72 / EOV".
145    
146    2003-10-22  Bernhard Herzog  <[email protected]>
147    
148            Some more tweaks to the projection dialog which should fix RT
149            #1886.
150    
151            * Thuban/UI/projlist.py (ProjectionList.Destroy): Unsubscribe from
152            the ProjFile's messages and call the base class methods correctly
153            (ProjectionList.SelectProjection): Set the wxLIST_STATE_FOCUSED
154            flag on the newly selected item too. Otherwise some other item is
155            focused and the first time the focus is moved with the keyboard
156            the selection moves in unexpected ways.
157    
158            * Thuban/UI/projdialog.py (ProjFrame.__init__): Do not set the
159            focus on the OK button, only on the projection list. That way the
160            list really has the focus initially
161            (ProjFrame.OnClose): Call the projection list's Destroy method to
162            make it unsubscribe all messages
163    
164    2003-10-21  Bernhard Herzog  <[email protected]>
165    
166            Rework the projection dialog to fix a few bugs, including RT 2166
167            and most of 2168
168    
169            * Thuban/UI/projlist.py: New. The class ProjectionList is a
170            special wxListCtrl to show a list of projections in a more MVC
171            fashion
172    
173            * Thuban/UI/projdialog.py (ProjFrame): Substantial changes
174            throughout the class. The main change is to use the ProjectionList
175            class instead of a normal wxListBox. Also, add an explicit
176            "Unknown" projection to the projection choice control.
177            (ProjPanel.__init__): Add an "unknown" ellipsoid
178            (TMPanel.__init__, LCCPanel.__init__): Tweak the order of
179            instantiation of the panel's controls to make the tab-order more
180            natural
181    
182    2003-10-21  Bernhard Herzog  <[email protected]>
183    
184            * test/test_load.py (TestSingleLayer.file_contents)
185            (TestSingleLayer.test): Add non-ascii characters to the titles of
186            session, map and layer. This is effectively a port of the
187            TestUnicodeStrings test in test_load_0_8.py which for some reason
188            was only added there.
189    
190            * test/test_load_0_9.py (TestSingleLayer.file_contents)
191            (TestSingleLayer.test): Same as in test_load.py: add non-ascii
192            characters to the titles of session, map and layer,.
193    
194    2003-10-21  Bernhard Herzog  <[email protected]>
195    
196            Add EPSG projection handling to .thuban files
197    
198            * test/test_save.py (SaveSessionTest.dtd)
199            (SaveSessionTest.testEmptySession)
200            (SaveSessionTest.testLayerProjection)
201            (SaveSessionTest.testRasterLayer)
202            (SaveSessionTest.testClassifiedLayer)
203            (SaveSessionTest.test_dbf_table)
204            (SaveSessionTest.test_joined_table)
205            (SaveSessionTest.test_save_postgis): Update to 1.0-dev namespace
206            (SaveSessionTest.testSingleLayer): Update to 1.0-dev namespace and
207            use a and epsg projection to test saving them
208    
209            * test/test_load.py (LoadSessionTest.dtd): Update to 1.0-dev
210            namespace
211            (TestLayerVisibility.file_contents, TestLabels.file_contents)
212            (TestLayerProjection.file_contents)
213            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
214            (TestPostGISLayer.file_contents)
215            (TestPostGISLayerPassword.file_contents)
216            (TestLoadError.file_contents, TestLoadError.test): Update to use
217            1.0-dev namespace
218            (TestSingleLayer.file_contents, TestSingleLayer.test): Update to
219            use 1.0-dev namespace and use an EPSG projection to test whether
220            loading it works
221    
222            * test/test_load_0_9.py: New. Effectively a copy of test_load.py
223            as of Thuban 0.9. These are now tests to determine whether Thuban
224            can still read files generated by Thuban 0.9
225    
226            * Thuban/Model/save.py (SessionSaver.write)
227            (SessionSaver.write_session): Use the 1.0 dtd and 1.0-dev
228            namespace
229            (SessionSaver.write_projection): Write the projection's epsg
230            attribute
231    
232            * Thuban/Model/load.py (SessionLoader.__init__): Also accept the
233            thuban-1.0-dev.dtd namespace
234            (SessionLoader.check_attrs): Allow a callable object as conversion
235            too
236            (SessionLoader.start_projection, SessionLoader.end_projection)
237            (SessionLoader.start_parameter): Handle the epsg attribute and
238            rename a few instance variables to lower case
239    
240            * Resources/XML/thuban-1.0.dtd: New. Only difference to
241            thuban-0.9.dtd is the epsg attribute for projections.
242    
243    2003-10-21  Bernhard Herzog  <[email protected]>
244    
245            * test/runtests.py (main): Let the user specify which tests to run
246            on the command line
247    
248            * test/support.py (ThubanTestResult.getDescription): Override to
249            give a better short description. The description can be used as a
250            parameter to run_tests to run that particular test in isolation.
251    
252    2003-10-21  Frank Koormann   <[email protected]>
253    
254            Popup menu for legend. Scheduled for the 1.2 release this was too
255            simple to implement: The popup menu is bound to the legend tree, while
256            the events are hanlded by its anchestor, the legend panel. This
257            allows reuse of all the event handlers already implemented for the
258            legend toolbar buttons.
259    
260            * Thuban/UI/legend.py (LegendPanel.__init__): EVT_MENU macros
261            to add handlers for the events issued by the popup menu.
262            (LegendPanel._OnToggleVisibility): Handler for toggling layer
263            visibility event
264            (LegendPanel._OnProjection): Handler for layer projection event.
265            (LegendTree.__init__): Added EVT_TREE_ITEM_RIGHT_CLICK
266            (LegendTree._OnRightClick): Event handler for right click, select item
267            and pop up menu.
268            (LegendTree.ToggleVisibility): Toggle layer visibility
269            (LegendTree.LayerProjection): Raise layer projection dialog for
270            current layer.
271    
272    2003-10-21  Bernhard Herzog  <[email protected]>
273    
274            * Resources/Projections/defaults.proj: Use correct DOCTYPE
275            declaration. The top-level element is projectionlist not projfile
276    
277    2003-10-20  Bernhard Herzog  <[email protected]>
278    
279            * Thuban/UI/projdialog.py (ProjFrame.write_proj_file): New. helper
280            method to write a projfile and display a busy cursor and error
281            dialogs.
282            (ProjFrame._OnSave, ProjFrame._OnAddToList, ProjFrame._OnImport)
283            (ProjFrame._OnExport, ProjFrame._OnRemove): Use write_proj_file
284            (ProjFrame.__FillAvailList): Translate "<None>" too and display a
285            busy cursor while loading the user and system prj files.
286    
287    2003-10-16  Bernhard Herzog  <[email protected]>
288    
289            * Thuban/Model/resource.py (projfile_cache): Introduce a cache for
290            ProjFile objects
291            (clear_proj_file_cache): New function to clear the cache. Mainly
292            useful for use by the test suite
293            (read_proj_file): Use the cache.
294    
295            * test/test_proj.py (TestProjFile): Clarify the doc-string
296            (ProjFileReadTests): Update doc-string
297            (ProjFileReadTests.test_get_system_proj_file): Check whether the
298            system proj files is cached.
299            (ProjFileLoadTestCase): New base class for the proj file tests
300            derived from support.FileLoadTestCase to provide some common
301            behavior.
302            (TestLoadingProjFile)
303            (TestLoadingProjFileWithEmptyProjectionlist.file_contents)
304            (TestProjFileWithInvalidParameters.file_contents): Derive from
305            ProjFileLoadTestCase
306            (TestLoadingProjFile.test_caching): New. Test whether the cache
307            works
308    
309    2003-10-16      Silke Reimer    <[email protected]>
310    
311            * debian/*: New directory with configuration files for building a thuban
312              deb-package.
313    
314    2003-10-14  Bernhard Herzog  <[email protected]>
315    
316            * test/test_proj.py: Execute support.run_tests when run as
317            __main__ so that missing unsubscribes are detected
318            (TestProjFile.tearDown): Destroy the proj_file properly
319    
320    2003-10-14  Bernhard Herzog  <[email protected]>
321    
322            * Thuban/Model/messages.py (PROJECTION_ADDED)
323            (PROJECTION_REPLACED, PROJECTION_REMOVED): New message types for
324            the ProjFile objects
325    
326            * Thuban/Model/proj.py (ProjFile): Derive from Publisher so we can
327            easily send messages when the projections change
328            (ProjFile.Add, ProjFile.Remove, ProjFile.Replace): Issue messages
329            when the change was successful
330    
331            * test/test_proj.py (TestProjFile.setUp): Subscribe to some of the
332            proj file messages
333            (TestProjFile.test_add_remove)
334            (TestProjFile.test_remove_non_existing)
335            (TestProjFile.test_replace)
336            (TestProjFile.test_replace_non_existing): Test whether the right
337            messages are sent
338    
339    2003-10-14  Bernhard Herzog  <[email protected]>
340    
341            * test/test_proj.py (TestProjFile.test): Refactor into several
342            tests
343            (TestProjFile.test_add_remove)
344            (TestProjFile.test_remove_non_existing)
345            (TestProjFile.test_replace)
346            (TestProjFile.test_replace_non_existing): Some of the new
347            individual test cases
348            (TestProjFileSimple): New class for the rest of the test cases
349            that came out of the refactoring
350            (ProjFileTest): Derive from xmlsupport.ValidationTest so that the
351            derived classes don't have to
352    
353    2003-10-13  Bernhard Herzog  <[email protected]>
354    
355            Add an optional EPSG code to the projection objects and extend the
356            .proj file format accordingly.
357    
358            * Resources/XML/projfile.dtd (element projection): Add epsg
359            attribute
360    
361            * Thuban/Model/proj.py (Projection.__init__): New parameter and
362            instance variable epsg. Update doc-string
363            (Projection.EPSGCode, Projection.Label): New methods to provide
364            access to EPSG code and a label for use in dialogs
365    
366            * Thuban/Model/resource.py (ProjFileReader.start_projection)
367            (ProjFileReader.end_projection, ProjFileSaver.write_projfile):
368            Handle the epsg code attribute when reading or writing proj files
369    
370            * Thuban/UI/projdialog.py (ProjFrame._OnSave)
371            (ProjFrame._OnAddToList, ProjFrame.__DoOnProjAvail)
372            (ProjFrame.__FillAvailList): Use the projection's Label method to
373            get the string for the list box
374    
375            * test/test_proj.py (TestProjection.test_label)
376            (TestProjection.test_label_epsg)
377            (TestProjection.test_epsgcode_for_non_epsg_projection)
378            (TestProjection.test_epsgcode_for_real_epsg_projection): New tests
379            for the label and EPSGCode methods
380            (WriteProjFileTests.doTestWrite, WriteProjFileTests.test_write)
381            (WriteProjFileTests.test_write_empty_file): Create the ProjFile
382            objects in the test cases and put the expected contents into the
383            test case methods too. Update doTestWrite accordingly
384            (TestLoadingProjFile)
385            (TestLoadingProjFileWithEmptyProjectionlist): New classes with the
386            read tests from TestProjFile.
387            (TestProjFile.doTestRead, TestProjFile.testRead): Removed. These
388            tests are now in the new classes.
389            (sample_projfile, sample_projfile_data)
390            (sample_projfile2, sample_projfile_data2): Removed. Not used
391            anymore.
392            (TestProjFile.test_read_unreadable_file): No need to reset the
393            permissions at the end anymore since we use a unique filename
394    
395    2003-10-13  Bernhard Herzog  <[email protected]>
396    
397            * test/test_proj.py: Some more refactoring of the test cases
398            (ProjFileTest): New base class for the proj file tests.
399            (TestProjFile): Derive from ProjFileTest
400            (TestProjFile.test_read_unreadable_file)
401            (TestProjFile.test_read_empty_file, TestProjFile.doTestRead): Use
402            the new filename method to get a unique filename
403            (TestProjFile.doTestWrite, TestProjFile.testWrite): Removed.
404            (WriteProjFileTests): New class for proj file write tests.
405            Contains the write test that were in TestProjFile originally.
406    
407    2003-10-13  Bernhard Herzog  <[email protected]>
408    
409            * test/test_proj.py (TestProjFile.testRead)
410            (TestProjFile.test_read_non_existing_file)
411            (TestProjFile.test_read_unreadable_file)
412            (TestProjFile.test_read_empty_file): Split into several methods.
413    
414  2003-10-10  Bernhard Herzog  <[email protected]>  2003-10-10  Bernhard Herzog  <[email protected]>
415    
416          * Thuban/UI/sizers.py: New file with custom sizers.          * Thuban/UI/sizers.py: New file with custom sizers.

Legend:
Removed from v.1810  
changed lines
  Added in v.1878

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26