# VLogin

Esta clase representa la conexión de Velneo vClient y dispone de las funciones necesarias para realizar la conexión.

### El objeto theLogin <a href="#h.lt2xdh7xk96h" id="h.lt2xdh7xk96h"></a>

El script QML está conectado al objeto theLogin que representa la ventana de conexión en curso.

#### El objeto [theApp](https://doc.velneo.com/32/velneo-vdevelop/scripts/lenguajes/javascript/vapp#theapp)

En el login está disponible este objeto, a excepción de las funciones que son de ejecución (funciones de variables globales, de impresoras, etc.).

## Indice de funciones

### **Funciones de información**

string [applicationDirPath](#string-applicationdirpath)()

string [user](#user)()

string [server](#server)()

model [servers](#servers)()

### **Funciones de conexión**

void [setServer](#setserver)( String szVRL )

void [setUser](#setuser)( String szUser )

void [setPassword](#setpassword)( String szPasswd )

void [accept](#accept)( void )

void [reject](#reject)( void )

### **Funciones de error**

void [errorText](#errortext)( void )

string [sslErrors](#string-sslerrors)()

### **Funciones de marco**

void [setWindowTitle](#setwindowtitle)( String szTitle )

void [setWindowIcon](#setwindowicon)( String szPath )

### **Funciones de configuración**

void [setLocale](#setlocale)( String szLanguaje )

### **Funciones de diálogos**

void [showDialogSslException](#void-showdialogsslexception)()

## Documentación de funciones

### Funciones de información

#### string applicationDirPath()

Devuelve la senda de Velneo vClient.

#### string user() <a href="#user" id="user"></a>

Devuelve el nombre del último usuario usado para conectarse. Esta información es la misma que se muestra en la ventana de conexión estándar y se devuelve por cada usuario del sistema operativo.

#### string server() <a href="#server" id="server"></a>

Devuelve la última senda VRL usada para conectarse. Esta información es la misma que se muestra en la ventana de conexión estándar y se devuelve por cada usuario del sistema operativo.

#### model servers() <a href="#servers" id="servers"></a>

Devuelve un modelo con el histórico de sendas VRL usadas para conectarse. Esta información es la misma que se muestra en la ventana de conexión estándar y se devuelve por cada usuario del sistema operativo.

Por cada item del modelo dispondremos de la propiedad **modelData** que contiene la VRL correspondiente y que podemos usar para presentar la información al usuario.

### Funciones de conexión

#### void setServer( String szVRL ) <a href="#setserver" id="setserver"></a>

Establece el valor de VRL, es decir, el dominio y puerto del servidor al que nos conectaremos.

#### void setUser( String szUser ) <a href="#setuser" id="setuser"></a>

Establece el usuario del servidor al que nos conectaremos.

#### void setPassword( String szPasswd ) <a href="#setpassword" id="setpassword"></a>

Establece la contraseña del usuario del servidor al que nos conectaremos.

#### void accept( void ) <a href="#accept" id="accept"></a>

Realiza la conexión una vez establecidos los parámetros de conexión VRL, usuario y contraseña.

#### void reject( void ) <a href="#reject" id="reject"></a>

Cancela la ventana de conexión y por tanto el proceso de conexión.

### Funciones de error

#### void errorText( void ) <a href="#errortext" id="errortext"></a>

Devuelve el mensaje de error en el caso de que falle la conexión, la contraseña sea errónea, etc.

#### string sslErrors()

Devuelve los errores encontrados en la conexión VATPS relacionados con la conexión a través de protocolo seguro TLS/SSL, el certificado, etc.

### Funciones de marco

#### void setWindowTitle( String szTitle ) <a href="#setwindowtitle" id="setwindowtitle"></a>

Establece el título que aparece en el marco. Para que se muestre el marco, hemos de establecer el título o una imagen como icono.

#### void setWindowIcon( String szPath ) <a href="#setwindowicon" id="setwindowicon"></a>

Establece la senda en disco de la imagen que aparecerá como icono en el marco. Para que se muestre el marco, hemos de establecer el título o una imagen como icono. Se requiere que el icono esté situado en el directorio de instalación de Velneo vClient.

Al estar situado en el mismo directorio que Velneo vClient, no es necesario indicar ninguna senda, sólo se indicará el nombre y extensión del archivo.

### Funciones de configuración

#### void setLocale( String szLanguage ) <a href="#setlocale" id="setlocale"></a>

Establece el idioma en el que se inicializará la aplicación. El parámetro del idioma se especificará según la norma ISO-639-1 ([http://es.wikipedia.org/wiki/ISO\_639-1](https://www.google.com/url?q=http://es.wikipedia.org/wiki/ISO_639-1\&sa=D\&ust=1492443676310000\&usg=AFQjCNESJKx-wL6-AHj4Hw4BlM_pr5UEiA)). Ejemplo, para cargar el idioma español haríamos:

`theLogin.setLocale( “es”);`

### Funciones de diálogos

#### void showDialogSslException()

Cuando nos conectamos con un servidor vía [vatps](https://doc.velneo.com/32/velneo-vserver/funcionalidades/protocolo-vatps) se produce un error de SSL, esta función nos muestra el diálogo con el error para que el cliente pueda guardar la excepción.

## Ejemplos

### Creación de un login QML

```qml
///////////////////////////////////////////////////////////////////////////////////////////////////
//
// Login Sin, Login.qml
//
// Ejemplo de Qml para login en Velneo.
//
// En este ejemplo se realiza la conexión de forma directa al servidor sin solicitar información al usuario.
// Los datos de acceso están definidos de forma predeterminada y no son modificables
// por el usuario (vatp://localhost, usuario velneo sin contraseña).
// Se accede de forma directa al listado de instancias que presenta el servidor.
//

import QtQuick 2.6

Rectangle
{    
    id: loginsin
    width: 480;
    height: 120;

    Component.onCompleted:
    {
        // Indicamos el título y el icono de la ventana
        theLogin.setWindowIcon("icono.png");
        theLogin.setWindowTitle("Acceso al servidor sin login previo");  
    }    

    Item
    {
        x: 10;
        y: 5;

        Image
        {        

            width: 60
            height: 30
            asynchronous: true;
            source: "logo.png"

            fillMode: Image.PreserveAspectFit;
            smooth: true;
        }
    }    

    Text
    {
        id:textMsg
        anchors.horizontalCenter: parent.horizontalCenter;
        anchors.verticalCenter: parent.verticalCenter;

        text: "Conectando con el servidor en localhost...";

        wrapMode: Text.WordWrap;
    }

    Timer {
        interval: 2000; running: true; repeat: false
        onTriggered:
        {
            // Nos conectamos                
            theLogin.setServer( "vatp://localhost" );
            theLogin.setUser( "velneo" );
            theLogin.setPassword( "" );
            theLogin.accept();

            textMsg.text = theLogin.errorText() + " " + theLogin.server();
        }        
    }            
}
```

### Mostrara diálogo de excepciones SSL si se produce algún error de SSL en la conexión

```qml
if ( theLogin.errorText() )
{
    if (theLogin.sslErrors().length>0)
    {
        theLogin.showDialogSslException();
    }
}
```
