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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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