diff --git a/uppsrc/CtrlLib/HeaderCtrl.cpp b/uppsrc/CtrlLib/HeaderCtrl.cpp index 82e88340d..78fbbfff4 100644 --- a/uppsrc/CtrlLib/HeaderCtrl.cpp +++ b/uppsrc/CtrlLib/HeaderCtrl.cpp @@ -113,7 +113,7 @@ HeaderCtrl::Column& HeaderCtrl::Add() HeaderCtrl::Column& HeaderCtrl::Add(const char *text, double ratio) { HeaderCtrl::Column& c = Add(); - c.ratio = ratio ? Zxf(ratio) : 1; + c.ratio = Zxf(ratio ? ratio : 1); c.SetText(text); SbTotal(); return c; diff --git a/uppsrc/ide/Config.cpp b/uppsrc/ide/Config.cpp index 3b91fe91b..6ec6d15ae 100644 --- a/uppsrc/ide/Config.cpp +++ b/uppsrc/ide/Config.cpp @@ -187,7 +187,7 @@ void Sentinel(Stream& s, const char *txt) void Ide::Serialize(Stream& s) { - int version = 34; + int version = 35; Sentinel(s, "before 12341234"); s.Magic(0x12341234); Sentinel(s, "after magic"); @@ -394,6 +394,9 @@ void Ide::Serialize(Stream& s) s % b; EnableBasicHints(b); } + + if(version >= 35) + s % valgrind_options; #ifdef PLATFORM_WIN32 if(s.IsLoading() && HostConsole == "/usr/bin/xterm -e") diff --git a/uppsrc/ide/Organizer.cpp b/uppsrc/ide/Organizer.cpp index 8a8292749..2b686759a 100644 --- a/uppsrc/ide/Organizer.cpp +++ b/uppsrc/ide/Organizer.cpp @@ -603,8 +603,8 @@ void PackageEditor::Init(ArrayCtrl& option) { option.AddIndex(); option.AddIndex(); - option.AddColumn("").SetDisplay(Single()).Margin(0); - option.AddColumn("", 2).SetDisplay(Single()).Margin(0); + option.AddColumn("", 7).SetDisplay(Single()).Margin(0); + option.AddColumn("", 20).SetDisplay(Single()).Margin(0); option.NoHeader(); option.SetLineCy(max(IdeImg::Package().GetSize().cy, Draw::GetStdFontCy())); } diff --git a/uppsrc/ide/Setup.cpp b/uppsrc/ide/Setup.cpp index ca52530ee..6f0978cfa 100644 --- a/uppsrc/ide/Setup.cpp +++ b/uppsrc/ide/Setup.cpp @@ -461,6 +461,7 @@ void Ide::SetupFormat() { (ide.gui_font, gui_font_override) (ide.search_downloads, search_downloads) (ide.show_basic_hints, show_basic_hints) + (ide.valgrind, valgrind_options) ; hlt.hlstyle.AddColumn("Style"); hlt.hlstyle.AddColumn("Color").Ctrls(HlPusherFactory); diff --git a/uppsrc/ide/UppWspc.cpp b/uppsrc/ide/UppWspc.cpp index 508c708b4..acdea4316 100644 --- a/uppsrc/ide/UppWspc.cpp +++ b/uppsrc/ide/UppWspc.cpp @@ -302,6 +302,7 @@ void WorkspaceWork::Fetch(Package& p, const String& pkg) p.file.Clear(); p.file.AddPick(Package::File(String(HELPNAME))); p.file.AddPick(Package::File(ConfigFile("global.defs"))); + p.file.AddPick(Package::File(ConfigFile("valgrind.xml"))); for(String d : GetUppDirs()) { Package::File sep(GetFileName(d)); sep.separator = true; diff --git a/uppsrc/ide/Valgrind.cpp b/uppsrc/ide/Valgrind.cpp index 969a98216..a54e3fcfa 100644 --- a/uppsrc/ide/Valgrind.cpp +++ b/uppsrc/ide/Valgrind.cpp @@ -19,15 +19,15 @@ void Ide::Valgrind() CreateHostRunDir(h); h.ChDir(Nvl(rundir, GetFileFolder(target))); String cmdline; - String fn = GetTempFileName(); + String fn = ConfigFile("valgrind.xml"); cmdline << "valgrind --xml=yes --num-callers=40 --xml-file=" << fn << ' '; - String ValgSupp = ConfigFile("valgrind.supp"); - if(!IsNull(LoadFile(ValgSupp))) - cmdline << "--suppressions=" << ValgSupp << ' '; + if(!IsNull(valgrind_options)) + cmdline << valgrind_options << ' '; cmdline << '\"' << target << "\" "; cmdline << runarg; ConsoleClear(); - PutConsole("Valgrind.."); + ShowConsole(); + PutConsole(cmdline); if(IsNull(h.Execute(cmdline))) { PutConsole("Error executing valgrind"); return; diff --git a/uppsrc/ide/ide.h b/uppsrc/ide/ide.h index 55b4b6cc0..9909dcb1a 100644 --- a/uppsrc/ide/ide.h +++ b/uppsrc/ide/ide.h @@ -664,6 +664,7 @@ public: Font gui_font = StdFont(); String libclang_options; String libclang_coptions; + String valgrind_options; bool prefer_clang_format = false; bool blk0_header = true; bool win_deactivated = false; diff --git a/uppsrc/ide/ide.lay b/uppsrc/ide/ide.lay index 0ab100f47..7bc2ef079 100644 --- a/uppsrc/ide/ide.lay +++ b/uppsrc/ide/ide.lay @@ -644,12 +644,13 @@ LAYOUT(SetupIdeLayout, 512, 400) ITEM(Upp::EditIntSpin, hydra1_threads, Min(1).Max(64).LeftPosZ(120, 48).TopPosZ(188, 19)) ITEM(Upp::Label, dv___14, SetLabel(t_("GUI theme")).LeftPosZ(4, 112).TopPosZ(212, 19)) ITEM(Upp::DropList, chstyle, LeftPosZ(120, 144).TopPosZ(212, 19)) + ITEM(Upp::Option, wayland, SetLabel(t_("Use Wayland (experimental, needs restart)")).LeftPosZ(272, 408).TopPosZ(212, 20)) ITEM(Upp::Option, gui_font, SetLabel(t_("Override GUI font")).LeftPosZ(4, 112).TopPosZ(236, 19)) ITEM(Upp::DropList, face, LeftPosZ(120, 144).TopPosZ(236, 19)) ITEM(Upp::DropList, height, LeftPosZ(268, 50).TopPosZ(236, 19)) ITEM(Upp::Option, bold, SetLabel(t_("Bold")).LeftPosZ(322, 44).TopPosZ(236, 19)) ITEM(Upp::Option, italic, SetLabel(t_("Italic")).LeftPosZ(370, 44).TopPosZ(236, 19)) - ITEM(Upp::Label, dv___21, SetLabel(t_("(needs restart)")).LeftPosZ(416, 88).TopPosZ(236, 19)) + ITEM(Upp::Label, dv___22, SetLabel(t_("(needs restart)")).LeftPosZ(416, 88).TopPosZ(236, 19)) ITEM(Upp::Label, console_txt, SetLabel(t_("Console binary")).LeftPosZ(4, 112).TopPosZ(260, 19)) ITEM(Upp::EditString, console, LeftPosZ(120, 380).TopPosZ(260, 19)) ITEM(Upp::Button, xterm, SetLabel(t_("xterm")).LeftPosZ(120, 60).TopPosZ(284, 20)) @@ -659,13 +660,14 @@ LAYOUT(SetupIdeLayout, 512, 400) ITEM(Upp::Button, lxde, SetLabel(t_("LXDE")).LeftPosZ(376, 60).TopPosZ(284, 20)) ITEM(Upp::Button, xfce, SetLabel(t_("XFCE")).LeftPosZ(440, 60).TopPosZ(284, 20)) ITEM(Upp::Option, output_per_assembly, SetLabel(t_("Use unique output directory per assembly (append assembly name to output directory)")).HSizePosZ(4, 4).TopPosZ(308, 16)) - ITEM(Upp::Label, dv___31, SetLabel(t_("In editor mode, path for .usc files")).LeftPosZ(4, 192).TopPosZ(328, 20)) + ITEM(Upp::Label, dv___32, SetLabel(t_("In editor mode, path for .usc files")).LeftPosZ(4, 192).TopPosZ(328, 20)) ITEM(Upp::EditString, uscpath, HSizePosZ(172, 28).TopPosZ(328, 19)) ITEM(Upp::Button, uscpath_sel, RightPosZ(4, 20).TopPosZ(328, 19)) - ITEM(Upp::Label, dv___34, SetLabel(t_("Default UppHub folder")).LeftPosZ(4, 192).TopPosZ(352, 20)) + ITEM(Upp::Label, dv___35, SetLabel(t_("Default UppHub folder")).LeftPosZ(4, 192).TopPosZ(352, 20)) ITEM(Upp::EditString, upphub, HSizePosZ(172, 28).TopPosZ(352, 19)) ITEM(Upp::Button, upphub_sel, RightPosZ(4, 20).TopPosZ(352, 19)) - ITEM(Upp::Option, wayland, SetLabel(t_("Use Wayland (experimental, needs restart)")).LeftPosZ(4, 408).TopPosZ(376, 16)) + ITEM(Upp::Label, dv___36, SetLabel(t_("Additional valgrind options")).LeftPosZ(4, 164).TopPosZ(376, 19)) + ITEM(Upp::EditString, valgrind, LeftPosZ(172, 336).TopPosZ(376, 19)) END_LAYOUT LAYOUT(SetupWebSearchEngineLayout, 564, 84)