Skip to content

feat: Backlog/easier generic publisher #576

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 137 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
8c42aaa
remove framework-widget
lluisCM Feb 7, 2024
d6233a9
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 7, 2024
d4f8153
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 7, 2024
5a9acf3
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 7, 2024
2a04cd7
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 8, 2024
6fc405f
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 8, 2024
90ab95e
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 8, 2024
3849d82
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 8, 2024
599b789
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 12, 2024
3f25798
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 12, 2024
95a0677
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 12, 2024
19f54de
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 12, 2024
398bd41
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 12, 2024
f760b3e
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 12, 2024
f4b9e97
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 12, 2024
b1d7554
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 12, 2024
e132d07
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 12, 2024
5477ad1
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 13, 2024
4b1a74f
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 14, 2024
b84d398
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 16, 2024
cbd2c2c
update date on publisher widget and timetracker widget
lluisCM Feb 16, 2024
1f48ab1
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 16, 2024
e3132db
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 20, 2024
bc67e17
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 21, 2024
391cde7
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 23, 2024
8e19633
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 26, 2024
acbfd19
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 26, 2024
1a6ea94
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 26, 2024
6a86252
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Feb 27, 2024
1122fea
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 8, 2024
08ba490
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 8, 2024
4a7e8e1
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 8, 2024
88ec7a4
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 8, 2024
b06af7f
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 8, 2024
fc7a97a
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 11, 2024
51910e9
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 11, 2024
8b89581
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 11, 2024
d585549
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 12, 2024
64f2fae
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 13, 2024
cab8fc8
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 14, 2024
31af13f
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 14, 2024
3e3b94c
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 14, 2024
cc5bc48
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 15, 2024
ce76c12
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 15, 2024
4971d86
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 15, 2024
e43a837
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 15, 2024
7880e5a
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 20, 2024
f2126cd
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 21, 2024
2ea0840
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 22, 2024
800cf67
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 25, 2024
2ccdea9
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 25, 2024
161a28f
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 25, 2024
3b45d10
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 25, 2024
1c6dc9e
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 25, 2024
d86b8eb
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 25, 2024
716cefd
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 25, 2024
dad7f7f
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 26, 2024
a193ae6
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 26, 2024
b11e6fc
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 26, 2024
53c6978
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 27, 2024
0da980d
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 27, 2024
9fcf879
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Mar 27, 2024
9d1c194
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Apr 2, 2024
828ec82
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Apr 2, 2024
9ba34ac
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Apr 2, 2024
8fdca98
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Apr 15, 2024
bcd4524
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Apr 15, 2024
aedffe6
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Apr 17, 2024
629803e
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Apr 18, 2024
9f7edb7
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Apr 19, 2024
1c0abd9
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Apr 19, 2024
7913ca8
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Apr 22, 2024
f1cd994
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Apr 22, 2024
c4694bd
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Apr 24, 2024
0111334
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 2, 2024
f12b4a0
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 2, 2024
a98cf5d
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 2, 2024
d6b48aa
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 2, 2024
a693cad
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 3, 2024
2d5365d
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 3, 2024
f551eb7
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 7, 2024
e19fabe
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 7, 2024
dd0bc2e
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 8, 2024
22eaa3c
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 13, 2024
9e7fdf3
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 13, 2024
96fc21a
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 13, 2024
3779b60
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 14, 2024
f8a85c4
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 14, 2024
fb5d9a6
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 15, 2024
c0c3339
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 21, 2024
e5be1a4
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 21, 2024
99df474
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 21, 2024
cf77283
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 27, 2024
ea4b2b8
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 28, 2024
29a64b3
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM May 31, 2024
a534ff0
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jun 4, 2024
e56972a
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jun 4, 2024
6f4d2e7
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jun 4, 2024
4101fc1
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jun 26, 2024
a3f5354
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jun 26, 2024
787a383
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jun 26, 2024
f13a81f
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jul 5, 2024
88fc8d4
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jul 11, 2024
4d1e6df
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jul 11, 2024
90a6824
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jul 11, 2024
5de9376
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jul 11, 2024
9162a5a
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jul 11, 2024
95db3fc
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jul 12, 2024
8788d36
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jul 12, 2024
905d5ba
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jul 12, 2024
26c3ae0
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jul 12, 2024
da8d618
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jul 17, 2024
d9ffbdd
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jul 17, 2024
9c16498
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jul 18, 2024
417db4f
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jul 22, 2024
315da84
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jul 23, 2024
c756a93
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jul 24, 2024
6275c0e
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jul 25, 2024
cae67a6
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Jul 25, 2024
66cd5e9
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Sep 19, 2024
6bb3d6a
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Sep 19, 2024
4dd58a3
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Sep 24, 2024
17ed650
WIP
lluisCM Sep 25, 2024
8f5ac11
add files
lluisCM Sep 25, 2024
73b2e4b
call direct as a decorator
lluisCM Sep 25, 2024
3b974da
Add release notes and upgrade version
lluisCM Sep 25, 2024
3921f4a
add backlog/fix-call-direct-bug branch into this one
lluisCM Sep 25, 2024
f79e395
WIP
lluisCM Sep 26, 2024
b348133
Merge branch 'main' of github.com:ftrackhq/integrations
lluisCM Sep 26, 2024
2986feb
working version
lluisCM Sep 26, 2024
d7457c0
sync with main
lluisCM Sep 26, 2024
40bd90e
example of a object collector but can't work right now because of the…
lluisCM Sep 27, 2024
842774f
generic collector working with a generic object collector
lluisCM Sep 30, 2024
2acbf07
Release notes ready
lluisCM Sep 30, 2024
5a8d6a8
cleanup query of tool config in host
lluisCM Sep 30, 2024
ddcf653
merge changed from backlog/improve-registry-tool-config-utilities
lluisCM Sep 30, 2024
ae6ab53
merge with main
lluisCM Sep 30, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,16 @@ def set_plugin_option(self, name, value):
'''
self.plugin_options = {name: value}

def remove_plugin_option(self, name):
'''
Updates the *name* option of the current plugin with the given *value*
'''
try:
self._options.pop(name)
self.on_set_plugin_option(self._options)
except:
pass

def validate(self):
'''Re implement this method to add validation to the widget'''
return None
Expand Down
4 changes: 4 additions & 0 deletions libs/qt-style/release_notes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# ftrack Framework QT Style library release Notes

## upcoming

* [changed] LineEdit; Support label property.

## v3.0.0
2024-09-19

Expand Down
9 changes: 9 additions & 0 deletions libs/qt/release_notes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# ftrack QT library release Notes


## upcoming

* [new] MenuButton; Button supporting menu if multiple action items provided.
* [changed] Improved AccordionWidget and AccordionHeaderWidget to use EditableLabelWidget and possibility to add a remove button. Emits bin_clicked, title_changed, title_edited signals.
* [changed] StatusMaterialIconWidget clickable.
* [new] Editable label widget.


## v3.0.0
2024-09-19

Expand Down
58 changes: 58 additions & 0 deletions libs/qt/source/ftrack_qt/widgets/accordion/accordion_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,23 @@ class AccordionBaseWidget(QtWidgets.QFrame):
doubleClicked = QtCore.Signal(
object
) # Emitted when accordion is double clicked
bin_clicked = QtCore.Signal(object) # Emitted when bin icon is clicked
show_options_overlay = QtCore.Signal(object)
hide_options_overlay = QtCore.Signal()
enabled_changed = QtCore.Signal(object)
title_changed = QtCore.Signal(object)
title_edited = QtCore.Signal(object)

@property
def title(self):
'''Return the title text shown in header by default'''
return self._title

@property
def editable_title(self):
'''Return the title text shown in header by default'''
return self._editable_title

@property
def selectable(self):
'''Return the current selection mode'''
Expand All @@ -41,6 +49,16 @@ def show_checkbox(self):
'''Return True if accordion is checkable with a checkbox'''
return self._show_checkbox

@property
def show_settings(self):
'''Return True if accordion is checkable with a checkbox'''
return self._show_settings

@property
def show_status(self):
'''Return True if accordion is checkable with a checkbox'''
return self._show_status

@property
def collapsed(self):
'''Return True if accordion is collapsed - content hidden (default)'''
Expand Down Expand Up @@ -68,16 +86,31 @@ def checked(self):
'''(Checkable) Return True if checked'''
return self._checked

@property
def removable(self):
'''
Return True if accordion is removable - can be deleted by user
'''
return self._removable

@property
def previous_title(self):
return self._header_widget.previous_title

def __init__(
self,
selectable=False,
show_checkbox=False,
show_settings=True,
show_status=True,
checkable=False,
title=None,
editable_title=False,
selected=False,
checked=True,
collapsable=True,
collapsed=True,
removable=False,
parent=None,
):
'''
Expand All @@ -102,8 +135,12 @@ def __init__(
self._selectable = selectable
self._checkable = checkable
self._show_checkbox = show_checkbox
self._show_settings = show_settings
self._show_status = show_status
self._title = title
self._editable_title = editable_title
self._collapsable = collapsable
self._removable = removable

self._selected = selected
self._checked = checked
Expand Down Expand Up @@ -140,11 +177,15 @@ def build(self):
# Create Header
self._header_widget = AccordionHeaderWidget(
title=self.title,
editable_title=self.editable_title,
checkable=self.checkable,
checked=self.checked,
show_checkbox=self.show_checkbox,
show_settings=self.show_settings,
show_status=self.show_status,
collapsable=self.collapsable,
collapsed=self.collapsed,
removable=self.removable,
)

# Add header to main widget
Expand All @@ -170,12 +211,15 @@ def post_build(self):
self._header_widget.arrow_clicked.connect(
self._on_header_arrow_clicked
)
self._header_widget.bin_clicked.connect(self._on_header_bin_clicked)
self._header_widget.show_options_overlay.connect(
self._on_show_options_overlay_callback
)
self._header_widget.hide_options_overlay.connect(
self._on_hide_options_overlay_callback
)
self._header_widget.title_changed.connect(self._on_title_changed)
self._header_widget.title_edited.connect(self._on_title_edited)
self._content_widget.setVisible(not self._collapsed)
self._content_widget.setEnabled(self.checked)

Expand All @@ -185,6 +229,12 @@ def _on_show_options_overlay_callback(self, widget):
def _on_hide_options_overlay_callback(self):
self.hide_options_overlay.emit()

def _on_title_changed(self, title):
self.title_changed.emit(title)

def _on_title_edited(self, title):
self.title_edited.emit(title)

def add_option_widget(self, widget, section_name):
self._header_widget.add_option_widget(widget, section_name)

Expand Down Expand Up @@ -234,6 +284,10 @@ def _on_header_arrow_clicked(self, event):
# This is the way to collapse
self.toggle_collapsed()

def _on_header_bin_clicked(self, event):
'''Callback on header arrow user click'''
self.bin_clicked.emit(event)

def toggle_collapsed(self):
'''Toggle the accordion collapsed state'''
self._collapsed = not self._collapsed
Expand Down Expand Up @@ -274,6 +328,10 @@ def update_accordion(self):
'selected' if self._selected else 'transparent',
)

