From 27d49f70f4b1cb80cc36203cb59fc682161255ae Mon Sep 17 00:00:00 2001 From: zhaohe Date: Tue, 26 Nov 2024 13:32:57 +0800 Subject: [PATCH] update --- usrc/uicontroler/base/page_processer.cpp | 3 +- usrc/uicontroler/base/page_processer.hpp | 22 ++++++++++---- usrc/uicontroler/page/mupage/muUsrMgr_page.cpp | 40 ++++++++++++++------------ usrc/uicontroler/page/popwin_page.cpp | 2 +- 4 files changed, 40 insertions(+), 27 deletions(-) diff --git a/usrc/uicontroler/base/page_processer.cpp b/usrc/uicontroler/base/page_processer.cpp index 51323e0..698629a 100644 --- a/usrc/uicontroler/base/page_processer.cpp +++ b/usrc/uicontroler/base/page_processer.cpp @@ -63,9 +63,10 @@ void UIControlerHock_PageInit() { for (size_t i = 0; i < m_pageNum; i++) { // ZLOGI(TAG, "initialize page %s %d", m_pages[i]->pageName, m_pages[i]->pageId); if (hasOnlyInitThis) { - if (m_pages[i]->onlyInitThis) { + if (m_pages[i]->onlyInitThis || m_pages[i]->forceInitThis) { m_pages[i]->initialize(); } + } else { m_pages[i]->initialize(); } diff --git a/usrc/uicontroler/base/page_processer.hpp b/usrc/uicontroler/base/page_processer.hpp index b94f20b..c9ce0c7 100644 --- a/usrc/uicontroler/base/page_processer.hpp +++ b/usrc/uicontroler/base/page_processer.hpp @@ -22,9 +22,10 @@ class OnPageLoadContext { class IPageProcesser { public: - uint32_t pageId = 0; - const char* pageName = "Not Set"; - bool onlyInitThis = false; // for debug + uint32_t pageId = 0; + const char* pageName = "Not Set"; + bool onlyInitThis = false; // for debug + bool forceInitThis = false; public: IPageProcesser(const char* name, uint32_t pageId); @@ -62,9 +63,18 @@ class IPageProcesser { } void visBySetAph(uint8_t bid, bool val) { UIControler::ins()->setAph(pageId, bid, val ? 127 : 0); } void visEx(uint8_t bid, bool val) { UIControler::ins()->visEx(pageId, bid, val); } - bool movePicToXY(uint8_t bid, int32_t x, int32_t y) { UIControler::ins()->movePicToXY(pageId, bid, x, y); return true; } - bool movePicTo(uint8_t bid, uint8_t toBid) { UIControler::ins()->movePicTo(pageId, bid, toBid); return true;} - bool movePicOutOfScreen(uint8_t bid) { UIControler::ins()->movePicOutOfScreen(pageId, bid); return true; } + bool movePicToXY(uint8_t bid, int32_t x, int32_t y) { + UIControler::ins()->movePicToXY(pageId, bid, x, y); + return true; + } + bool movePicTo(uint8_t bid, uint8_t toBid) { + UIControler::ins()->movePicTo(pageId, bid, toBid); + return true; + } + bool movePicOutOfScreen(uint8_t bid) { + UIControler::ins()->movePicOutOfScreen(pageId, bid); + return true; + } void popFullKeyBoard(uint8_t fromBid, int limitLength, const char* initval) { UIControler::ins()->popFullKeyBoard(pageId, fromBid, limitLength, initval); } void popPasswdKeyBoard(uint8_t fromBid, int limitLength) { UIControler::ins()->popPasswdKeyBoard(pageId, fromBid, limitLength); } diff --git a/usrc/uicontroler/page/mupage/muUsrMgr_page.cpp b/usrc/uicontroler/page/mupage/muUsrMgr_page.cpp index 4f252e8..6c91794 100644 --- a/usrc/uicontroler/page/mupage/muUsrMgr_page.cpp +++ b/usrc/uicontroler/page/mupage/muUsrMgr_page.cpp @@ -30,13 +30,14 @@ typedef struct { } UIUsrTableIterm; typedef struct { - bool enable; + bool enable; + + int usrId; int index; char name[32]; const UserRole* role; bool resetPasswd; - - bool editDirty; + bool editDirty; } EditContext_t; static UIUsrTableIterm m_uiUsrTable[MAX_USR_NUM] = { @@ -54,11 +55,11 @@ static void resetUiUsrTable() { for (int i = 0; i < MAX_USR_NUM; i++) { m_uiUsrTable[i].enable = false; m_uiUsrTable[i].role = nullptr; - m_uiUsrTable[i].usrId = 0; + m_uiUsrTable[i].usrId = -1; } } -static EditContext_t m_editContext = {false, -1, "", &UserRole::user, false, false}; +static EditContext_t m_editContext = {0}; class MuUsrMgr : public IPageProcesser { private: @@ -179,25 +180,25 @@ class MuUsrMgr : public IPageProcesser { UIControler::ins()->popWarningWin("用户数量已达上限"); return; } - UserDao::addUser(); fillUsrStateUICache(); syncUIUsrTableState(); + UIControler::ins()->popInfoWin("添加成功"); } void delUsr() { ZLOGI(TAG, "delUsr"); // 删除用户 do { - user_t* user = UserDao::getUserById(m_uiUsrTable[m_editContext.index].usrId); + user_t* user = UserDao::getUserById(m_editContext.usrId); if (user == nullptr) { - ZLOGE(TAG, "user not exist ,find by id %d", m_uiUsrTable[m_editContext.index].usrId); + ZLOGE(TAG, "user not exist ,find by id %d", m_editContext.usrId); UIControler::ins()->popWarningWin("用户不存在"); break; } if (user->builtIn) { - ZLOGE(TAG, "user is builtIn ,find by id %d", m_uiUsrTable[m_editContext.index].usrId); + ZLOGE(TAG, "user is builtIn ,find by id %d", m_editContext.usrId); UIControler::ins()->popWarningWin("内置管理员用户不能删除"); break; } @@ -209,15 +210,16 @@ class MuUsrMgr : public IPageProcesser { fillEditContext(-1); syncEditContext(); + UIControler::ins()->popInfoWin("删除成功"); } void saveUsr() { ZLOGI(TAG, "saveUsr"); // 保存 if (m_editContext.editDirty) { - user_t* user = UserDao::getUserById(m_uiUsrTable[m_editContext.index].usrId); + user_t* user = UserDao::getUserById(m_editContext.usrId); if (user == nullptr) { - ZLOGE(TAG, "user not exist ,find by id %d", m_uiUsrTable[m_editContext.index].usrId); + ZLOGE(TAG, "user not exist ,find by id %d", m_editContext.usrId); UIControler::ins()->popWarningWin("用户不存在"); return; } @@ -240,11 +242,10 @@ class MuUsrMgr : public IPageProcesser { fillUsrStateUICache(); syncUIUsrTableState(); - fillEditContext(m_editContext.index); syncEditContext(); } - UIControler::ins()->popWarningWin("保存成功"); + UIControler::ins()->popInfoWin("保存成功"); } /*********************************************************************************************************************** @@ -301,21 +302,22 @@ class MuUsrMgr : public IPageProcesser { } } - void fillEditContext(int index) { - if (index >= MAX_USR_NUM) { + void fillEditContext(int useroff) { + if (useroff >= MAX_USR_NUM) { return; } - if (index < 0) { + if (useroff < 0) { m_editContext.enable = false; return; } - m_editContext.index = index; - strcpy(m_editContext.name, m_uiUsrTable[index].userName); - m_editContext.role = m_uiUsrTable[index].role; + m_editContext.usrId = m_uiUsrTable[useroff].usrId; + strcpy(m_editContext.name, m_uiUsrTable[useroff].userName); + m_editContext.role = m_uiUsrTable[useroff].role; m_editContext.resetPasswd = false; m_editContext.editDirty = false; m_editContext.enable = true; + m_editContext.index = m_uiUsrTable[useroff].index; } /** diff --git a/usrc/uicontroler/page/popwin_page.cpp b/usrc/uicontroler/page/popwin_page.cpp index 4186e9b..d2901e2 100644 --- a/usrc/uicontroler/page/popwin_page.cpp +++ b/usrc/uicontroler/page/popwin_page.cpp @@ -16,7 +16,7 @@ class PopWinPage : public IPageProcesser { ZThread thread; public: - PopWinPage() : IPageProcesser(TAG, pg_popwin) {} + PopWinPage() : IPageProcesser(TAG, pg_popwin) { forceInitThis = true; } virtual void initialize() override { IPageProcesser::initialize();