
    f                         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er'dZ ej                         s eg       Z G d	 d
e	      Zyy# e$ r dZY 3w xY w)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                 8    t         |           t        | _        y)zInitialize the exporter.N)super__init__APPapp)self	__class__s    \/var/www/cvtools/html/venv/lib/python3.12/site-packages/nbconvert/exporters/qt_screenshot.pyr   zQtScreenshot.__init__   s    GDH    c                     | _         | _         j                  t        j                  |              j
                  j                   j                          j                  t        j                  j                          j                         j                         j                  t        j                  d       d _        |j!                  d      r@ j"                   _         fd} j                         j&                  j                  |       n3|j!                  d      r j(                   _        nd| }t+        |       j-                           j.                  j1                          y)zCapture the screenshot.Fr   z.pdfc                  Z    j                   j                          j                          y)zCleanup the app.N)r   quitget_data)argsr   s    r   cleanupz%QtScreenshot.capture.<locals>.cleanup-   s    HHMMOMMOr   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    s   *D$DMIIfkk#&'%%dnn5fii;;<IIK  "//0B0Q0QSXYDI##F+"oo$
 		//77@%%f-"oo=k]K"3''IIKHHMMOr   c                     | j                         j                         j                         | _        | j	                  | j                         t
        j                  j                  d| j                         y)zHandle app load.i  N)	r%   contentsSizetoSizesizeresizer   QTimer
singleShotr+   r   s    r   r!   zQtScreenshot.on_loaded;   sI    		00299;DIKK		"MM$$T4;;7r   c                 &   | j                   rGt        t        j                        }t        |t        j                  t        j                               }nd}t        t        j                  | j                  j                         |z  | j                  j                         |z        t        j                        }t        |t        j                  t        j                               }| j                         j                  | j                  |       y)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    }}%ill3	))[5I5I6K[K[K]^%MM$))//"3f"<dii>N>N>PSY>YZOO	 *)[5I5I6K[K[K]^IIK""4#3#3"Lr   c                     | j                         j                  | j                  d       | j                  j	                          | j                          y)zExport to png.PNGN)grabsaver   r   r   r   r;   s    r   r-   zQtScreenshot.export_pngQ   s4    IIKT--u5HHMMOMMOr   c                    t         j                  j                  | j                        rTt	        | j                  d      5 }|j                         | _        ddd       t        j                  | j                         yy# 1 sw Y   *xY w)zGet output data.rbN)ospathexistsr   openreadr(   unlink)r   fs     r   r   zQtScreenshot.get_dataW   sc    ww~~d../$**D1 )Q !DI)		$**+ 0) )s    A??B)__name__
__module____qualname____doc__r   r3   r!   r*   r-   r   __classcell__)r   s   @r   r   r      s%    '	
	6	8	M		,r   r   )rY   rO   PyQt5r   PyQt5.QtGuir   r   PyQt5.QtWebEngineWidgetsr   r   PyQt5.QtWidgetsr	   QT_INSTALLEDModuleNotFoundErrorr   instancer    r   r   <module>rc      sp     	2 -L
 
C <  "2D,~ D, 	  Ls   A AA