
    kh                     ^    d Z ddlZddlmZmZmZmZmZmZm	Z	 ddl
Z
ddlmZ  G d de      Zy)z!Main frame with grouped controls.    N)TkFrameLabelEntryButton
filedialog
messagebox)	Converterc                   >     e Zd Zddef fdZd Zd Zd Zd Z xZ	S )	MainFrameparentc                     t         |   |       || _        | j                  d       | j	                  dd       | j                          t               | _        d| _        y)zVMain frame with grouped controls. This should be attached to a parent ``Tk`` instance.grey)bgd   )ipadxipadyN)	super__init__r   configgridsetup_uiset	pdf_pathsdocx_folder)selfr   	__class__s     R/var/www/teggl/fontify/venv/lib/python3.12/site-packages/pdf2docx/gui/MainFrame.pyr   zMainFrame.__init__
   sQ     v		3	'     c           	      ~   t        | dddd      | _        | j                  j                  ddddd	
       t        | d      | _        | j                  j                  ddddd       t        | d      | _        | j
                  j                  dddddd       t        | dddd| j                        | _        | j                  j                  ddd       t        | dddd| j                        | _
        | j                  j                  ddd       t        | ddddd| j                        | _        | j                  j                  ddddd       t        | dd       | _        | j                  j                  dddd!       t        | d"ddd# $      | _        | j                  j                  ddd%       y&)'zLayout of the user interface.zPDF to Docxz	Impact 40whitez#1E90FF)textfontr   fgr      x   2   )rowcolumn
columnspanpadxpady   )border   w   
   )r(   r)   stickyr   r+   K   )r(   r)   r3   r   r+   r,   zSelect PDF filesblack   )r"   r$   r   r.   command)r(   r)   r3   zSelect new files folderConvertz	impact 20)r"   r   r$   r#   r.   r7   )r(   r)   r*   r   r   zN*This converter can only convert text based pdf 
 cant convert image based pdfr   )r"   r   )r(   r)   r*   r,   zhow to check my file?c                  ,    t        j                  d      S )Nzkhttps://support.policystat.com/hc/en-us/articles/207993346-How-can-I-tell-if-my-PDFs-are-text-based-or-not-)
webbrowseropen_new r   r   <lambda>z$MainFrame.setup_ui.<locals>.<lambda>G   s    J// 1W X r   )r"   r   r$   r7   )r(   r)   r*   N)r   program_use_labelr   r   file_path_pdf_entryfile_path_docx_entryr   _callback_pdf_file_locationselect_pdf_file_callback_docx_folder_locationselect_new_file_folder_callback_convertconverter_buttoncheck_labelfile_check_buttonr   s    r   r   zMainFrame.setup_ui   s    "'t-kV]bk!l##!RT#U $)a#8   %%!AcQS%T %*$q$9!!!&&1Qs!RT[]&^  &d1C44	 6
 	!!a#!> '-T8Q77	'9#
 	##((Qq(E !'t)**!, 	""qqQS"T !,}%'!A!"E "(3JX"Y
 	##!#Br   c           	         t        j                  dg      }t               | _        |D ]  }| j                  j	                  |        dj                  | j                  D cg c]%  }dt        j                  j                  |       d' c}      }| j                  j                  dd       | j                  j                  d|       yc c}w )zTOpens file explorer and let you select choose the pdf file that you want to convert.)zPDF filez*.pdf)	filetypes;"r   endN)r   askopenfilenamesr   r   addjoinospathbasenamer?   deleteinsert)r   
file_pathsrS   namess       r   rA   z%MainFrame._callback_pdf_file_locationL   s    00<Q;RS
 	%DNNt$	% DNNSDAbgg..t45Q7ST  ''51  ''51 Ts   "*Cc                     t        j                         | _        | j                  j	                  dd       | j                  j                  d| j                         y)zgOpens file explorer and let you choose the folder, that all the converted file or files going to saved.r   rN   N)r   askdirectoryr   r@   rU   rV   rI   s    r   rC   z(MainFrame._callback_docx_folder_locationY   sE    %224!!((E2!!((D,<,<=r   c                    | j                   s$| j                  st        j                  dd       y| j                   st        j                  dd       y| j                  st        j                  dd       yg }| j                   D ]  }t        j
                  j                  |      }t        j
                  j                  |      \  }}t        j
                  j                  | j                  | d	      }|j                  |        t        |D cg c]!  }t        j
                  j                  |      # c}      rt        j                  d
d      syd\  }}	t        | j                   |      D ]7  \  }}t        |      }
	 |
j                  |       |dz  }|
j%                          9 t        j&                  dd| d|	 d       yc c}w # t         $ r}t#        |       |	dz  }	Y d}~Td}~ww xY w# |
j%                          w xY w)z(Starts the convert of the file or files.z Neither files or folder selectedzQSelect PDF file or files for convert and Select a folder for the converted files!)titlemessageNzNot files for convert selectedz)Select PDF file or PDF files for convert!zNot files folder selectedz(Select a folder for the converted files!z.docxzExisted target filezkDocx files with same target name are found under selected folder. Do you want to continue and replace them?)r   r   r/   zConvert Done!zSuccessful (z), Failed (z).)r   r   r	   showwarningrR   rS   rT   splitextrQ   appendanyexistsaskokcancelzipr
   convert	Exceptionprintcloseshowinfo)r   
docx_pathspdf_path	base_namenameext	docx_pathrS   num_succnum_failcves               r   rE   zMainFrame._callback_convert`   s    ~~d&6&6""8GH ~~""6CE ""1BD  
 	)H((2I((3ID#T%5%5$u~FIi(		) <t$<=&&-BDE  "(#&t~~z#B 
	Hi8$B

9%
 A

	 	/"8*KzD	F) =  aA 
s6   &GGG8	G5G0+G80G55G88H
)N)
__name__
__module____qualname__r   r   r   rA   rC   rE   __classcell__)r   s   @r   r   r   	   s&    
 b 
 2Cj
2>3Fr   r   )__doc__rR   tkinterr   r   r   r   r   r   r	   r:   pdf2docxr
   r   r<   r   r   <module>r{      s*    ' 	 K K K  JF JFr   