Changeset 174

Show
Ignore:
Timestamp:
11/12/06 21:28:57 (17 years ago)
Author:
jerome
Message:

Ensures the dialog box is raised before being displayed.
Simplified character encoding stuff.
Backported i18n stuff from PyKota.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pykoticon/trunk/bin/pykoticon

    r172 r174  
    242242        self.SetSizerAndFit(vsizer) 
    243243        self.Layout() 
    244         self.Show(True) 
    245         self.Raise() 
    246244         
    247245         
     
    314312                                        _("About"), \ 
    315313                                        wx.OK | wx.ICON_INFORMATION) 
     314        dialog.Raise()                                         
    316315        dialog.ShowModal() 
    317316        dialog.Destroy() 
     
    328327        style |= wx.STAY_ON_TOP     
    329328        dialog = wx.MessageDialog(self, message, caption, style) 
     329        dialog.Raise() 
    330330        self.dialogAnswer = ((dialog.ShowModal() == wx.ID_NO) and "CANCEL") or "OK" 
    331331        dialog.Destroy() 
     
    335335        self.dialogAnswer = None 
    336336        dialog = GenericInputDialog(self, wx.ID_ANY, labels, varnames, varvalues) 
     337        dialog.Raise() 
    337338        retvalues = {} 
    338339        if dialog.ShowModal() == wx.ID_OK : 
     
    415416        if text is not None : 
    416417            try : 
    417                 # We don't necessarily trust the default charset, because 
    418                 # xprint sends us titles in UTF-8 but CUPS gives us an ISO-8859-1 charset ! 
    419                 # So we first try to see if the text is already in UTF-8 or not, and 
    420                 # if it is, we delete characters which can't be converted to the user's charset, 
    421                 # then convert back to UTF-8. PostgreSQL 7.3.x used to reject some unicode characters, 
    422                 # this is fixed by the ugly line below : 
    423                 return text.decode("UTF-8").encode(self.charset, "replace").decode(self.charset).encode("UTF-8", "replace") 
     418                return text.decode(self.charset).encode("UTF-8") 
    424419            except (UnicodeError, AttributeError) : 
    425420                try : 
    426                     return text.decode(self.charset).encode("UTF-8", "replace")  
     421                    return text.decode(self.charset, "replace").encode("UTF-8")  
    427422                except (UnicodeError, AttributeError) :     
    428423                    try : 
     
    448443def main() : 
    449444    """Program's entry point.""" 
     445    # locale stuff 
    450446    try : 
    451         locale.setlocale(locale.LC_ALL, "") 
     447        locale.setlocale(locale.LC_ALL, ("", None)) 
    452448    except (locale.Error, IOError) : 
    453         sys.stderr.write("Problem while setting locale.\n") 
     449        locale.setlocale(locale.LC_ALL, None) 
     450    (language, charset) = locale.getlocale() 
     451    language = language or "C" 
     452    charset = charset or locale.getpreferredencoding() 
     453     
     454    # translation stuff 
    454455    try : 
    455         gettext.install("pykoticon") 
     456        try : 
     457            trans = gettext.translation("pykoticon", languages=["%s.%s" % (language, charset)], codeset=charset) 
     458        except TypeError : # Python <2.4 
     459            trans = gettext.translation("pykoticon", languages=["%s.%s" % (language, charset)]) 
     460        trans.install() 
    456461    except : 
    457462        gettext.NullTranslations().install() 
    458          
    459     localecharset = None 
    460     try : 
    461         try : 
    462             localecharset = locale.nl_langinfo(locale.CODESET) 
    463         except AttributeError :     
    464             try : 
    465                 localecharset = locale.getpreferredencoding() 
    466             except AttributeError :     
    467                 try : 
    468                     localecharset = locale.getlocale()[1] 
    469                     localecharset = localecharset or locale.getdefaultlocale()[1] 
    470                 except ValueError :     
    471                     pass        # Unknown locale, strange... 
    472     except locale.Error :             
    473         pass 
    474     charset = os.environ.get("CHARSET") or localecharset or "ISO-8859-15" 
     463     
    475464     
    476465    parser = optparse.OptionParser(usage="pykoticon [options] server1 [server2 ...]")