+
    Ki  c                   s    R t ^ RIHt ^ RIHtHtHt ^ RIHt ^ RI	H
t
HtHtHtHtHtHtHtHtHtHtHtHtHtHt ^ RIHt ^ RIHt  ! R R]P:                  ]4      t ! R	 R
]P>                  4      t R# )zTreeView based game list)gettext)GdkGtkPango)settings)COL_IDCOL_INSTALLEDCOL_INSTALLED_ATCOL_INSTALLED_AT_TEXTCOL_LASTPLAYEDCOL_LASTPLAYED_TEXTCOL_MEDIA_PATHSCOL_NAMECOL_PLATFORMCOL_PLAYTIMECOL_PLAYTIME_TEXTCOL_RUNNER_HUMAN_NAMECOL_SORTNAMECOL_YEARCOLUMN_NAMES)GameView)GridViewCellRendererImagec                   s   a a ] tR t^ t oRt]P                  tR tV 3R lt]	R 4       t
RR ltR tRR ltR tR	 tR
 tR tR tRR ltRR lt]	R 4       tRtVtV ;t# )GameListViewzShow the main list of games.c           	     s   \         P                  P                  V 4       \        P                  ! V 4       V P	                  R 4       \
        P                  '       d   \        4       V n        \         P                  ! RV P                  \        \        \        R7      V n        V P                  P                  R 4       V P                  P                  R4       V P                  P!                  \         P"                  P$                  4       V P'                  V P                  4       MRV n        RV n        V P)                  V4       V P+                  4       pV P+                  4       pVP-                  ^^ 4       V P/                  V\1        R4      \2        ^R \4        R7       V P/                  V\1        R4      \6        ^<4       V P/                  V\1        R4      \8        ^x4       V P/                  V\1        R	4      \:        ^x4       V P/                  V\1        R
4      \<        ^x\>        R7       V P/                  V\1        R4      \@        ^d\B        R7       V P/                  V\1        R4      \D        ^x\F        R7       V PI                  4       PK                  \         PL                  PN                  4       V PQ                  4        V PS                  RV PT                  4       V PI                  4       PS                  RV PV                  4       R# )T )Zmedia_pathsZis_installedgame_idFNName)always_visiblesort_idZYearZRunnerZPlatformzLast Played)r   z	Play TimezInstalled Atzrow-activatedZchanged),r   TreeView__init__r   Zset_rules_hintr   Z
SHOW_MEDIAr   image_rendererTreeViewColumnr   r   r   media_columnset_reorderableset_sort_indicatorZ
set_sizingZTreeViewColumnSizingZFIXEDappend_columnset_game_storeset_text_cellset_padding
set_column_r   r   r   r   r   r
   r	   r   r   r   r   get_selectionZset_modeZSelectionModeZMULTIPLEZconnect_signalsconnecton_row_activatedon_cursor_changed)selfstoreZdefault_text_cellZ	name_cell   &&  :/usr/lib/python3.14/site-packages/lutris/gui/views/list.pyr   ZGameListView.__init__%   s:   d#$D! ";"=D # 2 2D''_S`jp!D --d3007(()A)A)G)GHt001"&D $DE" !..0&&(	a#	1V9hDZfg)1V9hC)1X;8MsS)1Z=,L)1]+;=PRU_mn)1[>;Lc[gh)1^+<>SUXbrs%%c&7&7&@&@A_d&;&;<$$Y0F0FG    c                s  < \         SV `  V4       VP                  V n        V P	                  V P                  4       V P
                  '       d=   VP                  P                  pV^ ,          pV P
                  P                  V4       R# R# )    N)	superr$   r.   modelZ	set_modelr    Zservice_mediasizeset_fixed_width)r-   
game_storer5   Zmedia_width	__class__s   &&  r0   r$   ZGameListView.set_game_storeN   sl    z*%%
tzz"++00Dq'K--k: r1   c                 s    \         P                  ! 4       p V P                  ^
^ 4       V P                  R\        P
                  P                  4       V # )i
   Z	ellipsize)r   ZCellRendererTextr&   Zset_propertyr   ZEllipsizeModeZEND)Z	text_cells    r0   r%   ZGameListView.set_text_cellY   sB    ((*	b!${E,?,?,C,CDr1   c                s   \         P                  ! W!VR 7      pVP                  R4       TP                  Vf   TMT4       VP	                  R4       VP                  R4       \        P                  ! R\        V,          ,          RR7      p\        P                  ! R\        V,          ,          RR7      p	TP                  V'       d   \        V4      MT4       TP                  V	'       d   V	R8H  ;'       g    TMR4       V P                  V4       VP                  RV P                  4       VP                  4       P                  RV P                   4       V# )	)ZmarkupTz%s_column_width	list view)Zsectionz
%s_visibleZTrueznotify::widthzbutton-press-event)r   r   r"   Zset_sort_column_idZset_resizabler!   r   Zread_settingr   r6   Zintset_visibler#   r*   on_column_width_changedZ
get_buttonon_column_header_button_pressed)
r-   ZcellZheaderZ	column_idZdefault_widthr   r   columnZwidth
is_visibles
   &&&&&&&   r0   r'   ZGameListView.set_column`   s   ##FC!!$'!!w)GLT"t$%%&7,y:Q&Q[fg**<,y:Q+Q[fg
