CustomElements::CustomElements(QObject *parent_) :
  Avogadro::QtGui::ExtensionPlugin(parent_),
  m_molecule(NULL),
  m_reassignAction(new QAction(tr("Reassign &Custom Elements..."), this))
{
  connect(m_reassignAction, SIGNAL(triggered()), SLOT(reassign()));

  updateReassignAction();
}
示例#2
0
文件: kd.cpp 项目: FairSky/APS
void kd_tree::descend(int root){

  if(tree[root][1]>=0)descend(tree[root][1]);
  if(tree[root][2]>=0)descend(tree[root][2]);
  
  reassign(root);  
    

}
示例#3
0
文件: kd.cpp 项目: uwssg/ModifiedAPS
void kd_tree::descend(int root){
    /*
    For use when removing a node from the tree.
    
    Wander down the specified branch until you find a terminal node.
    Reassign that terminal node to the new tree.
    */
    
    if(tree.get_data(root,1)>=0)descend(tree.get_data(root,1));
    if(tree.get_data(root,2)>=0)descend(tree.get_data(root,2));
  
    reassign(root);  
    

}
void breakKey(string str)
{
	int index=0;
	string command;
	string name;
	string tt;
	string s;
	name.clear();
	//Reading the command name
	for(int i=0;i<(int)str.length();i++)
	{
	if(str[i]==' ')
		{
		index=i;
		break;
		}
	command.push_back(str[i]);
	}
	
	if(command.compare("store")==0)
	{
					nextisget=0;

	for(int i=index+1;i<(int)str.length();i++)
	{
	if(str[i]==' ')
		{
		index=i;
		break;
		}
	name.push_back(str[i]);
	}

	for(int i=index+1;i<(int)str.length();i++)
	{
	if(str[i]==' ')
		{
		index=i;
		break;
		}
	tt.push_back(str[i]);
	}

	//Splitting all the strings
	for(int i=index+1;i<(int)str.length();i++)
	{
		if(str[i]=='='||str[i]==' ')
		{
		std::transform(s.begin(),s.end(),s.begin(),::tolower);
		keywords.push_back(s);
		s.clear();
		continue;
		}
		if(str[i]!='\"')
		s.push_back(str[i]);
		else
		{
		if(i==((int)str.length()-1))
		{
		std::transform(s.begin(),s.end(),s.begin(),::tolower);
		keywords.push_back(s);
		s.clear();
		}
		}

	}
		store(name,atoi(tt.c_str()),keywords);

	//display();
	}
	else 
		if(command.compare("search")==0)
	{
			localsearchbuffer.clear();

		string type;
		string content;
		vector<string> v;
		vector<searchresponse> j;
vector<string> fd;
vector<string> md;
/*---------Reading the type of the file---------------*/
		for(int i=index+1;i<(int)str.length();i++)
	{
	if(str[i]=='=')
		{
		index=i;
		break;
	
		}
	type.push_back(str[i]);
	}
/*----------------------------------------------------*/
	for(int i=index+1;i<(int)str.length();i++)
	{

	content.push_back(str[i]);
	}


if(type.compare("filename")==0)
		{
	v.push_back(content);
	j=searchProc(v,0);

	search(0,v);
		}
if(type.compare("sha1hash")==0)
		{
	 char ab[40];
	 string snd;
	 
	reassign(ab,content);
	unsigned char shg[20];
	
	stripIndex(ab,shg);
	snd=assign(shg);

	v.push_back(snd);
		j=searchProc(v,1);

	search(1,v);


		}
if(type.compare("keywords")==0)
		{
int nospace=1;
for(int i=index+1;i<(int)str.length();i++)
	{
	if(str[i]=='\"'&&i==(index+1))
		continue;
		if(str[i]==' '||str[i]=='\"')
		{
		v.push_back(s);
		s.clear();
		nospace=0;
		
		continue;

		}

	s.push_back(str[i]);
	
	}
	if(nospace)
			{
		v.push_back(s);

			}
	j=searchProc(v,2);

	search(2,v);

	/*for(int i=0;i<(int)v.size();i++)
		cout<<v[i]<<endl;*/
	
}


for(int i=0;i<(int)j.size();i++)
		{
		md.push_back(j[i].fileid);
		fd.push_back(j[i].mdata);
		}


searchResponse(md,fd);
		int sid=1;
		while(search_flag)
		{
		pthread_mutex_lock(&globalbufferlock);
		if(globalsearchbuffer.size()==0)
			{
			pthread_mutex_unlock(&globalbufferlock);
			//cout<<"sleeping"<<endl;
			sleep(1);
			continue;
			}
		for(int i=0;i<(int)globalsearchbuffer.size();i++)
			{
			
			localsearchbuffer.push_back(globalsearchbuffer[i]);
			displaySearchResponse(globalsearchbuffer[i],sid);
			sid++;
			}
		globalsearchbuffer.clear();
		pthread_mutex_unlock(&globalbufferlock);
		}
		search_flag=1;
		nextisget=1;



	}
	else if(command.compare("get")==0)
	{
		if(nextisget)
		{
		string no;
		int ino;
		int extfile_flag=0;
		getres gs;
		getExtFile.clear();

/*---------Reading the type of the file---------------*/
	for(int i=index+1;i<(int)str.length();i++)
	{
	if(str[i]==' ')
		{
		index=i;
		extfile_flag=1;
		break;
		}
	no.push_back(str[i]);
	}
/*----------------------------------------------------*/
string nameoffile;
if(extfile_flag==1)
			{
for(int i=index+1;i<(int)str.length();i++)
				{
				nameoffile.push_back(str[i]);
				}
			}
	ino=atoi(no.c_str());
	if(localsearchbuffer.size()!=0)
			{
	gs=localsearchbuffer[ino-1];
			}

	if(extfile_flag)
			{
			getExtFile.assign(nameoffile);
			//cout<<nameoffile<<"Sdsd"<<endl;
			if(fileExistsInCurr(nameoffile))
				{
				string dec;
				cout<<"THE FILE EXISTS...SHOULD WE OVERWRITE THE FILE(yes/no)\n";
				cin>>dec;
				bug=1;
				if(dec[0]=='y'||dec[0]=='Y')
					{
					//cout<<"he is asking us to rewrite the file";
					get_UI(gs.fileid,gs.sha1);
					}
				else
					{
					cout<<"FILE RETRY FAILED\n";
					}
				}
			else
				{
				//cout<<"Calling get"<<endl;
				get_UI(gs.fileid,gs.sha1);
				}
			}
	else
			{
			getExtFile.assign(gs.filename);
			if(fileExistsInCurr(gs.filename))
				{
				string dec;
				cout<<"THE FILE EXISTS...SHOULD WE OVERWRITE THE FILE(yes/no)";
				cin>>dec;
				bug=1;
				if(dec[0]=='y'||dec[0]=='Y')
					{
					get_UI(gs.fileid,gs.sha1);
					}
				else
					{
					cout<<"RETRY FAILED"<<endl;
					}
				}
			else
				{