From 354abb72d9de0fbcf7e02bc0aeb32f919b19ccac Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Fri, 7 Mar 2008 16:32:09 -0500 Subject: [PATCH] ENH: fix it for working with an empty cache --- .../cmCursesCacheEntryComposite.cxx | 3 ++- Source/CursesDialog/cmCursesMainForm.cxx | 17 ++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Source/CursesDialog/cmCursesCacheEntryComposite.cxx b/Source/CursesDialog/cmCursesCacheEntryComposite.cxx index 3a43f3ebc..c458ce514 100644 --- a/Source/CursesDialog/cmCursesCacheEntryComposite.cxx +++ b/Source/CursesDialog/cmCursesCacheEntryComposite.cxx @@ -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( diff --git a/Source/CursesDialog/cmCursesMainForm.cxx b/Source/CursesDialog/cmCursesMainForm.cxx index 01ab275b0..89462382c 100644 --- a/Source/CursesDialog/cmCursesMainForm.cxx +++ b/Source/CursesDialog/cmCursesMainForm.cxx @@ -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; }