mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-02 00:44:52 +01:00
use new widgets and models in launcher window
This commit is contained in:
parent
27d067fbdf
commit
9b044ffd82
1 changed files with 27 additions and 25 deletions
|
|
@ -8,17 +8,19 @@ from avalon.api import AvalonMongoDB
|
|||
from openpype import style
|
||||
from openpype.api import resources
|
||||
|
||||
from openpype.tools.utils.assets_widget import SingleSelectAssetsWidget
|
||||
from openpype.tools.utils.tasks_widget import TasksWidget
|
||||
|
||||
from avalon.vendor import qtawesome
|
||||
from .models import ProjectModel
|
||||
from .lib import get_action_label, ProjectHandler
|
||||
from .models import (
|
||||
LauncherModel,
|
||||
ProjectModel
|
||||
)
|
||||
from .lib import get_action_label
|
||||
from .widgets import (
|
||||
ProjectBar,
|
||||
ActionBar,
|
||||
ActionHistory,
|
||||
SlidePageWidget
|
||||
SlidePageWidget,
|
||||
LauncherAssetsWidget,
|
||||
LauncherTaskWidget
|
||||
)
|
||||
|
||||
from openpype.tools.flickcharm import FlickCharm
|
||||
|
|
@ -139,12 +141,14 @@ class AssetsPanel(QtWidgets.QWidget):
|
|||
project_bar_layout.addWidget(project_bar)
|
||||
|
||||
# Assets widget
|
||||
assets_widget = SingleSelectAssetsWidget(dbcon=self.dbcon, parent=self)
|
||||
assets_widget = LauncherAssetsWidget(
|
||||
launcher_model, dbcon=self.dbcon, parent=self
|
||||
)
|
||||
# Make assets view flickable
|
||||
assets_widget.activate_flick_charm()
|
||||
|
||||
# Tasks widget
|
||||
tasks_widget = TasksWidget(self.dbcon, self)
|
||||
tasks_widget = LauncherTaskWidget(launcher_model, self.dbcon, self)
|
||||
|
||||
# Body
|
||||
body = QtWidgets.QSplitter(self)
|
||||
|
|
@ -166,19 +170,20 @@ class AssetsPanel(QtWidgets.QWidget):
|
|||
layout.addWidget(body)
|
||||
|
||||
# signals
|
||||
project_handler.project_changed.connect(self._on_project_changed)
|
||||
launcher_model.project_changed.connect(self._on_project_changed)
|
||||
assets_widget.selection_changed.connect(self._on_asset_changed)
|
||||
assets_widget.refreshed.connect(self._on_asset_changed)
|
||||
tasks_widget.task_changed.connect(self._on_task_change)
|
||||
|
||||
btn_back.clicked.connect(self.back_clicked)
|
||||
|
||||
self.project_handler = project_handler
|
||||
self.project_bar = project_bar
|
||||
self.assets_widget = assets_widget
|
||||
self._tasks_widget = tasks_widget
|
||||
self._btn_back = btn_back
|
||||
|
||||
self._launcher_model = launcher_model
|
||||
|
||||
def select_asset(self, asset_name):
|
||||
self.assets_widget.select_asset_by_name(asset_name)
|
||||
|
||||
|
|
@ -197,8 +202,6 @@ class AssetsPanel(QtWidgets.QWidget):
|
|||
def _on_project_changed(self):
|
||||
self.session_changed.emit()
|
||||
|
||||
self.assets_widget.refresh()
|
||||
|
||||
def _on_asset_changed(self):
|
||||
"""Callback on asset selection changed
|
||||
|
||||
|
|
@ -251,18 +254,17 @@ class LauncherWindow(QtWidgets.QDialog):
|
|||
| QtCore.Qt.WindowCloseButtonHint
|
||||
)
|
||||
|
||||
project_model = ProjectModel(self.dbcon)
|
||||
project_handler = ProjectHandler(self.dbcon, project_model)
|
||||
launcher_model = LauncherModel(self.dbcon)
|
||||
|
||||
project_panel = ProjectsPanel(project_handler)
|
||||
asset_panel = AssetsPanel(project_handler, self.dbcon)
|
||||
project_panel = ProjectsPanel(launcher_model)
|
||||
asset_panel = AssetsPanel(launcher_model, self.dbcon)
|
||||
|
||||
page_slider = SlidePageWidget()
|
||||
page_slider.addWidget(project_panel)
|
||||
page_slider.addWidget(asset_panel)
|
||||
|
||||
# actions
|
||||
actions_bar = ActionBar(project_handler, self.dbcon, self)
|
||||
actions_bar = ActionBar(launcher_model, self.dbcon, self)
|
||||
|
||||
# statusbar
|
||||
message_label = QtWidgets.QLabel(self)
|
||||
|
|
@ -304,8 +306,8 @@ class LauncherWindow(QtWidgets.QDialog):
|
|||
# signals
|
||||
actions_bar.action_clicked.connect(self.on_action_clicked)
|
||||
action_history.trigger_history.connect(self.on_history_action)
|
||||
project_handler.project_changed.connect(self.on_project_change)
|
||||
project_handler.timer_timeout.connect(self._on_refresh_timeout)
|
||||
launcher_model.project_changed.connect(self.on_project_change)
|
||||
launcher_model.timer_timeout.connect(self._on_refresh_timeout)
|
||||
asset_panel.back_clicked.connect(self.on_back_clicked)
|
||||
asset_panel.session_changed.connect(self.on_session_changed)
|
||||
|
||||
|
|
@ -315,7 +317,7 @@ class LauncherWindow(QtWidgets.QDialog):
|
|||
|
||||
self._message_timer = message_timer
|
||||
|
||||
self.project_handler = project_handler
|
||||
self._launcher_model = launcher_model
|
||||
|
||||
self._message_label = message_label
|
||||
self.project_panel = project_panel
|
||||
|
|
@ -325,19 +327,19 @@ class LauncherWindow(QtWidgets.QDialog):
|
|||
self.page_slider = page_slider
|
||||
|
||||
def showEvent(self, event):
|
||||
self.project_handler.set_active(True)
|
||||
self.project_handler.start_timer(True)
|
||||
self._launcher_model.set_active(True)
|
||||
self._launcher_model.start_refresh_timer(True)
|
||||
|
||||
super(LauncherWindow, self).showEvent(event)
|
||||
|
||||
def _on_refresh_timeout(self):
|
||||
# Stop timer if widget is not visible
|
||||
if not self.isVisible():
|
||||
self.project_handler.stop_timer()
|
||||
self._launcher_model.stop_refresh_timer()
|
||||
|
||||
def changeEvent(self, event):
|
||||
if event.type() == QtCore.QEvent.ActivationChange:
|
||||
self.project_handler.set_active(self.isActiveWindow())
|
||||
self._launcher_model.set_active(self.isActiveWindow())
|
||||
super(LauncherWindow, self).changeEvent(event)
|
||||
|
||||
def set_page(self, page):
|
||||
|
|
@ -372,7 +374,7 @@ class LauncherWindow(QtWidgets.QDialog):
|
|||
self.discover_actions()
|
||||
|
||||
def on_back_clicked(self):
|
||||
self.project_handler.set_project(None)
|
||||
self._launcher_model.set_project_name(None)
|
||||
self.set_page(0)
|
||||
self.discover_actions()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue