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; }
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; }