Commit 354abb72 authored by Bill Hoffman's avatar Bill Hoffman
Browse files

ENH: fix it for working with an empty cache

parent 22f12322
......@@ -30,7 +30,8 @@ cmCursesCacheEntryComposite::cmCursesCacheEntryComposite(const char* key,
{
this->Label = new cmCursesLabelWidget(this->LabelWidth, 1, 1, 1, key);
this->IsNewLabel = new cmCursesLabelWidget(1, 1, 1, 1, " ");
this->Entry = 0;
this->Entry = 0;
this->Entry = new cmCursesStringWidget(this->EntryWidth, 1, 1, 1);
}
cmCursesCacheEntryComposite::cmCursesCacheEntryComposite(
......
......@@ -218,7 +218,6 @@ void cmCursesMainForm::RePost()
this->Form = 0;
}
delete[] this->Fields;
if (this->AdvancedMode)
{
this->NumberOfVisibleEntries = this->Entries->size();
......@@ -239,7 +238,11 @@ void cmCursesMainForm::RePost()
this->NumberOfVisibleEntries++;
}
}
// there is always one even if it is the dummy one
if(this->NumberOfVisibleEntries == 0)
{
this->NumberOfVisibleEntries = 1;
}
// Assign the fields: 3 for each entry: label, new entry marker
// ('*' or ' ') and entry widget
this->Fields = new FIELD*[3*this->NumberOfVisibleEntries+1];
......@@ -265,7 +268,15 @@ void cmCursesMainForm::RePost()
this->Fields[3*j+2] = (*it)->Entry->Field;
j++;
}
// if no cache entries there should still be one dummy field
if(j == 0)
{
it = this->Entries->begin();
this->Fields[0] = (*it)->Label->Field;
this->Fields[1] = (*it)->IsNewLabel->Field;
this->Fields[2] = (*it)->Entry->Field;
this->NumberOfVisibleEntries = 1;
}
// Has to be null terminated.
this->Fields[3*this->NumberOfVisibleEntries] = 0;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment