141
141
textView->appendRaw(message, suppressTimestamps);
144
void ChatWindow::appendLog(const QString& message)
146
if(!textView) return;
147
textView->appendLog(message);
144
150
void ChatWindow::append(const QString& nickname,const QString& message)
146
152
if(!textView) return ;
248
254
if(backlog.device()->size() > packetSize * ( offset + 1 ))
250
256
// Set file pointer to the packet size above the offset
251
backlog.device()->seek(backlog.device()->size() - packetSize * ( offset + 1 ));
257
backlog.seek(backlog.device()->size() - packetSize * ( offset + 1 ));
252
258
// Skip first line, since it may be incomplete
253
259
backlog.readLine();
257
263
// Set file pointer to the head
258
backlog.device()->reset();
265
// Qt 4.5 Doc: Note that when using a QTextStream on a
266
// QFile, calling reset() on the QFile will not have the
267
// expected result because QTextStream buffers the file.
268
// Use the QTextStream::seek() function instead.
269
// backlog.device()->reset();
261
qint64 currentPacketHeadPosition = backlog.device()->pos();
273
qint64 currentPacketHeadPosition = backlog.pos();
263
275
// Loop until end of file reached
264
while(!backlog.atEnd() && backlog.device()->pos() < lastPacketHeadPosition)
276
while(!backlog.atEnd() && backlog.pos() < lastPacketHeadPosition)
266
278
// remember actual file position to check for deadlocks
267
filePosition = backlog.device()->pos();
279
filePosition = backlog.pos();
268
280
backlogLine = backlog.readLine();
270
282
// check for deadlocks
271
if(backlog.device()->pos() == filePosition) backlog.device()->seek(filePosition + 1);
283
if(backlog.pos() == filePosition)
285
backlog.seek(filePosition + 1);
273
// if a tab character is present in the line
288
// if a tab character is present in the line, meaning it is a valid chatline
274
289
if (backlogLine.contains('\t'))
276
291
// extract first column from log
309
324
QStringList::Iterator itFirstColumn = firstColumns.begin();
310
325
QStringList::Iterator itMessage = messages.begin();
311
326
for( ; itFirstColumn != firstColumns.end() ; ++itFirstColumn, ++itMessage )
312
328
appendBacklogMessage(*itFirstColumn, *itMessage);
314
331
} // if(Preferences::showBacklog())