
    ?g                         d dl Z d dlmZmZ d dlZ G d d      Z G d dej                        Z G d dej                        Z	y)	    N)GtkPangoc                       e Zd Zd Zy)LogEntryc                     || _         t        |      | _        t        j                  j	                  | j                        j                  d      | _        || _        |d| j                  d|d| _        y )Nz%Y-%m-%dT%H:%M:%SZz t= 
)	categoryinttimedatetimefromtimestampstrftimetimestrmessageformatted_text)selfr
   r   r   s       6/usr/share/cinnamon/cinnamon-looking-glass/page_log.py__init__zLogEntry.__init__   sV     I	((66tyyAJJK_`08$,,P    N)__name__
__module____qualname__r    r   r   r   r      s    Qr   r   c                   4    e Zd Zd Zd Zd Zd ZddZddZy)	LogViewc           	         t         j                  j                  |        || _        | j	                  t         j
                  j                         | j                  t         j                  j                  t         j                  j                         t        j                         | _        | j                  j                  d       | j                  j                  d       | j                  | j                         | j                  j                         | _        | j                   j#                  d | j                   j%                         d      | _        g | _        d| _        d | _        d| _        | j1                         }ddddd| _        | j                   j5                  d| j2                  d    d      | j                   j5                  d|j7                  d	      d
   | j2                  d    d      | j                   j5                  d|j7                  d      d
   | j2                  d    d      | j                   j5                  dt8        j:                  j<                  | j2                  d    d      d| _        | j                  jA                  d| jB                         | j                  jA                  d| jD                         y )NF   r   T)infowarningerrortracer   )	invisibleinvisible_setr    warning_color   )foreground_rgbar#   r$   r!   error_colorr"   )weightr#   r$   zsignal::log-updatezstatus-changed)#r   ScrolledWindowr   proxyset_shadow_type
ShadowType	ETCHED_IN
set_policy
PolicyType	AUTOMATICTextViewtextviewset_editableset_left_marginadd
get_buffer
textbuffercreate_markget_end_iterscroll_marklogadded_messagesfirst_message_timeneed_rereadget_style_contextenabled_types
create_taglookup_colorr   WeightSEMIBOLD	type_tagsconnectget_updateson_status_change)r   r+   contexts      r   r   zLogView.__init__   sN   ##D)
S^^55600#..2J2JK""5)%%a(--224??66tT__=Y=Y=[]bc"& ((*&*tdUZ[OO..v=A=O=OPV=W9W=A / C 11)BIBVBVWfBghiBj@D@R@RS\@]<]@D 2 F __//@G@T@TUb@cde@f>B>P>PQX>Y:Y>B 0 D __//7<||7L7L>B>P>PQX>Y:Y>B 0 D
, 	

/1A1AB

+T-B-BCr   c                 V    t        |||      }| j                  j                  |       |S N)r   r<   append)r   r
   r   r   entrys        r   rM   zLogView.append@   s%    41r   c                     |j                         }|| j                  |<   | | j                  |   j                  _        | j
                  j                  d       y )NT)
get_activerA   rF   propsr#   r8   set_modified)r   buttondataactives       r   on_button_toggledzLogView.on_button_toggledE   sK    ""$#)4 39zt"",$$T*r   c                 4   | j                   j                         }|r| j                  ddd      }n| j                  ddd      }| j                   j                  ||j                  | j
                  |j                            d| _        | j                          y )Nr   r   z<================ DBus connection established ===============r    z5================ DBus connection lost ===============T)	r8   r:   rM   insert_with_tagsr   rF   r
   r?   rH   )r   r+   online	text_iterrN   s        r   rI   zLogView.on_status_changeK   s    OO002	KK ! ^`E KK	 ! WYE 	(().)=)=)-)G	I  r   Nc                 P    | j                   j                  | j                         y )N)	result_cb)r+   GetErrorStackget_error_stack_finished)r   r+   s     r   rH   zLogView.get_updates\   s    

  4+H+H Ir   c                 :   |\  }}|rr	 t        |      }|dkD  r_|d   d   }| j                  |kD  s| j                  |k7  s| j                  r|| _        d| _        | j                  r9| j                  j                         \  }}	| j                  j                  ||	       d| _        | j                  j                         }
|| j                  d  D ]}  }| j                  |d   t        |d         dz  |d         }| j                  j                  |
|j                  | j                  |j                            | xj                  dz  c_         | j                  j                  | j                   dddd       y y y # t"        $ r}t%        |       Y d }~y d }~ww xY w)	Nr   	timestampFr
   gMbP?r   r&   T)lenr=   r>   r?   r8   
get_boundsdeleter:   rM   floatrX   r   rF   r
   r3   scroll_to_markr;   	Exceptionprint)r   r+   result	user_datasuccessrT   	data_sizer>   startendrZ   itemrN   excs                 r   r^   z LogView.get_error_stack_finished_   s    $I	q=)-a)=&++i7 337II ,,2D/./+''%)__%?%?%A
s..uc:',D$ $ < < >I $T%8%8%9 : 1 $D,<,1${2C,Du,L,0O!= 889>9M9M9=9WY ++q0+1 MM001A1A1dAqQ1 ! 8  c

s   E/E< <	FFFrL   )	r   r   r   r   rM   rV   rI   rH   r^   r   r   r   r   r      s#    .D`
+"J r   r   c                       e Zd Zd Zd Zy)
ModulePagec                 2   t        |j                        | _        t        j                  j                  | | j                         || _        | j                  ddd       | j                  ddd       | j                  ddd	       | j                  d
dd       y )Nr   zdialog-information-symbolicz#Show/Hide Messages tagged as 'info'r    zdialog-warning-symbolicz&Show/Hide Messages tagged as 'warning'r!   zdialog-error-symbolicz$Show/Hide Messages tagged as 'error'r"   zdialog-question-symbolicz$Show/Hide Messages tagged as 'trace')r   lg_proxyview	pageutilsWindowAndActionBarsr   parentadd_toggle_button)r   rw   s     r   r   zModulePage.__init__   s    FOO,	%%..tTYY?v<D	F 	y8G	I 	w6E	G 	w9E	Gr   c                    t        j                  |      }|j                  d| j                  j                  |       |j                  | j                  j                  |          |j                  |       | j                  |d       y )Ntoggledr&   )	ru   ImageToggleButtonrG   rt   rV   
set_activerA   set_tooltip_textadd_to_left_bar)r   log_typeicontooltiprS   s        r   rx   zModulePage.add_toggle_button   sg    ,,T2y$))"="=xH$))11(;<(VQ'r   N)r   r   r   r   rx   r   r   r   rq   rq      s    G$(r   rq   )
r   gi.repositoryr   r   ru   r   r*   r   rv   rq   r   r   r   <module>r      sC     $ Q Qpc   pd(.. (r   