Source code for pydm.utilities.connection

import logging

from qtpy.QtWidgets import QWidget

logger = logging.getLogger(__name__)


def _change_connection_status(widget, status):
    """
    Connect or disconnect the inner channels of widgets on the
    given widget based on the status parameter.

    Parameters
    ----------
    widget : QWidget
        The widget which will be iterated over for channel connection.

    status : bool
        If True, will call connect on the channels otherwise it will call
        disconnect.
    """
    widgets = [widget]
    widgets.extend(widget.findChildren(QWidget))
    for child_widget in widgets:
        try:
            if hasattr(child_widget, "channels"):
                if child_widget.channels() is None:
                    continue
                for channel in child_widget.channels():
                    if channel is None:
                        continue
                    if status:
                        channel.connect()
                    else:
                        channel.disconnect()
        except NameError:
            continue


[docs]def establish_widget_connections(widget): """ Connect the inner channels of widgets on the given widget. Parameters ---------- widget : QWidget The widget which will be iterated over for channel connection. """ _change_connection_status(widget, True)
[docs]def close_widget_connections(widget): """ Disconnect the inner channels of widgets on the given widget. Parameters ---------- widget : QWidget The widget which will be iterated over for channel disconnection. """ _change_connection_status(widget, False)