Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

Tools: Cleanup of unused classes #2304

Merged
merged 12 commits into from
Nov 25, 2021
93 changes: 60 additions & 33 deletions openpype/hosts/houdini/api/usd.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,71 @@
import contextlib

import logging
from Qt import QtCore, QtGui
from openpype.tools.utils.widgets import AssetWidget
from avalon import style, io
from Qt import QtWidgets, QtCore, QtGui
from avalon import io
from openpype import style
from openpype.tools.utils.assets_widget import SingleSelectAssetsWidget

from pxr import Sdf


log = logging.getLogger(__name__)


class SelectAssetDialog(QtWidgets.QWidget):
"""Frameless assets dialog to select asset with double click.

Args:
parm: Parameter where selected asset name is set.
"""
def __init__(self, parm):
self.setWindowTitle("Pick Asset")
self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.Popup)

assets_widget = SingleSelectAssetsWidget(io, parent=self)

layout = QtWidgets.QHBoxLayout(self)
layout.addWidget(assets_widget)

assets_widget.double_clicked.connect(self._set_parameter)
self._assets_widget = assets_widget
self._parm = parm

def _set_parameter(self):
name = self._assets_widget.get_selected_asset_name()
self._parm.set(name)
self.close()

def _on_show(self):
pos = QtGui.QCursor.pos()
# Select the current asset if there is any
select_id = None
name = self._parm.eval()
if name:
db_asset = io.find_one(
{"name": name, "type": "asset"},
{"_id": True}
)
if db_asset:
select_id = db_asset["_id"]

# Set stylesheet
self.setStyleSheet(style.load_stylesheet())
# Refresh assets (is threaded)
self._assets_widget.refresh()
# Select asset - must be done after refresh
if select_id is not None:
self._assets_widget.select_asset(select_id)

# Show cursor (top right of window) near cursor
self.resize(250, 400)
self.move(self.mapFromGlobal(pos) - QtCore.QPoint(self.width(), 0))

def showEvent(self, event):
super(SelectAssetDialog, self).showEvent(event)
self._on_show()


def pick_asset(node):
"""Show a user interface to select an Asset in the project

Expand All @@ -21,43 +76,15 @@ def pick_asset(node):

"""

pos = QtGui.QCursor.pos()

parm = node.parm("asset_name")
if not parm:
log.error("Node has no 'asset' parameter: %s", node)
return

# Construct the AssetWidget as a frameless popup so it automatically
# Construct a frameless popup so it automatically
# closes when clicked outside of it.
global tool
tool = AssetWidget(io)
tool.setContentsMargins(5, 5, 5, 5)
tool.setWindowTitle("Pick Asset")
tool.setStyleSheet(style.load_stylesheet())
tool.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.Popup)
tool.refresh()

# Select the current asset if there is any
name = parm.eval()
if name:
db_asset = io.find_one({"name": name, "type": "asset"})
if db_asset:
silo = db_asset.get("silo")
if silo:
tool.set_silo(silo)
tool.select_assets([name], expand=True)

# Show cursor (top right of window) near cursor
tool.resize(250, 400)
tool.move(tool.mapFromGlobal(pos) - QtCore.QPoint(tool.width(), 0))

def set_parameter_callback(index):
name = index.data(tool.model.DocumentRole)["name"]
parm.set(name)
tool.close()

tool.view.doubleClicked.connect(set_parameter_callback)
tool = SelectAssetDialog(parm)
tool.show()


Expand Down
14 changes: 5 additions & 9 deletions openpype/tools/assetcreator/app.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,12 @@
import os
import sys
import json
from subprocess import Popen
try:
import ftrack_api_old as ftrack_api
except Exception:
import ftrack_api

import ftrack_api
from Qt import QtWidgets, QtCore
from openpype.api import get_current_project_settings
from openpype import lib as pypelib
from avalon.vendor.Qt import QtWidgets, QtCore
from openpype.tools.utils.lib import qt_app_context
from avalon import io, api, style, schema
from avalon.tools import lib as parentlib
from . import widget, model

module = sys.modules[__name__]
Expand Down Expand Up @@ -630,7 +626,7 @@ def show(parent=None, debug=False, context=None):
if debug is True:
io.install()

with parentlib.application():
with qt_app_context():
window = Window(parent, context)
window.setStyleSheet(style.load_stylesheet())
window.show()
Expand Down
11 changes: 4 additions & 7 deletions openpype/tools/libraryloader/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class LibraryLoaderWindow(QtWidgets.QDialog):
message_timeout = 5000

