ScreenTranslator/src/represent/representer.cpp

50 lines
1.1 KiB
C++
Raw Normal View History

2020-02-21 00:45:53 +07:00
#include "representer.h"
#include "manager.h"
#include "resultwidget.h"
#include "settings.h"
#include "task.h"
#include "trayicon.h"
Representer::Representer(Manager &manager, TrayIcon &tray)
: manager_(manager)
, tray_(tray)
, mode_{ResultMode::Widget}
{
}
Representer::~Representer() = default;
void Representer::represent(const TaskPtr &task)
{
if (mode_ == ResultMode::Tooltip)
showTooltip(task);
else
showWidget(task);
}
void Representer::updateSettings(const Settings &settings)
{
mode_ = settings.resultShowType;
2020-03-20 01:47:46 +07:00
font_ = QFont(settings.fontFamily, settings.fontSize);
showRecognized_ = settings.showRecognized;
showCaptured_ = settings.showCaptured;
2020-03-20 01:47:46 +07:00
if (widget_)
widget_->updateSettings(font_, showRecognized_, showCaptured_);
2020-02-21 00:45:53 +07:00
}
void Representer::showTooltip(const TaskPtr &task)
{
auto message = task->recognized + " - " + task->translated;
tray_.showInformation(message);
}
void Representer::showWidget(const TaskPtr &task)
{
2020-03-20 01:47:46 +07:00
if (!widget_) {
2020-02-21 00:45:53 +07:00
widget_ = std::make_unique<ResultWidget>();
widget_->updateSettings(font_, showRecognized_, showCaptured_);
2020-03-20 01:47:46 +07:00
}
2020-02-21 00:45:53 +07:00
widget_->show(task);
}