added MessageColor to represet special colors

This commit is contained in:
fourtf
2017-09-21 00:54:10 +02:00
parent 38d118c5dc
commit bd4601a5d4
12 changed files with 102 additions and 45 deletions
+4 -8
View File
@@ -38,21 +38,17 @@ void MessageBuilder::appendTimestamp(time_t time)
{
char timeStampBuffer[69];
// TODO(pajlada): Fix this
QColor systemMessageColor(140, 127, 127);
// QColor &systemMessageColor = ColorScheme::getInstance().SystemMessageColor;
// Add word for timestamp with no seconds
strftime(timeStampBuffer, 69, "%H:%M", localtime(&time));
QString timestampNoSeconds(timeStampBuffer);
appendWord(Word(timestampNoSeconds, Word::TimestampNoSeconds, systemMessageColor, QString(),
QString()));
appendWord(Word(timestampNoSeconds, Word::TimestampNoSeconds,
MessageColor(MessageColor::System), QString(), QString()));
// Add word for timestamp with seconds
strftime(timeStampBuffer, 69, "%H:%M:%S", localtime(&time));
QString timestampWithSeconds(timeStampBuffer);
appendWord(Word(timestampWithSeconds, Word::TimestampWithSeconds, systemMessageColor, QString(),
QString()));
appendWord(Word(timestampWithSeconds, Word::TimestampWithSeconds,
MessageColor(MessageColor::System), QString(), QString()));
}
QString MessageBuilder::matchLink(const QString &string)
+38
View File
@@ -0,0 +1,38 @@
#include "messagecolor.h"
namespace chatterino {
namespace messages {
MessageColor::MessageColor(const QColor &color)
: type(Type::Custom)
, color(color)
{
}
MessageColor::MessageColor(Type type)
: type(type)
{
}
MessageColor::Type MessageColor::getType() const
{
return this->type;
}
const QColor &MessageColor::getColor(ColorScheme &colorScheme) const
{
switch (this->type) {
case Type::Custom:
return this->color;
case Type::Text:
return colorScheme.Text;
case Type::System:
return colorScheme.SystemMessageColor;
case Type::Link:
return colorScheme.TextLink;
}
static QColor _default;
return _default;
}
}
}
+25
View File
@@ -0,0 +1,25 @@
#pragma once
#include <QColor>
#include <colorscheme.hpp>
namespace chatterino {
namespace messages {
class MessageColor
{
public:
enum Type { Custom, Text, Link, System };
explicit MessageColor(const QColor &color);
explicit MessageColor(Type type = Text);
Type getType() const;
const QColor &getColor(ColorScheme &colorScheme) const;
private:
Type type;
QColor color;
};
}
}
+2 -2
View File
@@ -17,7 +17,7 @@ Word::Word(LazyLoadedImage *image, Type type, const QString &copytext, const QSt
}
// Text word
Word::Word(const QString &text, Type type, const QColor &color, const QString &copytext,
Word::Word(const QString &text, Type type, const MessageColor &color, const QString &copytext,
const QString &tooltip, const Link &link)
: image(nullptr)
, text(text)
@@ -96,7 +96,7 @@ const QString &Word::getTooltip() const
return this->tooltip;
}
const QColor &Word::getColor() const
const MessageColor &Word::getColor() const
{
return this->color;
}
+4 -3
View File
@@ -3,6 +3,7 @@
#include "fontmanager.hpp"
#include "messages/lazyloadedimage.hpp"
#include "messages/link.hpp"
#include "messages/messagecolor.h"
#include <stdint.h>
#include <QRect>
@@ -90,7 +91,7 @@ public:
explicit Word(LazyLoadedImage *_image, Type getType, const QString &copytext,
const QString &getTooltip, const Link &getLink = Link());
explicit Word(const QString &_text, Type getType, const QColor &getColor,
explicit Word(const QString &_text, Type getType, const MessageColor &getColor,
const QString &copytext, const QString &getTooltip, const Link &getLink = Link());
LazyLoadedImage &getImage() const;
@@ -107,7 +108,7 @@ public:
QFontMetrics &getFontMetrics() const;
Type getType() const;
const QString &getTooltip() const;
const QColor &getColor() const;
const MessageColor &getColor() const;
const Link &getLink() const;
int getXOffset() const;
int getYOffset() const;
@@ -119,7 +120,7 @@ public:
private:
LazyLoadedImage *image;
QString text;
QColor color;
MessageColor color;
bool _isImage;
Type type;