| 131 | } |
| 132 | |
| 133 | void QmitkScreenshotQuestionWidget::OnPopupMenuTriggered(const QString& action) |
| 134 | { |
| 135 | // Create a uniquely named temporary file for storing the screenshot |
| 136 | |
| 137 | QTemporaryFile file(QString("%1/screenshot_XXXXXX.png").arg(QDir::tempPath())); |
| 138 | file.setAutoRemove(false); |
| 139 | |
| 140 | if (!file.open()) |
| 141 | return; |
| 142 | |
| 143 | fs::path fileName = file.fileName().toStdString(); |
| 144 | |
| 145 | // Get the renderer resp. render window matching the triggered action (e.g. "Axial") |
| 146 | |
| 147 | auto renderer = GetRenderer(action); |
| 148 | |
| 149 | if (renderer == nullptr) |
| 150 | return; |
| 151 | |
| 152 | auto renderWindow = renderer->GetRenderWindow(); |
| 153 | |
| 154 | // Temporarily disable double buffering while taking the screenshot so it is not a frame behind |
| 155 | |
| 156 | bool doubleBuffer = renderWindow->GetDoubleBuffer(); |
| 157 | renderWindow->DoubleBufferOff(); |
| 158 | |
| 159 | TakeScreenshot(renderer->GetVtkRenderer(), fileName); |
| 160 | |
| 161 | renderWindow->SetDoubleBuffer(doubleBuffer); |
| 162 | |
| 163 | // Add the screenshot to both the question and its widget |
| 164 | |
| 165 | m_Question->AddScreenshot(fileName); |
| 166 | this->AddScreenshotWidget(file.fileName()); |
| 167 | } |
| 168 | |
| 169 | void QmitkScreenshotQuestionWidget::AddScreenshotWidget(const QString& screenshotFileName) |
| 170 | { |
no test coverage detected