2020-03-22 18:44:35 +07:00
|
|
|
#include "capturearea.h"
|
|
|
|
|
#include "settings.h"
|
|
|
|
|
#include "task.h"
|
|
|
|
|
|
|
|
|
|
CaptureArea::CaptureArea(const QRect &rect, const Settings &settings)
|
|
|
|
|
: rect_(rect)
|
|
|
|
|
, doTranslation_(settings.doTranslation)
|
|
|
|
|
, sourceLanguage_(settings.sourceLanguage)
|
|
|
|
|
, targetLanguage_(settings.targetLanguage)
|
|
|
|
|
, translators_(settings.translators)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TaskPtr CaptureArea::task(const QPixmap &pixmap) const
|
|
|
|
|
{
|
2020-03-25 02:05:45 +07:00
|
|
|
if (pixmap.isNull() || !isValid())
|
2020-03-22 18:44:35 +07:00
|
|
|
return {};
|
|
|
|
|
|
|
|
|
|
auto task = std::make_shared<Task>();
|
|
|
|
|
task->captured = pixmap.copy(rect_);
|
|
|
|
|
task->capturePoint = rect_.topLeft();
|
|
|
|
|
task->sourceLanguage = sourceLanguage_;
|
|
|
|
|
if (doTranslation_ && !translators_.isEmpty()) {
|
|
|
|
|
task->targetLanguage = targetLanguage_;
|
|
|
|
|
task->translators = translators_;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return task;
|
|
|
|
|
}
|
2020-03-25 02:05:45 +07:00
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
}
|