LRESULT CMainDlg::OnSettingsComboSelchange(WORD /*wNotifyCode*/, WORD wID, HWND hWndCtl, BOOL& /*bHandled*/) { int cameraProperty = combobox_to_camera_property_[wID]; CComboBox combobox(hWndCtl); task_runner_->InsertTask(new PropertySetterTask<int>(camera_, cameraProperty, combobox.GetItemData(combobox.GetCurSel()))); return 0; }
// boolean return value no longer required // was used to detect whether all settings were present in the ini, // since writing in 'preserved' mode would not create settings not present. // that is now fixed, so return value redundant. void EditorConfigDialog::syncData(ini::AttributeMap& data, bool saveDialogData) { bool /*preserve = true,*/ read = !saveDialogData; QString pathDefaults[pathSize] = { paths[d2charPath]->text(), paths[d2dataPath]->text(), paths[d2expPath]->text(), paths[patch_d2Path]->text(), paths[mod_dirPath]->text() }; #ifdef Q_WS_WIN // get default mpq path based on diablo install path in registry QSettings diabloSettings("HKEY_CURRENT_USER\\Software\\Blizzard Entertainment\\Diablo II", QSettings::NativeFormat); if (diabloSettings.contains("InstallPath")) { QString installPath = diabloSettings.value("InstallPath").toString(); if (installPath.length()) { QDir installDir(installPath); #define DEFPATHFROMINST(name) pathDefaults[( name##Path )] = installDir.filePath( #name ".mpq" ) DEFPATHFROMINST(d2char); DEFPATHFROMINST(d2data); DEFPATHFROMINST(d2exp); DEFPATHFROMINST(patch_d2); } } #undef DEFPATHFROMINST #endif //#define SYNCPATH(name) preserve *= lineedit(#name, paths[ name##Path ], \ /**/ #define SYNCPATH(name) lineedit(#name, paths[ name##Path ], \ pathDefaults[ name##Path ], read, data) SYNCPATH(d2char); SYNCPATH(d2data); SYNCPATH(d2exp); SYNCPATH(patch_d2); SYNCPATH(mod_dir); #undef SYNCPATH /*preserve *=*/ checkbox("full_screen", useFullscreen, true, false, read, data); /*preserve *=*/ lineedit("screen_width", screenWidth, "800", read, data); /*preserve *=*/ lineedit("screen_height", screenHeight, "600", read, data); /*preserve *=*/ combobox("screen_depth", screenDepth, 4, read, data); /*preserve *=*/ lineedit("refresh_rate", screenRefresh, "60", read, data); /*preserve *=*/ lineedit("keyb_scroll_x", scrollSpeeds[keyboardScroll][0], "40", read, data); /*preserve *=*/ lineedit("keyb_scroll_y", scrollSpeeds[keyboardScroll][1], "20", read, data); /*preserve *=*/ lineedit("mouse_scroll_x", scrollSpeeds[mouseScroll][0], "20", read, data); /*preserve *=*/ lineedit("mouse_scroll_y", scrollSpeeds[mouseScroll][1], "10", read, data); /*preserve *=*/ lineedit("edit_scroll_x", scrollSpeeds[tileeditScroll][0], "20", read, data); /*preserve *=*/ lineedit("edit_scroll_y", scrollSpeeds[tileeditScroll][1], "20", read, data); /*preserve *=*/ lineedit("obj_edit_scroll", editScrollSpeed, "2", read, data); /*preserve *=*/ lineedit("mouse_speed_x", mouseSpeeds[0], "2", read, data); /*preserve *=*/ lineedit("mouse_speed_y", mouseSpeeds[1], "2", read, data); /*preserve *=*/ combobox("gamma_correction", gammaCorrection, 23, read, data); /*preserve *=*/ checkbox("only_normal_type2", allowHigherType2, false, true, read, data); /*preserve *=*/ checkbox("always_max_layers", alwaysMaxLayerCount, true, false, read, data); /*preserve *=*/ checkbox("stretch_sprite", stretchSpritesOnZoom, true, false, read, data); /*preserve *=*/ checkbox("ds1_saved_minimize", minimizeSavedDs1, true, false, read, data); /*preserve *=*/ combobox("center_zoom", zoomAfterCentering, 1, read, data); /*preserve *=*/ checkbox("winobj_can_scroll_keyb", mouseScrollsMain, true, false, read, data); /*preserve *=*/ checkbox("winobj_can_scroll_mouse", keybScrollsMain, false, false, read, data); /*preserve *=*/ lineedit("nb_type1_per_act", type1TableSize, "60", read, data); /*preserve *=*/ lineedit("nb_type2_per_act", type2TableSize, "150", read, data); /*preserve *=*/ checkbox("lower_speed_zoom_out", lowZoomedScrollSpeed, false, false, read, data); /*preserve *=*/ checkbox("workspace_enable", enableWorkspace, true, false, read, data); //return preserve; }