For Prerel 5.2.1: Gnats 4843 Fixed: ListSlot Dialog no longer has Ok/Apply/Reset/Cancel Buttons (1) EditObj base class removed from ListSlot. (2) Removal of the buttons: OK, Apply, Reset, and Cancel. (3) Hiding of the StatusBar, based on constant: ShowStatusBar. Modified files include: Sim/ListSlot.hpp .. ListSlot.cpp .. ListSlot.cxx .. Q3GUI/ListSlotDlg.hpp .. ListSlotDlg.cpp .. ListSlotDlg.cxx .. ListSlotDlgBase.ui ================== CVS NOTES (1 of 2) (10-Jan-2010) ================== Short Description: Removing EditObj base class from ListSlot Bug Number: 4843: List slot editing, especially deleting items, is misleading Release notes (y/n): YES For Release Nums: 5.2.1 Gnats 4843: List slot editing, especially deleting items, is misleading We're removing the EditObj base class from ListSlot, and also removing the four buttons along the bottom of the dialog (OK, Apply, Reset, and Cancel). ---------------- Sim/ListSlot.hpp Sim/ListSlot.cpp Sim/ListSlot.cxx ---------------- As of RiverWare 5.2.1 (Jan 2010), ListSlot is no longer an EditObj. Added protected base class method: void sendListSlotCallback (CallbackType, int row, const char* debugStr); Removed these EditObj methods: // EditObj interface - init, apply and revert edit virtual ListSlot* init_edit() throw (cwException); virtual void apply_edit(ListSlot* copy) throw (cwException); virtual void revert_edit(ListSlot* orig) throw (cwException); These simple public methods (which call private implementations) were rewritten (very simple), and now generate the LISTSLOT_LIST_CHANGED callback: // public editing methods; return success indication; generate callbacks. bool insertBefore(T obj, int index); bool replace(T obj, int index); bool swap(int index1, int index2); bool remove(int index); bool clear(); ------------------------ Q3GUI/ListSlotDlg.hpp Q3GUI/ListSlotDlg.cpp Q3GUI/ListSlotDlg.cxx Q3GUI/ListSlotDlgBase.ui ------------------------ (1) EditObj base class removed from ListSlot. (2) Removal of the buttons: OK, Apply, Reset, and Cancel. (3) Hiding of the StatusBar, based on constant: ShowStatusBar. Instead of removing the _editSlot, it is just given the _origSlot value. This seems to be working well, but more testing will be necessary. Removal of these methods (Qt slots) in both ListSlotDlg classes (base and template class): virtual void okHandler() = 0; virtual void applyHandler() = 0; virtual void resetHandler() = 0; virtual void cancelHandler() = 0; ----------------------- Q3GUI/OpenObjectDlg.cpp ----------------------- Update ListSlot item (in particular: the list item count in the "value" column) in response to the LISTSLOT_LIST_CHANGED callback. Change in method: int OpenObjectDlg::slotCallbackHandler (CallbackType, CallbackData*, void*); ================== CVS NOTES (2 of 2) (11-Jan-2010) ================== Short Description: Additional 4843 Cleanup: ListSlotDlg, remove EditObj base. Bug Number: 4843: List slot editing, especially deleting items, is misleading Release notes (y/n): YES (same purpose as yesterday's checkin) For Release Nums: 5.2.1 Gnats 4843: List slot editing, especially deleting items, is misleading --------------------- Q3GUI/ListSlotDlg.hpp Q3GUI/ListSlotDlg.cpp Q3GUI/ListSlotDlg.cxx --------------------- Removed redundant slot pointer. This is no longer needed because ListSlot is no longer an EditObj, and doesn't maintain a second copy of the slot: REMOVE: ListSlot* _origSlot; // original slot KEEP: ListSlot* _editSlot; // edit slot NOTE ON CALLBACKS. The ListSlot Dialog NO LONGER makes use of the templated SlotList element callback handler registered with this method: bool ListSlot::setCbHandler (ListSlotCbBase* cbHandler). Instead, only the latter three callbacks are maintained: (1) REMOVE: ListSlotDlg :: callbackHandler() (2) KEEP: ListSlotDlg :: listSlotChangedCbHandler() (3) KEEP: ListSlotDlgItem :: rootItemCbHandler() (4) KEEP: ListSlotBaseDlg :: simObjCallbackHandler() Renamed virtual function: OLD: virtual void dropEditObj(); NEW: virtual void dropEditSlot(); ---------------- Sim/ListSlot.cxx ---------------- Removing recently-added redudant callback generation from method which handles deletions and other changes of Root objects contained WITHIN the ListSlot. template bool ListSlot::asyncRemove(T object) KEEP: SLOT_STATUS_CHANGED_CALLBACK (this, SLOT_VALUE_CHANGED); REMOVE: sendListSlotCallback (LISTSLOT_LIST_CHANGED, (-1), "asyncRemove"); ------------------ Sim/ListSlotCb.cpp ------------------ Minor: Added diagnostic output. Commented out. ---