diff --git a/waifu2x-caffe-gui/Source.cpp b/waifu2x-caffe-gui/Source.cpp index 253c644..111c759 100644 --- a/waifu2x-caffe-gui/Source.cpp +++ b/waifu2x-caffe-gui/Source.cpp @@ -27,6 +27,7 @@ const size_t AR_PATH_MAX(1024); const int MinCommonDivisor = 50; const int DefaultCommonDivisor = 128; +const std::pair DefaultCommonDivisorRange = {90, 140}; const char * const CropSizeListName = "crop_size_list.txt"; @@ -292,7 +293,7 @@ private: ), list.end()); int mindiff = INT_MAX; - int defaultIndex = 0; + int defaultIndex = -1; for (int i = 0; i < list.size(); i++) { const int n = list[i]; @@ -301,23 +302,34 @@ private: SendMessageA(hcrop, CB_ADDSTRING, 0, (LPARAM)str.c_str()); const int diff = abs(DefaultCommonDivisor - n); - if (diff < mindiff) + if (DefaultCommonDivisorRange.first <= n && n <= DefaultCommonDivisorRange.second && diff < mindiff) { mindiff = diff; defaultIndex = i; } } - if (SendMessageA(hcrop, CB_ADDSTRING, 0, (LPARAM)"-----------------------") == defaultIndex) - defaultIndex = 1; + SendMessageA(hcrop, CB_ADDSTRING, 0, (LPARAM)"-----------------------"); // CropSizeListの値を追加していく + mindiff = INT_MAX; + int defaultListIndex = -1; for (const auto n : CropSizeList) { std::string str(std::to_string(n)); - SendMessageA(hcrop, CB_ADDSTRING, 0, (LPARAM)str.c_str()); + const int index = SendMessageA(hcrop, CB_ADDSTRING, 0, (LPARAM)str.c_str()); + + const int diff = abs(DefaultCommonDivisor - n); + if (DefaultCommonDivisorRange.first <= n && n <= DefaultCommonDivisorRange.second && diff < mindiff) + { + mindiff = diff; + defaultListIndex = index; + } } + if (defaultIndex == -1) + defaultIndex = defaultListIndex; + if (GetWindowTextLength(hcrop) == 0) SendMessage(hcrop, CB_SETCURSEL, defaultIndex, 0); }