ScreenTranslator/src/capture/capturearea.cpp
2020-04-20 20:46:29 +03:00

64 lines
1.3 KiB
C++

#include "capturearea.h"
#include "settings.h"
#include "task.h"
CaptureArea::CaptureArea(const QRect &rect, const Settings &settings)
: rect_(rect)
, doTranslation_(settings.doTranslation)
, useHunspell_(settings.useHunspell)
, sourceLanguage_(settings.sourceLanguage)
, targetLanguage_(settings.targetLanguage)
, translators_(settings.translators)
{
}
TaskPtr CaptureArea::task(const QPixmap &pixmap) const
{
if (pixmap.isNull() || !isValid())
return {};
auto task = std::make_shared<Task>();
task->generation = generation_;
task->useHunspell = useHunspell_;
task->captured = pixmap.copy(rect_);
task->capturePoint = rect_.topLeft();
task->sourceLanguage = sourceLanguage_;
if (doTranslation_ && !translators_.isEmpty()) {
task->targetLanguage = targetLanguage_;
task->translators = translators_;
}
return task;
}
void CaptureArea::setGeneration(uint generation)
{
generation_ = generation;
}
bool CaptureArea::isValid() const
{
return !(rect_.width() < 3 || rect_.height() < 3);
}
const QRect &CaptureArea::rect() const
{
return rect_;
}
void CaptureArea::setRect(const QRect &rect)
{
rect_ = rect;
}
QString CaptureArea::toolTip() const
{
return doTranslation_ ? sourceLanguage_ + "->" + targetLanguage_
: sourceLanguage_;
}
bool CaptureArea::isLocked() const
{
return isLocked_;
}