diff --git a/uppsrc/ide/OnlineSearch.cpp b/uppsrc/ide/OnlineSearch.cpp index 99e62d6a1..d28f532f8 100644 --- a/uppsrc/ide/OnlineSearch.cpp +++ b/uppsrc/ide/OnlineSearch.cpp @@ -78,7 +78,8 @@ WebSearchTab::WebSearchTab() list.Moving().RowName("search engine").Removing(); list.WhenLeftDouble = [=] { Edit(); }; list.SetLineCy(max(GetStdFontSize().cy, DPI(18))); - list.WhenBar = [&](Bar& bar) { + list.WhenSel << [=] { Sync(); }; + list.WhenBar = [=](Bar& bar) { bool b = list.IsCursor(); bar.Add("Add search engine", IdeImg::add(), [=] { Add(); }).Key(K_INSERT); bar.Add(b, "Edit search engine", IdeImg::pencil(), [=] { Edit(); }).Key(K_ENTER); @@ -96,6 +97,7 @@ WebSearchTab::WebSearchTab() }; list.EvenRowColor(); list.ColumnWidths("104 382 30"); + list.AutoHideSb(); add.SetImage(IdeImg::add()) << [=] { Add(); }; edit.SetImage(IdeImg::pencil()) ^= [=] { Edit(); }; @@ -125,6 +127,13 @@ void WebSearchTab::Sync() list.SetDisplay(i, 0, i == 0 ? BoldDisplay() : StdDisplay()); list.SetDisplay(i, 1, i == 0 ? BoldDisplay() : StdDisplay()); } + + bool b = list.IsCursor(); + edit.Enable(b); + remove.Enable(b); + setdef.Enable(b); + up.Enable(b); + down.Enable(b); } void WebSearchTab::Add() diff --git a/uppsrc/ide/ide.lay b/uppsrc/ide/ide.lay index 03f6100cb..d0cb746d5 100644 --- a/uppsrc/ide/ide.lay +++ b/uppsrc/ide/ide.lay @@ -890,13 +890,13 @@ LAYOUT(WebSearchEngineLayout, 564, 84) ITEM(Upp::Label, dv___6, SetLabel(t_("\001[g Use [* %s] as a placeholder for the search phrase")).LeftPosZ(8, 260).TopPosZ(60, 19)) END_LAYOUT -LAYOUT(WebSearchTabLayout, 524, 200) - ITEM(Upp::ArrayCtrl, list, HSizePosZ(4, 8).VSizePosZ(36, 4)) - ITEM(Upp::Button, add, SetLabel(t_("Add engine")).Tip(t_("Add row")).RightPosZ(256, 88).TopPosZ(8, 23)) - ITEM(Upp::Button, setdef, SetLabel(t_("Set as default")).Tip(t_("Add row")).RightPosZ(348, 96).TopPosZ(8, 23)) - ITEM(Upp::Button, down, Tip(t_("Move down")).RightPosZ(36, 24).TopPosZ(8, 23)) - ITEM(Upp::Button, up, Tip(t_("Move up")).RightPosZ(8, 24).TopPosZ(8, 23)) - ITEM(Upp::Button, edit, SetLabel(t_("Edit engine")).Tip(t_("Edit row")).RightPosZ(168, 84).TopPosZ(8, 23)) - ITEM(Upp::Button, remove, SetLabel(t_("Remove engine")).Tip(t_("Delete row")).RightPosZ(64, 100).TopPosZ(8, 23)) +LAYOUT(WebSearchTabLayout, 556, 200) + ITEM(Upp::ArrayCtrl, list, HSizePosZ(4, 4).VSizePosZ(36, 4)) + ITEM(Upp::Button, add, SetLabel(t_("Add engine")).Tip(t_("Add row")).RightPosZ(252, 88).TopPosZ(8, 23)) + ITEM(Upp::Button, setdef, SetLabel(t_("Set as default")).Tip(t_("Add row")).RightPosZ(344, 96).TopPosZ(8, 23)) + ITEM(Upp::Button, down, Tip(t_("Move down")).RightPosZ(32, 24).TopPosZ(8, 23)) + ITEM(Upp::Button, up, Tip(t_("Move up")).RightPosZ(4, 24).TopPosZ(8, 23)) + ITEM(Upp::Button, edit, SetLabel(t_("Edit engine")).Tip(t_("Edit row")).RightPosZ(164, 84).TopPosZ(8, 23)) + ITEM(Upp::Button, remove, SetLabel(t_("Remove engine")).Tip(t_("Delete row")).RightPosZ(60, 100).TopPosZ(8, 23)) END_LAYOUT