def __init__(
self, parent=None, icon=None, show_projects=False, show_libraries=True
self, parent=None, show_projects=False, show_libraries=True
):
super(LibraryLoaderWindow, self).__init__(parent)

Expand Down Expand Up @@ -517,10 +517,7 @@ def closeEvent(self, event):
return super(LibraryLoaderWindow, self).closeEvent(event)


def show(
debug=False, parent=None, icon=None,
show_projects=False, show_libraries=True
):
def show(debug=False, parent=None, show_projects=False, show_libraries=True):
"""Display Loader GUI

Arguments:
Expand Down Expand Up @@ -555,9 +552,9 @@ def show(
import traceback
sys.excepthook = lambda typ, val, tb: traceback.print_last()

with tools_lib.application():
with tools_lib.qt_app_context():
window = LibraryLoaderWindow(
parent, icon, show_projects, show_libraries
parent, show_projects, show_libraries
)
window.show()

Expand Down
2 changes: 1 addition & 1 deletion openpype/tools/loader/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -631,7 +631,7 @@ def show(debug=False, parent=None, use_context=False):
api.Session["AVALON_PROJECT"] = any_project["name"]
module.project = any_project["name"]

with lib.application():
with lib.qt_app_context():
window = LoaderWindow(parent)
window.show()

Expand Down
12 changes: 8 additions & 4 deletions openpype/tools/loader/widgets.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,10 @@
VersionDelegate,
PrettyTimeDelegate
)
from openpype.tools.utils.widgets import OptionalMenu
from openpype.tools.utils.widgets import (
OptionalMenu,
PlaceholderLineEdit
)
from openpype.tools.utils.views import (
TreeViewSpinner,
DeselectableTreeView
Expand Down Expand Up @@ -175,7 +178,7 @@ def __init__(
family_proxy = FamiliesFilterProxyModel()
family_proxy.setSourceModel(proxy)

subset_filter = QtWidgets.QLineEdit(self)
subset_filter = PlaceholderLineEdit(self)
subset_filter.setPlaceholderText("Filter subsets..")

group_checkbox = QtWidgets.QCheckBox("Enable Grouping", self)
Expand Down Expand Up @@ -810,8 +813,9 @@ def set_thumbnail(self, doc_id=None):
{"_id": doc_id},
{"data.thumbnail_id"}
)

thumbnail_id = doc.get("data", {}).get("thumbnail_id")
thumbnail_id = None
if doc:
thumbnail_id = doc.get("data", {}).get("thumbnail_id")
if thumbnail_id == self.current_thumb_id:
if self.current_thumbnail is None:
self.set_pixmap()
Expand Down
3 changes: 3 additions & 0 deletions openpype/tools/utils/assets_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -564,6 +564,8 @@ class AssetsWidget(QtWidgets.QWidget):
refreshed = QtCore.Signal()
# on view selection change
selection_changed = QtCore.Signal()
# It was double clicked on view
double_clicked = QtCore.Signal()

def __init__(self, dbcon, parent=None):
super(AssetsWidget, self).__init__(parent=parent)
Expand Down Expand Up @@ -618,6 +620,7 @@ def __init__(self, dbcon, parent=None):
refresh_btn.clicked.connect(self.refresh)
current_asset_btn.clicked.connect(self.set_current_session_asset)
model.refreshed.connect(self._on_model_refresh)
view.doubleClicked.connect(self.double_clicked)

self._current_asset_btn = current_asset_btn
self._model = model
Expand Down
4 changes: 0 additions & 4 deletions openpype/tools/utils/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,6 @@
PROJECT_NAME_ROLE = QtCore.Qt.UserRole + 101
PROJECT_IS_ACTIVE_ROLE = QtCore.Qt.UserRole + 102

TASK_NAME_ROLE = QtCore.Qt.UserRole + 301
TASK_TYPE_ROLE = QtCore.Qt.UserRole + 302
TASK_ORDER_ROLE = QtCore.Qt.UserRole + 303

LOCAL_PROVIDER_ROLE = QtCore.Qt.UserRole + 500 # provider of active site
REMOTE_PROVIDER_ROLE = QtCore.Qt.UserRole + 501 # provider of remote site
LOCAL_PROGRESS_ROLE = QtCore.Qt.UserRole + 502 # percentage downld on active
Expand Down
Loading