403Webshell
Server IP : 209.205.66.10  /  Your IP : 216.73.216.173
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux ammon 5.15.0-186-generic #196-Ubuntu SMP Sat Jun 20 16:09:34 UTC 2026 x86_64
User :  ( 1006)
PHP Version : 8.5.8
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/rhythmbox/plugins/alternative-toolbar/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/rhythmbox/plugins/alternative-toolbar/__pycache__/alttoolbar_sidebar.cpython-310.pyc
o

1�b�X�@s�ddlZddlmZddlmZddlmZddlmZddlmZddlm	Z	ddlm
Z
dd	lmZdd
lmZddlm
Z
Gdd
�d
ej�ZdS)�N)�AltControllerCategory)�CoverLocale)�GSetting)�GLib)�GObject)�Gdk)�Gio)�Gtk)�Pango)�RBcs�eZdZejedd�Z�fdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Z�ZS))�AltToolbarSidebarz{1:True})�type�defaultcs$tt����|j�_|�_|j�_|�_d�_d�_t	�}|�
|jj���
d�i�_d�_d�_t�}|�|jj�}|�|jj�dtjj�tj�ttj t!g��_"�j"j#dd��_$�j$�%d���&�j$���'�}|�(tj)���*d��fdd	�}|t+d
�t,j-�|t+d�t,j.�|t+d�t,j/�|t+d
�t,j0��fdd�}t1�2d|�tj3��}	|	�4d�|	�5tj6j7���8|	�tj3��}	t�9�}
|	�:|
d�t�;�}|�<d�j=�|�_>|	�:|d�|	�?|
�j@�|	�?|�jA�|	�_B��8|	���C|	���D���Ed�t	�}|�
|jjF�dS)z)
        Initialises the object.
        N����AltToolbarSideBarF�	expanders)�root�cs*�j�d�}|ddg�j|<|�j|<dS)NF)�	treestore�append�	_category)�text�category�local��self��D/usr/lib/rhythmbox/plugins/alternative-toolbar/alttoolbar_sidebar.py�define_categoryLsz3AltToolbarSidebar.__init__.<locals>.define_categoryzLocal collectionzOnline sourcesz
Other sources�	Playlistscs��jjj}|��}d}��||d|�������t�j�}t	|�t	�j�|D]}t	|��j
��j|�}|rF||rF��
|d�q+dS)NrF)�shell�props�display_page_model�get_iter_first�_traverse_rows�_refresh_headers�_connect_signals�evalr�printr�get_pathr�
expand_row)�args�model�rootiter�depthrr�pathrrr�delayedVs 


�z+AltToolbarSidebar.__init__.<locals>.delayed���editedT)G�superr�__init__r �toolbar�plugin�rbtree�_drag_dest_source�_drag_motion_counterr�
switch_locale�Locale�
LOCALE_DOMAIN�set_namer�_last_click_source�
_user_clickedr�get_setting�Path�PLUGIN�bind�	PluginKey�	EXPANDERSr�SettingsBindFlags�DEFAULTr	�	TreeStore�new�strr�Object�boolr�
filter_new�treestore_filter�set_visible_column�	set_model�get_style_context�	add_class�STYLE_CLASS_SIDEBAR�set_headers_visible�_r�LOCAL�ONLINE�OTHER�PLAYLISTr�timeout_add_seconds�TreeViewColumn�set_fixed_width�
set_sizing�TreeViewColumnSizing�FIXED�
append_column�CellRendererPixbuf�
pack_start�CellRendererText�connect�on_renderertext_edited�
text_renderer�set_cell_data_func�_set_pixbuf�	_set_text�tree_column�set_expander_column�show_all�
set_can_focusr)rr6r8�cl�gs�plugin_settings�contextrr0�column�pixbuf_renderer�renderer��	__class__rrr5$sh
�







zAltToolbarSidebar.__init__cCs�|jjj}|�d|j�|_|�d|j�|_|�d|j�|jjj	}|jj
�d|j�|�d|j�|jjj
�d|j�|�gtjj�|��|�d|j�|�d|j�|�d	|j�dS)
Nz
page-insertedzrow-deletedzbutton-press-eventzrow-inserted�selectedzplaying-song-changed�	drag-drop�drag-data-receivedzdrag-motion)r r!r"re�_model_page_inserted�_cpi�_model_page_deleted�_crd�
_row_click�display_page_treer,�_tree_inserted�_display_page_tree_selected�shell_player�_on_playing_song_changed�enable_model_drag_destr�
DragAction�COPY�drag_dest_add_uri_targets�on_drag_drop�on_drag_data_received�on_drag_motion)rr,�treerrrr&�s&

