示例#1
0
文件: ghelp.py 项目: yantongw/grass
    def _pageCredit(self):
        """Credit about"""
        # credits
        authfile = os.path.join(os.getenv("GISBASE"), "AUTHORS")
        if os.path.exists(authfile):
            with codecs.open(authfile, encoding='utf-8',
                             mode='r') as authorsFile:
                authors = ''.join(authorsFile.readlines())
        else:
            authors = _('%s file missing') % 'AUTHORS'
        authorwin = ScrolledPanel(self.aboutNotebook)
        authortxt = TextCtrl(authorwin,
                             id=wx.ID_ANY,
                             value=authors,
                             style=wx.TE_MULTILINE | wx.TE_READONLY)
        authorwin.SetAutoLayout(True)
        authorwin.SetupScrolling()
        authorwin.sizer = wx.BoxSizer(wx.VERTICAL)
        authorwin.sizer.Add(authortxt,
                            proportion=1,
                            flag=wx.EXPAND | wx.ALL,
                            border=3)
        authorwin.SetSizer(authorwin.sizer)
        authorwin.Layout()

        return authorwin
示例#2
0
文件: ghelp.py 项目: yantongw/grass
    def _pageLicense(self):
        """Licence about"""
        licfile = os.path.join(os.getenv("GISBASE"), "GPL.TXT")
        if os.path.exists(licfile):
            licenceFile = open(licfile, 'r')
            license = ''.join(licenceFile.readlines())
            licenceFile.close()
        else:
            license = _('%s file missing') % 'GPL.TXT'
        # put text into a scrolling panel
        licensewin = ScrolledPanel(self.aboutNotebook)
        licensetxt = TextCtrl(licensewin,
                              id=wx.ID_ANY,
                              value=license,
                              style=wx.TE_MULTILINE | wx.TE_READONLY)
        licensewin.SetAutoLayout(True)
        licensewin.sizer = wx.BoxSizer(wx.VERTICAL)
        licensewin.sizer.Add(licensetxt,
                             proportion=1,
                             flag=wx.EXPAND | wx.ALL,
                             border=3)
        licensewin.SetSizer(licensewin.sizer)
        licensewin.Layout()
        licensewin.SetupScrolling()

        return licensewin
示例#3
0
文件: ghelp.py 项目: yantongw/grass
    def _pageCitation(self):
        """Citation information"""
        try:
            # import only when needed
            import grass.script as gscript
            text = gscript.read_command('g.version', flags='x')
        except CalledModuleError as error:
            text = _("Unable to provide citation suggestion,"
                     " see GRASS GIS website instead."
                     " The error was: {0}").format(error)

        # put text into a scrolling panel
        window = ScrolledPanel(self.aboutNotebook)
        stat_text = TextCtrl(window,
                             id=wx.ID_ANY,
                             value=text,
                             style=wx.TE_MULTILINE | wx.TE_READONLY)
        window.SetAutoLayout(True)
        window.sizer = wx.BoxSizer(wx.VERTICAL)
        window.sizer.Add(stat_text,
                         proportion=1,
                         flag=wx.EXPAND | wx.ALL,
                         border=3)
        window.SetSizer(window.sizer)
        window.Layout()
        window.SetupScrolling()

        return window
示例#4
0
    def _pageCitation(self):
        """Citation information"""
        try:
            # import only when needed
            import grass.script as gscript
            text = gscript.read_command('g.version', flags='x')
        except CalledModuleError as error:
            text = _("Unable to provide citation suggestion,"
                     " see GRASS GIS website instead."
                     " The error was: {}").format(error)

        # put text into a scrolling panel
        window = ScrolledPanel(self.aboutNotebook)
        stat_text = wx.TextCtrl(
            window, id=wx.ID_ANY, value=text,
        style=wx.TE_MULTILINE | wx.TE_READONLY)
        window.SetAutoLayout(True)
        window.sizer = wx.BoxSizer(wx.VERTICAL)
        window.sizer.Add(item=stat_text, proportion=1,
                         flag=wx.EXPAND | wx.ALL, border=3)
        window.SetSizer(window.sizer)
        window.Layout()
        window.SetupScrolling()

        return window
