³ò
ªbc           @   s   d  Z  d d k Z d d k Z d d k Z d d k Z d d k Z d d k Z d d k l Z e i Z	 d d k
 Z
 e
 i d ƒ d d k l Z d d k Z d d k Z d d k Z d d k l Z d d k l Z l Z l Z l Z d d k l Z d d	 k l Z l Z d d
 k l Z l Z yE d d k
 Z
 e
 i d ƒ d d k l Z d d k Z d d k Z Wn e j
 o n Xd e i f d „  ƒ  YZ d d d „ Z! d „  Z" e# d j oA d i$ d ƒ Z% x/ e% D]# Z& e e& ƒ Z& e" e& ƒ Z& e& GHqÑWn d S(   s6   

    KeepNote
    Import plain text files extension

iÿÿÿÿN(   t   escapes   2.0(   t   gdk(   t   unicode_gtk(   t   NoteBookErrort   get_valid_unique_filenamet   CONTENT_TYPE_DIRt   attach_file(   t   notebook(   t   tasklibt   safefile(   t	   extensiont   FileChooserDialogt	   Extensionc           B   s8   e  Z d  „  Z d „  Z d „  Z d „  Z d d „ Z RS(   c         C   s    t  i i |  | ƒ | |  _ d S(   s   Initialize extensionN(   R
   R   t   __init__t   app(   t   selfR   (    (    sG   C:\Users\PCB\AppData\Roaming\keepnote\extensions\import_txt\__init__.pyR   K   s    c         C   s   d d d f g S(   Nt   keepnotes   >=i    i   i   (   i    i   i   (    (   R   (    (    sG   C:\Users\PCB\AppData\Roaming\keepnote\extensions\import_txt\__init__.pyt   get_dependsR   s    c      	      sH   ˆ  i  ˆ d t d ƒ ‡  ‡ f d †  d t d ƒ ƒˆ  i ˆ d ƒ d S(   s,   Initialize extension for a particular windows
   Import Txts   Import _Txt...c            s   ˆ  i  ˆ ˆ i ƒ  ƒ S(    (   t   on_import_txtt   get_notebook(   t   w(   R   t   window(    sG   C:\Users\PCB\AppData\Roaming\keepnote\extensions\import_txt\__init__.pyt   <lambda>\   s   t   tooltips'   Import plain text files to the notebooks#  
            <ui>
            <menubar name="main_menu_bar">
               <menu action="File">
                 <menu action="Import">
                     <menuitem action="Import Txt"/>
                 </menu>
               </menu>
            </menubar>
            </ui>
            N(   t
   add_actiont   _t   add_ui(   R   R   (    (   R   R   sG   C:\Users\PCB\AppData\Roaming\keepnote\extensions\import_txt\__init__.pyt	   on_add_uiV   s    	c      
   C   sÞ   | i  ƒ  } t | ƒ d j o d Sn | d } t d | d t i d d t i d t i f ƒ} | i t ƒ | i	 ƒ  } | t i j oF | i
 ƒ  o9 t t | i
 ƒ  ƒ } | i ƒ  |  i | | d | ƒn | i ƒ  d S(	   s1   Callback from gui for importing a plain text filei    Ns   Import Plain Textt   actiont   buttonst   Cancelt   ImportR   (   t   get_selected_nodest   lenR   t   gtkt   FILE_CHOOSER_ACTION_OPENt   RESPONSE_CANCELt   RESPONSE_OKt   set_select_multiplet   Truet   runt   get_filenamest   mapR   t   destroyt   import_plain_text(   R   R   R   t   nodest   nodet   dialogt   responset	   filenames(    (    sG   C:\Users\PCB\AppData\Roaming\keepnote\extensions\import_txt\__init__.pyR   o   s     
			
c      	   C   s$  yD x! | D] } t  | | d d  ƒq
 W| o | i d ƒ n t SWnÙ t j
 o` | o. | i d ƒ | i d | t i ƒ  d ƒ n! |  i i d | t i ƒ  d ƒ t	 Sno t
 j
 ob } | o. | i d ƒ | i d | t i ƒ  d ƒ n! |  i i d | t i ƒ  d ƒ t	 Sn Xd  S(   Nt   tasks   Text files imported.t    s'   Error while importing plain text files.i   s   unknown error(   t
   import_txtt   Nonet
   set_statusR'   R   t   errort   syst   exc_infoR   t   Falset	   Exception(   R   R.   R1   R   t   filenamet   e(    (    sG   C:\Users\PCB\AppData\Roaming\keepnote\extensions\import_txt\__init__.pyR,   ‰   s*     	! N(   t   __name__t
   __module__R   R   R   R   R5   R,   (    (    (    sG   C:\Users\PCB\AppData\Roaming\keepnote\extensions\import_txt\__init__.pyR   I   s
   				c   
      C   s,  | d j o t i ƒ  } n |  i t i t i i | ƒ | ƒ } | i	 d t i i | ƒ ƒ t
 | ƒ i ƒ  } t i
 | i ƒ  d d d ƒ} | i d ƒ g  } | D] } | t t | ƒ ƒ q¥ ~ } d i | ƒ }	 |	 i d d ƒ }	 |	 i d	 d
 ƒ }	 | i |	 ƒ | i d ƒ | i ƒ  | i ƒ  d S(   s¶   
    Import a text file into the notebook

    node     -- node to attach folder to
    filename -- filename of text file to import
    task     -- Task object to track progress
    t   titleR   t   codecs   utf-8u«   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><body>R3   u   
u   <br/>u   u    u   </body></html>N(   R5   R   t   Taskt	   new_childt   notebooklibt   CONTENT_TYPE_PAGEt   ost   patht   basenamet   set_attrt   opent	   readlinesR	   t   get_data_filet   writet   escape_whitespaceR    t   joint   replacet   closet   finish(
   R.   R<   t   indexR2   t   childt   linest   outt   _[1]t   linet   text(    (    sG   C:\Users\PCB\AppData\Roaming\keepnote\extensions\import_txt\__init__.pyR4   ¦   s"    -
c         C   sÕ   g  } t  |  ƒ } x: | D]2 } | d j o | i d ƒ q | i | ƒ Pq Wxv | D]n } | d j oN | i d ƒ xK | D]2 } | d j o | i d ƒ q} | i | ƒ Pq} WqV | i | ƒ qV Wd i | ƒ S(   s#   Escape white space for an HTML linet    s   &nbsp;R3   (   t   itert   appendRO   (   RX   t   line2t   itt   c(    (    sG   C:\Users\PCB\AppData\Roaming\keepnote\extensions\import_txt\__init__.pyRN   Î   s(       	t   __main__s4     hello
there & hi a  word here    
  ab  wer   123
s   
('   t   __doc__t   codecst   gettextt	   mimetypesRF   R8   t   ret   xml.sax.saxutilsR    R   t   pygtkt   requireR"   R   t	   gtk.gladet   gobjectR   R   t   keepnote.notebookR   R   R   R   R   RD   R   R	   t   keepnote.guiR
   R   t   ImportErrorR   R5   R4   RN   R>   t   splitRY   RX   (    (    (    sG   C:\Users\PCB\AppData\Roaming\keepnote\extensions\import_txt\__init__.pys   <module>   sL   	"](		 