/[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 2513 by bernhard, Mon Dec 27 17:00:15 2004 UTC revision 2645 by bh, Tue Jul 5 19:38:39 2005 UTC
# Line 1  Line 1 
1    2005-07-05  Bernhard Herzog  <[email protected]>
2    
3            * README: gdal 1.1.8 is too old.  1.2.5 works.
4    
5    2005-07-05  Bernhard Herzog  <[email protected]>
6    
7            * Thuban/Model/layer.py (Layer.__mangle_bounding_box)
8            (Layer.ClipBoundingBox): Rename ClipBoundingBox to
9            __mangle_bounding_box.  See the comments in the code and RT #2845
10    
11            * test/test_layer.py (TestLayer.test_arc_layer_with_projection):
12            Remove the explicit test of ClipBoundingBox.  The method isn't
13            public anymore and the direct call in the test wasn't necessary in
14            the first place.  If ClipBoundingBox (now __mangle_bounding_box)
15            isn't called, the return value of ShapesInRegion will be
16            different.
17    
18    2005-07-05  Bernhard Herzog  <[email protected]>
19    
20            * Thuban/UI/viewport.py (ViewPort.set_view_transform): Handle
21            ZeroDivisionError exceptions.  I don't know when they happen
22            exactly.  It probably happens when the projections aren't set
23            properly.
24    
25    2005-07-01  Bernhard Herzog  <[email protected]>
26    
27            First step towards unicode.  With this roughly we're at step 1
28            string_representation.txt
29    
30            * Doc/technotes/string_representation.txt: New.  Document how
31            strings are represented in Thuban and how to get to a Unicode
32            Thuban.
33    
34            * Thuban/__init__.py (set_internal_encoding)
35            (unicode_from_internal, internal_from_unicode): New. The first few
36            functions for the internal string representation
37    
38            * Thuban/UI/about.py (unicodeToLocale): Removed.  Use
39            internal_from_unicode instead.
40    
41            * Thuban/UI/__init__.py (install_wx_translation): Determine the
42            encoding to use for the internal string representation.  Also,
43            change the translation function to return strings in internal
44            representation even on unicode builds of wxPython
45    
46            * Thuban/Model/load.py (SessionLoader.check_attrs): Decode
47            filenames too.
48            (SessionLoader.start_clrange): Use check_attrs to decode and check
49            the attributes.
50    
51            * Thuban/Model/xmlreader.py (XMLReader.encode): Use
52            internal_from_unicode to convert unicode strings.
53    
54            * Thuban/Model/xmlwriter.py (XMLWriter.encode): Use
55            unicode_from_internal when applicable
56    
57            * test/runtests.py (main): New command line option:
58            internal-encoding to specify the internal string encoding to use
59            in the tests.
60    
61            * test/support.py (initthuban): Set the internal encoding to
62            latin-1
63    
64            * test/test_load.py (TestSingleLayer.test, TestClassification.test)
65            (TestLabelLayer.test): Use the internal string representation when
66            dealing with non-ascii characters
67    
68            * test/test_load_1_0.py (TestSingleLayer.test)
69            (TestClassification.test, TestLabelLayer.test): Use the internal
70            string representation when dealing with non-ascii characters
71    
72            * test/test_load_0_9.py (TestSingleLayer.test)
73            (TestClassification.test): Use the internal string representation
74            when dealing with non-ascii characters
75    
76            * test/test_load_0_8.py (TestUnicodeStrings.test): Use the
77            internal string representation when dealing with non-ascii
78            characters
79    
80            * test/test_save.py (XMLWriterTest.testEncode)
81            (SaveSessionTest.testClassifiedLayer): Use the internal string
82            representation when dealing with non-ascii characters where
83            applicable
84    
85    2005-06-30  Bernhard Herzog  <[email protected]>
86    
87            * test/runtests.py: Untabify.
88    
89    2005-06-30  Bernhard Herzog  <[email protected]>
90    
91            * Thuban/UI/renderer.py (ScreenRenderer.draw_selection_incrementally):
92            untabify.
93    
94    2005-06-30  Bernhard Herzog  <[email protected]>
95    
96            * Extensions/ogr/test/__init__.py: Add missing coding directive
97    
98    2005-06-28  Jan-Oliver Wagner <[email protected]>
99    
100            * Thuban/UI/renderer.py (ScreenRenderer.draw_selection_incrementally):
101            Use the default size for rendering selected items of default type.
102            Fixes part 2 of https://intevation.de/rt/webrt?serial_num=3149
103    
104    2005-06-28  Jan-Oliver Wagner <[email protected]>
105    
106            * Extensions/importAPR/apr.py (APR_BShSym): Extend by 'Stripple'.
107            (APR_TClr.GetThubanColor): Fix bug in color interpretation.
108            Thanks to Frank Koormann who identified this problem.
109    
110            * Extensions/importAPR/importAPR.py (APR_VShSym): New. Just
111            another symbol identified.
112    
113    2005-06-27  Jan-Oliver Wagner <[email protected]>
114    
115            * Doc/manual/thuban-manual-de.xml: More translations.
116    
117    2005-05-12  Jonathan Coles <[email protected]>
118            
119            * Thuban/UI/projdialog.py: Add missing import, which led to an
120            exception when opening a layer's projection.
121    
122    2005-05-09  Bernhard Herzog  <[email protected]>
123    
124            * test/support.py (FileLoadTestCase.filename): Fix doc-string.
125    
126    2005-05-09  Bernhard Herzog  <[email protected]>
127    
128            * Thuban/Model/postgisdb.py (PostGISConnection.connect): Set the
129            connection to autoconnect.  Fixes RT#3148.
130    
131            * test/test_postgis_db.py
132            (TestPostGISSpecialCases.test_simple_error_handling): New test
133            that attempts to reproduce RT#3148.
134    
135    2005-05-06  Jonathan Coles <[email protected]>
136    
137            Add support for saving and loading the opacity and mask type
138            properties of RasterLayers. Also add support for proper use
139            of alpha information while drawing images not in 'RAW' format.
140            If transparency in an image format (e.g, PNG) is supported by
141            wxWidgets then the image would previously have been draw with
142            transparent regions, but the opaque regions would have been
143            unaffected by a change in the layer's opacity. This patch
144            corrects the problem.
145    
146            * Thuban/Model/layer.py (RasterLayer): Added opacity and
147            masktype parameters to the constructor, and set the
148            appropriate variables to those values.
149    
150            * Thuban/Model/load.py (SessionLoader.start_rasterlayer): Added
151            code to read the opacity and mask type of the layer and construct
152            a new layer with the additional parameters.
153    
154            * Thuban/Model/save.py (SessionSaver.write_layer): Added code
155            to save the opacity and mask type of a layer.
156    
157            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer): Pass
158            the opacity of the layer to draw_raster_data rather than the layer.
159            (BaseRenderer.draw_raster_data): Remove the layer parameter because
160            the function doesn't need to know about the layer. Add the optional
161            opacity parameter whose default is 1.0. Add 'PNG' as a supported
162            graphics format.
163    
164            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Fixed
165            signature to match that in BaseRenderer. Use the new opacity argument
166            in place of calling layer.Opacity(). In the case where the
167            format is not 'RAW', alpha_data is None and the loaded image has
168            alpha information, use the file's alpha information. This is
169            still subject to the layer's opacity setting.
170    
171            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data):
172            Fixed signature to match that in BaseRenderer.
173    
174            * test/test_load.py (TestRasterLayer): Change file_contents to
175            include opacity and masktype variables.
176            (TestRasterLayer.test): Include tests for opacity and masktype
177            changes.
178    
179            * test/test_save.py (SaveSessionTest.testRasterLayer): Restructure
180            test to cover a variety of combinations of masktype and opacity
181            settings.
182    
183    2005-05-02  Jan-Oliver Wagner <[email protected]>
184    
185            * debian/rules: add --use-wx-python-swig-hack
186            to the build command.
187            Thanks to Moritz Lennert for pointing this out.
188    
189    2005-04-28  Jan-Oliver Wagner <[email protected]>
190    
191            Introduce OGRFileShapeStore in ogr extension.
192            This allows at least that loaded shapefile shape stores
193            can be saved correctly in the thuban session file
194            and reloaded again (reload is via core shapefile
195            routine, not OGR). For other types, .thuban files
196            can not be reloaded for the time being.
197    
198            * Extensions/ogr/ogrshapes.py (OGRFileShapeStore): New. This
199            class ist to be used for any file-based shape stores
200            accessed through OGR.
201    
202            * Extensions/ogr/ogrstart.py (open_with_ogr): Added
203            forgotten _ for i18n. Adapted call OpenFileShapestore
204            regarding new parameter.
205            (OpenFileShapestore): Use OGRFileShapeStore instead of
206            OGRShapeStore. Fix return value (None instead of null).
207            Add new parameter "mainwindow" to avoid accessing global
208            context.
209    
210    2005-04-27  Jan-Oliver Wagner <[email protected]>
211    
212            Introduce FileShapeStore as generalization for
213            file-based shape stores. In a first instance
214            this allows additional modules to handle shapefile
215            format as well, namely the OGR extension.
216    
217            * Thuban/Model/data.py: Various small fixes in doc-strings.
218            (FileShapeStore): New class.
219            (ShapefileStore): Derive from FileShapeStore.
220            (ShapefileStore.__init__): Call __init__ of FileShapeStore,
221            rename self.table to self._table, initialize self._bbox
222            (ShapefileStore._open_shapefile): Use self._bbox instead of self.bbox
223            and self.FileName() instead of self.filename.
224            (ShapefileStore.Table): Use self._table instead of self.table.
225            (ShapefileStore.FileName): Removed (moved to FileShapeStore).
226            (ShapefileStore.BoundingBox):  Use self._bbox instead of self.bbox.
227    
228            * Thuban/Model/save.py: Replace ShapefileStore by FileShapeStore.
229            (SessionSaver.write_data_containers): Only use methods of the
230            base class FileShapeStore.
231    
232    2005-04-26  Martin Schulze  <[email protected]>
233    
234            * Extensions/wms/wms.py (render_wms_layer): Adjusted the render
235            function to the modified render engine
236    
237    2005-04-25  Martin Schulze  <[email protected]>
238    
239            * Thuban/UI/renderer.py (MapRenderer.projected_raster_layer):
240            Added a description according to the CVS log message
241    
242    2005-04-23  Martin Schulze  <[email protected]>
243    
244            * Thuban/UI/renderer.py: Added a missing import
245    
246    2005-04-23  Russell Nelson  <[email protected]>
247    
248            * Thuban/UI/view.py (MapCanvas.OnMiddle{Up,Down}): Changed the
249            way the previous tool is remembered, so that middle-button
250            panning works even if you haven't selected a tool.
251    
252    2005-04-11  Bernhard Herzog  <[email protected]>
253    
254            * libraries/thuban/wxproj.cpp: Move the compatibility code that
255            deals with the wxPython 2.4 version of wxPython.h into the #ifdef
256            branch that includes wxPython.h because it's only needed when
257            wxPython.h is used.  Also, it won't compile when
258            USE_WX_PYTHON_SWIG_HACK is set otherwise.
259    
260    2005-04-07  Bernhard Herzog  <[email protected]>
261    
262            * Thuban/UI/classifier.py (ClassGrid.__init__): Use -1 as the ID.
263            (ID_CLASS_TABLE): Removed. It wasn't used anywhere except in
264            ClassGrid.__init__ and it's value is outside of the valid
265            range (must be < 32768).  wxPython 2.5 complains about it with an
266            exception.
267    
268    2005-04-05  Jan-Oliver Wagner <[email protected]>
269    
270            * Doc/manual/thuban-manual-de.xml: More translations.
271    
272    2005-04-05  Bernhard Herzog  <[email protected]>
273    
274            * libraries/thuban/wxproj.cpp: Make it work with a wxPython.h from
275            wxPython 2.4 as well.  Also, remove a now obsolete comment.
276    
277    2005-04-05  Bernhard Herzog  <[email protected]>
278    
279            Use wxPython.h by default but provide a workaround when it isn't
280            available.
281    
282            * setup.py (wxproj_extension): New variable.  Assign the Extension
283            instance for Lib.wxproj to this variable instead of putting it
284            directly into the listso that it can be accessed by other code
285            later.
286            (thuban_build_ext.user_options): Added boolean option
287            --use-wx-python-swig-hack.
288            (thuban_build_ext.initialize_options): Initialize the new option
289            to False.
290            (thuban_build_ext.finalize_options): If the new option was given,
291            define the preprocesser macro USE_WX_PYTHON_SWIG_HACK.
292            (thuban_build_ext): Update the doc-string
293    
294            * libraries/thuban/wxproj.cpp: Normally we use
295            wx/wxPython/wxPython.h now.  Only if USE_WX_PYTHON_SWIG_HACK is
296            defined, use swigPtrConvertHack.h instead.
297    
298            * libraries/thuban/swigPtrConvertHack.h: Remove the code that was
299            copied over from wxPython.h.
300            (decode_pointer_new): New.  Equivalent of decode_pointer for
301            wxPython 2.5.
302            (wxPyConvertSwigPtr): Modified to cope with wxPython 2.5 as well.
303    
304            * README: Add section on potential build problems which explains
305            how the work-around for a missing wxPython.h is activated.
306    
307    2005-03-29  Bernhard Herzog  <[email protected]>
308    
309            * test/postgissupport.py (find_postgis_sql): Added yet another
310            potential location for (lw)postgis.sql because the file has moved
311            again in postgis 1.0.0 rc4.
312    
313    2005-03-29  Bernhard Herzog  <[email protected]>
314    
315            * Thuban/UI/legend.py (BMP_SIZE_W, BMP_SIZE_H): Set both to 16 to
316            match the site of the legend_icon_layer icon.  Otherwise wxpython
317            2.5 complains when the legend is created with the error:
318    
319            PyAssertionError: C++ assertion "(bitmap.GetWidth() == m_width &&
320            bitmap.GetHeight() == m_height) || (m_width == 0 && m_height ==
321            0)" failed in ./src/generic/imaglist.cpp(81): invalid bitmap size
322            in wxImageList: this might work on this platform but definitely
323            won't under Windows.
324    
325    2005-03-23  Jonathan Coles <[email protected]>
326    
327            These changes add support for adjusting the opacity of a raster layer.
328    
329            * Thuban/Model/layer.py (RasterLayer.Opacity): Replaces AlphaOpacity.
330            (RasterLayer.SetOpacity): Replaces SetAlphaOpacity. Also triggers
331            a LAYER_CHANGED event if the opacity actually changes.
332    
333            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_data): Added
334            layer parameter needed in the implementation of this method in
335            renderer.py.
336    
337            * Thuban/UI/layerproperties.py (LayerProperties.dialog_layout): Fixed
338            typo 00 -> 0.
339    
340            * Thuban/UI/rasterlayerproperties.py (RasterLayerProperties): Added
341            control to adjust opacity.
342    
343            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Scale the
344            alpha data based on the opacity level of the layer.
345    
346            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data): Now
347            accepts a layer parameter.
348    
349            * test/test_layer.py (TestLayerModification.test_raster_layer):
350            Rename opacity method calls and add test for LAYER_CHANGED.
351    
352    2005-03-16  Bernhard Herzog  <[email protected]>
353    
354            * test/test_connector.py (DeletionTestMixin.check_deletions)
355            (DeletionTestMixin.check_deletetions): renamed to check_deletions.
356            update the callers.
357    
358    2005-03-14  Jan-Oliver Wagner <[email protected]>
359    
360            * Doc/manual/thuban-manual-de.xml: More translations.
361    
362    2005-03-10  Jan-Oliver Wagner <[email protected]>
363    
364            Introducing initialization callbacks for extensions.
365    
366            * Thuban/UI/extensionregistry.py (ExtensionDesc.__init__): Added
367            optional parameter init_callback.
368            (ExtensionDesc.init_ext): New. Executes the callback and sets
369            a status.
370    
371            * Thuban/UI/application.py (ThubanApplication.OnInit): Add the
372            initialization of the extensions.
373            (ThubanApplication.init_extensions): Init all extensions.
374    
375            * Thuban/UI/about.py (About.__init__): Added status of the extensions
376            to the about text.
377    
378            * Extensions/gns2shp/__init__.py: Added init method for Extension
379            description.
380            (init): New. Contains the initialization of the module.
381    
382    2005-03-04  Nina H�ffmeyer <[email protected]>
383    
384            * Extensions/ogr/ogrdialog.py: Added a dialog, which asks for
385            OGRConnection to open a datasource. Removed dialog to display all
386            available drivers. Added some doc strings.
387    
388            * Extensions/ogr/ogrstart.py: Added menu entry for opening an
389            OGRDatasource with a string. Added two opening methods which return an
390            OGRDatasource (either data from file or from DB).
391    
392            * Extensions/ogr/ogrshapes.py: Added class OGRGeometry, which
393            represents a geometry reference of an OGRFeature. OGRShape now has a
394            list of referenced geometry objects (important for geometry
395            collections).
396            For OGRShapeStores loaded from a DB an ID column can be specified now.
397    
398    2005-02-22  Jan-Oliver Wagner <[email protected]>
399    
400            * test/test_map.py (TestMapWithContents.test_tree_info):
401            Added label layer for comparison.
402    
403    2005-02-18  Jonathan Coles <[email protected]>
404    
405            * libraries/thuban/gdalwarp.cpp (GetImageData): Optimize the loop
406            which builds a mask. Handle the majority of an image in a loop,
407            creating 8 bits at a time. Later, handle the edge case where less
408            than 8 bits are packed.
409    
410    2005-02-18  Bernhard Herzog  <[email protected]>
411    
412            * test/test_baserenderer.py (TestBaseRenderer.setUp): Fix
413            doc-string
414    
415    2005-02-18  Jonathan Coles <[email protected]>
416    
417            * setup.py: Remove wx_cs_params from gdal compile options.
418    
419    2005-02-18  Jonathan Coles <[email protected]>
420    
421            Refactored baserenderer.py and renderer.py to remove baserenderer.py's
422            dependencies on wxPython. Added a new method projected_raster_layer()
423            that returns a raster layer image in projected space. This must be
424            implemented in classes derived from BaseRenderer. This also eliminates
425            the dependency on gdal in baserenderer.py.
426    
427            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer): Call
428            new projected_raster_layer() to get projected raster image instead
429            of directly calling ProjectRasterFile().
430            (BaseRenderer.projected_raster_layer): New. This must be implemented
431            by derived classes. It takes almost the same arguments as ProjectRasterFile
432            did and returns a projected image with mask and alpha data (if requested).
433            (BaseRenderer.render_map_incrementally): Remove the check for gdal since
434            that check will be done in MapRenderer.projected_raster_layer(). This
435            also allows other implementations to use different projection code.
436    
437            * Thuban/UI/renderer.py (MapRenderer.projected_raster_layer):
438            Implementation of BaseRenderer.projected_raster_layer. Checks for
439            gdal support and wxPython version. Also handles exceptions from
440            ProjectRasterFile.
441    
442            * libraries/thuban/gdalwarp.cpp: Removed checks for wxPython versions
443            and added a variable which can be set through the options argument
444            of ProjectRasterFile.
445    
446            * test/test_baserenderer.py (SimpleRenderer.projected_raster_layer): New.
447            Calls ProjectRasterFile and returns the result.
448            (TestBaseRenderer.test_projected_raster_layer): New. Tests the results
449            of calling projected_raster_layer() with different options.
450            (TestBaseRenderer.test_raster_no_projection): Removed tests based on
451            wxPython version and all tests of masks and alpha channels. These are
452            now in test_projected_raster_layer().
453    
454    2005-02-17  Jan-Oliver Wagner <[email protected]>
455    
456            * Thuban/Model/map.py, Thuban/Model/label.py: Fixed
457            doc-strings to comply with coding_guidelines.
458    
459    2005-02-17  Jan-Oliver Wagner <[email protected]>
460    
461            Docstring improvements and minor fixes for labellayer.
462    
463            * Thuban/Model/map.py:
464            (Map, Map.Destroy, Map.RemoveLayer, Map.ClearLayers,
465            Map.Layers, Map.HasLayers, Map.MoveLayerToTop,
466            Map.RaiseLayer, Map.LowerLayer, Map.MoveLayerToBottom,
467            Map.ProjectedBoundingBox, Map.GetProjection): Improved/added
468            doc string.
469            (Map.BoundingBox): Removed superfluous test for label_layer
470            and improved doc string.
471            (Map.TreeInfo): Added label_layer and improved sdo string.
472    
473            * Thuban/Model/label.py: Added import of _.
474            (Label, Label.__init__): Improved/added doc string.
475            (LabelLayer, LabelLayer.__init__, LabelLayer.Labels,
476            LabelLayer.RemoveLabel, LabelLayer.ClearLabels):
477            Improved/added doc string.
478            (LabelLayer.AddLabel): Use already defined names for
479            align strings and improved doc string.
480            (LabelLayer.TreeInfo): New. Return the object data for
481            the tree view.
482    
483    2005-02-16  Jonathan Coles <[email protected]>
484    
485            Further wxPython 2.5 changes using patches from Daniel Calvelo Aros
486            so that that wxproj doesn't crash. Added GUI support for selecting
487            alpha channel (opacity can't be selected yet).
488    
489            NOTE: If wxPython.h is including in future distribution packages
490            then it will not be necessary to have the files swigPtrConvertHack.h
491            and wxPython_int.h included with Thuban. This is hopefully
492            a temporary workaround.
493    
494            * setup.py (thuban_build_ext.finalize_options): gdalwarp needs
495            access to the macro wxCHECK_VERSION so that it will properly
496            generate a bit mask. There was a problem between wx2.4 and wx2.5
497            that this works around.
498    
499            * Thuban/Model/layer.py (RasterLayer.UseMask): Removed in favor
500            of RasterLayer.MaskType.
501            (RasterLayer.SetUseMask): Removed in favor of RasterLayer.SetMaskType
502            (RasterLayer.MaskType): New. Returns the type of mask to use. Can
503            specify none, a bitmap, or an alpha channel.
504            (RasterLayer.SetMaskType): New. Set what kind of mask to use.
505    
506            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer):
507            Set the raster warping options for the mask based on the value
508            of RasterLayer.MaskType.
509    
510            * Thuban/UI/legend.py (LegendTree.__FillTreeLayer): Remove
511            deprecated calls to SetItemSelectedImage in favor of SetItemImage
512            with wxTreeItemIcon_Selected.
513    
514            * Thuban/UI/rasterlayerproperties.py: Support selecting to use
515            an alpha channel for the mask.
516    
517            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Use alpha
518            data if it is available and an alpha channel is supported under
519            the current version of wxPython.
520    
521            * libraries/thuban/gdalwarp.cpp (GetImageData): Added compiler define
522            to select whether 1's or 0's select the desired portion of an image
523            in the bit mask. wx2.4 has a bug where the documentation is the opposite
524            from behavior.
525            (ProjectRasterFile): Only generate an alpha channel if the version
526            of wxPython is >= 2.5.3.
527    
528            * libraries/thuban/wxproj.cpp: Applied patches from Daniel Calvelo Aros.
529            When wxPython >= 2.5.3 use the special swig functions to decode an
530            object's address.
531    
532            * libraries/thuban/swigPtrConvertHack.h: Includes conditional code
533            based on the version of wxPython. If >= 2.5.3 use the special swig
534            functions from wxPython to decode wxPython objects, otherwise use
535            the old method of retrieving the address from the object __repr__ string.
536    
537            * libraries/thuban/wxPython_int.h: Copied from wxPython source.
538            Unnecessary code was removed to make it smaller.
539    
540            * test/test_baserenderer.py (TestBaseRenderer.test_raster_no_projection):
541            Add tests for returning an alpha channel.
542    
543            * test/test_layer.py (TestLayerModification.test_raster_layer): Fix
544            tests that used removed functions UseMask and SetUseMask
545    
546    
547    2005-02-08  Bernhard Herzog  <[email protected]>
548    
549            More wxPython 2.5 changes.  This time taken from a patch from
550            Daniel Calvelo Aros.
551    
552            * Thuban/UI/tableview.py (QueryTableFrame.__init__)
553            (QueryTableFrame.__init__): Pass the size of a spacer as a single
554            item.
555    
556            * Thuban/UI/projdialog.py (ProjFrame.build_dialog)
557            (ProjFrame.build_dialog): Pass the size of a spacer as a single
558            item.
559    
560            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Pass the
561            size of a spacer as a single item.
562    
563            * Thuban/UI/classifier.py (Classifier.dialog_layout): Pass the
564            size of a spacer as a single item.
565    
566    2005-02-08  Bernhard Herzog  <[email protected]>
567    
568            Compatibility with wxPython 2.5.  The changes should make it work
569            better with 2.5 while still keeping compatibility with 2.4.  There
570            are still problems with 2.5, though.
571    
572            * Thuban/UI/dock.py (DockableWindow.__CreateBorder): Pass the size
573            of a spacer as a single item.
574    
575            * Thuban/UI/classifier.py (ClassGroupPropertiesCtrl): Derive only
576            from wxControl
577    
578            * Thuban/UI/legend.py (LegendTree): When running with wxPython <
579            2.5, add an implementation of the GetFirstChild method that does
580            not require the second parameter.
581            (LegendTree.find_layer, LegendTree._OnMsgMapLayersAdded)
582            (LegendTree._OnMsgMapLayersRemoved, LegendTree.DeleteAllItems)
583            (LegendTree.DeleteChildren, LegendTree.__ShowHideLayer): Do not
584            pass the second parameter to GetFirstChild
585    
586    2005-02-08  Nina H�ffmeyer <[email protected]>
587    
588            * Extensions/ogr/ogrshapes.py: Removed some print commands.
589    
590            * Extensions/ogr/ogrstart.py: Changed the GUI. OGR is no longer an
591            additional menu but appears as a possibility in the menu Map.
592    
593    2005-02-07  Jonathan Coles <[email protected]>
594            * libraries/thuban/gdalwarp.cpp: Removed the macros PYTHON_ERR
595            and PYTHON_ERRF since they were no longer necessary.
596    
597    2005-02-07  Bernhard Reiter <[email protected]>
598            * Thuban/UI/classifier.py (ClassGrid.DeleteSelectedRows):
599            Enable translation for message string.
600    
601    2005-02-06  Martin Schulze  <[email protected]>
602    
603            * Extensions/wms/infodialog.py (wmsInfoDialog.__init__): Adjusted
604            the arguments of the contstructor to fit the global scheme
605    
606    2005-01-31  Nina H�ffmeyer <[email protected]>
607    
608            * Extensions/ogr/ogrdialog.py: Added class ogrdialog.py, which provides
609            some dialogs needed to start ogr.
610            
611            * Extensions/ogr/__init__.py: Changed comments to avoid encoding
612            warnings.
613    
614            * Extensions/ogr/test/test_OGRShapestore.py: Changed comments to avoid
615            encoding warnings.
616    
617    2005-01-28  Jonathan Coles <[email protected]>
618    
619            * libraries/thuban/gdalwarp.cpp (GetImageData): Recode how the
620            mask is packed into a bit array. It's now slightly faster.
621    
622    2005-01-28  Jonathan Coles <[email protected]>
623    
624            * Thuban/Model/layer.py (RasterLayer.__init__): Make use_mask
625            default to true.
626    
627            * Thuban/Model/load.py (SessionLoader.start_rasterlayer): Remove
628            code that loads the state of the layer's use_mask flag. Its
629            usefulness is still being debated.
630    
631            * Thuban/Model/save.py (SessionSaver.write_layer): Remove
632            code that saves the state of the layer's use_mask flag. Its
633            usefulness is still being debated.
634    
635            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer): Pass
636            options to ProjectRasterFile based on the state of layer.UseMask().
637            Catch more exceptions from ProjectRasterFile so that Thuban doesn't
638            quit is there is a problem projecting.
639            (BaseRenderer.draw_raster_data): Change the documentation to
640            describe the new format (XBM) that the mask data will be in.
641    
642            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): The mask
643            data is in XBM format when format='RAW' which means it doesn't
644            need to be converted to a wxImage before being used as a mask
645            for a wxBitmap. Assume that if format != 'RAW' that the image
646            data and mask data are in the same format.
647    
648            * libraries/thuban/gdalwarp.cpp (GetImageData): If alpha is enabled
649            and a mask is requested, convert the alpha band to a bit array in
650            XBM format. if an alpha channel is requested, simply return the
651            data in the alpha band. Provide better error handling by returning
652            python error messages (also fixes RT #2947).
653            (ProjectRasterFile): Support multiple mask options, rather than simply
654            a flag indicating that a mask should or should not be used. Provide
655            better error handling by returning python error messages.
656    
657            * test/test_baserenderer.py (TestBaseRenderer.test_raster_no_projection):
658            Add mask data to test.
659    
660            * test/test_layer.py (TestLayer.test_raster_layer): Test that a layer
661            should use the mask by default.
662            (TestLayerModificaton.test_raster_layer): Test that a layer should use
663            the mask by default.
664    
665            * test/test_load.py (TestRasterLayer.test): Remove testing for
666            use_mask flag in file.
667    
668            * test/test_save.py (SaveSessionTest.testRasterLayer): Remove testing
669            for use_mask in file.
670    
671            * test/test_load_1_0_1.py: Removed. Shouldn't have been checked in.
672            
673    2005-01-26  Jonathan Coles <[email protected]>
674    
675            Add a new dialog box for raster layers. The dialog box allows
676            the user to toggle a mask that is generated by ProjectRasterFile
677            and is used to only draw the real parts of the projected image.
678    
679            * Thuban/UI/baserenderer.py (BaseRenderer.draw_raster_layer):
680            Instruct the warping code to generate a mask if the raster layer
681            requests one.
682            (BaseRenderer.draw_raster_data): Removed obsolete optional mask argument.
683    
684            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Removed
685            obsolete optional mask argument.
686    
687            * Thuban/UI/classifier.py (Classifier): Change the parent class
688            to LayerProperties and rework the code to support layout calls
689            from the parent.
690            (Classifier.dialog_layout): New. Layout the dialog box.
691            (Classifier.map_layers_removed): Removed. Moved to parent class.
692            (Classifier.map_replaced): Removed. Moved to parent class.
693            (Classifier._OnTry): Renamed to OnTry to support parent class.
694            (Classifier.OnClose): Removed. Supplied in parent class.
695            (Classifier._OnCloseBtn): Removed. Supplied in parent class as OnCloseBtn.
696            (Classifier._OnOK): Renamed to OnOK to support parent class.
697            (Classifier._OnRevert): Renamed to OnRevert to support parent class.
698    
699            * Thuban/UI/layerproperties.py: New. Base class for layer properties
700            dialog boxes.
701    
702            * Thuban/UI/rasterlayerproperties.py: New. Class for displaying
703            raster layer properties.
704    
705            * libraries/thuban/gdalwarp.cpp: Replace the old gdalwarp.cpp code
706            with the non-simple version supplied with gdal. This allows added
707            features such as creating an alpha band.
708            (GetImageData): Generate a mask array from the alpha band that is
709            generated by gdal if the user has selected it. Try to support images
710            that have more than three bands, such as images with RGB plus an
711            alpha band.
712            (ProjectRasterFile): Convert python argument for mask and tell
713            gdal to enable or disable an alpha band.
714    
715            * Thuban/Model/layer.py (BaseLayer.Type): New. Returns a string
716            describing what kind of layer the class is. Defaults to "Unknown",
717            but should be overridden by subclasses.
718            (Layer.Type): New. Override base class method.
719            (RasterLayer.__init__): Create a flag for using a mask. Record extra
720            data from gdal for display in the properties dialog.
721            (RasterLayer.Type): New. Override base class method.
722            (RasterLayer.UseMask): New. Returns True if the mask should be used.
723            (RasterLayer.SetUseMask): New. Set if the mask should be used.
724            (RasterLayer.ImageInfo): New. Return extra information about the image.
725    
726            * Thuban/Model/load.py (SessionLoader.start_rasterlayer): Load
727            the mask information.
728    
729            * Thuban/Model/save.py (SessionSaver.write_layer): Save mask information.
730    
731            * Thuban/UI/mainwindow.py: Register the RasterLayerProperties and
732            Classifier classes as dialogs to use with the proper layer types.
733    
734            * test/test_baserenderer.py (TestBaseRenderer.test_raster_no_projection):
735            Fix test.
736    
737            * test/test_layer.py (TestLayer.test_raster_layer): Test new methods.
738            (TestLayerModification.build_path): New. Support function.
739            (TestLayerModification.test_raster_layer): New. Test new methods.
740    
741            * test/test_save.py (SaveSessionTest.testRasterLayer): Add tests for mask.
742    
743            * test/test_load.py (TestRasterLayer): Add tests for mask.
744    
745            * test/test_load_1_0_1.py: New. Copied from test_load.py.
746    
747            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data): Removed
748            obsolete optional mask argument.
749    
750    2005-01-26  Nina H�ffmeyer <[email protected]>
751    
752            * Extensions/ogr/ogrshapes.py: Added two dictionaries to ShapeStore
753            which maps the ids and the ordinals. Fixed RowIdToOrdinal(),
754            RowOrdinalToId() and ReadRowAsDict().
755    
756            * Extensions/ogr/ogrstart.py: Added menu item which opens database
757            layers for existing database connections.
758    
759            * Extensions/ogr/test/test_OGRShapestore.py: Fixed a message string.
760    
761    
762    2005-01-26  Jan-Oliver Wagner <[email protected]>
763    
764            * Doc/manual/thuban-manual-de.xml: More translations.
765    
766    2005-01-24  Bernhard Herzog  <[email protected]>
767    
768            Rework the status bar updates a bit to make sure the message about
769            the projections is produced at the right times.
770    
771            * Thuban/UI/mainwindow.py (MainWindow.update_status_bar_messages):
772            New class variable with messages that may require a status bar
773            update.
774            (MainWindow.view_position_changed)
775            (MainWindow.update_status_bar): Rename from view_position_changed
776            to update_status_bar.  It's meaning has changed now that it may
777            also generate messages about problems with projection settings.
778            (MainWindow.__init__): Use the new update_status_bar_messages
779            class variable to subscribe update_status_bar
780            (MainWindow.set_position_text): Update doc-string.  This method
781            has to be renamed at some point.  See doc-string and comments.
782            (MainWindow.OnClose): Unsubscribe update_status_bar from all
783            messages in update_status_bar_messages
784    
785            * Thuban/UI/viewport.py (ViewPort.forwarded_map_messages): New
786            class attribute.  map messages to be forwarded by the viewport.
787            (ViewPort._subscribe_map, ViewPort._unsubscribe_map): (un)subscribe
788            the messages in forwarded_map_messages
789    
790    2005-01-21  Bernhard Herzog  <[email protected]>
791    
792            * test/postgissupport.py (PostGISDatabase.__init__): Tweak
793            doc-string
794            (find_postgis_sql): Update for postgis-1.0.0-rc1, which uses a
795            different name for the initialization SQL file.
796    
797    2005-01-21  Jonathan Coles <[email protected]>
798    
799            * Thuban/UI/baserenderer.py (proj_params_to_str): New. Takes
800            a projection and returns a formatted string representing the
801            parameters to feed to gdalwarp. This function eliminates
802            redundancy in draw_raster_layer().
803            (BaseRenderer.render_map_incrementally): Removed the optimization which
804            drew the top most raster layer first and then only those vector-
805            based layers that are above it. With the support for transparency
806            this optimization breaks correct behaviour.
807            (BaseRenderer.draw_raster_layer): Reorganize code to support possible
808            future enhancements to raster layer bounding box. The old behaviour has
809            not changed. Also, change calling parameters to draw_raster_data()
810            to specify new RAW data format and mask.
811            (BaseRenderer.draw_raster_data): Change signature to include an optional
812            parameter for mask information. Change documentation to mention
813            support for new parameter and added option for RAW data format.
814            The data argument is now a list of [width, height, data].
815    
816            * Thuban/UI/renderer.py (MapRenderer.draw_raster_data): Add new optional
817            mask parameter. Add new condition for RAW format, which
818            significantly reduces rendering time. Add condition for
819            mask parameter.
820    
821            * libraries/thuban/gdalwarp.cpp (GetImageData): New. Creates a
822            data array of RGB values from the projected image returned from
823            the gdal warping functions. In the case of palette based images, it
824            converts the NO_DATA index to the mask color.
825            (ProjectRasterFile): Removed all custom memory driver references
826            and replaced it with the standard in-memory dataset provided
827            by gdal. The return data is no longer a BMP file, but an array
828            of RGB values, one set triple per pixel.
829    
830            * libraries/thuban/bmpdataset.cpp: Removed. Unnecessary.
831            * libraries/thuban/cpl_mfile.h: Removed. Unnecessary.
832            * libraries/thuban/cpl_mfile.cpp: Removed. Unnecessary.
833    
834            * setup.py (thuban_build_ext.finalize_options): Removed mention
835            of cpl_mfile.cpp and bmpdataset.cpp files in the list of source
836            files. These are obsolete with the new version of gdalwarp.cpp
837    
838            * test/test_baserenderer.py (SimpleRenderer.draw_raster_data):
839            Updated signature.
840            (TestBaseRenderer.test_raster_no_projection): Changed the test
841            data to be data in the uncompressed RAW format returned from
842            ProjectRasterFile.
843    
844    2005-01-21  Jan-Oliver Wagner <[email protected]>
845    
846            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed): Made
847            string available for i18n.
848    
849    2005-01-20  Russell Nelson  <[email protected]>
850    
851            * Resources/Projections/defaults.proj: Ruin the speling of the
852            Lambert-93 projection so it doesn't run into the wx UTF-8 bug.
853            It's the wrong thing to do in the long run, but it's necessary for
854            those users until that bug is fixed.  Otherwise the projection
855            dialog segfaults.  Better to annoy some Lambert-93 users with a
856            spelling mistake than every Fedora Core 3 user of Thuban-CVS.
857    
858    2005-01-20  Bernhard Reiter <[email protected]>
859    
860            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed): Added
861            docstring and comment that the warning code here is a hack.
862    
863    2005-01-20  Russell Nelson  <[email protected]>
864    
865            * Thuban/UI/mainwindow.py (MainWindow.view_position_changed): Warn
866            user about misprojected layers when their lat/lon bounding
867            box exceeds rational lat/lon values.
868    
869    2005-01-20  Bernhard Reiter <[email protected]>
870    
871            * Thuban/UI/about.py (unicodeToLocale): Improved:
872            Use 'ascii' and then 'replace' for other characters
873            when getdefaultlocale returns None. Thanks to Bernhard H. .
874    
875    2005-01-20  Bernhard Reiter <[email protected]>
876    
877            * Thuban/UI/classgen.py (GenQuantilesPanel.OnRetrieve): Added a comment
878            that OnRangeText might be called twice and using None as argument.
879    
880    2005-01-20  Bernhard Reiter <[email protected]>
881    
882            * Thuban/UI/classgen.py (GenQuantilesPanel.OnRetrieve): Add a
883            OnRangeText(0) to work around a different in wx Behaviour noticed
884            on MacOSX, thanks to Lorenzo Moretti and Daniel Calvelo for the fix.
885    
886    2005-01-20  Bernhard Reiter <[email protected]>
887    
888            * Thuban/UI/about.py: take iso-8859-15 when getdefaultlocale returns
889            None. (Fixes rt#2910.)
890            
891    2005-01-18  Frank Koormann <[email protected]>
892    
893            New Extension: mouseposition
894            Tool to collect mouse click positions (map coordinates) in a dialog.
895    
896            * Extensions/mouseposition/__init__.py: New, extension registration
897    
898            * Extensions/mouseposition/mouseposition.py: New, implements the
899            dialog and adds a tool to Thuban mainwindow.
900    
901            * Extensions/mouseposition/position.xpm: New, icon for tool.
902    
903    2005-01-14  Jan-Oliver Wagner <[email protected]>
904    
905            * Doc/manual/thuban-manual-de.xml: More translations.
906    
907    2005-01-11  Frank Koormann <[email protected]>
908    
909            * Thuban/UI/mainwindow.py (MainWindow.DuplicateLayer):
910            Fix indention bug.
911    
912    2005-01-09  Frank Koormann <[email protected]>
913    
914            * Thuban/UI/mainwindow.py (MainWindow.DuplicateLayer):
915            BugFix 2901: Explicitly copy layers ClassificationColumn since it
916            is not part of the layers Classification.
917    
918    2005-01-03  Frank Koormann <[email protected]>
919    
920            * Thuban/UI/renderer.py (ScreenRendererdraw_selection_incrementally):
921            BugFix 2883: Former implementation only worked on classified point
922            layers: KeyError was raised, now use the default size if field is None.
923    
924  2004-12-27  Bernhard Reiter <[email protected]>  2004-12-27  Bernhard Reiter <[email protected]>
925    
926          svgexport 1.0.0cvs: Fixed label export.          svgexport 1.0.0cvs: Fixed label export.

Legend:
Removed from v.2513  
changed lines
  Added in v.2645

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26