forked from qt-creator/qt-creator
Doc: Add information about connections
Divide the subtopics into individual topics. Change-Id: If32ada04e9f305cf9a2e3a03072026eac92d005a Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
committed by
Thomas Hartmann
parent
aeb192a814
commit
69108b614a
@@ -90,6 +90,12 @@
|
|||||||
\li \l {Editing QML Files in Design Mode}
|
\li \l {Editing QML Files in Design Mode}
|
||||||
\li \l {Editing PathView Properties}
|
\li \l {Editing PathView Properties}
|
||||||
\li \l {Adding Connections}
|
\li \l {Adding Connections}
|
||||||
|
\list
|
||||||
|
\li \l{Connecting Objects to Signals}
|
||||||
|
\li \l{Specifying Dynamic Properties}
|
||||||
|
\li \l{Adding Bindings Between Properties}
|
||||||
|
\li \l{Managing C++ Backend Objects}
|
||||||
|
\endlist
|
||||||
\li \l {Creating Components}
|
\li \l {Creating Components}
|
||||||
\li \l {Creating Buttons}
|
\li \l {Creating Buttons}
|
||||||
\li \l {Creating Scalable Buttons and Borders}
|
\li \l {Creating Scalable Buttons and Borders}
|
||||||
|
|||||||
74
doc/src/qtquick/qtquick-connection-editor-backend.qdoc
Normal file
74
doc/src/qtquick/qtquick-connection-editor-backend.qdoc
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2018 The Qt Company Ltd.
|
||||||
|
** Contact: https://www.qt.io/licensing/
|
||||||
|
**
|
||||||
|
** This file is part of the Qt Creator documentation.
|
||||||
|
**
|
||||||
|
** Commercial License Usage
|
||||||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
** accordance with the commercial license agreement provided with the
|
||||||
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
|
** a written agreement between you and The Qt Company. For licensing terms
|
||||||
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||||
|
** information use the contact form at https://www.qt.io/contact-us.
|
||||||
|
**
|
||||||
|
** GNU Free Documentation License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU Free
|
||||||
|
** Documentation License version 1.3 as published by the Free Software
|
||||||
|
** Foundation and appearing in the file included in the packaging of
|
||||||
|
** this file. Please review the following information to ensure
|
||||||
|
** the GNU Free Documentation License version 1.3 requirements
|
||||||
|
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\contentspage {Qt Creator Manual}
|
||||||
|
\previouspage quick-property-bindings.html
|
||||||
|
\page quick-connections-backend.html
|
||||||
|
\nextpage quick-components.html
|
||||||
|
|
||||||
|
\title Managing C++ Backend Objects
|
||||||
|
|
||||||
|
Many applications provide QObject objects implemented in C++ that work as a
|
||||||
|
bridge between QML and C++. Such objects are typically registered with
|
||||||
|
\c qmlRegisterType or \c qmlRegisterSingletonType and then used by QML to
|
||||||
|
communicate with the C++ backend. Another example of such objects are the
|
||||||
|
state machines created by the \l {Using the Qt SCXML Compiler (qscxmlc)}
|
||||||
|
{Qt SCXML Compiler}.
|
||||||
|
|
||||||
|
Backend objects in a QML file are accessible if the QML file contains the
|
||||||
|
required imports. In addition, for a non-singleton QObject, a dynamic
|
||||||
|
property that contains the QObject must be specified.
|
||||||
|
|
||||||
|
A \e local QObject is instantiated in the current \e .qml file, as follows:
|
||||||
|
|
||||||
|
\badcode
|
||||||
|
property MyType myType: MyType {}.
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
Otherwise the property is just defined, as follows:
|
||||||
|
|
||||||
|
\badcode
|
||||||
|
property MyType myType
|
||||||
|
\endcode
|
||||||
|
|
||||||
|
To manage backend objects:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
|
||||||
|
\li In the \uicontrol {Connections} view, select the
|
||||||
|
\uicontrol Backends tab to view accessible backend objects.
|
||||||
|
\image qmldesigner-backends.png
|
||||||
|
\li Select the \inlineimage plus.png
|
||||||
|
(\uicontrol Add) button to add a backend object in the
|
||||||
|
\uicontrol {Add New C++ Backend} dialog.
|
||||||
|
\li In the \uicontrol Type field, select the type of the backend QObject
|
||||||
|
to add.
|
||||||
|
\li Select the \uicontrol {Define object locally} check box if the
|
||||||
|
QObject is not registered as a singleton.
|
||||||
|
\li Select \uicontrol OK to add the required import and to create the
|
||||||
|
property for a non-singleton object.
|
||||||
|
\endlist
|
||||||
|
*/
|
||||||
65
doc/src/qtquick/qtquick-connection-editor-bindings.qdoc
Normal file
65
doc/src/qtquick/qtquick-connection-editor-bindings.qdoc
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2018 The Qt Company Ltd.
|
||||||
|
** Contact: https://www.qt.io/licensing/
|
||||||
|
**
|
||||||
|
** This file is part of the Qt Creator documentation.
|
||||||
|
**
|
||||||
|
** Commercial License Usage
|
||||||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
** accordance with the commercial license agreement provided with the
|
||||||
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
|
** a written agreement between you and The Qt Company. For licensing terms
|
||||||
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||||
|
** information use the contact form at https://www.qt.io/contact-us.
|
||||||
|
**
|
||||||
|
** GNU Free Documentation License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU Free
|
||||||
|
** Documentation License version 1.3 as published by the Free Software
|
||||||
|
** Foundation and appearing in the file included in the packaging of
|
||||||
|
** this file. Please review the following information to ensure
|
||||||
|
** the GNU Free Documentation License version 1.3 requirements
|
||||||
|
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\contentspage {Qt Creator Manual}
|
||||||
|
\previouspage quick-dynamic-properties.html
|
||||||
|
\page quick-property-bindings.html
|
||||||
|
\nextpage quick-connections-backend.html
|
||||||
|
|
||||||
|
\title Adding Bindings Between Properties
|
||||||
|
|
||||||
|
To dynamically change the behavior of an object, you can create a \e binding
|
||||||
|
between the properties of two objects. To create a property binding, a
|
||||||
|
property is assigned a JavaScript expression that evaluates to the desired
|
||||||
|
value. At its simplest, a binding may be a reference to another property.
|
||||||
|
For example, the height of an object can be bound to the height of its
|
||||||
|
parent, so that when the parent height changes, the object height is
|
||||||
|
adjusted automatically.
|
||||||
|
|
||||||
|
For more information about the use of property bindings, see
|
||||||
|
\l{Property Binding}.
|
||||||
|
|
||||||
|
You can create bindings between objects in the \uicontrol Connections view.
|
||||||
|
|
||||||
|
\image qmldesigner-bindings.png
|
||||||
|
|
||||||
|
To bind a property of an object to the property of another object:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li In the \uicontrol {Connections} view, select the
|
||||||
|
\uicontrol {Bindings} tab.
|
||||||
|
\li Select the \inlineimage plus.png
|
||||||
|
(\uicontrol Add) button to add a binding.
|
||||||
|
\li Select \uicontrol Item to select the target object whose property
|
||||||
|
you want to change dynamically.
|
||||||
|
\li Select \uicontrol Property to select the property to bind to a
|
||||||
|
source property.
|
||||||
|
\li Select \uicontrol {Source Item} to select the object whose property
|
||||||
|
you want to use to determine the behavior of the target object.
|
||||||
|
\li Select \uicontrol {Source Property} to select the property to bind
|
||||||
|
the target property to.
|
||||||
|
\endlist
|
||||||
|
*/
|
||||||
58
doc/src/qtquick/qtquick-connection-editor-properties.qdoc
Normal file
58
doc/src/qtquick/qtquick-connection-editor-properties.qdoc
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2018 The Qt Company Ltd.
|
||||||
|
** Contact: https://www.qt.io/licensing/
|
||||||
|
**
|
||||||
|
** This file is part of the Qt Creator documentation.
|
||||||
|
**
|
||||||
|
** Commercial License Usage
|
||||||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
** accordance with the commercial license agreement provided with the
|
||||||
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
|
** a written agreement between you and The Qt Company. For licensing terms
|
||||||
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||||
|
** information use the contact form at https://www.qt.io/contact-us.
|
||||||
|
**
|
||||||
|
** GNU Free Documentation License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU Free
|
||||||
|
** Documentation License version 1.3 as published by the Free Software
|
||||||
|
** Foundation and appearing in the file included in the packaging of
|
||||||
|
** this file. Please review the following information to ensure
|
||||||
|
** the GNU Free Documentation License version 1.3 requirements
|
||||||
|
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\contentspage {Qt Creator Manual}
|
||||||
|
\previouspage qmldesigner-connections.html
|
||||||
|
\page quick-dynamic-properties.html
|
||||||
|
\nextpage quick-property-bindings.html
|
||||||
|
|
||||||
|
\title Specifying Dynamic Properties
|
||||||
|
|
||||||
|
You can bind object properties to dynamic expressions to define global
|
||||||
|
properties for an object that can be read by other objects. For example,
|
||||||
|
you can specify global properties for the root object that you can use in
|
||||||
|
the child objects.
|
||||||
|
|
||||||
|
You can specify dynamic properties for objects in the
|
||||||
|
\uicontrol Connections view.
|
||||||
|
|
||||||
|
\image qmldesigner-dynamicprops.png
|
||||||
|
|
||||||
|
To specify dynamic properties for an object:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li In the \uicontrol {Connections} view, select the
|
||||||
|
\uicontrol {Properties} tab.
|
||||||
|
\li Select \uicontrol Item to select the object to specify the property
|
||||||
|
for.
|
||||||
|
\li Select \uicontrol Property to give a name to the property.
|
||||||
|
\li Select \uicontrol {Property Type} to specify the type of the
|
||||||
|
property.
|
||||||
|
\li Select \uicontrol {Property Value} to specify the value of the
|
||||||
|
property.
|
||||||
|
\endlist
|
||||||
|
|
||||||
|
*/
|
||||||
71
doc/src/qtquick/qtquick-connection-editor-signals.qdoc
Normal file
71
doc/src/qtquick/qtquick-connection-editor-signals.qdoc
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2016 The Qt Company Ltd.
|
||||||
|
** Contact: https://www.qt.io/licensing/
|
||||||
|
**
|
||||||
|
** This file is part of the Qt Creator documentation.
|
||||||
|
**
|
||||||
|
** Commercial License Usage
|
||||||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
** accordance with the commercial license agreement provided with the
|
||||||
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
|
** a written agreement between you and The Qt Company. For licensing terms
|
||||||
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||||
|
** information use the contact form at https://www.qt.io/contact-us.
|
||||||
|
**
|
||||||
|
** GNU Free Documentation License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU Free
|
||||||
|
** Documentation License version 1.3 as published by the Free Software
|
||||||
|
** Foundation and appearing in the file included in the packaging of
|
||||||
|
** this file. Please review the following information to ensure
|
||||||
|
** the GNU Free Documentation License version 1.3 requirements
|
||||||
|
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\contentspage {Qt Creator Manual}
|
||||||
|
\previouspage qmldesigner-connections.html
|
||||||
|
\page quick-signals.html
|
||||||
|
\nextpage quick-dynamic-properties.html
|
||||||
|
|
||||||
|
\title Connecting Objects to Signals
|
||||||
|
|
||||||
|
To receive a notification when a particular signal is emitted for a
|
||||||
|
particular object, the object definition should declare a signal handler
|
||||||
|
named \e {on<Signal>} where \e {<Signal>} is the name of the signal, with
|
||||||
|
the first letter capitalized. The signal handler should contain the
|
||||||
|
JavaScript code to be executed when the signal handler is invoked.
|
||||||
|
|
||||||
|
QML types have predefined signals that are emitted when users interact with
|
||||||
|
the application. For example, the \l MouseArea type from the \l QtQuick
|
||||||
|
module has a \c clicked signal that is emitted whenever the mouse is
|
||||||
|
clicked within the area. Since the signal name is \c clicked, the signal
|
||||||
|
handler for receiving this signal is named \c onClicked.
|
||||||
|
|
||||||
|
For more information about signals and signal handlers, see
|
||||||
|
\l{Signal and Handler Event System}.
|
||||||
|
|
||||||
|
To access a signal outside of the object that emits it, you can use the
|
||||||
|
\l Connections type for connecting to signals of arbitrary objects. A
|
||||||
|
connections object can receive any signal from its specified target.
|
||||||
|
You can connect objects to signals that are available to them in the
|
||||||
|
\uicontrol Connections view.
|
||||||
|
|
||||||
|
\image qmldesigner-connections.png
|
||||||
|
|
||||||
|
To connect objects to signals:
|
||||||
|
|
||||||
|
\list 1
|
||||||
|
\li In the \uicontrol {Connections} view, select the
|
||||||
|
\uicontrol {Connections} tab.
|
||||||
|
\li Select the \inlineimage plus.png
|
||||||
|
(\uicontrol Add) button to add a connection.
|
||||||
|
\li Select \uicontrol Target to add the object to connect to a signal.
|
||||||
|
\li Select \uicontrol {Signal Handler} to select the signal that the
|
||||||
|
connection will listen to from a list of all signals available for
|
||||||
|
the object.
|
||||||
|
\li Select \uicontrol Actions to specify the action to perform when
|
||||||
|
the signal is emitted. You use JavaScript to specify the actions.
|
||||||
|
\endlist
|
||||||
|
*/
|
||||||
@@ -27,153 +27,45 @@
|
|||||||
\contentspage {Qt Creator Manual}
|
\contentspage {Qt Creator Manual}
|
||||||
\previouspage qmldesigner-pathview-editor.html
|
\previouspage qmldesigner-pathview-editor.html
|
||||||
\page qmldesigner-connections.html
|
\page qmldesigner-connections.html
|
||||||
\nextpage quick-components.html
|
\nextpage quick-signals.html
|
||||||
|
|
||||||
\title Adding Connections
|
\title Adding Connections
|
||||||
|
|
||||||
You can use the \uicontrol {Connections} view to:
|
The user interface components and the application need to communicate with
|
||||||
|
each other. For example, a button needs to know that the user has clicked
|
||||||
|
on it. The button may then change color to indicate its state or perform an
|
||||||
|
action. Further, the application needs to know whether the user is clicking
|
||||||
|
the button, because it may need to relay this clicking event to other
|
||||||
|
applications.
|
||||||
|
|
||||||
|
QML has a signal and handler mechanism, that enables components to respond
|
||||||
|
to application events. Events are represented by \e signals. When a signal
|
||||||
|
is emitted, the corresponding \e {signal handler} is invoked to respond to
|
||||||
|
the event by using scripts or other operations placed in the handler.
|
||||||
|
|
||||||
|
To access a signal outside of the object that emits it, you can use the
|
||||||
|
\l Connections type for connecting to signals of arbitrary objects. A
|
||||||
|
Connections object can receive any signal from its specified target.
|
||||||
|
|
||||||
|
A component's property can be assigned a static value which stays constant
|
||||||
|
until it is explicitly assigned a new value. However, to make the fullest
|
||||||
|
use of QML and its built-in support for dynamic object behaviors, most QML
|
||||||
|
types use property bindings. This means that you can specify relationships
|
||||||
|
between different object properties so that when a property's sependencies
|
||||||
|
change in value, the property's value is automatically updated accordingly.
|
||||||
|
|
||||||
|
Behind the scenes, the QML engine monitors the property's dependencies (that
|
||||||
|
is, the variables in the binding expression). When a change is detected, the
|
||||||
|
QML engine re-evaluates the binding expression and applies the new result to
|
||||||
|
the property.
|
||||||
|
|
||||||
|
The following sections describe how to use the \uicontrol {Connections} view
|
||||||
|
to perform the following tasks:
|
||||||
|
|
||||||
\list
|
\list
|
||||||
|
\li \l{Connecting Objects to Signals}
|
||||||
\li Connect objects to signals.
|
\li \l{Specifying Dynamic Properties}
|
||||||
|
\li \l{Adding Bindings Between Properties}
|
||||||
\li Specify dynamic properties for objects.
|
\li \l{Managing C++ Backend Objects}
|
||||||
|
|
||||||
\li Create bindings between the properties of two objects.
|
|
||||||
|
|
||||||
\li Manage backend QObjects.
|
|
||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
For examples of adding connections, see
|
|
||||||
\l{Creating Scalable Buttons and Borders}.
|
|
||||||
|
|
||||||
\section1 Connecting Objects to Signals
|
|
||||||
|
|
||||||
To connect objects to signals in QML, create \l{Connections} objects.
|
|
||||||
|
|
||||||
\image qmldesigner-connections.png
|
|
||||||
|
|
||||||
To create the connections:
|
|
||||||
|
|
||||||
\list 1
|
|
||||||
|
|
||||||
\li Select the \uicontrol {Connections} tab.
|
|
||||||
|
|
||||||
\li Select the \inlineimage plus.png
|
|
||||||
(\uicontrol Add) button to add a connection.
|
|
||||||
|
|
||||||
\li Select \uicontrol Target to add the object to connect to a signal.
|
|
||||||
|
|
||||||
\li Select \uicontrol {Signal Handler} to select the signal that the connection
|
|
||||||
will listen to from a list of all signals available for the object.
|
|
||||||
|
|
||||||
\li Select \uicontrol Actions to specify the action to perform when
|
|
||||||
the signal is emitted. You use JavaScript to specify the actions.
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
\section1 Specifying Dynamic Properties
|
|
||||||
|
|
||||||
You can bind \l{Properties} to dynamic expressions to define global properties for an
|
|
||||||
object that can be read by other objects. For example, you can specify
|
|
||||||
global properties for the root object that you can use in the child objects.
|
|
||||||
|
|
||||||
\image qmldesigner-dynamicprops.png
|
|
||||||
|
|
||||||
To specify dynamic properties for an object:
|
|
||||||
|
|
||||||
\list 1
|
|
||||||
|
|
||||||
\li Select the \uicontrol {Properties} tab.
|
|
||||||
|
|
||||||
\li Select \uicontrol Item to select the object to specify the property for.
|
|
||||||
|
|
||||||
\li Select \uicontrol Property to give a name to the property.
|
|
||||||
|
|
||||||
\li Select \uicontrol {Property Type} to specify the type of the property.
|
|
||||||
|
|
||||||
\li Select \uicontrol {Property Value} to specify the value of the property.
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
\section1 Adding Bindings Between Properties
|
|
||||||
|
|
||||||
To dynamically change the behavior of an object, you can create a
|
|
||||||
\l{Property Binding} between the properties of two objects.
|
|
||||||
|
|
||||||
\image qmldesigner-bindings.png
|
|
||||||
|
|
||||||
To bind a property of an object to the property of another object:
|
|
||||||
|
|
||||||
\list 1
|
|
||||||
|
|
||||||
\li Select the \uicontrol {Bindings} tab.
|
|
||||||
|
|
||||||
\li Select the \inlineimage plus.png
|
|
||||||
(\uicontrol Add) button to add a binding.
|
|
||||||
|
|
||||||
\li Select \uicontrol Item to select the target object whose property you want
|
|
||||||
to change dynamically.
|
|
||||||
|
|
||||||
\li Select \uicontrol Property to select the property to bind to a source
|
|
||||||
property.
|
|
||||||
|
|
||||||
\li Select \uicontrol {Source Item} to select the object whose property you
|
|
||||||
want to use to determine the behavior of the target object.
|
|
||||||
|
|
||||||
\li Select \uicontrol {Source Property} to select the property to bind the
|
|
||||||
target property to.
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
\section1 Managing C++ Backend Objects
|
|
||||||
|
|
||||||
Many applications provide QObject objects implemented in C++ that work as a
|
|
||||||
bridge between QML and C++. Such objects are typically registered with
|
|
||||||
qmlRegisterType or qmlRegisterSingletonType and then used by QML to
|
|
||||||
communicate with the C++ backend. Another example of such objects are the
|
|
||||||
state machines created by the \l {Using the Qt SCXML Compiler (qscxmlc)}
|
|
||||||
{Qt SCXML Compiler}.
|
|
||||||
|
|
||||||
Backend objects in a QML file are accessible if the QML file contains the
|
|
||||||
required imports. In addition, for a non-singleton QObject, a dynamic
|
|
||||||
property that contains the QObject must be specified.
|
|
||||||
|
|
||||||
A \e local QObject is instantiated in the current \e .qml file, as follows:
|
|
||||||
|
|
||||||
\badcode
|
|
||||||
property MyType myType: MyType {}.
|
|
||||||
\endcode
|
|
||||||
|
|
||||||
Otherwise the property is just defined, as follows:
|
|
||||||
|
|
||||||
\badcode
|
|
||||||
property MyType myType
|
|
||||||
\endcode
|
|
||||||
|
|
||||||
To manage backend objects:
|
|
||||||
|
|
||||||
\list 1
|
|
||||||
|
|
||||||
\li Select the \uicontrol Backends tab to view accessible backend
|
|
||||||
objects.
|
|
||||||
|
|
||||||
\image qmldesigner-backends.png
|
|
||||||
|
|
||||||
\li Select the \inlineimage plus.png
|
|
||||||
(\uicontrol Add) button to add a backend object in the
|
|
||||||
\uicontrol {Add New C++ Backend} dialog.
|
|
||||||
|
|
||||||
\li In the \uicontrol Type field, select the type of the backend QObject
|
|
||||||
to add.
|
|
||||||
|
|
||||||
\li Select the \uicontrol {Define object locally} check box if the
|
|
||||||
QObject is not registered as a singleton.
|
|
||||||
|
|
||||||
\li Select \uicontrol OK to add the required import and to create the
|
|
||||||
property for a non-singleton object.
|
|
||||||
|
|
||||||
\endlist
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user