projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
debug--
[quassel.git]
/
src
/
qtui
/
chatitem.cpp
diff --git
a/src/qtui/chatitem.cpp
b/src/qtui/chatitem.cpp
index
b1a071b
..
6add446
100644
(file)
--- a/
src/qtui/chatitem.cpp
+++ b/
src/qtui/chatitem.cpp
@@
-31,6
+31,7
@@
#include "buffermodel.h"
#include "bufferview.h"
#include "chatitem.h"
#include "buffermodel.h"
#include "bufferview.h"
#include "chatitem.h"
+#include "chatline.h"
#include "chatlinemodel.h"
#include "contextmenuactionprovider.h"
#include "iconloader.h"
#include "chatlinemodel.h"
#include "contextmenuactionprovider.h"
#include "iconloader.h"
@@
-49,6
+50,14
@@
ChatItem::ChatItem(const qreal &width, const qreal &height, const QPointF &pos,
setPos(pos);
}
setPos(pos);
}
+const QAbstractItemModel *ChatItem::model() const {
+ return static_cast<ChatLine *>(parentItem())->model();
+}
+
+int ChatItem::row() const {
+ return static_cast<ChatLine *>(parentItem())->row();
+}
+
QVariant ChatItem::data(int role) const {
QModelIndex index = model()->index(row(), column());
if(!index.isValid()) {
QVariant ChatItem::data(int role) const {
QModelIndex index = model()->index(row(), column());
if(!index.isValid()) {
@@
-426,7
+435,8
@@
qreal ContentsChatItem::setGeometryByWidth(qreal w) {
WrapColumnFinder finder(this);
while(finder.nextWrapColumn(w) > 0)
lines++;
WrapColumnFinder finder(this);
while(finder.nextWrapColumn(w) > 0)
lines++;
- qreal h = lines * fontMetrics()->lineSpacing();
+ qreal spacing = qMax(fontMetrics()->lineSpacing(), fontMetrics()->height()); // cope with negative leading()
+ qreal h = lines * spacing;
delete _data;
_data = 0;
delete _data;
_data = 0;
@@
-443,6
+453,7
@@
void ContentsChatItem::doLayout(QTextLayout *layout) const {
if(!wrapList.count()) return; // empty chatitem
qreal h = 0;
if(!wrapList.count()) return; // empty chatitem
qreal h = 0;
+ qreal spacing = qMax(fontMetrics()->lineSpacing(), fontMetrics()->height()); // cope with negative leading()
WrapColumnFinder finder(this);
layout->beginLayout();
forever {
WrapColumnFinder finder(this);
layout->beginLayout();
forever {
@@
-469,7
+480,7
@@
void ContentsChatItem::doLayout(QTextLayout *layout) const {
}
line.setPosition(QPointF(0, h));
}
line.setPosition(QPointF(0, h));
- h +=
fontMetrics()->lineSpacing()
;
+ h +=
spacing
;
}
layout->endLayout();
}
}
layout->endLayout();
}