mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-09-28 00:42:19 -07:00
Took 6 minutes Took 3 minutes Took 8 seconds Took 11 minutes Took 12 minutes Took 7 minutes Took 15 seconds Took 2 minutes Took 1 minute Took 30 seconds Took 16 seconds
44 lines
1.8 KiB
C++
44 lines
1.8 KiB
C++
#ifndef STRING_LIMITS_H
|
|
#define STRING_LIMITS_H
|
|
|
|
#include <QString>
|
|
#include <algorithm>
|
|
#include <string>
|
|
|
|
/** @brief Max size for short strings, like names and things that are generally a single phrase. */
|
|
constexpr int MAX_NAME_LENGTH = 0xff;
|
|
/** @brief Max size for chat messages and text contents. */
|
|
constexpr int MAX_TEXT_LENGTH = 0xfff;
|
|
/** @brief Max size for deck files and pictures (about 2 megabytes). */
|
|
constexpr int MAX_FILE_LENGTH = 0x1fffff;
|
|
|
|
/** @brief Returns a QString from a std::string, truncated to at most MAX_NAME_LENGTH bytes. */
|
|
inline QString nameFromStdString(const std::string &_string)
|
|
{
|
|
return QString::fromUtf8(_string.data(), std::min(int(_string.size()), MAX_NAME_LENGTH));
|
|
}
|
|
/** @brief Returns a QString from a std::string, truncated to at most MAX_TEXT_LENGTH bytes. */
|
|
inline QString textFromStdString(const std::string &_string)
|
|
{
|
|
return QString::fromUtf8(_string.data(), std::min(int(_string.size()), MAX_TEXT_LENGTH));
|
|
}
|
|
/** @brief Returns a QString from a std::string, truncated to at most MAX_TEXT_LENGTH bytes, keeping the tail. */
|
|
inline QString textTailFromStdString(const std::string &_string)
|
|
{
|
|
if (int(_string.size()) <= MAX_TEXT_LENGTH) {
|
|
return QString::fromUtf8(_string.data(), int(_string.size()));
|
|
}
|
|
|
|
int start = int(_string.size()) - MAX_TEXT_LENGTH;
|
|
while (start < int(_string.size()) && (static_cast<unsigned char>(_string[start]) & 0xC0) == 0x80) {
|
|
++start;
|
|
}
|
|
return QString::fromUtf8(_string.data() + start, int(_string.size()) - start);
|
|
}
|
|
/** @brief Returns a QString from a std::string, truncated to at most MAX_FILE_LENGTH bytes. */
|
|
inline QString fileFromStdString(const std::string &_string)
|
|
{
|
|
return QString::fromUtf8(_string.data(), std::min(int(_string.size()), MAX_FILE_LENGTH));
|
|
}
|
|
|
|
#endif // STRING_LIMITS_H
|