From add677ac17e23cb4ea103762f29b3bf2b9b26095 Mon Sep 17 00:00:00 2001 From: msharov Date: Tue, 3 Oct 2006 17:59:46 +0000 Subject: [PATCH] Moved all document-related commands into the document --- elist.cc | 33 ++------------------------------ tddoc.cc | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 54 insertions(+), 45 deletions(-) diff --git a/elist.cc b/elist.cc index 89335be..3beae6d 100644 --- a/elist.cc +++ b/elist.cc @@ -95,22 +95,10 @@ void CTodoList::OnCommand (cmd_t c) CListbox::OnCommand (c); pdoc_t pDoc = Document(); switch (c) { - case cmd_List_Leave: pDoc->LeaveCurrentEntry(); break; - case cmd_List_OldItems: pDoc->ToggleCompleteVisible(); break; - case cmd_List_Paste: pDoc->PasteLinkToEntry (m_CopiedId); break; - case cmd_List_Enter: pDoc->EnterCurrentEntry(); break; - case cmd_Item_Delete: pDoc->RemoveCurrentEntry(); break; - case cmd_Item_Complete: pDoc->MarkEntryComplete(); break; case cmd_Item_New: pDoc->AppendEntry(); case cmd_Item_Edit: EditEntry(); break; case cmd_List_Copy: m_CopiedId = pDoc->CurrentEntry().Id(); break; - case cmd_Item_Priority_Highest: - case cmd_Item_Priority_High: - case cmd_Item_Priority_Medium: - case cmd_Item_Priority_Low: - case cmd_Item_Priority_Lowest: - pDoc->SetCurrentEntryPriority (CTodoEntry::EPriority (c - cmd_Item_Priority_Highest + 1)); - break; + case cmd_List_Paste: pDoc->PasteLinkToEntry (m_CopiedId); break; }; } @@ -118,31 +106,14 @@ void CTodoList::OnUpdateCommandUI (rcmd_t rc) const { CListbox::OnUpdateCommandUI (rc); pcdoc_t pDoc = Document(); - assert (pDoc && "The frame should stop UpdateCommandUI if there is no document"); const bool bHaveSelection (pDoc->Selection() < pDoc->ListSize()); const bool bReadOnly (Flag (f_ReadOnly)); bool bActive = true; switch (rc.cmd) { - case cmd_List_Leave: bActive = pDoc->NestingDepth(); break; - case cmd_List_OldItems: - rc.SetFlag (SCmd::cf_Checked, pDoc->Flag (CTodoDocument::f_CompleteVisible)); - break; - case cmd_List_Paste: bActive = !bReadOnly && m_CopiedId; break; case cmd_Item_New: break; - case cmd_List_Enter: bActive = bHaveSelection; break; - case cmd_Item_Delete: bActive = bHaveSelection && !bReadOnly; break; - case cmd_Item_Complete: bActive = bHaveSelection && !bReadOnly; break; case cmd_Item_Edit: bActive = bHaveSelection && !bReadOnly; break; case cmd_List_Copy: bActive = bHaveSelection; break; - case cmd_Item_Priority: bActive = bHaveSelection; break; - case cmd_Item_Priority_Highest: - case cmd_Item_Priority_High: - case cmd_Item_Priority_Medium: - case cmd_Item_Priority_Low: - case cmd_Item_Priority_Lowest: - bActive = bHaveSelection && !bReadOnly; - rc.SetFlag (SCmd::cf_Checked, rc.cmd == pDoc->CurrentEntry().Priority() + cmd_Item_Priority_Highest - 1); - break; + case cmd_List_Paste: bActive = !bReadOnly && m_CopiedId; break; default: bActive = !(rc.flags & SCmd::cf_Grayed); break; diff --git a/tddoc.cc b/tddoc.cc index de180a2..412c0de 100644 --- a/tddoc.cc +++ b/tddoc.cc @@ -445,24 +445,62 @@ void CTodoDocument::UpdateCompleteStatus (itemid_t dep) /// Executes command \p c. void CTodoDocument::OnCommand (cmd_t c) { - if (c == cmd_File_Save) - Save(); - else if (c == cmd_File_Quit) { - if (Flag (CDocument::f_Changed)) { - int rv = MessageBox ("There are unsaved changes. Save now?", MB_YesNoCancel); - if (rv == mbrv_Cancel) - return; - else if (rv != mbrv_No) - Save(); - } - CRootWindow::Instance().Close(); - } + CDocument::OnCommand (c); + switch (c) { + case cmd_Item_Complete: MarkEntryComplete(); break; + case cmd_List_Leave: LeaveCurrentEntry(); break; + case cmd_List_Enter: EnterCurrentEntry(); break; + case cmd_List_OldItems: ToggleCompleteVisible(); break; + case cmd_Item_Delete: RemoveCurrentEntry(); break; + case cmd_File_Save: Save(); break; + case cmd_Item_Priority_Highest: + case cmd_Item_Priority_High: + case cmd_Item_Priority_Medium: + case cmd_Item_Priority_Low: + case cmd_Item_Priority_Lowest: + SetCurrentEntryPriority (CTodoEntry::EPriority (c - cmd_Item_Priority_Highest + 1)); + break; + case cmd_File_Quit: + if (Flag (f_Changed)) { + int rv = MessageBox ("There are unsaved changes. Save now?", MB_YesNoCancel); + if (rv == mbrv_Cancel) + return; + else if (rv != mbrv_No) + Save(); + } + CRootWindow::Instance().Close(); + break; + }; } /// Updates visible flags of command \p rc. void CTodoDocument::OnUpdateCommandUI (rcmd_t rc) const { - if (rc.cmd == cmd_File_Save) - rc.SetFlag (SCmd::cf_Grayed, !Flag(f_Changed) || Flag(f_ReadOnly)); + CDocument::OnUpdateCommandUI (rc); + const bool bHaveSelection (Selection() < ListSize()); + const bool bReadOnly (Flag (f_ReadOnly)); + bool bActive = true; + switch (rc.cmd) { + case cmd_File_Save: bActive = !bReadOnly && Flag(f_Changed);break; + case cmd_List_Leave: bActive = NestingDepth(); break; + case cmd_List_OldItems: + rc.SetFlag (SCmd::cf_Checked, Flag (f_CompleteVisible)); break; + case cmd_List_Enter: bActive = bHaveSelection; break; + case cmd_Item_Delete: bActive = bHaveSelection && !bReadOnly; break; + case cmd_Item_Complete: bActive = bHaveSelection && !bReadOnly; break; + case cmd_Item_Priority: bActive = bHaveSelection; break; + case cmd_Item_Priority_Highest: + case cmd_Item_Priority_High: + case cmd_Item_Priority_Medium: + case cmd_Item_Priority_Low: + case cmd_Item_Priority_Lowest: + bActive = bHaveSelection && !bReadOnly; + rc.SetFlag (SCmd::cf_Checked, rc.cmd == CurrentEntry().Priority() + cmd_Item_Priority_Highest - 1); + break; + default: + bActive = !(rc.flags & SCmd::cf_Grayed); + break; + }; + rc.SetFlag (SCmd::cf_Grayed, !bActive); } -- 2.11.4.GIT