rem: virtual QString key( int column, bool  ) const {   const char req_col = (char)column; if(mKey.isEmpty() || mKey.left(1) != &req_col) { KMHeaders *headers = static_cast<KMHeaders*>(listView()); return ((KMHeaderItem *)this)->mKey = generate_key(mMsgId, headers->folder()->getMsgBase( mMsgId ), headers->paintInfo(), column); } return mKey; }
add: inline const QString &key() const { return mKey; }
context:   virtual QString key( int column, bool /*ascending*/ ) const  {    //This code should stay pretty much like this, if you are adding new    //columns put them in generate_key    const char req_col = (char)column;    if(mKey.isEmpty() || mKey.left(1) != &req_col) {      KMHeaders *headers = static_cast<KMHeaders*>(listView());      return ((KMHeaderItem *)this)->mKey =	generate_key(mMsgId, headers->folder()->getMsgBase( mMsgId ),		     headers->paintInfo(), column);    }	    return mKey;  }