Página 2 de 4
					
				Re: Cuadro de configuracion personalizado
				Publicado: 05 Dic 2015, 16:59
				por SeiTaN
				super_berny escribió:SeiTaN escribió:¿No es más sencillo crear una propiedad para la ventana? "is_confirmed" boolean que se cambia cuando se ejecuta "__save_values()", y que se acceda por un metodo publico, ¿"is_confirmed()"? Así no habría que estar creando un control como flag.
 
 
Pues si, lo apunto para la proxima revision
 
He tardado un minuto 
Código: Seleccionar todo
    def __init__( self, list_controls , dict_values, caption=""):
        self.dict_values= dict_values
        self.modificado = False
        self.confirmado = False
Añadida la linea en __save_values()
Código: Seleccionar todo
    def __save_values(self):
        self.confirmado = True
        for v in self.controles.values():
 
y para obtener el valor....
Código: Seleccionar todo
    ventana = guitools.SettingWindow(list_controls, dict_values, "Filtrado de enlaces por Serie")
    ventana.doModal()
    confirmed = ventana.isConfirmed()
    if confirmed:
        logger.info("he pulsado en ok")
 
			 
			
					
				Re: Cuadro de configuracion personalizado
				Publicado: 05 Dic 2015, 17:09
				por super_berny
				SeiTaN escribió:He tardado un minuto 
Como eres...
Yo dos minutos en añadir la documentacion y subir la version modificada al primer post  

 
			 
			
					
				Re: Cuadro de configuracion personalizado
				Publicado: 05 Dic 2015, 18:55
				por SeiTaN
				A ver si pasamos del xml a json, porque de expresiones regulares estoy cortito xDD
Mientras sigo indagando a ver si algun alma caritativa me dice como va.
Código: Seleccionar todo
		<language>
				<es>Español</es>
				<la>Latino</la>
				<vos>VOS</vos>
				<vo>VO</vo>
				<japovose>VOSE</japovose>
				<jp-sub>VOSE</jp-sub>
		</language>
como puedo obtener un diccionario con <element>value</element> como key y value, es decir, me terminaría asi...
Código: Seleccionar todo
IDIOMAS = {'es': 'Español', 'la': 'Latino', 'vos': 'VOS', 'vo': 'VO', 'japovose': 'VOSE', 'jp-sub': 'VOSE'}
 
			 
			
					
				Re: Cuadro de configuracion personalizado
				Publicado: 06 Dic 2015, 01:23
				por robalo
				@SeiTaN te paso el procedimiento que uso para pasar los .xml de los canales a .json que aunque no es para el mismo caso te ayudará a ponerte en marcha.
Código: Seleccionar todo
def xml_to_json():
    _json = """{
    "id" : "%s",
    "name" : "%s",
    "language" : "%s",
    "update_url" : "%s",
    "active" : %s,
    "include_in_global_search" : %s,
    "version" : %s,
    "adult" : %s,
    "date" : "%s",
    "changes" : "%s",
    "fanart" : "%s",
    "thumbnail" : "%s",
    "category" : %s
}
"""
    ruta = os.path.join( config.get_runtime_path() , "channels" )
    files = os.listdir(ruta)
    for file in files:
        if file.endswith('.xml'):
            x = open( os.path.join(ruta,file), "r" )
            j = open( os.path.join(ruta,file.replace('.xml', '.json')), "w" )
            _xml = x.read()
            x.close()
            id = scrapertools.find_single_match(_xml, '<id>([^<]+)<')
            name = scrapertools.find_single_match(_xml, '<name>([^<]+)<')
            language = scrapertools.find_single_match(_xml, '<language>([^<]+)<')
            update_url = scrapertools.find_single_match(_xml, '<update_url>([^<]+)<')
            active = scrapertools.find_single_match(_xml, '<active>([^<]+)<')
            include_in_global_search = scrapertools.find_single_match(_xml, '<include_in_global_search>([^<]+)<')
            version = scrapertools.find_single_match(_xml, '<version>([^<]+)<')
            adult = scrapertools.find_single_match(_xml, '<adult>([^<]+)<')
            date = scrapertools.find_single_match(_xml, '<date>([^<]+)<')
            changes = scrapertools.find_single_match(_xml, '<changes>([^<]+)<')
            fanart = scrapertools.find_single_match(_xml, '<fanart>([^<]+)<')
            thumbnail = scrapertools.find_single_match(_xml, '<thumbnail>([^<]+)<')
            _json2 = _json % (id, name, language, update_url, active, include_in_global_search, version, adult, date, changes, fanart, thumbnail, "%s")
            if '<categories>' in _xml:
                categorias = re.compile('<category>(.*?)</category>',re.DOTALL).findall(_xml)
                categoria = "[\n        "
                for c in categorias:
                    categoria+= '"' +  c + '",\n        '
                categoria = categoria[:-10] + "\n    ]"
            _json3 = _json2 % categoria
            j.write(_json3)
            j.close()
 
			 
			
					
				Re: Cuadro de configuracion personalizado
				Publicado: 06 Dic 2015, 12:49
				por SeiTaN
				Hola robalo, pero lamento que no me vale, ya que la estructura es distinta de lo que yo necesito.
