void TabsPropsManager::HandlePreferredWindowIndex (const IHookProxy_ptr& proxy, const QWidget*) { if (PreferredWindowsQueue_.empty ()) return; proxy->SetReturnValue (PreferredWindowsQueue_.takeFirst ()); proxy->CancelDefault (); }
void Plugin::hookEntryActionAreasRequested (IHookProxy_ptr proxy, QObject *action, QObject*) { if (action != AddToMetacontacts_) return; const QStringList& oldList = proxy->GetReturnValue ().toStringList (); proxy->SetReturnValue (oldList + QStringList ("contactListContextMenu")); }
void Plugin::hookEntryActionAreasRequested (IHookProxy_ptr proxy, QObject *action, QObject*) { if (!action->property ("Azoth/Depester/IsGood").toBool ()) return; QStringList ours; ours << "contactListContextMenu"; proxy->SetReturnValue (proxy->GetReturnValue ().toStringList () + ours); }
void Plugin::hookTooltipBeforeVariants (IHookProxy_ptr proxy, QObject *entryObj) { if (!IsGoodEntry (entryObj)) return; const auto entry = qobject_cast<ICLEntry*> (entryObj); const auto& id = entry->GetEntryID (); const auto& maybeStats = Storage_->GetEntryStats (id); if (!maybeStats) return; const auto& stats = *maybeStats; QString addition; const auto curState = entry->GetStatus ().State_; if (curState != SOnline) { const auto& avail = stats.Available_; if (avail.isValid ()) addition += tr ("Was available: %1") .arg (avail.toString ()); } if (curState == SOffline || curState == SError || curState == SInvalid) { const auto& online = stats.Online_; if (online.isValid ()) { if (!addition.isEmpty ()) addition += "<br/>"; addition += tr ("Was online: %1") .arg (online.toString ()); } } const auto& lastChange = stats.StatusChange_; if (lastChange.isValid ()) { if (!addition.isEmpty ()) addition += "<br/>"; addition += tr ("Last status change: %1") .arg (lastChange.toString ()); } if (addition.isEmpty ()) return; const auto& tip = proxy->GetValue ("tooltip").toString (); proxy->SetValue ("tooltip", tip + "<br/><br/>" + addition + "<br/>"); }
void Plugin::hookEntryActionsRequested (IHookProxy_ptr proxy, QObject *entryObj) { ICLEntry *entry = qobject_cast<ICLEntry*> (entryObj); if (!entry || entry->GetEntryType () != ICLEntry::ETChat) return; QList<QVariant> list = proxy->GetReturnValue ().toList (); list << QVariant::fromValue<QObject*> (AddToMetacontacts_); proxy->SetReturnValue (list); AddToMetacontacts_->setProperty ("Azoth/Metacontacts/Object", QVariant::fromValue<QObject*> (entryObj)); }
void Plugin::hookEntryActionAreasRequested (IHookProxy_ptr proxy, QObject *action, QObject*) { if (!action->property ("Azoth/ChatHistory/IsGood").toBool ()) return; QStringList ours; ours << "contactListContextMenu" << "tabContextMenu"; if (action->property ("ActionIcon") == "view-history") ours << "toolbar"; proxy->SetReturnValue (proxy->GetReturnValue ().toStringList () + ours); }
void FileScheme::hookNAMCreateRequest (IHookProxy_ptr proxy, QNetworkAccessManager*, QNetworkAccessManager::Operation *op, QIODevice**) { if (*op != QNetworkAccessManager::GetOperation) return; const QNetworkRequest& req = proxy->GetValue ("request").value<QNetworkRequest> (); const QUrl& url = req.url (); if (url.scheme () != "file" || !QFileInfo (url.toLocalFile ()).isDir ()) return; proxy->CancelDefault (); proxy->SetReturnValue (QVariant::fromValue<QNetworkReply*> (new SchemeReply (req, this))); }
void Plugin::hookFormatBodyEnd (IHookProxy_ptr proxy, QObject *message) { if (ConvScriptPath_.isEmpty ()) return; if (!XmlSettingsManager::Instance () .property ("OnDisplayRendering").toBool ()) return; const QString& body = proxy->GetValue ("body").toString (); if (!body.contains ("$$")) return; const QString newBody = HandleBody (body); if (body != newBody) proxy->SetValue ("body", newBody); }
void Plugin::hookTooltipBeforeVariants (IHookProxy_ptr proxy, QObject *entryObj) { if (!IsGoodEntry (entryObj)) return; ICLEntry *entry = qobject_cast<ICLEntry*> (entryObj); const QString& id = entry->GetEntryID (); QString addition; const State curState = entry->GetStatus ().State_; if (curState != SOnline) { const QDateTime& avail = LastAvailable_.value (id); if (avail.isValid ()) addition += tr ("Was available: %1") .arg (avail.toString ()); } if (curState == SOffline || curState == SError || curState == SInvalid) { const QDateTime& online = LastOnline_.value (id); if (LastOnline_.contains (id)) { if (!addition.isEmpty ()) addition += "<br/>"; addition += tr ("Was online: %1") .arg (online.toString ()); } } if (addition.isEmpty ()) return; const QString& tip = proxy->GetValue ("tooltip").toString (); proxy->SetValue ("tooltip", tip + "<br/><br/>" + addition + "<br/>"); }
void Plugin::hookFormatBodyEnd (IHookProxy_ptr proxy, QObject *chatTab, QString body, QObject *msgObj) { IMessage *msg = qobject_cast<IMessage*> (msgObj); if (msg->GetDirection () != IMessage::DIn || msg->GetMessageType () != IMessage::MTChatMessage) return; ICLEntry *other = qobject_cast<ICLEntry*> (msg->OtherPart ()); if (!other->GetEntryID ().contains ("*****@*****.**")) return; proxy->SetValue ("body", FormatBody (body)); }
void Plugin::hookTabSetText (IHookProxy_ptr proxy, int index, int windowId) { auto window = Proxy_->GetRootWindowsManager ()->GetMainWindow (windowId); if (!window) return; auto tw = Proxy_->GetRootWindowsManager ()->GetTabWidget (windowId); if (!tw) return; int realIndex = tw->TabData (index).toInt (); if (Window2PinTabsIndex2TabData_.contains (window) && Window2PinTabsIndex2TabData_ [window].contains (realIndex)) proxy->CancelDefault (); }
void Plugin::hookGonnaHandleSmiles (IHookProxy_ptr proxy, QString body, QString) { if (ConvScriptPath_.isEmpty ()) return; if (!XmlSettingsManager::Instance () .property ("OnDisplayRendering").toBool ()) return; if (!body.contains ("$$")) return; proxy->CancelDefault (); }
void Plugin::hookFormatBodyEnd (IHookProxy_ptr proxy, QObject*, QString body, QObject *msgObj) { IMessage *msg = qobject_cast<IMessage*> (msgObj); if (msg->GetDirection () != IMessage::DIn || msg->GetMessageType () != IMessage::MTChatMessage) return; ICLEntry *other = qobject_cast<ICLEntry*> (msg->OtherPart ()); if (!other) { qWarning () << Q_FUNC_INFO << "NULL other part for message" << msgObj << msg->GetBody (); return; } if (!other->GetEntryID ().contains ("*****@*****.**")) return; proxy->SetValue ("body", FormatBody (body)); }
void Plugin::hookAddingCLEntryBegin (IHookProxy_ptr proxy, QObject *entry) { if (Core::Instance ().HandleRealEntryAddBegin (entry)) proxy->CancelDefault (); }
void Plugin::HandleMsgOccurence (IHookProxy_ptr proxy, QObject *message) { IMessage *msg = qobject_cast<IMessage*> (message); if (IsEntryIgnored (msg->OtherPart ())) proxy->CancelDefault (); }
void Plugin::hookDockWidgetActionVisToggled (IHookProxy_ptr proxy, QMainWindow *win, QDockWidget *dw, bool visible) { proxy->CancelDefault (); }
void Plugin::hookDockBarWillBeShown (IHookProxy_ptr proxy, QMainWindow*, QToolBar*, Qt::DockWidgetArea) { proxy->CancelDefault (); }
void Plugin::hookFormatBodyEnd (IHookProxy_ptr proxy, QObject *msgObj) { if (ShouldHandle (msgObj, IMessage::Direction::In, IMessage::Type::ChatMessage)) proxy->SetValue ("body", FormatBody (proxy->GetValue ("body").toString ())); }
void Plugin::hookTrayIconVisibilityChanged (IHookProxy_ptr proxy, QSystemTrayIcon*, bool) { proxy->CancelDefault (); }
void Plugin::hookDnDEntry2Entry (IHookProxy_ptr proxy, QObject *source, QObject *target) { if (Core::Instance ().HandleDnDEntry2Entry (source, target)) proxy->CancelDefault (); }