void FeedReaderFeedItem::toggle() { mParent->lockLayout(this, true); if (ui->expandFrame->isHidden()) { ui->expandFrame->show(); ui->expandButton->setIcon(QIcon(QString(":/images/edit_remove24.png"))); ui->expandButton->setToolTip(tr("Hide")); setMsgRead(); } else { ui->expandFrame->hide(); ui->expandButton->setIcon(QIcon(QString(":/images/edit_add24.png"))); ui->expandButton->setToolTip(tr("Expand")); } mParent->lockLayout(this, false); }
void FeedReaderFeedItem::doExpand(bool open) { if (mParent) { mParent->lockLayout(this, true); } if (open) { ui->expandFrame->show(); ui->expandButton->setIcon(QIcon(QString(":/images/edit_remove24.png"))); ui->expandButton->setToolTip(tr("Hide")); setMsgRead(); } else { ui->expandFrame->hide(); ui->expandButton->setIcon(QIcon(QString(":/images/edit_add24.png"))); ui->expandButton->setToolTip(tr("Expand")); } emit sizeChanged(this); if (mParent) { mParent->lockLayout(this, false); } }
void FeedReaderFeedItem::readAndClearItem() { setMsgRead(); removeItem(); }
void CDoodChatManagerModel::addHistoryMsgToListView(MsgList msgList) { qDebug()<<Q_FUNC_INFO<<"msg size:"<<msgList.size(); int len = msgList.size(); bool isUpdate = false; if(msgList.size() <= 0){ return; } for(int i = 0; i<len;++i){ Msg msg = msgList.at(i); if(/*msg.msgtype.toInt() == MSG_TYPE_IMG || */msg.fromid =="0"||msg.fromid == ""){ continue; } if(msg.localid == "" ||msg.localid == "0"){ msg.localid = createLocalId(); } if(msg.msgtype.toInt() == MEDIA_MSG_REVOKE && msgIsExitById(msg.revokeMsgId)){ QStringList msgs; msgs.push_back(msg.revokeMsgId); emit deleteMessage(id(),msgs); removeItemByMsgId(msg.revokeMsgId); } if(!m_pChatMap.contains(msg.localid)&&!msgIsExitById(msg.msgid)) { QDateTime msgDate = QDateTime::fromString(msg.time, "yyyy-MM-dd hh:mm:ss"); bool bShow = isJudageShowTime(msgDate); isUpdate = true; qDebug()<< Q_FUNC_INFO<<"msgTime:"<<msg.time; CDoodChatItem *pChatItem = new CDoodChatItem(this); pChatItem->setLocalId(msg.localid); pChatItem->setMsgType(msg.msgtype); pChatItem->setActiveType(msg.activeType); pChatItem->setMsgId(msg.msgid); pChatItem->setTargetId(msg.targetid); pChatItem->setFromId(msg.fromid); pChatItem->setToId(msg.toid); pChatItem->setName(msg.name); pChatItem->setTime(msgDate); pChatItem->setShowTime(bShow); pChatItem->setLoading(false); pChatItem->setContactThumbAvatar(msg.thumb_avatar); pChatItem->setIsMyselft(mAccountUserId == msg.fromid); if(msg.msgtype.toInt() == MSG_TYPE_FILE){ pChatItem->setFileSize(msg.f_size.toLongLong()); pChatItem->setProgress(0); pChatItem->setThumbAvatar(msg.f_url); pChatItem->setTar_thumbAvatar(msg.encrypt_user); pChatItem->setTextMsg(msg.filename); pChatItem->setBody(msg.encrypt_key); pChatItem->setFilePath(""); pChatItem->mFileUrl = msg.f_url; } else if(msg.msgtype.toInt() == MSG_TYPE_IMG){ if(msg.body != ""&& fileExistAtLocal(msg.body)){ msg.body = "file://"+msg.body; }else{ msg.body = "qrc:/res/control/defaultimage.png"; } pChatItem->setBody(msg.body); pChatItem->setTar_thumbAvatar(msg.thumb_url); pChatItem->setTextMsg(msg.main_url); pChatItem->setBodyBig(msg.main_url); pChatItem->mImageMainUrl = msg.main_url; pChatItem->mImageThumbUrl = msg.thumb_url; pChatItem->setEncrypt_key(msg.encrypt_key); }else if(msg.msgtype.toInt() == MEDIA_MSG_REVOKE){ pChatItem->setMsgType(QString::number(MSG_TYPE_TIP)); if(msg.fromid == mAccountUserId){ pChatItem->setBody("您撤回了一条消息"); }else{ pChatItem->setBody(msg.body+"撤回了一条消息"); } } else{ pChatItem->setBody(msg.body); } //addItem(pChatItem); qint64 pos = indexOfNewItem(pChatItem->time()); if(pos>=0 &&pos<= m_pChatMap.size()){ insertItem(pos,pChatItem); } m_pChatMap[msg.localid] = pChatItem; updateItemNameAndAvatar(msg.localid,msg.fromid); pChatItem->mEnkey = msg.encrypt_key; pChatItem->mEnkeyUser = msg.encrypt_user; if(msg.msgtype.toInt() == MSG_TYPE_IMG){ if(msg.body == "qrc:/res/control/defaultimage.png"|| !fileExistAtLocal(msg.body)){ pChatItem->setLoading(true); emit downloadImage(id(),msg.localid,msg.thumb_url,msg.encrypt_key); } } } } if(isUpdate){ emit updateDataFinished(); } if(_list->count()>0){ QString msgid; msgid=qobject_cast<CDoodChatItem*>(_list->at(_list->count()-1))->msgId(); emit setMsgRead(msgid); } }