示例#5
0
文件: ghelp.py 项目: yantongw/grass
    def _pageCopyright(self):
        """Copyright information"""
        copyfile = os.path.join(os.getenv("GISBASE"), "COPYING")
        if os.path.exists(copyfile):
            copyrightFile = open(copyfile, 'r')
            copytext = copyrightFile.read()
            copyrightFile.close()
        else:
            copytext = _('%s file missing') % 'COPYING'

        # put text into a scrolling panel
        copyrightwin = ScrolledPanel(self.aboutNotebook)
        copyrighttxt = TextCtrl(copyrightwin,
                                id=wx.ID_ANY,
                                value=copytext,
                                style=wx.TE_MULTILINE | wx.TE_READONLY)
        copyrightwin.SetAutoLayout(True)
        copyrightwin.sizer = wx.BoxSizer(wx.VERTICAL)
        copyrightwin.sizer.Add(copyrighttxt,
                               proportion=1,
                               flag=wx.EXPAND | wx.ALL,
                               border=3)
        copyrightwin.SetSizer(copyrightwin.sizer)
        copyrightwin.Layout()
        copyrightwin.SetupScrolling()

        return copyrightwin
示例#6
0
    def _pageCopyright(self):
        """Copyright information"""
        copyfile = os.path.join(os.getenv("GISBASE"), "COPYING")
        if os.path.exists(copyfile):
            copyrightFile = open(copyfile, 'r')
            copytext = copyrightFile.read()
            copyrightFile.close()
        else:
            copytext = _('%s file missing') % 'COPYING'

        # put text into a scrolling panel
        copyrightwin = ScrolledPanel(self.aboutNotebook)
        copyrightwin.SetBackgroundColour('WHITE')
        copyrighttxt = wx.StaticText(copyrightwin,
                                     id=wx.ID_ANY,
                                     label=copytext)
        copyrightwin.SetAutoLayout(True)
        copyrightwin.sizer = wx.BoxSizer(wx.VERTICAL)
        copyrightwin.sizer.Add(item=copyrighttxt,
                               proportion=1,
                               flag=wx.EXPAND | wx.ALL,
                               border=3)
        copyrightwin.SetSizer(copyrightwin.sizer)
        copyrightwin.Layout()
        copyrightwin.SetupScrolling()

        return copyrightwin
示例#7
0
文件: ghelp.py 项目: caomw/grass
 def _pageCredit(self):
     """Credit about"""
             # credits
     authfile = os.path.join(os.getenv("GISBASE"), "AUTHORS")
     if os.path.exists(authfile):
         authorsFile = open(authfile, 'r')
         authors = unicode(''.join(authorsFile.readlines()), "utf-8")
         authorsFile.close()
     else:
         authors = _('%s file missing') % 'AUTHORS'
     authorwin = ScrolledPanel(self.aboutNotebook)
     authorwin.SetBackgroundColour('WHITE')
     authortxt = wx.StaticText(authorwin, id = wx.ID_ANY, label = authors)
     authorwin.SetAutoLayout(True)
     authorwin.SetupScrolling()
     authorwin.sizer = wx.BoxSizer(wx.VERTICAL)
     authorwin.sizer.Add(item = authortxt, proportion = 1,
             flag = wx.EXPAND | wx.ALL, border = 3)
     authorwin.SetSizer(authorwin.sizer)
     authorwin.Layout()      
     
     return authorwin
