Source code for schrodinger.ui.qt.rename_favorite_dialog
from schrodinger import get_maestro
from schrodinger.Qt import QtWidgets
from schrodinger.Qt.QtCore import Qt
from . import rename_favorite_dialog_ui
maestro = get_maestro()
[docs]class RenameFavoriteDialog(QtWidgets.QDialog):
    """
    A dialog that allows user to rename the display name of the
    favorite button inside favorite toolbar.
    """
[docs]    def __init__(self, name, parent=None):
        """
        :param parent: The Qt parent for the dialog.
        :type parent: `QtWidgets.QtWidget`
        """
        super(RenameFavoriteDialog, self).__init__(parent)
        self.ui = rename_favorite_dialog_ui.Ui_Dialog()
        self.ui.setupUi(self)
        self.setWindowFlags(Qt.FramelessWindowHint)
        # Save the display name of the favorite button
        self.name = name
        # Set the current display name as default text
        self.ui.rename_line_edit.setText(name)
        self.ui.save_button.clicked.connect(self.accept)
        self.ui.cancel_button.clicked.connect(self.reject)
        self.ui.rename_line_edit.returnPressed.connect(self.accept)
        self.ui.rename_line_edit.textChanged.connect(self.enableSaveButton) 
[docs]    def show(self):
        """
        Show the rename favorite dialog
        """
        self.ui.rename_line_edit.setText(self.name)
        self.enableSaveButton(self.name)
        self.ui.rename_line_edit.selectAll()
        self.ui.rename_line_edit.setFocus(Qt.OtherFocusReason)
        super(RenameFavoriteDialog, self).exec_() 
[docs]    def accept(self):
        """
        When the user enters name and press enter
        See Qt documentation for additional method documentation.
        """
        new_name = self.ui.rename_line_edit.text()
        if not new_name:
            return
        self.name = new_name
        super(RenameFavoriteDialog, self).accept() 
[docs]    def reject(self):
        """
        Cancel the changes and close the dialog
        """
        self.name = ""
        super(RenameFavoriteDialog, self).reject()  
[docs]def rename_favorite(name):
    """
    Show the rename favorite dialog and return the updated name
    """
    if maestro:
        rename_dlg = RenameFavoriteDialog(name)
        rename_dlg.show()
        return rename_dlg.name