ó
‹²,]c           @   sY  d  Z  d d l m Z d d l m Z d d l 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 e d
 d ƒ Z d „  Z d „  Z i  Z d d d d „ Z d d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z  e! d „ Z" e! d „ Z# x! e j$ D] Z% e# e% d e& ƒq;Wd S(   s  
Spyder GUI-related configuration management
(for non-GUI configuration, see spyder/config/base.py)

Important note regarding shortcuts:
    For compatibility with QWERTZ keyboards, one must avoid using the following
    shortcuts:
        Ctrl + Alt + Q, W, F, G, Y, X, C, V, B, N
iÿÿÿÿ(   t
   namedtuple(   t   Qt(   t   QFontt   QFontDatabaset   QKeySequence(   t	   QShortcut(   t   CONF(   t	   NoDefault(   t   to_text_string(   t   syntaxhighlighterst   Shortcutt   datac         C   s2   g  t  ƒ  j ƒ  D] } t | ƒ |  k r | ^ q S(   s   Check if font is installed(   R   t   familiesR   (   t   fontt   fam(    (    s0   lib/python2.7/site-packages/spyder/config/gui.pyt   font_is_installed%   s    c         C   sV   t  |  t ƒ s |  g }  n  x4 |  D] } t | ƒ r" | Sq" Wd |  GHt ƒ  j ƒ  Sd S(   s5   Return the first installed font family in family lists5   Warning: None of the following fonts is installed: %rN(   t
   isinstancet   listR   R   t   family(   R   R   (    (    s0   lib/python2.7/site-packages/spyder/config/gui.pyt
   get_family+   s    	t   mainR   i    c   	      C   s  t  j |  | f ƒ } | d k rï t j |  | d d ƒ } | d k rM t ƒ  St | ƒ } t j } t j |  | d t ƒ } t j |  | d t ƒ r  t j } n  t j |  | d d ƒ | } t | | | ƒ } | j	 | ƒ | t  |  | f <n  t j |  | d d ƒ | } | j
 | ƒ | S(   s<   Get console font properties depending on OS and user optionss   /familys   /italics   /bolds   /sizei	   N(   t
   FONT_CACHEt   gett   NoneR   R   R   t   Normalt   Falset   Boldt	   setItalict   setPointSize(	   t   sectiont   optiont   font_size_deltaR   R   R   t   weightt   italict   size(    (    s0   lib/python2.7/site-packages/spyder/config/gui.pyt   get_font9   s"    	c         C   s    t  j | | d t |  j ƒ  ƒ ƒ t  j | | d t |  j ƒ  ƒ ƒ t  j | | d t |  j ƒ  ƒ ƒ t  j | | d t |  j ƒ  ƒ ƒ |  t	 | | f <d S(   s   Set fonts   /familys   /sizes   /italics   /boldN(
   R   t   setR   R   t   floatt	   pointSizet   intR!   t   boldR   (   R   R   R   (    (    s0   lib/python2.7/site-packages/spyder/config/gui.pyt   set_fontT   s
    ####c         C   s   t  j d d |  | f ƒ S(   s+   Get keyboard shortcut (key sequence string)t	   shortcutss   %s/%s(   R   R   (   t   contextt   name(    (    s0   lib/python2.7/site-packages/spyder/config/gui.pyt   get_shortcut]   s    c         C   s!   t  j d d |  | f | ƒ d S(   s+   Set keyboard shortcut (key sequence string)R*   s   %s/%sN(   R   R$   (   R+   R,   t   keystr(    (    s0   lib/python2.7/site-packages/spyder/config/gui.pyt   set_shortcutb   s    c         C   s,   t  t |  ƒ | | ƒ } | j t j ƒ | S(   s€   
    DEPRECATED: This function will be removed in Spyder 4.0

    Define a fixed shortcut according to a keysequence string
    (   R   R   t
   setContextR   t   WidgetWithChildrenShortcut(   R.   t   parentt   actiont   sc(    (    s0   lib/python2.7/site-packages/spyder/config/gui.pyt   fixed_shortcutg   s    c         C   sS   t  | | ƒ } t t | ƒ | |  ƒ } | j t j ƒ t d | | | f ƒ } | S(   s–   
    Create a Shortcut namedtuple for a widget
    
    The data contained in this tuple will be registered in
    our shortcuts preferences page
    R   (   R-   R   R   R0   R   R1   R
   (   R3   R+   R,   R2   R.   t   qscR4   (    (    s0   lib/python2.7/site-packages/spyder/config/gui.pyt   config_shortcutr   s
    c          c   sM   xF t  j d ƒ D]5 }  |  j d d ƒ \ } } | | t | | ƒ f Vq Wd S(   s   Iterate over keyboard shortcutsR*   t   /i   N(   R   t   optionst   splitR-   (   R   R+   R,   (    (    s0   lib/python2.7/site-packages/spyder/config/gui.pyt   iter_shortcuts€   s    c           C   s   t  j d d ƒ d S(   s*   Reset keyboard shortcuts to default valuesR   R*   N(   R   t   reset_to_defaults(    (    (    s0   lib/python2.7/site-packages/spyder/config/gui.pyt   reset_shortcuts‡   s    c         C   s>   i  } x1 t  j D]& } t j d d |  | f ƒ | | <q W| S(   s   Get syntax color schemet   color_schemess   %s/%s(   t   sht   COLOR_SCHEME_KEYSR   R   (   R,   t   color_schemet   key(    (    s0   lib/python2.7/site-packages/spyder/config/gui.pyt   get_color_schemeŒ   s    $c         C   sË   d } t  j d d g  ƒ } xq t j D]f } d |  | f } t  j | | d d ƒ} | d k sq | sq |  | k r% t  j | | | | ƒ q% q% W| j t |  ƒ ƒ t  j | d t t	 t | ƒ ƒ ƒ ƒ d S(   s   Set syntax color schemeR>   t   namess   %s/%st   defaultN(
   R   R   R?   R@   R   R$   t   appendR   t   sortedR   (   R,   RA   t   replaceR   RD   RB   R   t   value(    (    s0   lib/python2.7/site-packages/spyder/config/gui.pyt   set_color_scheme”   s    c         C   s5   |  t  j k s t ‚ t |  t  j |  ƒ d | ƒd S(   s$   Reset color scheme to default valuesRH   N(   R?   t   COLOR_SCHEME_NAMESt   AssertionErrorRJ   RC   (   R,   RH   (    (    s0   lib/python2.7/site-packages/spyder/config/gui.pyt   set_default_color_scheme¡   s    RH   N('   t   __doc__t   collectionsR    t   qtpy.QtCoreR   t
   qtpy.QtGuiR   R   R   t   qtpy.QtWidgetsR   t   spyder.config.mainR   t   spyder.config.userR   t   spyder.py3compatR   t   spyder.utilsR	   R?   R
   R   R   R   R#   R)   R-   R/   R5   R7   R;   R=   RC   t   TrueRJ   RM   RK   t   _nameR   (    (    (    s0   lib/python2.7/site-packages/spyder/config/gui.pyt   <module>   s2   										