���z"AltToolbarSidebar._connect_signalscCs&|jjj}|�|j�|�|j�dS�N)r r!r"�
disconnectr|r~)rr,rrr�cleanup�s
zAltToolbarSidebar.cleanupcCs6td�|�d�|�|d�}|�|||�d|_dS)z�
        Callback called when a drag operation finishes over the treeview
        It decides if the dropped item can be processed.
        r�ryNT)r(�stop_emission_by_name�drag_dest_find_target�
drag_get_datar9)r�widgetrr�x�y�time�targetrrrr��s
zAltToolbarSidebar.on_drag_dropcs0d}z
|�||�\}}WnYd}|r8|tjjks!|tjjkr8|tjjkr,tjj}	ntjj}	|�d|	�d}|r}�j|d}
z
|
sGd}n|
�	�rMd}Wnd}Y|
r}|r}|
�j
kri�jdkrfd�_|
�_
�fdd�}�jdkr}d�_t�
d|�|r�t�|tjj|�|St�|d|�d�_
|S)NFr1Trrcs`�jdkr�jr�jd7_dS�jr+�jdkr+�jjj}|r+|��j��j��d�_dS)Nrr1TrF)r:r9r r!r��selectr8�
expand_all)r+r�rrrr0�s
�


z1AltToolbarSidebar.on_drag_motion.<locals>.delayed)�get_dest_row_at_posr	�TreeViewDropPosition�BEFORE�AFTER�INTO_OR_BEFORE�
INTO_OR_AFTER�set_drag_dest_rowrO�	can_paster9r:rr[r�drag_statusr�r�)rr��drag_contextr�r�r�r/�pos�result�drop_pos�dest_sourcer0rrrr��sL
�


�z AltToolbarSidebar.on_drag_motioncCs�td�|�d�|�||�\}}	|j|d}
|�dd|�|��}g}|D]}
|jjj�	|
�}|r8|�
|�q'|
�|�dS)zl
        Callback called when the drag source has prepared the data (pixbuf)
        for us to use.
        r�rzr1TFN)r(r�r�rO�finish�get_urisr r!�db�entry_lookup_by_locationr�paste)rr�r�r�r��data�infor�r/r�r��uris�entries�uri�entryrrrr�s

�z'AltToolbarSidebar.on_drag_data_receivedcGs,td�t|jd�rtd�|��dSdS)z�
          signal when a playing song changes - need to invoke a tree-refresh
          to ensure the user can see which source
        :param args:
        :return:
        zplaying song changedr��queuingN)r(�hasattrr7�
queue_draw)rr+rrrr�s
�z*AltToolbarSidebar._on_playing_song_changedcCs.td�t|�t|�||j|dj_dS)Nr3r1)r(rOr!�name)rrur/�new_textrrrrf*sz(AltToolbarSidebar.on_renderertext_editedcCs�|durxt||dtj�r&|�|�r |�|�}|�||||�|�|�}q|dkr:|�||d�}|j�	|�}n|j�	|�}||d|j|d<d|j|d<d|j|d<|�|�rm|�|�}|�||||d�|�|�}|dusdSdS)Nr1r�Tr)
�
isinstancer�DisplayPageGroup�iter_has_child�
iter_childrenr$�	iter_next�_get_category_iterrr)r�store�treeiter�new_parent_iterr.�	childiter�
category_iter�	leaf_iterrrrr$2s&





�z AltToolbarSidebar._traverse_rowscCsNt|�t|�t||djj�t||d�|�|||d|�dS�Nr1)r(r!r�r{)rr,r/�	page_iterrrrr�Qs
z AltToolbarSidebar._tree_insertedc	s|r|jjsdSt|�t|�|�|�}t|��fdd��|j��}�|j||�r-dS|r9t||dtj�s;|sG|�	|�}|j�
|�}n||d}�|j||�}|j�
|�}||j|d<d|j|d<d|j|d<|��dt|�j
vr|�|�|j��dS)	Ncsv|dur5||d}t|�|dur||kr|S|�|�r,|�|�}�|||�}|r,|S|�|�}|dustd�dS)Nr1z
nothing found)r(r�r�r�)r�r��page�
found_pager��ret��find_lookup_rowsrrr�`s