示例#8
0
文件: ghelp.py 项目: caomw/grass
 def _pageLicense(self):
     """Licence about"""
     licfile = os.path.join(os.getenv("GISBASE"), "GPL.TXT")
     if os.path.exists(licfile):
         licenceFile = open(licfile, 'r')
         license = ''.join(licenceFile.readlines())
         licenceFile.close()
     else:
         license = _('%s file missing') % 'GPL.TXT'
     # put text into a scrolling panel
     licensewin = ScrolledPanel(self.aboutNotebook)
     licensewin.SetBackgroundColour('WHITE')
     licensetxt = wx.StaticText(licensewin, id = wx.ID_ANY, label = license)
     licensewin.SetAutoLayout(True)
     licensewin.sizer = wx.BoxSizer(wx.VERTICAL)
     licensewin.sizer.Add(item = licensetxt, proportion = 1,
             flag = wx.EXPAND | wx.ALL, border = 3)
     licensewin.SetSizer(licensewin.sizer)
     licensewin.Layout()
     licensewin.SetupScrolling()
     
     return licensewin
示例#9
0
文件: ghelp.py 项目: caomw/grass
 def _pageCopyright(self):
     """Copyright information"""
     copyfile = os.path.join(os.getenv("GISBASE"), "COPYING")
     if os.path.exists(copyfile):
         copyrightFile = open(copyfile, 'r')
         copytext = copyrightFile.read()
         copyrightFile.close()
     else:
         copytext = _('%s file missing') % 'COPYING'
     
     # put text into a scrolling panel
     copyrightwin = ScrolledPanel(self.aboutNotebook)
     copyrightwin.SetBackgroundColour('WHITE')
     copyrighttxt = wx.StaticText(copyrightwin, id = wx.ID_ANY, label = copytext)
     copyrightwin.SetAutoLayout(True)
     copyrightwin.sizer = wx.BoxSizer(wx.VERTICAL)
     copyrightwin.sizer.Add(item = copyrighttxt, proportion = 1,
                            flag = wx.EXPAND | wx.ALL, border = 3)
     copyrightwin.SetSizer(copyrightwin.sizer)
     copyrightwin.Layout()
     copyrightwin.SetupScrolling()
     
     return copyrightwin
示例#10
0
    def _pageCredit(self):
        """Credit about"""
        # credits
        authfile = os.path.join(os.getenv("GISBASE"), "AUTHORS")
        if os.path.exists(authfile):
            authorsFile = open(authfile, 'r')
            authors = unicode(''.join(authorsFile.readlines()), "utf-8")
            authorsFile.close()
        else:
            authors = _('%s file missing') % 'AUTHORS'
        authorwin = ScrolledPanel(self)
        authortxt = wx.StaticText(authorwin, id=wx.ID_ANY, label=authors)
        authorwin.SetAutoLayout(True)
        authorwin.SetupScrolling()
        authorwin.sizer = wx.BoxSizer(wx.VERTICAL)
        authorwin.sizer.Add(item=authortxt,
                            proportion=1,
                            flag=wx.EXPAND | wx.ALL,
                            border=3)
        authorwin.SetSizer(authorwin.sizer)
        authorwin.Layout()

        return authorwin
示例#11
0
    def _pageLicense(self):
        """Licence about"""
        licfile = os.path.join(os.getenv("GISBASE"), "GPL.TXT")
        if os.path.exists(licfile):
            licenceFile = open(licfile, 'r')
            license = ''.join(licenceFile.readlines())
            licenceFile.close()
        else:
            license = _('%s file missing') % 'GPL.TXT'
        # put text into a scrolling panel
        licensewin = ScrolledPanel(self.aboutNotebook)
        licensewin.SetBackgroundColour('WHITE')
        licensetxt = wx.StaticText(licensewin, id=wx.ID_ANY, label=license)
        licensewin.SetAutoLayout(True)
        licensewin.sizer = wx.BoxSizer(wx.VERTICAL)
        licensewin.sizer.Add(item=licensetxt,
                             proportion=1,
                             flag=wx.EXPAND | wx.ALL,
                             border=3)
        licensewin.SetSizer(licensewin.sizer)
        licensewin.Layout()
        licensewin.SetupScrolling()

        return licensewin
