- 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;
}
Коллега откопал в моём коде, написанном под какими-то веществами по ходу.
Изначально было сравнение строк как есть, без приведения в нижний регистр, а потом понадобилось подстраховаться от левого регистра символов.
Мистер Хэнки 09.05.2014 14:53 # +1
bormand 09.05.2014 15:08 # +2
chtulhu 09.05.2014 17:59 # +2
bormand 09.05.2014 18:46 # 0
bormand 09.05.2014 18:51 # 0
defecate-plusplus 09.05.2014 17:58 # 0
а что, в ку-говне всё ещё нет годного ассоциативного контейнера?
bormand 09.05.2014 17:59 # 0
QHash<QString, AttachmentService::MimeType>
Выбирай ;)
FlySnake 09.05.2014 23:59 # 0
Xom94ok 10.05.2014 10:40 # 0
Но ведь C++ не может свитч не по интегральному типу...
FlySnake 10.05.2014 12:13 # 0
defecate-plusplus 10.05.2014 00:35 # +1
ололо, где же свой функтор на сравнение?
а в хеше - и функтор на хеш?
автор не спроста же захотел insensitive
bormand 10.05.2014 06:23 # 0
Xom94ok 10.05.2014 10:39 # 0
> а в хеше - и функтор на хеш?
QHash использует перегрузку свободной функции qHash для расчета хеша. Как-то так:
bormand 10.05.2014 10:42 # +1
Xom94ok 10.05.2014 11:34 # 0
Elvenfighter 10.05.2014 12:10 # 0
bormand 10.05.2014 12:21 # +2
Дык это нарушение инкапсуляции. Если так постоянно делать - где-нибудь в обяз забудешь сделать lower case и кровь-кишки.
Psionic 09.05.2014 19:13 # 0
bormand 09.05.2014 19:23 # 0
... которая не видела буст etc.
Ну и как я уже писал выше - у енумов протекают скопы. Поэтому его один хрен во что-то заворачивать, чтобы его константы на глобальный уровень не вытекли.
Dummy00001 09.05.2014 23:17 # 0
долго пытался понять про что ты тут талдычишь. а потом осознал что это то почему я энумы изредка в структуры заворачиваю. но только изредка. потому что "протекающие скопы" из нот э баг - иц э фича.
guest 09.05.2014 23:51 # +2
3.14159265 10.05.2014 00:00 # 0
bormand 10.05.2014 06:22 # 0
nslz 25.08.2021 08:59 # 0