fix the chat scrollbar

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1819 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
joss17 2009-11-12 17:17:21 +00:00
parent f56e9cfcd9
commit 8128f0b2ea
2 changed files with 3 additions and 40 deletions

View File

@ -803,7 +803,6 @@ void PeersDialog::insertChat()
} }
std::ostringstream out; std::ostringstream out;
QString currenttxt = msgWidget->toHtml();
QString extraTxt; QString extraTxt;
QString timestamp = QDateTime::currentDateTime().toString("hh:mm:ss"); QString timestamp = QDateTime::currentDateTime().toString("hh:mm:ss");
@ -832,32 +831,15 @@ void PeersDialog::insertChat()
emit notifyGroupChat(QString("New group chat"), notifyMsg); emit notifyGroupChat(QString("New group chat"), notifyMsg);
} }
/* add it everytime */
currenttxt += extraTxt;
QHashIterator<QString, QString> i(smileys); QHashIterator<QString, QString> i(smileys);
while(i.hasNext()) while(i.hasNext())
{ {
i.next(); i.next();
foreach(QString code, i.key().split("|")) foreach(QString code, i.key().split("|"))
currenttxt.replace(code, "<img src=\"" + i.value() + "\" />"); extraTxt.replace(code, "<img src=\"" + i.value() + "\" />");
} }
msgWidget->append(extraTxt);
QScrollBar *qsb = msgWidget->verticalScrollBar();
int oldQsbValue = qsb->value();
//check if the scroll bar is at the bottom. If t is, we will putt it at the bottom after the new message
bool maxQsbValue = ((qsb->maximum() - 30) < qsb->value());
msgWidget->setHtml(currenttxt);
msgWidget->update();
if (maxQsbValue ) {
qsb -> setValue(qsb->maximum());
} else {
qsb -> setValue(oldQsbValue);
}
} }
} }

View File

@ -219,12 +219,6 @@ void PopupChatDialog::updateChat()
void PopupChatDialog::addChatMsg(ChatInfo *ci) void PopupChatDialog::addChatMsg(ChatInfo *ci)
{ {
//store the state of the vertical scrollbar to set it at the end of the function
QScrollBar *qsb = ui.textBrowser->verticalScrollBar();
int oldQsbValue = qsb->value();
//check if the scroll bar is at the bottom. If t is, we will putt it at the bottom after the new message
bool maxQsbValue = ((qsb->maximum() - 30) < qsb->value());
bool offline = true; bool offline = true;
{ {
@ -295,20 +289,7 @@ std::cout << "PopupChatDialog:addChatMsg message : " << message.toStdString() <<
.replace("%name%", name) .replace("%name%", name)
.replace("%message%", message); .replace("%message%", message);
ui.textBrowser->setHtml(ui.textBrowser->toHtml() + formatMsg + "\n"); ui.textBrowser->append(formatMsg + "\n");
if (maxQsbValue ) {
qsb -> setValue(qsb->maximum());
} else {
qsb -> setValue(oldQsbValue);
}
/*else
{
ui.avatarlabel->setPixmap(QPixmap(":/images/user/personal128.png"));
}*/
resetStatusBar() ; resetStatusBar() ;
} }