1. 17 Dec, 2018 1 commit
    • David Thompson's avatar
      Make qtResourceBrowser more useful as a standalone widget. · 51d82b42
      David Thompson authored
      + Allow a subclassed qtDescriptivePhraseModel instance to be passed to
        its constructor.
      + Make the ParaView-specific visibility decorator available for other
        ParaView plugins to use.
      + Expose the qtResourceBrowser's QTreeView.
      + Move most of pqSMTKResourcePanel into qtResourceBrowser (Qt parts) and
        pqSMTKResourceBrowser (ParaView parts).
        This will allow easier customization, and particularly
        allows people to use the widget without it being central to
        a dock widget, making it simpler to configure components in
        the widget that are needed at construction time.
      + Also, make pqSMTKResourcePanel::Internal::m_phraseModel point to
        the base class (PhraseModel) rather than the particular subclass
        we use (ResourcePhraseModel).
      + Better nullptr testing to prevent crashes when invalid QModelIndex values
        are used.
      + Test whether the model passed to qtDescriptivePhraseDelegate::editorEvent
        is a QAbstractItemModel such as QSortFilterProxyModel; if it is, then map
        the index.
      + Store descriptive phrase pointers in QVariants and provide a way to
        obtain phrase pointers from a QModelIndex without access to the
        underlying QAbstractItemModel.
        This allows clean separation between our QAbstractItemModel subclass
        and classes that consume its QModelIndex instances.
        The separation makes it possible to pass a QAbstractProxyModel to
        use instead of a qtDescriptivePhraseModel so that searching can
        be exposed in the GUI.
      51d82b42
  2. 05 Dec, 2018 1 commit
    • David Thompson's avatar
      Refactor pqSMTKResourcePanel into qtResourceBrowser. · 944a1c97
      David Thompson authored
      + Refactor all but the ParaView-specific pieces from
        the SMTK resource panel widget into a new class named
        qtResourceBrowser.
      + Remove the unimplemented search text entry from the
        resource panel.
      + Add methods to qtSMTKUtilities to accept an override for
        the QTreeView widget.
      + Moves synchronization of the SMTK selection (when resources
        rather than components are selected) with ParaView's
        pipeline inspector into a new behavior named
        pqSMTKPipelineSelectionBehavior.
      + Fix the `Selection::visitSelection()` method; it
        was not possible to call the more general visitor
        because shared pointers can be implicitly converted.
      + Add a `relatedObject()` method to descriptive phrases
        and phrase content. Arguably, this should replace
        `relatedComponent()` and `relatedResource()` as the
        only method they provide.
      944a1c97
  3. 10 Oct, 2018 1 commit
    • David Thompson's avatar
      Make editing model-entity names work. · ff5e1934
      David Thompson authored
      This does not affect attribute (or meshset names), although those
      should now be un-editable (i.e., double-clicking on the name will
      have no effect rather than popping up an editor that is ignored).
      
      This also does some work to make colors editable, but does not
      complete it; the render window is not updated properly.
      ff5e1934
  4. 02 Oct, 2018 1 commit
    • David Thompson's avatar
      Make highlight-on-hover a user preference. · c0781fdd
      David Thompson authored
      This also
      + makes highlighting more robust against unreported
        (i.e., buggy Qt) "leave" events (by also resetting the hover
        selection when the mouse leaves the resource panel dock widget).
      + draws a background on Qt items as the mouse hovers over them
        (when highlight-on-hover is set) so that users get feedback on
        when Qt has skipped events.
      + fixes transforms applied to the representation; previously,
        transforms were not applied to selected/highlighted components.
      + fixes the build against latest ParaView master.
        The old `WRAP_EXCLUDE` and `WRAP_EXCLUDE_PYTHON` CMake source
        properties are no longer used; classes must pay attention to
        the `__VTK_WRAP__` macro to exclude themselves if needed.
      + adds user preferences for selection/hover colors and a default
        model-face color (for model edges, we should use ParaView's
        existing edge color).
        Thanks to Utkarsh for explaining the `<Extension ...>`
        element in PV's SM XML.
      + fixes the "can't deselect" bug (the SMTK model-representation's
        actors/mappers were not being updated when no entities were selected).
      c0781fdd
  5. 21 Mar, 2018 1 commit
  6. 02 Mar, 2018 1 commit
  7. 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
  8. 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
  9. 18 Nov, 2017 1 commit
    • David Thompson's avatar
      Checkpoint on PV, resource, selection, and operation refactor. · 4e330ba2
      David Thompson authored
      + Implement some stubbed methods in smtk::operation classes
        and test them.
      + Add C++11 callbacks for listening to operator events (all
        of them, not just individual operators like the model-
        operator callbacks did).
      + Add behaviors to the ParaView extensions that do client-
        server communication of selections.
      + Add pqSMTKResourceManager proxy that gets created by
        pqSMTKResourceManagerBehavior upon plugin startup.
        All the selection management stuff in the behavior should
        eventually be moved into the proxy class.
      + Add pqSMTKResource proxy that registers itself with
        the VTK/PV-wrapping of SMTK's resource manager.
      + Fix documentation and add stubs for documenting the
        `smtk/extension` directory.
      + Add Qt extension classes that expose the new
        descriptive phrase classes in `smtk/view`.
      + Use the new qtDescriptivePhraseModel in a panel
        to show resources in ParaView as a behavior.
      + Eliminate client-server duality.
        For now, we work only with PV's built-in server,
        not separate client+server processes.
        This means that there is no need for operator
        forwarding, separate resources on the client and server,
        problems synchronizing the client-only attribute panels
        with models that are modified only on the server, etc.
      4e330ba2
  10. 15 May, 2017 1 commit
  11. 11 May, 2017 1 commit
  12. 08 May, 2017 1 commit
  13. 26 Apr, 2017 1 commit
  14. 25 Apr, 2017 1 commit
    • Haocheng LIU's avatar
      FEATURE: Add active model support · bf7b6e10
      Haocheng LIU authored
      SMTK&CMB now has a concept of active model. Loading, switching and
      closing model(s)/data would reset the active model correspondingly.
      A singleton class(qtActiveObjects) is used to store active model.
      subPhraseGenerator would also keep a copy of it.
      Only active model can be selected by rubber band. And only active model
      would be expanded in model tree. Attribute panel would only list active
      model's entities. Check CMB issue #140 for detail.
      bf7b6e10
  15. 10 Apr, 2017 1 commit
    • Haocheng LIU's avatar
      Add assign color to ENTITY_LIST feature · 4db17e02
      Haocheng LIU authored
      Now user can assign color to ENTITY_LIST by just clicking the icon.
      For this ENTITY_LIST, it's parent entity must be a model and the color
      info is stored as a FloatProperty on the associated model as "$Entity::
      flagSummary(bitflags) + color."(Ex. "face color").
      This MR also fix a logic error in qtItemDelegate when deciding color
      is mutable or not.
      4db17e02
  16. 29 Mar, 2017 1 commit
  17. 28 Mar, 2017 1 commit
  18. 27 Mar, 2017 1 commit
  19. 18 May, 2016 1 commit
  20. 22 Jul, 2015 1 commit
    • Yumin Yuan's avatar
      Methods to determine action given click position in model tree · 2831b0fa
      Yumin Yuan authored
      After a mouse click, based on the clicked position, which could be
      the eyeball icon for visibility toggle, or the color swatch for
      launching the color dialog, the tree view invokes property actions.
      In order to record and playback these operations, the recorder
      and player need to know the actions being invoked on which index.
      This combining with new event translator and player classes makes
      recording and playing back changing visibility and colors of
      model entities possible.
      2831b0fa
  21. 15 Jan, 2015 1 commit
  22. 19 Dec, 2014 1 commit
    • Yumin Yuan's avatar
      Fixed a couple issues with parsing set-property op result · 327ceeee
      Yumin Yuan authored
      There are a couple issues being addressed int this commit. First,
      the ModelEntityItemDef is not copied properly. It is missing
      isExtensible and MaxNumValues variables. Second, the XmlV2String
      writer and parser have mis-matched logic for processing ModelEntityItem.
      Last thing was fixed is the wrong initialization of visibility for entityphrase.
      327ceeee
  23. 16 Dec, 2014 1 commit
  24. 21 Nov, 2014 1 commit
  25. 26 Sep, 2014 1 commit
  26. 24 Sep, 2014 2 commits
  27. 11 Feb, 2014 2 commits
  28. 23 Dec, 2013 1 commit
    • David Thompson's avatar
      Progress: hierarchical schizophrenia. · cf1bdbe9
      David Thompson authored
      The QEntityItemModel now presents at least some of
      the hierarchical information available, but it is
      far from complete.
      
      Editing names is not yet supported, nor is sorting.
      cf1bdbe9
  29. 13 Dec, 2013 1 commit
  30. 07 Dec, 2013 1 commit
  31. 04 Dec, 2013 2 commits