void Core::SecondInit () { ReadSettings (); auto unm = new UpdatesNotificationManager (PackagesModel_, Proxy_, this); connect (unm, SIGNAL (openLackmanRequested ()), this, SIGNAL (openLackmanRequested ())); }
void UpdatesNotificationManager::notify () { NotifyScheduled_ = false; auto em = Proxy_->GetEntityManager (); const auto upgradableCount = UpgradablePackages_.size (); QString bodyText; if (!upgradableCount) { auto cancel = Util::MakeANCancel ("org.LeechCraft.LackMan", "org.LeechCraft.LackMan"); em->HandleEntity (cancel); return; } else if (upgradableCount <= 3) { QStringList names; for (auto id : UpgradablePackages_) names << Core::Instance ().GetListPackageInfo (id).Name_; names.sort (); if (upgradableCount == 1) bodyText = tr ("A new version of %1 is available.") .arg ("<em>" + names.value (0) + "</em>"); else { const auto& lastName = names.takeLast (); bodyText = tr ("New versions of %1 and %2 are available.") .arg ("<em>" + names.join ("</em>, <em>") + "</em>") .arg ("<em>" + lastName + "</em>"); } } else bodyText = tr ("New versions are available for %n package(s).", 0, upgradableCount); auto entity = Util::MakeAN ("Lackman", bodyText, PInfo_, "org.LeechCraft.LackMan", AN::CatPackageManager, AN::TypePackageUpdated, "org.LeechCraft.LackMan", { "Lackman" }, 0, upgradableCount); auto nah = new Util::NotificationActionHandler (entity, this); nah->AddFunction (tr ("Open LackMan"), [this, entity, em] () -> void { emit openLackmanRequested (); em->HandleEntity (Util::MakeANCancel (entity)); }); em->HandleEntity (entity); }