1. 03 Dec, 2018 1 commit
    • David Thompson's avatar
      Various improvements and fixes to the GUI. · ef965d1e
      David Thompson authored
      + Refactor the resource-panel decorator into a method.
      + Properly update the attribute when the sphere widget changes.
        ParaView now emits a signal when properties are changed via Qt.
        Use it to update the SMTK attribute's item(s).
        Do not print errors when none may have occurred.
      + Fix how auxiliary geometry is handled.
        Without this, the RGG extension would be used to load OBJ
        files (rather than the VTK extension) just because it was
        first in the list.
      + Remove redundant created/modified entries in AddAuxiliaryGeometry.
        This appears to be cruft accumulated during the
        migration from ModelEntityItem to ReferenceItem/ComponentItem.
      + Prevent a crash during first-time initialization in qtReferenceItem.
      + Eliminate unneeded code from qtResourceItem.
        The base class now handles this.
      + Override `smtk::resource::Resource::name()`.
        Make the name the stem of the location URL.
        Showing a UUID here is really bad for users,
        so pretty much anything is better.
      + Fix attribute association op's specification.
      + Fix qtResourceItem membership checkboxes.
      + Make qtReferenceItem return the proper "acceptable types" enum,
        which fixes an issue where associations which are supposed to be
        resources instead list components.
      + Add a phrase model that shows the current selection.
      + Allow phrase model sources to include a selection.
      ef965d1e
  2. 02 Nov, 2018 1 commit
  3. 19 Oct, 2018 1 commit
    • Bob Obara's avatar
      BUG: Fixing Update Issue with qtComponentItem · 3dc87a7f
      Bob Obara authored
      - modification method was not emitting a modified signal when being changed
      - also simplied the logic to determine if the number of selected components or resources was not valid based on the
      item's requirements
      - removed onEntitySelect method on the asasociation widget.  It was not being used and was a left over from SMTK 2.x
      3dc87a7f
  4. 02 Aug, 2018 1 commit
  5. 31 Jul, 2018 1 commit
  6. 30 Jul, 2018 1 commit
    • Bob Obara's avatar
      ENH: Providing ability for better GUI control for attribute items · 71dfe1f9
      Bob Obara authored
      Added the ability to define Views for Attribute Items. This is supported in
      Attribute, Instanced, ModelEntityAttribute, and Operator View classes.  Group related views
      are not directly effected.
      
      Here is an example:
      
          <View Type="Instanced" Title="Frequency Information">
            <InstancedAttributes>
              <Att Name="EigenSolver" Type="FrequencyInfo">
                <ItemViews>
                  <View Item="NumEigenvalues" Type="Default" Option="SpinBox"/>
                  <View Item="FrequencyShift" Option="SpinBox" StepSize="100" Decimals="0"/>
                </ItemViews>
              </Att>
            </InstancedAttributes>
          </View>
      
      The Item attribute is mandatory. If the Type attribute is missing then it is assumed to be
      Default.  The rest of the information is then processed by the qtItem class that is being
      created. To demonstrate this I have added spinbox options for both IntItem and DoubleItem for their
      default qtItem class (qtInputsItem).
      
      This mechanism can be extended to add custom GUI's for items.
      71dfe1f9
  7. 17 Jul, 2018 1 commit
  8. 10 Jul, 2018 1 commit
    • David Thompson's avatar
      Fix a problem with the Qt component-item widget. · ee612916
      David Thompson authored
      Adding a source to the component item is not allowed since
      that will cause the root phrase to be populated with the
      source's components before the parent class (qtReferenceItem)
      has a chance to set the decorator.
      ee612916
  9. 09 Jul, 2018 1 commit
  10. 28 Jun, 2018 1 commit
    • Bob Obara's avatar
      ENH: Adding Model Entity Centric Attribute View · 552e1c66
      Bob Obara authored
      - Added new ModelEntityAttribute View support (adapted from release branch)
      - PersistentObject: added name() method
      - atAttribute: now has support for Item::ReferenceType
      - Removed old selection manager stuff from qtBaseView
      - qtComponentItem: Fixed bug related to extensible items in synopsis method
      - Attribute XML Parsers replaced support for model entity items from using reference items to use component items
      - Resource:: added a findAs method that can be used to further specialize the results of a query search based on the
      container type
      - Moved all UI icons into their own directory and removed old qrc file that was redundant
      - Fixed potential crash in qtSelectorView when a child view type can not be found
      552e1c66
  11. 11 Apr, 2018 1 commit
    • David Thompson's avatar
      Remove ModelEntityItem from use. · 25729eeb
      David Thompson authored
      This is a large, breaking change to SMTK that moves the attribute
      system away from using ModelEntityItem. Specifically, it
      
      + switches `Attribute::associations()` methods to return a
        ReferenceItem instead of a ModelEntityItem.
          + removes m_associations from Attribute.
      + switches `Definition::associationRule()` and related methods
        to return a ReferenceItemDefinition instead of a
        ModelEntityItemDefinition.
          + fix many methods in Definition that referred to m_associationRule
            to use m_acceptsRules instead.
      + updates the XML and JSON readers and writers to
        deserialize ModelEntity items/definitions in old files into their
        equivalent Reference items/definitions in the new system.
      + refactors ReferenceItem to no longer be a template
        since Resource and Component now share a common ancestor.
      + simplifies the qtReferenceItem hierarchy since now both
        Resource and Component inherit PersistentObject.
      + renames `Attribute::isComponentAssociated()` to `isObjectAssociated()`.
      + consolidates a lot of code that was shared between ReferenceItem,
        ResourceItem, and ComponentItem into ReferenceItem.
      + changes the default attribute reader version to 3 (was 2).
      + removes an unneeded argument from `from_json` methods.
        By the time these methods are called, `itemPtr` should already
        own a reference to the collection via its parent attribute, so
        don't pass the collection needlessly.
      
        This also simplifies the json format for items by eliminating
        the `ItemValue` dictionary; instead, items are responsible for
        adding the `Type` entry to their own dictionaries.
        It may even be possible to remove the `Type` entry since the
        items are required to have their type specified by a definition.
      + makes OperationEnvironment depend on AttributeEnvironment.
        Operations depend on attributes for their parameters/specifications.
      + removes `#include ".../ModelEntityItem.h"` from `Attribute.h`.
      + switches many operators to use ComponentItem or ReferenceItem
        instead of ModelEntityItem, and also switches some of these
        operators to use associations where they did not previously.
      + starts the convention of adding release notes to `doc/release/notes`.
      + fixes some tests to use the resource manager or operation manager
        to create objects because the way that reference items verify
        types often requires a resource manager to work properly.
      25729eeb
  12. 02 Apr, 2018 1 commit
  13. 14 Mar, 2018 1 commit
    • David Thompson's avatar
      Add a qtItem subclass for resource components & more. · 679154d0
      David Thompson authored
      + Add the qtReferenceItem subclass of qtItem. Then add
        qtComponentItem which inherits qtReferenceItem. Eventually,
        qtResourceItem will also exist (or qtReference item will
        encompass functionality for both resources and their components).
          + This item now properly presents and allows editing
            of entries related to a ComponentItem. However, it does
            not update the entries of the ComponentItem upon editing yet.
          + The Qt item displays a synopsis of the selected components
            and indicates whether the selection meets the requirements
            called out by the attribute (specifically, the number of
            entries must be allowed and the selection must come from a
            list of acceptable components).
      + Add callbacks to SMTK resource panel to signal when a row is hovered
        and change the "hovered" selection value.
      + Add support to the model representation to illustrate the "hover"
        selection value in preference to the "selected" value.
      + Fix a memory leak in the model representation.
      + Fix the SMTK attribute panel exposed as a PV plugin:
          + Always clear the widget out when switching between
            attribute resources.
          + Note that this has not been tested with switching between
            views within the same attribute resource, and will probably
            need changes to handle that case.
          + Also note that you must click on a _resource_ entry in the
            resource tree-view panel to switch what is displayed in the
            attribute panel; clicking on an attribute is not enough.
      679154d0
  14. 24 Feb, 2018 1 commit
    • David Thompson's avatar
      Work on component/resource items and their GUIs. · 58dab9c2
      David Thompson authored
      + Refactor item-based attribute classes.
        Move most of the code in ComponentItem, ResourceItem,
        ComponentItemDefinition, and ResourceItemDefinition into
        two new base classes LinkItem and LinkItemDefinition.
        These classes handle links between an attribute and
        any resource or component of a resource.
        Note that smtk::attribute::RefItem should disappear
        in favor of a ComponentItem whose `acceptableEntries()`
        filter forces an attribute of the proper type.
      + Fix build when `SMTK_ENABLE_EXAMPLES` is on.
      + Prototype for a qtComponentItem.
      58dab9c2
  15. 08 Dec, 2017 1 commit
    • David Thompson's avatar
      Work on the UI for ComponentItem / deprecation of ModelEntityItem. · 3ece72e1
      David Thompson authored
      + Move smtk::resource::SelectionManager to smtk::view::Selection.
        It really isn't a manager; it's a selection. Each instance holds a
        map enumerating the "degree" to which each component is selected.
        You can have multiple selections in an application.
      
      + Make the ParaView SMTK resource panel respond to selections
        and emit its own. Note that selecting a summary phrase does not
        result in entities in its child phrases being selected. This
        is a departure from the previous phrase view; we may add
        this functionality into the new resource panel at some point
        as it satisfies the priniciple of minimum astonishment.
        The problem is that it requires computation of child phrases,
        which destroys the lazy nature of the algorithm.
      
      + Fix resource handling when deleting sources.
      
      + Add a VTK-based attribute "reader" (that produces a pretty empty multiblock
        but has the side effect of adding a resource to the resource manager when
        an observer is attached).
      
      + Port more code over from old, model-only EntityListPhrase to PhraseList:
        generate more descriptive titles for lists with many, potentially disparate children.
        For now, this only deals with model, not mesh or attribute, components.
      
      + Adds a currently-uncompiled "unit test" for a component item UI.
      
      + When inheriting QStyledItemDelegate, do not call the inherited
        `paint()` method inside your own as it will draw each item's
        `Qt::DisplayRole` text overlapping your own.
      3ece72e1