/*! Searches for a command with given name. Returns null if none found. */ TasCommand* TasTarget::findCommand(const QString& commandName) { TasCommand* match = 0; QListIterator<TasCommand*> i(commandList()); while (i.hasNext()){ TasCommand* command = i.next(); if(command->name() == commandName){ match = command; break; } } return match; }
void ObjectService::performObjectService(TasCommandModel& model, TasResponse& response) { TasLogger::logger()->debug(QString("TasCommander::performObjectService entry")); QListIterator<TasTarget*> i(model.targetList()); QString errorString; while (i.hasNext()){ TasTarget* commandTarget = i.next(); QString targetId = commandTarget->id(); QString targetType = commandTarget->type(); QObject* target = 0; if(targetType == TYPE_GRAPHICS_VIEW){ QGraphicsItem* item = findGraphicsItem(targetId); //target = TestabilityUtils::castToGraphicsWidget(item); target = item->toGraphicsObject(); } else if(targetType == TYPE_STANDARD_VIEW){ target = findWidget(targetId); //If Type is Standard View check QObjects in cache too. if(!target) { target = findObject(targetId); } } else if(targetType == TYPE_QSCENEGRAPH){ target = findQuickItem(targetId); } else if(targetType == TYPE_APPLICATION_VIEW ){ target = qApp; } // TODO: add support //else if(targetType == TYPE_ACTION_VIEW = "Action"; //else if(targetType == TYPE_LAYOUT = "Layout"; //else if(targetType == TYPE_LAYOUT_ITEM = "LayoutItem"; //else if(targetType == TYPE_WEB = "Web"; //else if(targetType == TYPE_QWEB = "QWeb"; else { errorString.append(targetType + " target type not supported. "); } TasLogger::logger()->debug( QString("TasCommander::performObjectService %1 %2 found: %3") .arg(targetType).arg(targetId).arg(target!=NULL)); if (target) { QListIterator<TasCommand*> j(commandTarget->commandList()); while (j.hasNext()){ TasCommand* command = j.next(); if(command->name() == "SetAttribute"){ doSetAttribute(command, target, errorString); } else if (command->name() == "CallMethod"){ response.setData(doCallMethod(command, target, errorString)); } else { TasLogger::logger()->debug( QString("TasCommander::performObjectService %1 %2: unsupported %3") .arg(targetType).arg(targetId).arg(command->name())); } } } } if(!errorString.isEmpty()){ response.setErrorMessage(errorString); TasLogger::logger()->debug( QString("TasCommander::performObjectService errors: %1") .arg(errorString)); } else { TasLogger::logger()->debug( QString("TasCommander::performObjectService, no errors.")); } }