a
     ³ŠaÐ  ã                   @   s4   d Z ddlmZ ddlmZ G dd„ dƒZeƒ ZdS )z
Clipboard helper module.
é    )ÚQApplication)Úto_text_stringc                   @   s<   e Zd ZdZdZdZdd„ Zd
dd„Zddd„Zdd	„ Z	dS )ÚClipboardHelperNc                 C   s   t  ¡ }tt| ¡ ƒƒS )N)r   Ú	clipboardÚhashr   Útext)Úselfr   © r	   ú<lib/python3.9/site-packages/spyder/utils/clipboard_helper.pyÚget_current_hash   s    z ClipboardHelper.get_current_hashc                 C   s(   |r|  dd| ¡}t|ƒt| ¡ ƒ S )zGet indentation for given line.ú	ú )ÚreplaceÚlenÚlstrip)r   r   Útab_stop_width_spacesr	   r	   r
   Úget_line_indentation   s    z$ClipboardHelper.get_line_indentationc                 C   s"   |   ¡ | _|  ||¡| _|| _dS )zx
        Save the indentation corresponding to the clipboard data.

        Must be called right after copying.
        N)r   Úmetadata_hashr   Úmetadata_indentÚmetadata_tab_stop_width_spaces)r   Úpreceding_textr   r	   r	   r
   Úsave_indentation   s
    
ÿz ClipboardHelper.save_indentationc                 C   s&   |   ¡ | jkr"|  || j¡| j S dS )zj
        Get remaining lines adjustments needed to keep multiline
        pasted text consistant.
        r   )r   r   r   r   r   )r   r   r	   r	   r
   Úremaining_lines_adjustment*   s    þýÿz*ClipboardHelper.remaining_lines_adjustment)N)N)
Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r	   r	   r	   r
   r      s   

r   N)Ú__doc__Zqtpy.QtWidgetsr   Zspyder.py3compatr   r   ZCLIPBOARD_HELPERr	   r	   r	   r
   Ú<module>   s   )