
    z#gS                       S SK Jr  S SKrS\R                  ;   d  S\R                  ;   d  \" S5      e S SKr\R
                  " SS5        S SKJr  \R
                  " S	S
5        S SKJr  \R
                  " SS5        S SKJ	r	  \R
                  " SS5        S SKJ
r
  \R
                  " SS5        S SKJr  \R
                  " SS5        S SKJr  \R                  " S5        S SKrS SKrS SKrS SKJr  S SKrS SKrS SKrS SK JrJrJr  S SKJr  S SKJr  SrSrSq S r!S r"S  r#S! r$\RJ                  " S"5      r&S# r'S$ r(SpS% jr)S& r* " S' S(\RV                  5      r, " S) S*\,5      r- " S+ S,\,5      r. " S- S.\RV                  5      r/ " S/ S0\05      r1 " S1 S2\05      r2 " S3 S4\Rf                  \Rh                  5      r5 " S5 S6\RV                  5      r6 " S7 S8\Rh                  5      r7 " S9 S:\85      r9 " S; S<\05      r: " S= S>\:5      r; " S? S@\;5      r< " SA SB\;5      r= " SC SD\=5      r> " SE SF\;5      r? " SG SH\;5      r@ " SI SJ\@5      rA " SK SL\;5      rB " SM SN\@5      rC " SO SP\;5      rD " SQ SR\;5      rE " SS ST\;5      rF " SU SV\F5      rG " SW SX\;5      rH " SY SZ\;5      rI " S[ S\\;5      rJ " S] S^\;5      rK " S_ S`\R                  5      rM " Sa Sb\:\R                  5      rO " Sc Sd\:\R                  5      rP " Se Sf\:\R                  5      rRSg rSSh rTSi rU\=\>\B\C\D\F\E\G\H\I\A\J\?Sj.rV\O\R\PSk.rWSl rXSm rYSn rZSo r[g! \ a	    \" S5      ef = f)q    )UINotImportableNDISPLAYWAYLAND_DISPLAYz7No graphical display detected, falling back to text UI.GLibz2.0)r   Pangoz1.0)r   Gdkz3.0)r   	GdkPixbuf)r	   Gtk)r
   	GtkSource4)r   cairoz?Please install the reportbug-gtk package to use this interface.)Queue)	NoPackageNoBugsQuertBTSError)debbugs)launch_browserTz"/usr/share/pixmaps/debian-logo.pngc                 D    U [         :X  a  gU [        :X  a  g[        U 5      $ )Nz<MainContext of UI thread>z!<MainContext of reportbug thread>)
