starting work on websocket chat reader
This commit is contained in:
45
ircmessagetype.cpp
Normal file
45
ircmessagetype.cpp
Normal file
@@ -0,0 +1,45 @@
|
||||
#include "ircmessagetype.hpp"
|
||||
|
||||
#include <QMetaObject>
|
||||
#include <QMetaEnum>
|
||||
|
||||
IrcMessageType::MessageType IrcMessageType::getType() const
|
||||
{
|
||||
return _type;
|
||||
}
|
||||
|
||||
|
||||
IrcMessageType IrcMessageType::parse(QString str)
|
||||
{
|
||||
// QVariant var = QVariant::fromValue(str);
|
||||
// if (var.convert(QMetaType::fromType<IrcMessageType>()))
|
||||
// return var.value<IrcMessageType>();
|
||||
// return IrcMessageType::MessageType::UNKNOWN;
|
||||
auto&& meta = QMetaEnum::fromType<IrcMessageType::MessageType>();
|
||||
bool ok = false;
|
||||
auto value = static_cast<IrcMessageType>(meta.keyToValue(str.toLocal8Bit().data(), &ok));
|
||||
if (ok)
|
||||
return value;
|
||||
auto num = str.toInt(&ok);
|
||||
if (ok)
|
||||
return num;
|
||||
return Unknown();
|
||||
}
|
||||
|
||||
IrcMessageType::IrcMessageType(const IrcMessageType& other)
|
||||
: _type(other._type)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
IrcMessageType::IrcMessageType(int type)
|
||||
: _type(static_cast<MessageType>(type))
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QString IrcMessageType::toString() const
|
||||
{
|
||||
auto&& metaEnum = QMetaEnum::fromType<MessageType>();
|
||||
return metaEnum.valueToKey(static_cast<int>(_type));
|
||||
}
|
||||
Reference in New Issue
Block a user