void AccountsListWidget::handleItemChanged (QStandardItem *item) { const auto type = item->data (Roles::RItemType).toInt (); if (type != ItemTypes::ShowInRoster) return; IAccount *acc = item->data (Roles::RAccObj).value<IAccount*> (); acc->SetShownInRoster (item->checkState () == Qt::Checked); if (!acc->IsShownInRoster () && acc->GetState ().State_ != SOffline) acc->ChangeState (EntryStatus (SOffline, QString ())); emit accountVisibilityChanged (acc); }
void Plugin::handleIdle (int seconds) { IdleSeconds_ = seconds; if (seconds && seconds % 60) return; if (!XmlSettingsManager::Instance ().property ("EnableAutoidler").toBool ()) return; const int mins = seconds / 60; if (!mins && !OldStatuses_.isEmpty ()) { for (QObject *accObj : AzothProxy_->GetAllAccounts ()) { if (!OldStatuses_.contains (accObj)) continue; IAccount *acc = qobject_cast<IAccount*> (accObj); acc->ChangeState (OldStatuses_ [accObj]); } OldStatuses_.clear (); } if (!mins) return; EntryStatus status; if (mins == XmlSettingsManager::Instance ().property ("AwayTimeout").toInt ()) status = EntryStatus (SAway, XmlSettingsManager::Instance ().property ("AwayText").toString ()); else if (mins == XmlSettingsManager::Instance ().property ("NATimeout").toInt ()) status = EntryStatus (SXA, XmlSettingsManager::Instance ().property ("NAText").toString ()); else return; for (QObject *accObj : AzothProxy_->GetAllAccounts ()) { auto acc = qobject_cast<IAccount*> (accObj); const auto& accState = acc->GetState (); if (accState.State_ == State::SOffline) continue; if (!OldStatuses_.contains (accObj)) OldStatuses_ [accObj] = accState; acc->ChangeState (status); } }