| 41 | int g_QMessageBox_Icon = qRegisterMetaType<QMessageBox::Icon>("QMessageBox::Icon"); |
| 42 | |
| 43 | CBackendDesktop::CBackendDesktop(COperateDesktop *pOperate) |
| 44 | : CBackend(pOperate) |
| 45 | #if HAVE_QT6_RECORD |
| 46 | , m_pParameterRecord(nullptr) |
| 47 | , m_VideoFrameInput(this) |
| 48 | , m_AudioBufferInput(this) |
| 49 | , m_AudioBufferOutput(this) |
| 50 | #endif |
| 51 | { |
| 52 | qDebug(log) << Q_FUNC_INFO; |
| 53 | if(pOperate) { |
| 54 | CFrmScroll* pScroll = qobject_cast<CFrmScroll*>(pOperate->GetViewer()); |
| 55 | if(pScroll) { |
| 56 | CFrmViewer* pView = pScroll->GetViewer(); |
| 57 | if(pView) |
| 58 | SetViewer(pView); |
| 59 | else { |
| 60 | QString szErr = pOperate->metaObject()->className(); |
| 61 | szErr += "::GetViewer() is not CFrmViewer"; |
| 62 | qWarning(log) << szErr.toStdString().c_str(); |
| 63 | } |
| 64 | } else { |
| 65 | QString szErr = pOperate->metaObject()->className(); |
| 66 | szErr += "::GetViewer() is not CFrmScroll"; |
| 67 | qWarning(log) << szErr.toStdString().c_str(); |
| 68 | } |
| 69 | SetConnect(pOperate); |
| 70 | } |
| 71 | |
| 72 | #if HAVE_QT6_RECORD |
| 73 | bool check = connect( |
| 74 | &m_Recorder, &QMediaRecorder::errorOccurred, |
| 75 | this, [&](QMediaRecorder::Error error, const QString &errorString) { |
| 76 | qDebug(log) << "Recorder error occurred:" << error << errorString; |
| 77 | slotRecord(false); |
| 78 | emit sigError(error, errorString); |
| 79 | }); |
| 80 | Q_ASSERT(check); |
| 81 | check = connect( |
| 82 | &m_Recorder, &QMediaRecorder::recorderStateChanged, |
| 83 | this, [&](QMediaRecorder::RecorderState state){ |
| 84 | qDebug(log) << "Recorder state changed:" << state; |
| 85 | if(QMediaRecorder::StoppedState == state) |
| 86 | { |
| 87 | slotRecord(false); |
| 88 | if(m_pParameterRecord) { |
| 89 | qDebug(log) << "End action:" |
| 90 | << m_pParameterRecord->GetEndAction() |
| 91 | << m_Recorder.actualLocation(); |
| 92 | switch(m_pParameterRecord->GetEndAction()) |
| 93 | { |
| 94 | case CParameterRecord::ENDACTION::OpenFile: |
| 95 | QDesktopServices::openUrl(m_Recorder.actualLocation()); |
| 96 | break; |
| 97 | case CParameterRecord::ENDACTION::OpenFolder: { |
| 98 | QFileInfo fi(m_Recorder.actualLocation().toLocalFile()); |
| 99 | QDesktopServices::openUrl( |
| 100 | QUrl::fromLocalFile(fi.absolutePath())); |
nothing calls this directly
no test coverage detected