Switch some c-style includes to c++-style includes (i.e. stdint.h to

cstdint)

Make MessageElement to a class to fit better with the derived classes.
Make MessageLayoutElement to a class to fit better with the derived
classes.

Remove virtual from override functions

Replace all instances of boost::signals2 with pajlada::Signals. This
lets us properly use clang code model to check for issues.

Add missing virtual destructor to AbstractIrcServer
Add missing virtual destructor to MessageLayoutElement

Remove unused "connectedConnection" connection in TwitchChannel

Fix typo in TrimChannelName function
Fix typo in MessageParseArgs

Replace some raw pointers with unique pointers where it made more sense.
This allowed us to remove some manually written destructors whose only
purpose was to delete that raw pointer.

Reformat: Add namespace comments
Reformat: Add empty empty lines between main namespace beginning and end
Reformat: Re-order includes
Reformat: Fix some includes that used quotes where they should use angle
brackets
Reformat: Replace some typedef's with using's

Filter out more useless warnings
This commit is contained in:
Rasmus Karlsson
2018-04-03 02:55:32 +02:00
committed by fourtf
parent 1119c08182
commit 6ea3a1df08
103 changed files with 305 additions and 248 deletions
-1
View File
@@ -5,7 +5,6 @@
#include <boost/noncopyable.hpp>
#include <atomic>
#include <mutex>
namespace chatterino {
namespace messages {
@@ -15,7 +15,7 @@ namespace chatterino {
namespace messages {
namespace layouts {
struct MessageLayoutElement;
class MessageLayoutElement;
struct Margin {
int top;
@@ -102,9 +102,9 @@ void ImageLayoutElement::paintAnimated(QPainter &painter, int yOffset)
if (pixmap != nullptr) {
// fourtf: make it use qreal values
QRect rect = this->getRect();
rect.moveTop(rect.y() + yOffset);
painter.drawPixmap(QRectF(rect), *pixmap, QRectF());
QRect _rect = this->getRect();
_rect.moveTop(_rect.y() + yOffset);
painter.drawPixmap(QRectF(_rect), *pixmap, QRectF());
}
}
}
@@ -240,8 +240,8 @@ void TextIconLayoutElement::paint(QPainter &painter)
option.setAlignment(Qt::AlignHCenter);
if (this->line2.isEmpty()) {
QRect rect(this->getRect());
painter.drawText(rect, this->line1, option);
QRect _rect(this->getRect());
painter.drawText(_rect, this->line1, option);
} else {
painter.drawText(
QPoint(this->getRect().x(), this->getRect().y() + this->getRect().height() / 2),
@@ -15,14 +15,16 @@ class QPainter;
namespace chatterino {
namespace messages {
struct MessageElement;
class MessageElement;
class Image;
namespace layouts {
struct MessageLayoutElement : boost::noncopyable {
class MessageLayoutElement : boost::noncopyable
{
public:
MessageLayoutElement(MessageElement &creator, const QSize &size);
virtual ~MessageLayoutElement() = default;
const QRect &getRect() const;
MessageElement &getCreator() const;
+2 -2
View File
@@ -1,9 +1,9 @@
#pragma once
#include "QDebug"
#include "messages/limitedqueuesnapshot.hpp"
#include <QDebug>
#include <memory>
#include <mutex>
#include <vector>
+4 -7
View File
@@ -11,10 +11,7 @@ template <typename T>
class LimitedQueueSnapshot
{
public:
LimitedQueueSnapshot()
: length(0)
{
}
LimitedQueueSnapshot() = default;
LimitedQueueSnapshot(std::shared_ptr<std::vector<std::shared_ptr<std::vector<T>>>> _chunks,
size_t _length, size_t _firstChunkOffset, size_t _lastChunkEnd)
@@ -53,9 +50,9 @@ public:
private:
std::shared_ptr<std::vector<std::shared_ptr<std::vector<T>>>> chunks;
size_t length;
size_t firstChunkOffset;
size_t lastChunkEnd;
size_t length = 0;
size_t firstChunkOffset = 0;
size_t lastChunkEnd = 0;
};
} // namespace messages
+2
View File
@@ -2,6 +2,7 @@
namespace chatterino {
namespace messages {
Link::Link()
: type(None)
, value(QString())
@@ -18,5 +19,6 @@ bool Link::isValid() const
{
return this->type != None;
}
} // namespace messages
} // namespace chatterino
+2
View File
@@ -4,6 +4,7 @@
namespace chatterino {
namespace messages {
struct Link {
public:
enum Type {
@@ -26,5 +27,6 @@ public:
bool isValid() const;
};
} // namespace messages
} // namespace chatterino
+1 -1
View File
@@ -2,7 +2,7 @@
#include "messageelement.hpp"
#include "util/irchelpers.hpp"
typedef chatterino::widgets::ScrollbarHighlight SBHighlight;
using SBHighlight = chatterino::widgets::ScrollbarHighlight;
namespace chatterino {
namespace messages {
+2 -2
View File
@@ -4,12 +4,12 @@
#include "util/flagsenum.hpp"
#include "widgets/helper/scrollbarhighlight.hpp"
#include <QTime>
#include <cinttypes>
#include <memory>
#include <vector>
#include <QTime>
namespace chatterino {
namespace messages {
+2
View File
@@ -2,6 +2,7 @@
namespace chatterino {
namespace messages {
MessageColor::MessageColor(const QColor &_color)
: type(Type::Custom)
, customColor(_color)
@@ -29,5 +30,6 @@ const QColor &MessageColor::getColor(singletons::ThemeManager &themeManager) con
static QColor _default;
return _default;
}
} // namespace messages
} // namespace chatterino
+4 -2
View File
@@ -1,11 +1,12 @@
#pragma once
#include <QColor>
#include "singletons/thememanager.hpp"
#include <QColor>
namespace chatterino {
namespace messages {
struct MessageColor {
enum Type { Custom, Text, Link, System };
@@ -18,5 +19,6 @@ private:
Type type;
QColor customColor;
};
} // namespace messages
} // namespace chatterino
+5 -24
View File
@@ -74,18 +74,10 @@ void ImageElement::addToContainer(MessageLayoutContainer &container, MessageElem
EmoteElement::EmoteElement(const util::EmoteData &_data, MessageElement::Flags flags)
: MessageElement(flags)
, data(_data)
, textElement(nullptr)
{
if (_data.isValid()) {
this->setTooltip(data.image1x->getTooltip());
this->textElement = new TextElement(_data.image1x->getName(), MessageElement::Misc);
}
}
EmoteElement::~EmoteElement()
{
if (this->textElement != nullptr) {
delete this->textElement;
this->textElement.reset(new TextElement(_data.image1x->getName(), MessageElement::Misc));
}
}
@@ -114,7 +106,7 @@ void EmoteElement::addToContainer(MessageLayoutContainer &container, MessageElem
container.addElement(
(new ImageLayoutElement(*this, _image, size))->setLink(this->getLink()));
} else {
if (this->textElement != nullptr) {
if (this->textElement) {
this->textElement->addToContainer(container, MessageElement::Misc);
}
}
@@ -130,7 +122,7 @@ TextElement::TextElement(const QString &text, MessageElement::Flags flags,
{
for (QString word : text.split(' ')) {
this->words.push_back({word, -1});
// fourtf: add logic to store mutliple spaces after message
// fourtf: add logic to store multiple spaces after message
}
}
@@ -213,32 +205,21 @@ void TextElement::addToContainer(MessageLayoutContainer &container, MessageEleme
}
// TIMESTAMP
TimestampElement::TimestampElement()
: TimestampElement(QTime::currentTime())
{
}
TimestampElement::TimestampElement(QTime _time)
: MessageElement(MessageElement::Timestamp)
, time(_time)
, element(formatTime(_time))
, element(this->formatTime(_time))
{
assert(this->element != nullptr);
}
TimestampElement::~TimestampElement()
{
delete this->element;
}
void TimestampElement::addToContainer(MessageLayoutContainer &container,
MessageElement::Flags _flags)
{
if (_flags & this->getFlags()) {
if (singletons::SettingManager::getInstance().timestampFormat != this->format) {
this->format = singletons::SettingManager::getInstance().timestampFormat.getValue();
delete this->element;
this->element = TimestampElement::formatTime(this->time);
this->element.reset(this->formatTime(this->time));
}
this->element->addToContainer(container, _flags);
+20 -25
View File
@@ -4,28 +4,29 @@
#include "messages/link.hpp"
#include "messages/messagecolor.hpp"
#include "singletons/fontmanager.hpp"
#include "util/emotemap.hpp"
#include <stdint.h>
#include <QRect>
#include <QString>
#include <QTime>
#include <boost/noncopyable.hpp>
#include "util/emotemap.hpp"
#include <cstdint>
#include <memory>
namespace chatterino {
class Channel;
namespace util {
struct EmoteData;
}
} // namespace util
namespace messages {
namespace layouts {
struct MessageLayoutContainer;
}
} // namespace layouts
using namespace chatterino::messages::layouts;
struct MessageElement : boost::noncopyable
class MessageElement : boost::noncopyable
{
public:
enum Flags : uint32_t {
@@ -109,9 +110,7 @@ public:
Update_All = Update_Text | Update_Emotes | Update_Images
};
virtual ~MessageElement()
{
}
virtual ~MessageElement() = default;
MessageElement *setLink(const Link &link);
MessageElement *setTooltip(const QString &tooltip);
@@ -141,8 +140,7 @@ class ImageElement : public MessageElement
public:
ImageElement(Image *image, MessageElement::Flags flags);
virtual void addToContainer(MessageLayoutContainer &container,
MessageElement::Flags flags) override;
void addToContainer(MessageLayoutContainer &container, MessageElement::Flags flags) override;
};
// contains a text, it will split it into words
@@ -161,9 +159,9 @@ public:
TextElement(const QString &text, MessageElement::Flags flags,
const MessageColor &color = MessageColor::Text,
FontStyle style = FontStyle::Medium);
~TextElement() override = default;
virtual void addToContainer(MessageLayoutContainer &container,
MessageElement::Flags flags) override;
void addToContainer(MessageLayoutContainer &container, MessageElement::Flags flags) override;
};
// contains emote data and will pick the emote based on :
@@ -172,30 +170,27 @@ public:
class EmoteElement : public MessageElement
{
const util::EmoteData data;
TextElement *textElement;
std::unique_ptr<TextElement> textElement;
public:
EmoteElement(const util::EmoteData &data, MessageElement::Flags flags);
~EmoteElement();
~EmoteElement() override = default;
virtual void addToContainer(MessageLayoutContainer &container,
MessageElement::Flags flags) override;
void addToContainer(MessageLayoutContainer &container, MessageElement::Flags flags) override;
};
// contains a text, formated depending on the preferences
class TimestampElement : public MessageElement
{
QTime time;
TextElement *element;
std::unique_ptr<TextElement> element;
QString format;
public:
TimestampElement();
TimestampElement(QTime time);
virtual ~TimestampElement();
TimestampElement(QTime time = QTime::currentTime());
~TimestampElement() override = default;
virtual void addToContainer(MessageLayoutContainer &container,
MessageElement::Flags flags) override;
void addToContainer(MessageLayoutContainer &container, MessageElement::Flags flags) override;
TextElement *formatTime(const QTime &time);
};
@@ -207,8 +202,8 @@ class TwitchModerationElement : public MessageElement
public:
TwitchModerationElement();
virtual void addToContainer(MessageLayoutContainer &container,
MessageElement::Flags flags) override;
void addToContainer(MessageLayoutContainer &container, MessageElement::Flags flags) override;
};
} // namespace messages
} // namespace chatterino
+1 -2
View File
@@ -4,8 +4,7 @@ namespace chatterino {
namespace messages {
struct MessageParseArgs {
public:
bool disablePingSoungs = false;
bool disablePingSounds = false;
bool isReceivedWhisper = false;
bool isSentWhisper = false;
};
+5 -3
View File
@@ -1,7 +1,10 @@
#pragma once
#include <utility>
namespace chatterino {
namespace messages {
struct SelectionItem {
int messageIndex;
int charIndex;
@@ -47,9 +50,7 @@ struct Selection {
SelectionItem min;
SelectionItem max;
Selection()
{
}
Selection() = default;
Selection(const SelectionItem &start, const SelectionItem &end)
: start(start)
@@ -72,5 +73,6 @@ struct Selection {
return this->min.messageIndex == this->max.messageIndex;
}
};
} // namespace messages
} // namespace chatterino