10#include <QApplication>
18 using namespace std::chrono_literals;
26 [] (
const auto&) {
return QDeadlineTimer { QDeadlineTimer::Forever }; });
32 , Context_ { config.Context_ }
33 , Priority_ { config.Priority_ }
35 , TimerBackground_ { GetDeadlineTimer (config.BackgroundPolicy_) }
41 InitialFocus_ = qApp->focusWidget ();
47 const auto isBackground = FocusChanged () || TimerBackground_.hasExpired () || (!Parent_ && HadParent_);
55 QMessageBox::information (Parent_, Context_, error);
58 QMessageBox::warning (Parent_, Context_, error);
61 QMessageBox::critical (Parent_, Context_, error);
66 bool ActionResultReporter::FocusChanged ()
const
68 if (!InitialFocus_ || !*InitialFocus_)
71 const auto curFocus = qApp->focusWidget ();
72 return InitialFocus_ != curFocus;
Proxy to core entity manager.
ActionResultReporter(IEntityManager &iem, Config config, QWidget *parent=nullptr)
void operator()(const QString &)
std::variant< DefaultBackgroundPolicy, FocusBackgroundPolicy, std::chrono::milliseconds > BackgroundPolicy
Entity MakeNotification(const QString &header, const QString &text, Priority priority)
An utility function to make a Entity with notification.
auto Visit(const Either< Left, Right > &either, Args &&... args)
BackgroundPolicy BackgroundPolicy_