ó
âdc           @` s   d  Z  d d l m Z m Z m Z m Z d d l Td d l Z e j d  d d l	 Z	 d d l
 Z
 d d l m Z d e f d     YZ d S(	   u'   Progress indicator for processed items.i    (   t   absolute_importt   divisiont   print_functiont   unicode_literals(   t   *Nu   2.0(   t	   pygimplibt   ItemProgressIndicatorc           B` sA   e  Z d  Z d   Z d d d  Z d   Z d   Z d   Z RS(   u   
  This class controls a single progress bar to indicate the number of processed
  items and the status of the currently processed item.
  c         C` s+   | |  _  | |  _ d  |  _ |  j |  _ d  S(   N(   t   _progress_bart   _progress_updatert   Nonet   _progress_callbackt   _progress_set_fractiont   _progress_set_fraction_func(   t   selft   progress_bart   progress_updater(    (    sD   /home/josie/.config/GIMP/2.10/plug-ins/export_layers/gui/progress.pyt   __init__   s    			c         ` s   t  j d k r d S| d k	 r+ |   _ n   j   _ | d k r[   f d   } | } n  t  j | | t j j   j	    _
 d S(   ul   
    Initialize the progress bar for the current item status to update according
    to GIMP PDB calls.
    i   i	   Nc          ` s     j  d  d  S(   Ng        (   R   (   t   args(   R   (    sD   /home/josie/.config/GIMP/2.10/plug-ins/export_layers/gui/progress.pyt   progress_reset_value_default-   s    (   i   i	   (   t   gimpt   versionR	   R   R   t   progress_installt   pgt   utilst
   empty_funct   _progress_set_value_for_statusR
   (   R   t   progress_set_valuet   progress_reset_valueR   (    (   R   sD   /home/josie/.config/GIMP/2.10/plug-ins/export_layers/gui/progress.pyt   install_progress_for_status   s    		c         C` sB   t  j d k r d S|  j d k	 r> t  j |  j  d |  _ n  d S(   uz   
    Reset the progress bar for the current item status so that it no longer
    updates according to GIMP PDB calls.
    i   i	   N(   i   i	   (   R   R   R
   R	   t   progress_uninstall(   R   (    (    sD   /home/josie/.config/GIMP/2.10/plug-ins/export_layers/gui/progress.pyt   uninstall_progress_for_status8   s
    c         C` s1   |  j  j |  x t j   r, t j   q Wd  S(   N(   R   t   set_fractiont   gtkt   events_pendingt   main_iteration(   R   t   fraction(    (    sD   /home/josie/.config/GIMP/2.10/plug-ins/export_layers/gui/progress.pyR   D   s    c         C` s5   |  j  j |  j  j | |  j  j } |  j |  d  S(   N(   R   t   num_finished_taskst   num_total_tasksR   (   R   R#   t   relative_fraction(    (    sD   /home/josie/.config/GIMP/2.10/plug-ins/export_layers/gui/progress.pyR   I   s    N(	   t   __name__t
   __module__t   __doc__R   R	   R   R   R   R   (    (    (    sD   /home/josie/.config/GIMP/2.10/plug-ins/export_layers/gui/progress.pyR      s   			(   R)   t
   __future__R    R   R   R   t   future.builtinst   pygtkt   requireR    R   t   export_layersR   R   t   objectR   (    (    (    sD   /home/josie/.config/GIMP/2.10/plug-ins/export_layers/gui/progress.pyt   <module>   s   "
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         # -*- coding: utf-8 -*-

"""GUI-specific plug-in settings."""

from __future__ import absolute_import, division, print_function, unicode_literals
from future.builtins import *

import collections

import gimp

from export_layers import pygimplib as pg


def create_gui_settings():
  gui_settings = pg.setting.Group(
    name='gui',
    setting_attributes={'setting_sources': ['session', 'persistent']})
  
  size_gui_settings = pg.setting.Group(
    name='size',
    setting_attributes={'setting_sources': ['session', 'persistent']})
  
  size_gui_settings.add([
    {
      'type': 'tuple',
      'name': 'dialog_position',
      'default_value': (),
    },
    {
      'type': 'tuple',
      'name': 'dialog_size',
      'default_value': (),
    },
    {
      'type': 'integer',
      'name': 'paned_outside_previews_position',
      'default_value': 610,
    },
    {
      'type': 'float',
      'name': 'paned_between_previews_position',
      'default_value': 360,
    },
    {
      'type': 'float',
      'name': 'settings_vpane_position',
      'default_value': 400,
    },
  ])
  
  gui_settings.add([
    {
      'type': 'boolean',
      'name': 'show_more_settings',
      'default_value': False,
    },
    {
      'type': 'boolean',
      'name': 'name_preview_sensitive',
      'default_value': True,
      'gui_type': None,
    },
    {
      'type': 'boolean',
      'name': 'image_preview_sensitive',
      'default_value': True,
      'gui_type': None,
    },
    {
      'type': 'boolean',
      'name': 'image_preview_automatic_update',
      'default_value': True,
      'gui_type': None,
    },
    {
      'type': 'boolean',
      'name': 'image_preview_automatic_update_if_below_maximum_duration',
      'default_value': True,
      'gui_type': None,
    },
    {
      'type': 'images_and_gimp_items',
      'name': 'name_preview_layers_collapsed_state',
      'default_value': collections.defaultdict(set),
    },
    {
      'type': 'images_and_gimp_items',
      'name': 'image_preview_displayed_layers',
      'default_value': collections.defaultdict(set),
    },
    {
      'type': 'image_ids_and_directories',
      'name': 'image_ids_and_directories',
      'default_value': {},
      'tags': ['ignore_reset'],
      'setting_sources': ['session'],
    },
    {
      # Needs to be string type to avoid strict directory validation.
      'type': 'string',
      'name': 'current_directory',
      'default_value': gimp.user_directory(1),  # `Documents` directory
      'gui_type': None,
      'tags': ['ignore_load'],
      'setting_sources': ['session'],
    },
    size_gui_settings,
  ])
  
  return gui_settings
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      