
    Mh                         d Z ddlZ	 ddlmZ ddlmZmZ ddlmZm	Z	 ddl
mZ dZn# e$ r dZY nw xY wer,dZ ej                    s eg           Z G d	 d
e	          ZdS dS )A qt screenshot exporter.    N)QtCore)QPageLayout	QPageSize)QWebEngineSettingsQWebEngineView)QApplicationTFc                   @     e Zd ZdZ fdZd Zd Zd Zd Zd Z	 xZ
S )QtScreenshotr   c                 `    t                                                       t          | _        dS )zInitialize the exporter.N)super__init__APPapp)self	__class__s    a/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/nbconvert/exporters/qt_screenshot.pyr   zQtScreenshot.__init__   s$    GGDHHH    c                     | _         | _                             t          j        |                      j                             j                                        t          j	        j
                                                                                                        t          j        d           d _        |                    d          r> j         _         fd}                                 j                            |           n6|                    d          r j         _        nd| }t+          |                                             j                                         dS )zCapture the screenshot.Fr   z.pdfc                  b    j                                                                           dS )zCleanup the app.N)r   quitget_data)argsr   s    r   cleanupz%QtScreenshot.capture.<locals>.cleanup-   s#    HMMOOOMMOOOOOr   z.pngz%Export file extension not supported: N)output_filepaginateloadr   QUrlloadFinishedconnect	on_loadedsetAttributeQtWA_DontShowOnScreenpagesettingsr   ShowScrollBarsdataendswith
export_pdfexportpdfPrintingFinished
export_pngRuntimeErrorshowr   exec)r   urlr   r   r   msgs   `     r   capturezQtScreenshot.capture    sN   *D$DMIIfk#&&'''%%dn555fi;<<<IIKK  ""//0B0QSXYYYDI##F++ ("o$ $ $ $ $
 		/77@@@@%%f-- ("oKkKK"3'''IIKKKHMMOOOOOr   c                     |                                                                                                  | _        |                     | j                   t
          j                            d| j                   dS )zHandle app load.i  N)	r%   contentsSizetoSizesizeresizer   QTimer
singleShotr+   r   s    r   r!   zQtScreenshot.on_loaded;   s]    		002299;;DIKK	"""M$$T4;77777r   c                    | j         rFt          t          j                  }t          |t          j        t          j                              }nd}t          t          j        | j        	                                |z  | j        
                                |z            t          j                  }t          |t          j        t          j                              }|                                                     | j        |           dS )zExport to pdf.g      ?)
pageLayoutN)r   r   A4r   Portraitr   	QMarginsFQSizeFr7   widthheightPointr%   
printToPdfr   )r   	page_sizepage_layoutfactors       r   r*   zQtScreenshot.export_pdfB   s    } 	_%il33	))[5I6K[K]K]^^%M$)//"3"3f"<di>N>N>P>PSY>YZZO 	 *)[5I6K[K]K]^^IIKK""4#3"LLLLLr   c                     |                                                      | j        d           | j                                         |                                  dS )zExport to png.PNGN)grabsaver   r   r   r   r;   s    r   r-   zQtScreenshot.export_pngQ   sC    IIKKT-u555HMMOOOMMOOOOOr   c                    t           j                            | j                  rat	          | j        d          5 }|                                | _        ddd           n# 1 swxY w Y   t          j        | j                   dS dS )zGet output data.rbN)ospathexistsr   openreadr(   unlink)r   fs     r   r   zQtScreenshot.get_dataW   s    w~~d.// ,$*D11 )Q !DI) ) ) ) ) ) ) ) ) ) ) ) ) ) )	$*+++++, ,s   A  A$'A$)__name__
__module____qualname____doc__r   r3   r!   r*   r-   r   __classcell__)r   s   @r   r   r      s        ''	 	 	 	 	
	 	 	6	8 	8 	8	M 	M 	M	 	 		, 	, 	, 	, 	, 	, 	,r   r   )rY   rO   PyQt5r   PyQt5.QtGuir   r   PyQt5.QtWebEngineWidgetsr   r   PyQt5.QtWidgetsr	   QT_INSTALLEDModuleNotFoundErrorr   instancer    r   r   <module>rc      s&     				22222222        -,,,,,LL   LLL  I,
C < "" l2D, D, D, D, D,~ D, D, D, D, D,I, I,s   ' 11