QString RyJsBridge::doAction(int action, const QString msg, quint64 groupId){ qDebug()<<"doAction "<<QString::number(action)<< msg<<"groupId"<<QString::number(groupId); RyRuleManager *manager = RyRuleManager::instance(); QSharedPointer<RyRuleProject> pro; QSharedPointer<RyRuleGroup> group; QSharedPointer<RyRule> rule; switch(action){ case 0://add local group group = manager->addGroupToLocalProject(msg);//暂时只允许添加到本地project //emit ruleChanged(0,"success"); if(!group.isNull()){ qDebug()<<group->toJSON(); return group->toJSON(); } break; case 1://add rule to group rule = manager->addRuleToGroup(msg,groupId); if(!rule.isNull()){ //qDebug()<<QString::number(rule->ruleId()); //return QString::number(rule->ruleId()); return rule->toJSON(); } break; case 2://add remote project pro = manager->addRemoteProject(msg); if(!pro.isNull()){ emit ruleChanged(2,pro->toJson()); return pro->toJson(); } break; case 3://update group manager->updateRuleGroup(msg,groupId); break; case 4://update rule manager->updateRule(msg,groupId); break; case 5://remove group manager->removeGroup(msg.toULongLong()); break; case 6://remove rule (6,ruleId,groupId) manager->removeRule(msg.toULongLong(),groupId); break; case 7://import local config pro = manager->addLocalProject(msg); if(!pro.isNull()){ emit ruleChanged(2,pro->toJson()); return pro->toJson(); } break; } return ""; }
QmlPresenceModelStub::QmlPresenceModelStub(QObject *parent) : QmlPresenceModel(parent) { appendRow(1, "SIP"); appendRow(2, "Google Talk"); appendRow(3, "Change to remove random"); appendRow(4, "Change to add random"); onRuleChanged(); connect(this, SIGNAL(ruleChanged()), SLOT(onRuleChanged())); }