void ShowHistoryAction::actionInstanceCreated(Action *action) { ChatEditBox *chatEditBox = qobject_cast<ChatEditBox *>(action->parent()); if (!chatEditBox || !chatEditBox->chatWidget()) return; QVariant chatWidgetData = QVariant::fromValue(chatEditBox->chatWidget()); action->setData(chatWidgetData); // not a menu if (action->context()->chat() != chatEditBox->actionContext()->chat()) return; // no parents for menu as it is destroyed manually by Action class QMenu *menu = new QMenu(); if (configuration()->deprecatedApi()->readNumEntry("History", "ChatHistoryCitation", 10) > 0) { int prune = configuration()->deprecatedApi()->readNumEntry("History", "ChatHistoryCitation", 10); menu->addAction(tr("Show last %1 messages").arg(prune), this, SLOT(showPruneMessages()))->setData(chatWidgetData); menu->addSeparator(); } menu->addAction(tr("Show messages since yesterday"), this, SLOT(showOneDayMessages()))->setData(chatWidgetData); menu->addAction(tr("Show messages from last 7 days"), this, SLOT(show7DaysMessages()))->setData(chatWidgetData); menu->addAction(tr("Show messages from last 30 days"), this, SLOT(show30DaysMessages()))->setData(chatWidgetData); menu->addAction(tr("Show whole history"), this, SLOT(showAllMessages()))->setData(chatWidgetData); action->setMenu(menu); }
// Seters void Log::setOuput(ostream& out) { _out = &out; showAllMessages(); }