Us5zFZ:/AA>UYZ6"(D(DE##$8$:^:^_r1   c                s>    V P                  W4      pVf   R # Vw  rErgV# N)Zget_path_at_pos)r-   ZxZyZpath_atpathZ_colZ_cxZ_cys   &&&     r0   get_path_atZGameListView.get_path_ato   s)    &&q,?&Cr1   c                s    V P                  4       pVP                  4        \        V4       F>  w  rEVP                  V4       V'       g   K   V^ 8X  g   K)  V P	                  VRRRR4       K@  	  R# )r2   NFg        )r)   Zunselect_allZ	enumerateZselect_pathZscroll_to_cell)r-   ZpathsZscroll_into_view	selectionZidxr@   s   &&&   r0   set_selectedZGameListView.set_selectedv   s]    &&(	 "5)IC!!$'C1H##D$sC@ *r1   c                sd    V P                  4       P                  4       pV'       g   R# V^,          # )z!Return list of all selected itemsN)r)   Zget_selected_rows)r-   rB   s   & r0   get_selectedZGameListView.get_selected   s)    &&(::<	|r1   c                s    V P                  4       P                  V4      pV P                  4       P                  V\        4      # r?   )	get_modelZget_iter	get_valuer   )r-   r@   iterator   && r0   get_game_id_for_pathZ!GameListView.get_game_id_for_path   s3    >>#,,T2~~))(F;;r1   c                sZ   aa R oVV3R lpV P                  4       P                  V4       S# )Nc                 sJ   < V P                  V\        4      pSV8X  d   VoR # R# )TN)rF   r   )r4   r@   rG   Zrow_idr   
path_founds   &&& r0   
check_pathZ5GameListView.get_path_for_game_id.<locals>.check_path   s(    __Xv6F& !
 !r1   )rE   Zforeach)r-   r   rK   rJ   s   &f @r0   get_path_for_game_idZ!GameListView.get_path_for_game_id   s*    
	 	  ,r1   c                s    V P                   P                  VR R7      pV'       d   V P                  VP                  4       R# R# )T)ZfilteredN)r7   Zget_row_by_idZ
set_cursorr@   )r-   r   ZrowrH   r0   set_selected_gameZGameListView.set_selected_game   s3    oo++Gd+COOCHH% r1   c                s    VP                   \        P                  8X  d-   \        V P	                  4       4      pVP                  R4       R# R# )z)Handles column header button press eventsNT)buttonr   ZBUTTON_SECONDARYGameListColumnToggleMenuZget_columnsZpopup_at_pointer)r-   rN   ZeventZmenus   &&& r0   r<   Z,GameListView.on_column_header_button_pressed   s=    <<3///+D,<,<,>?D!!$' 0r1   c                s^    V P                  4       pV'       d   V P                  RV4       R# R# )zHandles double clickszgame-activatedN)Zget_selected_game_idemit)r-   widgetZliner=   Zselected_id   &&&& r0   r+   ZGameListView.on_row_activated   s'    //1II&4 r1   c                sJ    V P                  4       pV P                  R V4       R# )zgame-selectedN)rD   rP   )r-   rQ   Z_lineZ_columnZselected_itemsrR   r0   r,   ZGameListView.on_cursor_changed   s    **,		/>2r1   c                s    V P                  4       pV'       d@   \        P                  ! VP                  R R4      R,           V P	                  4       R4       R# R# ) r   Z_column_widthr9   N)	get_titler   write_settingreplaceZget_fixed_width)ZcolZargsZcol_names   &* r0   r;   Z$GameListView.on_column_width_changed   sG    ==?""  b)O;##% r1   )r   r    r4   )FN)F)NN)__name__
__module____qualname____firstlineno____doc__r   Z__gsignals__r   r$   Zstaticmethodr%   r'   rA   rC   rD   rI   rL   rM   r<   r+   r,   r;   __static_attributes____classdictcell____classcell__r8   Z__classdict__   @@r0   r   r       s     &((L'HR	;  A<&
53   r1   r   c                   s>   a a ] tR t^t oV 3R ltR tR tRtVtV ;t	# )rO   c                s~   < \         SV `  4        Wn        / V n        V P	                  4        V P                  4        R # r?   )r3   r   columns
column_mapcreate_menuitemsZshow_all)r-   ra   r8   s   &&r0   r   Z!GameListColumnToggleMenu.__init__   s/    r1   c                s   V P                    F  pVP                  4       pVR 8X  d   K  \        P                  ! V4      pVP	                  VP                  4       4       V\        R4      8X  d   VP                  R4       MVP                  RV P                  4       WP                  V&   V P                  V4       K  	  R# )r   r   FZtoggledN)ra   rT   r   ZCheckMenuItemZ
set_activeZget_visibler(   Zset_sensitiver*   on_toggle_columnrb   Zappend)r-   r=   ZtitleZcheckboxs   &   r0   rc   Z)GameListColumnToggleMenu.create_menuitems   s    llF$$&E{((/H 2 2 45&	!&&u-  D,A,AB(.OOH%KK! #r1   c                s    V P                   V,          pVP                  4       pVP                  V4       \        P                  ! VP                  4       P                  R R4      R,           \        V4      R4       R# )rS   r   Z_visibler9   N)rb   Z
get_activer:   r   rU   rT   rV   Zstr)r-   Zcheck_menu_itemr=   r>   r/   r0   rd   Z)GameListColumnToggleMenu.on_toggle_column   sb    1$//1
:&&&sB/*<
O	
r1   )rb   ra   )
rW   rX   rY   rZ   r   rc   rd   r\   r]   r^   r_   r`   r0   rO   rO      s     "
 
r1   rO   N)!r[   r    r(   Zgi.repositoryr   r   r   Zlutrisr   Zlutris.gui.viewsr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   Zlutris.gui.views.baser   Z lutris.gui.widgets.cellrenderersr   r   r   ZMenurO   ) r1   r0   <module>re      s^       * )     " + FU3<< Up
sxx 
r1   