示例#12
0
文件: ghelp.py 项目: yantongw/grass
    def _pageTranslators(self):
        """Translators info"""
        translatorsfile = os.path.join(os.getenv("GISBASE"), "translators.csv")
        if os.path.exists(translatorsfile):
            translatorsFile = codecs.open(translatorsfile,
                                          encoding='utf-8',
                                          mode='r')
            translators = dict()
            errLines = list()
            for line in translatorsFile.readlines()[1:]:
                line = line.rstrip('\n')
                try:
                    name, email, languages = line.split(',')
                except ValueError:
                    errLines.append(line)
                    continue
                for language in languages.split(' '):
                    if language not in translators:
                        translators[language] = list()
                    translators[language].append((name, email))
            translatorsFile.close()

            if errLines:
                GError(parent=self,
                       message=_("Error when reading file '%s'.") %
                       translatorsfile + "\n\n" + _("Lines:") +
                       " %s" % os.linesep.join(map(DecodeString, errLines)))
        else:
            translators = None

        translatorswin = ScrolledPanel(self.aboutNotebook)
        translatorswin.SetBackgroundColour('WHITE')
        translatorswin.SetAutoLayout(True)
        translatorswin.SetupScrolling()
        translatorswin.sizer = wx.BoxSizer(wx.VERTICAL)

        if not translators:
            translatorstxt = StaticText(translatorswin,
                                        id=wx.ID_ANY,
                                        label=_('%s file missing') %
                                        'translators.csv')
            translatorswin.sizer.Add(translatorstxt,
                                     proportion=1,
                                     flag=wx.EXPAND | wx.ALL,
                                     border=3)
        else:
            translatorsBox = wx.FlexGridSizer(cols=4, vgap=5, hgap=5)
            languages = sorted(translators.keys())
            tname = StaticText(parent=translatorswin,
                               id=wx.ID_ANY,
                               label=_('Name'))
            tname.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, ""))
            translatorsBox.Add(tname)
            temail = StaticText(parent=translatorswin,
                                id=wx.ID_ANY,
                                label=_('E-mail'))
            temail.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, ""))
            translatorsBox.Add(temail)
            tlang = StaticText(parent=translatorswin,
                               id=wx.ID_ANY,
                               label=_('Language'))
            tlang.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, ""))
            translatorsBox.Add(tlang)
            tnat = StaticText(parent=translatorswin,
                              id=wx.ID_ANY,
                              label=_('Nation'))
            tnat.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, ""))
            translatorsBox.Add(tnat)
            for lang in languages:
                for translator in translators[lang]:
                    name, email = translator
                    translatorsBox.Add(
                        StaticText(parent=translatorswin,
                                   id=wx.ID_ANY,
                                   label=name))
                    translatorsBox.Add(
                        StaticText(parent=translatorswin,
                                   id=wx.ID_ANY,
                                   label=email))
                    translatorsBox.Add(
                        StaticText(parent=translatorswin,
                                   id=wx.ID_ANY,
                                   label=lang))
                    flag = os.path.join(globalvar.ICONDIR, "flags",
                                        "%s.png" % lang.lower())
                    if os.path.exists(flag):
                        flagBitmap = wx.StaticBitmap(
                            translatorswin, wx.ID_ANY,
                            wx.Bitmap(name=flag, type=wx.BITMAP_TYPE_PNG))
                        translatorsBox.Add(flagBitmap)
                    else:
                        translatorsBox.Add(
                            StaticText(parent=translatorswin,
                                       id=wx.ID_ANY,
                                       label=lang))

            translatorswin.sizer.Add(translatorsBox,
                                     proportion=1,
                                     flag=wx.EXPAND | wx.ALL,
                                     border=3)

        translatorswin.SetSizer(translatorswin.sizer)
        translatorswin.Layout()

        return translatorswin
