defSearch
=== Author: Assaf Ben Zur ===
Core MNS Utility UI
This UI will allow the user to search though all available function within a given library and build a dynamic UI for it, based on it's arguments and keyword arguments drawen as 'type' QObjects into a new UI window.
This UI class will search thorugh the default library (mns), although has functionallity to add any library into the search.
IMPORTANT: Any given custom library needs to follow the mns code structure convension in order to work and sraw properly. Please refer to some code examples.
The main process of this UI class is:
- Load the UI
- procedurally look through the given libraries and add any found python defenition into the UI list.
- Uppon a 'UI creation' call (via the button or souble-click):
- Deconstruct the selected defenition into mandatory arguments and keyword arguments
- Build a new UI based on the parameters got.
- Uppon a 'Run' call:
- Re-construct the function's argument based on the UI fields and recompile into a string
- Call the selected function using the complied arguent string
Features:
- Prefs tab to control the UI's behavior.
- Directory addition
- Indepentent custom '.py' files add
- Library reload
- 'Default Prefs restore'
- Settings export/import
- Function 'pinning' (Global, session independent)
- UI features - Search, Case-Sensative display, Pinned view only, clear all pinns
- 'dev mode':
- When set to False (default) the UI call will create a new UI only if it han't been created before-
meaning that the UI objects are kept within the UI class, and when closed will not lose their user-set values.
When called again, the UI will simply re-load- not re-create to keep previous set values. The function will not be read again to build.
When set to True, instead of re-loading of a previously created UI- it will be deleted- and recreated, READING THE FUNCTION AGAIN.
This allows the user to re-read a function every time the UI is called- that means that all previous value set will be lost- as the UI rebuilds it will set all items to default value.
This gives a very fast way of developing a function- not needing to re-load maya after edit-
The UI will rebuild based on any change made to the defenition code, adding any new items or running a different fuctionallity every run call.
Use this feature when writing or developing a new fuction.
Classes
MnsDefSearch [Class]
Main UI Class
Constructor: MnsDefSearch(parent(str) ; [default: mnsUIUtils.get_maya_window()]) Inherits from: form_class, base_class Class Members:
Methods:
MnsDefSearch methods
initializePinnedDir [MnsDefSearch class method]
Constructor: | initializePinnedDir(self) |
Return: | None |
Arguments: |
|
Optional Arguments: |
Clear Serach method trigger.
Constructor: | clearResults(self) |
Return: | None |
Arguments: |
|
Optional Arguments: |
Clear all pinns method trigger.
Constructor: | clearPins(self) |
Return: | None |
Arguments: |
|
Optional Arguments: |
Connect all UI signals
Constructor: | connectSignals(self) |
Return: | None |
Arguments: |
|
Optional Arguments: |
Import modules wrapper.
Constructor: | importModules(self) |
Return: | None |
Arguments: |
|
Optional Arguments: |
Main UI load
Constructor: | loadWindow(self) |
Return: | None |
Arguments: |
|
Optional Arguments: |
Main UI view update method trigger.
The UI list will be updated from this method based on the current UI state and prefs
Constructor: | updateResults(self) |
Return: | None |
Arguments: |
|
Optional Arguments: |
Main dynamic UI creation method trigger based on current selection.
Constructor: | createUI(self) |
Return: | None |
Arguments: |
|
Optional Arguments: |
Main list load method.
A wrapper to filter all functions based on prefs selected and update the UI.
Constructor: | loadList(self) |
Return: | None |
Arguments: |
|
Optional Arguments: |
Module add method trigger.
Constructor: | addModuleToResults(self, module) |
Return: | None |
Arguments: |
|
Optional Arguments: |
Package addition method trigger.
Constructor: | addPackageToResults(self, package) |
Return: | None |
Arguments: |
|
Optional Arguments: |
Pin call method trigger based on current selection.
Constructor: | pin(self) |
Return: | None |
Arguments: |
|
Optional Arguments: |
Pinned only view trigger method.
Constructor: | pinnedOnlyView(self, state) |
Return: | None |
Arguments: |
|
Optional Arguments: |
Recursive method to walk thorugh a given package and sub-packages to store all sub-directories within.
Constructor: | import_submodules(self, package, recursive=True) |
Return: | dict |
Arguments: |
|
Optional Arguments: |
Wrapper re-load method.
Constructor: | reloadResults(self) |
Return: | None |
Arguments: |
|
Optional Arguments: |
Defenitions
loadDefSearch
Load the Def Serach UI from globals, avoid UI duplication.
Constructor: loadDefSearch() Return: None Arguments:
Keyword Arguments: