/[thuban]/trunk/thuban/Thuban/UI/about.py
ViewVC logotype

Contents of /trunk/thuban/Thuban/UI/about.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2582 - (show annotations)
Thu Mar 10 22:47:14 2005 UTC (19 years, 11 months ago) by jan
File MIME type: text/x-python
File size: 6219 byte(s)
(About.__init__): Added status of the extensions to the about text.

1 # Copyright (c) 2001-2005 by Intevation GmbH
2 # Authors:
3 # Jonathan Coles <[email protected]>
4 # Bernhard Reiter <[email protected]>
5 # Silke Reimer <[email protected]>
6 #
7 # This program is free software under the GPL (>=v2)
8 # Read the file COPYING coming with Thuban for details.
9
10 """The About Box"""
11
12 __version__ = "$Revision$"
13 # $Source$
14 # $Id$
15
16 from wxPython.wx import *
17
18 from locale import getdefaultlocale
19
20 from Thuban import _
21 from Thuban.version import versions
22 from Thuban.Model.resource import gdal_support_status
23
24 from Thuban.UI.extensionregistry import ext_registry
25
26 class About(wxDialog):
27
28 def __init__(self, parent):
29 wxDialog.__init__(self, parent, -1, _("About Thuban"),
30 style = wxDEFAULT_DIALOG_STYLE
31 | wxSYSTEM_MENU
32 | wxMINIMIZE_BOX
33 | wxMAXIMIZE_BOX
34 | wxRESIZE_BORDER,
35 size = (400, 250))
36
37 # Note: The source code is in ASCII, so we escape some
38 # characters to get byte strings in latin1.
39 lead_developer = 'Bernhard Herzog'
40 developers = [ 'Jonathan Coles',
41 'Frank Koormann',
42 unicodeToLocale(u'Martin M\xfcller'),
43 'Bernhard Reiter',
44 'Jan-Oliver Wagner' ]
45 translators = [ ( _('French'), 'Daniel Calvelo Aros' ),
46 ( _('German'), unicodeToLocale(u'Bj\xf6rn Broscheit')),
47 ( _('Hungarian'), 'Norbert Solymosi'),
48 ( _('Italian'), 'Maurizio Napolitano'),
49 ( _('Portuguese (Brazilian)'), 'Eduardo Patto Kanegae'),
50 ( _('Russian'), 'Alex Shevlakov'),
51 ( _('Spanish'), 'Daniel Calvelo Aros') ]
52 other_contributors = [ 'Jonathan Byron',
53 'Ole Rahn',
54 'Silke Reimer' ]
55 dyn_modules = [ ('wxPython', versions['wxPython']),
56 ('Python', versions['python']),
57 ('PySQLite', versions['pysqlite']),
58 ('SQLite', versions['sqlite']),
59 ('GDAL', versions.get('gdal', _('- not available'))),
60 ('psycopg', versions.get('psycopg',
61 _('- not available')))]
62 direct_modules = [ \
63 ('GTK', versions.get('gtk', _('- not available'))),
64 ('proj', versions['proj']) ]
65
66 text = 'Thuban %s\n\n' % versions['thuban-long']
67
68 text += _('Currently using:\n')
69
70 for name, version in dyn_modules:
71 text+= '\t%s %s\n' % (name, version)
72 text += '\n'
73
74 if gdal_support_status:
75 text += gdal_support_status + "\n\n"
76
77 text += _('Compiled for:\n')
78
79 for name, version in direct_modules:
80 text+= '\t%s %s\n' % (name, version)
81 text += '\n'
82
83 text += _('Extensions:\n')
84 if ext_registry:
85 for ext in ext_registry:
86 text += '\t%s %s\n' % (ext.name, ext.version)
87 else:
88 text += _('\tNone registered.\n')
89 text += '\n'
90
91 text += _('Lead Developer:\n')
92 text += '\t%s\n\n' % lead_developer
93
94 text += _('Developers:\n')
95 for name in developers:
96 text += '\t%s\n' % name
97 text += '\n'
98
99 text += _('Translators:\n')
100 for lang, name in translators:
101 text += '\t%s: %s\n' % (lang, name)
102 text += '\n'
103
104 text += _('Other Contributors:\n')
105 for name in other_contributors:
106 text += '\t%s\n' % name
107 text += '\n'
108
109 text += \
110 _("Questions and comments can be sent to the following addresses:\n"
111 "\tGeneral list (public):\n\t\t<[email protected]>\n"
112 "\tDevelopers list (public):\n\t\t<[email protected]>\n"
113 "\tThuban team at Intevation:\n\t\t<[email protected]>\n"
114 )
115
116 text += '\n\n'
117
118 text += _("Details on the registered extensions:\n\n")
119
120 if ext_registry:
121 for ext in ext_registry:
122 text += '%s %s:\n' % (ext.name, ext.version)
123 text += _('Copyright %s\n') % ext.copyright
124 text += _('Authors:\n')
125 for author in ext.authors:
126 text+= '\t%s\n' % author
127 text += ext.desc
128 text += '\n'
129 text += 'Status: %s' % ext.status
130 text += '\n\n'
131 else:
132 text += _('\tNone registered.\n')
133
134 self.text = text
135
136 text_title = wxStaticText(self, -1,
137 _("Thuban is a program for exploring geographic data.\n\n") +
138 "Copyright 2001-2004 Intevation GmbH.\n" +
139 _("Thuban is licensed under the GNU GPL"),
140 style=wxST_NO_AUTORESIZE|wxALIGN_CENTRE)
141
142 textBox = wxTextCtrl(self, -1, text,
143 style=wxTE_READONLY|wxTE_MULTILINE|wxTE_LINEWRAP)
144 w, h = (300, 150)
145 textBox.SetSizeHints(w, h)
146 textBox.SetSize((w, h))
147
148 button_close = wxButton(self, wxID_CANCEL, _("Close"))
149 button_close.SetDefault()
150
151 sizer = wxBoxSizer(wxVERTICAL)
152 sizer.Add(text_title, 0, wxALL|wxEXPAND|wxADJUST_MINSIZE, 10)
153 sizer.Add(textBox, 1, wxALL|wxEXPAND, 10)
154 sizer.Add(button_close, 0, wxALL|wxALIGN_RIGHT, 10)
155
156 self.SetAutoLayout(True)
157 self.SetSizer(sizer)
158 sizer.Fit(self)
159 sizer.SetSizeHints(self)
160 self.Layout()
161
162 EVT_BUTTON(self, wxID_CANCEL, self.OnCancel)
163
164 def OnCancel(self, event):
165 self.EndModal(wxID_CANCEL)
166
167
168 def unicodeToLocale(unicodeStr):
169 "Function to convert unicode to the user's locale encoding"
170 # Under a german windows 2000 getlocale returns an encoding name
171 # that's not direcly usable (it's missing a "cp" at the beginning).
172 # getdefaultlocale does return a usable encoding name so we use that
173 # instead.
174 locale=getdefaultlocale()[1]
175 if locale is None:
176 locale = 'ascii'
177 return unicodeStr.encode(locale,'replace')

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26