mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 08:24:53 +01:00
added refresh
This commit is contained in:
parent
80a26eb9de
commit
5c57e183b0
3 changed files with 35 additions and 25 deletions
|
|
@ -26,10 +26,3 @@ class LogsWindow(QtWidgets.QWidget):
|
||||||
|
|
||||||
self.setLayout(main_layout)
|
self.setLayout(main_layout)
|
||||||
self.setWindowTitle("Logs")
|
self.setWindowTitle("Logs")
|
||||||
|
|
||||||
self.logs_widget.active_changed.connect(self.on_selection_changed)
|
|
||||||
|
|
||||||
def on_selection_changed(self):
|
|
||||||
index = self.logs_widget.selected_log()
|
|
||||||
logs = index.data(self.logs_widget.model.ROLE_LOGS)
|
|
||||||
self.log_detail.set_detail(logs)
|
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ class LogModel(QtGui.QStandardItemModel):
|
||||||
default_value = "- Not set -"
|
default_value = "- Not set -"
|
||||||
|
|
||||||
ROLE_LOGS = QtCore.Qt.UserRole + 2
|
ROLE_LOGS = QtCore.Qt.UserRole + 2
|
||||||
|
ROLE_PROCESS_ID = QtCore.Qt.UserRole + 3
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
super(LogModel, self).__init__(parent)
|
super(LogModel, self).__init__(parent)
|
||||||
|
|
@ -67,7 +68,7 @@ class LogModel(QtGui.QStandardItemModel):
|
||||||
if first_item:
|
if first_item:
|
||||||
first_item = False
|
first_item = False
|
||||||
item.setData(process_logs["_logs"], self.ROLE_LOGS)
|
item.setData(process_logs["_logs"], self.ROLE_LOGS)
|
||||||
|
item.setData(process_logs["process_id"], self.ROLE_PROCESS_ID)
|
||||||
items.append(item)
|
items.append(item)
|
||||||
self.appendRow(items)
|
self.appendRow(items)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
from Qt import QtCore, QtWidgets, QtGui
|
from Qt import QtCore, QtWidgets
|
||||||
from PyQt5.QtCore import QVariant
|
from avalon.vendor import qtawesome
|
||||||
from .models import LogModel, LogsFilterProxy
|
from .models import LogModel, LogsFilterProxy
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -109,8 +109,6 @@ class CustomCombo(QtWidgets.QWidget):
|
||||||
class LogsWidget(QtWidgets.QWidget):
|
class LogsWidget(QtWidgets.QWidget):
|
||||||
"""A widget that lists the published subsets for an asset"""
|
"""A widget that lists the published subsets for an asset"""
|
||||||
|
|
||||||
active_changed = QtCore.Signal()
|
|
||||||
|
|
||||||
def __init__(self, detail_widget, parent=None):
|
def __init__(self, detail_widget, parent=None):
|
||||||
super(LogsWidget, self).__init__(parent=parent)
|
super(LogsWidget, self).__init__(parent=parent)
|
||||||
|
|
||||||
|
|
@ -125,7 +123,7 @@ class LogsWidget(QtWidgets.QWidget):
|
||||||
user_filter = CustomCombo("Users", self)
|
user_filter = CustomCombo("Users", self)
|
||||||
users = model.dbcon.distinct("username")
|
users = model.dbcon.distinct("username")
|
||||||
user_filter.populate(users)
|
user_filter.populate(users)
|
||||||
user_filter.selection_changed.connect(self.user_changed)
|
user_filter.selection_changed.connect(self._user_changed)
|
||||||
|
|
||||||
proxy_model.update_users_filter(users)
|
proxy_model.update_users_filter(users)
|
||||||
|
|
||||||
|
|
@ -133,15 +131,19 @@ class LogsWidget(QtWidgets.QWidget):
|
||||||
# levels = [(level, True) for level in model.dbcon.distinct("level")]
|
# levels = [(level, True) for level in model.dbcon.distinct("level")]
|
||||||
levels = model.dbcon.distinct("level")
|
levels = model.dbcon.distinct("level")
|
||||||
level_filter.addItems(levels)
|
level_filter.addItems(levels)
|
||||||
level_filter.selection_changed.connect(self.level_changed)
|
level_filter.selection_changed.connect(self._level_changed)
|
||||||
|
|
||||||
detail_widget.update_level_filter(levels)
|
detail_widget.update_level_filter(levels)
|
||||||
|
|
||||||
|
spacer = QtWidgets.QWidget()
|
||||||
|
|
||||||
|
icon = qtawesome.icon("fa.refresh", color="white")
|
||||||
|
refresh_btn = QtWidgets.QPushButton(icon, "")
|
||||||
|
|
||||||
filter_layout.addWidget(user_filter)
|
filter_layout.addWidget(user_filter)
|
||||||
filter_layout.addWidget(level_filter)
|
filter_layout.addWidget(level_filter)
|
||||||
|
|
||||||
spacer = QtWidgets.QWidget()
|
|
||||||
filter_layout.addWidget(spacer, 1)
|
filter_layout.addWidget(spacer, 1)
|
||||||
|
filter_layout.addWidget(refresh_btn)
|
||||||
|
|
||||||
view = QtWidgets.QTreeView(self)
|
view = QtWidgets.QTreeView(self)
|
||||||
view.setAllColumnsShowFocus(True)
|
view.setAllColumnsShowFocus(True)
|
||||||
|
|
@ -160,9 +162,8 @@ class LogsWidget(QtWidgets.QWidget):
|
||||||
QtCore.Qt.AscendingOrder
|
QtCore.Qt.AscendingOrder
|
||||||
)
|
)
|
||||||
|
|
||||||
view.pressed.connect(self._on_activated)
|
view.selectionModel().selectionChanged.connect(self._on_index_change)
|
||||||
# prepare
|
refresh_btn.clicked.connect(self._on_refresh_clicked)
|
||||||
model.refresh()
|
|
||||||
|
|
||||||
# Store to memory
|
# Store to memory
|
||||||
self.model = model
|
self.model = model
|
||||||
|
|
@ -173,18 +174,33 @@ class LogsWidget(QtWidgets.QWidget):
|
||||||
self.level_filter = level_filter
|
self.level_filter = level_filter
|
||||||
|
|
||||||
self.detail_widget = detail_widget
|
self.detail_widget = detail_widget
|
||||||
|
self.refresh_btn = refresh_btn
|
||||||
|
|
||||||
def _on_activated(self, *args, **kwargs):
|
# prepare
|
||||||
self.active_changed.emit()
|
self.refresh()
|
||||||
|
|
||||||
def user_changed(self):
|
def refresh(self):
|
||||||
|
self.model.refresh()
|
||||||
|
|
||||||
|
def _on_refresh_clicked(self):
|
||||||
|
self.refresh()
|
||||||
|
|
||||||
|
def _on_index_change(self, to_index, from_index):
|
||||||
|
index = self._selected_log()
|
||||||
|
if index:
|
||||||
|
logs = index.data(self.model.ROLE_LOGS)
|
||||||
|
else:
|
||||||
|
logs = []
|
||||||
|
self.detail_widget.set_detail(logs)
|
||||||
|
|
||||||
|
def _user_changed(self):
|
||||||
checked_values = set()
|
checked_values = set()
|
||||||
for action in self.user_filter.items():
|
for action in self.user_filter.items():
|
||||||
if action.isChecked():
|
if action.isChecked():
|
||||||
checked_values.add(action.text())
|
checked_values.add(action.text())
|
||||||
self.proxy_model.update_users_filter(checked_values)
|
self.proxy_model.update_users_filter(checked_values)
|
||||||
|
|
||||||
def level_changed(self):
|
def _level_changed(self):
|
||||||
checked_values = set()
|
checked_values = set()
|
||||||
for action in self.level_filter.items():
|
for action in self.level_filter.items():
|
||||||
if action.isChecked():
|
if action.isChecked():
|
||||||
|
|
@ -203,7 +219,7 @@ class LogsWidget(QtWidgets.QWidget):
|
||||||
selection = self.view.selectionModel()
|
selection = self.view.selectionModel()
|
||||||
rows = selection.selectedRows(column=0)
|
rows = selection.selectedRows(column=0)
|
||||||
|
|
||||||
def selected_log(self):
|
def _selected_log(self):
|
||||||
selection = self.view.selectionModel()
|
selection = self.view.selectionModel()
|
||||||
rows = selection.selectedRows(column=0)
|
rows = selection.selectedRows(column=0)
|
||||||
if len(rows) == 1:
|
if len(rows) == 1:
|
||||||
|
|
@ -251,7 +267,7 @@ class OutputWidget(QtWidgets.QWidget):
|
||||||
def add_line(self, line):
|
def add_line(self, line):
|
||||||
self.output_text.append(line)
|
self.output_text.append(line)
|
||||||
|
|
||||||
def set_detail(self, logs):
|
def set_detail(self, logs=None):
|
||||||
self.las_logs = logs
|
self.las_logs = logs
|
||||||
self.output_text.clear()
|
self.output_text.clear()
|
||||||
if not logs:
|
if not logs:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue