|
| |
37 |
37 |
|
|
|
| |
38 |
38 |
namespace |
|
|
| |
39 |
39 |
{ |
|
| |
40 |
|
template<class RuleList> |
|
|
| |
41 |
|
void OnUpButton(RuleEditDlg* pDlg, CListCtrl& ctlList, RuleList& ruleList, std::function<void(RuleEditDlg*)> reloadList) |
|
|
| |
|
40 |
int GetSelectedIndex(CListCtrl& ctlList) |
|
|
| |
42 |
41 |
{ |
|
|
| |
43 |
42 |
POSITION pos = ctlList.GetFirstSelectedItemPosition(); |
|
|
| |
44 |
43 |
if(pos == nullptr) |
|
| |
45 |
|
return; |
|
|
| |
|
44 |
return -1; |
|
|
| |
46 |
45 |
|
|
|
| |
47 |
46 |
int iItem = ctlList.GetNextSelectedItem(pos); |
|
| |
|
47 |
return iItem; |
|
|
| |
|
48 |
} |
|
|
| |
|
49 |
|
|
|
| |
|
50 |
template<class RuleList> |
|
|
| |
|
51 |
void OnUpButton(RuleEditDlg* pDlg, CListCtrl& ctlList, RuleList& ruleList, std::function<void(RuleEditDlg*)> reloadList) |
|
|
| |
|
52 |
{ |
|
|
| |
|
53 |
int iItem = GetSelectedIndex(ctlList); |
|
|
| |
48 |
54 |
if(iItem < 1) |
|
|
| |
49 |
55 |
return; |
|
|
| |
50 |
56 |
|
| |
|
|
| |
65 |
71 |
template<class RuleList> |
|
|
| |
66 |
72 |
void OnDownButton(RuleEditDlg* pDlg, CListCtrl& ctlList, RuleList& ruleList, std::function<void(RuleEditDlg*)> reloadList) |
|
|
| |
67 |
73 |
{ |
|
| |
68 |
|
POSITION pos = ctlList.GetFirstSelectedItemPosition(); |
|
|
| |
69 |
|
if(pos == nullptr) |
|
|
| |
70 |
|
return; |
|
|
| |
71 |
|
|
|
|
| |
72 |
|
int iItem = ctlList.GetNextSelectedItem(pos); |
|
|
| |
|
74 |
int iItem = GetSelectedIndex(ctlList); |
|
|
| |
73 |
75 |
if(iItem < 0 || iItem + 1 >= ctlList.GetItemCount()) |
|
|
| |
74 |
76 |
return; |
|
|
| |
75 |
77 |
|
| |
|
|
| |
90 |
92 |
template<class RuleList> |
|
|
| |
91 |
93 |
void OnRemoveButton(CListCtrl& ctlList, RuleList& ruleList) |
|
|
| |
92 |
94 |
{ |
|
| |
93 |
|
POSITION pos = ctlList.GetFirstSelectedItemPosition(); |
|
|
| |
94 |
|
if(pos == nullptr) |
|
|
| |
95 |
|
return; |
|
|
| |
96 |
|
|
|
|
| |
97 |
|
int iItem = ctlList.GetNextSelectedItem(pos); |
|
|
| |
|
95 |
int iItem = GetSelectedIndex(ctlList); |
|
|
| |
98 |
96 |
if(iItem < 0) |
|
|
| |
99 |
97 |
return; |
|
|
| |
100 |
98 |
|
| |
|
|
| |
138 |
136 |
ON_BN_CLICKED(IDC_NOT_ENOUGH_SPACE_UP_BUTTON, OnNotEnoughSpaceUpButton) |
|
|
| |
139 |
137 |
ON_BN_CLICKED(IDC_NOT_ENOUGH_SPACE_DOWN_BUTTON, OnNotEnoughSpaceDownButton) |
|
|
| |
140 |
138 |
|
|
| |
|
139 |
ON_NOTIFY(LVN_ITEMCHANGED, IDC_FILE_ALREADY_EXISTS_RULES_LIST, OnAlreadyExistsItemChanged) |
|
|
| |
|
140 |
ON_NOTIFY(LVN_ITEMCHANGED, IDC_FILE_ERROR_RULES_LIST, OnErrorItemChanged) |
|
|
| |
|
141 |
ON_NOTIFY(LVN_ITEMCHANGED, IDC_NOT_ENOUGH_SPACE_RULES_LIST, OnNotEnoughSpaceItemChanged) |
|
|
| |
|
142 |
|
|
|
| |
141 |
143 |
ON_NOTIFY(NM_DBLCLK, IDC_FILE_ALREADY_EXISTS_RULES_LIST, OnDblclkAlreadyExistsList) |
|
|
| |
142 |
144 |
ON_NOTIFY(NM_DBLCLK, IDC_FILE_ERROR_RULES_LIST, OnDblclkErrorList) |
|
|
| |
143 |
145 |
ON_NOTIFY(NM_DBLCLK, IDC_NOT_ENOUGH_SPACE_RULES_LIST, OnDblclkNotEnoughSpaceList) |
| |
|
|
| |
198 |
200 |
FillErrorList(); |
|
|
| |
199 |
201 |
FillNotEnoughSpaceList(); |
|
|
| |
200 |
202 |
|
|
| |
|
203 |
EnableControls(); |
|
|
| |
|
204 |
|
|
|
| |
201 |
205 |
UpdateData(FALSE); |
|
|
| |
202 |
206 |
|
|
|
| |
203 |
207 |
return TRUE; |
| |
|
|
| |
595 |
599 |
FillAlreadyExistsList(); |
|
|
| |
596 |
600 |
FillErrorList(); |
|
|
| |
597 |
601 |
FillNotEnoughSpaceList(); |
|
| |
|
602 |
|
|
|
| |
|
603 |
EnableControls(); |
|
|
| |
598 |
604 |
} |
|
|
| |
599 |
605 |
|
|
|
| |
600 |
606 |
void RuleEditDlg::OnOK() |
| |
|
|
| |
604 |
610 |
CLanguageDialog::OnOK(); |
|
|
| |
605 |
611 |
} |
|
|
| |
606 |
612 |
|
|
| |
|
613 |
void RuleEditDlg::EnableControls() |
|
|
| |
|
614 |
{ |
|
|
| |
|
615 |
EnableAlreadyExistsControls(); |
|
|
| |
|
616 |
EnableErrorControls(); |
|
|
| |
|
617 |
EnableNotEnoughSpaceControls(); |
|
|
| |
|
618 |
} |
|
|
| |
|
619 |
|
|
|
| |
|
620 |
void RuleEditDlg::EnableAlreadyExistsControls() |
|
|
| |
|
621 |
{ |
|
|
| |
|
622 |
int iCurrentSel = GetSelectedIndex(m_ctlAlreadyExistsRulesList); |
|
|
| |
|
623 |
GetDlgItem(IDC_ALREADY_EXISTS_UP_BUTTON)->EnableWindow(iCurrentSel > 0); |
|
|
| |
|
624 |
GetDlgItem(IDC_ALREADY_EXISTS_DOWN_BUTTON)->EnableWindow(iCurrentSel >= 0 && iCurrentSel + 1 < m_ctlAlreadyExistsRulesList.GetItemCount()); |
|
|
| |
|
625 |
GetDlgItem(IDC_ALREADY_EXISTS_CHANGE_BUTTON)->EnableWindow(iCurrentSel >= 0); |
|
|
| |
|
626 |
GetDlgItem(IDC_ALREADY_EXISTS_REMOVE_BUTTON)->EnableWindow(iCurrentSel >= 0); |
|
|
| |
|
627 |
} |
|
|
| |
|
628 |
|
|
|
| |
|
629 |
void RuleEditDlg::EnableErrorControls() |
|
|
| |
|
630 |
{ |
|
|
| |
|
631 |
int iCurrentSel = GetSelectedIndex(m_ctlErrorRulesList); |
|
|
| |
|
632 |
GetDlgItem(IDC_FILE_ERROR_UP_BUTTON)->EnableWindow(iCurrentSel > 0); |
|
|
| |
|
633 |
GetDlgItem(IDC_FILE_ERROR_DOWN_BUTTON)->EnableWindow(iCurrentSel >= 0 && iCurrentSel + 1 < m_ctlErrorRulesList.GetItemCount()); |
|
|
| |
|
634 |
GetDlgItem(IDC_FILE_ERROR_CHANGE_BUTTON)->EnableWindow(iCurrentSel >= 0); |
|
|
| |
|
635 |
GetDlgItem(IDC_FILE_ERROR_REMOVE_BUTTON)->EnableWindow(iCurrentSel >= 0); |
|
|
| |
|
636 |
} |
|
|
| |
|
637 |
|
|
|
| |
|
638 |
void RuleEditDlg::EnableNotEnoughSpaceControls() |
|
|
| |
|
639 |
{ |
|
|
| |
|
640 |
int iCurrentSel = GetSelectedIndex(m_ctlNotEnoughSpaceRulesList); |
|
|
| |
|
641 |
GetDlgItem(IDC_NOT_ENOUGH_SPACE_UP_BUTTON)->EnableWindow(iCurrentSel > 0); |
|
|
| |
|
642 |
GetDlgItem(IDC_NOT_ENOUGH_SPACE_DOWN_BUTTON)->EnableWindow(iCurrentSel >= 0 && iCurrentSel + 1 < m_ctlNotEnoughSpaceRulesList.GetItemCount()); |
|
|
| |
|
643 |
GetDlgItem(IDC_NOT_ENOUGH_SPACE_CHANGE_BUTTON)->EnableWindow(iCurrentSel >= 0); |
|
|
| |
|
644 |
GetDlgItem(IDC_NOT_ENOUGH_SPACE_REMOVE_BUTTON)->EnableWindow(iCurrentSel >= 0); |
|
|
| |
|
645 |
} |
|
|
| |
|
646 |
|
|
|
| |
|
647 |
void RuleEditDlg::OnAlreadyExistsItemChanged(NMHDR* , LRESULT* ) |
|
|
| |
|
648 |
{ |
|
|
| |
|
649 |
EnableAlreadyExistsControls(); |
|
|
| |
|
650 |
} |
|
|
| |
|
651 |
|
|
|
| |
|
652 |
void RuleEditDlg::OnErrorItemChanged(NMHDR* , LRESULT* ) |
|
|
| |
|
653 |
{ |
|
|
| |
|
654 |
EnableErrorControls(); |
|
|
| |
|
655 |
} |
|
|
| |
|
656 |
|
|
|
| |
|
657 |
void RuleEditDlg::OnNotEnoughSpaceItemChanged(NMHDR* , LRESULT* ) |
|
|
| |
|
658 |
{ |
|
|
| |
|
659 |
EnableNotEnoughSpaceControls(); |
|
|
| |
|
660 |
} |
|
|
| |
|
661 |
|
|
|
| |
607 |
662 |
void RuleEditDlg::OnDblclkAlreadyExistsList(NMHDR* , LRESULT* pResult) |
|
|
| |
608 |
663 |
{ |
|
| |
609 |
|
OnAlreadyExistsChangeButton(); |
|
|
| |
|
664 |
int iItem = GetSelectedIndex(m_ctlAlreadyExistsRulesList); |
|
|
| |
|
665 |
if(iItem < 0) |
|
|
| |
|
666 |
OnAlreadyExistsAddButton(); |
|
|
| |
|
667 |
else |
|
|
| |
|
668 |
OnAlreadyExistsChangeButton(); |
|
|
| |
610 |
669 |
*pResult = 0; |
|
|
| |
611 |
670 |
} |
|
|
| |
612 |
671 |
|
|
|
| |
613 |
672 |
void RuleEditDlg::OnAlreadyExistsChangeButton() |
|
|
| |
614 |
673 |
{ |
|
| |
615 |
|
POSITION pos = m_ctlAlreadyExistsRulesList.GetFirstSelectedItemPosition(); |
|
|
| |
616 |
|
if(pos != nullptr) |
|
|
| |
617 |
|
{ |
|
|
| |
618 |
|
FeedbackAlreadyExistsRuleList& rRules = m_rules.GetAlreadyExistsRules(); |
|
|
| |
|
674 |
int iItem = GetSelectedIndex(m_ctlAlreadyExistsRulesList); |
|
|
| |
|
675 |
if(iItem < 0) |
|
|
| |
|
676 |
return; |
|
|
| |
619 |
677 |
|
|
| |
620 |
|
int iItem = m_ctlAlreadyExistsRulesList.GetNextSelectedItem(pos); |
|
|
| |
621 |
|
if(iItem < 0) |
|
|
| |
622 |
|
return; |
|
|
| |
|
678 |
FeedbackAlreadyExistsRuleList& rRules = m_rules.GetAlreadyExistsRules(); |
|
|
| |
|
679 |
auto& rRule = rRules.GetAt(iItem); |
|
|
| |
623 |
680 |
|
|
| |
624 |
|
auto& rRule = rRules.GetAt(iItem); |
|
|
| |
|
681 |
RuleEditAlreadyExistsDlg dlg(rRule); |
|
|
| |
|
682 |
if(dlg.DoModal() == IDOK) |
|
|
| |
|
683 |
{ |
|
|
| |
|
684 |
|
|
|
| |
|
685 |
m_ctlAlreadyExistsRulesList.DeleteItem(iItem); |
|
|
| |
625 |
686 |
|
|
| |
626 |
|
RuleEditAlreadyExistsDlg dlg(rRule); |
|
|
| |
627 |
|
if(dlg.DoModal() == IDOK) |
|
|
| |
628 |
|
{ |
|
|
| |
629 |
|
|
|
|
| |
630 |
|
m_ctlAlreadyExistsRulesList.DeleteItem(iItem); |
|
|
| |
631 |
|
|
|
|
| |
632 |
|
rRule = dlg.GetRule(); |
|
|
| |
633 |
|
AddAlreadyExistsRule(rRule, iItem); |
|
|
| |
634 |
|
} |
|
|
| |
|
687 |
rRule = dlg.GetRule(); |
|
|
| |
|
688 |
AddAlreadyExistsRule(rRule, iItem); |
|
|
| |
635 |
689 |
} |
|
| |
|
690 |
|
|
|
| |
|
691 |
EnableAlreadyExistsControls(); |
|
|
| |
636 |
692 |
} |
|
|
| |
637 |
693 |
|
|
|
| |
638 |
694 |
void RuleEditDlg::OnAlreadyExistsAddButton() |
| |
|
|
| |
646 |
702 |
m_rules.GetAlreadyExistsRules().Add(rRule); |
|
|
| |
647 |
703 |
AddAlreadyExistsRule(rRule, -1); |
|
|
| |
648 |
704 |
} |
|
| |
|
705 |
EnableAlreadyExistsControls(); |
|
|
| |
649 |
706 |
} |
|
|
| |
650 |
707 |
|
|
|
| |
651 |
708 |
void RuleEditDlg::OnAlreadyExistsRemoveButton() |
|
|
| |
652 |
709 |
{ |
|
|
| |
653 |
710 |
OnRemoveButton(m_ctlAlreadyExistsRulesList, m_rules.GetAlreadyExistsRules()); |
|
| |
|
711 |
EnableAlreadyExistsControls(); |
|
|
| |
654 |
712 |
} |
|
|
| |
655 |
713 |
|
|
|
| |
656 |
714 |
void RuleEditDlg::OnAlreadyExistsUpButton() |
|
|
| |
657 |
715 |
{ |
|
|
| |
658 |
716 |
OnUpButton(this, m_ctlAlreadyExistsRulesList, m_rules.GetAlreadyExistsRules(), &RuleEditDlg::FillAlreadyExistsList); |
|
| |
|
717 |
EnableAlreadyExistsControls(); |
|
|
| |
659 |
718 |
} |
|
|
| |
660 |
719 |
|
|
|
| |
661 |
720 |
void RuleEditDlg::OnAlreadyExistsDownButton() |
|
|
| |
662 |
721 |
{ |
|
|
| |
663 |
722 |
OnDownButton(this, m_ctlAlreadyExistsRulesList, m_rules.GetAlreadyExistsRules(), &RuleEditDlg::FillAlreadyExistsList); |
|
| |
|
723 |
EnableAlreadyExistsControls(); |
|
|
| |
664 |
724 |
} |
|
|
| |
665 |
725 |
|
|
|
| |
666 |
726 |
void RuleEditDlg::OnDblclkErrorList(NMHDR* , LRESULT* pResult) |
|
|
| |
667 |
727 |
{ |
|
| |
668 |
|
OnErrorChangeButton(); |
|
|
| |
|
728 |
int iItem = GetSelectedIndex(m_ctlAlreadyExistsRulesList); |
|
|
| |
|
729 |
if(iItem < 0) |
|
|
| |
|
730 |
OnErrorAddButton(); |
|
|
| |
|
731 |
else |
|
|
| |
|
732 |
OnErrorChangeButton(); |
|
|
| |
669 |
733 |
*pResult = 0; |
|
|
| |
670 |
734 |
} |
|
|
| |
671 |
735 |
|
| |
|
|
| |
692 |
756 |
AddErrorRule(rRule, iItem); |
|
|
| |
693 |
757 |
} |
|
|
| |
694 |
758 |
} |
|
| |
|
759 |
EnableErrorControls(); |
|
|
| |
695 |
760 |
} |
|
|
| |
696 |
761 |
|
|
|
| |
697 |
762 |
void RuleEditDlg::OnErrorAddButton() |
| |
|
|
| |
705 |
770 |
m_rules.GetErrorRules().Add(rRule); |
|
|
| |
706 |
771 |
AddErrorRule(rRule, -1); |
|
|
| |
707 |
772 |
} |
|
| |
|
773 |
EnableErrorControls(); |
|
|
| |
708 |
774 |
} |
|
|
| |
709 |
775 |
|
|
|
| |
710 |
776 |
void RuleEditDlg::OnErrorRemoveButton() |
|
|
| |
711 |
777 |
{ |
|
|
| |
712 |
778 |
OnRemoveButton(m_ctlErrorRulesList, m_rules.GetErrorRules()); |
|
| |
|
779 |
EnableErrorControls(); |
|
|
| |
713 |
780 |
} |
|
|
| |
714 |
781 |
|
|
|
| |
715 |
782 |
void RuleEditDlg::OnErrorUpButton() |
|
|
| |
716 |
783 |
{ |
|
|
| |
717 |
784 |
OnUpButton(this, m_ctlErrorRulesList, m_rules.GetErrorRules(), &RuleEditDlg::FillErrorList); |
|
| |
|
785 |
EnableErrorControls(); |
|
|
| |
718 |
786 |
} |
|
|
| |
719 |
787 |
|
|
|
| |
720 |
788 |
void RuleEditDlg::OnErrorDownButton() |
|
|
| |
721 |
789 |
{ |
|
|
| |
722 |
790 |
OnDownButton(this, m_ctlErrorRulesList, m_rules.GetErrorRules(), &RuleEditDlg::FillErrorList); |
|
| |
|
791 |
EnableErrorControls(); |
|
|
| |
723 |
792 |
} |
|
|
| |
724 |
793 |
|
|
|
| |
725 |
794 |
void RuleEditDlg::OnDblclkNotEnoughSpaceList(NMHDR* , LRESULT* pResult) |
|
|
| |
726 |
795 |
{ |
|
| |
727 |
|
OnNotEnoughSpaceChangeButton(); |
|
|
| |
|
796 |
int iItem = GetSelectedIndex(m_ctlAlreadyExistsRulesList); |
|
|
| |
|
797 |
if(iItem < 0) |
|
|
| |
|
798 |
OnNotEnoughSpaceAddButton(); |
|
|
| |
|
799 |
else |
|
|
| |
|
800 |
OnNotEnoughSpaceChangeButton(); |
|
|
| |
728 |
801 |
*pResult = 0; |
|
|
| |
729 |
802 |
} |
|
|
| |
730 |
803 |
|
| |
|
|
| |
751 |
824 |
AddNotEnoughSpaceRule(rRule, iItem); |
|
|
| |
752 |
825 |
} |
|
|
| |
753 |
826 |
} |
|
| |
|
827 |
EnableNotEnoughSpaceControls(); |
|
|
| |
754 |
828 |
} |
|
|
| |
755 |
829 |
|
|
|
| |
756 |
830 |
void RuleEditDlg::OnNotEnoughSpaceAddButton() |
| |
|
|
| |
764 |
838 |
m_rules.GetNotEnoughSpaceRules().Add(rRule); |
|
|
| |
765 |
839 |
AddNotEnoughSpaceRule(rRule, -1); |
|
|
| |
766 |
840 |
} |
|
| |
|
841 |
EnableNotEnoughSpaceControls(); |
|
|
| |
767 |
842 |
} |
|
|
| |
768 |
843 |
|
|
|
| |
769 |
844 |
void RuleEditDlg::OnNotEnoughSpaceRemoveButton() |
|
|
| |
770 |
845 |
{ |
|
|
| |
771 |
846 |
OnRemoveButton(m_ctlNotEnoughSpaceRulesList, m_rules.GetNotEnoughSpaceRules()); |
|
| |
|
847 |
EnableNotEnoughSpaceControls(); |
|
|
| |
772 |
848 |
} |
|
|
| |
773 |
849 |
|
|
|
| |
774 |
850 |
void RuleEditDlg::OnNotEnoughSpaceUpButton() |
|
|
| |
775 |
851 |
{ |
|
|
| |
776 |
852 |
OnUpButton(this, m_ctlNotEnoughSpaceRulesList, m_rules.GetNotEnoughSpaceRules(), &RuleEditDlg::FillNotEnoughSpaceList); |
|
| |
|
853 |
EnableNotEnoughSpaceControls(); |
|
|
| |
777 |
854 |
} |
|
|
| |
778 |
855 |
|
|
|
| |
779 |
856 |
void RuleEditDlg::OnNotEnoughSpaceDownButton() |
|
|
| |
780 |
857 |
{ |
|
|
| |
781 |
858 |
OnDownButton(this, m_ctlNotEnoughSpaceRulesList, m_rules.GetNotEnoughSpaceRules(), &RuleEditDlg::FillNotEnoughSpaceList); |
|
| |
|
859 |
EnableNotEnoughSpaceControls(); |
|
| |
782 |
860 |
} |