* @brief Sanitizes a frame title for use as a directory name. */
| 201 | * @brief Sanitizes a frame title for use as a directory name. |
| 202 | */ |
| 203 | static QString sanitizeFrameTitle(const QString& title) |
| 204 | { |
| 205 | QString frameName = title; |
| 206 | frameName.remove(QChar('/')); |
| 207 | frameName.remove(QChar('\\')); |
| 208 | frameName.remove(QChar(':')); |
| 209 | frameName.remove(QChar('*')); |
| 210 | frameName.remove(QChar('?')); |
| 211 | frameName.remove(QChar('"')); |
| 212 | frameName.remove(QChar('<')); |
| 213 | frameName.remove(QChar('>')); |
| 214 | frameName.remove(QChar('|')); |
| 215 | frameName.remove(QChar('\0')); |
| 216 | frameName.remove(QStringLiteral("..")); |
| 217 | frameName = frameName.simplified(); |
| 218 | |
| 219 | int keep = 0; |
| 220 | for (int i = frameName.size(); i > 0; --i) { |
| 221 | const QChar c = frameName.at(i - 1); |
| 222 | if (c != QChar('.') && c != QChar(' ')) { |
| 223 | keep = i; |
| 224 | break; |
| 225 | } |
| 226 | } |
| 227 | frameName.truncate(keep); |
| 228 | |
| 229 | if (frameName.isEmpty()) |
| 230 | frameName = QStringLiteral("SerialStudio"); |
| 231 | |
| 232 | return frameName; |
| 233 | } |
| 234 | |
| 235 | /** |
| 236 | * @brief Configures an mdflib data channel as either numeric (FloatLe/8) or string (Ascii/256). |
no test coverage detected