Skip to content

Commit

Permalink
UI refactor, help system, etc
Browse files Browse the repository at this point in the history
  • Loading branch information
instance-id committed Mar 6, 2020
1 parent 23afdca commit e3930ba
Show file tree
Hide file tree
Showing 18 changed files with 2,576 additions and 333 deletions.
73 changes: 73 additions & 0 deletions Help/searcher/index.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
= Searcher =

#bestbet: network parameter parameters
#billboard: /images/billboards/blueprint.png
#style: background-color: #303030; background-size: auto;

"""How to use the network and parameter editors to work in Houdini."""

*Nodes are the building blocks of the scene*. The Houdini scene is built from nodes organized in networks. Different network types control different parts of Houdini.

*Using the [shelf tools|/shelf/] automatically creates nodes*. For example, when you click the [Box tool|Node:sop/box] on the __Create__ shelf tab, Houdini creates a new [Geometry container object|Node:obj/geo] with a [Box node|Node:sop/box] inside. You can also create nodes manually in the network editor. This is how advanced work is often done in Houdini. Pressing ((Tab)) in the network editor opens a menu of all nodes available in the current network type.

*Some nodes can contain other nodes*. For example, a _Geometry Container object_ node lives at the scene level. It contains a network of _surface nodes_ that define the geometry of the object. See [node navigation|navigate] for information on how you move inside and out of container nodes.

*Each node in a network performs a specific function*. In geometry, compositing, and CHOP networks, each node creates or modifies data passing through the node. At the scene level, nodes represent objects (such as props, bones, lights, and cameras) with transforms and parenting relationships. In the render network, nodes represent rendered outputs (images or animation), and links between the nodes define render dependencies.

@subtopics

:col:
== Networks ==

:: [nodes]
:: [navigate]
:: [wire]
:: [flags]
:: [badges]
:: [find]

:col:
== Editing parameters ==

:: [parms]
:: [ramps]
:: [patterns]
:: [edit_interface]
:: [copying]

~~

:col:
== Next steps ==

:: [layout]
:: [organize]
:: [paths]
:: [dependencies]
:: [options]
:: [shortcuts]
:: [rename]

:col:
== Expressions ==

:: [Parameter expressions|expressions]
:: [Expressions in filenames|/render/expressions]
:: [Spare parameters|spare]
:: [Expression cookbook|/ref/expression_cookbook]
:: [List of expression functions|/expressions/]

~~

:col:
== Guru level ==

:: [motioneffects]
:: [expression_functions]

:col:
== Reference ==

:: [menus]
:: [/ref/panes/parms]

73 changes: 73 additions & 0 deletions Help/searcher/main.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
= Searcher =

#bestbet: network parameter parameters
#billboard: /images/billboards/blueprint.png
#style: background-color: #303030; background-size: auto;

"""How to use the network and parameter editors to work in Houdini."""

*Nodes are the building blocks of the scene*. The Houdini scene is built from nodes organized in networks. Different network types control different parts of Houdini.

*Using the [shelf tools|/shelf/] automatically creates nodes*. For example, when you click the [Box tool|Node:sop/box] on the __Create__ shelf tab, Houdini creates a new [Geometry container object|Node:obj/geo] with a [Box node|Node:sop/box] inside. You can also create nodes manually in the network editor. This is how advanced work is often done in Houdini. Pressing ((Tab)) in the network editor opens a menu of all nodes available in the current network type.

*Some nodes can contain other nodes*. For example, a _Geometry Container object_ node lives at the scene level. It contains a network of _surface nodes_ that define the geometry of the object. See [node navigation|navigate] for information on how you move inside and out of container nodes.

*Each node in a network performs a specific function*. In geometry, compositing, and CHOP networks, each node creates or modifies data passing through the node. At the scene level, nodes represent objects (such as props, bones, lights, and cameras) with transforms and parenting relationships. In the render network, nodes represent rendered outputs (images or animation), and links between the nodes define render dependencies.

@subtopics

:col:
== Networks ==

:: [nodes]
:: [navigate]
:: [wire]
:: [flags]
:: [badges]
:: [find]

:col:
== Editing parameters ==

:: [parms]
:: [ramps]
:: [patterns]
:: [edit_interface]
:: [copying]

~~

:col:
== Next steps ==

:: [layout]
:: [organize]
:: [paths]
:: [dependencies]
:: [options]
:: [shortcuts]
:: [rename]

:col:
== Expressions ==

:: [Parameter expressions|expressions]
:: [Expressions in filenames|/render/expressions]
:: [Spare parameters|spare]
:: [Expression cookbook|/ref/expression_cookbook]
:: [List of expression functions|/expressions/]

~~

:col:
== Guru level ==

:: [motioneffects]
:: [expression_functions]

:col:
== Reference ==

:: [menus]
:: [/ref/panes/parms]

9 changes: 8 additions & 1 deletion scripts/456.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
from __future__ import print_function
from searcher import searcher_data
from searcher import util

from peewee import *
from playhouse.sqlite_ext import SqliteExtDatabase, SearchField, FTSModel
# from playhouse.apsw_ext import APSWDatabase
Expand Down Expand Up @@ -234,7 +236,12 @@ def getlastusedhk(cur):
def updatechangeindex(indexval, new=False):
try:
if new is True:
defaultkey = (u"Ctrl+Alt+Shift+F7")
defaultkey = ""
for i in range(len(util.HOTKEYLIST)):
result = hou.hotkeys.findConflicts("h", util.HOTKEYLIST[i])
if not result:
defaultkey = util.HOTKEYLIST[i]

settings.insert(indexvalue=indexval,
defaulthotkey=defaultkey, searchdescription=0, searchprefix=0, searchcurrentcontext=0, lastused="", id=1).execute()
else:
Expand Down
54 changes: 54 additions & 0 deletions scripts/python/searcher/HelpButton.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@

# region Imports
from __future__ import print_function
from __future__ import absolute_import
import weakref
import hou
import os
import sys

hver = 0
if os.environ["HFS"] != "":
ver = os.environ["HFS"]
hver = int(ver[ver.rindex('.')+1:])
from hutil.Qt import QtCore
from hutil.Qt import QtWidgets

# ----------------------------------------------------------------- Help
# NOTE -----------------------------------------------------------------


class HelpButton(QtWidgets.QPushButton):
"""Generic Help button."""

def __init__(self, name, parent=None):
super(HelpButton, self).__init__(
hou.qt.createIcon("BUTTONS_help"), "", parent=parent
)

self._name = name

self.setToolTip("Open Help Page.")
self.setIconSize(QtCore.QSize(16, 16))
self.setMaximumSize(QtCore.QSize(16, 16))
self.setFlat(True)

self.clicked.connect(self.display_help)

def display_help(self):
"""Display help page."""
# Look for an existing, float help browser.
for pane_tab in hou.ui.paneTabs():
if isinstance(pane_tab, hou.HelpBrowser):
if pane_tab.isFloating():
browser = pane_tab
break

# Didn't find one, so create a new floating browser.
else:
desktop = hou.ui.curDesktop()
browser = desktop.createFloatingPaneTab(
hou.paneTabType.HelpBrowser)

browser.displayHelpPath("/searcher/{}".format(self._name))
# endregion
Loading

0 comments on commit e3930ba

Please sign in to comment.