: Args(std::move(args))
, InitialWidth(initWidth)
{
- this->HasNonStatusOutputs = false;
- this->NumberOfPages = 0;
- this->AdvancedMode = false;
- this->NumberOfVisibleEntries = 0;
- this->OkToGenerate = false;
this->HelpMessage.emplace_back(
"Welcome to ccmake, curses based user interface for CMake.");
this->HelpMessage.emplace_back();
cmStrCat(cmSystemTools::GetProgramPath(this->Args[0]), "/cmake");
this->Args[0] = whereCMake;
this->CMakeInstance->SetArgs(this->Args);
- this->SearchMode = false;
}
cmCursesMainForm::~cmCursesMainForm()
int entrywidth = this->InitialWidth - 35;
- if (count == 0) {
- // If cache is empty, display a label saying so and a
- // dummy entry widget (does not respond to input)
- cmCursesCacheEntryComposite comp("EMPTY CACHE", 30, 30);
- comp.Entry = cm::make_unique<cmCursesDummyWidget>(1, 1, 1, 1);
- newEntries.emplace_back(std::move(comp));
- } else {
+ // Add a label to display when cache is empty
+ // dummy entry widget (does not respond to input)
+ this->EmptyCacheEntry =
+ cm::make_unique<cmCursesCacheEntryComposite>("EMPTY CACHE", 30, 30);
+ this->EmptyCacheEntry->Entry =
+ cm::make_unique<cmCursesDummyWidget>(1, 1, 1, 1);
+
+ if (count > 0) {
// Create the composites.
// First add entries which are new
this->Fields.push_back(entry.Entry->Field);
}
// if no cache entries there should still be one dummy field
- if (this->Fields.empty()) {
- const auto& front = this->Entries.front();
- this->Fields.push_back(front.Label->Field);
- this->Fields.push_back(front.IsNewLabel->Field);
- this->Fields.push_back(front.Entry->Field);
+ this->IsEmpty = this->Fields.empty();
+ if (this->IsEmpty) {
+ this->Fields.push_back(this->EmptyCacheEntry->Label->Field);
+ this->Fields.push_back(this->EmptyCacheEntry->IsNewLabel->Field);
+ this->Fields.push_back(this->EmptyCacheEntry->Entry->Field);
this->NumberOfVisibleEntries = 1;
}
// Has to be null terminated.
}
}
// delete cache entry
- else if (key == 'd' && this->NumberOfVisibleEntries) {
+ else if (key == 'd' && this->NumberOfVisibleEntries && !this->IsEmpty) {
this->OkToGenerate = false;
FIELD* cur = current_field(this->Form);
size_t findex = field_index(cur);