bool Leaf::undoRename() { QReadLocker locker (&lock); if (state->isLocked() || state->isRenameSucceeded() == Tribool::indeterminate) return false; if (!state->isRenameSucceeded()) { setStateReadyToRename(); return true; } QDir dir; if (parentComponent) dir.setPath(parentComponent->fullPath()); bool isSucceeded = dir.rename(newName, fileName); isSucceeded ? Log::log("undo SUCCEEDED : " + dir.absolutePath() + "/" + newName + " > " + fileName) : Log::log("undo ---FAILED : " + dir.absolutePath() + "/" + newName + " > " + fileName); locker.unlock(); isSucceeded ? setStateReadyToRename() : setStateUndoFailed(); return isSucceeded; }
static PyObject *meth_QReadLocker___exit__(PyObject *sipSelf, PyObject *sipArgs) { PyObject *sipParseErr = NULL; { PyObject * a0; PyObject * a1; PyObject * a2; QReadLocker *sipCpp; if (sipParseArgs(&sipParseErr, sipArgs, "BP0P0P0", &sipSelf, sipType_QReadLocker, &sipCpp, &a0, &a1, &a2)) { #line 71 "C:\\Users\\marcus\\Downloads\\PyQt-gpl-5.4\\PyQt-gpl-5.4\\sip/QtCore/qreadwritelock.sip" sipCpp->unlock(); #line 165 "C:\\Users\\marcus\\Downloads\\PyQt-gpl-5.4\\PyQt-gpl-5.4\\QtCore/sipQtCoreQReadLocker.cpp" Py_INCREF(Py_None); return Py_None; } } /* Raise an exception if the arguments couldn't be parsed. */ sipNoMethod(sipParseErr, sipName_QReadLocker, sipName___exit__, doc_QReadLocker___exit__); return NULL; }
void TabProgress::clipPOSCARProgress_() { if (!m_context_xtal) { emit finishedBackgroundProcessing(); return; } QReadLocker locker (m_context_xtal->lock()); QString poscar = qobject_cast<XtalOpt*>(m_opt)-> interpretTemplate("%POSCAR%", m_context_xtal); m_opt->setClipboard(poscar); // Clear context xtal pointer emit finishedBackgroundProcessing(); locker.unlock(); m_context_xtal = 0; }
static PyObject *meth_QReadLocker_unlock(PyObject *sipSelf, PyObject *sipArgs) { PyObject *sipParseErr = NULL; { QReadLocker *sipCpp; if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, sipType_QReadLocker, &sipCpp)) { sipCpp->unlock(); Py_INCREF(Py_None); return Py_None; } } /* Raise an exception if the arguments couldn't be parsed. */ sipNoMethod(sipParseErr, sipName_QReadLocker, sipName_unlock, doc_QReadLocker_unlock); return NULL; }
void TabProgress::updateInfo_() { // Prep variables Structure *structure; m_infoUpdateTracker.lockForWrite(); if (!m_infoUpdateTracker.popFirst(structure)) { m_infoUpdateTracker.unlock(); return; } m_infoUpdateTracker.unlock(); int i = m_opt->tracker()->list()->indexOf(structure); Scene *scene = qobject_cast<Scene*>(structure); if (i < 0 || i > ui.table_list->rowCount() - 1) { qDebug() << "TabProgress::updateInfo: Trying to update an index that doesn't exist...yet: (" << i << ") Waiting..."; m_infoUpdateTracker.lockForWrite(); m_infoUpdateTracker.append(scene); m_infoUpdateTracker.unlock(); QTimer::singleShot(100, this, SLOT(updateInfo())); return; } RD_Prog_TableEntry e; uint totalOptSteps = m_opt->optimizer()->getNumberOfOptSteps(); e.brush = QBrush(Qt::white); QReadLocker sceneLocker (scene->lock()); e.rank = scene->getRank(); e.id = scene->getIndex(); e.elapsed = scene->getOptElapsed(); e.jobID = scene->getJobID(); e.energy = scene->getEnergy(); switch (scene->getStatus()) { case Scene::InProcess: { sceneLocker.unlock(); QueueInterface::QueueStatus state = m_opt->queueInterface()->getStatus(scene); sceneLocker.relock(); switch (state) { case QueueInterface::Running: e.status = tr("Running (Opt Step %1 of %2, %3 failures)") .arg(QString::number(scene->getCurrentOptStep())) .arg(QString::number(totalOptSteps)) .arg(QString::number(scene->getFailCount())); e.brush.setColor(Qt::green); break; case QueueInterface::Queued: e.status = tr("Queued (Opt Step %1 of %2, %3 failures)") .arg(QString::number(scene->getCurrentOptStep())) .arg(QString::number(totalOptSteps)) .arg(QString::number(scene->getFailCount())); e.brush.setColor(Qt::cyan); break; case QueueInterface::Success: e.status = "Starting update..."; break; case QueueInterface::Unknown: e.status = "Unknown"; break; case QueueInterface::Error: e.status = "Error: Restarting job..."; e.brush.setColor(Qt::darkRed); break; case QueueInterface::CommunicationError: e.status = "Communication Error"; e.brush.setColor(Qt::darkRed); break; // Shouldn't happen; started and pending only occur when scene is "Submitted" case QueueInterface::Started: case QueueInterface::Pending: default: break; } break; } case Scene::Submitted: e.status = tr("Job submitted (%1 of %2)") .arg(QString::number(scene->getCurrentOptStep())) .arg(QString::number(totalOptSteps)); e.brush.setColor(Qt::cyan); break; case Scene::Preoptimizing: e.status = tr("Preoptimizing: %1%") .arg(QString::number(scene->getPreOptProgress())); e.brush.setColor(Qt::green); break; case Scene::Restart: e.status = "Restarting job..."; e.brush.setColor(Qt::cyan); break; case Scene::Killed: case Scene::Removed: e.status = "Killed"; e.brush.setColor(Qt::darkGray); break; case Scene::Duplicate: e.status = tr("Duplicate of %1") .arg(scene->getDuplicateString()); e.brush.setColor(Qt::darkGreen); break; case Scene::StepOptimized: e.status = "Checking status..."; e.brush.setColor(Qt::cyan); break; case Scene::Optimized: e.status = "Optimized"; e.brush.setColor(Qt::yellow); break; case Scene::WaitingForOptimization: e.status = tr("Waiting for Optimization (%1 of %2)") .arg(QString::number(scene->getCurrentOptStep())) .arg(QString::number(totalOptSteps)); e.brush.setColor(Qt::darkCyan); break; case Scene::Error: e.status = tr("Job failed. Restarting..."); e.brush.setColor(Qt::red); break; case Scene::Updating: e.status = "Updating structure..."; e.brush.setColor(Qt::cyan); break; case Scene::Empty: e.status = "Structure empty..."; break; } if (scene->getFailCount() != 0) { e.brush.setColor(Qt::red); } emit updateTableEntry(i, e); }
void TabProgress::updateInfo_() { // Prep variables Structure *structure; m_infoUpdateTracker.lockForWrite(); if (!m_infoUpdateTracker.popFirst(structure)) { m_infoUpdateTracker.unlock(); return; } m_infoUpdateTracker.unlock(); m_opt->tracker()->lockForRead(); int i = m_opt->tracker()->list()->indexOf(structure); m_opt->tracker()->unlock(); Xtal *xtal = qobject_cast<Xtal*>(structure); if (i < 0 || i > ui.table_list->rowCount() - 1) { qDebug() << "TabProgress::updateInfo: Trying to update an index that doesn't exist...yet: (" << i << ") Waiting..."; m_infoUpdateTracker.lockForWrite(); m_infoUpdateTracker.append(xtal); m_infoUpdateTracker.unlock(); QTimer::singleShot(100, this, SLOT(updateInfo())); return; } XO_Prog_TableEntry e; uint totalOptSteps = m_opt->optimizer()->getNumberOfOptSteps(); e.brush = QBrush (Qt::white); QReadLocker xtalLocker (xtal->lock()); e.elapsed = xtal->getOptElapsed(); e.gen = xtal->getGeneration(); e.id = xtal->getIDNumber(); e.parents = xtal->getParents(); e.jobID = xtal->getJobID(); e.volume = xtal->getVolume(); e.spg = QString::number( xtal->getSpaceGroupNumber()) + ": " + xtal->getSpaceGroupSymbol(); if (xtal->hasEnthalpy() || xtal->getEnergy() != 0) e.enthalpy = xtal->getEnthalpy(); else e.enthalpy = 0.0; switch (xtal->getStatus()) { case Xtal::InProcess: { xtalLocker.unlock(); QueueInterface::QueueStatus state = m_opt->queueInterface()->getStatus(xtal); xtalLocker.relock(); switch (state) { case QueueInterface::Running: e.status = tr("Running (Opt Step %1 of %2, %3 failures)") .arg(QString::number(xtal->getCurrentOptStep())) .arg(QString::number(totalOptSteps)) .arg(QString::number(xtal->getFailCount())); e.brush.setColor(Qt::green); break; case QueueInterface::Queued: e.status = tr("Queued (Opt Step %1 of %2, %3 failures)") .arg(QString::number(xtal->getCurrentOptStep())) .arg(QString::number(totalOptSteps)) .arg(QString::number(xtal->getFailCount())); e.brush.setColor(Qt::cyan); break; case QueueInterface::Success: e.status = "Starting update..."; break; case QueueInterface::Unknown: e.status = "Unknown"; e.brush.setColor(Qt::red); break; case QueueInterface::Error: e.status = "Error: Restarting job..."; e.brush.setColor(Qt::darkRed); break; case QueueInterface::CommunicationError: e.status = "Communication Error"; e.brush.setColor(Qt::darkRed); break; // Shouldn't happen; started and pending only occur when xtal is "Submitted" case QueueInterface::Started: case QueueInterface::Pending: default: break; } break; } case Xtal::Submitted: e.status = tr("Job submitted (%1 of %2)") .arg(QString::number(xtal->getCurrentOptStep())) .arg(QString::number(totalOptSteps)); e.brush.setColor(Qt::cyan); break; case Xtal::Restart: e.status = "Restarting job..."; e.brush.setColor(Qt::cyan); break; case Xtal::Killed: case Xtal::Removed: e.status = "Killed"; e.brush.setColor(Qt::darkGray); break; case Xtal::Duplicate: e.status = tr("Duplicate of %1") .arg(xtal->getDuplicateString()); e.brush.setColor(Qt::darkGreen); break; case Xtal::StepOptimized: e.status = "Checking status..."; e.brush.setColor(Qt::cyan); break; case Xtal::Optimized: e.status = "Optimized"; e.brush.setColor(Qt::yellow); break; case Xtal::WaitingForOptimization: e.status = tr("Waiting for Optimization (%1 of %2)") .arg(QString::number(xtal->getCurrentOptStep())) .arg(QString::number(totalOptSteps)); e.brush.setColor(Qt::darkCyan); break; case Xtal::Error: e.status = "Job failed"; e.brush.setColor(Qt::red); break; case Xtal::Updating: e.status = "Updating structure..."; e.brush.setColor(Qt::cyan); break; case Xtal::Empty: e.status = "Structure empty..."; break; } if (xtal->getFailCount() != 0) { e.brush.setColor(Qt::red); } emit updateTableEntry(i, e); }