component item buttons are working now

This commit is contained in:
Jakub Trllo 2019-04-17 09:53:20 +02:00
parent cfacb279d7
commit fe3d94c203
2 changed files with 62 additions and 29 deletions

View file

@ -1,3 +1,4 @@
import os
from . import QtCore, QtGui, QtWidgets
from . import SvgButton
from . import get_resource
@ -9,6 +10,8 @@ class ComponentWidget(QtWidgets.QFrame):
C_ACTIVE = '#4BB543'
C_ACTIVE_HOVER = '#4BF543'
signal_remove = QtCore.Signal(object)
signal_thumbnail = QtCore.Signal(object)
signal_preview = QtCore.Signal(object)
def __init__(self, parent):
super().__init__()
@ -162,8 +165,9 @@ class ComponentWidget(QtWidgets.QFrame):
# self.frame.setStyleSheet("border: 1px solid black;")
def set_context(self, data):
self.remove.clicked.connect(self._remove)
self.thumbnail.clicked.connect(self._thumbnail_clicked)
self.preview.clicked.connect(self._preview_clicked)
name = data['name']
representation = data['representation']
ext = data['ext']
@ -194,8 +198,14 @@ class ComponentWidget(QtWidgets.QFrame):
else:
self.file_info.setText('[{}]'.format(file_info))
# self.thumbnail.setVisible(thumb)
# self.preview.setVisible(prev)
self.thumbnail.setVisible(thumb)
self.preview.setVisible(prev)
def _remove(self):
self.signal_remove.emit(self.parent_item)
def _thumbnail_clicked(self):
self.signal_thumbnail.emit(self.parent_item)
def _preview_clicked(self):
self.signal_preview.emit(self.parent_item)

View file

@ -1,20 +1,19 @@
import os
import clique
from pypeapp import config
from . import QtWidgets, QtCore
from . import ComponentItem, TreeComponents, DropDataWidget
class DropDataFrame(QtWidgets.QFrame):
# signal_dropped = QtCore.Signal(object)
def __init__(self, parent):
super().__init__()
self.parent_widget = parent
self.items = []
self.presets = config.get_presets()['tools']['standalone_publish']
self.setAcceptDrops(True)
layout = QtWidgets.QVBoxLayout(self)
self.tree_widget = TreeComponents(self)
layout.addWidget(self.tree_widget)
@ -63,13 +62,43 @@ class DropDataFrame(QtWidgets.QFrame):
# Assign to self so garbage collector wont remove the component
# during initialization
self.new_component = ComponentItem(self.tree_widget, data)
self.new_component._widget.signal_remove.connect(self._remove_item)
self.tree_widget.addTopLevelItem(self.new_component)
self.new_component.set_context()
self.new_component._widget.signal_remove.connect(self._remove_item)
self.new_component._widget.signal_preview.connect(self._set_preview)
self.new_component._widget.signal_thumbnail.connect(
self._set_thumbnail
)
self.items.append(self.new_component)
self.new_component = None
self._refresh_view()
def _set_thumbnail(self, in_item):
checked_item = None
for item in self.items:
if item.is_thumbnail():
checked_item = item
break
if checked_item is None or checked_item == in_item:
in_item.change_thumbnail()
else:
checked_item.change_thumbnail(False)
in_item.change_thumbnail()
def _set_preview(self, in_item):
checked_item = None
for item in self.items:
if item.is_preview():
checked_item = item
break
if checked_item is None or checked_item == in_item:
in_item.change_preview()
else:
checked_item.change_preview(False)
in_item.change_preview()
def _remove_item(self, item):
root = self.tree_widget.invisibleRootItem()
(item.parent() or root).removeChild(item)
@ -78,10 +107,11 @@ class DropDataFrame(QtWidgets.QFrame):
def _refresh_view(self):
_bool = len(self.items) == 0
self.tree_widget.setVisible(not _bool)
self.drop_widget.setVisible(_bool)
self.parent_widget.set_valid_components(not _bool)
def _process_paths(self, in_paths):
paths = self._get_all_paths(in_paths)
collections, remainders = clique.assemble(paths)
@ -114,13 +144,6 @@ class DropDataFrame(QtWidgets.QFrame):
file_ext = collection.tail
repr_name = file_ext.replace('.', '')
range = self._get_ranges(collection.indexes)
thumb = False
if file_ext in ['.jpeg']:
thumb = True
prev = False
if file_ext in ['.jpeg']:
prev = True
files = []
for file in os.listdir(folder_path):
@ -135,9 +158,6 @@ class DropDataFrame(QtWidgets.QFrame):
'file_info': range,
'representation': repr_name,
'folder_path': folder_path,
'icon': 'sequence',
'thumb': thumb,
'prev': prev,
'is_sequence': True,
'info': info
}
@ -176,13 +196,6 @@ class DropDataFrame(QtWidgets.QFrame):
file_base, file_ext = os.path.splitext(filename)
repr_name = file_ext.replace('.', '')
file_info = None
thumb = False
if file_ext in ['.jpeg']:
thumb = True
prev = False
if file_ext in ['.jpeg']:
prev = True
files = []
files.append(remainder)
@ -196,9 +209,6 @@ class DropDataFrame(QtWidgets.QFrame):
'file_info': file_info,
'representation': repr_name,
'folder_path': folder_path,
'icon': 'sequence',
'thumb': thumb,
'prev': prev,
'is_sequence': False,
'info': info
}
@ -206,6 +216,19 @@ class DropDataFrame(QtWidgets.QFrame):
self._process_data(data)
def _process_data(self, data):
ext = data['ext']
icon = 'default'
for ico, exts in self.presets['extensions'].items():
if ext in exts:
icon = ico
break
# Add 's' to icon_name if is sequence (image -> images)
if data['is_sequence']:
icon += 's'
data['icon'] = icon
data['thumb'] = ext in self.presets['thumbnailable']
data['prev'] = ext in self.presets['extensions']['video_file']
found = False
for item in self.items:
if data['ext'] != item.in_data['ext']: