| 145 | } |
| 146 | |
| 147 | void LCDWidget::mouseMoveEvent(QMouseEvent *e) { |
| 148 | if (m_screenshotDrag) |
| 149 | { |
| 150 | QImage image = getImage(); |
| 151 | QString path = QDir::tempPath() + QDir::separator() + QStringLiteral("CEmu_screenshot_") + randomString(5) + QStringLiteral(".png"); |
| 152 | if (image.save(path, "PNG")) { |
| 153 | QDrag *drag = new QDrag(this); |
| 154 | QMimeData *mimeData = new QMimeData; |
| 155 | QPixmap mymap = QPixmap::fromImage(image); |
| 156 | mimeData->setImageData(image); |
| 157 | mimeData->setUrls(QList<QUrl>() << QUrl::fromLocalFile(path)); |
| 158 | drag->setMimeData(mimeData); |
| 159 | drag->setHotSpot(e->pos() * ((double)image.rect().width() / rect().width())); |
| 160 | drag->setPixmap(mymap); |
| 161 | switch (drag->exec(Qt::CopyAction | Qt::MoveAction, Qt::MoveAction)) { |
| 162 | case Qt::IgnoreAction: |
| 163 | case Qt::CopyAction: |
| 164 | QTimer::singleShot(1000, this, [path] { QFile::remove(path); }); |
| 165 | break; |
| 166 | default: |
| 167 | break; |
| 168 | } |
| 169 | e->accept(); |
| 170 | } else { |
| 171 | e->ignore(); |
| 172 | } |
| 173 | m_screenshotDrag = false; |
| 174 | } else { |
| 175 | e->ignore(); |
| 176 | } |
| 177 | } |
| 178 | |
| 179 | double LCDWidget::refresh() { |
| 180 | std::chrono::steady_clock::time_point timeNFramesAgo = m_perfArray[m_perfIndex]; |
nothing calls this directly
no test coverage detected