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

Legend:
Removed from v.1794  
changed lines
  Added in v.1880

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26