void Acquisition::checkIfReadySlot() { bool tracking = this->getServices()->tracking()->getState()>=Tool::tsTRACKING; ToolPtr tool = this->getServices()->tracking()->getActiveTool(); ToolPtr reference_frame = this->getServices()->tracking()->getReferenceTool(); if(tracking && reference_frame) { connect(reference_frame.get(), &Tool::toolVisible, this, &Acquisition::checkIfReadySlot, Qt::UniqueConnection); } QString mWhatsMissing; mWhatsMissing.clear(); if(tracking) { mWhatsMissing = "<font color=green>Ready to record!</font><br>"; if (!tool || !tool->getVisible()) { mWhatsMissing += "<font color=orange>Tool not visible</font><br>"; } if(!reference_frame || !reference_frame->getVisible()) { mWhatsMissing += "<font color=orange>Reference frame not visible.</font><br>"; } } else { mWhatsMissing.append("<font color=red>Need to start tracking.</font><br>"); } // do not require tracking to be present in order to perform an acquisition. this->setReady(tracking, mWhatsMissing); }
void FastOrientationRegistrationWidget::enableToolSampleButtonSlot() { ToolPtr tool = mServices->tracking()->getActiveTool(); bool enabled = tool && tool->getVisible() && (!tool->hasType(Tool::TOOL_MANUAL) || settings()->value("giveManualToolPhysicalProperties").toBool()); // enable only for non-manual tools. mSetOrientationButton->setEnabled(enabled); }
void PatientLandMarksWidget::updateToolSampleButton() { ToolPtr tool = mServices->tracking()->getActiveTool(); bool enabled = tool && tool->getVisible() && (!tool->hasType(Tool::TOOL_MANUAL) || settings()->value("giveManualToolPhysicalProperties").toBool()); // enable only for non-manual tools. mToolSampleButton->setEnabled(enabled); if (mServices->tracking()->getActiveTool()) mToolSampleButton->setText("Sample " + qstring_cast(tool->getName())); else mToolSampleButton->setText("No tool"); }
void USAcquisition::checkIfReadySlot() { bool tracking = this->getServices()->tracking()->getState()>=Tool::tsTRACKING; bool streaming = this->getServices()->video()->isConnected(); ToolPtr tool = this->getServices()->tracking()->getFirstProbe(); ToolPtr reference_frame = this->getServices()->tracking()->getReferenceTool(); if(tracking && reference_frame) { QObject::connect(reference_frame.get(), &Tool::toolVisible, this, &USAcquisition::checkIfReadySlot, Qt::UniqueConnection); } QString mWhatsMissing; mWhatsMissing.clear(); if(tracking && streaming) { mWhatsMissing = "<font color=green>Ready to record!</font><br>"; if (!tool || !tool->getVisible()) { mWhatsMissing += "<font color=orange>Probe not visible.</font><br>"; } if(!reference_frame || !reference_frame->getVisible()) { mWhatsMissing += "<font color=orange>Reference frame not visible.</font><br>"; } } else { if(!tracking) mWhatsMissing.append("<font color=red>Need to start tracking.</font><br>"); if(!streaming) mWhatsMissing.append("<font color=red>Need to start streaming.</font><br>"); } int saving = mCore->getNumberOfSavingThreads(); if (saving!=0) mWhatsMissing.append(QString("<font color=orange>Saving %1 acquisition data.</font><br>").arg(saving)); // remove redundant line breaks QStringList list = mWhatsMissing.split("<br>", QString::SkipEmptyParts); mWhatsMissing = list.join("<br>"); //Make sure we have at least 2 lines to avoid "bouncing buttons" if (list.size() < 2) mWhatsMissing.append("<br>"); // do not require tracking to be present in order to perform an acquisition. this->setReady(streaming, mWhatsMissing); }