ui_contextreportbug_contextrepr)contexts    5/usr/lib/python3/dist-packages/reportbug/ui/gtk_ui.py_describe_contextr   O   s#    *+	%	%2G}    c                     [         R                  R                  5       nX:w  a%  [        S[	        U 5      < S[	        U5      < 35      eUR                  5       (       d  [        S5      eg )NzFunction should be called in z but was called in z*Function should be called with %s acquired)r   MainContextref_thread_defaultAssertionErrorr   is_owner)expectedreallys     r   _assert_contextr#   X   sc    002F /9;LV;TV W 	W ??IJJ r   c                  t    [         R                  " [         R                  " 5       [        R                  5        g N)oskillgetpidsignalSIGINT r   r   _exitr,   d   s    GGBIIK'r   c                     SU -  $ )N	<b>%s</b>r+   ss    r   	highlightr1   h   s    ?r   z<.*?>c                 .    [         R                  SU 5      $ N )re_markup_freesubr/   s    r   markup_freer7   o   s    b!$$r   c                 B    U R                  5       n U S   S;   a  U S S $ U $ )N)?:)stripr/   s    r   ask_freer=   s   s)    		Au
"vHr   c                 z   [        [        5        [        R                  " 5       nUR	                  [        R
                  R                  5        UR                  [        R                  R                  [        R                  R                  5        U(       a  UR                  U 5        U$ UR                  U 5        U$ r%   )r#   r   r
   ScrolledWindowset_shadow_type
ShadowType	ETCHED_IN
set_policy
PolicyType	AUTOMATICadd_with_viewportadd)widgetwith_viewportscrolleds      r   create_scrollablerK   z   s    J!!#HS^^55600#..2J2JK""6* O 	VOr   c                    [        [        5        [        R                  " [        [        R
                  R                  [        R
                  R                  -  [        R                  R                  [        R                  R                  U 5      nUR                  SS 5        UR                  S5        UR                  5         g )Nresponsec                 "    U R                  5       $ r%   destroy)dargss     r   <lambda>info_dialog.<locals>.<lambda>   s
    		r   	Reportbug)r#   r   r
   MessageDialog	assistantDialogFlagsMODALDESTROY_WITH_PARENTMessageTypeINFOButtonsTypeCLOSEconnect	set_titleshow_all)messagedialogs     r   info_dialogrd      sz    Jy#//*?*?#//BeBe*e"33S__5J5JGUF
NN:;<
[!
OOr   c                       \ rS rSrS rSrg)CustomDialog   c                    [        [        5        [        R                  R	                  U S[
        [        R                  R                  [        R                  R                  -  U5        U R                  US   5        U R                  S5        [        R                  " SS9nUR                  S5        U R                  R                  USSS5        [        R                  " SS9nUR                  US	SS5        [        R                  " S
S
SSS9nUR                  US	SS5        [        R                   R#                  U[        R$                  R&                  5      n	UR                  U	SSS5        [        R(                  " US9n
U
R+                  S5        U
R-                  [        R.                  R0                  5        U
R3                  S5        U
R5                  SS	5        UR                  U
S	SS5        U R6                  " U/UQ70 UD6  g )NrU   r9      
   spacing   Tr   Fg      ?g      ?)xalignyalignxscaleyscalelabel	can-focus)r#   r   r
   Dialog__init__rW   rX   rY   rZ   set_default_responseset_border_widthVBoxvbox
pack_startHBox	AlignmentImagenew_from_stockIconSizeDIALOGLabelset_line_wrapset_justifyJustificationFILLset_selectableset_propertysetup_dialog)selfstock_imagerb   buttonsrR   kwargsrz   hboxalignimagers   s              r   rv   CustomDialog.__init__   s   
#

D+yOO11COO4W4WW#	% 	!!'"+.a xx#a 		T4q1 xx#eT1-
 SSMudA.		((cll6I6IJtT1-		(D!#++001T";.udA.$000r   r+   N__name__
__module____qualname____firstlineno__rv   __static_attributes__r+   r   r   rf   rf      s    !1r   rf   c                   &    \ rS rSrS rS rS rSrg)InputStringDialog   c           	         [        [        5        [        R                  U [        R
                  U[        R                  [        R                  R                  [        R                  [        R                  R                  45        g r%   )r#   r   rf   rv   r
   STOCK_DIALOG_INFOSTOCK_CANCELResponseTypeCANCELSTOCK_OKACCEPT)r   rb   s     r   rv   InputStringDialog.__init__   sW    
#dC$9$97"//1A1A1H1H"||S-=-=-D-DF	Gr   c                     [        [        5        [        R                  " 5       U l        UR                  U R                  SSS5        g )NFTr   )r#   r   r
   Entryentryr{   r   rz   s     r   r   InputStringDialog.setup_dialog   s-    
#YY[


E43r   c                 T    [        [        5        U R                  R                  5       $ r%   r#   r   r   get_textr   s    r   	get_valueInputStringDialog.get_value       
#zz""$$r   )r   N)r   r   r   r   rv   r   r   r   r+   r   r   r   r      s    G4
%r   r   c                   F    \ rS rSr\S 5       r\S 5       rS rS rS r	Sr
g)	ExceptionDialog   c                 6   ^ ^ [        [        5        U U4S jnU$ )Nc           
         > T(       a	  T" XU5        [         R                  TR                  SR                  [        R
                  " XU5      5      5        g r3   )applicationrun_once_in_main_threadstart_dialogjoin	tracebackformat_exception)exctypevaluetbclsoldhooks      r   
excepthook5ExceptionDialog.create_excepthook.<locals>.excepthook   sB    +//0@0@02	8R8RSZce8f0gir   r#   r   )r   r   r   s   `` r   create_excepthook!ExceptionDialog.create_excepthook   s    )*	i r   c                     [        [        5         U " U5      nUR                  5         g ! [         a    [	        5          g f = fr%   )r#   r   ra   	Exceptionr,   )r   r   rc   s      r   r   ExceptionDialog.start_dialog   s6    
#	WFOO 	G	s   * A Ac                     [        [        5        [        R                  U [        R
                  S[        R                  [        R                  R                  4U5        g )NzSAn error has occurred while doing an operation in Reportbug.
Please report the bug.)	r#   r   rf   rv   r
   STOCK_DIALOG_ERRORSTOCK_CLOSEr   r^   )r   r   s     r   rv   ExceptionDialog.__init__   so    
#dC$:$:  =S  VY  Ve  Ve  gj  gw  gw  g}  g}  U~  @B  	Cr   c                 d   [         R                  R                  S5      nUR                  USSS5        [         R                  " 5       nUR                  S5        UR                  5       R                  U5        [        U5      nUR                  U5        U R                  SU R                  5        g )NzMore detailsTr   FrM   )r
   Expandernew_with_mnemonicr{   TextViewset_editable
get_bufferset_textrK   rG   r_   on_response)r   rz   r   expanderviewrJ   s         r   r   ExceptionDialog.setup_dialog   s    <<11.A$a0||~% ""2&$T*XZ!1!12r   c                 6    [        [        5        [        5         g r%   r#   r   r,   r   rc   ress      r   r   ExceptionDialog.on_response       
#r   r+   N)r   r   r   r   classmethodr   r   rv   r   r   r   r+   r   r   r   r      s8    
 
  C3r   r   c                        \ rS rSrS rS rSrg)ReportViewerDialog   c           
      <   [        [        5        [        R                  R	                  U S[
        [        R                  R                  [        R                  R                  -  [        R                  [        R                  R                  [        R                  [        R                  R                  45        Xl        U R                  SS5        U R!                  [        R                  R                  5        U R#                  S5        U R%                  SU R&                  5        [        R(                  " 5       nUR+                  5       R-                  U R                  5        U R.                  R1                  [3        U5      SSS5        U R5                  5         g )NrU     rm   rM   Tr   )r#   r   r
   ru   rv   rW   rX   rY   rZ   
STOCK_COPYr   APPLYr   r^   rb   set_default_sizerw   rx   r_   r   r   r   r   rz   r{   rK   ra   )r   rb   r   s      r   rv   ReportViewerDialog.__init__   s   
#

D+yOO11COO4W4WW ^^S-=-=-C-C __c.>.>.D.DF	G c3'!!#"2"2"8"89a Z!1!12||~""4<<0		.t4dD!Dr   c                    [        [        5        U[        R                  R                  :X  aJ  [        R
                  R                  [        R                  5      nUR                  U R                  S5        g U R                  5         g )Nr9   )r#   r   r
   r   r   	Clipboardgetr   SELECTION_CLIPBOARDr   rb   rP   )r   rc   r   	clipboards       r   r   ReportViewerDialog.on_response  sW    
# #""((())#*A*ABIt||R0LLNr   )rb   N)r   r   r   r   rv   r   r   r+   r   r   r   r      s    &r   r   c                   $    \ rS rSrSrS rS rSrg)Bugi  z(Encapsulate a bug report for the GTK+ UIc                    UR                   U l        SR                  UR                  5      U l        UR
                  U l        UR                  U l        UR                  U l	        UR                  U l
        UR                  U l        SR                  UR                  5      U l        UR                  U l        UR                  U l        UR"                  U l        g )Nz, )bug_numidr   tagstagpackagependingstatus
originatorreporterdateseverityfound_versionsversion
filed_datelog_modifiedmodified_datesubjectinfo)r   bugs     r   rv   Bug.__init__  s    ++99SXX&{{kkHH	yy!3!34(( --KK	r   c              #   @  #    U R                   v   U R                  v   U R                  v   U R                  v   U R                  v   U R
                  v   U R                  v   U R                  v   U R                  v   U R                  v   U R                  v   g 7fr%   )r   r   r   r   r   r   r   r   r   r   r   r   s    r   __iter__Bug.__iter__"  sq     gghhlliikkmmiimmlloo   s   BB)r   r   r   r   r   r   r   r   r   r   r   N)r   r   r   r   __doc__rv   r  r   r+   r   r   r   r     s    2 !r   r   c                   B    \ rS rSrS rS rS rS rS rSS jr	S r
S	rg
)	BugReporti0  c                    UR                  S5      nSn/ U l        U[        U5      :  ab  X#   nUS-  nUR                  5       (       d  OCU R                  R	                  U5        UR                  S5      (       a  OU[        U5      :  a  Mb  Sn/ nSnU[        U5      :  ad  X#   nUR	                  U5        US-  nUR                  5       (       d  US:  a  US-  nMK  US:X  a  US:X  d  US:X  a  S	nOSnU[        U5      :  a  Md  U(       a5  SR                  US S
 5      U l        SR                  X#S-
  S  5      U l        g SR                  US S 5      U l        SU l        g )N
r      zSubject:F   z-- Package-specific info:z-- System Information:Tr4   )	splitheaderslenr<   append
startswithr   original_infoothers)r   rb   linesilinestorer   	has_others           r   rv   BugReport.__init__1  sO   d##e*n8DFA::<<LL%z** #e*n 	#e*n8DKKFA::<<19QJEzt'BBdNfFf 	E #e*n !%49!5D))Ea%&M2DK!%49!5DDKr   c                     U R                   $ r%   )r  r   s    r   
get_othersBugReport.get_othersV  s    {{r   c                     U R                   $ r%   )r  r   s    r   get_original_infoBugReport.get_original_infoY  s    !!!r   c                 V    U R                    H  nSU;   d  M  U[        S5      S  s  $    g NSubject	Subject: )r  r  )r   headers     r   get_subjectBugReport.get_subject\  s+    llFF"c+./00 #r   c                     [        [        U R                  5      5       H*  nSU R                  U   ;   d  M  SU-   U R                  U'     g    g r#  )ranger  r  )r   r   r  s      r   set_subjectBugReport.set_subjecta  s?    s4<<()ADLLO+"-"7Q *r   c                     SnSnUR                  5        HV  nU(       a   XFS-   -  nUR                  5       (       d  SnM*  [        R                  " XbUS9nUSR	                  U5      S-   -  nMX     U$ )z8Wrap every line in the message, except the pseudoheadersr4   Tr
  F)widthbreak_long_words)
splitlinesr<   textwrapwrapr   )r   msgr.  r/  bodypheadr  tmps           r   wrap_bug_bodyBugReport.wrap_bug_bodyg  su     NN$Dt#zz||!E --1ACCDIIcNT))D % r   c                 "   U R                   (       aE  SR                  SR                  U R                  5      U R	                  U5      U R                   5      $ SR                  SR                  U R                  5      U R	                  U5      5      $ )Nz	{}
{}

{}r
  z{}
{}
)r  formatr   r  r7  r   r   s     r   create_messageBugReport.create_message{  si    ;;!((4<<)@$BTBTUYBZ\`\g\ghh  4<<!8$:L:LT:RSSr   )r  r  r  N)O   F)r   r   r   r   rv   r  r   r'  r+  r7  r<  r   r+   r   r   r  r  0  s'    #J"1
(Tr   r  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)BugPagei  c
                    [        [        5        [        R                  R	                  U 5        [
        R                  R	                  U 5        U R                  S5        [        R                  " 5       U l
        X l        Xl        U R                  R                  U l        X0l        X@l        XPl        X`l        Xpl        Xl        Xl        S U l        [
        R,                  " SS9n
U
R/                  [
        R0                  " SS9SSS5        [
        R2                  " 5       U l        U R4                  R7                  S5        U
R/                  U R4                  SSS5        U R9                  U
5        g )	NT   rk   zRetrieving bug information.rr   Fr   {Gz?)r#   r   	threadingThreadrv   r
   EventBox	setDaemonr   r   r   rc   rW   r   number	queryonlybtsmirrors
http_proxytimeoutarchived
bug_statusry   r{   r   ProgressBarprogressset_pulse_steprG   )r   rW   rc   rH  rI  rJ  rK  rL  rM  rN  rz   s              r   rv   BugPage.__init__  s    
#!!$'d#t'')">>55"$ xx#		(EFtUVW)$$T*udA6r   c           	      D   U R                   R                  5       (       d  [        S5      eU R                   R                  5         [        R
                  " SU R                  5        [        R                  " [        U R                  5      U R                  U R                  U R                  U R                  U R                  S9nU(       d&  U R                   R#                  U R$                  5        g US   U l        U R                   R#                  U R(                  U5        g )Nz%Could not acquire my own main-contextrj   )rK  rL  rN  r   )r   acquirer   push_thread_defaultr   timeout_addpulser   
get_reportintrH  rM  rJ  rK  rL  rN  r   r   	not_foundrO  foundr;  s     r   runBugPage.run  s    ||##%% !HII((* 	TZZ(!!#dkk"2DLL"&((DLL-1__t}}V 44T^^D"1gDO44TZZFr   c                     [        [        5        U R                  5       nU(       a"  U R                  U5        UR	                  5         g g r%   )r#   r   	get_childremoveunparent)r   childs     r   drop_progressbarBugPage.drop_progressbar  s4    
# KKNN r   c                 t    [        [        5        U R                  R                  5         U R	                  5       $ r%   )r#   r   rQ  rX  is_aliver   s    r   rX  BugPage.pulse  s&    
#}}r   c                     [        [        5        U R                  5         U R                  [        R
                  " SS95        U R                  5         g )Nz-The bug can't be fetched or it doesn't exist.rr   )r#   r   rd  rG   r
   r   ra   r   s    r   r[  BugPage.not_found  s5    
#!PQRr   c                    [        [        5        U R                  5         US   R                  nUS   n[        R
                  " SS9nUR                  S5        [        R                  " SU-   S9nUR                  S5        UR                  [        R                  R                  5        UR                  USSS5        [        R
                  " 5       nSnU H  n[        R                  " 5       n	U	R                  S5        U	R                  5       R!                  US S	 5        U(       a*  U	R#                  [        R$                  R&                  S5        UR                  U	SSS5        U(       + nM     [)        US5      n
UR                  U
SSS5        [        R*                  " 5       n[        R,                  " S
S9nUR/                  SU R0                  5        UR                  USSS5        U R2                  (       d  [        R,                  " SS9nUR5                  [        R6                  R9                  [        R:                  [        R<                  R>                  5      5        UR/                  SU R@                  5        UR                  USSS5        UR                  USSS5        U RC                  U5        U RE                  5         g )Nr   r  rB  rk   zDescription: rr   TFi'  zOpen in browserclickedReply)#r#   r   rd  r   r
   ry   rx   r   r   r   r   r   r{   r   r   r   r   set_state_flags
StateFlagsPRELIGHTrK   
HButtonBoxButtonr_   on_open_browserrI  	set_imager~   r   
STOCK_EDITr   BUTTONon_replyrG   ra   )r   r   descbodiesrz   rs   viewsoddr4  r   rJ   bboxbuttons                r   r\  BugPage.found  s
   
#Awaxx#b!		$ 67D!#++001udA.
D<<>De$ OO&&tFU|4$$S^^%<%<eDT5$2'C  %UD1$a0~~"34y$"6"67dA.~~ZZg.FSYY55cnncllFYFYZ[NN9dmm4OOFD$2eT1-r   c                     [        [        5        [        [        R                  " U R
                  [        U R                  5      U R                  5      5        g r%   )	r#   r   r   r   get_report_urlrJ  rZ  rH  rN  r   r}  s     r   rs  BugPage.on_open_browser  s2    
#w--dhhDKK8H$--XYr   c                     [        [        5        U R                  R                  U R                  5        U R
                  R                  5          U R                  R                  5         g ! [         a     g f = fr%   )
r#   r   r   set_next_valuerO  rW   forward_pagerc   rP   AttributeErrorr  s     r   rw  BugPage.on_reply  sY    
#''8##%	KK! 		s   A+ +
A87A8)r   rN  rW   rJ  rO  r   rc   rL  rK  rH  rQ  rI  rM  N)r   r   r   r   rv   r]  rd  rX  r[  r\  rs  rw  r   r+   r   r   r@  r@    s-    :G$
(TZr   r@  c                   &    \ rS rSrS rS rS rSrg)
BugsDialogi  c                 8   [        [        5        [        R                  R	                  U SU[        R
                  R                  [        R
                  R                  -  [        R                  [        R                  R                  45        Xl        X l        UR                  U l        [        R                  " 5       U l        U R                   R#                  U R                  SSS5        U R%                  SU R&                  5        U R)                  SS5        g )NzReportbug: bug informationTr   rM   X  )r#   r   r
   ru   rv   rX   rY   rZ   r   r   r^   rW   rI  r   Notebooknotebookrz   r{   r_   r   r   )r   rW   rI  s      r   rv   BugsDialog.__init__  s    
#

D">	OO11COO4W4WW __c.>.>.D.DE	G #"$00		T]]D$:Z!1!12c3'r   c                 $    U R                  5         g r%   rO   r   rR   s     r   r   BugsDialog.on_response  s    r   c                     [        U R                  XU R                  /UQ76 nU R                  R	                  U[
        R                  " US95        UR                  5         g )Nrr   )r@  rW   rI  r  append_pager
   r   start)r   rH  rR   pages       r   show_bugBugsDialog.show_bug  sC    t~~tT^^KdK!!$		(?@

r   )r   rW   r  rI  N)r   r   r   r   rv   r   r  r   r+   r   r   r  r    s    (r   r  c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)ReportbugApplicationi  c                     [        [        5        [        R                  R	                  U 5        U R                  S5        [        5       U l        S U l        g NT)	r#   r   rD  rE  rv   rG  r   queue
next_valuer   s    r   rv   ReportbugApplication.__init__  s;    )*!!$'tW
r   c                     [         R                  5       (       d  [        S5      e[         R                  5         [        R
                  " 5         g )NzCould not acquire UI context)r   rU  r   rV  r
   mainr   s    r   r]  ReportbugApplication.run"  s2    !!## !?@@&&(
r   c                 T    [        [        5        U R                  R                  5       $ r%   )r#   r   r  r   r   s    r   get_last_value#ReportbugApplication.get_last_value*  s    )*zz~~r   c                 z    [        [        5        U R                  R                  U R                  5        S U l        g r%   )r#   r   r  putr  r   s    r   put_next_value#ReportbugApplication.put_next_value.  s%    
#

t'r   c                 .    [        [        5        Xl        g r%   )r#   r   r  r   r   s     r   r  #ReportbugApplication.set_next_value3  s    
#r   c                 F   ^^^ UUU4S jn[         R                  " U5        g )Nc                  4   > [        [        5        T" T 0 TD6  gNFr#   r   )rR   funcr   s   r   callback>ReportbugApplication.run_once_in_main_thread.<locals>.callback:  s    J'$!&!r   )r   idle_add)r   r  rR   r   r  s    ``` r   r   ,ReportbugApplication.run_once_in_main_thread7  s    	
 	hr   c                    ^ ^^^ UUUU 4S jn[         R                  " U5        T R                  5       n[        U[        5      (       a  UeU$ )Nc                     > [        [        5         T" T0 TD6n TR                  U 5        TR	                  5         g! [         a  nTR                  U5         S nAN1S nAff = fr  )r#   r   r  BaseExceptionr  )reterR   r  r   r   s     r   r  :ReportbugApplication.call_in_main_thread.<locals>.callbackD  sa    J')D+F+ ##C(! ! '##A&&'s   < 
A!AA!)r   r  r  
isinstancer  )r   r  rR   r   r  r  s   ````  r   call_in_main_thread(ReportbugApplication.call_in_main_threadA  s@    
	 
	 	h!!#c=))IJr   )r  r  N)r   r   r   r   rv   r]  r  r  r  r   r  r   r+   r   r   r  r    s%     
  r   r  c                       \ rS rSrS rSrg)
SyncReturni[  c                 X    [        [        5        [        R                  X5        Xl        g r%   )r#   r   RuntimeErrorrv   result)r   r  s     r   rv   SyncReturn.__init__\  s    )*d+r   )r  Nr   r+   r   r   r  r  [  s    r   r  c                        \ rS rSrS rS rSrg)ReportbugConnectorib  c                 "    [        [        5        g r%   r  r   rR   r   s      r   execute_operation$ReportbugConnector.execute_operationc  s    
#r   c                 &    [        [        5        X4$ r%   r   )r   rR   r   s      r   sync_pre_operation%ReportbugConnector.sync_pre_operationi  s    )*|r   r+   N)r   r   r   r   r  r  r   r+   r   r   r  r  b  s    r   r  c                       \ rS rSrSr\R                  R                  rSr	\
r\R                  " S5      rS rS rS rS rS	 rS
 rS rS rS rS rS rS rSrg)Pageio  r   Fz#fff8aec                 .   [        [        5        Xl        UR                  U l        U R	                  5       U l        X R
                  l        U R
                  R                  S5        U R
                  R                  5         [        R                  U l        g )Nrm   )r#   r   rW   r   create_widgetrH   r  rx   ra   r  next_page_numpage_num)r   rW   s     r   rv   Page.__init__v  sf    
#"$00((*$$Q'**r   c                 6   [        [        5        U R                  5         U R                  5         UR	                  SS5      U l        UR	                  SS5      U l        U R                  " U0 UD6  U R                  R                  5         U R                  5         g )Nempty_okFpresubj)r#   r   	switch_inconnect_signalspopr  r  executerW   showsetup_focusr  s      r   r  Page.execute_operation  sq    
#

:u5zz)U3d%f%r   c                 "    [        [        5        g r%   r  r   s    r   r  Page.connect_signals  
    
#r   c                 n    [        [        5        U R                  R                  U R                  U5        g r%   )r#   r   rW   set_page_completerH   )r   completes     r   r  Page.set_page_complete  s"    
#((h?r   c                 n    [        [        5        U R                  R                  U R                  U5        g r%   )r#   r   rW   set_page_typerH   )r   types     r   r  Page.set_page_type  s"    
#$$T[[$7r   c                 ~    [        [        5        U(       a'  U R                  R                  U R                  U5        g g r%   )r#   r   rW   set_page_titlerH   )r   titles     r   r  Page.set_page_title  s*    
#NN))$++u= r   c                 F   [        [        5        [        =R                  S-  sl        U R                  R                  U R                  U R                  5        U R                  U R                  5        U R                  U R                  5        U R                  S5        U R                  R                  U R                  [        R                  R!                  U R"                  5      5        U R                  R%                  U 5        U R                  R'                  5         g )Nr  rU   )r#   r   r  r  rW   insert_pagerH   r  r  default_completer  	page_typer  set_page_side_imager	   Pixbufnew_from_file
side_imageset_next_pagecommitr   s    r   r  Page.switch_in  s    
#a""4;;>t4454>>*K(**4;;	8H8H8V8VW[WfWf8gh$$T*r   c                 V    [        [        5        U R                  R                  5         g r%   )r#   r   rH   
grab_focusr   s    r   r  Page.setup_focus  s    
# r   c                     [        [        5        U R                  R                  U R                  5      (       a  U R                  R                  5         g g r%   )r#   r   rW   get_page_completerH   r  r  s     r   activate_forwardPage.activate_forward  s8    
#>>++DKK88NN'') 9r   c                 "    [        [        5        g r%   r  r   s    r   
switch_outPage.switch_out  r  r   c                 Z    [        [        5        U R                  (       a  g[        U5      $ r  )r#   r   r  boolr  s     r   is_validPage.is_valid  s    
#==;r   c                     [        [        5        U R                  5       nU R                  U5      (       a-  U R                  R                  U5        U R                  S5        g U R                  S5        g NTF)r#   r   r   r  r   r  r  )r   rR   r   r   s       r   validatePage.validate  sU    
# ==++E2""4(""5)r   )r   rW   r  r  r  rH   N)r   r   r   r   r  r
   AssistantPageTypeCONTENTr  r  DEBIAN_LOGOr  r   color_parseWARNING_COLORrv   r  r  r  r  r  r  r  r  r   r  r  r   r+   r   r   r  r  o  sn    M%%--IJOOI.M+$@8>
 !
*$*r   r  c                   J    \ rS rSr\R
                  R                  rSrS r	Sr
g)	IntroPagei  Tc                    [        [        5        [        R                  " SS9n[        R                  " SS9nUR                  S5        UR                  S5        UR                  [        R                  R                  5        UR                  USSS5        [        R                  R                  SS	5      nUR                  USSS5        U$ )
N   rk   a'  
<b>Reportbug</b> is a tool designed to make the reporting of bugs in Debian and derived distributions relatively painless.

This wizard will guide you through the bug reporting process step by step.

<b>Note:</b> bug reports are publicly archived (including the email address of the submitter).rr   TFr   z1https://salsa.debian.org/reportbug-team/reportbugzHomepage of reportbug project)r#   r   r
   ry   r   set_use_markupr   r   r   r   r{   
LinkButtonnew_with_label)r   rz   rs   links       r   r  IntroPage.create_widget  s    
#xx#		 !b c 	T"D!#++001udA.~~,,-`-LNeT1-r   r+   N)r   r   r   r   r
   r
  INTROr  r  r  r   r+   r   r   r  r    s    %%++Ir   r  c                   6    \ rS rSrS rS rS rS rS	S jrSr	g)
GetStringPagei  c                 V    [        [        5        U R                  R                  5         g r%   r#   r   r   r  r   s    r   r  GetStringPage.setup_focus      
#

r   c                 6   [        [        5        [        R                  " SS9n[        R                  " 5       U l        U R
                  R                  S5        U R
                  R                  [        R                  R                  5        U R
                  R                  S5        U R
                  R                  SS5        [        R                  " 5       U l        UR                  U R
                  SSS5        UR                  U R                  SSS5        U$ NrB  rk   Trt   Fr   )r#   r   r
   ry   r   rs   r   r   r   r   r   r   r   r   r{   r   s     r   r  GetStringPage.create_widget  s    
#xx#YY[


  &

s00556

!!$'

U3YY[


E43

E43r   c                     [        [        5        U R                  R                  SU R                  5        U R                  R                  SU R
                  5        g )Nchangedactivate)r#   r   r   r_   r  r  r   s    r   r  GetStringPage.connect_signals  s<    
#

9dmm4

:t'<'<=r   c                 T    [        [        5        U R                  R                  5       $ r%   r   r   s    r   r   GetStringPage.get_value  r   r   Nc                 \   [        [        5        [        R                  " U R                  R
                  UR                  SS5      5        U R                  R                  U5        U(       a  UR                  5         [        R                  " 5       n[        R                  " [        5      nU H  nUR                  U/5        M     UR                  U5        UR                  S5        UR!                  S5        U R                  R#                  U5        OS U l        U R'                  5         g )Nz8(enter Ctrl+c to exit reportbug without reporting a bug)r4   Tr   )r#   r   r   r  rs   r   replacer   sortr
   EntryCompletion	ListStorestrr  	set_modelset_inline_selectionset_text_columnset_completion
completionr  )r   promptoptionsforce_promptdefaultr2  modeloptions           r   r  GetStringPage.execute  s    
#djj))6>>:tvx+yz

G$LLN,,.JMM#&E!fX& "  '++D1&&q)JJ%%j1"DOr   )r2  r   rs   )NFr4   
r   r   r   r   r  r  r  r   r  r   r+   r   r   r  r    s     >
%r   r  c                       \ rS rSrS rSrg)GetPasswordPagei  c                     [        [        5        [        R                  U 5      nU R                  R                  S5        U$ r  )r#   r   r  r  r   set_visibilityr   rH   s     r   r  GetPasswordPage.create_widget  s1    
#,,T2

!!%(r   r+   N)r   r   r   r   r  r   r+   r   r   r<  r<    s    r   r<  c                   2    \ rS rSrS rS rS rS rS rSr	g)	GetMultilinePagei  c                 V    [        [        5        U R                  R                  5         g r%   r#   r   r   r  r   s    r   r  GetMultilinePage.setup_focus      
#		r   c                    [        [        5        [        R                  " SS9n[        R                  " 5       U l        U R
                  R                  S5        U R
                  R                  [        R                  R                  5        U R
                  R                  S5        U R
                  R                  SS5        UR                  U R
                  SSS5        [        R                  " 5       U l        U R                  R                  5       U l        [#        U R                  5      nUR                  USSS5        U$ r   )r#   r   r
   ry   r   rs   r   r   r   r   r   r   r{   r   r   r   bufferrK   )r   rz   rJ   s      r   r  GetMultilinePage.create_widget!  s    
#xx#YY[


  &

s00556

!!$'

U3

E43LLN	ii**,$TYY/$a0r   c                 n    [        [        5        U R                  R                  SU R                  5        g Nr#  )r#   r   rH  r_   r  r   s    r   r   GetMultilinePage.connect_signals1  s"    
#It}}5r   c                     [        [        5        U R                  R                  U R                  R	                  5       U R                  R                  5       S5      nUR                  S5      $ )NTr
  )r#   r   rH  r   get_start_iterget_end_iterr  r   texts     r   r   GetMultilinePage.get_value5  sL    
#{{##DKK$>$>$@$++BZBZB\^bczz$r   c                     [        [        5        SU l        [        R                  " U R
                  R                  U5        U R                  R                  S5        U R                  R                  S5        g )NTr4   r#  )	r#   r   r  r   r  rs   r   rH  emitr   r3  s     r   r  GetMultilinePage.execute:  sM    
#djj))62R #r   )rH  r  rs   r   Nr:  r+   r   r   rB  rB    s     6 
$r   rB  c                   0    \ rS rSrSrS rS rS rS rSr	g)TreePageiC  Nc                     [        [        5        [        R                  " U /UQ70 UD6  U R                  R                  5       U l        g r%   )r#   r   r  rv   r   get_selection	selectionr  s      r   rv   TreePage.__init__F  s4    
#d,T,V,002r   c                 V    [        [        5        U R                  R                  5         g r%   rD  r   s    r   r  TreePage.setup_focusK  rF  r   c                 n    [        [        5        U R                  R                  SU R                  5        g rK  )r#   r   r[  r_   r  r   s    r   r  TreePage.connect_signalsO  s"    
#y$--8r   c                    [        [        5        U R                  R                  5       u  pU R                  R	                  5       [
        R                  R                  :H  n/ nU HM  nUR                  UR                  U5      U R                  5      nUc  M3  UR                  [        U5      5        MO     U(       a  U(       d  US   $ U$ Nr   )r#   r   r[  get_selected_rowsget_moder
   SelectionModeMULTIPLEr   get_itervalue_columnr  r7   )r   r7  pathsmultipler  pathr   s          r   r   TreePage.get_valueS  s    
#~~779>>**,0A0A0J0JJDOOENN4$8$:K:KLE k%01  (!9r   )r[  )
r   r   r   r   rh  rv   r  r  r   r   r+   r   r   rX  rX  C  s    L3
9r   rX  c                   <    \ rS rSrSrS rS rS rS rS r	S r
S	rg
)GetListPageia  r   c                    [        [        5        [        R                  " SS9n[        R                  " 5       U l        U R
                  R                  S5        U R
                  R                  [        R                  R                  5        UR                  U R
                  SSS5        [        R                  " SS9n[        R                  " 5       U l        U R                  R                  S5        U R                  R                  5       R!                  [        R"                  R$                  5        ['        U R                  5      nUR                  USSS5        [        R(                  " 5       nUR+                  S5        UR-                  [        R.                  R0                  5        [        R2                  " [        R4                  S9nUR7                  SU R8                  5        UR                  USSS5        [        R2                  " [        R:                  S9nUR7                  SU R<                  5        UR                  USSS5        UR                  USSS5        UR                  USSS5        U$ )	NrB  rk   TFr   rm   )stockrl  )r#   r   r
   ry   r   rs   r   r   r   r   r{   r|   TreeViewr   set_rules_hintrZ  set_modere  rf  rK   
VButtonBoxset_spacing
set_layoutButtonBoxStyleSTARTrr  	STOCK_ADDr_   on_addSTOCK_REMOVE	on_remove)r   rz   r   rJ   r|  r}  s         r   r  GetListPage.create_widgetd  s   
#xx#YY[


  &

s00556

E43xx"LLN			  &		!**3+<+<+E+EF$TYY/$a0~~**001#--0y$++.tQ/#"2"23y$..1tQ/eT1-dD!,r   c                     [        [        5        / nU R                   H   nUR                  X R                     5        M"     U$ r%   )r#   r   r7  r  rh  )r   valuesrows      r   r   GetListPage.get_value  s7    
#::CMM#//01 r   c                     [        [        5        [        S5      nUR                  5         UR	                  SU R
                  5        g )NzAdd a new item to the listrM   )r#   r   r   ra   r_   on_add_dialog_response)r   r}  rc   s      r   rz  GetListPage.on_add  s3    
#"#?@z4#>#>?r   c                     [        [        5        U[        R                  R                  :X  a:  U R
                  R                  UR                  5       /5        U R                  5         UR                  5         g r%   )
r#   r   r
   r   r   r7  r  r   r  rP   r   s      r   r  "GetListPage.on_add_dialog_response  sO    
##"")))JJv//123MMOr   c                 ,   [        [        5        U R                  R                  5       u  p#/ nU H-  nUR	                  U R
                  R                  U5      5        M/     U H  nU R
                  R                  U5        M      U R                  5         g r%   )	r#   r   r[  rc  r  r7  rg  ra  r  )r   r}  r7  ri  itersrk  its          r   r|  GetListPage.on_remove  sm    
#~~779DLL,,T23 BJJb! r   c                 D   [        [        5        SU l        [        R                  " U R
                  R                  U5        [        R                  " [        5      U l
        U R                  R                  SU R                  5        U R                  R                  U R                  5        U R                  R!                  [        R"                  R$                  5        U R                  R'                  [        R(                  " S[        R*                  " 5       SS95        g )NTzrow-changedItemr   rQ  )r#   r   r  r   r  rs   r   r
   r,  r-  r7  r_   r  r   r.  r[  rs  re  rf  append_columnTreeViewColumnCellRendererTextrU  s     r   r  GetListPage.execute  s    
#djj))62]]3'


=$--8		DJJ' 1 1 : :;		 2 263;O;O;QXY Z[r   )r  rs   r7  r   N)r   r   r   r   rh  r  r   rz  r  r|  r  r   r+   r   r   rn  rn  a  s'    L<@	\r   rn  c                   d    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
SS
S
S0 4S jrS rS rSrg
)MenuPagei  r  c                 V    [        [        5        [        R                  " U /UQ70 UD6  g r%   )r#   r   r  rv   r  s      r   rv   MenuPage.__init__  s     
#d,T,V,r   c                 V    [        [        5        U R                  R                  5         g r%   rD  r   s    r   r  MenuPage.setup_focus  rF  r   c                    [        [        5        [        R                  " SS9n[        R                  " 5       U l        U R
                  R                  S5        U R
                  R                  [        R                  R                  5        UR                  U R
                  SSS5        [        R                  " 5       U l        U R                  R                  5       nUR                  [        R                  5        [!        U R#                  UR%                  [        R&                  R(                  5      5      U R#                  UR%                  [        R&                  R*                  5      5      S9U l        [!        U R#                  UR/                  [        R&                  R(                  5      5      U R#                  UR/                  [        R&                  R*                  5      5      S9U l        U R                  R3                  5       U l        U R4                  R7                  [        R8                  R:                  5        U R                  R=                  S5        [        R>                  " 5       U l         [C        U R                  5      nURE                  [        RF                  RH                  [        RF                  RJ                  5        UR                  USSS5        URM                  5         U$ )NrB  rk   TFr   )selectednormal)'r#   r   r
   ry   r   rs   r   r   r   r   r{   rq  r   get_style_context	add_classSTYLE_CLASS_CELLdict_rgba_to_stringget_background_colorro  SELECTEDNORMAL
background	get_color
foregroundrZ  r[  rs  re  NONEset_activate_on_single_clickCellRendererTogglechkboxrK   rC   rD   NEVERALWAYSra   )r   rz   style_contextrJ   s       r   r  MenuPage.create_widget  s   
#xx#YY[


  &

s00556

E43LLN			335 4 45 ))-*L*LS^^MdMd*ef''(J(J3>>K`K`(abd ))-*A*A#..BYBY*Z[''(?(?@U@U(VWY 002 1 1 6 67		..t4,,.$TYY/CNN00#..2G2GH$a0r   c                     [        [        5        [        R                  U 5        U R                  R                  SU R                  5        g )Nrow-activated)r#   r   r  r  r   r_   	on_toggler   s    r   r  MenuPage.connect_signals  s0    
#T"		/4>>:r   c                     [        [        5        / nU R                   H5  nUS   (       d  M  UR                  [	        X R
                     5      5        M7     [        U5      S:  a  U R                  (       d  US   $ U$ rb  )r#   r   r7  r  r7   rh  r  rj  )r   r  r  s      r   r   MenuPage.get_value  sb    
#::C1vvk#.?.?*@AB  v;?4==!9r   c                     SR                  [        UR                  S-  5      [        UR                  S-  5      [        UR                  S-  5      5      $ )Nz#{:02x}{:02x}{:02x}   )r:  rZ  redgreenblue)r   rgbas     r   r  MenuPage._rgba_to_string  sG    $++C3,?,/

S0@,A,/		C,@B 	Br   c                 T    U R                   (       + =(       a    U R                  (       + $ r%   )rj  r  r   s    r   _is_suitable_radio_button"MenuPage._is_suitable_radio_button  s    == 6%66r   NFc
                 `  ^^ [        [        5        [        R                  " U R                  R
                  U5        [        R                  " [        [        [        5      U l
        U R                  R                  U R                  5        TU l        Xl        U R                  R!                  U R#                  5       5        [        R$                  " SU R                  SS9n
U
R'                  U R                  U R(                  5        U R                  R+                  U
5        [        R,                  " 5       n[        R$                  " SUSS9n
U
R'                  XR(                  5        U R                  R+                  U
5        [        R,                  " 5       nUR/                  S[0        R2                  R4                  5        UR/                  SS	5        [        R$                  " S
USS9nUR'                  XR(                  5        U R                  R+                  U5        T(       a  Tc  / mO[7        T[        5      (       a  T/mUU4S jn[7        U[8        5      (       a  U(       a`  U HZ  nX;   d  M
  SR;                  X/   R=                  5       5      nU" U5      nU R                  R?                  U[A        U5      U/5        M\     URC                  5        Hb  u  nnU(       a  X;  d  M  SR;                  UR=                  5       5      nU" U5      nU R                  R?                  U[A        U5      U/5        Md     O`U HZ  nSR;                  US   R=                  5       5      nU" US   5      nU R                  R?                  U[A        US   5      U/5        M\     U RE                  5         g )NSelr   )activeOptionr  )markupz	wrap-modez
wrap-widthi  Descriptionr  r  c                 8   > T(       a  U T;   $ Tc  gU T:X  a  S mgg)NFTr+   )r8  r6  rj  s    r   enable_option'MenuPage.execute.<locals>.enable_option  s,    ((? w&"G r    )#r#   r   r   r  rs   r   r
   r,  r  r-  r7  r   r.  rj  enable_otherr  	set_radior  r  set_cell_data_funcon_cell_funcr  r  r   r   WrapModeWORDr  r  r   r  r  r1   itemsr  )r   parr4  r3  r6  any_okorderextrasrj  r  column	cell_textrenddesc_columnr  r8  rQ  onrx  r  s       `   `           r   r  MenuPage.execute  s   
#djj))3/]]4c2
		DJJ' (d<<>?##E4;;qA!!$++t/@/@A		'((*	##HiB!!)->->?		'##%+u~~':':;,,((1E&&t->->?		,GS))")	! gt$$#F("xx(=(=(?@*62

))2y/@$*GH	 $
 !( 388DJJL1D&v.BJJ%%r9V+<d&CD	 !0 xxA/"3q6*

!!2yQ'8$"?@ 
 	r   c                    U R                   (       df  [        R                  " U5      nU R                   H?  nUR                  U:X  a'  U R
                  (       d  SUS'   M+  US   (       + US'   M:  SUS'   MA     OU R                  U   S   (       + U R                  U   S'   U R                  U   S   (       a|  [        U R                  U   U R                     5      nU R                  R                  U5      nU(       a5  U R                   H%  nU[        XPR                     5      :X  d  M   SUS'   M'     U R                  5         g )NTr   F)rj  r
   TreePathr7  rk  r  r7   rh  r  r   r  )r   rH   rk  dataselected_pathr  rs   others           r   r  MenuPage.on_toggle2  s    }}LL.Mzz88},==!%A%(VA"CF " '+jj&6q&9"9DJJtQzz$"#DJJt$4T5F5F$GH))--e4#zz K4E4E0F$GG%)CF  * 	r   c                 (   UR                  US5      (       a~  [        U[        R                  5      (       a   UR	                  SU R
                  S   5        g UR	                  SU R
                  S   5        UR	                  SU R                  S   5        g [        U[        R                  5      (       a   UR	                  SU R
                  S   5        g UR	                  SU R
                  S   5        UR	                  SU R                  S   5        g )Nr   zcell-backgroundr  r  r  r  )r   r  r
   r  r   r  r  )r   r  cellr7  r  r  s         r   r  MenuPage.on_cell_funcH  s    ??2q!!$ 6 677!!"3T__Z5PQ!!,
0KL!!,
0KL$ 6 677!!"3T__X5NO!!,0IJ!!,0IJr   )	r  r  r  r  rs   r7  rj  r[  r   )r   r   r   r   rh  rv   r  r  r  r   r  r  r  r  r  r   r+   r   r   r  r    sM    L-@;
B
7 594%b>@,Kr   r  c                   r    \ rS rSrSrSr   SS jrS rS rS r	S	 r
S
 rS rS rS rS rSS jrS rSrg)HandleBTSQueryPageiW  Tr   Nc                 h   [        [        5        X l        X@l        XPl        X0l        Xl        X`l        U(       a  [        R                  R                  U l        [        R                  U   nUR                  S5      nU(       d  [        S 5      e[!        U["        5      (       a-  UnU	(       a  US-  nS[        R                  U   S   < SU< 3nOGS[        R                  U   S   < SSR%                  U Vs/ s H  n[#        U5      PM     sn5      < 3nU R&                  R)                  U R*                  R,                  U5         [        R.                  " XX$UXXU	S9u  nnn U(       d  Uc  [6        e[8        eUS:  a  SU4-  nOSn/ nU H<  u  nn[;        US US9nUR=                  U[?        [A        [B        U5      5      45        M>     UU40 4$ s  snf ! [0         a8  nS	[        R                  U   S   < S
[3        U5      < S3n[5        U5      eS nAff = f! [6         a    [6        ef = f)Nbtsrootz(source)z	Querying namez$ bug tracking system for reports on z! bug tracking system for reports r  )rK  r   rL  rN  sourcezUnable to connect to z BTS (error: "z"); r  z%d bug reports foundzOne bug report foundc                     U R                   $ r%   )r   )bs    r   rS   7HandleBTSQueryPage.sync_pre_operation.<locals>.<lambda>  s    r   )keyreverse)"r#   r   rJ  rK  rL  rM  rN  rI  r
   r
  CONFIRMr  r   SYSTEMSr   r  r  r-  r   r   r   rW   set_progress_labelget_reportsr   r   r   r   r   sortedr  listmapr   )r   r   rJ  rM  rK  rL  rI  screenrN  r  r  r   buglistmbox_reader_cmdlatest_firstsysinforootpkgnameprogress_labelxcountsectitle	hierarchyr  errmsgreportcategorybugss                               r   r  %HandleBTSQueryPage.sync_pre_operation[  s7    	)*$ " 22::DN//#&{{9%T""gs##G:%T[TcTcdgThioTpryzN $ RYQ`Q`adQeflQmorowow  JQ  yR  JQ  EFy|}~y  JQ  yR  pS  TN001R1RTbc	(+2+>+>#%,I(UHi	$#O L195@H5H&/NHd$T/BLYGMM8T#c72C-D"EF '0 )2--; yR  	(FMooVYFZ[aFbdhijdklF''	(.  	O	s+   :G
G 'A.H  
H%3HH H1c                 V    [        [        5        U R                  R                  5         g r%   r  r   s    r   r  HandleBTSQueryPage.setup_focus  r  r   c           
         [        [        5        [        R                  " SS9n[        R                  " SS9U l        UR                  U R
                  SSS5        [        R                  " SS9n[        R                  " SS9nUR                  USSS5        [        R                  " 5       U l	        UR                  U R                  SSS5        [        R                  " 5       nUR                  [        R                  R                  [        R                  [        R                  R                   5      5        UR#                  [        R$                  R&                  5        UR)                  S	U R*                  5        UR                  USSS5        UR                  USSS5        [        R,                  " 5       U l        U R.                  R1                  S5        [3        U R.                  5      n/ S
QU l        [7        U R4                  [9        [;        [=        U R4                  5      5      5      5       H^  n[        R>                  " US   [        R@                  " 5       US   S9nURC                  S5        U R.                  RE                  U5        M`     UR                  USSS5        [        R                  " SS9nUR                  [        R                  R                  [        RF                  [        R                  RH                  5      5        UR)                  S	U RJ                  5        UR                  USSS5        U$ )Nrm   rk   zCList of bugs. Select a bug to retrieve and submit more information.rr   FTzFilter:r   rl  )IDTagPackager  Status	SubmitterDateSeverityVersionz
Filed datezModified dater  r  z#Retrieve and submit bug information)&r#   r   r
   ry   r   rs   r{   r|   r   r   rr  rt  r~   r   STOCK_CLEARr   MENU
set_reliefReliefStyler  r_   on_filter_clearrq  r   rr  rK   columnszipr  r*  r  r  r  set_reorderabler  
STOCK_INFOrv  on_retrieve_info)r   rz   r   rs   r}  rJ   colr  s           r   r   HandleBTSQueryPage.create_widget  s8   
#xx"YY%jk


E43xx"			*udA.YY[


D$211#//3<<CTCTUV#//../y$"6"67tQ/eT1-LLN			  &$TYY/7t||T%DLL0A*B%CDC''A0D0D0FSQRVTF""4(II##F+ E 	$a0"GH11#..#,,BUBUVWy$"7"78tQ/r   c                     [        [        5        [        R                  U 5        U R                  R                  SU R                  5        U R                  R                  SU R                  5        g )Nr  r#  )	r#   r   rX  r  r   r_   r  r   on_filter_changedr   s    r   r  "HandleBTSQueryPage.connect_signals  sL    
#  &		/4+@+@A

9d&<&<=r   c                 X    [        [        5        U R                  R                  S5        g r3   )r#   r   r   r   r  s     r   r  "HandleBTSQueryPage.on_filter_clear  s    
#

Br   c                     [        [        5        UR                  5       R                  5       U R                  l        U R                  R                  5         g r%   )r#   r   r   lowerr7  filter_textfilterrefilter)r   r   s     r   r  $HandleBTSQueryPage.on_filter_changed  s6    
#!&!1!7!7!9

r   c           	      r   [        [        5        [        R                  U 5      nU(       d  [	        S5        g [        U R                  U R                  5      nU HJ  nUR                  X@R                  U R                  U R                  U R                  U R                  5        ML     UR                  5         g )NzPlease select one or more bugs)r#   r   rX  r   rd   r  rW   rI  r  rJ  rK  rL  rM  rN  ra   )r   rR   bug_idsrc   r   s        r   r  #HandleBTSQueryPage.on_retrieve_info  s|    
#$$T*89DNNDNN;BOOB$,,W[WdWde r   c                 "    [        [        5        gr  r  r  s     r   r  HandleBTSQueryPage.is_valid      
#r   c                 "    [        [        5        g r%   r  r   s    r   r   HandleBTSQueryPage.get_value  s    
#r   c                 ~   [        [        5        Sn[        [        U R                  5      5       HG  nU R
                  R                  X5      nU(       d  M'  X R
                  R                  X5      S-   -  nMI     UR                  5       nU R
                  R                  R                  S5       H
  nXR;   d  M
    g   g)Nr4   r  TF)
r#   r   r*  r  r  r7  r   r"  r#  r  )r   itrrQ  r  r   tokens         r   match_filterHandleBTSQueryPage.match_filter  s    
#T\\*+CJJ((2Eu

,,S6<< ,
 zz|ZZ++11#6E} 7 r   c                 (   [        [        5        U R                  U5      nU R                  R	                  U5      (       dQ  U(       dJ  UR                  U5      nU(       a1  U R                  U5      (       a  gUR                  U5      nU(       a  M1  gU$ r  )r#   r   r2  r7  iter_parentiter_children	iter_next)r   r7  r0  	user_datamatchesr  s         r   filter_visible_func&HandleBTSQueryPage.filter_visible_func  sw    
###C(zz%%c**7$$S)B$$R((__R( " r   c                 H   [        [        5        [        R                  " U R                  R
                  SU-  5        [        R                  " [        /[        U R                  5      -  6 U l        U H  nS /[        U R                  5      -  nUS   US'   U R                  R                  S U5      nUS    H6  nU R                  R                  U[        [        [        U5      5      5        M8     M     U R                  R!                  [        R"                  R$                  5        SU R                  l        U R                  R)                  5       U l        U R*                  R-                  U R.                  5        U R0                  R3                  U R*                  5        g )Nz^%s. Double-click a bug to retrieve and submit more information, or press 'Next' if none match.r      r  r4   )r#   r   r   r  rs   r   r
   	TreeStorer-  r  r  r7  r  r  r  r[  rs  re  rf  r#  
filter_newr$  set_visible_funcr:  r   r.  )r   r  r  r  r  r0  r  s          r   r  HandleBTSQueryPage.execute  s3   
#djj))  ,L  OW  ,W  	X]]cUS->%>@
H&3t||,,Ca[CF**##D#.C{

!!#tCSM':; #	   	 1 1 : :;!#

jj++-$$T%=%=>		DKK(r   )rN  rJ  r  r   r$  rL  rs   rK  r7  r  rI  rM  r   )Nr4   FNnoFNNNNFr%   )r   r   r   r   r  rh  r  r  r  r  r  r  r  r  r   r2  r:  r  r   r+   r   r   r  r  W  sT    Lmq>BZ_=~ !F> 


 )r   r  c                   :    \ rS rSrSrS rS rS rS rS
S jr	S	r
g)ShowReportPagei  Tc                 |    [        [        5        [        U R                  S S S S S S S S 5	      U l        U R                  $ r%   )r#   r   r@  rW   r  r   s    r   r  ShowReportPage.create_widget  s6    
#DNND$dD$PTVZ[	yyr   c                 "    [        [        5        g r%   r  r   s    r   r   ShowReportPage.get_value  r,  r   c                 "    [        [        5        gr  r  r  s     r   r  ShowReportPage.is_valid#  r,  r   c                     [        [        5        UR                  S5      (       a  [        R                  R
                  U l        X4$ )NrI  )r#   r   r   r
   r
  r  r  r  s      r   r  !ShowReportPage.sync_pre_operation'  s5    )*::k"" 22::DN|r   Nc
                 V   [        [        5        XR                  l        X R                  l        X0R                  l        X@R                  l        XPR                  l        X`R                  l        XR                  l	        U R                  R                  5         U R                  5         g r%   )r#   r   r  rH  rJ  rK  rL  rM  rI  rN  r  r  )
r   rH  systemrK  rL  rM  rI  r  rN  r  s
             r   r  ShowReportPage.execute-  sf    
#!				#		)		#		'		%				r   )r  r  )Fr4   rB  N)r   r   r   r   r  r  r   r  r  r  r   r+   r   r   rD  rD    s!    

r   rD  c                   $    \ rS rSrSrS rS rSrg)DisplayReportPagei:  Tc                     [        [        5        [        R                  " 5       U l        U R                  R                  S5        [        U R                  5      nU$ r  )r#   r   r
   r   r   r   rK   )r   rJ   s     r   r  DisplayReportPage.create_widget=  s<    
#LLN			u%$TYY/r   c                     [        [        5        U(       a  X-  nU R                  R                  5       R	                  U5        g r%   )r#   r   r   r   r   r   rb   rR   s      r   r  DisplayReportPage.executeD  s/    
#nG		''0r   )r   Nr   r   r   r   r  r  r  r   r+   r   r   rQ  rQ  :  s    1r   rQ  c                   $    \ rS rSrSrS rS rSrg)LongMessagePageiL  Tc                    [        [        5        [        R                  " 5       U l        U R                  R                  S5        U R                  R                  [        R                  R                  5        U R                  R                  S5        U R                  R                  SS5        [        R                  " 5       nUR                  U R                  5        U$ )NTrt   F)r#   r   r
   r   rs   r   r   r   r   r   r   rF  rG   )r   ebs     r   r  LongMessagePage.create_widgetO  s    
#YY[


  &

s00556

!!$'

U3\\^
tzz	r   c                     [        [        5        X-  nSR                  S UR                  5        5       5      nSU;   a  SU-   n[        R
                  " U R                  R                  U5        g )Nz

c              3   6   #    U  H  o(       d  M  Uv   M     g 7fr%   r+   ).0r  s     r   	<genexpr>*LongMessagePage.execute.<locals>.<genexpr>_  s     I-AcScc-As   
	nnnnnnzThank you for your report.

)r#   r   r   r0  r   r  rs   r   rU  s      r   r  LongMessagePage.executeZ  sZ    
#. ++IW-?-?-AIIw6@Gdjj))73r   rr   NrW  r+   r   r   rY  rY  L  s    	4r   rY  c                   J    \ rS rSr\R
                  R                  rSrS r	Sr
g)FinalMessagePageie  Tc                 V    [        [        5        [        R                  " U /UQ70 UD6  g r%   )r#   r   rY  r  r  s      r   r  FinalMessagePage.executei  s"    
#6t6v6r   r+   N)r   r   r   r   r
   r
  SUMMARYr  r  r  r   r+   r   r   re  re  e  s    %%--I7r   re  c                   B    \ rS rSrS rS rS rS rS rS r	SS jr
S	rg
)
EditorPagein  c                   ^ [        [        5        [        R                  " SS9n[        R                  " SS9nUR                  [        R                  " SS9SSS5        [        R                  " 5       U l        UR                  U R                  SSS5        UR                  USSS5        [        R                  " 5       U l        [        R                  " U R                  S	9U l        U R                  R                  [        R                   " S
5      5        U R                  R#                  [        R$                  R&                  5        [(        c   SS Kq[(        [,        La    [(        R/                  U R                  5        [3        U R                  5      nUR                  USSS5        [        R4                  R7                  S5      n[        R8                  " 5       nUR                  [        R                   " S
5      5        UR;                  S5        UR=                  5       U l        [3        U5      nURA                  U5        UR                  USSS5        [(        [,        L a  [        RB                  " 5       m[        R                  " SS9nURE                  S5        URG                  S5        URI                  S5        URK                  SS5        TRA                  U5        TRM                  [        RN                  RP                  U RR                  5        TRU                  SU4S j5        UR                  TSSS5        U$ ! [*         a
    [,        q GNf = f! [0         a     GNf = f)Nrm   rk   rB  r%  rr   FTr   )rH  	MonospacezOther system informationzDPlease install <b>python3-gtkspellcheck</b> to enable spell checkingrt   zbutton-press-eventc                  $   > TR                  5       $ r%   rO   )rR   boxs    r   rS   *EditorPage.create_widget.<locals>.<lambda>  s    CKKMr   )+r#   r   r
   ry   r|   r{   r   r   r   r   Bufferinfo_bufferViewr   modify_fontr   FontDescriptionset_wrap_moder  r  gtkspellcheckImportErrorNotImplementedSpellCheckerr   rK   r   r   r   r   r   others_bufferrG   rF  r  r   r   r   	modify_bg	StateTyper  r  r_   )r   rz   r   rJ   r   r   rs   rn  s          @r   r  EditorPage.create_widgeto  s}   
#xx"xx#		4eT1Eyy{dD!4eT1-$++-NN$*:*:;			e33K@A		 1 12  /$ .**4995 %TYY/$a0<<112LM||~..{;<% !__.$T*X%q1N*,,.CII$jkE  &%  &{E2GGENMM#--..0B0BCKK,.IJOOCa0?  / ./  s$   M $M MM
M,+M,c                     [        [        5        U R                  5       S   q[	        U R
                  SSS9 nUR                  [        5        S S S 5        g ! , (       d  f       g = f)Nr   wbackslashreplace)errors)r#   r   r   report_messageopenfilenamewrite)r   fs     r   r   EditorPage.switch_out  sG    
#)!,$---?@AGGN# A@@s   A
A%c                     [        [        5        U R                  R                  SU R                  5        U R
                  R                  SU R                  5        g rK  )r#   r   rq  r_   r  r   r   s    r   r  EditorPage.connect_signals  s<    
#  DMM:Y6r   c                    [        [        5        U R                  R                  U R                  R	                  5       U R                  R                  5       S5      nUR                  5       (       d  g U R                  R                  5       R                  5       nUR                  5       (       d  g U R                  R                  U5        U R                  R                  U5      nX3U R                  :g  4$ r  )r#   r   rq  r   rN  rO  r<   r   r  r+  r<  rb   )r   r   r   rb   s       r   r   EditorPage.get_value  s    
#(()9)9)H)H)J)-)9)9)F)F)H)-/ zz||,,'')//1}}(++,,T2DLL011r   c                 x    [        [        5        U R                  R                  SU R                  5      U l        g )Nzfocus-in-event)r#   r   r   r_   on_view_focus_in_eventfocus_in_idr   s    r   handle_first_infoEditorPage.handle_first_info  s*    
#99,,-=t?Z?Z[r   c                     [        [        5        U R                  R                  S5        UR	                  U R
                  5        g r3   )r#   r   rq  r   
disconnectr  )r   r   rR   s      r   r  !EditorPage.on_view_focus_in_event  s0    
#!!"%(()r   c                    [        [        5        Xl        [        U5      U l        X l        X@l        U R                  R                  U R                  R                  5       5        U R                  R                  U R                  R                  5       5        U R                  R                  5       nUR                  5       S:X  a  SnU R                  5         U R                  R                  U5        g )NzDear Maintainer,zXPlease type your report here.
The text will be wrapped to be max 79 chars long per line.)r#   r   rb   r  r  r  charsetr   r   r'  rz  r  r   r<   r  rq  )r   rb   r  editorr  r   s         r   r  EditorPage.execute  s    
#( dkk5578##DKK$:$:$<={{,,.::<--nD""$!!$'r   )	r  r  r  rq  rb   rz  r  r   r   N)zutf-8)r   r   r   r   r  r   r  r   r  r  r  r   r+   r   r   rj  rj  n  s'    4l$7
2\*(r   rj  c                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)
SelectOptionsPagei  Fc                    [        [        5        [        R                  " 5       U l        U R                  R                  S5        U R                  R                  [        R                  R                  5        [        R                  " SS9U l
        U R                  R                  U R                  SSS5        S U l        U R                  $ )NTrm   rk   F)r#   r   r
   r   rs   r   r   r   r   ry   rz   r{   r6  r   s    r   r  SelectOptionsPage.create_widget  s    
#YY[


  &

s00556HHQ'			TZZa8yyr   c                     [        [        5        U R                  R                  U5        U R                  R                  5         g r%   r#   r   r   r  rW   r  )r   r}  menuopts      r   
on_clickedSelectOptionsPage.on_clicked  s.    
#''0##%r   c                 @    [        [        5        [        [        5        g r%   )r#   r   r   r  r  s     r   on_display_clicked$SelectOptionsPage.on_display_clicked  s    
#>*r   c                    [        [        5        U R                  (       ak  SU R                  R                  l        SU R                  R                  l        U R                  R                  5         U R                  R                  5         g g r  )r#   r   r6  propscan_defaulthas_defaultgrab_defaultr  r   s    r   r  SelectOptionsPage.setup_focus  sZ    
#<<-1DLL*-1DLL*LL%%'LL##%	 r   c                    [        [        5        UR                  SS5      n[        R                  " U R
                  R                  U5        / nU GHl  nX5R                  5          nSU;   a  M  SU;   a  M&  SU;   aC  [        R                  " SS9nUR                  SU R                  5        UR                  U5        Mo  [        R                  " 5       n[        R                  " X5R                  5          S9nUR                  U5        UR                  SU R                  UR                  5       5        UR!                  5       (       ab  UR#                  S	UR%                  5       -  5        Xpl        UR)                  S
[        R*                  " 5       5        UR)                  S
U5        GM[  UR                  U5        GMo     U H!  nU R,                  R/                  USSS
5        M#     U R,                  R1                  5         g )Nz(e to edit)r4   zChange editorz"Pipe the message through the pagerzPrint message to stdoutzDisplay message in a text viewrr   rl  r.   r   FT)r#   r   r)  r   r  rs   r   r"  r
   rr  r_   r  r  r   rG   r  isupper
set_markupr   r6  insert
HSeparatorrz   r{   ra   )	r   r3  menuoptsr4  r   r  rx  r}  rs   s	            r   r  SelectOptionsPage.execute  su   
#r2djj))62G==?+D$&3t;(D0*JKy$*A*ABv&		(@A

5!y$//7==?K??$$$$[5>>3C%CD#)LNN1cnn&67NN1f-NN6*1  4 FII  a8  			r   )r6  rs   rz   N)r   r   r   r   r  r  r  r  r  r  r   r+   r   r   r  r    s!    &
+
&$r   r  c                   *    \ rS rSrSrS rS rS rSrg)
SystemPagei!  Fc                    [        [        5        [        R                  " 5       n[        R                  5       U l        U R                  R                  S5        U R                  R                  SU R                  5        UR                  U R                  SSS5        [        R                  " 5       nUR                  U R                  R                  5       5        UR                  USSS5        U$ )NTzchild-exitedr   F)r#   r   r
   r|   VteTerminalterminalset_cursor_blink_moder_   on_child_exitedr{   
VScrollbarset_adjustmentget_vadjustment)r   r   	scrollbars      r   r  SystemPage.create_widget$  s    
#xxz++D1nd.B.BCtT15NN$	  !>!>!@A	5$2r   c                     [        [        5        U R                  R                  U5        U R                  R                  5         g r%   r  )r   r  
exitstatuss      r   r  SystemPage.on_child_exited3  s.    
#''
3##%r   c                     [        [        5        U R                  R                  [        R
                  R                  [        R                  S   SSU/S [        R                  R                  S S SS 5	        g )NHOMEz	/bin/bashz-cr9   )r#   r   r  spawn_asyncr  PtyFlagsDEFAULTr&   environr   
SpawnFlags)r   cmdlines     r   r  SystemPage.execute8  su    
#!!#,,"6"6

68J[Z^`gLhjnptpp  qH  qH  JN  PT  VX  Z^  	_r   )r  N)	r   r   r   r   r  r  r  r  r   r+   r   r   r  r  !  s    &
_r   r  c                   X    \ rS rSr\R
                  R                  rS rS r	S r
S rSrg)ProgressPagei=  c                 V    [        [        5        U R                  R                  5         gr  )r#   r   rQ  rX  r   s    r   rX  ProgressPage.pulse@  s    
#r   c                 @   [        [        5        [        R                  " SS9n[        R                  " 5       U l        U R
                  R                  S5        U R
                  R                  [        R                  R                  5        [        R                  " 5       U l        U R                  R                  S5        UR                  U R
                  SSS5        UR                  U R                  SSS5        [        R                  " SU R                   5        U$ )Nrm   rk   TrC  Fr   rj   )r#   r   r
   ry   r   rs   r   r   r   r   rP  rQ  rR  r{   r   rW  rX  r   s     r   r  ProgressPage.create_widgetE  s    
#xx"YY[


  &

s00556)$$T*

E43udA6TZZ(r   c                 x    [        [        5        [        R                  " U R                  R
                  U5        g r%   )r#   r   r   r  rs   r   rP  s     r   	set_labelProgressPage.set_labelR  s"    
#djj))40r   c                 D    [        [        5        U R                  S5        g )NzThis operation may take a while)r#   r   r  r   s    r   reset_labelProgressPage.reset_labelV  s    
#89r   )rs   rQ  N)r   r   r   r   r
   r
  PROGRESSr  rX  r  r  r  r   r+   r   r   r  r  =  s'    %%..I
1:r   r  c                   b    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rSrg)ReportbugAssistanti[  c                 r   [        [        5        [        R                  R	                  U 5        Xl        U R                  S5        U R                  5         S U l        S U l	        S U l
        U R                  SS5        U R                  U R                  5        U R                  5         U R                  5         g )NrU   r  r   )r#   r   r
   	Assistantrv   r   r`   hack_buttonsshowing_pagerequested_pageprogress_pager   set_forward_page_funcforwardr  setup_pagesr   r   s     r   rv   ReportbugAssistant.__init__\  s    
#t$&{# "!c3'""4<<0r   c                    [        [        5        [        U[        R                  5      (       Ga\  UR                  5       S:X  a  UR                  SU R                  5        g UR                  5       S:X  a  UR                  SU R                  5        g UR                  5       S:X  ai  [        R                  R                  [        R                  [        R                  R                  5      nUR                  S5        UR                  U5        g UR                  5       S:X  ai  [        R                  R                  [        R                  [        R                  R                  5      nUR                  S5        UR                  U5        g [        U[        R                   5      (       a  UR#                  U R$                  5        g g )Nzgtk-go-backr  z	gtk-applyz
gtk-cancel_Quitzgtk-go-forward	_Continue)r#   r   r  r
   rr  	get_labelr_   on_back_showr~   r   
STOCK_QUITr   rv  r  rt  STOCK_GO_FORWARD	Containerforall_hack_buttons)r   rH   r   s      r   r   ReportbugAssistant._hack_buttonsk  sD   
# fcjj))!]2vt'8'89![0vt'8'89!\1		00141D1DF  )  '!%55		001E1Es||GZGZ[  -  'fcmm,,MM$,,- -r   c                 D    [        [        5        U R                  U 5        g r%   )r#   r   r  r   s    r   r  ReportbugAssistant.hack_buttons  s    
#4 r   c                 :   [        [        5        U R                  SU R                  5        U R                  SU R                  5        U R                  SU R
                  5        U R                  SU R
                  5        U R                  SU R
                  5        g )Ncancelpreparezdelete-eventapplyclose)r#   r   r_   confirm_exit
on_preparer  r   s    r   r  "ReportbugAssistant.connect_signals  sf    
#Xt001Y0^TZZ0Wdjj)Wdjj)r   c                 B    [        [        5        UR                  5         g r%   )r#   r   hider?  s     r   r  ReportbugAssistant.on_back_show  s    
#r   c                 X   [        [        5        U R                  (       a  U R                  U R                  :X  a  U R	                  5       U R                  R
                  :  aY  U R                  R                  5         U R                  R                  R                  S5        U R                  R                  5         UR                  U l        U R                  U R                  :X  a  U R                  R                  5         [        R                  " U R                  R                   5        g r  )r#   r   r  r  get_current_pager  r   r  rH   set_sensitiver   r  r  r  r   r  r  )r   rW   rH   s      r   r  ReportbugAssistant.on_prepare  s    
# !2!2d6I6I!IdNcNcNehlhyhy  iC  iC  OC++-$$2259((*"KK 2 22**,d''334r   c                 6    [        [        5        [        5         g r%   r   r  s     r   r  ReportbugAssistant.close  r   r   c                    [        [        5        [        R                  " S [        R                  R
                  [        R                  R                  -  [        R                  R                  [        R                  R                  S5      nUR                  5       nUR                  5         U[        R                  R                  :X  a  [        5         g g )Nz(Are you sure you want to quit Reportbug?)r#   r   r
   rV   rX   rY   rZ   r[   WARNINGr]   YES_NOr]  rP   r   YESr,   )r   rR   rc   rM   s       r   r  ReportbugAssistant.confirm_exit  s    
#""4)>)>AdAd)d#&??#:#:COO<R<R#MO ::<s''+++G ,r   c                 *    [        [        5        US-   $ Nr  r  )r   r  s     r   r  ReportbugAssistant.forward  s    
#!|r   c                     [        [        5        U R                  U R                  U R                  R
                  5      5        g r%   )r#   r   set_current_pager  r  r  r   s    r   r  ReportbugAssistant.forward_page  s-    
#dll4+<+<+E+EFGr   c                     [        [        5        Xl        U R                  U R                  :X  a  U R                  UR                  5        g g r%   )r#   r   r  r  r  r  r  )r   r  s     r   r   ReportbugAssistant.set_next_page  s;    
#" 2 22!!$--0 3r   c                 \    [        [        5        U R                  R                  X-  5        g r%   )r#   r   r  r  )r   rQ  rR   r   s       r   r  %ReportbugAssistant.set_progress_label  s     
#$$T[1r   c                     [        [        5        [        U 5      U l        U R                  R	                  5         [        U 5      U l        U R                  R	                  5         S[        l        g r  )	r#   r   r  r  r  r  r  r  r  r   s    r   r  ReportbugAssistant.setup_pages  sQ    
# &dO##%)$/$$&r   )r   r  r  r  N)r   r   r   r   rv   r  r  r  r  r  r  r  r  r  r  r  r  r   r+   r   r   r  r  [  sD    .6!*5"H12r   r  c                   *    \ rS rSrS rS rSS jrSrg)YesNoDialogi  c                 z   [        [        5        [        R                  R	                  U [
        [        R                  R                  [        R                  R                  -  [        R                  R                  [        R                  R                  5        Xl        U R                  SU R                  5        g NrM   )r#   r   r
   rV   rv   rW   rX   rY   rZ   r[   QUESTIONr]   r  r   r_   r   r  s     r   rv   YesNoDialog.__init__  sq    
#""4COO4I4ICOOLoLo4o#&??#;#;S__=S=S	U&Z!1!12r   c                     [        [        5        U R                  R                  U[        R
                  R                  :H  5        U R                  R                  5         U R                  5         g r%   )	r#   r   r   r  r
   r   r  r  rP   r   s      r   r   YesNoDialog.on_response  sJ    
#''s/?/?/C/C(CD'')r   Nc                    [        [        5        U R                  U5        U(       a*  U R                  [        R
                  R                  5        O)U R                  [        R
                  R                  5        U R                  5         g r%   )	r#   r   r  rw   r
   r   r  NOra   )r   r3  yeshelpnohelpr6  nowraps         r   r  YesNoDialog.execute_operation  sV    
#%%c&6&6&:&:;%%c&6&6&9&9:r   r   )NNTFr   r   r   r   rv   r   r  r   r+   r   r   r  r    s    3r   r  c                   &    \ rS rSrS rS rS rSrg)DisplayFailureDialogi  c                 z   [        [        5        [        R                  R	                  U [
        [        R                  R                  [        R                  R                  -  [        R                  R                  [        R                  R                  5        Xl        U R                  SU R                  5        g r  )r#   r   r
   rV   rv   rW   rX   rY   rZ   r[   r  r]   r^   r   r_   r   r  s     r   rv   DisplayFailureDialog.__init__  sq    
#""4COO4I4ICOOLoLo4o#&??#:#:COO<Q<Q	S&Z!1!12r   c                 v    [        [        5        U R                  R                  5         U R	                  5         g r%   )r#   r   r   r  rP   r   s      r   r    DisplayFailureDialog.on_response  s%    
#'')r   c                 h    [        [        5        U R                  X-  5        U R                  5         g r%   )r#   r   r  ra   )r   r3  rR   s      r   r  &DisplayFailureDialog.execute_operation  s!    
#
#r   r!  Nr"  r+   r   r   r$  r$    s    3
r   r$  c                   *    \ rS rSrS rS rSS jrSrg)GetFilenameDialogi  c           	      N   [        [        5        [        R                  R	                  U S[
        [        R                  [        R                  R                  [        R                  [        R                  R                  4S9  Xl        U R                  SU R                  5        g )Nr4   )r   rM   )r#   r   r
   FileChooserDialogrv   rW   r   r   r   
STOCK_OPENOKr   r_   r   r  s     r   rv   GetFilenameDialog.__init__   sv    
#&&tRSEUEUWZWgWgWnWnEH^^UXUeUeUhUhEj& 	k&Z!1!12r   c                    [        [        5        S nU[        R                  R                  :X  a  U R                  5       nU R                  R                  U5        U R                  R                  5         U R                  5         g r%   )
r#   r   r
   r   r0  get_filenamer   r  r  rP   )r   rc   r   r   s       r   r   GetFilenameDialog.on_response  s`    
##""%%%%%'E''.'')r   c                 v    [        [        5        U R                  [        U5      5        U R	                  5         g r%   )r#   r   r`   r=   ra   )r   r  r5  s      r   r  #GetFilenameDialog.execute_operation  s#    
#x'r   r!  NFr"  r+   r   r   r,  r,    s    3r   r,  c                  r    [        [        5        [        R                  " [        R
                  /U Q70 UD6  g r%   )r#   r   r   r   rW   r  rR   r   s     r   log_messager:    s)    %&''	(D(DVtVvVr   c                  J    [        [        5        SUS'   SUS'   [        U 0 UD6$ )NTrj  r  )r#   r   menur9  s     r   select_multipler=    s/    %&F:F:   r   c                 h    [        [        5        SU ;   a  [        U /UQ70 UD6$ [        U /UQ70 UD6$ )NENTER)r#   r   get_list_get_multiline)r3  rR   r   s      r   get_multilinerB  #  s=    %&&0000f6t6v66r   )
get_stringget_passwordr<  handle_bts_queryshow_reportlong_messagedisplay_reportfinal_messagespawn_editorselect_optionsr@  rN  rA  )yes_nor3  display_failurec                 6   ^ ^ [        [        5        UU 4S jnU$ )Nc                  .  > [        [        5        [        R                  TT5      n UR                  " U 0 UD6u  p[        R                  " UR                  /U Q70 UD6  [        R                  5       $ ! [
         a  nUR                  s S nA$ S nAff = fr%   )
r#   r   r   r  r  r  r  r   r  r  )rR   r   opr  klassparents       r   r  create_forwarder.<locals>.funcC  s    )*,,UF;	00$A&ALD 	++B,@,@R4R6R))++  	88O	s   A4 4
B>B	BBr   )rR  rQ  r  s   `` r   create_forwarderrT  @  s    %&, Kr   c                     [        [        5        UR                  5        H  u  p#[        X5      [	        5       U'   M     g r%   )r#   r   r  rT  globals)rR  
operations	operationrQ  s       r   forward_operationsrY  P  s2    %&&,,.	/>	) /r   c                  "    [         R                  " SS5        SSKJq  [2        R4                  " 5       q[6        R9                  5       (       d  [;        S5      e[6        R=                  5         [2        R4                  R?                  5       q [(        RB                  n[D        RG                  U5      [(        l!        [        RH                  RK                  [L        5        [O        5       q([P        RS                  5         [U        [P        [V        5        [P        RY                  [Z        [P        5      q.[U        [\        [^        5        g! [        [
        4 Ga=    Sn [        R                  " S [        R                  R                  [        R                  R                  -  [        R                  R                  [        R                  R                  S 5      nUR                  U S-  5        UR!                  5         UR#                  5         [        R$                  " 5       (       a1  [        R&                  " 5         [        R$                  " 5       (       a  M1  [(        R*                  R-                  5       (       d  [.        R0                  " SSSS	5         g
f = f)Nr  z2.91r   )r  zxPlease install the %s package to use the GTK+ (known as 'gtk' in reportbug) interface.
Falling back to 'text' interface.z<b>gir1.2-vte-2.91</b>zx-terminal-emulatorz-ezreportbug -u textFz"Could not acquire new main-contextT)0girequire_versiongi.repositoryr  rw  
ValueErrorr
   rV   rX   rY   rZ   r[   r\   r]   r^   r  r]  rP   events_pendingmain_iterationsysstdoutisattyr&   execlpr   r   r   rU  r   rV  r6  r   r   r   r   Windowset_default_icon_from_filer  r  r   r  rY  dialogsr  r  rW   pages)rb   rc   r   s      r   
initializeri  V  s   
5&)%  ((*$$&&ABB))+
 !!))+J nnG$66w?CN JJ))+6&(K{G,//0BKPIy%(Q $ %""4)>)>AdAd)d#&??#7#79N9NPTV'$<<=

  ""    ""zz  ""II+-BDJ]^s   E   DJ<JJc                  "    [        [        5        gr  r   r+   r   r   	can_inputrk    s    %&r   r7  )\reportbug.exceptionsr   r&   r  r[  r\  r]  r   r   r   r	   r
   r   require_foreignrw  ra  rer   r  r   rD  r1  r)   r   r   r   	reportbugr   reportbug.urlutilsr   ISATTYr  rv  r   r#   r,   r1   compiler5   r7   r=   rK   rd   ru   rf   r   r   r   objectr   r  rF  rE  r@  r  r  r  r  r  r  r  r  r<  rB  rX  rn  r  r  rD  rQ  rY  re  rj  r  r  r  r  r  rV   r  r$  r.  r,  r:  r=  rB  rh  rg  rT  rY  ri  rk  r+   r   r   <module>rt     s  0 1 	RZZ#4

#B
S
TT]vu%"w&#ue$!{E*'ue$!{C('w  	      A A  -	2
 	K( G$%	"13:: "1J% %"+l +\ @!& !:OT OTf{cllI,, {| 0=9++ =D 	 	W* W*t 4.D .bm $$t $$Nt <L\( L\^dKt dKN}) })@ T  F1 1$4d 427 7j( j(ZC CL_ _8:4 :<u ur$c&7&7 0-s/@/@ &*C,A,A 0W
!7 %(/&(,*#, +	 !,2 ?.bg:  ]
[
\\]s   B,L: :M	