def __init__(self,
                 specification,
                 context,
                 parent=None,
                 embedBrowser=False,
                 embedDetails=True,
                 session=None):
        super(ItemCreateWidget, self).__init__(parent=parent)

        l = FnAssetAPI.l

        self._embedBrowser = embedBrowser
        self._embedDetails = embedDetails

        layout = QtGui.QVBoxLayout()
        self.setLayout(layout)

        if not session:
            session = FnAssetAPI.ui.UISessionManager.currentSession()

        if embedBrowser:
            widgetIdentifier = FnAssetAPI.ui.constants.kBrowserWidgetId
        else:
            widgetIdentifier = FnAssetAPI.ui.constants.kInlinePickerWidgetId

        pickerCls = session.getManagerWidget(widgetIdentifier,
                                             instantiate=False)
        self.parentPicker = pickerCls(specification, context)

        if embedDetails:
            destGbox = QtGui.QGroupBox(l("{publish} To"))
            layout.addWidget(destGbox)
            destLayout = QtGui.QVBoxLayout()
            destGbox.setLayout(destLayout)
            destLayout.addWidget(self.parentPicker)
        else:
            layout.addWidget(self.parentPicker)

        self.itemSpreadsheet = None

        if embedDetails:
            self.itemSpreadsheet = ItemSpreadsheetWidget()
            self.itemsGbox = QtGui.QGroupBox("Items")
            itemsLayout = QtGui.QVBoxLayout()
            self.itemsGbox.setLayout(itemsLayout)
            itemsLayout.addWidget(self.itemSpreadsheet)
            layout.addWidget(self.itemsGbox)

        self.__items = []
Ejemplo n.º 2
0
    def __init__(self, name, url=None, plugin=None, parent=None):
        '''Initialise web view with *name* and *url*.

        *name* will be used as the title of the widget and also will be
        converted to a lowercase dotted name which the panel can be referenced
        with. For example, "My Panel" -> "my.panel".

        *url* should be the initial url to display.

        *plugin* should be an instance of
        *:py:class:`ftrack_connect_hieroplayer.plugin.Plugin` which will be
        *injected into the JavaScript window object of any loaded page.

        *parent* is the optional parent of this widget.

        '''
        super(WebView, self).__init__(parent=parent)

        self.logger = logging.getLogger(__name__ + '.' +
                                        self.__class__.__name__)

        self.setObjectName(name.lower().replace(' ', '.'))
        self.setWindowTitle(name)

        self.plugin = plugin

        self.webView = QtWebKit.QWebView()
        self.webView.urlChanged.connect(self.changedLocation)

        # Use plugin network access manager if available.
        if self.plugin:
            self.webView.page().setNetworkAccessManager(
                self.plugin.networkAccessManager)

        self.frame = self.webView.page().mainFrame()

        # Enable developer tools for debugging loaded page.
        self.webView.settings().setAttribute(
            QtWebKit.QWebSettings.WebAttribute.DeveloperExtrasEnabled, True)
        self.inspector = QtWebKit.QWebInspector(self)
        self.inspector.setPage(self.webView.page())
        self.inspector.hide()

        self.splitter = QtGui.QSplitter(self)
        self.splitter.addWidget(self.webView)
        self.splitter.addWidget(self.inspector)

        layout = QtGui.QVBoxLayout(self)
        layout.addWidget(self.splitter)

        # Load the passed url.
        self.setUrl(url)
    def __init__(self, parent=None):
        super(AssetPreferencesDialog, self).__init__(parent=parent)

        self.setWindowTitle("Asset Management Preferences")

        layout = QtGui.QVBoxLayout()
        self.setLayout(layout)

        self.settingsWidget = SessionSettingsWidget()
        layout.addWidget(self.settingsWidget)

        self.applyButton = QtGui.QPushButton("Apply")
        layout.addWidget(self.applyButton)
        self.applyButton.clicked.connect(self.apply)
    def __init__(self,
                 specification,
                 context,
                 embedBrowser=False,
                 session=None,
                 parent=None,
                 embedDetails=True):
        super(ItemCreateDialog, self).__init__(parent=parent)

        l = FnAssetAPI.l

        self._specification = specification
        self._context = context

        if not session:
            session = FnAssetAPI.SessionManager.currentSession()
        self._session = session

        layout = QtGui.QVBoxLayout()
        self.setLayout(layout)

        self.itemCreateWidget = ItemCreateWidget(specification,
                                                 context,
                                                 embedBrowser=embedBrowser,
                                                 embedDetails=embedDetails,
                                                 session=session)
        layout.addWidget(self.itemCreateWidget)

        self._managerOptions = None
        self._drawOptions(layout)

        buttons = QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel
        self._buttons = QtGui.QDialogButtonBox(buttons)

        if not embedDetails:
            detailsButton = self._buttons.addButton(
                "Details...", QtGui.QDialogButtonBox.HelpRole)
            detailsButton.clicked.connect(self.showDetails)

        self._buttons.button(QtGui.QDialogButtonBox.Ok).setText(l('{publish}'))

        self.connect(self._buttons, QtCore.SIGNAL('accepted()'), self.accept)
        self.connect(self._buttons, QtCore.SIGNAL('rejected()'), self.reject)

        layout.addWidget(self._buttons)
    def _drawOptions(self, layout):

        optionsBox = QtGui.QGroupBox("Options")
        optionsLayout = QtGui.QVBoxLayout()
        optionsBox.setLayout(optionsLayout)
        layout.addWidget(optionsBox)

        # See if we have any options from the manager

        self._managerOptions = self._session.getManagerWidget(
            FnAssetAPI.ui.constants.kRegistrationManagerOptionsWidgetId,
            throw=False,
            args=(self._specification, self._context))

        if self._managerOptions:
            optionsLayout.addWidget(self._managerOptions)
            optionsLayout.addSpacing(10)

        return optionsLayout
    def __init__(self, parent=None):
        super(ItemDetailsDialog, self).__init__(parent=parent)

        self.setWindowTitle("Item Details")

        self.__items = []

        layout = QtGui.QVBoxLayout()
        self.setLayout(layout)

        self.itemSpreadsheet = ItemSpreadsheetWidget()
        self.itemSpreadsheet.setMaxColumnWidth(800)

        layout.addWidget(self.itemSpreadsheet)

        self._buttons = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok)
        layout.addWidget(self._buttons)

        self.connect(self._buttons, QtCore.SIGNAL('accepted()'), self.accept)
        self.connect(self._buttons, QtCore.SIGNAL('rejected()'), self.reject)