--- spectacle-6.6.90/CMakeLists.txt.vanilla 2026-05-29 15:57:12.437793031 +0200 +++ spectacle-6.6.90/CMakeLists.txt 2026-05-29 15:59:38.668446064 +0200 @@ -108,7 +108,7 @@ PURPOSE "Add image editing capability to the screenshots" ) -pkg_check_modules(TESSERACT REQUIRED IMPORTED_TARGET tesseract) +pkg_check_modules(TESSERACT IMPORTED_TARGET tesseract) # optional components find_package(KF6DocTools ${KF6_MIN_VERSION}) --- spectacle-6.6.90/src/CMakeLists.txt.vanilla 2026-05-29 16:01:56.648911119 +0200 +++ spectacle-6.6.90/src/CMakeLists.txt 2026-05-29 16:02:08.454330644 +0200 @@ -129,7 +129,7 @@ LayerShellQt::Interface KQuickImageEditor ${OpenCV_LIBRARIES} - PkgConfig::TESSERACT + #PkgConfig::TESSERACT ) # qt_add_qml_module doesn't know how to deal with headers in subdirectories so --- spectacle-6.6.90/src/OcrManager.h.vanilla 2026-05-29 16:19:45.399107867 +0200 +++ spectacle-6.6.90/src/OcrManager.h 2026-05-29 16:20:37.293267703 +0200 @@ -18,7 +18,9 @@ #include -#include +//#include + +struct TessBaseAPI; /** * @brief Worker class for OCR processing in background thread --- spectacle-6.6.90/src/OcrManager.cpp.orig 2026-05-14 10:42:27.000000000 +0200 +++ spectacle-6.6.90/src/OcrManager.cpp 2026-05-29 16:38:21.902721320 +0200 @@ -83,7 +83,7 @@ m_worker = nullptr; } if (m_tesseract) { - m_tesseract->End(); + //m_tesseract->End(); delete m_tesseract; m_tesseract = nullptr; } @@ -313,17 +313,19 @@ { setStatus(OcrStatus::Processing); m_timeoutTimer->start(); - +#if 0 QMetaObject::invokeMethod( m_worker, [worker = m_worker, image, tesseract = m_tesseract]() { worker->processImage(image, tesseract); }, Qt::QueuedConnection); +#endif } void OcrManager::initializeTesseract() { +#if 0 auto cleanupTesseract = [this]() { if (m_tesseract) { m_tesseract->End(); @@ -411,6 +413,7 @@ setStatus(OcrStatus::Error); cleanupTesseract(); } +#endif } void OcrManager::loadSavedLanguageSetting() @@ -419,7 +422,7 @@ qCDebug(SPECTACLE_LOG) << "OCR not available, skipping language loading"; return; } - +#if 0 QStringList savedLanguages = Settings::ocrLanguages(); qCDebug(SPECTACLE_LOG) << "Loaded OCR languages setting from config:" << savedLanguages; qCDebug(SPECTACLE_LOG) << "Current OCR language code:" << m_currentLanguageCode; @@ -458,6 +461,7 @@ qCDebug(SPECTACLE_LOG) << "OCR languages already set to:" << combinedLanguages; m_activeLanguages = validLanguages; } +#endif } void OcrManager::setStatus(OcrStatus status) @@ -480,7 +484,7 @@ if (!m_tesseract || langCodes.isEmpty()) { return false; } - +#if 0 const char *datapath = m_tesseract->GetDatapath(); QString tessdataPath = datapath ? QString::fromUtf8(datapath) : QString(); @@ -529,6 +533,8 @@ qCWarning(SPECTACLE_LOG) << "Exception while setting up Tesseract languages:" << e.what(); return false; } +#endif + return false; } void OcrManager::setupAvailableLanguages(const QString &tessdataPath) @@ -540,7 +546,7 @@ qCWarning(SPECTACLE_LOG) << "Cannot enumerate OCR languages: Tesseract not initialized"; return; } - +#if 0 QStringList detectedLanguages; std::vector languages; @@ -584,6 +590,7 @@ } qCDebug(SPECTACLE_LOG) << "Detected OCR languages:" << m_availableLanguages; +#endif } QString OcrManager::tesseractLangName(const QString &tesseractCode) const @@ -655,7 +662,7 @@ Q_EMIT imageProcessed(QString(), false); return; } - +#if 0 try { QImage rgbImage = image.convertToFormat(QImage::Format_RGB888); @@ -689,6 +696,7 @@ qCWarning(SPECTACLE_LOG) << "Exception in OCR worker:" << e.what(); Q_EMIT imageProcessed(QString(), false); } +#endif } #include "moc_OcrManager.cpp"