sl.setSurface(surface);
sl.setSurfaceOffset(10, 30 + 5);
sl.setDimensions(width - 20, height - 30 - 15 - 30);
+
+ Log::getInstance()->log("VRecordingList", Log::DEBUG, "this=%p parent=%p\n", this, myParent);
}
VRecordingList::~VRecordingList()
struct tm* btime;
Directory* dir;
- for (DirectoryList::iterator i = recDir->dirList.begin(); i != recDir->dirList.end(); i++)
+ DirectoryList::iterator i;
+
+ // First go through to delete 1 empty dir if necessary
+
+ for (i = recDir->dirList.begin(); i != recDir->dirList.end(); i++)
{
dir = *i;
if (dir->getNumRecordings() == 0)
{
recDir->dirList.erase(i);
- continue;
+ delete dir;
+ break;
}
+ }
- snprintf(tempA, 299, "<dir> %lu\t%s", dir->getNumRecordings(), dir->name);
+ // Then go through again to draw data. Don't merge these two loops!
+ for (i = recDir->dirList.begin(); i != recDir->dirList.end(); i++)
+ {
+ dir = *i;
+ snprintf(tempA, 299, "<dir> %lu\t%s", dir->getNumRecordings(), dir->name);
dir->index = sl.addOption(tempA, first);
first = 0;
}
if (m->message == Message::REDRAW_DATA)
{
dataInvalid = 1;
+ draw();
return;
}
}
{
saveIndex = toDelete->index;
saveTop = sl.getTopOption();
- Log::getInstance()->log("VRecordingList", Log::DEBUG, "FOUND: %i %s %s\n", toDelete->index, toDelete->getProgName(), toDelete->fileName);
+ Log::getInstance()->log("VRecordingList", Log::DEBUG, "FOUND: %i %s %s", toDelete->index, toDelete->getProgName(), toDelete->fileName);
for(RecordingList::iterator i = recDir->recList.begin(); i != recDir->recList.end(); i++)
{
if (*i == toDelete)
{
recDir->recList.erase(i);
- Log::getInstance()->log("VRecordingList", Log::DEBUG, "Removed from vector: %s %s\n", toDelete->getProgName(), toDelete->fileName);
+ Log::getInstance()->log("VRecordingList", Log::DEBUG, "Removed from vector: %s %s", toDelete->getProgName(), toDelete->fileName);
break;
}
}