예제 #1
0
    virtual int symlink_cmddialog::exec (void)
    {
	int error = 0;
	vector < string >::iterator iter;
	int i=0;
    	for (iter = src.begin (); iter != src.end(); iter++)
    	{
	    string newname =  vec[i]->getText ().text ();
	    
	    bool ret;
	    if (hardlink->getCheck ())
	    	ret=fb->hardlink (*iter, newname);
	    else
	        ret=fb->symlink (*iter, newname);	
			
	    if ( ret== false)
	    {
		error = -1;
		string err = "can't symlink " + *iter + " to " + newname;

		FXLabel *lab = new FXLabel (contents, err.c_str ());
		lab->create ();
		this->layout ();
		this->resize (this->getWidth (), this->getHeight () + lab->getHeight ());

	    }
	i++;
	}


	return error;

    }
예제 #2
0
    virtual int OSClone::exec ( void )
    {
        int error = 0;
    
        
        vector < string >::iterator iter;
        int i = 0;
        for ( iter = src.begin (); iter != src.end(); iter++ )
        {
            string newname = dir + SEPARATOR + vec[ i ] ->getText ().text ();
            string newonlyname = vec[ i ] ->getText ().text ();

            string destdir = "/tmp/openspace";
            string filename = FXFile::name( iter->c_str() ).text();
            string dirname = FXFile::directory( iter->c_str() ).text();

            OSThreadExec *el2 = new OSThreadExec ( fb, "copy", "upload", *iter, destdir );
            fb->copy ( el2 );
            delete el2;



            if ( fb->rename ( destdir + "/" + filename, destdir + "/" + newonlyname ) == false )
            {
                error = -1;
                string err = "can't clone " + *iter + " to " + newname;

                FXLabel *lab = new FXLabel ( contents, err.c_str () );
                lab->create ();
                this->layout ();
                this->resize ( this->getWidth (), this->getHeight () + lab->getHeight () );

            }
            else
            {

                el2 = new OSThreadExec ( fb, "move", "upload", destdir + "/" + newonlyname, dirname );
                fb->copy ( el2 );
                delete el2;

            }


            i++;
        }

    
        return error;

    }