From 423d54cce1957041a2309ec204bf12b4e33392e7 Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Mon, 8 May 2023 10:26:05 +0800 Subject: [PATCH] fix bug when modifying option --- pc/code_twain/sln/hgjson/DlgOptJson.cpp | 43 +++++++++++++++---- pc/code_twain/sln/hgjson/DlgOptJson.h | 3 +- pc/code_twain/sln/usb_tools/Debug/hgjson.exe | Bin 1751040 -> 1751040 bytes 3 files changed, 36 insertions(+), 10 deletions(-) diff --git a/pc/code_twain/sln/hgjson/DlgOptJson.cpp b/pc/code_twain/sln/hgjson/DlgOptJson.cpp index fe59983..dbfc36a 100644 --- a/pc/code_twain/sln/hgjson/DlgOptJson.cpp +++ b/pc/code_twain/sln/hgjson/DlgOptJson.cpp @@ -649,7 +649,7 @@ void CDlgOptJson::to_ui(const SANEOPT& sop) } } } -HTREEITEM CDlgOptJson::insert_to_tree(const SANEOPT& opt) +HTREEITEM CDlgOptJson::insert_new_item(const SANEOPT& opt, bool sel) { HTREEITEM item = tree_.InsertItem(opt.title.c_str()); wchar_t* name = new wchar_t[opt.name.length() + 2]; @@ -658,6 +658,13 @@ HTREEITEM CDlgOptJson::insert_to_tree(const SANEOPT& opt) if (!tree_.SetItemData(item, (DWORD_PTR)name)) delete[] name; + opts_.push_back(opt); + if (sel) + { + tree_.SelectItem(item); + tree_.EnsureVisible(item); + } + return item; } void CDlgOptJson::delete_from_tree(const wchar_t* name) @@ -691,6 +698,25 @@ void CDlgOptJson::delete_from_tree(const wchar_t* name) tree_.DeleteAllItems(); } } +HTREEITEM CDlgOptJson::modify_tree_title(const wchar_t* name, const wchar_t* title) +{ + HTREEITEM item = tree_.GetRootItem(), found = NULL; + + while (item) + { + wchar_t* buf = (wchar_t*)tree_.GetItemData(item); + if (buf && wcscmp(buf, name) == 0) + { + tree_.SetItemText(item, title); + found = item; + break; + } + + item = tree_.GetNextSiblingItem(item); + } + + return found; +} bool CDlgOptJson::load_from_file(const wchar_t* path_file) { @@ -776,8 +802,7 @@ bool CDlgOptJson::load_from_json_text(const wchar_t* txt, std::wstring* err_msg) if (opt.from_json(child)) { - opts_.push_back(opt); - insert_to_tree(opt); + insert_new_item(opt, false); } child->release(); @@ -1175,12 +1200,12 @@ void CDlgOptJson::OnBnClickedButtonModify() { sop.range = std::move(v.range); v = std::move(sop); + modify_tree_title(v.name.c_str(), v.title.c_str()); return; } } - opts_.push_back(sop); - insert_to_tree(sop); + insert_new_item(sop); } @@ -1340,6 +1365,7 @@ void CDlgOptJson::OnBnClickedButtonSet() GotoDlgCtrl(GetDlgItem(IDC_EDIT_NAME)); return; } + opt.name = val; for (auto& v : opts_) { if (v.name == val) @@ -1348,9 +1374,9 @@ void CDlgOptJson::OnBnClickedButtonSet() break; } } + val = get_item_text(IDC_COMBO_DATA_TYPE); if (!opt.name.empty()) { - val = get_item_text(IDC_COMBO_DATA_TYPE); if (val == L"int") { dlg.init_ = std::to_wstring(*(int*)opt.def_val.c_str()); @@ -1423,9 +1449,8 @@ void CDlgOptJson::OnBnClickedButtonSet() from_ui(so); so.range = opt.range; so.def_val = opt.def_val; - opts_.push_back(opt); - insert_to_tree(opt); - to_ui(opt); + insert_new_item(so); + to_ui(so); } } diff --git a/pc/code_twain/sln/hgjson/DlgOptJson.h b/pc/code_twain/sln/hgjson/DlgOptJson.h index 950f0d7..7c30b66 100644 --- a/pc/code_twain/sln/hgjson/DlgOptJson.h +++ b/pc/code_twain/sln/hgjson/DlgOptJson.h @@ -145,8 +145,9 @@ protected: void from_ui(SANEOPT& sop); void to_ui(const SANEOPT& sop); - HTREEITEM insert_to_tree(const SANEOPT& opt); + HTREEITEM insert_new_item(const SANEOPT& opt, bool sel = true); void delete_from_tree(const wchar_t* name = NULL); + HTREEITEM modify_tree_title(const wchar_t* name, const wchar_t* title); bool load_from_file(const wchar_t* path_file); bool load_from_json_text(const wchar_t* txt, std::wstring* err_msg = NULL); diff --git a/pc/code_twain/sln/usb_tools/Debug/hgjson.exe b/pc/code_twain/sln/usb_tools/Debug/hgjson.exe index 0128b72e2119d435cb78a45d76597c530016c38e..a49be126013cea5f7f31eacb22f1acadc4b53d03 100644 GIT binary patch delta 9799 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 delta 9548 zcmZu%3tUuH{=au-E)I$gDz8CQ%x6i-8$n>CoYWK@3=I?CrlTJkC$0U$8q=);uePp(pVtfO74`R-I@L6-}9?dqwT%FM{+!P=LT zmCBD}cgym;%DMM#(aIU?wF6o-zduxYd%%PsIj?f;gR3+$uRJkiup)<5-cIfur2Vdk zQW-q#2}N_jSUGF>kRa`+PwUoic=Su{v^1r1=Ex*jTee@jo{h?uU#k3W)H51QjG=PE zm@h-MRiR2{@51pNoR2HIyZXwC*-uTXtUDNclSQuYFoRVb()4jI-7nYlXUZixCb_2Q zp4;AHH-}p6xgmM>iTVi(qy-Y6v;<)N>Z2OFMK>YO9lo|=mbAJiW>^b9IprREY;RD4 z{?#c!`FZLW&d(a;hc#^Y!#d_3fcij%N9%P$KtLr35;KeUaZ=LO{;<0vtqD0A(WZ~Bq(~{2O$lc5rj&pf;^23u}^wj11DA{v4mwU9|ebVZ3Pq3e`IKt!PaS{(Px!BT;a^%1j z2`+bOO|4dvhBfmCN4kW0D%>Bfh~F2?JYila+0;UNbz~*>47)6_Wdq6$po0kO9`8-iEc|8Qy)Y z;9FwYTWdRNSknUcI2dA; zTHqsr)>PW~HDb|vfWn3p(T?#LQ0NhiHIE)!9>GGh{x?IY^qZlpuAjrU2ShAf8t!5z zFX^LFKkrTA6OjJ^T(9_5LRxzB+IuAa9zWn|i;Knlq)+d0=i&CmD+KXrNU0@1=?6{8 zH+n^<1>PSF8kZq!8{hX^dOe81&cc>&P`G*wSRokFoBw*3Bv|7IY##4oHy}YtUv=|B zqTZ>SV5T^1GzH1EftN(;Z3n z7mCrFZ;^?}C_muAFc*uxtj~&%ZO^-f_eO4(+hzcHfzBa*p>#iDbWh`Aj?4P~C0Bjg z3;4)EaKLnOz-9c5W)T;|cZg};oNb?&uT;;KjD;TK#b;yPc` z-U7W<6KottdJCMx1AQiV*VW1_SM*_FBamF>HoZ_f3~&BzHy2xR1xnYV8n$D91XcPE z?CX(_{GYOm{d@&VZ;bT1T)_V`z^imu;Ywluqph&N8gxZD5NU*@@djZsm}0z-XeJ4N zs8v-hC#pu%Ge`}AQUUT_PyTcVNgwT?A8r&`e}*6`;N7k+wu9@_d)E#3Ftj_W2=f(G zAu!xP3@aoTYvua>IVCvtQ1&$*_}TtYq8Og@SJpj(G`)Euf}`B_wjVI7r;E*O)Q{Aj zALC*>8}-pWUeJ-4q&tr03SgF2(<#iudbwCbqdvUk>yEIsjaDpl0=$?l_%_0 zj<@jFL1|wzQN#a^8r`@TIo&uIB03y{ZbPVL@nTD`!$wm<^cr%+BZR{-oFsp-CqYnh zOUMLz0*!$n4jUbIw8wL*KSv?t1M+7OY5~*l!Cy6&;58lTiL_g%HDwdL_5$4 z{Xnx3{lM4(YCll254lrXvm!+F1B)Jlbvh6kCW&ur&E0-#w0iO z36Ee*sfhzs%E6ct1qY&J!kC04oJ@?1o|YEl|EHG}OLG>^la|k1C>@_@Z(iVbPVA!V z(vi*9=^iP8@^& zVtCrH*L=xVwM?w`>_msC`LsIM^UmsAtgGbP)C;|Lx`m6x|9@g7j#D<&OXc3=-wp zbG?+WuWxljp)9PRnoz1Z=$*%pf7HrOX?24`o2O5kQd%Ry^62o`hhUN^C$soXnh>Y! zWnKPYR`tA+Qd036#1coQIYgY9);<56F7bciC|X?;Qf_WpfcB;ZU27dTZTerRSY2Hu zTNa?BtK-xDOr9}Jpv_?pa~*`%^H1kP0f!FKtv)K3ivi*O6&lzdGwapvbm$j|#+xf! z-33oVZhNjP=>%W=bSq-gqd{LA&=He{-UN__1HaA_m18lU{y59&5^^8Ap3=F$bE8vd z%9F3LZ}rM>c>{|GRvze!W?+=42fi$O-bAO87s#ItVwPYfJo!u_*}KlJ$5mxw-2{8i z3U?jcPz`XoxyD-u9JG%|;v8$7<#w}E-SuJJD}b_FR`tK*LdYsr$oR`_>Gw)67N6eL$RaNcZ3Q~;N$L`$pJLS3F8K(~(Q9;t072my1vd)}r!u>pH5D2jZ2?H%^pVx?P2 zXW%W6QIqXu`Pi3d)p~AfYj+DxN~>##z}Kw-1|kBFwr5Jfs!Kj%1%jB)L(D|P%($$V z6$*H;7hdwCcVVhnXvVFJx`cr~_%s2(>VX>wo~tjdc9B%s0a96j!9P6G))WFb7*dHn zgFuRR4BVr86p-iIZ-Q|A=0)0saInzfQjREx{K^PWC`Z9UP2KPtv8tirm{V-j5@m47 zC;k^P=nX)_R&AU;GmfObqArBv8@=_&d`e9^>?+R?R+meB@x+=y` zbJF+VrD@vcVX+qYYCsFki@`rY&VMzvk@Ni~wtcA*QF5u;!=$!6x89!-WXL1$kjS1K zvEV+$KW+md^X~9KtQ|dZ(Mc2hdzX# zUZvz1a!4@XnMc*%LC9fi0j}&MUyYE@e%&h{eSdHO2E+X7F~KZZSn;?2k`+}+DS0kp z?w@H&&VXw2PVo^3Rgo|rfe6+)#7GoM0>uL)lB)qc_z@mZCTQ9Eg--{Xas+?lV(+Ec zFYdYj1d97Tvdp@&#G{aE@B?iy76T(dq4hXMaTfJ$r%?Ac3MHL}q%aWOPReb!aID)M z^ycqkce$uV5E_uc9p#6L)s5L!` zEbw}@KQ$G#{Nol;gMD0&)3GmEd}tdfcLE$}1Ab$85qOGgyWb}lud?jrN^ec|RW^OO z(qrJ}dxHKTq8|`7QJDL~Vd%GP`*J0+JM}B&wgbYZwPfU+581KhN=EdtpW*2?-;K(k zjfD@n$a?=-=|67&jW&9pc`rb3!sHwT#1~q>VGI61bB>^S-~!Q%X1o3j3y&niffnBX zc^gg{KLl{1{d^9{HsuCbIEq?|TK+aFKaNbFg+E97(RVO@?J6kx3|;zGprK17z7+c! zr&DYnZ9W@kcxA}C7>tKwOs6J|GmD&e{-PY#v4-PaF0i|Jv+dHVP6YK37dv1N6-BRHG3KycDfdpw6 z9~DS2hX2w?+;`Jnb3Lw86YFuADiD{c3nv0t59L*jEVNKDYMdw7;6i19X59()IDW(C z`O!Qr-y@C80nA4-0#`&g86mh`|6klX1DUR|T%leScUk=D;e*#%W1-Sl^UZPAWvVhz zv-3Dhqu&>fvl;X|`8X?|s`Ls^KkhrmaDAffJoy4UFjeW({R>1BZt5F+H}&6+vFlTn zp@a4vBklZWQUkW}+3m6ac8po3DMO9d=se!r`({)pAM6Id00Tp=Rr2~~SOFpcdHL_}A}F=m>sM902F^nfgmAM-AI z?k@iEdJ4R4G@SJ_`^$9YK8mpkgf(#lXuZrVX28KoDszzPUZM z86w=$8f<&K+(&~>xp^N&uP3tvVrUJ7spT)6X0bDr9uxmTjRc`kh2`(7qJqa zij{W0NjS$opQ(gvmesQFW-5K-t{fq0JkGF*W7tAyo~#3fOy*^`E6=XmY+~ zGiNCeXeJ(Ej#)}n-e@GCzi79%al_v>dff1n*A2_TuiUnh$hPxD2F`hydDl1WzaZbU z>aePBpeLx;1jJh`m1to-q)b&ocq-a@t?XgfYT1qJRGJJi9vwo|*p@ zOMgn~9a}~*Ek1eiQNP@Ar`v`Dx2UTJl=2H(@su*ScNSrZOOOb~jdUIIMPqCYJNT4h z3O!FTOtR8_kAHNAb)Bn37#D39Wu1;0t5k|VkU6No;ghzr;d7N3&DpQmw7F>8qxc;+ zzx6g*Hp*J>iE6rfTKH5{5U;(9yIDCF9gYSf68a(X{Xwga+HGjBqCXUf9%>E2q6hr~ z?$e%O89p0{`=r5kfQ%UgdvePctaYvu9d`_iL{HpXZS*P2?w~h6RzcQ$(+?=z!E)v) z=D{89;=YH!`&hAvzIOzE^7u9Nf`^-+qJsEm)$GH0O4$7cbz+0o;h+tCG^UM6fhx7E($hkGXBMKE-ORu zPd|=o#J>r6DdGhMPY|9C&WIQE8Pl9W&nWwKz<4o+E$LzidTEm!jHe@>PIyA_bjH&K zj{#38p00Sh;pvVi3{SXolN>SW7vNoOiog@;yxJ7C^@3c;94Cx@*+(agDXj5?u}IEj zQ%@QPhOWpwoOwO7L)O;pO{OZ-X_IsFN#h7@#0)5z7{4%nMf{rhiuf(@hvS>$J0v)- zoiZjWaxv?3+BiM*c-Hx>&DlJAsHx0!#w1D34X2G^vOI&mbH>=iS$oE~QX9MkbZ*AS zCuFkRdgJ8e0jBY$xuz{ZmO{HoBk&Uu|8T;D#PsAj$pcefNjZ>GlIl#qp6*K5XM|}-(VaqOU`~5j1y$T@f3Y(SZZu) zTh($