Phil Weinstein / 11-10-2011 Short Description: Open RplSet Usability Enhancements Bug Number: 5113 Release notes (y/n): Yes For Release Nums: 6.1 Addition of "Show Open RplSet" buttons to Workspace status bar. This is an extension to the enhancements made last week to address 5113. SEE: http://cadswes2.colorado.edu/~philw/2011/bugs/5113/ For consistency, NOW status bar buttons are ALSO shown for the following three "built-in" RplSets -- but only if they are not empty (i.e. having at least one RplGroup): (1) Expression Slot Function Set (2) Iterative MRM Rules Set (3) Initialization Rules Set Also, when Accounting is enabled, a button is shown for: (4) Object Level Accounting Method Set Additionally, the new RplSet buttons are NOT shown for the "Loaded" RplSets (which are supported by the existing larger Workspace statusbar buttons -- one for "RBS" and one for "OPT"). TECHNICAL: To avoid additional coupling between QtRpl/RplDlgMgr and Q3GUI/Workspace, a notification of a RplSet Edit Change is routed through a Q3GUI/QGui function. (QtRpl/RplDlgMgr already uses QGui). This notification is needed to dynamically show or hide buttons for the built-in RplSets, i.e. depending on whether or not those RplSets have any RplGroups. ------------------- Q3GUI/Workspace.hpp Q3GUI/Workspace.cpp ------------------- Changes to method: Workspace::rebuildOpenRplSetButtonBox(). - Exclude LOADED RplSets (RBS and/or OPT). - Force instantiation of Accounting RplSet if Accounting is enabled. - Conditionally create buttons for existing RplSets of these types: RplApplication::UDAM (Note: Misnamed. should be "OLAM"). RplApplication::SLOT_EXPR RplApplication::MRM RplApplication::INIT_RULES New method: void rplObjEditNotification (RplObj*, RplSet*, int rplEditType); .. calls rebuildOpenRplSetButtonBox() when receiving RPL_EDIT_ADD .. and RPL_EDIT_REMOVE notifications of RPL_GROUPS (to/from a RPL_SET). Method rebuildOpenRplSetButtonBox() is now also called from these methods: Workspace::enableAccountingChange() Workspace::loadedRbsRplSetButton_clicked() Workspace::loadedOptRplSetButton_clicked() Workspace::callbackHandler (CallbackType, CallbackData*) - WS_MODEL_LOADED RPL_SET_LOADED and RPL_SET_UNLOADED events in: Workspace::rbsRuleSetMgrCallbackHandler (CallbackType, ..) Workspace::optSetMgrCallbackHandler (CallbackType, ..) Workspace::gblSetMgrCallbackHandler (CallbackType, ..) -- for completeness ------------------- QtRpl/RplDlgMgr.cpp ------------------- Method RplDlgMgr::updateDlgs (RplObj*, RplSet*, RplEditType) now calls QGui::notifyWorkspace_rplObjEdit (rplObj, rplSet, (int) editType); -------------- Q3GUI/QGui.hpp Q3GUI/QGui.cpp -------------- New function: void notifyWorkspace_rplObjEdit (RplObj*, RplSet*, int rplEditTypeInt); ... calls Workspace::rplObjEditNotification (RplObj*, RplSet*, int); ---