Merge pull request #4255 from ynput/feature/OP-4634_Use-qtpy-in-tools

General: Update MacOs to PySide6
This commit is contained in:
Jakub Trllo 2023-01-17 15:53:52 +01:00 committed by GitHub
commit 37a4ec6564
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
201 changed files with 5944 additions and 2398 deletions

View file

@ -908,24 +908,25 @@ class ApplicationLaunchContext:
self.launch_args.extend(self.data.pop("app_args"))
# Handle launch environemtns
env = self.data.pop("env", None)
if env is not None and not isinstance(env, dict):
src_env = self.data.pop("env", None)
if src_env is not None and not isinstance(src_env, dict):
self.log.warning((
"Passed `env` kwarg has invalid type: {}. Expected: `dict`."
" Using `os.environ` instead."
).format(str(type(env))))
env = None
).format(str(type(src_env))))
src_env = None
if env is None:
env = os.environ
if src_env is None:
src_env = os.environ
# subprocess.Popen keyword arguments
self.kwargs = {
"env": {
key: str(value)
for key, value in env.items()
}
ignored_env = {"QT_API", }
env = {
key: str(value)
for key, value in src_env.items()
if key not in ignored_env
}
# subprocess.Popen keyword arguments
self.kwargs = {"env": env}
if platform.system().lower() == "windows":
# Detach new process from currently running process on Windows

View file

@ -11,7 +11,7 @@ class SearchComboBox(QtWidgets.QComboBox):
super(SearchComboBox, self).__init__(parent)
self.setEditable(True)
self.setInsertPolicy(self.NoInsert)
self.setInsertPolicy(QtWidgets.QComboBox.NoInsert)
self.lineEdit().setPlaceholderText(placeholder)
# Apply completer settings

View file

@ -156,8 +156,10 @@ class SyncProjectListWidget(QtWidgets.QWidget):
if selected_index and \
selected_index.isValid() and \
not self._selection_changed:
mode = QtCore.QItemSelectionModel.Select | \
QtCore.QItemSelectionModel.Rows
mode = (
QtCore.QItemSelectionModel.Select
| QtCore.QItemSelectionModel.Rows
)
self.project_list.selectionModel().select(selected_index, mode)
if self.current_project:
@ -271,8 +273,10 @@ class _SyncRepresentationWidget(QtWidgets.QWidget):
for selected_id in self._selected_ids:
index = self.model.get_index(selected_id)
if index and index.isValid():
mode = QtCore.QItemSelectionModel.Select | \
QtCore.QItemSelectionModel.Rows
mode = (
QtCore.QItemSelectionModel.Select
| QtCore.QItemSelectionModel.Rows
)
self.selection_model.select(index, mode)
existing_ids.add(selected_id)

View file

@ -19,7 +19,7 @@ class CopyFile(load.LoaderPlugin):
@staticmethod
def copy_file_to_clipboard(path):
from Qt import QtCore, QtWidgets
from qtpy import QtCore, QtWidgets
clipboard = QtWidgets.QApplication.clipboard()
assert clipboard, "Must have running QApplication instance"

View file

@ -19,7 +19,7 @@ class CopyFilePath(load.LoaderPlugin):
@staticmethod
def copy_path_to_clipboard(path):
from Qt import QtWidgets
from qtpy import QtWidgets
clipboard = QtWidgets.QApplication.clipboard()
assert clipboard, "Must have running QApplication instance"

View file

@ -5,7 +5,7 @@ import uuid
import clique
from pymongo import UpdateOne
import qargparse
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
from openpype import style
from openpype.client import get_versions, get_representations

View file

@ -1,7 +1,7 @@
import copy
from collections import defaultdict
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
from openpype.client import get_representations
from openpype.pipeline import load, Anatomy

View file

@ -14,7 +14,7 @@ CURRENT_FILE = os.path.abspath(__file__)
def show_error_messagebox(title, message, detail_message=None):
"""Function will show message and process ends after closing it."""
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
from openpype import style
app = QtWidgets.QApplication([])

View file

@ -157,7 +157,7 @@ def _load_stylesheet():
def _load_font():
"""Load and register fonts into Qt application."""
from Qt import QtGui
from qtpy import QtGui
# Check if font ids are still loaded
if _Cache.font_ids is not None:

View file

@ -47,7 +47,7 @@ def create_qcolor(*args):
*args (tuple): It is possible to pass initialization arguments for
Qcolor.
"""
from Qt import QtGui
from qtpy import QtGui
return QtGui.QColor(*args)

File diff suppressed because it is too large Load diff

View file

@ -1,11 +1,13 @@
import Qt
import qtpy
initialized = False
resources = None
if Qt.__binding__ == "PySide2":
if qtpy.API == "pyside6":
from . import pyside6_resources as resources
elif qtpy.API == "pyside2":
from . import pyside2_resources as resources
elif Qt.__binding__ == "PyQt5":
elif qtpy.API == "pyqt5":
from . import pyqt5_resources as resources

View file

@ -6,7 +6,7 @@ from openpype.client import (
get_output_link_versions,
)
from Qt import QtWidgets
from qtpy import QtWidgets
class SimpleLinkView(QtWidgets.QWidget):

View file

@ -1,4 +1,4 @@
from Qt import QtWidgets
from qtpy import QtWidgets
from .widgets import AttributeDefinitionsWidget

View file

@ -3,7 +3,7 @@ import collections
import uuid
import json
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
from openpype.lib import FileDefItem
from openpype.tools.utils import (
@ -599,14 +599,14 @@ class FilesView(QtWidgets.QListView):
def __init__(self, *args, **kwargs):
super(FilesView, self).__init__(*args, **kwargs)
self.setEditTriggers(QtWidgets.QListView.NoEditTriggers)
self.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
self.setSelectionMode(
QtWidgets.QAbstractItemView.ExtendedSelection
)
self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.setAcceptDrops(True)
self.setDragEnabled(True)
self.setDragDropMode(self.InternalMove)
self.setDragDropMode(QtWidgets.QAbstractItemView.InternalMove)
remove_btn = InViewButton(self)
pix_enabled = paint_image_with_color(
@ -616,7 +616,7 @@ class FilesView(QtWidgets.QListView):
get_image(filename="delete.png"), QtCore.Qt.gray
)
icon = QtGui.QIcon(pix_enabled)
icon.addPixmap(pix_disabled, icon.Disabled, icon.Off)
icon.addPixmap(pix_disabled, QtGui.QIcon.Disabled, QtGui.QIcon.Off)
remove_btn.setIcon(icon)
remove_btn.setEnabled(False)
@ -734,7 +734,7 @@ class FilesWidget(QtWidgets.QFrame):
layout = QtWidgets.QStackedLayout(self)
layout.setContentsMargins(0, 0, 0, 0)
layout.setStackingMode(layout.StackAll)
layout.setStackingMode(QtWidgets.QStackedLayout.StackAll)
layout.addWidget(empty_widget)
layout.addWidget(files_view)
layout.setCurrentWidget(empty_widget)

View file

@ -1,7 +1,7 @@
import uuid
import copy
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
from openpype.lib.attribute_definitions import (
AbtractAttrDef,

View file

@ -1,4 +1,4 @@
from Qt import QtCore
from qtpy import QtCore
FAMILY_ROLE = QtCore.Qt.UserRole + 1

View file

@ -1,5 +1,5 @@
import uuid
from Qt import QtGui, QtCore
from qtpy import QtGui, QtCore
from openpype.pipeline import discover_legacy_creator_plugins

View file

@ -1,13 +1,20 @@
import re
import inspect
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
import qtawesome
from openpype.pipeline.create import SUBSET_NAME_ALLOWED_SYMBOLS
from openpype.tools.utils import ErrorMessageBox
if hasattr(QtGui, "QRegularExpressionValidator"):
RegularExpressionValidatorClass = QtGui.QRegularExpressionValidator
RegularExpressionClass = QtCore.QRegularExpression
else:
RegularExpressionValidatorClass = QtGui.QRegExpValidator
RegularExpressionClass = QtCore.QRegExp
class CreateErrorMessageBox(ErrorMessageBox):
def __init__(
@ -82,12 +89,12 @@ class CreateErrorMessageBox(ErrorMessageBox):
content_layout.addWidget(tb_widget)
class SubsetNameValidator(QtGui.QRegExpValidator):
class SubsetNameValidator(RegularExpressionValidatorClass):
invalid = QtCore.Signal(set)
pattern = "^[{}]*$".format(SUBSET_NAME_ALLOWED_SYMBOLS)
def __init__(self):
reg = QtCore.QRegExp(self.pattern)
reg = RegularExpressionClass(self.pattern)
super(SubsetNameValidator, self).__init__(reg)
def validate(self, text, pos):

View file

@ -2,7 +2,7 @@ import sys
import traceback
import re
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
from openpype.client import get_asset_by_name, get_subsets
from openpype import style

View file

@ -1,4 +1,4 @@
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
from openpype.style import (
load_stylesheet,

View file

@ -16,7 +16,7 @@ travelled only very slightly with the cursor.
"""
import copy
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
class FlickData(object):

View file

@ -173,7 +173,7 @@ class ActionBar(QtWidgets.QWidget):
view.setResizeMode(QtWidgets.QListView.Adjust)
view.setSelectionMode(QtWidgets.QListView.NoSelection)
view.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
view.setEditTriggers(QtWidgets.QListView.NoEditTriggers)
view.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
view.setWrapping(True)
view.setGridSize(QtCore.QSize(70, 75))
view.setIconSize(QtCore.QSize(30, 30))
@ -423,7 +423,7 @@ class ActionHistory(QtWidgets.QPushButton):
return
widget = QtWidgets.QListWidget()
widget.setSelectionMode(widget.NoSelection)
widget.setSelectionMode(QtWidgets.QAbstractItemView.NoSelection)
widget.setStyleSheet("""
* {
font-family: "Courier New";

View file

@ -40,7 +40,7 @@ class ProjectIconView(QtWidgets.QListView):
# Workaround for scrolling being super slow or fast when
# toggling between the two visual modes
self.setVerticalScrollMode(self.ScrollPerPixel)
self.setVerticalScrollMode(QtWidgets.QAbstractItemView.ScrollPerPixel)
self.setObjectName("IconView")
self._mode = None

View file

@ -1,6 +1,6 @@
import sys
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
from openpype import style
from openpype.client import get_projects, get_project

View file

@ -1,7 +1,7 @@
import sys
import traceback
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
from openpype.client import get_projects, get_project
from openpype import style

View file

@ -1,4 +1,4 @@
from Qt import QtWidgets, QtGui, QtCore
from qtpy import QtWidgets, QtGui, QtCore
class LoadedInSceneDelegate(QtWidgets.QStyledItemDelegate):

View file

@ -1,5 +1,5 @@
import inspect
from Qt import QtGui
from qtpy import QtGui
import qtawesome
from openpype.lib.attribute_definitions import AbtractAttrDef

View file

@ -4,7 +4,7 @@ import math
import time
from uuid import uuid4
from Qt import QtCore, QtGui
from qtpy import QtCore, QtGui
import qtawesome
from openpype.client import (

View file

@ -5,7 +5,7 @@ import pprint
import traceback
import collections
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
from openpype.client import (
get_subset_families,
@ -35,6 +35,7 @@ from openpype.tools.utils import (
ErrorMessageBox,
lib as tools_lib
)
from openpype.tools.utils.lib import checkstate_int_to_enum
from openpype.tools.utils.delegates import (
VersionDelegate,
PrettyTimeDelegate
@ -47,6 +48,12 @@ from openpype.tools.utils.views import (
TreeViewSpinner,
DeselectableTreeView
)
from openpype.tools.utils.constants import (
LOCAL_PROVIDER_ROLE,
REMOTE_PROVIDER_ROLE,
LOCAL_AVAILABILITY_ROLE,
REMOTE_AVAILABILITY_ROLE,
)
from openpype.tools.assetlinks.widgets import SimpleLinkView
from .model import (
@ -60,13 +67,6 @@ from .model import (
from . import lib
from .delegates import LoadedInSceneDelegate
from openpype.tools.utils.constants import (
LOCAL_PROVIDER_ROLE,
REMOTE_PROVIDER_ROLE,
LOCAL_AVAILABILITY_ROLE,
REMOTE_AVAILABILITY_ROLE
)
class OverlayFrame(QtWidgets.QFrame):
def __init__(self, label, parent):
@ -264,8 +264,8 @@ class SubsetWidget(QtWidgets.QWidget):
group_checkbox.stateChanged.connect(self.set_grouping)
subset_filter.textChanged.connect(proxy.setFilterRegExp)
subset_filter.textChanged.connect(view.expandAll)
subset_filter.textChanged.connect(self._subset_changed)
model.refreshed.connect(self.refreshed)
self.proxy = proxy
@ -293,6 +293,13 @@ class SubsetWidget(QtWidgets.QWidget):
current_index=False):
self.model.set_grouping(state)
def _subset_changed(self, text):
if hasattr(self.proxy, "setFilterRegularExpression"):
self.proxy.setFilterRegularExpression(text)
else:
self.proxy.setFilterRegExp(text)
self.view.expandAll()
def set_loading_state(self, loading, empty):
view = self.view
@ -1059,7 +1066,10 @@ class FamilyListView(QtWidgets.QListView):
checked_families = []
for row in range(model.rowCount()):
index = model.index(row, 0)
if index.data(QtCore.Qt.CheckStateRole) == QtCore.Qt.Checked:
checked = checkstate_int_to_enum(
index.data(QtCore.Qt.CheckStateRole)
)
if checked == QtCore.Qt.Checked:
family = index.data(QtCore.Qt.DisplayRole)
checked_families.append(family)
@ -1093,13 +1103,15 @@ class FamilyListView(QtWidgets.QListView):
self.blockSignals(True)
for index in indexes:
index_state = index.data(QtCore.Qt.CheckStateRole)
index_state = checkstate_int_to_enum(
index.data(QtCore.Qt.CheckStateRole)
)
if index_state == state:
continue
new_state = state
if new_state is None:
if index_state == QtCore.Qt.Checked:
if index_state in QtCore.Qt.Checked:
new_state = QtCore.Qt.Unchecked
else:
new_state = QtCore.Qt.Checked

View file

@ -2,7 +2,7 @@ import sys
import time
import logging
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
from openpype.client import get_last_version_by_subset_id
from openpype import style

View file

@ -1,6 +1,6 @@
from collections import defaultdict
from Qt import QtCore
from qtpy import QtCore
import qtawesome
from openpype.tools.utils import models

View file

@ -1,4 +1,4 @@
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
class View(QtWidgets.QTreeView):
@ -10,7 +10,7 @@ class View(QtWidgets.QTreeView):
# view settings
self.setAlternatingRowColors(False)
self.setSortingEnabled(True)
self.setSelectionMode(self.ExtendedSelection)
self.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
def get_indices(self):

View file

@ -1,7 +1,7 @@
import logging
from collections import defaultdict
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
from openpype.tools.utils.models import TreeModel
from openpype.tools.utils.lib import (

View file

@ -1,5 +1,7 @@
from qtpy import QtCore, QtWidgets
from openpype.tools.utils.lib import checkstate_int_to_enum
class ComboItemDelegate(QtWidgets.QStyledItemDelegate):
"""
@ -87,7 +89,9 @@ class MultiSelectionComboBox(QtWidgets.QComboBox):
return
index_flags = current_index.flags()
state = current_index.data(QtCore.Qt.CheckStateRole)
state = checkstate_int_to_enum(
current_index.data(QtCore.Qt.CheckStateRole)
)
new_state = None
if event.type() == QtCore.QEvent.MouseButtonRelease:
@ -184,7 +188,9 @@ class MultiSelectionComboBox(QtWidgets.QComboBox):
def value(self):
items = list()
for idx in range(self.count()):
state = self.itemData(idx, role=QtCore.Qt.CheckStateRole)
state = checkstate_int_to_enum(
self.itemData(idx, role=QtCore.Qt.CheckStateRole)
)
if state == QtCore.Qt.Checked:
items.append(
self.itemData(idx, role=QtCore.Qt.UserRole)
@ -194,7 +200,9 @@ class MultiSelectionComboBox(QtWidgets.QComboBox):
def checked_items_text(self):
items = list()
for idx in range(self.count()):
state = self.itemData(idx, role=QtCore.Qt.CheckStateRole)
state = checkstate_int_to_enum(
self.itemData(idx, role=QtCore.Qt.CheckStateRole)
)
if state == QtCore.Qt.Checked:
items.append(self.itemText(idx))
return items

View file

@ -134,9 +134,9 @@ class HierarchyView(QtWidgets.QTreeView):
main_delegate = QtWidgets.QStyledItemDelegate()
self.setItemDelegate(main_delegate)
self.setAlternatingRowColors(True)
self.setSelectionMode(HierarchyView.ExtendedSelection)
self.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.setEditTriggers(HierarchyView.AllEditTriggers)
self.setEditTriggers(QtWidgets.QAbstractItemView.AllEditTriggers)
column_delegates = {}
column_key_to_index = {}

View file

@ -1,4 +1,4 @@
from Qt import QtCore
from qtpy import QtCore
# ID of context item in instance view
CONTEXT_ID = "context"

View file

@ -1,7 +1,7 @@
import collections
from abc import abstractmethod, abstractproperty
from Qt import QtCore
from qtpy import QtCore
from openpype.lib.events import Event
from openpype.pipeline.create import CreatedInstance

View file

@ -1,4 +1,4 @@
from Qt import QtWidgets
from qtpy import QtWidgets
from .report_items import (
PublishReport

View file

@ -1,4 +1,4 @@
from Qt import QtCore
from qtpy import QtCore
ITEM_ID_ROLE = QtCore.Qt.UserRole + 1

View file

@ -1,5 +1,5 @@
import collections
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
from .constants import (
ITEM_IS_GROUP_ROLE,
ITEM_ERRORED_ROLE,
@ -201,10 +201,10 @@ class GroupItemDelegate(QtWidgets.QStyledItemDelegate):
style = QtWidgets.QApplicaion.style()
style.proxy().drawPrimitive(
style.PE_PanelItemViewItem, option, painter, widget
QtWidgets.QStyle.PE_PanelItemViewItem, option, painter, widget
)
_rect = style.proxy().subElementRect(
style.SE_ItemViewItemText, option, widget
QtWidgets.QStyle.SE_ItemViewItemText, option, widget
)
bg_rect = QtCore.QRectF(option.rect)
bg_rect.setY(_rect.y())
@ -265,7 +265,7 @@ class GroupItemDelegate(QtWidgets.QStyledItemDelegate):
else:
style = QtWidgets.QApplicaion.style()
_rect = style.proxy().subElementRect(
style.SE_ItemViewItemText, option, widget
QtWidgets.QStyle.SE_ItemViewItemText, option, widget
)
bg_rect = QtCore.QRectF(option.rect)

View file

@ -1,5 +1,5 @@
import uuid
from Qt import QtCore, QtGui
from qtpy import QtCore, QtGui
import pyblish.api

View file

@ -1,5 +1,5 @@
from math import ceil
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
from openpype.widgets.nice_checkbox import NiceCheckbox
@ -76,11 +76,11 @@ class PluginLoadReportWidget(QtWidgets.QWidget):
super(PluginLoadReportWidget, self).__init__(parent)
view = QtWidgets.QTreeView(self)
view.setEditTriggers(view.NoEditTriggers)
view.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
view.setTextElideMode(QtCore.Qt.ElideLeft)
view.setHeaderHidden(True)
view.setAlternatingRowColors(True)
view.setVerticalScrollMode(view.ScrollPerPixel)
view.setVerticalScrollMode(QtWidgets.QAbstractItemView.ScrollPerPixel)
model = PluginLoadReportModel()
view.setModel(model)
@ -372,8 +372,10 @@ class PublishReportViewerWidget(QtWidgets.QFrame):
instances_view.setModel(instances_proxy)
instances_view.setIndentation(0)
instances_view.setHeaderHidden(True)
instances_view.setEditTriggers(QtWidgets.QTreeView.NoEditTriggers)
instances_view.setSelectionMode(QtWidgets.QTreeView.ExtendedSelection)
instances_view.setEditTriggers(
QtWidgets.QAbstractItemView.NoEditTriggers)
instances_view.setSelectionMode(
QtWidgets.QAbstractItemView.ExtendedSelection)
instances_view.setExpandsOnDoubleClick(False)
instances_delegate = GroupItemDelegate(instances_view)
@ -393,8 +395,10 @@ class PublishReportViewerWidget(QtWidgets.QFrame):
plugins_view.setModel(plugins_proxy)
plugins_view.setIndentation(0)
plugins_view.setHeaderHidden(True)
plugins_view.setSelectionMode(QtWidgets.QTreeView.ExtendedSelection)
plugins_view.setEditTriggers(QtWidgets.QTreeView.NoEditTriggers)
plugins_view.setSelectionMode(
QtWidgets.QAbstractItemView.ExtendedSelection)
plugins_view.setEditTriggers(
QtWidgets.QAbstractItemView.NoEditTriggers)
plugins_view.setExpandsOnDoubleClick(False)
plugins_delegate = GroupItemDelegate(plugins_view)

View file

@ -4,7 +4,7 @@ import six
import uuid
import appdirs
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
from openpype import style
from openpype.resources import get_openpype_icon_filepath

View file

@ -1,6 +1,6 @@
import collections
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
from openpype.tools.utils import (
PlaceholderLineEdit,
@ -193,7 +193,7 @@ class AssetsDialog(QtWidgets.QDialog):
asset_view.setModel(proxy_model)
asset_view.setHeaderHidden(True)
asset_view.setFrameShape(QtWidgets.QFrame.NoFrame)
asset_view.setEditTriggers(QtWidgets.QTreeView.NoEditTriggers)
asset_view.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
asset_view.setAlternatingRowColors(True)
asset_view.setSelectionBehavior(QtWidgets.QTreeView.SelectRows)
asset_view.setAllColumnsShowFocus(True)

View file

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
from openpype.style import get_objected_colors
@ -29,8 +29,8 @@ class _VLineWidget(QtWidgets.QWidget):
pos_x = self.width()
painter = QtGui.QPainter(self)
painter.setRenderHints(
painter.Antialiasing
| painter.SmoothPixmapTransform
QtGui.QPainter.Antialiasing
| QtGui.QPainter.SmoothPixmapTransform
)
if self._color:
pen = QtGui.QPen(self._color)
@ -73,8 +73,8 @@ class _HBottomLineWidget(QtWidgets.QWidget):
)
painter = QtGui.QPainter(self)
painter.setRenderHints(
painter.Antialiasing
| painter.SmoothPixmapTransform
QtGui.QPainter.Antialiasing
| QtGui.QPainter.SmoothPixmapTransform
)
if self._color:
pen = QtGui.QPen(self._color)
@ -131,8 +131,8 @@ class _HTopCornerLineWidget(QtWidgets.QWidget):
painter = QtGui.QPainter(self)
painter.setRenderHints(
painter.Antialiasing
| painter.SmoothPixmapTransform
QtGui.QPainter.Antialiasing
| QtGui.QPainter.SmoothPixmapTransform
)
if self._color:
pen = QtGui.QPen(self._color)

View file

@ -23,7 +23,7 @@ Only one item can be selected at a time.
import re
import collections
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
from openpype.widgets.nice_checkbox import NiceCheckbox

View file

@ -1,6 +1,6 @@
import re
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
from openpype.pipeline.create import (
SUBSET_NAME_ALLOWED_SYMBOLS,

View file

@ -3,7 +3,7 @@ try:
except Exception:
commonmark = None
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
class HelpButton(QtWidgets.QPushButton):

View file

@ -1,6 +1,6 @@
import os
from Qt import QtGui
from qtpy import QtGui
def get_icon_path(icon_name=None, filename=None):

View file

@ -24,11 +24,11 @@ selection can be enabled disabled using checkbox or keyboard key presses:
"""
import collections
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
from openpype.style import get_objected_colors
from openpype.widgets.nice_checkbox import NiceCheckbox
from openpype.tools.utils.lib import html_escape
from openpype.tools.utils.lib import html_escape, checkstate_int_to_enum
from .widgets import AbstractInstanceView
from ..constants import (
INSTANCE_ID_ROLE,
@ -86,9 +86,9 @@ class ListItemDelegate(QtWidgets.QStyledItemDelegate):
painter.save()
painter.setRenderHints(
painter.Antialiasing
| painter.SmoothPixmapTransform
| painter.TextAntialiasing
QtGui.QPainter.Antialiasing
| QtGui.QPainter.SmoothPixmapTransform
| QtGui.QPainter.TextAntialiasing
)
# Draw backgrounds
@ -272,6 +272,7 @@ class InstanceListGroupWidget(QtWidgets.QFrame):
state(QtCore.Qt.CheckState): Checkstate of checkbox. Have 3
variants Unchecked, Checked and PartiallyChecked.
"""
if self.checkstate() == state:
return
self._ignore_state_change = True
@ -279,7 +280,8 @@ class InstanceListGroupWidget(QtWidgets.QFrame):
self._ignore_state_change = False
def checkstate(self):
"""CUrrent checkstate of "active" checkbox."""
"""Current checkstate of "active" checkbox."""
return self.toggle_checkbox.checkState()
def _on_checkbox_change(self, state):
@ -887,6 +889,7 @@ class InstanceListView(AbstractInstanceView):
self._instance_view.setExpanded(proxy_index, expanded)
def _on_group_toggle_request(self, group_name, state):
state = checkstate_int_to_enum(state)
if state == QtCore.Qt.PartiallyChecked:
return
@ -1031,17 +1034,20 @@ class InstanceListView(AbstractInstanceView):
selection_model.setCurrentIndex(
first_index,
selection_model.ClearAndSelect | selection_model.Rows
QtCore.QItemSelectionModel.ClearAndSelect
| QtCore.QItemSelectionModel.Rows
)
for index in select_indexes:
proxy_index = proxy_model.mapFromSource(index)
selection_model.select(
proxy_index,
selection_model.Select | selection_model.Rows
QtCore.QItemSelectionModel.Select
| QtCore.QItemSelectionModel.Rows
)
selection_model.setCurrentIndex(
last_index,
selection_model.Select | selection_model.Rows
QtCore.QItemSelectionModel.Select
| QtCore.QItemSelectionModel.Rows
)

View file

@ -1,4 +1,4 @@
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
from .border_label_widget import BorderedLabelWidget
@ -172,7 +172,7 @@ class OverviewWidget(QtWidgets.QFrame):
self._current_state = new_state
anim_is_running = (
self._change_anim.state() == self._change_anim.Running
self._change_anim.state() == QtCore.QAbstractAnimation.Running
)
if not animate:
self._change_visibility_for_state()
@ -184,9 +184,9 @@ class OverviewWidget(QtWidgets.QFrame):
self._max_widget_width = self._subset_views_widget.maximumWidth()
if new_state == "create":
direction = self._change_anim.Backward
direction = QtCore.QAbstractAnimation.Backward
else:
direction = self._change_anim.Forward
direction = QtCore.QAbstractAnimation.Forward
self._change_anim.setDirection(direction)
if not anim_is_running:

View file

@ -1,4 +1,4 @@
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
from openpype.tools.attribute_defs import create_widget_for_attr_def

View file

@ -2,7 +2,7 @@ import os
import json
import time
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
from .widgets import (
StopBtn,
@ -230,7 +230,7 @@ class PublishFrame(QtWidgets.QWidget):
self._shrunken = shrunk
anim_is_running = (
self._shrunk_anim.state() == self._shrunk_anim.Running
self._shrunk_anim.state() == QtCore.QAbstractAnimation.Running
)
if not self.isVisible():
if anim_is_running:

View file

@ -1,4 +1,4 @@
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
from openpype.tools.utils import set_style_property

View file

@ -1,4 +1,4 @@
from Qt import QtCore, QtGui
from qtpy import QtCore, QtGui
from openpype.tools.utils.tasks_widget import TasksWidget, TASK_NAME_ROLE
from openpype.tools.utils.lib import get_default_task_icon

View file

@ -1,7 +1,7 @@
import os
import uuid
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
from openpype.style import get_objected_colors
from openpype.lib import (
@ -126,11 +126,14 @@ class ThumbnailPainterWidget(QtWidgets.QWidget):
new_pix.fill(QtCore.Qt.transparent)
pix_painter = QtGui.QPainter()
pix_painter.begin(new_pix)
pix_painter.setRenderHints(
pix_painter.Antialiasing
| pix_painter.SmoothPixmapTransform
| pix_painter.HighQualityAntialiasing
render_hints = (
QtGui.QPainter.Antialiasing
| QtGui.QPainter.SmoothPixmapTransform
)
if hasattr(QtGui.QPainter, "HighQualityAntialiasing"):
render_hints |= QtGui.QPainter.HighQualityAntialiasing
pix_painter.setRenderHints(render_hints)
pix_painter.drawPixmap(pos_x, pos_y, scaled_pix)
pix_painter.end()
return new_pix
@ -159,11 +162,13 @@ class ThumbnailPainterWidget(QtWidgets.QWidget):
new_pix.fill(QtCore.Qt.transparent)
pix_painter = QtGui.QPainter()
pix_painter.begin(new_pix)
pix_painter.setRenderHints(
pix_painter.Antialiasing
| pix_painter.SmoothPixmapTransform
| pix_painter.HighQualityAntialiasing
render_hints = (
QtGui.QPainter.Antialiasing
| QtGui.QPainter.SmoothPixmapTransform
)
if hasattr(QtGui.QPainter, "HighQualityAntialiasing"):
render_hints |= QtGui.QPainter.HighQualityAntialiasing
pix_painter.setRenderHints(render_hints)
tiled_rect = QtCore.QRectF(
pos_x, pos_y, scaled_pix.width(), scaled_pix.height()
@ -239,11 +244,15 @@ class ThumbnailPainterWidget(QtWidgets.QWidget):
final_painter = QtGui.QPainter()
final_painter.begin(final_pix)
final_painter.setRenderHints(
final_painter.Antialiasing
| final_painter.SmoothPixmapTransform
| final_painter.HighQualityAntialiasing
render_hints = (
QtGui.QPainter.Antialiasing
| QtGui.QPainter.SmoothPixmapTransform
)
if hasattr(QtGui.QPainter, "HighQualityAntialiasing"):
render_hints |= QtGui.QPainter.HighQualityAntialiasing
final_painter.setRenderHints(render_hints)
final_painter.setBrush(QtGui.QBrush(self.thumbnail_bg_color))
final_painter.setPen(bg_pen)
final_painter.drawRect(rect)

View file

@ -4,7 +4,7 @@ try:
except Exception:
commonmark = None
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
from openpype.tools.utils import BaseClickableFrame, ClickableFrame
from .widgets import (
@ -26,7 +26,7 @@ class ValidationErrorInstanceList(QtWidgets.QListView):
self.setObjectName("ValidationErrorInstanceList")
self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.setSelectionMode(QtWidgets.QListView.ExtendedSelection)
self.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
def minimumSizeHint(self):
return self.sizeHint()

View file

@ -6,7 +6,7 @@ import functools
import uuid
import shutil
import collections
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
import qtawesome
from openpype.lib.attribute_definitions import UnknownDef
@ -143,9 +143,9 @@ class PublishIconBtn(IconButton):
icon = QtGui.QIcon()
image = QtGui.QImage(pixmap_path)
enabled_pixmap = self.paint_image_with_color(image, enabled_color)
icon.addPixmap(enabled_pixmap, icon.Normal)
icon.addPixmap(enabled_pixmap, QtGui.QIcon.Normal)
disabled_pixmap = self.paint_image_with_color(image, disabled_color)
icon.addPixmap(disabled_pixmap, icon.Disabled)
icon.addPixmap(disabled_pixmap, QtGui.QIcon.Disabled)
return icon
@staticmethod
@ -412,7 +412,8 @@ class AssetsField(BaseClickableFrame):
icon_btn
):
size_policy = widget.sizePolicy()
size_policy.setVerticalPolicy(size_policy.MinimumExpanding)
size_policy.setVerticalPolicy(
QtWidgets.QSizePolicy.MinimumExpanding)
widget.setSizePolicy(size_policy)
name_input.clicked.connect(self._mouse_release_callback)
icon_btn.clicked.connect(self._mouse_release_callback)
@ -595,7 +596,8 @@ class TasksCombobox(QtWidgets.QComboBox):
# Make sure combobox is extended horizontally
size_policy = self.sizePolicy()
size_policy.setHorizontalPolicy(size_policy.MinimumExpanding)
size_policy.setHorizontalPolicy(
QtWidgets.QSizePolicy.MinimumExpanding)
self.setSizePolicy(size_policy)
def set_invalid_empty_task(self, invalid=True):
@ -1777,11 +1779,11 @@ class CreateNextPageOverlay(QtWidgets.QWidget):
return
self._increasing = increasing
if increasing:
self._change_anim.setDirection(self._change_anim.Forward)
self._change_anim.setDirection(QtCore.QAbstractAnimation.Forward)
else:
self._change_anim.setDirection(self._change_anim.Backward)
self._change_anim.setDirection(QtCore.QAbstractAnimation.Backward)
if self._change_anim.state() != self._change_anim.Running:
if self._change_anim.state() != QtCore.QAbstractAnimation.Running:
self._change_anim.start()
def set_visible(self, visible):
@ -1855,8 +1857,8 @@ class CreateNextPageOverlay(QtWidgets.QWidget):
painter.setClipRect(event.rect())
painter.setRenderHints(
painter.Antialiasing
| painter.SmoothPixmapTransform
QtGui.QPainter.Antialiasing
| QtGui.QPainter.SmoothPixmapTransform
)
painter.setPen(QtCore.Qt.NoPen)

View file

@ -1,6 +1,6 @@
import collections
import copy
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
from openpype import (
resources,

View file

@ -6,8 +6,9 @@ import ctypes
import platform
import contextlib
from qtpy import QtCore, QtGui, QtWidgets
from . import control, settings, util, window
from Qt import QtCore, QtGui, QtWidgets
self = sys.modules[__name__]

View file

@ -1,4 +1,4 @@
from Qt import QtCore
from qtpy import QtCore
EXPANDER_WIDTH = 20

View file

@ -11,7 +11,7 @@ import inspect
import logging
import collections
from Qt import QtCore
from qtpy import QtCore
import pyblish.api
import pyblish.util

View file

@ -1,6 +1,6 @@
import platform
from Qt import QtWidgets, QtGui, QtCore
from qtpy import QtWidgets, QtGui, QtCore
from . import model
from .awesome import tags as awesome

View file

@ -29,7 +29,7 @@ import pyblish
from . import settings, util
from .awesome import tags as awesome
from Qt import QtCore, QtGui
from qtpy import QtCore, QtGui
import qtawesome
from six import text_type
from .constants import PluginStates, InstanceStates, GroupStates, Roles
@ -38,11 +38,14 @@ from openpype.settings import get_system_settings
# ItemTypes
InstanceType = QtGui.QStandardItem.UserType
PluginType = QtGui.QStandardItem.UserType + 1
GroupType = QtGui.QStandardItem.UserType + 2
TerminalLabelType = QtGui.QStandardItem.UserType + 3
TerminalDetailType = QtGui.QStandardItem.UserType + 4
UserType = QtGui.QStandardItem.UserType
if hasattr(UserType, "value"):
UserType = UserType.value
InstanceType = UserType
PluginType = UserType + 1
GroupType = UserType + 2
TerminalLabelType = UserType + 3
TerminalDetailType = UserType + 4
class QAwesomeTextIconFactory:

View file

@ -11,7 +11,7 @@ import numbers
import copy
import collections
from Qt import QtCore
from qtpy import QtCore
from six import text_type
import pyblish.api

View file

@ -1,4 +1,4 @@
from Qt import QtCore
from qtpy import QtCore
class Spin:

View file

@ -6,7 +6,7 @@ import json
import os
import six
from Qt import QtCore, QtGui
from qtpy import QtCore, QtGui
_default_options = {

View file

@ -1,4 +1,4 @@
from Qt import QtCore, QtWidgets
from qtpy import QtCore, QtWidgets
from . import model
from .constants import Roles, EXPANDER_WIDTH
# Imported when used
@ -24,7 +24,7 @@ class OverviewView(QtWidgets.QTreeView):
self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
self.setItemsExpandable(True)
self.setVerticalScrollMode(QtWidgets.QTreeView.ScrollPerPixel)
self.setVerticalScrollMode(QtWidgets.QAbstractItemView.ScrollPerPixel)
self.setHeaderHidden(True)
self.setRootIsDecorated(False)
self.setIndentation(0)
@ -248,7 +248,7 @@ class TerminalView(QtWidgets.QTreeView):
self.setAutoScroll(False)
self.setHeaderHidden(True)
self.setIndentation(0)
self.setVerticalScrollMode(QtWidgets.QTreeView.ScrollPerPixel)
self.setVerticalScrollMode(QtWidgets.QAbstractItemView.ScrollPerPixel)
self.verticalScrollBar().setSingleStep(10)
self.setRootIsDecorated(False)

View file

@ -1,5 +1,5 @@
import sys
from Qt import QtCore, QtWidgets, QtGui
from qtpy import QtCore, QtWidgets, QtGui
from . import model, delegate, view, awesome
from .constants import PluginStates, InstanceStates, Roles

View file

@ -45,7 +45,7 @@ from functools import partial
from . import delegate, model, settings, util, view, widgets
from .awesome import tags as awesome
from Qt import QtCore, QtGui, QtWidgets
from qtpy import QtCore, QtGui, QtWidgets
from .constants import (
PluginStates, PluginActionStates, InstanceStates, GroupStates, Roles
)

View file

@ -1,6 +1,6 @@
import os
from Qt import QtGui
from qtpy import QtGui
def get_icon_path(icon_name=None, filename=None):

View file

@ -1,7 +1,7 @@
import os
from openpype_modules import sync_server
from Qt import QtGui
from qtpy import QtGui
def walk_hierarchy(node):

View file

@ -3,7 +3,7 @@ import logging
from collections import defaultdict
from Qt import QtCore, QtGui
from qtpy import QtCore, QtGui
import qtawesome
from openpype.host import ILoadHost
@ -482,8 +482,13 @@ class FilterProxyModel(QtCore.QSortFilterProxyModel):
return True
# Filter by regex
if not self.filterRegExp().isEmpty():
pattern = re.escape(self.filterRegExp().pattern())
if hasattr(self, "filterRegularExpression"):
regex = self.filterRegularExpression()
else:
regex = self.filterRegExp()
pattern = regex.pattern()
if pattern:
pattern = re.escape(pattern)
if not self._matches(row, parent, pattern):
return False

View file

@ -1,6 +1,6 @@
import collections
import logging
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
import qtawesome
from bson.objectid import ObjectId

View file

@ -2,7 +2,7 @@ import collections
import logging
from functools import partial
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
import qtawesome
from bson.objectid import ObjectId
@ -48,7 +48,7 @@ class SceneInventoryView(QtWidgets.QTreeView):
self.setIndentation(12)
self.setAlternatingRowColors(True)
self.setSortingEnabled(True)
self.setSelectionMode(self.ExtendedSelection)
self.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.customContextMenuRequested.connect(self._show_right_mouse_menu)
self._hierarchy_view = False
@ -546,9 +546,9 @@ class SceneInventoryView(QtWidgets.QTreeView):
selection_model = self.selectionModel()
select_mode = {
"select": selection_model.Select,
"deselect": selection_model.Deselect,
"toggle": selection_model.Toggle,
"select": QtCore.QItemSelectionModel.Select,
"deselect": QtCore.QItemSelectionModel.Deselect,
"toggle": QtCore.QItemSelectionModel.Toggle,
}[options.get("mode", "select")]
for index in iter_model_rows(model, 0):
@ -559,7 +559,7 @@ class SceneInventoryView(QtWidgets.QTreeView):
name = item.get("objectName")
if name in object_names:
self.scrollTo(index) # Ensure item is visible
flags = select_mode | selection_model.Rows
flags = select_mode | QtCore.QItemSelectionModel.Rows
selection_model.select(index, flags)
object_names.remove(name)

View file

@ -1,4 +1,4 @@
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
from openpype import style
@ -8,7 +8,7 @@ class ButtonWithMenu(QtWidgets.QToolButton):
self.setObjectName("ButtonWithMenu")
self.setPopupMode(self.MenuButtonPopup)
self.setPopupMode(QtWidgets.QToolButton.MenuButtonPopup)
menu = QtWidgets.QMenu(self)
self.setMenu(menu)
@ -42,7 +42,7 @@ class SearchComboBox(QtWidgets.QComboBox):
super(SearchComboBox, self).__init__(parent)
self.setEditable(True)
self.setInsertPolicy(self.NoInsert)
self.setInsertPolicy(QtWidgets.QComboBox.NoInsert)
combobox_delegate = QtWidgets.QStyledItemDelegate(self)
self.setItemDelegate(combobox_delegate)

View file

@ -1,7 +1,7 @@
import os
import sys
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
import qtawesome
from openpype import style
@ -160,7 +160,10 @@ class SceneInventoryWindow(QtWidgets.QDialog):
self._model.set_hierarchy_view(enabled)
def _on_text_filter_change(self, text_filter):
self._proxy.setFilterRegExp(text_filter)
if hasattr(self._proxy, "setFilterRegularExpression"):
self._proxy.setFilterRegularExpression(text_filter)
else:
self._proxy.setFilterRegExp(text_filter)
def _on_outdated_state_change(self):
self._proxy.set_filter_outdated(

View file

@ -339,7 +339,7 @@ class BreadcrumbsButton(QtWidgets.QToolButton):
# fixed size breadcrumbs
self.setMinimumSize(self.minimumSizeHint())
size_policy = self.sizePolicy()
size_policy.setVerticalPolicy(size_policy.Minimum)
size_policy.setVerticalPolicy(QtWidgets.QSizePolicy.Minimum)
self.setSizePolicy(size_policy)
menu.triggered.connect(self._on_menu_click)
@ -369,7 +369,7 @@ class BreadcrumbsAddressBar(QtWidgets.QFrame):
super(BreadcrumbsAddressBar, self).__init__(parent)
self.setAutoFillBackground(True)
self.setFrameShape(self.StyledPanel)
self.setFrameShape(QtWidgets.QFrame.StyledPanel)
# Edit presented path textually
proxy_model = BreadcrumbsProxy()

View file

@ -1,4 +1,5 @@
from qtpy import QtCore, QtGui, QtWidgets
from openpype.tools.utils.lib import checkstate_int_to_enum
class ComboItemDelegate(QtWidgets.QStyledItemDelegate):
@ -108,7 +109,9 @@ class MultiSelectionComboBox(QtWidgets.QComboBox):
return
index_flags = current_index.flags()
state = current_index.data(QtCore.Qt.CheckStateRole)
state = checkstate_int_to_enum(
current_index.data(QtCore.Qt.CheckStateRole)
)
new_state = None
if event.type() == QtCore.QEvent.MouseButtonRelease:
@ -311,7 +314,9 @@ class MultiSelectionComboBox(QtWidgets.QComboBox):
def value(self):
items = list()
for idx in range(self.count()):
state = self.itemData(idx, role=QtCore.Qt.CheckStateRole)
state = checkstate_int_to_enum(
self.itemData(idx, role=QtCore.Qt.CheckStateRole)
)
if state == QtCore.Qt.Checked:
items.append(
self.itemData(idx, role=QtCore.Qt.UserRole)
@ -321,7 +326,9 @@ class MultiSelectionComboBox(QtWidgets.QComboBox):
def checked_items_text(self):
items = list()
for idx in range(self.count()):
state = self.itemData(idx, role=QtCore.Qt.CheckStateRole)
state = checkstate_int_to_enum(
self.itemData(idx, role=QtCore.Qt.CheckStateRole)
)
if state == QtCore.Qt.Checked:
items.append(self.itemText(idx))
return items

View file

@ -27,8 +27,13 @@ class RecursiveSortFilterProxyModel(QtCore.QSortFilterProxyModel):
if not parent.isValid():
return False
regex = self.filterRegExp()
if not regex.isEmpty() and regex.isValid():
if hasattr(self, "filterRegularExpression"):
regex = self.filterRegularExpression()
else:
regex = self.filterRegExp()
pattern = regex.pattern()
if pattern and regex.isValid():
pattern = regex.pattern()
compiled_regex = re.compile(pattern, re.IGNORECASE)
source_model = self.sourceModel()
@ -106,7 +111,10 @@ class SearchEntitiesDialog(QtWidgets.QDialog):
def _on_filter_timer(self):
text = self._filter_edit.text()
self._proxy.setFilterRegExp(text)
if hasattr(self._proxy, "setFilterRegularExpression"):
self._proxy.setFilterRegularExpression(text)
else:
self._proxy.setFilterRegExp(text)
# WARNING This expanding and resizing is relatively slow.
self._view.expandAll()

View file

@ -54,7 +54,7 @@ class AddibleComboBox(QtWidgets.QComboBox):
super(AddibleComboBox, self).__init__(parent)
self.setEditable(True)
# self.setInsertPolicy(self.NoInsert)
# self.setInsertPolicy(QtWidgets.QComboBox.NoInsert)
self.lineEdit().setPlaceholderText(placeholder)
# self.lineEdit().returnPressed.connect(self.on_return_pressed)

View file

@ -5,14 +5,15 @@ from qtpy import QtCore
class RecursiveSortFilterProxyModel(QtCore.QSortFilterProxyModel):
"""Filters to the regex if any of the children matches allow parent"""
def filterAcceptsRow(self, row, parent):
regex = self.filterRegExp()
if not regex.isEmpty():
pattern = regex.pattern()
if hasattr(self, "filterRegularExpression"):
regex = self.filterRegularExpression()
else:
regex = self.filterRegExp()
pattern = regex.pattern()
if pattern:
model = self.sourceModel()
source_index = model.index(row, self.filterKeyColumn(), parent)
if source_index.isValid():
# Check current index itself
key = model.data(source_index, self.filterRole())
if re.search(pattern, key, re.IGNORECASE):

View file

@ -86,7 +86,10 @@ def preserve_selection(tree_view,
model = tree_view.model()
selection_model = tree_view.selectionModel()
flags = selection_model.Select | selection_model.Rows
flags = (
QtCore.QItemSelectionModel.Select
| QtCore.QItemSelectionModel.Rows
)
if current_index:
current_index_value = tree_view.currentIndex().data(role)
@ -410,7 +413,10 @@ class AssetWidget(QtWidgets.QWidget):
selection_model.clearSelection()
# Select
mode = selection_model.Select | selection_model.Rows
mode = (
QtCore.QItemSelectionModel.Select
| QtCore.QItemSelectionModel.Rows
)
for index in _iter_model_rows(
self.proxy, column=0, include_root=False
):

View file

@ -1,6 +1,6 @@
import uuid
from Qt import QtCore, QtGui
from qtpy import QtCore, QtGui
from openpype.pipeline import registered_host

View file

@ -1,5 +1,5 @@
import json
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
class InstanceDetail(QtWidgets.QWidget):

View file

@ -1,7 +1,7 @@
import os
import sys
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
import qtawesome
from openpype import style

View file

@ -1,8 +1,8 @@
import time
import collections
import Qt
from Qt import QtWidgets, QtCore, QtGui
import qtpy
from qtpy import QtWidgets, QtCore, QtGui
import qtawesome
from openpype.client import (
@ -26,9 +26,9 @@ from .lib import (
get_asset_icon
)
if Qt.__binding__ == "PySide":
if qtpy.API == "pyside":
from PySide.QtGui import QStyleOptionViewItemV4
elif Qt.__binding__ == "PyQt4":
elif qtpy.API == "pyqt4":
from PyQt4.QtGui import QStyleOptionViewItemV4
ASSET_ID_ROLE = QtCore.Qt.UserRole + 1
@ -60,7 +60,7 @@ class AssetsView(TreeViewSpinner, DeselectableTreeView):
self._flick_charm_activated = True
self._before_flick_scroll_mode = self.verticalScrollMode()
self._flick_charm.activateOn(self)
self.setVerticalScrollMode(self.ScrollPerPixel)
self.setVerticalScrollMode(QtWidgets.QAbstractItemView.ScrollPerPixel)
def deactivate_flick_charm(self):
if not self._flick_charm_activated:
@ -136,7 +136,7 @@ class UnderlinesAssetDelegate(QtWidgets.QItemDelegate):
def paint(self, painter, option, index):
"""Replicate painting of an item and draw color bars if needed."""
# Qt4 compat
if Qt.__binding__ in ("PySide", "PyQt4"):
if qtpy.API in ("pyside", "pyqt4"):
option = QStyleOptionViewItemV4(option)
painter.save()
@ -623,7 +623,8 @@ class AssetsWidget(QtWidgets.QWidget):
filter_input,
):
size_policy = widget.sizePolicy()
size_policy.setVerticalPolicy(size_policy.MinimumExpanding)
size_policy.setVerticalPolicy(
QtWidgets.QSizePolicy.MinimumExpanding)
widget.setSizePolicy(size_policy)
# Layout
@ -778,7 +779,10 @@ class AssetsWidget(QtWidgets.QWidget):
selection_model = self._view.selectionModel()
selection_model.clearSelection()
mode = selection_model.Select | selection_model.Rows
mode = (
QtCore.QItemSelectionModel.Select
| QtCore.QItemSelectionModel.Rows
)
for index in valid_indexes:
self._view.expand(self._proxy.parent(index))
selection_model.select(index, mode)
@ -817,7 +821,9 @@ class MultiSelectAssetsWidget(AssetsWidget):
"""
def __init__(self, *args, **kwargs):
super(MultiSelectAssetsWidget, self).__init__(*args, **kwargs)
self._view.setSelectionMode(QtWidgets.QTreeView.ExtendedSelection)
self._view.setSelectionMode(
QtWidgets.QAbstractItemView.ExtendedSelection
)
delegate = UnderlinesAssetDelegate()
self._view.setItemDelegate(delegate)

View file

@ -1,6 +1,10 @@
from Qt import QtCore
from qtpy import QtCore
UNCHECKED_INT = getattr(QtCore.Qt.Unchecked, "value", 0)
PARTIALLY_CHECKED_INT = getattr(QtCore.Qt.PartiallyChecked, "value", 1)
CHECKED_INT = getattr(QtCore.Qt.Checked, "value", 2)
DEFAULT_PROJECT_LABEL = "< Default >"
PROJECT_NAME_ROLE = QtCore.Qt.UserRole + 101
PROJECT_IS_ACTIVE_ROLE = QtCore.Qt.UserRole + 102

View file

@ -3,13 +3,7 @@ from datetime import datetime
import logging
import numbers
import Qt
from Qt import QtWidgets, QtGui, QtCore
if Qt.__binding__ == "PySide":
from PySide.QtGui import QStyleOptionViewItemV4
elif Qt.__binding__ == "PyQt4":
from PyQt4.QtGui import QStyleOptionViewItemV4
from qtpy import QtWidgets, QtGui, QtCore
from openpype.client import (
get_versions,
@ -60,7 +54,10 @@ class VersionDelegate(QtWidgets.QStyledItemDelegate):
style = QtWidgets.QApplication.style()
style.drawControl(
style.CE_ItemViewItem, option, painter, option.widget
QtWidgets.QStyle.CE_ItemViewItem,
option,
painter,
option.widget
)
painter.save()
@ -72,9 +69,12 @@ class VersionDelegate(QtWidgets.QStyledItemDelegate):
pen.setColor(fg_color)
painter.setPen(pen)
text_rect = style.subElementRect(style.SE_ItemViewItemText, option)
text_rect = style.subElementRect(
QtWidgets.QStyle.SE_ItemViewItemText,
option
)
text_margin = style.proxy().pixelMetric(
style.PM_FocusFrameHMargin, option, option.widget
QtWidgets.QStyle.PM_FocusFrameHMargin, option, option.widget
) + 1
painter.drawText(

View file

@ -1,4 +1,4 @@
from Qt import QtWidgets, QtCore
from qtpy import QtWidgets, QtCore
from .widgets import ClickableFrame, ExpandBtn, SeparatorWidget

View file

@ -4,7 +4,7 @@ import contextlib
import collections
import traceback
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
import qtawesome
from openpype.client import (
@ -20,14 +20,44 @@ from openpype.lib import filter_profiles, Logger
from openpype.settings import get_project_settings
from openpype.pipeline import registered_host
from .constants import CHECKED_INT, UNCHECKED_INT
log = Logger.get_logger(__name__)
def checkstate_int_to_enum(state):
if not isinstance(state, int):
return state
if state == CHECKED_INT:
return QtCore.Qt.Checked
if state == UNCHECKED_INT:
return QtCore.Qt.Unchecked
return QtCore.Qt.PartiallyChecked
def checkstate_enum_to_int(state):
if isinstance(state, int):
return state
if state == QtCore.Qt.Checked:
return 0
if state == QtCore.Qt.PartiallyChecked:
return 1
return 2
def center_window(window):
"""Move window to center of it's screen."""
desktop = QtWidgets.QApplication.desktop()
screen_idx = desktop.screenNumber(window)
screen_geo = desktop.screenGeometry(screen_idx)
if hasattr(QtWidgets.QApplication, "desktop"):
desktop = QtWidgets.QApplication.desktop()
screen_idx = desktop.screenNumber(window)
screen_geo = desktop.screenGeometry(screen_idx)
else:
screen = window.screen()
screen_geo = screen.geometry()
geo = window.frameGeometry()
geo.moveCenter(screen_geo.center())
if geo.y() < screen_geo.y():
@ -79,11 +109,15 @@ def paint_image_with_color(image, color):
pixmap.fill(QtCore.Qt.transparent)
painter = QtGui.QPainter(pixmap)
painter.setRenderHints(
painter.Antialiasing
| painter.SmoothPixmapTransform
| painter.HighQualityAntialiasing
render_hints = (
QtGui.QPainter.Antialiasing
| QtGui.QPainter.SmoothPixmapTransform
)
# Deprecated since 5.14
if hasattr(QtGui.QPainter, "HighQualityAntialiasing"):
render_hints |= QtGui.QPainter.HighQualityAntialiasing
painter.setRenderHints(render_hints)
painter.setClipRegion(alpha_region)
painter.setPen(QtCore.Qt.NoPen)
painter.setBrush(color)
@ -329,7 +363,10 @@ def preserve_selection(tree_view, column=0, role=None, current_index=True):
role = QtCore.Qt.DisplayRole
model = tree_view.model()
selection_model = tree_view.selectionModel()
flags = selection_model.Select | selection_model.Rows
flags = (
QtCore.QItemSelectionModel.Select
| QtCore.QItemSelectionModel.Rows
)
if current_index:
current_index_value = tree_view.currentIndex().data(role)

View file

@ -1,8 +1,8 @@
import re
import logging
import Qt
from Qt import QtCore, QtGui
import qtpy
from qtpy import QtCore, QtGui
from openpype.client import get_projects
from .constants import (
PROJECT_IS_ACTIVE_ROLE,
@ -69,7 +69,7 @@ class TreeModel(QtCore.QAbstractItemModel):
item[key] = value
# passing `list()` for PyQt5 (see PYSIDE-462)
if Qt.__binding__ in ("PyQt4", "PySide"):
if qtpy.API in ("pyqt4", "pyside"):
self.dataChanged.emit(index, index)
else:
self.dataChanged.emit(index, index, [role])
@ -203,8 +203,13 @@ class RecursiveSortFilterProxyModel(QtCore.QSortFilterProxyModel):
the filter string but first checks if any children does.
"""
def filterAcceptsRow(self, row, parent_index):
regex = self.filterRegExp()
if not regex.isEmpty():
if hasattr(self, "filterRegularExpression"):
regex = self.filterRegularExpression()
else:
regex = self.filterRegExp()
pattern = regex.pattern()
if pattern:
model = self.sourceModel()
source_index = model.index(
row, self.filterKeyColumn(), parent_index

View file

@ -1,6 +1,6 @@
import uuid
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
from openpype.style import get_objected_colors

View file

@ -1,4 +1,4 @@
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
import qtawesome
from openpype.client import (
@ -180,7 +180,7 @@ class TasksWidget(QtWidgets.QWidget):
tasks_view = DeselectableTreeView(self)
tasks_view.setIndentation(0)
tasks_view.setSortingEnabled(True)
tasks_view.setEditTriggers(QtWidgets.QTreeView.NoEditTriggers)
tasks_view.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
header_view = tasks_view.header()
header_view.setSortIndicator(0, QtCore.Qt.AscendingOrder)
@ -257,7 +257,10 @@ class TasksWidget(QtWidgets.QWidget):
selection_model.clearSelection()
# Select the task
mode = selection_model.Select | selection_model.Rows
mode = (
QtCore.QItemSelectionModel.Select
| QtCore.QItemSelectionModel.Rows
)
for row in range(task_view_model.rowCount()):
index = task_view_model.index(row, 0)
name = index.data(TASK_NAME_ROLE)

View file

@ -1,6 +1,5 @@
import os
from openpype.resources import get_image_path
from Qt import QtWidgets, QtCore, QtGui, QtSvg
from qtpy import QtWidgets, QtCore, QtGui, QtSvg
class DeselectableTreeView(QtWidgets.QTreeView):

View file

@ -1,6 +1,6 @@
import logging
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
import qargparse
import qtawesome
@ -283,11 +283,14 @@ class PixmapButtonPainter(QtWidgets.QWidget):
painter.end()
return
painter.setRenderHints(
painter.Antialiasing
| painter.SmoothPixmapTransform
| painter.HighQualityAntialiasing
render_hints = (
QtGui.QPainter.Antialiasing
| QtGui.QPainter.SmoothPixmapTransform
)
if hasattr(QtGui.QPainter, "HighQualityAntialiasing"):
render_hints |= QtGui.QPainter.HighQualityAntialiasing
painter.setRenderHints(render_hints)
if self._cached_pixmap is None:
self._cache_pixmap()

View file

@ -1,4 +1,4 @@
from Qt import QtWidgets
from qtpy import QtWidgets
from openpype import style
from openpype.lib import Logger

View file

@ -3,8 +3,8 @@ import logging
import shutil
import copy
import Qt
from Qt import QtWidgets, QtCore
import qtpy
from qtpy import QtWidgets, QtCore
from openpype.host import IWorkfileHost
from openpype.client import get_asset_by_id
@ -618,7 +618,7 @@ class FilesWidget(QtWidgets.QWidget):
"caption": "Work Files",
"filter": ext_filter
}
if Qt.__binding__ in ("PySide", "PySide2"):
if qtpy.API in ("pyside", "pyside2"):
kwargs["dir"] = self._workfiles_root
else:
kwargs["directory"] = self._workfiles_root

View file

@ -1,4 +1,4 @@
from Qt import QtWidgets, QtCore, QtGui
from qtpy import QtWidgets, QtCore, QtGui
from openpype.style import load_stylesheet, get_app_icon_path
from openpype.pipeline.workfile.lock_workfile import get_workfile_lock_data

Some files were not shown because too many files have changed in this diff Show more