U++: Issueshttps://www.ultimatepp.org/redmine/https://www.ultimatepp.org/redmine/redmine/favicon.ico2017-05-19T08:48:53ZRedmine
Redmine Bug #1727 (Approved): TreeCtrl Display bughttps://www.ultimatepp.org/redmine/issues/17272017-05-19T08:48:53Zcbpporter cbpporter
<p>Issue is describbed in forum post with compilable testcase:<br /><a class="external" href="http://www.ultimatepp.org/forums/index.php?t=msg&th=9996&start=0x%x">http://www.ultimatepp.org/forums/index.php?t=msg&th=9996&start=0x%x</a>%</p> Task #1652 (Approved): TheIDE Run dialog should be made sizeablehttps://www.ultimatepp.org/redmine/issues/16522017-03-01T07:39:39Zcbpporter cbpporter
<p>As the title says, the Run dialog is tiny and not sizeable. It is hard to introduce any real command line options.</p>
<p>Fix, in ide/Debug.cpp:<br /><pre>
void Ide::RunArgs() {
WithRunLayout<TopWindow> dlg;
CtrlLayoutOKCancel(dlg, "Run options");
dlg.Sizeable();
</pre></p>
<p>Fix in ide/ide.lay:<br /><pre>
LAYOUT(RunLayout, 600, 172)
ITEM(Label, dv___0, SetLabel(t_("&Program arguments:")).LeftPosZ(4, 112).TopPosZ(4, 19))
ITEM(WithDropChoice<EditString>, arg, HSizePosZ(120, 8).TopPosZ(4, 19))
ITEM(Label, dv___2, SetLabel(t_("&Working directory:")).LeftPosZ(4, 112).TopPosZ(28, 19))
ITEM(EditString, dir, HSizePosZ(120, 8).TopPosZ(28, 19))
ITEM(Label, stdout_file_lbl, SetLabel(t_("STDOUT file:")).LeftPosZ(4, 112).TopPosZ(52, 19))
ITEM(WithDropChoice<EditString>, stdout_file, LeftPosZ(120, 472).TopPosZ(52, 19))
ITEM(Label, dv___6, SetLabel(t_("Standard output:")).LeftPosZ(4, 112).TopPosZ(76, 19))
ITEM(Switch, runmode, SetLabel(t_("&Standalone\n&Console\n&File")).HSizePosZ(120, 272).TopPosZ(76, 19))
ITEM(Option, external, SetLabel(t_("&External application")).HSizePosZ(120, 272).TopPosZ(96, 15))
ITEM(Switch, consolemode, SetLabel(t_("Auto\nAlways\nNever")).HSizePosZ(120, 184).TopPosZ(116, 20))
ITEM(Button, ok, SetLabel(t_("OK")).RightPosZ(76, 64).BottomPosZ(8, 24))
ITEM(Button, cancel, SetLabel(t_("Cancel")).RightPosZ(8, 64).BottomPosZ(8, 24))
ITEM(Label, console_lable, SetLabel(t_("Open console:")).LeftPosZ(4, 112).TopPosZ(116, 20))
ITEM(Option, utf8, SetLabel(t_("Output is UTF-8")).LeftPosZ(328, 104).TopPosZ(76, 20))
END_LAYOUT
</pre></p>
<p>TODO: make the dialog remember its size and position from one open to another.</p> Feature #1601 (Approved): CParser nested comment supporthttps://www.ultimatepp.org/redmine/issues/16012017-01-03T11:33:41Zcbpporter cbpporterBug #1600 (Approved): CParser::IsNumber can return wrong resulthttps://www.ultimatepp.org/redmine/issues/16002017-01-03T11:24:27Zcbpporter cbpporter
<p>CParser::IsNumber takes a base parameter, so I interpreted the function as being designed as "is the contents of the stream in the parser a number using base XXX?".</p>
<p>If this assertion is true, IsNumber(8) on a stream with the contents "9 ..." will return true, which should be false.</p>
<p>Fix:</p>
<pre>
bool CParser::IsNumber(int base) const
{
if(IsDigit(*term)) {
int q = *term - '0';
return q >= 0 && q < base;
}
else {
int q = ToUpper(*term) - 'A';
return q >= 0 && q < base - 10;
}
}
</pre>
<p>The fix is a bit slower, but I doubt this will have real life impact.</p> Feature #1599 (Approved): Small addition to TabBarhttps://www.ultimatepp.org/redmine/issues/15992017-01-03T10:50:06Zcbpporter cbpporter
<p>When designing GUIs, a lot of small frames and spacing is used for aesthetics.</p>
<p>You often create a "border" of indents around some GUI element to highlight it. The border I'm designing is broken by TabCtrl's scrollbar.</p>
<p>With TabBar::AddFrameToScroolBar:<br /><pre>
void AddFrameToScroolBar(CtrlFrame& fr) { sc.AddFrame(fr); }
</pre><br />one can shift the scrollbar around and add borders to it.</p>
<p>Very minor issue, the difference is only a few pixels, but aesthetics is aesthetics...</p> Bug #1598 (Approved): TabBar middle mouse tab close bughttps://www.ultimatepp.org/redmine/issues/15982017-01-03T10:40:51Zcbpporter cbpporter
<p>Using the middle mouse in TabCtrl closes a tab, as expected.</p>
<p>But, tab closing + CancelCloseis often used for prompt ("Are you sure you want to close the file?").</p>
<p>If the callbacks are used to prompt the user with a GUI, the mouse movements of the user will inadvertently change the highlight that TabCtrl thinks it has and the highlight will be different before the prompt and after.</p>
<p>Fix with comments detailing issue:</p>
<pre>
void TabBar::MiddleDown(Point p, dword keyflags)
{
if (highlight >= 0)
{
Value v = tabs[highlight].key;
ValueArray vv;
vv.Add(v);
// highlight has some value here
int highlightBack = highlight;
if (!CancelClose(v) && ! CancelCloseSome(vv)) {
// highlight can be changed by the prompt. When reading "v", it can be invalid. I use the value from before the prompt to fix it
Value v = tabs[highlightBack].key;
// 2014/03/06 - FIRST the callbacks, THEN remove the tab
// otherwise keys in WhenCloseSome() are invalid
WhenClose(v);
WhenCloseSome(vv);
TabClosed(v);
Close(highlightBack);
}
}
}
</pre>
<p>Without fix: can crash.</p>