Source code for schrodinger.ui.qt.icons
"""
Icons for use in Python scripts
To use:
import icons
icon = QtGui.QIcon(icons.PROJECT_ICON)
Copyright Schrodinger, LLC. All rights reserved.
"""
from schrodinger.Qt import QtGui
from schrodinger.Qt import QtWidgets
# The icons_rc import loads the icons into Qt
from schrodinger.ui.qt import icons_rc  # noqa # pylint: disable=unused-import
[docs]def get_standard_icon_pixmap(icon_index, size=24):
    """
    Get a pixmap of a standard Qt icon
    This method will not work if called before the QApplication is started - it
    will raise a RuntimeError
    :type icon_index: int
    :param icon_index: The `QtWidgets.QStyle` index of the desired icon
    :type size: int
    :param size: The pixmap will be a square of size pixels on each side.
    :rtype: `QtGui.QPixmap`
    :return: A pixmap of the requested icon
    :raise RuntimeError: If a QApplication has not been started
    """
    current_style = QtWidgets.QApplication.style()
    if current_style:
        pixmap = current_style.standardIcon(icon_index).pixmap(size, size)
        return pixmap
    else:
        raise RuntimeError('A QApplication has not been started so no icon '
                           'resources are available.') 
_VALID_PIXMAP = None
_INVALID_PIXMAP = None
_INTERMEDIATE_PIXMAP = None
[docs]def get_validation_pixmaps(size=24):
    """
    Get pixmaps used for validation icons - invalid, intermediate and valid
    See also `schrodinger.ui.qt.swidgets.SValidIndicator` for usage of these
    icons
    Note that this method (or any method that calls get_standard_icon_pixmap)
    will not work if called before the QApplication is started.
    :type size: int
    :param size: The pixmap will be a square of size pixels on each side.
    :rtype: `QtGui.QPixmap`, `QtGui.QPixmap`, `QtGui.QPixmap`
    :return: The valid, intermediate and invalid icons to use to display the
        current status of a validated widget
    """
    global _VALID_PIXMAP, _INTERMEDIATE_PIXMAP, _INVALID_PIXMAP
    # We can't create the icons on load because this module gets loaded before
    # a QApplication is valid. Therefore we create the icons the first time this
    # method is called and then cache them for later use.
    if not _VALID_PIXMAP:
        _VALID_PIXMAP = get_standard_icon_pixmap(
            QtWidgets.QStyle.SP_DialogApplyButton, size=size)
        _INTERMEDIATE_PIXMAP = get_standard_icon_pixmap(
            QtWidgets.QStyle.SP_MessageBoxWarning, size=size)
        _INVALID_PIXMAP = get_standard_icon_pixmap(
            QtWidgets.QStyle.SP_MessageBoxCritical, size=size)
    return _VALID_PIXMAP, _INTERMEDIATE_PIXMAP, _INVALID_PIXMAP 
[docs]def get_icon(myicon):
    # get_icon() is present for backwards compatibility.  New code should
    # instantiate a QIcon directly.
    return QtGui.QIcon(myicon) 
# Project icon for filedialogs
PROJECT_ICON = ":/schrodinger/ui/qt/icons_dir/project"
# Locked project icon for filedialogs
PROJECT_LOCKED_ICON = ":/schrodinger/ui/qt/icons_dir/project_locked"
# Checkbox icon for matplotlib toolbars
MATPLOTLIB_TOOLBAR_OPTIONS_ICON = ":/schrodinger/ui/qt/icons_dir/matplotlib_toolbar_options"
# Maestro icon for main window
MAESTRO_ICON = ":/schrodinger/ui/qt/icons_dir/maestro"
CLIPBOARD_ICON = ":/schrodinger/ui/qt/icons_dir/clipboard"
# Icons for edit delegates
PENCIL_ICON = ":/schrodinger/ui/qt/icons_dir/pencil_icon.ico"
COMBOBOX_ICON = ":/schrodinger/ui/qt/icons_dir/combobox_icon.ico"