示例#13
0
文件: ghelp.py 项目: yantongw/grass
    def _pageContributors(self, extra=False):
        """Contributors info"""
        if extra:
            contribfile = os.path.join(os.getenv("GISBASE"),
                                       "contributors_extra.csv")
        else:
            contribfile = os.path.join(os.getenv("GISBASE"),
                                       "contributors.csv")
        if os.path.exists(contribfile):
            contribFile = codecs.open(contribfile, encoding='utf-8', mode='r')
            contribs = list()
            errLines = list()
            for line in contribFile.readlines()[1:]:
                line = line.rstrip('\n')
                try:
                    if extra:
                        name, email, country, rfc2_agreed = line.split(',')
                    else:
                        cvs_id, name, email, country, osgeo_id, rfc2_agreed = line.split(
                            ',')
                except ValueError:
                    errLines.append(line)
                    continue
                if extra:
                    contribs.append((name, email, country))
                else:
                    contribs.append((name, email, country, osgeo_id))

            contribFile.close()

            if errLines:
                GError(
                    parent=self,
                    message=_("Error when reading file '%s'.") % contribfile +
                    "\n\n" + _("Lines:") +
                    " %s" % os.linesep.join(map(DecodeString, errLines)))
        else:
            contribs = None

        contribwin = ScrolledPanel(self.aboutNotebook)
        contribwin.SetAutoLayout(True)
        contribwin.SetupScrolling()
        contribwin.sizer = wx.BoxSizer(wx.VERTICAL)

        if not contribs:
            contribtxt = StaticText(contribwin,
                                    id=wx.ID_ANY,
                                    label=_('%s file missing') % contribfile)
            contribwin.sizer.Add(contribtxt,
                                 proportion=1,
                                 flag=wx.EXPAND | wx.ALL,
                                 border=3)
        else:
            if extra:
                items = (_('Name'), _('E-mail'), _('Country'))
            else:
                items = (_('Name'), _('E-mail'), _('Country'), _('OSGeo_ID'))
            contribBox = wx.FlexGridSizer(cols=len(items), vgap=5, hgap=5)
            for item in items:
                text = StaticText(parent=contribwin, id=wx.ID_ANY, label=item)
                text.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0,
                                     ""))
                contribBox.Add(text)
            for vals in sorted(contribs, key=lambda x: x[0]):
                for item in vals:
                    contribBox.Add(
                        StaticText(parent=contribwin, id=wx.ID_ANY,
                                   label=item))
            contribwin.sizer.Add(contribBox,
                                 proportion=1,
                                 flag=wx.EXPAND | wx.ALL,
                                 border=3)

        contribwin.SetSizer(contribwin.sizer)
        contribwin.Layout()

        return contribwin
