[rkward-cvs] rkward component-draft,1.3,1.4
Thomas Friedrichsmeier
tfry at users.sourceforge.net
Fri Nov 18 17:13:30 UTC 2005
Update of /cvsroot/rkward/rkward
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24449
Modified Files:
component-draft
Log Message:
Further sketching on component draft
Index: component-draft
===================================================================
RCS file: /cvsroot/rkward/rkward/component-draft,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** component-draft 18 Nov 2005 15:08:49 -0000 1.3
--- component-draft 18 Nov 2005 17:13:28 -0000 1.4
***************
*** 43,47 ****
/** for RTTI. see RKComponentSlotTypes */
virtual int type ();
! /** connect this slot to a governor slot (given as argument). If reconcile_requirements, the requirements of both slots are reconciled to the lest common denominator. The dependent slot will be notified on all changes made in the governing slot, so it can update its value.
Generally with few exceptions, you can only connect to slots that are either of the same class as this slot, or of an extended class. Maybe in the future we will add some sophisticated converters allowing to connect vastly different types of slots in a meaningful way.
If you specify a modifier, only the sub-value indicated by the modifier will be retrieved from the governing slot on governorValueChanged. In this case reconcile_requirements is ignored. */
--- 43,47 ----
/** for RTTI. see RKComponentSlotTypes */
virtual int type ();
! /** connect this slot to a governor slot (given as argument). If reconcile_requirements, the requirements of both slots are reconciled to the least common denominator. The dependent slot will be notified on all changes made in the governing slot, so it can update its value.
Generally with few exceptions, you can only connect to slots that are either of the same class as this slot, or of an extended class. Maybe in the future we will add some sophisticated converters allowing to connect vastly different types of slots in a meaningful way.
If you specify a modifier, only the sub-value indicated by the modifier will be retrieved from the governing slot on governorValueChanged. In this case reconcile_requirements is ignored. */
***************
*** 112,117 ****
};
! // Actually, I believe, we'd rather not have this one, but rather attach those function to the RKComponent class directly instead!
! /** special type of RKComponentSlot used to contain R code. All stand-alone RKComponents have this */
class RKComponentSlotCode : public RKComponentSlotBase {
public:
--- 112,116 ----
};
! /** special type of RKComponentSlot used to contain R code. All stand-alone RKComponents have this. The great thing about this, is that code can be made available to embedding RKComponents by just fetching the component.code.preprocess (or .calculate, .printout, .cleanup) value */
class RKComponentSlotCode : public RKComponentSlotBase {
public:
***************
*** 130,133 ****
--- 129,135 ----
/** abstract base class of all RKComponents, including component widgets */
class RKComponent : public QWidget {
+ public slots:
+ /** generally the valueChanged () signal of all RKComponentSlots directly owned by this component should be connected to this (Qt-)slot, so the component can update itself accordingly */
+ void slotValueChanged (RKComponentSlotBase *slot);
public:
/** standard slot controlling visibility */
***************
*** 142,145 ****
--- 144,149 ----
bool isSatisfied ();
bool isReady ();
+ /** Locate the component.subcomponent.slot.value described by modifier and return its value as a string. Especially useful as a callback in code templates! Recursively walks subcomponents/slots until the requested value is found. */
+ QString fetchStringValue (const QString &modifier);
private:
/** also notifies the parent, if applicable */
***************
*** 156,161 ****
};
! // TODO: do we need this?
! /** described the external interface provided by an RKComponent. This means a list of all slots that can be used as input for this component. Used for matching/mapping external RKComponentSlots to RKComponentSlots inside this component */
class RKComponentInterface {
};
--- 160,169 ----
};
! /** (long-term): A special RKComponent doing some sort of logic conversion. It's used to connect to one or more governing slots, process/convert the value of those slots in some way, and provide one (or more) output slots.
! //TODO: how will these be programmed? Hopefully we will soon have a better picture on what logic elements are actually commonly needed */
! class RKLogicComponent;
!
! // TODO: do we need this at all?
! /** describes the external interface provided by an RKComponent. This means a list of all slots that can be used as input for this component. Used for matching/mapping external RKComponentSlots to RKComponentSlots inside this component */
class RKComponentInterface {
};
More information about the rkward-tracker
mailing list