1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00
This commit is contained in:
krepa098 2015-01-20 10:44:05 +01:00
parent 5d5a0903f7
commit 13e0a8a292
4 changed files with 18 additions and 20 deletions

View File

@ -15,15 +15,11 @@
*/
#include "chatline.h"
#include "chatlog.h"
#include "chatlinecontent.h"
#include <QTextLine>
#include <QDebug>
#include <QGraphicsScene>
#define CELL_SPACING 15
ChatLine::ChatLine()
{
@ -171,7 +167,7 @@ void ChatLine::layout(qreal w, QPointF scenePos)
width = w;
bbox.setTopLeft(scenePos);
qreal fixedWidth = (content.size()-1) * CELL_SPACING;
qreal fixedWidth = (content.size()-1) * cellSplacing;
qreal varWidth = 0.0; // used for normalisation
for(int i = 0; i < static_cast<int>(format.size()); ++i)
@ -222,7 +218,7 @@ void ChatLine::layout(qreal w, QPointF scenePos)
// reposition
content[i]->setPos(scenePos.x() + xOffset + xAlign, scenePos.y());
xOffset += width + CELL_SPACING;
xOffset += width + cellSplacing;
}
for(int i = 0; i < static_cast<int>(content.size()); ++i)

View File

@ -17,9 +17,10 @@
#ifndef CHATLINE_H
#define CHATLINE_H
#include <QMouseEvent>
#include <memory>
#include <vector>
#include <QPointF>
#include <QRectF>
class ChatLog;
class ChatLineContent;
@ -58,37 +59,35 @@ class ChatLine
public:
using Ptr = std::shared_ptr<ChatLine>;
explicit ChatLine();
ChatLine();
virtual ~ChatLine();
virtual QRectF boundingSceneRect() const;
QRectF boundingSceneRect() const;
void replaceContent(int col, ChatLineContent* lineContent);
void layout(qreal width, QPointF scenePos);
void moveBy(qreal deltaY);
void removeFromScene();
void addToScene(QGraphicsScene* scene);
void setVisible(bool visible);
void selectionCleared();
void selectionCleared(int col);
int getColumnCount();
int getRow() const;
ChatLineContent* getContent(int col) const;
ChatLineContent* getContent(QPointF scenePos) const;
bool isOverSelection(QPointF scenePos);
void removeFromScene();
void addToScene(QGraphicsScene* scene);
void setVisible(bool visible);
protected:
friend class ChatLog;
QPointF mapToContent(ChatLineContent* c, QPointF pos);
void addColumn(ChatLineContent* item, ColumnFormat fmt);
void updateBBox();
friend class ChatLog;
void setRow(int idx);
void visibilityChanged(bool visible);
@ -99,9 +98,10 @@ protected:
private:
int row = -1;
std::vector<ChatLineContent*> content; // 3 columns
std::vector<ChatLineContent*> content;
std::vector<ColumnFormat> format;
qreal width;
qreal width = 100.0;
qreal cellSplacing = 15.0;
QRectF bbox;
bool isVisible = false;

View File

@ -24,6 +24,7 @@
#include <QClipboard>
#include <QAction>
#include <QTimer>
#include <QMouseEvent>
template<class T>
T clamp(T x, T min, T max)

View File

@ -26,6 +26,7 @@
class QGraphicsScene;
class QGraphicsRectItem;
class QMouseEvent;
class QTimer;
class ChatLineContent;
class ToxFile;