/// \brief Called when event loop is setup void EventDispatcher::initFunction() { if(core==NULL || copyEngineList==NULL) { ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Critical,"Unable to initialize correctly the software"); return; } ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"Initialize the variable of event loop"); connect(copyServer, SIGNAL(newCopy(quint32,QStringList,QStringList)), core, SLOT(newCopy(quint32,QStringList,QStringList))); connect(copyServer, SIGNAL(newCopy(quint32,QStringList,QStringList,QString,QString)), core, SLOT(newCopy(quint32,QStringList,QStringList,QString,QString))); connect(copyServer, SIGNAL(newMove(quint32,QStringList,QStringList)), core, SLOT(newMove(quint32,QStringList,QStringList))); connect(copyServer, SIGNAL(newMove(quint32,QStringList,QStringList,QString,QString)), core, SLOT(newMove(quint32,QStringList,QStringList,QString,QString))); connect(core, SIGNAL(copyFinished(quint32,bool)), copyServer, SLOT(copyFinished(quint32,bool))); connect(core, SIGNAL(copyCanceled(quint32)), copyServer, SLOT(copyCanceled(quint32))); if(localListener.tryConnect()) { stopIt=true; //why before removed??? QCoreApplication::quit(); return; } localListener.listenServer(); //load the systray icon if(backgroundIcon==NULL) { backgroundIcon=new SystrayIcon(); //connect the slot //quit is for this object // connect(core, SIGNAL(newCanDoOnlyCopy(bool)), backgroundIcon, SLOT(newCanDoOnlyCopy(bool))); connect(backgroundIcon, SIGNAL(quit()),this,SLOT(quit())); //show option is for OptionEngine object connect(backgroundIcon, SIGNAL(showOptions()), &optionDialog, SLOT(show())); connect(copyServer, SIGNAL(listenerReady(ListeningState,bool,bool)), backgroundIcon, SLOT(listenerReady(ListeningState,bool,bool))); connect(copyServer, SIGNAL(pluginLoaderReady(CatchState,bool,bool)), backgroundIcon, SLOT(pluginLoaderReady(CatchState,bool,bool))); connect(backgroundIcon, SIGNAL(tryCatchCopy()), copyServer, SLOT(listen())); connect(backgroundIcon, SIGNAL(tryUncatchCopy()), copyServer, SLOT(close())); if(options->getOptionValue("CopyListener","CatchCopyAsDefault").toBool()) copyServer->listen(); ULTRACOPIER_DEBUGCONSOLE(DebugLevel_Notice,"copyServer.oneListenerIsLoaded(): "+QString::number(copyServer->oneListenerIsLoaded())); //backgroundIcon->readyToListen(copyServer.oneListenerIsLoaded()); connect(backgroundIcon, SIGNAL(addWindowCopyMove(CopyMode,QString)), core, SLOT(addWindowCopyMove(CopyMode,QString))); connect(backgroundIcon, SIGNAL(addWindowTransfer(QString)), core, SLOT(addWindowTransfer(QString))); connect(copyEngineList, SIGNAL(addCopyEngine(QString,bool)), backgroundIcon, SLOT(addCopyEngine(QString,bool))); connect(copyEngineList, SIGNAL(removeCopyEngine(QString)), backgroundIcon, SLOT(removeCopyEngine(QString))); copyEngineList->setIsConnected(); copyServer->resendState(); } //conntect the last chance signal before quit connect(QCoreApplication::instance(),SIGNAL(aboutToQuit()),this,SLOT(quit())); //connect the slot for the help dialog connect(backgroundIcon,SIGNAL(showHelp()),&theHelp,SLOT(show())); }
void dialogKopiuj::closeEvent(QCloseEvent *event) { if (!this->opFinished) //copy in progress { if (QMessageBox::question(this, tr("Close?"), tr("Are you sure??"), QMessageBox::Yes | QMessageBox::No) == QMessageBox::No) // No pressed { event->ignore(); //copy continues } else // Yes pressed { // Abort copy, dialog closed this->setProgressValue(NULL); this->threadCopy->proces->kill(); this->threadCopy->terminate(); this->threadCopy = NULL; delete this->threadCopy; this->threadProgress->terminate(); this->threadProgress = NULL; delete this->threadProgress; event->accept(); emit copyCanceled(); } } else // copy finished { this->accept(); // dialog closed } }
void ServerCatchcopy::copyCanceled(const uint32_t &globalOrderId) { int index=0; while(index<LinkGlobalToLocalClientList.size()) { if(LinkGlobalToLocalClientList.at(index).globalOrderId==globalOrderId) { copyCanceled(LinkGlobalToLocalClientList.at(index).idClient,LinkGlobalToLocalClientList.at(index).orderId); LinkGlobalToLocalClientList.removeAt(index); orderList.removeOne(globalOrderId); return; } index++; } }
void Core::actionInProgess(const Ultracopier::EngineActionInProgress &action) { int index=indexCopySenderCopyEngine(); if(index!=-1) { ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QString("action: %1, from %2").arg(action).arg(index)); //drop here the duplicate action if(copyList[index].action==action) { ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QString("The copy engine have send 2x the same EngineActionInProgress")); return; } //update time runing for time remaning caculation if(action==Ultracopier::Copying || action==Ultracopier::CopyingAndListing) { if(!copyList.at(index).isRunning) copyList[index].isRunning=true; } else { if(copyList.at(index).isRunning) copyList[index].isRunning=false; } //do sync periodicSynchronizationWithIndex(index); copyList[index].action=action; if(copyList.at(index).interface!=NULL) copyList.at(index).interface->actionInProgess(action); if(action==Ultracopier::Idle) { int index_sub_loop=0; int loop_size=copyList.at(index).orderId.size(); while(index_sub_loop<loop_size) { emit copyCanceled(copyList.at(index).orderId.at(index_sub_loop)); index_sub_loop++; } copyList[index].orderId.clear(); resetSpeedDetected(index); } } else ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"unable to locate the interface sender"); }
/// \brief the transfer have been canceled void Core::copyInstanceCanceledByIndex(const int &index) { ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start, remove with the index: "+QString::number(index)); //disconnectEngine(index); //disconnectInterface(index); copyList[index].canceled=true; CopyInstance& currentCopyInstance=copyList[index]; currentCopyInstance.engine->cancel(); delete currentCopyInstance.nextConditionalSync; delete currentCopyInstance.interface; int index_sub_loop=0; int loop_size=currentCopyInstance.orderId.size(); while(index_sub_loop<loop_size) { emit copyCanceled(currentCopyInstance.orderId.at(index_sub_loop)); index_sub_loop++; } currentCopyInstance.orderId.clear(); copyList.removeAt(index); if(copyList.size()==0) forUpateInformation.stop(); ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"copyList.size(): "+QString::number(copyList.size())); }