schrodinger.application.livedesign.panel_components module¶
- class schrodinger.application.livedesign.panel_components.LRSort(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
enum.Enum
- Owner = 1¶
- Folder = 2¶
- class schrodinger.application.livedesign.panel_components.StatusBarDialog¶
Bases:
PyQt6.QtWidgets.QDialog
Helper class to setup the status bar for the panel. This class acts as the parent to avoid thread issues.
- class schrodinger.application.livedesign.panel_components.LRSortCombo(parent=None)¶
Bases:
PyQt6.QtWidgets.QComboBox
Combo box used to specify the method used to sort and organize live reports. Emits a custom signal with an enum designating the sort method.
- Variables
LRSortMethodChanged (QtCore.pyqtSignal) – signal indicating that a new live report sort method has been chosen; emitted with an
LRSort
value
- LRSortMethodChanged¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- __init__(parent=None)¶
- onCurrentIndexChanged()¶
When the user makes a selection in this combo box, emit the enum value associated with their selection (rather than the less-useful index of the selection).
- class schrodinger.application.livedesign.panel_components.BaseSearchTreeWidgetHelper¶
Bases:
object
Base class for a widget subclass to hold a search box QLineEdit and a QTreeView below. This is a helper class only and should be sub-classed. This class should NOT be used directly.
- setUpWidgets(model, view)¶
Sets up the search box, model, view, and search proxy.
- Parameters
model (
QtGui.QStandardItemModel
) – model for the treeview (
QtWidgets.QTreeView
) – view for the model
- setUpLayout()¶
Sets up the layout, but needs to be added to the widget by the subclass.
- searchTextChanged(search_text)¶
Set the search term to the sort filter proxy model to show only the matching tree items. Any filtered in items will be expanded to show all children. Otherwise, all the items will be collapsed.
- Parameters
search_text (str) – search terms to apply to proxy model.
- resetWidgets()¶
- class schrodinger.application.livedesign.panel_components.CascadingCheckboxItem(*args, **kwargs)¶
Bases:
PyQt6.QtGui.QStandardItem
A subclass of QStandardItem that implements checkboxes that automatically respond to changes in child/parent check state. Checking or unchecking an item will cause all of its children to become checked/unchecked accordingly and will update its parent to be either checked, unchecked, or partially checked, depending on the state of all of the other children.
- __init__(*args, **kwargs)¶
- getChildItems(column=0)¶
Returns a list of all the child items. A column may be optionally specified if desired, otherwise the first column’s item will be returned from each descendent row.
- Parameters
column (int) – the column of the item to be returned from each row
- updateCheckState()¶
Updates the item’s check state depending on the check state of all the child items. If all the child items are checked or unchecked, this item will be checked/unchecked accordingly. If only some of the children are checked, this item will be partially checked.
- updateEnabled()¶
If this item has children and they are all disabled, disable this item. If any such children are enabled, enable this item.
- setData(value, role)¶
Overrides setData() to trigger an update of the parent item’s check state and enabled state, and propagate check state to all the child items (i.e. checking this item will cause all its child items to become checked).
See parent class for documentation on parameters.
- setEnabled(self, enabled: bool)¶
- class schrodinger.application.livedesign.panel_components.LDDataCheckboxItem(ld_data)¶
Bases:
schrodinger.application.livedesign.panel_components.CascadingCheckboxItem
A
CascadingCheckboxItem
that stores and knows how to display adata_classes.LDData
instance.- __init__(ld_data)¶
- Parameters
ld_data (data_classes.LDData) – LD data instance
- property ld_data¶
- class schrodinger.application.livedesign.panel_components.LDDataSelectionModel(*args, **kwargs)¶
Bases:
PyQt6.QtGui.QStandardItemModel
A tree structured model for storing LD data by family name.
- Variables
item_dict (dict(data_classes.LDData, QtGui.QStandardItem)) – a dictionary mapping LD data to items from this model
- __init__(*args, **kwargs)¶
- clear(self)¶
- loadData(ld_data_list)¶
Replaces the data in the model with the specified list of export data.
- Parameters
ld_data_list (list(data_classes.LDData)) – a list of LD data to export
- getCheckedData()¶
Recursively traverses the entire tree and returns LD data instances checked by the user.
- Returns
LD data specified for export by the user
- Return type
list(data_classes.LDData)
- setItemsChecked(ld_data_list, checked)¶
Set the checkstate of the items associated with the supplied data, if they are enabled.
- Parameters
ld_data_list (List[data_classes.LDData]) – a list of
LDData
instances corresponding to items in the modelchecked (bool) – whether to check or uncheck the specified item
- uncheckAll()¶
Un-check all items in tree.
- setItemEnabled(ld_data, enable)¶
Set an item to be enabled or disabled.
- Parameters
ld_data (data_classes.LDData) – data object associated with the item to be enabled or disabled
enable (bool) – whether to enable (
True
) or disable (False
) the specified item
- getItemTooltip(ld_data)¶
Return the tooltip of the item associated with the supplied LD data object.
- Parameters
ld_data (data_classes.LDData) – a LiveDesign data object
- Returns
tooltip text, if the specified item can be found; otherwise,
None
- Return type
str or NoneType
- setItemTooltip(ld_data, tooltip)¶
Apply a tooltip to an item.
- Parameters
ld_data (data_classes.LDData) – data object associated with the item to set the tooltip on
tooltip (str) – tooltip text
- class schrodinger.application.livedesign.panel_components.LDDataSelectionTreeView¶
Bases:
PyQt6.QtWidgets.QTreeView
A class for displaying LD data selection.
- __init__()¶
- class schrodinger.application.livedesign.panel_components.LDDataTreePopUp(*args, **kwargs)¶
Bases:
schrodinger.models.mappers.TargetMixin
,schrodinger.ui.qt.widgetmixins.basicmixins.InitMixin
,schrodinger.application.livedesign.panel_components.BaseSearchTreeWidgetHelper
,schrodinger.ui.qt.pop_up_widgets.PopUp
A popup with initialization mixin to group together a search bar LineEdit and the LD Data Selection QTreeView. Popup can be used as a target to map to a param for getting/setting checked LD data.
- initSetUp()¶
Sets up the model, view, proxy and search box.
See BaseSearchTreeWidgetHelper.setUpWidgets for more info.
- initLayOut()¶
Create a vertical layout for the widget (
widget_layout
) and populate it with two vertical sub-layouts:main_layout
andbottom_layout
.If the user has specified the
ui
data member, insert the resultantui_widget
intomain_layout
.If the widget already has a layout defined, this method will produce a warning (but not a traceback).
main_layout
andbottom_layout
will be inserted into the existing widget layout, which will not be the same aswidget_layout
. It is therefore recommended that this mixin is used only with widgets that do not already have a layout.Suggested subclass use: create, initialize, and populate layouts.
- setup()¶
Subclass-specific initialization. Subclasses can re-implement this function with custom set up code.
- targetGetValue()¶
- targetSetValue(value)¶
- loadData(ld_data_list)¶
See
LDDataSelectionModel.loadData()
for more information.
- getCheckedData()¶
See
LDDataSelectionModel.getCheckedData()
for more information.
- getCheckedDataCount()¶
- Return type
int
- Returns
the count of checked LD data properties.
- setCheckedData(ld_data_list)¶
Check the items corresponding to the supplied LD data (if found), and uncheck all other items.
- Parameters
ld_data_list (list(data_classes.LDData)) – a list of LD data instances that should be checked in the tree
- setItemChecked(ld_data, checked)¶
Convenience method to check or uncheck a single item.
- Parameters
ld_data (data_classes.LDData) – a LD data object corresponding to an item in the model
checked (bool) – whether to check or uncheck the specified item
- setItemsChecked(ld_data_list, checked)¶
Set the checkstate of the items associated with the supplied data, if they are enabled.
- Parameters
ld_data_list (List[data_classes.LDData]) – a list of
LDData
instances corresponding to items in the modelchecked (bool) – whether to check or uncheck the specified items
- isItemChecked(ld_data)¶
Return whether the item associated with the specified LiveDesign data object is checked.
- Parameters
ld_data (data_classes.LDData) – a
LDData
instance corresponding to an item in the model- Returns
whether the specified item is checked, if possible; if the item cannot be found, return
None
- Return type
bool or NoneType
- isItemEnabled(ld_data)¶
Return whether the specified item is enabled.
- Parameters
ld_data (data_classes.LDData) – a
LDData
instance corresponding to an item in the model- Returns
if possible, whether the specified item is enabled; if no such item exists, return
None
- Return type
bool or NoneType
- uncheckAll()¶
See
LDDataSelectionModel.uncheckAll()
for more information.
- initSetDefaults()¶
Set widget to its default state. If the widget uses a model/mapper, it’s preferable to reset the widget state by resetting the model.
- setItemsEnabled(ld_data_list, enabled)¶
Enable or disable the items associated with the specified data list.
- Parameters
ld_data_list (list(data_classes.LDData)) – a list of LD Data objects that correspond to items that should be enabled or disabled
enabled (bool) – enable (
True
) or disable (False
) specified items
- getItemTooltip(ld_data)¶
Get the tooltip for the item associated with the specified LD data.
- Parameters
ld_data (data_classes.LDData) – a LD data object
- Returns
the tooltip text of the item associated with the supplied LD data object, if possible. If there is no item associated with the LD data object, return
None
- Return type
str or NoneType
- setItemsTooltip(ld_data_list, tooltip)¶
Set tooltip for items associated with the specified data list.
- Parameters
ld_data_list (list(data_classes.LDData)) – a list of LD Data objects that correspond to items to set the tooltip on
tooltip (str) – the tooltip text
- expandFamily(family_name)¶
Expand the item associated with the supplied family name if possible.
- Parameters
family_name (str) – the family name of the item to expand
- class schrodinger.application.livedesign.panel_components.LDDataTreePopUpButton(parent)¶
Bases:
schrodinger.ui.qt.pop_up_widgets.LinkButtonWithPopUp
Link button with
LDDataTreePopUp
class pop up. Button text shows the count of the selected items in the pop up as “<count> selected”.Usage:
btn = LDDataTreePopUpButton(self) pop_up = btn.getLDDataTreePopUp() pop_up.loadData(ld_data_list)
- __init__(parent)¶
- Parameters
parent (
PyQt5.QtWidgets.QWidget
) – The Qt parent widget
- getLDDataTreePopUp() Optional[schrodinger.application.livedesign.panel_components.LDDataTreePopUp] ¶
- setPopUp(pop_up)¶
Set the pop up widget to the specified pop up widget instance.
- class schrodinger.application.livedesign.panel_components.ColumnSelectionModel(*args, **kwargs)¶
Bases:
PyQt6.QtGui.QStandardItemModel
A tree structured model for storing data by family.
- __init__(*args, **kwargs)¶
- loadData(columns, unavailable_ids=None)¶
Populates the model using a list of ldclient.models.Column objects. This clears out all previous data in the model.
- Parameters
columns (list of ldclient.models.Column) – the list of columns to add
unavailable_ids (
list
ofstr
, orNone
) – list of column IDs that should always be unavailable for import
- getCheckedColumns(all_checked: bool = False)¶
Traverse all the columns and return all the checked properties.
- Parameters
all_checked – if the all columns checked property is enabled
- Returns
the checked properties
- Return type
list of structure.PropertyName
- getVisibleColCount() int ¶
Calculate the total amount of columns that are visible.
- getHiddenColCount()¶
Calculate the total amount of unsupported columns.
- class schrodinger.application.livedesign.panel_components.ColumnSelectionProxyModel(parent=None)¶
Bases:
PyQt6.QtCore.QSortFilterProxyModel
A proxy model to filter an assay model based on the availability
- __init__(parent=None)¶
- filterAcceptsRow(source_row, source_parent)¶
See Qt Documentation for more information on parameters.
This filter accepts a particular row if any of the following are true: 1. The proxy model is currently set to show unavailable items 2. The item is marked as available
Note that the conditions specified above are searched in that order.
- class schrodinger.application.livedesign.panel_components.StructSelectionModel¶
Bases:
PyQt6.QtGui.QStandardItemModel
A selection model for storing structure titles to be selected.
- loadData(sts_info: List[StructureInfo])¶
Populate the model using a list of StructureInfo objects. This clears all previous data in the model.
- Parameters
sts_info – the list of structure info to add
- getStsInfo(only_checked: bool = False) List[StructureInfo] ¶
Return a list of all enabled structure’s info if
only_checked
isFalse
, else only the checked structure’s info.- Parameters
only_checked – if only the checked structure’s info should be returned.
- Returns
a list of structure’s info
- class schrodinger.application.livedesign.panel_components.ColumnCheckboxItem(col, force_unavailable=False)¶
Bases:
PyQt6.QtGui.QStandardItem
A CascadingCheckboxItem that stores and knows how to display a Column object.
- UNAVAIL_VALUE_TYPES = ['attachment']¶
- __init__(col, force_unavailable=False)¶
- Parameters
col (ldclient.models.Column) – the object describing a live report column.
force_unavailable (
bool
) – ifTrue
, make this column unavailable for import by disabling it in the list view
- column(self) int ¶
- class schrodinger.application.livedesign.panel_components.SelectionListView¶
Bases:
PyQt6.QtWidgets.QListView
A class for displaying a column selection
- __init__()¶
- class schrodinger.application.livedesign.panel_components.ExportTableColumns(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
enum.TableColumns
- Data = Column 0 (Maestro Property)¶
- Assay = Column 1 (LiveDesign Column)¶
- Endpoint = Column 2 (LiveDesign Property)¶
- Units = Column 3 (Units)¶
- Decimal = Column 4 (Decimal Places)¶
- Options = Column 5 (Options)¶
- class schrodinger.application.livedesign.panel_components.ExportRow(ld_data=None, assay=None, endpoint=None, units=None, decimal=None, option=None, assay_folder_path=None)¶
Bases:
schrodinger.models.json.JsonableClassMixin
An object for data in each row in the table.
- __init__(ld_data=None, assay=None, endpoint=None, units=None, decimal=None, option=None, assay_folder_path=None)¶
- toJsonImplementation()¶
Abstract method that must be defined by all derived classes. Converts an instance of the derived class into a jsonifiable object.
- Returns
A dict made up of JSON native datatypes or Jsonable objects. See the link below for a table of such types. https://docs.python.org/2/library/json.html#encoders-and-decoders
- classmethod fromJsonImplementation(json_dict)¶
Abstract method that must be defined by all derived classes. Takes in a dictionary and constructs an instance of the derived class.
- Parameters
json_dict (dict) – A dictionary loaded from a JSON string or file.
- Returns
An instance of the derived class.
- Return type
cls
- class schrodinger.application.livedesign.panel_components.ExportTableModel(*args, **kwargs)¶
Bases:
schrodinger.models.json.JsonableClassMixin
,schrodinger.ui.qt.table_helper.RowBasedTableModel
Model for the export table.
Note
Model saves the module and class information when serializing to JSON. It then uses this information to deserialize the JSON back into the correct instance of the class.
- ROW_CLASS¶
alias of
schrodinger.application.livedesign.panel_components.ExportRow
- __init__(*args, **kwargs)¶
- set3DDataSpecMap(spec_map)¶
- setFFCDataSpecMap(spec_map)¶
- property disable_lr_columns¶
- Returns
whether to disable certain live report-dependent export columns
- Return type
bool
- getLRDependentColumns()¶
Return a list of columns that should be disabled if a live report is not selected in the panel.
- Returns
a list of columns that depend on the live report selection
- Return type
list
oftable_helper.TableColumns
enum values
- reset()¶
Remove all data from the model
- loadData(ld_data_list)¶
Load in the data values to be shown as rows with default information for Assays and Endpoints. Note, this method resets the table.
- Parameters
ld_data_list (list(data_classes.LDData)) – list of data values
- setNonExportableData(non_exportable_data: List[schrodinger.application.livedesign.data_classes.LDData])¶
- Parameters
non_exportable_data – LD data that cannot be exported.
- loadMappings(map_rows)¶
Load in the mapping data. The properties in the mapping data are assumed to already exist in the table. Note, that this method does not reset the table.
- Parameters
map_rows (List of ExportRow) – mapped row data to set
- Returns
whether the loading of the mapping data was successful
- Return type
bool
- getMappableRows()¶
Get rows that can be saved to a mapping state.
- Returns
mapped row data
- Return type
List of ExportRow
- loadAssayData(assay_paths, favorite_assay_paths)¶
Load in the complete Assay data - full path name - wrapped as BaseLDTreeItemWrapper
- Parameters
assay_paths (List of paths) – Assay data to store.
favorite_assay_paths (List of (assay names, folder path) tuples) – Favorite Assay data to store.
- loadEndpointData(endpoint_map)¶
Set the assay path to endpoint dictionary.
- Parameters
endpoint_map (dict(str, set(str))) – a dictionary that maps assay folder paths to endpoints
- flags(index)¶
See Qt documentation for an method documentation. Overriding table_helper.RowBasedTableModel.
- getPropertyExportSpecMap()¶
Return a dictionary mapping LDData to corresponding property export specs. Exclude any data that is not exportable.
Property export specs are export specs that represent data meant to be stored as structure properties for export to LiveDesign.
- Returns
a dictionary mapping an
LDData
instance to the corresponding export spec for property rows in this table- Return type
- get3DExportSpecMap()¶
Return dictionary mapping LDData to corresponding 3D export specs in this table. Exclude any data that is not exportable.
- Returns
a dictionary mapping an
LDData
instance to the corresponding export spec for 3D data rows in this table- Return type
- getFFCExportSpecMap()¶
Return dictionary mapping LDData to corresponding freeform column export specs in this table. Exclude any data that is not exportable.
- Returns
a dictionary mapping an
LDData
instance to the corresponding export spec for FFC data rows in this table- Return type
- getExportSpecMap(rows=None)¶
Return a list of specs corresponding to the supplied list of rows. Exclude any data that is not exportable.
- Parameters
rows (list[ExportRow] or NoneType) – optionally, a list of rows to include in the map; all rows are used by default
- Returns
a dictionary mapping
LDData
to corresponding export specs for each ofrows
- Return type
- isCustomMaestroAssay(assay_index)¶
Checks if the given assay index is a custom Maestro assay, which is the initial custom assay of ‘Maestro’ selected for Maestro properties, along with the endpoint.
- Parameters
assay_index (
QtCore.QModelIndex
) – the index of the assay cell- Returns
whether the assay holds the initial ‘Maestro’ assay set for maestro properties.
- Return type
bool
- toJsonImplementation()¶
Abstract method that must be defined by all derived classes. Converts an instance of the derived class into a jsonifiable object.
- Returns
A dict made up of JSON native datatypes or Jsonable objects. See the link below for a table of such types. https://docs.python.org/2/library/json.html#encoders-and-decoders
- classmethod fromJsonImplementation(json_obj)¶
Abstract method that must be defined by all derived classes. Takes in a dictionary and constructs an instance of the derived class.
- Parameters
json_dict (dict) – A dictionary loaded from a JSON string or file.
- Returns
An instance of the derived class.
- Return type
cls
- class schrodinger.application.livedesign.panel_components.ExportTableDataColumnDelegate¶
Bases:
PyQt6.QtWidgets.QStyledItemDelegate
Delegate for
ExportTableColumn.Data
column which drawsQt.DisplayRole
text aligned to the left andQt.DecorationRole
icon aligned to the right.- paint(self, painter: Optional[QPainter], option: QStyleOptionViewItem, index: QModelIndex)¶
- class schrodinger.application.livedesign.panel_components.ExportTableView(*args, **kwargs)¶
Bases:
PyQt6.QtWidgets.QTableView
The table view showing all the Properties and Assay / Endpoints. Assay and Endpoint columns are set with different PopUp Delegates to show when the respective column cells are edited.
- __init__(*args, **kwargs)¶
- setModel(self, model: Optional[QAbstractItemModel])¶
- property Column¶
- onCommitDataToSelected(editor, index, delegate)¶
Called when “Apply to Selected Rows” is clicked in Assay or Endpoint popup.
See parent class for args documentations.
- setExtraColumnsVisible(visible)¶
Show or hide units and decimal places columns from table.
- Parameters
hide (bool) – whether to show or hide columns.
- class schrodinger.application.livedesign.panel_components.PathTreeDict(paths=None)¶
Bases:
collections.defaultdict
- __init__(paths=None)¶
- addPath(path)¶
- findPath(path)¶
- schrodinger.application.livedesign.panel_components.make_ld_item_tree(ld_items)¶
Makes LD folder/assay(model) tree.
- Parameters
ld_items (list of BaseLDTreeItemWrapper) – List of LD items.
- class schrodinger.application.livedesign.panel_components.LDTreeItem(ld_item)¶
Bases:
PyQt6.QtGui.QStandardItem
A custom Tree item.
- __init__(ld_item)¶
- Parameters
ld_item (BaseLDTreeItemWrapper) – an object that holds a name and folder_path attributes.
- class schrodinger.application.livedesign.panel_components.LDSelectionModel¶
Bases:
PyQt6.QtGui.QStandardItemModel
Tree model class which stores BaseLDTreeItemWrappers.
- loadData(ld_items)¶
Load in the generic LiveDesign item and store in Tree form. Note: All previous rows in model are removed.
- Parameters
ld_items (List of BaseLDTreeItemWrapper) – an object that holds a name and folder_path attributes.
- loadRows(row_data)¶
Load in data and append each data item as a row in Tree. Note: All previous rows in model are removed.
- Parameters
row_data (list of str) – text to set for each row.
- loadRow(row_data)¶
Append a single row to the tree model. This method does not clear the model.
- Parameters
row_data (str) – text to set for row.
- flags(index)¶
Only leaf nodes in the tree model are selectable.
- findItem(target_id, curr_item=None)¶
Recursively finds the livereport item under a given QStandardItem that matches the lr_id. If item is None, the search will start from the root of the model
- Parameters
target_id (str) – Id of the item to be found in the model
curr_item (QStandardItem) – A model item under which the item_id has to be searched. If None, the serach will start from the root item of the model.
- Returns
Returns the matched tree item or None
- Return type
- class schrodinger.application.livedesign.panel_components.EndpointSelectionModel¶
Bases:
schrodinger.application.livedesign.panel_components.LDSelectionModel
- flags(index)¶
Prevent user from selecting endpoints with the
ENDPOINT_UNAVAILABLE
text. It indicates that the correct endpoint could not be parsed from LiveDesign.
- data(self, index: QModelIndex, role: int = Qt.DisplayRole) Any ¶
- class schrodinger.application.livedesign.panel_components.BaseLDTreeItemWrapper(ld_name, ld_id=None, path='', linked_path=None, show_path=False)¶
Bases:
schrodinger.models.json.JsonableClassMixin
Simple wrapper for storing either a ld_entities.LiveReport.name or ld_entities.Assay.name, and the folder path used to determine its position in the tree. By building a common wrapper for both items, much of the popup tree item code is simplified.
- __init__(ld_name, ld_id=None, path='', linked_path=None, show_path=False)¶
- Parameters
ld_name (str) – ld_entities.LiveReport.name or ld_entities.Assay.name
ld_id (str or None) – LiveReport.id as a unique identifier
path (str) – the folder path to determine position in tree.
linked_path (str) – for items duplicated in favorites, the original folder path
show_path (bool) – whether to show the linked_path in the display name
:raise ValueError if no name is given.
- toJsonImplementation()¶
Abstract method that must be defined by all derived classes. Converts an instance of the derived class into a jsonifiable object.
- Returns
A dict made up of JSON native datatypes or Jsonable objects. See the link below for a table of such types. https://docs.python.org/2/library/json.html#encoders-and-decoders
- classmethod fromJsonImplementation(json_dict)¶
Abstract method that must be defined by all derived classes. Takes in a dictionary and constructs an instance of the derived class.
- Parameters
json_dict (dict) – A dictionary loaded from a JSON string or file.
- Returns
An instance of the derived class.
- Return type
cls
- class schrodinger.application.livedesign.panel_components.LDSelectionTreeView¶
Bases:
PyQt6.QtWidgets.QTreeView
Base class for Selecting an item from a Tree.
- itemSelected¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- __init__()¶
- selectionChanged(selected, deselected)¶
See Qt QTreeView for more information.
- setCurrentItem(ld_tree_item: schrodinger.application.livedesign.panel_components.LDTreeItem)¶
Sets the specified tree item as the current item. This method selects the item unless the current selection mode is set to NoSelection.
- Parameters
ld_tree_item – Tree item to select.
- scrollToItemWithPath(full_assay_path)¶
Find the item with the given path, scroll to it, and select it. Useful for making the last selected item visible when a cell is clicked again.
- Parameters
full_assay_path (str) – the full path of the assay including the name
- class schrodinger.application.livedesign.panel_components.StringSearchFilterProxyModel(parent=None)¶
Bases:
PyQt6.QtCore.QSortFilterProxyModel
A proxy model to filter a tree model to show both parents and children nodes if they match the regular expression string.
- __init__(parent=None)¶
- filterAcceptsRow(source_row, source_parent)¶
See Qt Documentation for more information on parameters.
This filter accepts a particular row if any of the following are true: 1. The index’s item’s text matches the reg exp. 2. Any of the index’s children match the reg exp. 3. Any of the index’s parents (up to the root) match the reg exp.
Note that the conditions specified above are searched in that order.
- filterAcceptsIndex(index)¶
Checks whether this index’s item should be accepted by the filter. This DFS method checks if either this index’s item’s text or any of its children matches the filter reg exp.
- Parameters
index (QtCore.QModelIndex) – the index to filter in or out according to regular exp.
- Returns
whether the index should be accepted by the filter
- Return type
bool
- filterAcceptsParent(index)¶
Checks whether this index’s item’s text or any of its ancestors matches the filter reg exp.
- Parameters
index (QtCore.QModelIndex) – the index to filter in or out according to regular exp.
- Returns
whether the index should be accepted by the filter
- Return type
bool
- class schrodinger.application.livedesign.panel_components.BaseSelectionPopUp(parent)¶
Bases:
schrodinger.application.livedesign.panel_components.BaseSearchTreeWidgetHelper
,schrodinger.ui.qt.pop_up_widgets.PopUp
Base class for a popup used to selecting either an Assay or Live Report - this class only adds the common widgets and aesthetics to confirm both Popups look identical.
- setup()¶
Sets up the model, view, proxy and search box.
See BaseSearchTreeWidgetHelper.setUpWidgets for more info.
- reset()¶
- class schrodinger.application.livedesign.panel_components.BaseLiveReportSelectionPopup(parent)¶
Bases:
schrodinger.application.livedesign.panel_components.BaseSelectionPopUp
A
BaseSelectionPopup
that also has a combo box that can be used to select how Live Report data is organized.- Variables
LRSortMethodChanged (QtCore.pyqtSignal) – signal indicating that a new live report sort method has been chosen; emitted with an
LRSort
value
- LRSortMethodChanged¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- setUpWidgets(model, view)¶
Sets up the search box, model, view, and search proxy.
- Parameters
model (
QtGui.QStandardItemModel
) – model for the treeview (
QtWidgets.QTreeView
) – view for the model
- setUpLayout()¶
Sets up the layout, but needs to be added to the widget by the subclass.
- class schrodinger.application.livedesign.panel_components.LiveReportSelectionPopup(parent)¶
Bases:
schrodinger.application.livedesign.panel_components.BaseLiveReportSelectionPopup
A popup for selecting Live Reports. Contains a refresh button.
- refreshRequested¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- PRE_REFRESH_TEXT = 'Refresh'¶
- REFRESHING_TEXT = 'Refreshing...'¶
- setUpWidgets(model, view)¶
Sets up the search box, model, view, and search proxy.
- Parameters
model (
QtGui.QStandardItemModel
) – model for the treeview (
QtWidgets.QTreeView
) – view for the model
- setUpLayout()¶
Sets up the layout, but needs to be added to the widget by the subclass.
- onRefreshClicked()¶
- onRefreshCompleted()¶
- class schrodinger.application.livedesign.panel_components.LiveReportSelectionComboBox(parent, lr_widget)¶
Bases:
schrodinger.ui.qt.pop_up_widgets.ComboBoxWithPopUp
A custom Combo Box to show a Popup (LiveReportSelectionPopup) when the user clicks on the menu arrow. Also provides a “refresh” button to update the list of live reports from the host.
- Variables
refreshRequested – signal indicating that a refresh was requested from the pop up.
liveReportSelected (
QtCore.pyqtSignal
) – signal emitted when a live report has been chosen in the combo box, with an argument of the live report id.LRSortMethodChanged (QtCore.pyqtSignal) – signal indicating that a new live report sort method has been chosen; emitted with an
LRSort
value
- refreshRequested¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- liveReportSelected¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- LRSortMethodChanged¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- __init__(parent, lr_widget)¶
Create an instance.
- Parameters
parent (
PyQt5.QtWidgets.QWidget
) – the Qt parent widget
- reset()¶
Reset the combo box to initial state.
- af2SettingsSetValue(lr_id)¶
Custom implementation for setting LiveReport. Called from ‘set_obj_value` when we exit panel.
- Parameters
lr_id (str) – The ID of the LiveReport to be set as current.
- af2SettingsGetValue()¶
Custom implementation for getting LiveReport id. Called from ‘get_obj_value` when
panel.run
is called.
- setData(live_reports)¶
Load in the live reports to the Tree widget.
- Parameters
live_reports (List of BaseLDTreeItemWrapper) – live reports to be added.
- addNewLiveReport()¶
Generates a new name for the live report depending on any reports selected in the tree and the current date. Sets value on combo box for a new report.
- Returns
Name of new live report
- Return type
str
- onLiveReportSelected(item)¶
Slot connected to tree view’s selection.
- Parameters
item (BaseLDTreeItemWrapper) – selected live report item in the tree view.
- setCurrentLR(lr_id)¶
Sets the current livereport to the item pointed by lr_id
- Parameters
lr_id (str) – Livereport id
- Returns
True if success else False
- Return type
bool
- onRefreshCompleted()¶
- class schrodinger.application.livedesign.panel_components.LiveReportTemplateSelectorCombo(parent=None)¶
Bases:
schrodinger.ui.qt.swidgets.SComboBox
QComboBox with a placeholder text as the first time.
- Variables
templateSelected (QtCore.pyqtSignal) – Emitted when the template selection changes. Emitted with the template id of the selection
- templateSelected¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- PLACEHOLDER_TEXT = 'Blank Template'¶
- __init__(parent=None)¶
Create an SComboBox object.
- Parameters
parent (QWidget) – The parent widget of this SComboBox
items (list) – list of items (str) to be added to the ComboBox - see also itemdict.
default_item (str) – text of the item to select initially and upon reset
default_index (int) – the index of the item to select initially and upon reset. default_item overrides this parameter.
command (callable) – The slot to connect to the currentIndexChanged[str] signal. This command will be called when the default item is selected during initialization unless nocall=True.
nocall (bool) – True if command should not be called during initialization, False otherwise
layout (QLayout) – The layout to place this widget in
tip (str) – The tooltip for the combo
itemdict (
collections.OrderedDict
) – An OrderedDictionary with ComboBox items as keys and data as values. The data for the current ComboBox item is returned by the currentData method. If both items and itemdict are given, items are added first.adjust_to_contents (bool) – True if the size adjust policy should be set to “Adjust to contents”
min_width (int) – this property holds the minimum number of characters that should fit into the combobox
- setDefaults()¶
- class schrodinger.application.livedesign.panel_components.LiveReportSelector(parent, lr_widget, allow_add=True)¶
Bases:
schrodinger.ui.qt.widgetmixins.basicmixins.InitMixin
,PyQt6.QtWidgets.QWidget
A widget containing a
LiveReportSelectionComboBox
and a create new LR button.- Variables
refreshRequested (QtCore.pyqtSignal) – signals that the user has requested a refresh by clicking on the refresh button
liveReportSelected (
QtCore.pyqtSignal
) – signal emitted when a live report has been chosen in the combo box, with an argument of the live report id.newLiveReportSelected (
QtCore.pyqtSignal
) – signal emitted when a live report has been created, with an argument of the live report id.LRSortMethodChanged (QtCore.pyqtSignal) – signal indicating that a new live report sort method has been chosen; emitted with an
LRSort
value
- refreshRequested¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- liveReportSelected¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- newLiveReportSelected¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- LRSortMethodChanged¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- __init__(parent, lr_widget, allow_add=True)¶
- initSetUp()¶
Creates widget from
ui
and stores itui_widget
.Suggested subclass use: create and initialize subwidgets, and connect signals.
- initLayOut()¶
Create a vertical layout for the widget (
widget_layout
) and populate it with two vertical sub-layouts:main_layout
andbottom_layout
.If the user has specified the
ui
data member, insert the resultantui_widget
intomain_layout
.If the widget already has a layout defined, this method will produce a warning (but not a traceback).
main_layout
andbottom_layout
will be inserted into the existing widget layout, which will not be the same aswidget_layout
. It is therefore recommended that this mixin is used only with widgets that do not already have a layout.Suggested subclass use: create, initialize, and populate layouts.
- initSetDefaults()¶
Set widget to its default state. If the widget uses a model/mapper, it’s preferable to reset the widget state by resetting the model.
- setData(live_reports)¶
Load in the live reports to the Tree widget on the combo box.
- Parameters
live_reports (List of BaseLDTreeItemWrapper) – live reports to be added.
- setLiveReport(live_report_id)¶
Set the active live report, refreshing the available list if necessary.
- Parameters
live_report_id (str) – the live report ID of the desired live report
- Returns
True if success else False
- Return type
bool
- onRefreshCompleted()¶
- addNewLiveReport()¶
- setComboToSelect()¶
Sets live report combo to Select mode
- class schrodinger.application.livedesign.panel_components.AddNewLineEdit(*args, **kwargs)¶
Bases:
PyQt6.QtWidgets.QLineEdit
- default_text = ''¶
- __init__(*args, **kwargs)¶
- focusInEvent(self, a0: Optional[QFocusEvent])¶
- class schrodinger.application.livedesign.panel_components.AbstractSelectionPopUp(parent)¶
Bases:
schrodinger.application.livedesign.panel_components.BaseSelectionPopUp
A popup for selecting LiveDesign values.
- newValueSelected¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- SEARCH_MODE_PAGE = 0¶
- CREATE_MODE_PAGE = 1¶
- SEARCH_TEXT = 'Placeholder search text'¶
- setup()¶
Sets up the model, view, proxy and search box.
See BaseSearchTreeWidgetHelper.setUpWidgets for more info.
- selectNewValue()¶
Creates a new value to add to the line edit.
- setNumSelectedRows(num_rows)¶
- setDefaultText(text)¶
- class schrodinger.application.livedesign.panel_components.AbstractSelectionLineEdit(parent, initial_rows=1)¶
Bases:
schrodinger.ui.qt.pop_up_widgets.LineEditWithPopUp
Custom Line Edit to show a Selection PopUp when the user clicks on the table cell.
- newValueSelected¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- valueSelected¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- numSelectedRowsChanged¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- POPUP_CLS = NotImplemented¶
- __init__(parent, initial_rows=1)¶
- Parameters
parent (
PyQt5.QtWidgets.QWidget
) – the Qt parent widgetinitial_rows (int) – Initial rows selected on creation of widget
- addNew(name)¶
Adds the new value name to the table cell and the popup tree.
- Parameters
name (str) – new value name
- onApplyToRowsClicked()¶
Trigger PopUpDelegate.commitDataToSelected signal
- onValueSelected(item)¶
Slot connected to the view’s selection.
- Parameters
item (BaseLDTreeItemWrapper) – selected item in the tree view.
- addData(data)¶
Add the data value to the line edit.
- class schrodinger.application.livedesign.panel_components.AbstractSelectionPopUpDelegate(parent)¶
Bases:
schrodinger.ui.qt.pop_up_widgets.PopUpDelegate
,schrodinger.ui.qt.delegates.AbstractDelegateWithEditIcon
Delegate for handling column line edits.
- Variables
numSelectedRowsChanged – signal emitted when the amount of selected rows are changed.
- numSelectedRowsChanged¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- EDIT_ICON = '/scr/buildbot/savedbuilds/2024-4/NB/build-117/internal/lib/python3.11/site-packages/schrodinger/ui/qt/standard/icons/icon_data/menu-caret/menu-caret_lb.png'¶
- COLUMN_TYPE: schrodinger.application.livedesign.panel_components.ExportTableColumns = NotImplemented¶
- POPUP_CLS = NotImplemented¶
- LINE_EDIT_CLS = NotImplemented¶
- __init__(parent)¶
- Parameters
parent (
PyQt5.QtWidgets.QWidget
) – The Qt parent widgetpop_up_class (type) – The class of the pop up widget. Should be a subclass of
PopUp
.enable_accept_multi (bool) – Whether committing data to all selected cells at once is enabled. If True,
commitDataToSelected
will be emitted when theLineEditWithPopUp
emitspopUpClosing
withACCEPT_MULTI
. If False,commitData
will be emitted instead.
- paint(self, painter: Optional[QPainter], option: QStyleOptionViewItem, index: QModelIndex)¶
- class schrodinger.application.livedesign.panel_components.AssaySelectionPopUp(parent)¶
Bases:
schrodinger.application.livedesign.panel_components.AbstractSelectionPopUp
A popup for selecting Assays.
- SEARCH_TEXT = 'Search model or assay name'¶
- setup()¶
Sets up the model, view, proxy and search box.
See BaseSearchTreeWidgetHelper.setUpWidgets for more info.
- class schrodinger.application.livedesign.panel_components.AssaySelectionLineEdit(parent, num_rows)¶
Bases:
schrodinger.application.livedesign.panel_components.AbstractSelectionLineEdit
Custom Line Edit to show an AssaySelectionPopUp.
- mappingSaved¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- POPUP_CLS¶
alias of
schrodinger.application.livedesign.panel_components.AssaySelectionPopUp
- __init__(parent, num_rows)¶
- Parameters
parent (
PyQt5.QtWidgets.QWidget
) – the Qt parent widgetinitial_rows (int) – Initial rows selected on creation of widget
- addNew(name)¶
Adds the new value name to the table cell and the popup tree.
- Parameters
name (str) – new value name
- addData(data)¶
Add the assay data to populate the pop up tree model.
- Parameters
data (List of BaseLDTreeItemWrapper) – the list of tree item wrappers containing the name and path of the assays
- onValueSelected(item)¶
Slot connected to tree view’s selection.
- Parameters
item (BaseLDTreeItemWrapper) – selected Assay item in the tree view.
- saveMapping()¶
Saves the state of collapsed and expanded items in the QTreeView
- saveExpansionBFS(model_idx: PyQt6.QtCore.QModelIndex)¶
Searches for and saves the expanded items of an element and its children. Uses breadth first searching
- getTreePath(model_idx: PyQt6.QtCore.QModelIndex) List[str] ¶
Gets full path of element at the model index.
X Y Z
tree path of element Z is [‘X’, ‘Y’, ‘Z’]
- applyMapping(mapping: List[List[str]])¶
Applies the given expansion mapping to elements in the view
- setExpansionBFS(model_idx: PyQt6.QtCore.QModelIndex, mapping: List[List[str]])¶
Applies the expansion states from mapping to the element at the given model index
- getAssayFolderPath()¶
Return the currently selected assay’s folder path. If no assay is selected, None is returned.
- Returns
folder path of currently selected assay.
- Return type
str or None
- setAllAssayData(assays_list, assay_name, assay_folder_path)¶
Set all the assay data including the list of possible assays, the current (ie last selected) assay name value, and the folder path to the current assay (if exists). This will add the possible assays to the popup’s selection view, set the line edit text, store the assay folder path, and scroll to and select the item corresponding to the current selection in the popup.
Note that because the assay name and path does not currently store whether the original location was from its original path or the ‘Project Favorites’ folder, the selection always scrolls to the original location rather than the ‘Project Favorites’ location.
- Parameters
assays_list (List of BaseLDTreeItemWrapper) – the list of ld items specifying the assay names and paths
assay_name (str) – the current value of the assay name
assay_folder_path (str) – the current value of the assay folder path
- getNewAssay()¶
Return the newly created assay if one exists.
- Returns
the newly created assay
- Return type
BaseLDTreeItemWrapper or None
- setText(self, a0: Optional[str])¶
- class schrodinger.application.livedesign.panel_components.AssaySelectionPopUpDelegate(parent)¶
Bases:
schrodinger.application.livedesign.panel_components.AbstractSelectionPopUpDelegate
Delegate for handling assay line edits.
- Variables
newAssaySelected (QtCore.pyqtSignal(QtCore.QModelIndex)) – signal emitted when a new assay is created by user and selected for use. This signal is emitted once the assay data is set in the model, and with the assay index.
assaySelected (QtCore.pyqtSignal(QtCore.QModelIndex)) – signal emitted when an existing assay is selected and applied. This signal is emitted once the assay data is set in the model, and with the assay index.
- newAssaySelected¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- assaySelected¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- numSelectedRowsChanged¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- mappingSaved¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- COLUMN_TYPE: schrodinger.application.livedesign.panel_components.ExportTableColumns = Column 1 (LiveDesign Column)¶
- POPUP_CLS¶
alias of
schrodinger.application.livedesign.panel_components.AssaySelectionPopUp
- LINE_EDIT_CLS¶
alias of
schrodinger.application.livedesign.panel_components.AssaySelectionLineEdit
- __init__(parent)¶
- Parameters
parent (
PyQt5.QtWidgets.QWidget
) – The Qt parent widgetpop_up_class (type) – The class of the pop up widget. Should be a subclass of
PopUp
.enable_accept_multi (bool) – Whether committing data to all selected cells at once is enabled. If True,
commitDataToSelected
will be emitted when theLineEditWithPopUp
emitspopUpClosing
withACCEPT_MULTI
. If False,commitData
will be emitted instead.
- onNewAssaySelected()¶
- onAssaySelected()¶
- setMapping(mapping)¶
- setEditorData(self, editor: Optional[QWidget], index: QModelIndex)¶
- setModelData(self, editor: Optional[QWidget], model: Optional[QAbstractItemModel], index: QModelIndex)¶
- class schrodinger.application.livedesign.panel_components.EndpointSelectionPopUp(parent)¶
Bases:
schrodinger.application.livedesign.panel_components.AbstractSelectionPopUp
A popup for selecting Endpoints.
- SEARCH_TEXT = 'Search property name'¶
- setup()¶
Sets up the model, view, proxy and search box.
See BaseSearchTreeWidgetHelper.setUpWidgets for more info.
- class schrodinger.application.livedesign.panel_components.EndpointSelectionLineEdit(parent, initial_rows=1)¶
Bases:
schrodinger.application.livedesign.panel_components.AbstractSelectionLineEdit
Custom Line Edit to show a PopUp (EndpointSelectionPopUp) when the user double clicks on the table cell.
- POPUP_CLS¶
alias of
schrodinger.application.livedesign.panel_components.EndpointSelectionPopUp
- addNew(name)¶
Adds the new value name to the table cell and the popup tree.
- Parameters
name (str) – new value name
- addData(data)¶
Add the endpoint data to populate the pop up tree model.
- Parameters
data (List of str) – data values that need to be added as rows
- onValueSelected(item)¶
Slot connected to tree view’s selection.
- Parameters
item (BaseLDTreeItemWrapper) – selected Endpoint item in the tree view.
- class schrodinger.application.livedesign.panel_components.EndpointSelectionPopUpDelegate(parent)¶
Bases:
schrodinger.application.livedesign.panel_components.AbstractSelectionPopUpDelegate
Delegate for handling endpoint line edit.
- COLUMN_TYPE: schrodinger.application.livedesign.panel_components.ExportTableColumns = Column 2 (LiveDesign Property)¶
- POPUP_CLS¶
alias of
schrodinger.application.livedesign.panel_components.EndpointSelectionPopUp
- LINE_EDIT_CLS¶
alias of
schrodinger.application.livedesign.panel_components.EndpointSelectionLineEdit
- __init__(parent)¶
- Parameters
parent (
PyQt5.QtWidgets.QWidget
) – The Qt parent widgetpop_up_class (type) – The class of the pop up widget. Should be a subclass of
PopUp
.enable_accept_multi (bool) – Whether committing data to all selected cells at once is enabled. If True,
commitDataToSelected
will be emitted when theLineEditWithPopUp
emitspopUpClosing
withACCEPT_MULTI
. If False,commitData
will be emitted instead.
- setEditorData(self, editor: Optional[QWidget], index: QModelIndex)¶
- setModelData(self, editor: Optional[QWidget], model: Optional[QAbstractItemModel], index: QModelIndex)¶
- class schrodinger.application.livedesign.panel_components.LiveDesignProjectsCombo(parent=None)¶
Bases:
schrodinger.ui.qt.swidgets.SComboBox
This is a standard QComboBox with a few helper methods.
- Variables
projectSelected (
QtCore.pyqtSignal
) – signal for when a any project in the combo box is selected. Emitted with the project name and ID.placeholderSelected (
QtCore.pyqtSignal
) – signal for when the placeholder in the combo box is selected. Emitted with no arguments.
- projectSelected¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- placeholderSelected¶
pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL
types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.
- __init__(parent=None)¶
Custom QComboBox for selecting a LiveDesign Project
- setDefaults()¶
Resets the combobox and sets the default placeholder entry.
- addProjects(projects)¶
Resets the combobox and adds the new LD projects in alphabetical order, along with the project id as the user data.
- Parameters
projects ([ldclient.models.Project]) – list of LD projects
- currentProjectName()¶
Return the current selected project name or None if no project is selected.
- Returns
project name if applicable
- Return type
str or None
- currentProjectID()¶
Return the current selected project’s id. If placeholder item is currently selected, None will be returned.
- Returns
project id if applicable
- Return type
str or None
- isPlaceholderItemSelected()¶
Returns whether the placeholder text is currently selected.
- Returns
whether the placeholder is selected.
- Return type
bool
- selectPlaceholderItem()¶
Simply set the current item to be the placeholder text.
- class schrodinger.application.livedesign.panel_components.InitialSuggestionLineEdit¶
Bases:
PyQt6.QtWidgets.QLineEdit
Line edit that allows suggestions on click event, without needing an initial keystroke
- mousePressEvent(self, a0: Optional[QMouseEvent])¶
- startCompletion()¶
Manually trigger the line edit’s QCompleter, if it exists
- class schrodinger.application.livedesign.panel_components.ClearInitialSuggestionLineEdit(*args, **kwargs)¶
Bases:
schrodinger.application.livedesign.panel_components.InitialSuggestionLineEdit
Suggestion line edit that implements a custom clear button that triggers completion after clearing
- __init__(*args, **kwargs)¶
- schrodinger.application.livedesign.panel_components.organize_ld_data_tree(ld_data_list)¶
Given a list of LD data, organize it for display in the exportable data tree.
- Parameters
ld_data_list (list(data_classes.LDData)) – LD data to organize
- Returns
a tuple representing the organized data: each
- Return type
collections.OrderedDict(str, list(data_classes.LDData))
- schrodinger.application.livedesign.panel_components.filter_missing_entry(entry, default_value)¶