�z@AltToolbarSidebar._model_page_inserted.<locals>.find_lookup_rowsr1r�rTr�PlaylistSource)r!�
visibilityr(�iter_parentrr#r�rr�r�rr%r
�__name__�
edit_playlistr8r�)	rr,r�r��parent_iterr-r�r��
searchpagerr�rr{Xs6

��

z&AltToolbarSidebar._model_page_insertedcsZtd�d�jj_�j�|���j����t�������fdd�}t	�
d|d�dS)z`
           edit the playlist
        :param leaf_iter: treestore iter
        :return:
        r�Tcs����j�jd�dS)NT)�set_cursor_on_cellrkrg)r+�r/rrrr0�s
�z0AltToolbarSidebar.edit_playlist.<locals>.delayedr1N)r(rgr!�editablerr)rO�convert_child_path_to_path�
grab_focusrr[)rr�r0rr�rr��s
zAltToolbarSidebar.edit_playlistcsni�|j��}��fdd���|j|���fdd��|��}�||��D]
}|j��|�q&|��dS)z�
          signal from the displaytreemodel - we dont actually know what is
          deleted ... just that something has been
        :param model:
        :param path:
        :return:
        cs`|dur.||ddur|�||d<|�|�r#|�|�}�||�|�|�}|dusdSdSr��r�r�r��r�r�r��r��lookuprrr��s



�z?AltToolbarSidebar._model_page_deleted.<locals>.find_lookup_rowscs^|dur-||d�vr�||d=|�|�r"|�|�}�||�|�|�}|dusdSdSr�r�r�)�	find_rowsr�rrr��s



�z8AltToolbarSidebar._model_page_deleted.<locals>.find_rowsN)rr#�remover%)rr,r/r-�sourcer)r�r�r�rr}�s



z%AltToolbarSidebar._model_page_deletedc	s�td�z|�|j|j�\}}}}Wn
td�YdS�j|d}t|�|rRd�_�jjj�	|��j
���j|krJdt
|�jv�jj_nd�jj_|�_�fdd	�}t�d|�dS)
z5
        event called when clicking on a row
        r�exitNr1Tr�FcsLi}�jD]}�j��j|�}|r��|�||<qt|��_t�j�dSr�)rrr)�row_expandedrKrr()r+�cat_valsrr/rrrr0�s
�
z-AltToolbarSidebar._row_click.<locals>.delayed)r(�get_path_at_posr�r�rOr@r r!r�r�r8r�r?r
r�rgr�rr[)	rr��event�treepath�
treecolumn�cellx�celly�
active_objectr0rrrr�s(�


�
zAltToolbarSidebar._row_clickcsl|jrd|_dSi�|j��}��fdd���|j|�|�vr4|j��|�}|�|�|�|�dSdS)z�
        signal from when a page is selected in the display-page-tree -
        we need to sync with our tree
        :param display_page_tree:
        :param page:
        :return:
        FNcst|dur8||ddur|�||d<t||djj�|�|�r-|�|�}�||�|�|�}|dusdSdSr�)r(r!r�r�r�r�r�r�rrr�s



�zGAltToolbarSidebar._display_page_tree_selected.<locals>.find_lookup_rows)r@rOr#r)�expand_to_path�
set_cursor)rr�r�r-r/rr�rr�s	

�z-AltToolbarSidebar._display_page_tree_selectedcCsB|durdS|durdS||d}|dur3tjj|j_||d|j_t|jj�||d|j_nJd|j_|jjj	}|j
oD|��|k}|jjrft
�}	|	�|	jj�t�|jj�}
|	�|	jj�|
|j_nd|j_|rstjj|j_ntjj|j_d|j_|�|�}|��dkr�d|j_d|j_nd|j_d|j_tjj|j_dS)Nr1rrTr���)r
�Weight�BOLDr!�weightrr(�visibler r��get_playing�get_playing_sourcer�rr;r<r=�gettextr�NORMAL�ypadr)�	get_depth�xpad�
EllipsizeMode�END�	ellipsize)rrsrur,r��argr��player�playingro�translationr/rrrrj-s@
�


zAltToolbarSidebar._set_textcCsD|j��}|dur |j�|�|j|d<|j�|�}|dus	dSdS)Nr)rr#r�r�)rr�rrrr%Xs

��z"AltToolbarSidebar._refresh_headersc
Csx||d}|durd|j_n|j�|�\}}|�|�|j_d|j_|�|�}	|	��dkr2d|j_	nd|j_	d|j_
dS)Nr1TrFr�)r!�pixbufr6�
is_controlled�	get_gicon�gicon�follow_stater)r�r�r�)
rrsrur,r�r�r��ret_bool�
controllerr/rrrrias


zAltToolbarSidebar._set_pixbufcCs,|j�|�\}}tj}|r|��}|j|Sr�)r6rrrY�get_categoryr)rr�rrrrrrr�us

z$AltToolbarSidebar._get_category_iter)r��
__module__�__qualname__r�propertyrKrr5r&r�r�r�r�r�rfr$r�r{r�r}rr�rjr%rir��
__classcell__rrrvrr!s*kD
A3)%+	r)r��alttoolbar_controllerr�alttoolbar_preferencesrr�
gi.repositoryrrrrr	r
r�TreeViewrrrrr�<module>s

Youez - 2016 - github.com/yon3zu
LinuXploit