o >Icy@sddlZeddddlmZmZddlmZddlmZddlmZdd l m Z dd l m Z dd l mZdd lmZddlZddlZGd ddeZdS)NGtkz3.0)rGdk)ReleaseNotesViewer)error)DistUpgradeFetcherCore)SimpleGtkbuilderApp)gettext)urlopen) HTTPErrorc@s<eZdZddZddZddZddZd d Zd d Zd S)DistUpgradeFetcherGtkcCs4t|||tj|dd}t|d|_||_dS)N gtkbuilderzReleaseNotes.uizubuntu-release-upgrader)r__init__ospathjoinrwidgets window_main)selfnew_distprogressparentdatadiruifiler@/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeFetcher.pyr(s  zDistUpgradeFetcherGtk.__init__cCst|j||SN)rr)rsummarymessagerrrr.szDistUpgradeFetcherGtk.errorcCst|j|jg|jdSr)rexecvscript run_options)rrrrrunDistUpgrader1sz%DistUpgradeFetcherGtk.runDistUpgradercCs|}|dur |S|Sr)_try_show_release_notes_webkit _try_show_release_notes_textview)rresrrrshowReleaseNotes4sz&DistUpgradeFetcherGtk.showReleaseNotescCs|jjdur@z/ddlm}||jj}||jj||jj}|jj |t j j kr3WdSWdSt y?YdSwdS)Nr)ReleaseNotesViewerWebkitTF)rreleaseNotesHtmlUrir'showrscrolled_notesadddialog_release_notesrunhider ResponseTypeOK ImportError)rr'webkit_release_notesr%rrrr#>s$      z4DistUpgradeFetcherGtk._try_show_release_notes_webkitc Cs |jjdur||jj}|jr%|jd|jtj tj j t r1t t s)t jj}t}z8tdt|}|dd}t|}||jj||jj}||j|jj}|jjWnst ydt!d}t!d} t "|jt j#j$t j%j&t j'j(d} | )d| *|| +| | | ,Yn:t-ydt!d }t!d } t "|jt j#j$t j%j&t j'j(d} | )d| *|| +| | | ,Ynwt||jr|jd |jd|t jj.krd SdS) NFzUTF-8replacez+%sz Could not find the release noteszThe server may be overloaded. z$Could not download the release notesz&Please check your internet connection.T)/rreleaseNotesURI _expandUrir set_sensitive get_window set_cursorrCursornew CursorTypeWATCHrevents_pendingmain_iterationr/CANCELsocketgetdefaulttimeoutsetdefaulttimeoutr readdecoderr)rr*r+r,set_transient_forr-r.r _ MessageDialog DialogFlagsMODAL MessageTypeERROR ButtonsTypeCLOSE set_title set_markupformat_secondary_textdestroyIOErrorr0) rurir%timeout release_notesnotestextview_release_notesrelease_widgetprimary secondarydialogrrrr$Osz                 z6DistUpgradeFetcherGtk._try_show_release_notes_textviewN) __name__ __module__ __qualname__rrr"r&r#r$rrrrr &s r )girequire_version gi.repositoryrrrutilsrrSimpleGtk3builderApprr rHurllib.requestr urllib.errorr rrBr rrrrs