ó
Ò:\c           @   sÇ  d  Z  d d l Z d d l Z d d l Z d d l m Z d d l m Z m Z m	 Z	 m
 Z
 d d l m Z d d l m Z m Z m Z m Z m Z m Z d d l m Z d d l m Z d d	 l m Z d d
 l m Z d d l m Z m Z d d l m  Z  d d l! m" Z" d d l# m$ Z$ d d l% m& Z& e j' d d ƒ r‰e( e
 d ƒ rde j) e
 j* ƒ n  e( e
 d ƒ r‰e j) e
 j+ ƒ q‰n  d „  Z, d „  Z- d „  Z. d e	 f d „  ƒ  YZ/ d „  Z0 d S(   s   Application start.iÿÿÿÿN(   t   PYQT5(   t   QCoreApplicationt   QEventt   QObjectt   Qt(   t   QIcon(   t   CONFt   LINUXt   LOCKFILEt   MACt   PIDFILEt   UBUNTU(   t   filelock(   t   images(   t
   load_fonts(   t   misc(   t
   clean_logst   setup_logger(   t   qapplication(   t   MessageBoxInformation(   t   SplashScreen(   t
   MainWindowt   maint   enable_high_dpi_scalingt   AA_UseHighDpiPixmapst   AA_EnableHighDpiScalingc         C   s   t  j |  | | ƒ d S(   s-   Custom except hook to avoid crashes on PyQt5.N(   t   syst   __excepthook__(   t   clst	   exceptiont	   traceback(    (    s;   lib/python2.7/site-packages/anaconda_navigator/app/start.pyt   except_hook0   s    c          C   s>   t  r t r t t j ƒ }  n t t j ƒ }  t j |  ƒ d S(   s   Set application icon.N(   R   R   R   R   t   ANACONDA_LOGO_WHITEt   ANACONDA_LOGOt   appt   setWindowIcon(   t   app_icon(    (    s;   lib/python2.7/site-packages/anaconda_navigator/app/start.pyt   set_application_icon5   s    c         C   s   t  d |  d t ƒ } | S(   s(   Create and show Navigator's main window.t   splasht   tab_project(   R   t   False(   R&   t   window(    (    s;   lib/python2.7/site-packages/anaconda_navigator/app/start.pyt   run_app?   s    t
   EventEaterc           B   s    e  Z d  Z d „  Z d „  Z RS(   s#   Event filter for application state.c         C   s    t  t |  ƒ j ƒ  | |  _ d S(   s#   Event filter for application state.N(   t   superR+   t   __init__R"   (   t   selfR"   (    (    s;   lib/python2.7/site-packages/anaconda_navigator/app/start.pyR-   I   s    c         C   s±   | j  ƒ  t j k r˜ t r˜ |  j j j r˜ |  j j j ƒ  |  j j j ƒ  r_ |  j j j	 ƒ  n5 |  j j j
 ƒ  r„ |  j j j ƒ  n |  j j j ƒ  t St t |  ƒ j | | ƒ S(   s   Qt override.(   t   typeR   t   ApplicationActivateR	   R"   R)   t   setup_readyt   showt   isMaximizedt   showMaximizedt   isFullScreent   showFullScreent
   showNormalt   TrueR,   R+   t   eventFilter(   R.   t   obt   event(    (    s;   lib/python2.7/site-packages/anaconda_navigator/app/start.pyR9   N   s    (   t   __name__t
   __module__t   __doc__R-   R9   (    (    (    s;   lib/python2.7/site-packages/anaconda_navigator/app/start.pyR+   F   s   	c         C   sæ  t  |  j ƒ t r t t _ n  t ƒ  t d d ƒ a t	 ƒ  t
 t ƒ t j t j t j ƒ t sh t r® t j j d d ƒ d k	 r® t d d d d ƒ } t j | j ƒ  ƒ n  t j t ƒ } yæ t j ƒ  } | t k rt d d d d	 j t t ƒ ƒ } t j | j ƒ  ƒ n | d k r(t j ƒ  n  | j  d
 d ƒ f t j! ƒ  t" ƒ  } | j# d ƒ t$ | ƒ } | t _% t& t ƒ } t j' | ƒ t j t j ƒ  ƒ Wd QXWn< t j( k
 rát d d d d ƒ } t j | j ƒ  ƒ n Xd S(   s   Main application entry point.t	   test_timei<   t   SUDO_UIDt   titles   Anaconda Navigator Informationt   texts;   Anaconda Navigator cannot be run with root user privileges.s    Anaconda Navigator Startup Errorsò   Navigator failed to start due to an incorrect shutdown. <br><br>We were unable to remove the pid & lock files. Please manually remove the following files and restart Anaconda Navigator:<br><ul><li><pre>{}</pre></li><li><pre>{}</pre></li></ul>t   timeoutg      @s   Initializing...Ns;   There is an instance of Anaconda Navigator already running.()   R   t	   log_levelR    R   R   t
   excepthookR   R   R"   R%   R   t   signalt   SIGINTt   SIG_DFLR	   R   t   ost   environt   gett   NoneR   t   exitt   exec_R   t   FileLockR   R   t   load_pidR(   t   formatR
   t   remove_lockt   acquiret   save_pidR   t   show_messageR*   R)   R+   t   installEventFiltert   Timeout(   t   optionst   msgboxt   lockRP   R&   R)   t   event_eater(    (    s;   lib/python2.7/site-packages/anaconda_navigator/app/start.pyt	   start_app^   sL    
'	
			(1   R>   RI   RF   R   t   qtpyR    t   qtpy.QtCoreR   R   R   R   t
   qtpy.QtGuiR   t   anaconda_navigator.configR   R   R   R	   R
   R   t   anaconda_navigator.externalR   t   anaconda_navigator.staticR   t   anaconda_navigator.static.fontsR   t   anaconda_navigator.utilsR   t   anaconda_navigator.utils.logsR   R   t"   anaconda_navigator.utils.qthelpersR   t"   anaconda_navigator.widgets.dialogsR   t)   anaconda_navigator.widgets.dialogs.splashR   t&   anaconda_navigator.widgets.main_windowR   RK   t   hasattrt   setAttributeR   R   R   R%   R*   R+   R\   (    (    (    s;   lib/python2.7/site-packages/anaconda_navigator/app/start.pyt   <module>	   s4   ".		
	