コード例 #1
0
void VirtualDirectoryTree::BuildTree(const wxString& projName)
{
    ProjectPtr proj = ManagerST::Get()->GetProject(projName);
    wxCHECK_RET(proj, "Can't find a Project with the supplied name");

    ProjectTreePtr tree = proj->AsTree();
    TreeWalker<wxString, ProjectItem> walker(tree->GetRoot());

    for ( ; !walker.End(); walker++ ) {
        ProjectTreeNode* node = walker.GetNode();
        wxString displayname(node->GetData().GetDisplayName());
        if (node->GetData().GetKind() == ProjectItem::TypeVirtualDirectory) {
            wxString vdPath = displayname;
            ProjectTreeNode* tempnode = node->GetParent();
            while (tempnode) {
                vdPath = tempnode->GetData().GetDisplayName() + ':' + vdPath;
                tempnode = tempnode->GetParent();
            }

            VirtualDirectoryTree* parent = FindParent(vdPath.BeforeLast(':'));
            if (parent) {
                parent->StoreChild(displayname, vdPath);
            } else {
                // Any orphans must be root's top-level children, and we're root
                StoreChild(displayname, vdPath);
            }
        }
    }
}
コード例 #2
0
ファイル: skype_profile.cpp プロジェクト: kxepal/miranda-ng
void CSkypeProto::UpdateProfileDisplayName(const JSONNode &root, MCONTACT hContact)
{
	ptrT firstname(getTStringA(hContact, "FirstName"));
	ptrT lastname(getTStringA(hContact, "LastName"));
	if (firstname) {
		CMString nick = firstname;
		if (lastname)
			nick.AppendFormat(_T(" %s"), lastname);
		setTString(hContact, "Nick", nick);
	}
	else if (lastname)
		setTString(hContact, "Nick", lastname);
	else {
		
		const JSONNode &node = root["displayname"];
		CMString displayname((!node) ? root["username"].as_mstring() : node.as_mstring());
		if (!displayname.IsEmpty() && displayname != "null")
			setTString(hContact, "Nick", displayname);
		else
			delSetting(hContact, "Nick");
	}
}