You probably could set an alert on buffs wearing off. I mean, it has to remove the old items from the list - doesn't it? That implies it has some type of update function running.
Upon investigation, I found a piece of code in spelllist.cpp that looks like the right place to put a hook.
Code:
void SpellListItem::update()
{
//color change by Worried
//change spell colors according to time remaining
if (m_item->duration() > 120)
this->setTextColor(Qt::black);
else if (m_item->duration() <= 120 and m_item->duration() > 60)
this->setTextColor(QColor(128,54,193));
else if (m_item->duration() <= 60 and m_item->duration() > 30)
this->setTextColor(Qt::blue);
else if (m_item->duration() <= 30 and m_item->duration() > 12)
this->setTextColor(Qt::magenta);
else if (m_item->duration() <= 12)
this->setTextColor(Qt::red);
setText(SPELLCOL_SPELLID, QString("%1").arg(m_item->spellId()));
setText(SPELLCOL_SPELLNAME, m_item->spellName());
setText(SPELLCOL_CASTERID, QString("%1").arg(m_item->casterId()));
setText(SPELLCOL_CASTERNAME, m_item->casterName());
setText(SPELLCOL_TARGETID, QString("%1").arg(m_item->targetId()));
setText(SPELLCOL_TARGETNAME, m_item->targetName());
setText(SPELLCOL_CASTTIME, m_item->castTimeStr());
setText(SPELLCOL_DURATION, m_item->durationStr());
}
In fact, in the code (and comment) it appears that the color of the text already changes based on how long the spells have left to go. (I'm going to blame me not noticing it in the program on being red-green colorblind) I'm not volunteering to do this though, mainly because I wouldn't use it myself. I personally would like to see durations extended based on focus items/spells as well, and I'm going to look into that further unless somebody flames me and says that somebody else already took care of it.
Edit: typo