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

Legend:
Removed from v.1796  
changed lines
  Added in v.1876

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26