Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
houdini_bookmarks/scripts/python/houdini_bookmarks/__pycache__
2 changes: 1 addition & 1 deletion houdini_bookmarks/python_panels/houdini_bookmarks.pypanel
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<interface name="Houdini Bookmarks" label="Houdini Bookmarks" icon="MISC_python" showNetworkNavigationBar="false" help_url="">
<script><![CDATA[from houdini_bookmarks import houdini_bookmarks

def onCreateInterface():
def onCreateInterface():
widget = None
pane_tab = kwargs["paneTab"]
if hou.applicationVersion()[0] < 18:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
import re
import os
import hou
import platform
import subprocess
import webbrowser
import json

Expand Down Expand Up @@ -127,7 +129,7 @@ def closeEvent(self, event):
for tab_index in range(self.tab_widget.count()):
tree_view = self.tab_widget.widget(tab_index)
self.remove_node_callbacks(tree_view)

def remove_node_callbacks(self, tree_view):
if tree_view is not None:
for key in tree_view.node_callbacks:
Expand Down Expand Up @@ -179,9 +181,9 @@ def save_to_file(self):
for index in range(self.tab_widget.count()):
choices.append(self.tab_widget.tabBar().tabText(index))
selection = hou.ui.selectFromList(choices, column_header="Tabs", message="Choose tabs to save:", width= 300, height=300)

data = prepare_save_data(self.tab_widget, selection)

with open(file_path, "w") as f:
json.dump(data, f, indent=4)

Expand All @@ -200,7 +202,7 @@ def save_bookmarks_to_session(self, event_type, *args, **kwargs):
if hasattr(hou.session, "get_houdini_bookmarks_data"):
del(hou.session.get_houdini_bookmarks_data)
hou.setSessionModuleSource(old_data + "\n" + code)

def load_bookmarks_from_session(self):
if hasattr(hou.session, "get_houdini_bookmarks_data"):
data = hou.session.get_houdini_bookmarks_data()
Expand Down Expand Up @@ -287,7 +289,7 @@ def copy_to_clipboard(self):
h_items.append(hou.item(self.item_path_label.text()))
if h_items[0] is not None:
h_items[0].parent().copyItemsToClipboard(h_items)

def update_description(self):
try:
index = self.tab_widget.currentWidget().selectedIndexes()[0]
Expand All @@ -297,7 +299,7 @@ def update_description(self):
except:
self.item_path_label.setText("")
self.item_note.setText("")

def update_item_note(self):
try:
index = self.tab_widget.currentWidget().selectedIndexes()[0]
Expand Down Expand Up @@ -328,7 +330,7 @@ def mouseDoubleClickEvent(self, event):
def finish_rename():
self.setTabText(tab, line_edit.text())
line_edit.deleteLater()

tab = self.tabAt(event.pos())
rect = self.tabRect(tab)
top_margin = 3
Expand Down Expand Up @@ -365,7 +367,7 @@ def focusOutEvent(self, event):
if self._changed:
self.editingFinished.emit()
super(TextEdit, self).focusOutEvent(event)

def handle_text_changed(self):
self._changed = True

Expand Down Expand Up @@ -413,14 +415,14 @@ def add_folder(self):
if item is None:
item = self.model()
add_folder(item)

def add_bookmark(self):
input = hou.ui.readInput("Enter a Bookmark Path:", buttons=("Node", "File", "URL", "Cancel"), default_choice=-1, close_choice=3)
if input[0] is 3:
if input[0] == 3:
return
path = input[1]
data = QtCore.QMimeData()
if input[0] is 1:
if input[0] == 1:
path.encode("unicode_escape")
path = "file:///"+path
if input[0] in [1,2]:
Expand All @@ -434,7 +436,7 @@ def add_bookmark(self):
modifier = QtCore.Qt.KeyboardModifiers()
event = QtGui.QDropEvent(pos, action, data, buttons, modifier)
self.dropEvent(event)

def delete_selected(self):
indicies = self.selectedIndexes()
remove_from_indicies = list()
Expand Down Expand Up @@ -472,7 +474,7 @@ def delete_selected(self):
parent_item.takeRow(item.row())

def dropEvent(self, event):
if(event.source() == self):
if(event.source() == self):
super(TreeView, self).dropEvent(event)
else:
data_texts = list()
Expand Down Expand Up @@ -557,7 +559,7 @@ def save_set_callback(node, callback_function, event_type):
save_set_callback(node, self.update_item_path, hou.nodeEventType.NameChanged)
save_set_callback(node, self.update_item_data, hou.nodeEventType.AppearanceChanged)
save_set_callback(node, self.mark_node_as_deleted, hou.nodeEventType.BeingDeleted)

parent = node.parent()
while parent is not None and parent.path().count("/") > 1:
save_set_callback(parent, self.update_item_path, hou.nodeEventType.NameChanged)
Expand Down Expand Up @@ -661,7 +663,7 @@ def paint(self, painter, option, index):
for button in buttons:
QtWidgets.QApplication.style().drawControl(QtWidgets.QStyle.CE_PushButton, button, painter)
painter.restore()

option.rect = QtCore.QRect(option.rect.left(), option.rect.top(), option.rect.right()-button_width*3-button_spacing*3-option.rect.left(), option.rect.height())
QtWidgets.QStyledItemDelegate.paint(self, painter, option, index)

Expand Down Expand Up @@ -714,7 +716,7 @@ def editorEvent(self, event, model, option, index):
open_parameter_tab(item, event.globalPos())
if item.data()["category"] == "file":
open_file(item)

self.event_pos = QtCore.QPoint()
self._pressed = None
return True
Expand All @@ -734,7 +736,7 @@ def add_folder(item):
data = {"note": "", "path": "", "category": "folder", "icon_type": icon_type, "color": (0.8, 0.8, 0.8)}
new_item.setData(data, QtCore.Qt.UserRole + 1)
item.appendRow(new_item)

def open_parameter_tab(item, global_mouse_pos):
node = hou.nodeBySessionId(int(item.data().get("session_id")))
if node is None:
Expand Down Expand Up @@ -772,11 +774,19 @@ def eval_open_item_function(item, panel):
elif item.data()["category"] == "webUrl":
open_url(item)

def platform_open(path):
if platform.system() == "Darwin":
subprocess.call(("open", path))
elif platform.system() == "Windows":
os.startfile(path)
else:
subprocess.call(("xdg-open", path))

def open_file(item):
os.startfile(item.data().get("path"))
platform_open(item.data().get("path"))

def open_file_dir(item):
os.startfile(os.path.dirname(item.data().get("path")))
platform_open(os.path.dirname(item.data().get("path")))

def open_url(item):
webbrowser.open(item.data().get("path"), new=0, autoraise=True)
Expand Down Expand Up @@ -812,4 +822,4 @@ def iterate_items(root):
child = parent.child(row, column)
yield child
if child.hasChildren():
stack.append(child)
stack.append(child)