10 #include <QApplication> 11 #include <QMessageBox> 25 [] (
const ActionResultReporter::TimeoutBackgroundPolicy& policy) {
return QDeadlineTimer { policy.Timeout_ }; },
26 [] (
const auto&) {
return QDeadlineTimer { QDeadlineTimer::Forever }; });
32 , Context_ { config.Context_ }
33 , Priority_ { config.Priority_ }
35 , TimerBackground_ { GetDeadlineTimer (config.BackgroundPolicy_) }
37 Visit (config.BackgroundPolicy_,
38 [] (
const TimeoutBackgroundPolicy&) {},
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.
virtual bool HandleEntity(LC::Entity entity, QObject *desired=nullptr)=0
Handles the given entity.
std::variant< DefaultBackgroundPolicy, FocusBackgroundPolicy, std::chrono::milliseconds > BackgroundPolicy
auto Visit(const Either< Left, Right > &either, Args &&... args)
ActionResultReporter(IEntityManager &iem, Config config, QWidget *parent=nullptr)
Entity MakeNotification(const QString &header, const QString &text, Priority priority)
An utility function to make a Entity with notification.
void operator()(const QString &)