示例#14
0
文件: ghelp.py 项目: caomw/grass
 def _pageTranslators(self):
     """Translators info"""
     translatorsfile = os.path.join(os.getenv("GISBASE"), "translators.csv")
     if os.path.exists(translatorsfile):
         translatorsFile = open(translatorsfile, 'r')
         translators = dict()
         errLines = list()
         for line in translatorsFile.readlines()[1:]:
             line = line.rstrip('\n')
             try:
                 name, email, languages = line.split(',')
             except ValueError:
                 errLines.append(line)
                 continue
             for language in languages.split(' '):
                 if language not in translators:
                     translators[language] = list()
                 translators[language].append((name, email))
         translatorsFile.close()
         
         if errLines:
             GError(parent = self,
                    message = _("Error when reading file '%s'.") % translatorsfile + \
                        "\n\n" + _("Lines:") + " %s" % \
                        os.linesep.join(map(DecodeString, errLines)))
     else:
         translators = None
     
     translatorswin = ScrolledPanel(self.aboutNotebook)
     translatorswin.SetBackgroundColour('WHITE')
     translatorswin.SetAutoLayout(True)
     translatorswin.SetupScrolling()
     translatorswin.sizer = wx.BoxSizer(wx.VERTICAL)
     
     if not translators:
         translatorstxt = wx.StaticText(translatorswin, id = wx.ID_ANY,
                                        label = _('%s file missing') % 'translators.csv')
         translatorswin.sizer.Add(item = translatorstxt, proportion = 1,
                              flag = wx.EXPAND | wx.ALL, border = 3)
     else:
         translatorsBox = wx.FlexGridSizer(cols = 4, vgap = 5, hgap = 5)
         languages = translators.keys()
         languages.sort()
         tname = wx.StaticText(parent = translatorswin, id = wx.ID_ANY,
                             label = _('Name'))
         tname.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, ""))
         translatorsBox.Add(item = tname)
         temail = wx.StaticText(parent = translatorswin, id = wx.ID_ANY,
                             label = _('E-mail'))
         temail.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, ""))
         translatorsBox.Add(item = temail)
         tlang = wx.StaticText(parent = translatorswin, id = wx.ID_ANY,
                             label = _('Language'))
         tlang.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, ""))
         translatorsBox.Add(item = tlang)
         tnat = wx.StaticText(parent = translatorswin, id = wx.ID_ANY,
                             label = _('Nation'))
         tnat.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, ""))
         translatorsBox.Add(item = tnat)           
         for lang in languages:
             for translator in translators[lang]:
                 name, email = translator
                 translatorsBox.Add(item = wx.StaticText(parent = translatorswin, id = wx.ID_ANY,
                                                         label =  unicode(name, "utf-8")))
                 translatorsBox.Add(item = wx.StaticText(parent = translatorswin, id = wx.ID_ANY,
                                                         label = email))
                 translatorsBox.Add(item = wx.StaticText(parent = translatorswin, id = wx.ID_ANY,
                                                         label = lang))                                                            
                 flag = os.path.join(globalvar.ICONDIR, "flags", "%s.png" % lang.lower())
                 if os.path.exists(flag):
                     flagBitmap = wx.StaticBitmap(parent = translatorswin, id = wx.ID_ANY,
                                  bitmap = wx.Bitmap(name = flag,
                                                     type = wx.BITMAP_TYPE_PNG))
                     translatorsBox.Add(item = flagBitmap)
                 else:
                     translatorsBox.Add(item = wx.StaticText(parent = translatorswin, 
                                     id = wx.ID_ANY, label = lang))
         
         translatorswin.sizer.Add(item = translatorsBox, proportion = 1,
                              flag = wx.EXPAND | wx.ALL, border = 3)
     
     translatorswin.SetSizer(translatorswin.sizer)
     translatorswin.Layout()      
     
     return translatorswin
示例#15
0
文件: ghelp.py 项目: caomw/grass
 def _pageContributors(self, extra = False):
     """Contributors info"""
     if extra:
         contribfile = os.path.join(os.getenv("GISBASE"), "contributors_extra.csv")
     else:
         contribfile = os.path.join(os.getenv("GISBASE"), "contributors.csv")
     if os.path.exists(contribfile):
         contribFile = codecs.open(contribfile, encoding = 'utf-8', mode = 'r')
         contribs = list()
         errLines = list()
         for line in contribFile.readlines()[1:]:
             line = line.rstrip('\n')
             try:
                 if extra:
                     name, email, country, rfc2_agreed = line.split(',')
                 else:
                     cvs_id, name, email, country, osgeo_id, rfc2_agreed = line.split(',')
             except ValueError:
                 errLines.append(line)
                 continue
             if extra:
                 contribs.append((name, email, country))
             else:
                 contribs.append((name, email, country, osgeo_id))
         
         contribFile.close()
         
         if errLines:
             GError(parent = self,
                    message = _("Error when reading file '%s'.") % contribfile + \
                        "\n\n" + _("Lines:") + " %s" % \
                        os.linesep.join(map(DecodeString, errLines)))
     else:
         contribs = None
     
     contribwin = ScrolledPanel(self.aboutNotebook)
     contribwin.SetBackgroundColour('WHITE')
     contribwin.SetAutoLayout(True)
     contribwin.SetupScrolling()
     contribwin.sizer = wx.BoxSizer(wx.VERTICAL)
     
     if not contribs:
         contribtxt = wx.StaticText(contribwin, id = wx.ID_ANY,
                                    label = _('%s file missing') % contribfile)
         contribwin.sizer.Add(item = contribtxt, proportion = 1,
                              flag = wx.EXPAND | wx.ALL, border = 3)
     else:
         if extra:
             items = (_('Name'), _('E-mail'), _('Country'))
         else:
             items = (_('Name'), _('E-mail'), _('Country'), _('OSGeo_ID'))
         contribBox = wx.FlexGridSizer(cols = len(items), vgap = 5, hgap = 5)
         for item in items:
             text = wx.StaticText(parent = contribwin, id = wx.ID_ANY,
                                     label = item)
             text.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, ""))
             contribBox.Add(item = text)
         for vals in sorted(contribs, key = lambda x: x[0]):
             for item in vals:
                 contribBox.Add(item = wx.StaticText(parent = contribwin, id = wx.ID_ANY,
                                                     label = item))
         contribwin.sizer.Add(item = contribBox, proportion = 1,
                              flag = wx.EXPAND | wx.ALL, border = 3)
     
     contribwin.SetSizer(contribwin.sizer)
     contribwin.Layout()      
     
     return contribwin
