mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 12:54:40 +01:00
88 lines
2.5 KiB
Python
88 lines
2.5 KiB
Python
from Qt import QtCore, QtGui, QtWidgets
|
|
from avalon import style
|
|
from pype.api import resources
|
|
|
|
|
|
class UserWidget(QtWidgets.QWidget):
|
|
|
|
MIN_WIDTH = 300
|
|
|
|
def __init__(self, module):
|
|
|
|
super(UserWidget, self).__init__()
|
|
|
|
self.module = module
|
|
|
|
# Style
|
|
icon = QtGui.QIcon(resources.pype_icon_filepath())
|
|
self.setWindowIcon(icon)
|
|
self.setWindowTitle("Username Settings")
|
|
self.setMinimumWidth(self.MIN_WIDTH)
|
|
self.setStyleSheet(style.load_stylesheet())
|
|
|
|
self.setWindowFlags(
|
|
QtCore.Qt.WindowCloseButtonHint |
|
|
QtCore.Qt.WindowMinimizeButtonHint
|
|
)
|
|
|
|
self.setLayout(self._main())
|
|
|
|
def show(self, *args, **kwargs):
|
|
super().show(*args, **kwargs)
|
|
# Move widget to center of active screen on show
|
|
screen = QtWidgets.QApplication.desktop().screen()
|
|
screen_center = lambda self: (
|
|
screen.rect().center() - self.rect().center()
|
|
)
|
|
self.move(screen_center(self))
|
|
|
|
def _main(self):
|
|
main_layout = QtWidgets.QVBoxLayout()
|
|
|
|
form_layout = QtWidgets.QFormLayout()
|
|
form_layout.setContentsMargins(10, 15, 10, 5)
|
|
|
|
label_username = QtWidgets.QLabel("Username:")
|
|
label_username.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
|
|
label_username.setTextFormat(QtCore.Qt.RichText)
|
|
|
|
input_username = QtWidgets.QLineEdit()
|
|
input_username.setPlaceholderText(
|
|
QtCore.QCoreApplication.translate("main", "e.g. John Smith")
|
|
)
|
|
|
|
form_layout.addRow(label_username, input_username)
|
|
|
|
btn_save = QtWidgets.QPushButton("Save")
|
|
btn_save.clicked.connect(self.click_save)
|
|
|
|
btn_cancel = QtWidgets.QPushButton("Cancel")
|
|
btn_cancel.clicked.connect(self.close)
|
|
|
|
btn_group = QtWidgets.QHBoxLayout()
|
|
btn_group.addStretch(1)
|
|
btn_group.addWidget(btn_save)
|
|
btn_group.addWidget(btn_cancel)
|
|
|
|
main_layout.addLayout(form_layout)
|
|
main_layout.addLayout(btn_group)
|
|
|
|
self.input_username = input_username
|
|
|
|
return main_layout
|
|
|
|
def set_user(self, username):
|
|
self.input_username.setText(username)
|
|
|
|
def click_save(self):
|
|
# all what should happen - validations and saving into appsdir
|
|
username = self.input_username.text()
|
|
self.module.change_credentials(username)
|
|
self._close_widget()
|
|
|
|
def closeEvent(self, event):
|
|
event.ignore()
|
|
self._close_widget()
|
|
|
|
def _close_widget(self):
|
|
self.hide()
|