
    ODg                     `    d dl mZmZmZ d dlZ G d dej
                  ej                        Zy)    )GObjectGtkXviewerNc                       e Zd Z ej                  ej                        Zd Zd Z	d Z
ed        Zed        Zed	d       Zy)
SlideshowShufflePlugin)typec                 B    t         j                  j                  |        y N)r   Object__init__selfs    ,/usr/lib/xviewer/plugins/slideshowshuffle.pyr   zSlideshowShufflePlugin.__init__   s    %    c                     t        j                          d| _        | j                  j	                  d| j
                  |       | _        y )NFzwindow-state-event)randomseed	slideshowwindowconnectstate_changed_cbstate_handler_idr   s    r   do_activatez"SlideshowShufflePlugin.do_activate   s7    KK 4d6K6KTR 	r   c                 N    | j                   j                  | j                         y r
   )r   
disconnectr   r   s    r   do_deactivatez$SlideshowShufflePlugin.do_deactivate#   s    t445r   c           	         |j                   j                         }|t        j                  j                  k(  r5|j
                  s(d|_        | j                         sd}n-| j                         j                  | j                               }| j                         D cg c]  }|d   j                          }}|j                  |      di|_        t        t        dt        |      dz               }|D ]@  }|j                  t        j                   dt        |      dz
              |j                  |<   B |j                   j                         j#                  |j$                  |       y |t        j                  j&                  k(  rH|j
                  r;d|_        |j                   j                         j#                  |j(                         y y y c c}w )NTr         F)r   get_moder   
WindowMode	SLIDESHOWr   	get_image	get_storeget_pos_by_imageget_uri_for_displaypopmaplistrangelenr   randintset_default_sort_funcrandom_sort_functionNORMALalphabetic_sort_function)	r   eventr   modeposrowuri_listsupplyuris	            r   r   z'SlideshowShufflePlugin.state_changed_cb(   s   {{##%7%%///!DN ##%&&(99&:J:J:LM $*#3#3#57 A224 7H 7 S)1-DH%3x=1#456F O &

6>>!S[1_+M NO KK!!#%%d&?&?FW''...4>>"DN KK!!#%%d&C&CD 4B.7s   Gc                     |j                   | |   d   j                            }|j                   | |   d   j                            }||kD  ry||k  ryyNr   r   r   )r(   r&   )storeiter1iter2r   pos1pos2s         r   r.   z+SlideshowShufflePlugin.random_sort_functionI   sW    xxeQ;;=>xxeQ;;=>4KD[r   Nc                     | |   d   j                         j                         }| |   d   j                         j                         }||kD  ry||k  ryyr9   )r&   lower)r;   r<   r=   datauri1uri2s         r   r0   z/SlideshowShufflePlugin.alphabetic_sort_functionU   sW    U|A224::<U|A224::<$;D[r   r
   )__name__
__module____qualname__r   propertyr   Windowr   r   r   r   staticmethodr   r.   r0    r   r   r   r      si     W7>>2F&S6
 E E@ 	 	 	 	r   r   )gi.repositoryr   r   r   r   r   WindowActivatabler   rK   r   r   <module>rN      s*   $ 0 / JW^^W-F-F Jr   