From c20b0b8de452b3cdc69354bf4e4cf6ab39933cb4 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Mon, 6 Jun 2016 20:16:11 +0200 Subject: [PATCH] [Horus] MODEL SELECT screen continued --- radio/src/storage/modelslist.h | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/radio/src/storage/modelslist.h b/radio/src/storage/modelslist.h index 55fbe59f6..b6e57a548 100644 --- a/radio/src/storage/modelslist.h +++ b/radio/src/storage/modelslist.h @@ -47,7 +47,7 @@ class ModelCell char timer[LEN_TIMER_STRING]; buffer.drawSizedText(5, 2, header.name, LEN_MODEL_NAME, ZCHAR|TEXT_COLOR); getTimerString(timer, 0); - buffer.drawText(104, 41, timer, TEXT_COLOR); + buffer.drawText(101, 40, timer, TEXT_COLOR); for (int i=0; i<4; i++) { buffer.drawBitmapPattern(104+i*11, 25, LBM_SCORE0, TITLE_BGCOLOR); } @@ -76,7 +76,6 @@ class ModelsCategory: public std::list strncpy(this->name, name, sizeof(this->name)); } - ModelCell * addModel(const char * name) { ModelCell * result = new ModelCell(name); @@ -123,11 +122,14 @@ class ModelsList delete *it; } categories.clear(); + currentCategory = NULL; + currentModel = NULL; } bool load() { char line[LEN_MODEL_FILENAME+1]; + ModelsCategory * category = NULL; clear(); @@ -140,12 +142,16 @@ class ModelsList int len = strlen(line); // TODO could be returned by readNextLine if (len > 2 && line[0] == '[' && line[len-1] == ']') { line[len-1] = '\0'; - currentCategory = new ModelsCategory(&line[1]); - categories.push_back(currentCategory); + category = new ModelsCategory(&line[1]); + categories.push_back(category); } - else if (len > 0) { + else if (category && len > 0) { ModelCell * model = new ModelCell(line); - currentCategory->push_back(model); + category->push_back(model); + if (!strncmp(line, g_eeGeneral.currModelFilename, LEN_MODEL_FILENAME)) { + currentCategory = category; + currentModel = model; + } } } @@ -219,12 +225,11 @@ class ModelsList } std::list categories; + ModelsCategory * currentCategory; + ModelCell * currentModel; protected: FIL file; - ModelsCategory * currentCategory; - }; #endif // _MODELSLIST_H_ -