from peak.util.imports import lazyModule, whenImported
wx = lazyModule('wx')
os = lazyModule('os')
wintypes = lazyModule('ctypes.wintypes')
from threading import Thread
from logging import getLogger
log = getLogger('winextensions')
import traceback
def browse(url):
def go():
try:
os.startfile(url)
except WindowsError:
if hasattr(traceback, 'print_exc_once'):
traceback.print_exc_once()
else:
traceback.print_exc()
log.error('could not open browser for url: %r', url)
_fire_browser_error_popup()
t = Thread(target = go)
t.setDaemon(True)
t.start()
wx.LaunchDefaultBrowser = browse
def _fire_browser_error_popup():
fire = fire
import common
fire('error', title = 'Error Launching Default Browser', msg = "No default web browser set in Windows. Please check your web browser's preferences.", details = '')