
    Je                         d 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mZmZmZmZmZmZmZmZ ddlmZ ddlmZ  ed	      Zd
ZdZ G d de      Zd Zedk(  r e        yy)zShortcut Summary dialog    )
itemgetter)groupby)Qt)QFontQKeySequence)	QDialogQLabelQGridLayout	QGroupBoxQVBoxLayoutQHBoxLayoutQDesktopWidgetQScrollAreaQWidget)_)CONFzSpyder Keyboard ShortCuts      c                       e Zd ZdZddZd Zy)ShortcutsSummaryDialoga  
    Dialog window listing the spyder and plugins shortcuts.

    It contains all the shortcuts available through iter_shortcuts
    function

    The shortcuts are dysplayed in different columns, and grouped by
    context (global, editor, console...)
    Nc                    t        j                  | |       t        | _        | j	                         \  }}t        t        |dz              }t        t        |t              t              }|d|z  z
  |dz   z  }d}| j                  |       t               }|j                  |       |j                  d       t               }|j                  |       t               }	|	j                  |dz          |	j                  d       t        | j                        }
|
j!                  t"        j$                         |
j'                  |	       t)               }d}d }t+        t-        t/        j0                               t3        d      	      }|D ]x  \  }}t5        |      D ]c  \  }\  }}}|dk(  r
t7               }|dk(  r|dkD  rj9                  |       |dk(  s|dk(  rQ|d
k(  rd}t;        |j=                               }|j'                  |       t?               }|jA                  |       |dz  }t        |j=                         jC                  d
d            }|j'                  |       tE        |      jG                  tD        jH                        }t        |      }|j'                  |       j9                  ||d       |j9                  ||d       |dz  }||k\  s@j9                  |       |jK                  |       d}f { j9                  |       |jM                          |jK                  |       tO               | _(        | jP                  jA                  |       tS               | _*        | jT                  jW                  | jP                         | jY                  t"        jZ                         | j]                  d       t7               | _/        | j^                  j9                  |
       | j^                  j9                  | jT                         | jA                  | j^                         | ja                  dd||       y )N)parentP   r   r   z{
            QDialog {
              margin:0px;
              padding:0px;
              border-radius: 2px;
            }T   r   )keyr   Global    gffffff?)1r   __init__SHORTCUTS_SUMMARY_TITLE_shortcuts_summary_titleget_screen_resolutionintroundmaxminMAX_FONT_SIZEMIN_FONT_SIZEsetStyleSheetr   setPointSizesetBoldr	   setAlignmentr   AlignCentersetFontr   r   sortedr   iter_shortcutsr   	enumerater   	addWidgetr   
capitalizer
   	setLayoutreplacer   toString
NativeText	addLayout
addStretchr   scroll_widgetr   scroll_area	setWidgetsetWindowFlagsFramelessWindowHintsetWindowOpacity_layoutsetGeometry)selfr   widthheight	font_sizeshortcuts_columnstyle
font_namesfont_keystr
font_titletitle_labelcolumns_layoutadded_shortcutsgroup	shortcuts__group_shortcutsicontextnamekeystrcolumn_layoutgroup_layout
label_namelabel_keystrs                            J/usr/lib/python3/dist-packages/spyder/plugins/shortcuts/widgets/summary.pyr   zShortcutsSummaryDialog.__init__)   s   f-(?% 224vfrk*+	I}5}E	"Q]2y"}E 	5!W
	*4 g  +W
	!,4 T::;  0J'
 %F4#6#6#89z!}M	#, '	(B.7.H &(**GT6"a'$/MM 6o1!++E2 #a'16#~w%g&8&8&:;EMM*-#.=LOOL1 $q(O $DOO$5$=$=c3$GH
"":.%f-66|7N7NO%f~$$[1&&z1a8&&|Q:1$"&66!++E2",,];&'OM&('	(R 	&  "  / %Y$$^4&=""4#5#56 	B223d# #}{+t//0t||$Auf-    c                     t               }|j                  |j                               }|j                         |j	                         fS )z3Return the screen resolution of the primary screen.)r   availableGeometryprimaryScreenrC   rD   )rB   widgetgeometrys      rZ   r"   z,ShortcutsSummaryDialog.get_screen_resolution   s<    !++F,@,@,BC~~!222r[   )N)__name__
__module____qualname____doc__r   r"    r[   rZ   r   r      s    j.X3r[   r   c                  t    ddl m}   |        }t        d       }|j                          |j	                          y )Nr   )qapplication)spyder.utils.qthelpersrg   r   showexec_)rg   appdlg_shortcutss      rZ   testrm      s+    3
.C*40MIIKr[   __main__N)rd   operatorr   	itertoolsr   qtpy.QtCorer   
qtpy.QtGuir   r   qtpy.QtWidgetsr   r	   r
   r   r   r   r   r   r   spyder.config.baser   spyder.config.managerr   r    r'   r(   r   rm   ra   re   r[   rZ   <module>rv      sq         *2 2 2
 ! & 78 z3W z3z zF r[   