
    Je                     F    d Z ddlmZ ddlmZmZ ddlmZ  G d de      Zy)z*
This module contains the edge line panel
    )Qt)QPainterQColor)Panelc                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	EdgeLinez:Source code editor's edge line (default: 79 columns, PEP8)c                 f    t        j                  |        d| _        t        j                  | _        y )N)O   )r   __init__columnsr   darkGraycolorselfs    G/usr/lib/python3/dist-packages/spyder/plugins/editor/panels/edgeline.pyr   zEdgeLine.__init__   s     t[[
    c                 l   t        |       }| j                         }t        | j                        }|j	                  d       |j                  |       | j                  D ]S  }| j                  j                         j                  |dz        dz   }|j                  |d||j                                U y)zOverride Qt methodg      ?9   r   N)r   sizer   r   	setAlphaFsetPenr   editorfontMetricswidthdrawLineheight)r   eventpainterr   r   columnxs          r   
paintEventzEdgeLine.paintEvent   s    4.yy{tzz"ull 	5F'')//=AAQ1dkkm4	5r   c                 "    | j                         S )zOverride Qt method.)r   r   s    r   sizeHintzEdgeLine.sizeHint+   s    yy{r   c                 4    || _         | j                  |       y)zToggle edge line visibilityN)_enabled
setVisible)r   states     r   set_enabledzEdgeLine.set_enabled2   s    r   c                     t        |t              r|| _        n3|r1t        |      }t        d |j	                  d      D              | _        | j                          y)zSet edge line columns values.c              3   2   K   | ]  }t        |        y w)N)int).0es     r   	<genexpr>z'EdgeLine.set_columns.<locals>.<genexpr>=   s      DAQ Ds   ,N)
isinstancetupler   strsplitupdate)r   r   s     r   set_columnszEdgeLine.set_columns7   sC    gu%"DL'lG  Ds1C DDDLr   c                 X    | j                   j                  j                  d      | _        y)zP
        Set edgeline color using syntax highlighter color for comments
        commentN)r   highlighterget_color_namer   r   s    r   update_colorzEdgeLine.update_colorA   s      [[,,;;IF
r   N)
__name__
__module____qualname____doc__r   r"   r$   r)   r6   r;    r   r   r   r      s$    D!
5
Gr   r   N)	r?   qtpy.QtCorer   
qtpy.QtGuir   r   spyder.api.panelr   r   r@   r   r   <module>rD      s%   
  ' #2Gu 2Gr   