Dejo de escribir en este hilo para no desviarle el hilo a super_berny
Gracias.
			 
			
					
				Re: Cuadro de configuracion personalizado
				Publicado: 06 Dic 2015, 21:35
				por robalo
				
			 
			
					
				Re: Cuadro de configuracion personalizado
				Publicado: 07 Dic 2015, 18:43
				por jesus
				En otras ocasiones yo he resuelto este problema sin cuadros de diálogo, usando items. Es una forma de que al hacer una app multiplataforma no te vuelvas loco implementando mil componentes cada vez que te peleas con una nueva plataforma.
Añades un item "Configuración del canal", que tenga como hijos "Usuario:", "Contraseña:", "Nº de resultados:", etc...
Y cuando eliges uno de esos items te sale el diálogo estándar según el tipo (texto, lista, etc.).
			 
			
					
				Re: Cuadro de configuracion personalizado
				Publicado: 07 Dic 2015, 18:50
				por SeiTaN
				Jesús ya que te tengo a mano y sino te importa, en Plex u otras plataformas,  ¿¿se puede usar algo parecido al contextMenu??
Gracias.
			 
			
					
				Re: Cuadro de configuracion personalizado
				Publicado: 07 Dic 2015, 19:00
				por jesus
				No 
De hecho la configuración del plugin es algo que va en el cliente, según desde dónde la ejecutes probablemente ni funcione. Es un problema que tienen los usuarios de Plex.
La solución de usar items valdría para Plex, aunque no podrías hacer listas de selección. Sólo pedir textos planos.
 
			 
			
					
				Re: Cuadro de configuracion personalizado
				Publicado: 08 Dic 2015, 11:53
				por super_berny
				jesus escribió:En otras ocasiones yo he resuelto este problema sin cuadros de diálogo, usando items.
Si, en mi primera version (¿recuerdas?) tb utilice los items para eso, pero era mas limitado y  un problema sobretodo por el boton atras (action_back si no recuerdo mal). Me parece q nemo y robalo han estado trabajando en eso, pero no he tenido ocasion de mirarlo aun. 
jesus escribió:Y cuando eliges uno de esos items te sale el diálogo estándar según el tipo (texto, lista, etc.).
Ilustranos Jesus, ¿como sacas un dialogo estandar del tipo lista o bool?
jesus escribió:...Es una forma de que al hacer una app multiplataforma no te vuelvas loco implementando mil componentes cada vez que te peleas con una nueva plataforma.
Pero cuando hablas de sacar el dialogo estandar tb te estas refiriendo solo a xbmc ¿no? Si quieres esos cuadros en otras plataformas no te queda otra q implementarlos, que es lo q yo propongo: un guitools por cada plataforma. En plex ni idea, pero en html por ejemplo no se me antoja dificil. ¿q otras plataformas deberian tenerlo?