- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
AttachmentService::MimeType AttachmentService::mimeTypeByCodeKey(const QString &codeKey) const
{
if(codeKey.toLower() == QString("MimeType_PDF").toLower()) return MimeType_PDF;
if(codeKey.toLower() == QString("MimeType_JPEG").toLower()) return MimeType_JPEG;
if(codeKey.toLower() == QString("MimeType_PNG").toLower()) return MimeType_PNG;
if(codeKey.toLower() == QString("MimeType_HTML").toLower()) return MimeType_HTML;
if(codeKey.toLower() == QString("MimeType_ZHTML").toLower()) return MimeType_ZHTML;
if(codeKey.toLower() == QString("MimeType_TEXT").toLower()) return MimeType_TEXT;
if(codeKey.toLower() == QString("MimeType_XLS").toLower()) return MimeType_XLS;
if(codeKey.toLower() == QString("MimeType_DOC").toLower()) return MimeType_DOC;
if(codeKey.toLower() == QString("MimeType_PPT").toLower()) return MimeType_PPT;
if(codeKey.toLower() == QString("MimeType_GIF").toLower()) return MimeType_GIF;
if(codeKey.toLower() == QString("MimeType_BMP").toLower()) return MimeType_BMP;
if(codeKey.toLower() == QString("MimeType_MPEG").toLower()) return MimeType_MPEG;
if(codeKey.toLower() == QString("MimeType_MP4").toLower()) return MimeType_MP4;
if(codeKey.toLower() == QString("MimeType_MP3").toLower()) return MimeType_MP3;
return MimeType_UNKNOWN;
}
Коллега откопал в моём коде, написанном под какими-то веществами по ходу.
Изначально было сравнение строк как есть, без приведения в нижний регистр, а потом понадобилось подстраховаться от левого регистра символов.
а что, в ку-говне всё ещё нет годного ассоциативного контейнера?
QHash<QString, AttachmentService::MimeType>
Выбирай ;)
Но ведь C++ не может свитч не по интегральному типу...
ололо, где же свой функтор на сравнение?
а в хеше - и функтор на хеш?
автор не спроста же захотел insensitive
> а в хеше - и функтор на хеш?
QHash использует перегрузку свободной функции qHash для расчета хеша. Как-то так:
Дык это нарушение инкапсуляции. Если так постоянно делать - где-нибудь в обяз забудешь сделать lower case и кровь-кишки.
... которая не видела буст etc.
Ну и как я уже писал выше - у енумов протекают скопы. Поэтому его один хрен во что-то заворачивать, чтобы его константы на глобальный уровень не вытекли.
долго пытался понять про что ты тут талдычишь. а потом осознал что это то почему я энумы изредка в структуры заворачиваю. но только изредка. потому что "протекающие скопы" из нот э баг - иц э фича.