示例#16
0
    def _pageTranslators(self):
        """Translators info"""
        translatorsfile = os.path.join(os.getenv("GISBASE"), "translators.csv")
        if os.path.exists(translatorsfile):
            translatorsFile = open(translatorsfile, 'r')
            translators = dict()
            errLines = list()
            for line in translatorsFile.readlines()[1:]:
                line = line.rstrip('\n')
                try:
                    name, email, languages = line.split(',')
                except ValueError:
                    errLines.append(line)
                    continue
                for language in languages.split(' '):
                    if language not in translators:
                        translators[language] = list()
                    translators[language].append((name, email))
            translatorsFile.close()

            if errLines:
                GError(parent = self,
                       message = _("Error when reading file '%s'.") % translatorsfile + \
                           "\n\n" + _("Lines:") + " %s" % \
                           os.linesep.join(map(DecodeString, errLines)))
        else:
            translators = None

        translatorswin = ScrolledPanel(self)
        translatorswin.SetAutoLayout(True)
        translatorswin.SetupScrolling()
        translatorswin.sizer = wx.BoxSizer(wx.VERTICAL)

        if not translators:
            translatorstxt = wx.StaticText(translatorswin,
                                           id=wx.ID_ANY,
                                           label=_('%s file missing') %
                                           'translators.csv')
            translatorswin.sizer.Add(item=translatorstxt,
                                     proportion=1,
                                     flag=wx.EXPAND | wx.ALL,
                                     border=3)
        else:
            translatorsBox = wx.FlexGridSizer(cols=3, vgap=5, hgap=5)
            languages = translators.keys()
            languages.sort()
            translatorsBox.Add(item=wx.StaticText(
                parent=translatorswin, id=wx.ID_ANY, label=_('Name')))
            translatorsBox.Add(item=wx.StaticText(
                parent=translatorswin, id=wx.ID_ANY, label=_('E-mail')))
            translatorsBox.Add(item=wx.StaticText(
                parent=translatorswin, id=wx.ID_ANY, label=_('Language')))
            for lang in languages:
                for translator in translators[lang]:
                    name, email = translator
                    translatorsBox.Add(
                        item=wx.StaticText(parent=translatorswin,
                                           id=wx.ID_ANY,
                                           label=unicode(name, "utf-8")))
                    translatorsBox.Add(item=wx.StaticText(
                        parent=translatorswin, id=wx.ID_ANY, label=email))
                    translatorsBox.Add(item=wx.StaticText(
                        parent=translatorswin, id=wx.ID_ANY, label=lang))

            translatorswin.sizer.Add(item=translatorsBox,
                                     proportion=1,
                                     flag=wx.EXPAND | wx.ALL,
                                     border=3)

        translatorswin.SetSizer(translatorswin.sizer)
        translatorswin.Layout()

        return translatorswin