Cockatrice 2026-09-01-Development-3.1.0-beta.10
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
string_limits.h
Go to the documentation of this file.
1#ifndef STRING_LIMITS_H
2#define STRING_LIMITS_H
3
4#include <QString>
5#include <algorithm>
6#include <string>
7
9constexpr int MAX_NAME_LENGTH = 0xff;
11constexpr int MAX_TEXT_LENGTH = 0xfff;
13constexpr int MAX_FILE_LENGTH = 0x1fffff;
14
16inline QString nameFromStdString(const std::string &_string)
17{
18 return QString::fromUtf8(_string.data(), std::min(int(_string.size()), MAX_NAME_LENGTH));
19}
20
21inline QString textFromStdString(const std::string &_string)
22{
23 return QString::fromUtf8(_string.data(), std::min(int(_string.size()), MAX_TEXT_LENGTH));
24}
25
26inline QString textTailFromStdString(const std::string &_string)
27{
28 if (int(_string.size()) <= MAX_TEXT_LENGTH) {
29 return QString::fromUtf8(_string.data(), int(_string.size()));
30 }
31
32 int start = int(_string.size()) - MAX_TEXT_LENGTH;
33 while (start < int(_string.size()) && (static_cast<unsigned char>(_string[start]) & 0xC0) == 0x80) {
34 ++start;
35 }
36 return QString::fromUtf8(_string.data() + start, int(_string.size()) - start);
37}
38
39inline QString fileFromStdString(const std::string &_string)
40{
41 return QString::fromUtf8(_string.data(), std::min(int(_string.size()), MAX_FILE_LENGTH));
42}
43
44#endif // STRING_LIMITS_H
QString textFromStdString(const std::string &_string)
Returns a QString from a std::string, truncated to at most MAX_TEXT_LENGTH bytes.
Definition string_limits.h:21
constexpr int MAX_NAME_LENGTH
Max size for short strings, like names and things that are generally a single phrase.
Definition string_limits.h:9
QString textTailFromStdString(const std::string &_string)
Returns a QString from a std::string, truncated to at most MAX_TEXT_LENGTH bytes, keeping the tail.
Definition string_limits.h:26
constexpr int MAX_TEXT_LENGTH
Max size for chat messages and text contents.
Definition string_limits.h:11
QString nameFromStdString(const std::string &_string)
Returns a QString from a std::string, truncated to at most MAX_NAME_LENGTH bytes.
Definition string_limits.h:16
constexpr int MAX_FILE_LENGTH
Max size for deck files and pictures (about 2 megabytes).
Definition string_limits.h:13
QString fileFromStdString(const std::string &_string)
Returns a QString from a std::string, truncated to at most MAX_FILE_LENGTH bytes.
Definition string_limits.h:39