def set_title(self, new_title):
self._title = new_title
self._header_widget.set_title(self.title)

def teardown(self):
'''Teardown the header widget - properly cleanup the options overlay'''
self._header_widget.teardown()
Expand Down
1 change: 1 addition & 0 deletions libs/qt/source/ftrack_qt/widgets/buttons/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@
ProgressStatusButtonWidget,
ProgressPhaseButtonWidget,
)
from ftrack_qt.widgets.buttons.menu_button import MenuButton
75 changes: 75 additions & 0 deletions libs/qt/source/ftrack_qt/widgets/buttons/menu_button.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# :coding: utf-8
# :copyright: Copyright (c) 2024 ftrack

from functools import partial

try:
from PySide6 import QtWidgets, QtCore
except ImportError:
from PySide2 import QtWidgets, QtCore


class MenuButton(QtWidgets.QWidget):
item_clicked = QtCore.Signal(object)

@property
def button_widget(self):
return self._button_widget

@property
def menu_items(self):
return self._menu_items

def __init__(self, button_widget, menu_items=None, parent=None):
super(MenuButton, self).__init__(parent)

self._button_widget = button_widget
if not menu_items:
menu_items = []
self._menu_items = menu_items

self.pre_build()
self.build()
self.post_build()

def pre_build(self):
layout = QtWidgets.QVBoxLayout()
self.setLayout(layout)
layout.setContentsMargins(0, 0, 0, 0)

def build(self):
self.layout().addWidget(self.button_widget)

def post_build(self):
self.button_widget.clicked.connect(self.show_menu)

def add_item(self, item_data, label):
self.menu_items.append(
{
'data': item_data,
'label': label,
}
)

def show_menu(self):
if len(self.menu_items) == 1:
return self.menu_item_selected(self.menu_items[0])
# Create a QMenu
menu = QtWidgets.QMenu(self.button_widget)

# Add menu items
for _item in self.menu_items:
action = menu.addAction(_item['label'])
# Connect each action to a slot (optional)
action.triggered.connect(partial(self.menu_item_selected, _item))

# Show the menu below the button
menu.exec_(
self.button_widget.mapToGlobal(
QtCore.QPoint(0, self.button_widget.height())
)
)

def menu_item_selected(self, item):
# Handle the selected menu item (this is a placeholder for your custom logic)
self.item_clicked.emit(item['data'])
Loading
Loading