24using namespace KoMacro;
32 class MacroItem::Private
38 TDESharedPtr<Action> action;
55 inline const TQVariant cast( const TQVariant& variant, TQVariant::Type type) const
67 case TQVariant::Bool: {
68 const TQString s = variant.toString();
69 ok = (s == "true" || s == "false" || s == "0" || s == "1" || s == "-1");
70 v = TQVariant( variant.toBool(), 0 );
72 case TQVariant::Int: {
75 Q_ASSERT(!ok || v.toString() == variant.toString());
77 case TQVariant::UInt: {
79 Q_ASSERT(!ok || v.toString() == variant.toString());
81 case TQVariant::LongLong: {
83 Q_ASSERT(!ok || v.toString() == variant.toString());
85 case TQVariant::ULongLong: {
87 Q_ASSERT(!ok || v.toString() == variant.toString());
89 case TQVariant::Double: {
91 Q_ASSERT(!ok || v.toString() == variant.toString());
93 case TQVariant::String: {
100 kdWarning()<< "MacroItem::Private::cast() Unhandled ok="<<ok<< " type="<<type<< " value="<<v<<endl;
144 TDESharedPtr<Variable> v = variable(name, checkaction);
145 return v.data() ? v->variant() : TQVariant();
150 if(d->variables.contains(name))
151 return d->variables[name];
152 if(checkaction && d->action.data())
153 return d->action->variable(name);
154 return TDESharedPtr<Variable>(0);
166 TDESharedPtr<Variable> actionvariable = d->action ? d->action->variable(name) : TDESharedPtr<Variable>(0);
170 const TQVariant v = actionvariable.data()
171 ? d->cast( variant, actionvariable->variant().type())
175 TDESharedPtr<Variable> variable = d->variables[name];
178 kdDebug() << "MacroItem::setVariable() Creating new variable name=" << name << endl;
182 d->variables.replace(name, variable);
186 const TQVariant oldvar = variable->variant();
194 if(d->action && ! d->action->notifyUpdated( this, name)) {
195 kdWarning() << "MacroItem::setVariable() Notify failed for variable name=" << name << endl;
206 Q_ASSERT(! d->variables.contains(name) );
212 d->variables.replace(name, variable);
void setComment(const TQString &comment) Set the comment.
TDESharedPtr< Variable > addVariable(const TQString &name, const TQVariant &variant) Add a new variable with the vaiablename.
bool setVariant(const TQString &name, const TQVariant &variant) Set the TQVariant.
TDESharedPtr< Action > action() const
void setAction(TDESharedPtr< Action > action) Set the Action.
TQMap< TQString, TDESharedPtr< Variable > > variables() const
TQVariant variant(const TQString &name, bool checkaction=false) const
TDESharedPtr< Variable > variable(const TQString &name, bool checkaction=false) const
A variable value used to provide abstract access to variables.
TQMap< TQString, TDESharedPtr< Variable > > Map A map of variables.
|