Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
frmContactEditorRoles: Implemented priority control
[xestiaab/.git] / source / contacteditor / frmContactEditorRoles.cpp
1 // frmContactEditorRoles.cpp - frmContactEditorRoles form.
2 //
3 // (c) 2012-2015 Xestia Software Development.
4 //
5 // This file is part of Xestia Address Book.
6 //
7 // Xestia Address Book is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by the
9 // Free Software Foundation, version 3 of the license.
10 //
11 // Xestia Address Book is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
15 //
16 // You should have received a copy of the GNU General Public License along
17 // with Xestia Address Book. If not, see <http://www.gnu.org/licenses/>
19 #include "frmContactEditorRoles.h"
21 #include <map>
22 #include "../enums.h"
23 #include "../common/textprocessing.h"
25 frmContactEditorRoles::frmContactEditorRoles( wxWindow* parent )
26 :
27 frmContactEditorRolesADT( parent )
28 {
29         
30         // Setup the window.
31         
32         EditorMode = FALSE;
33         
34         priorityCtrl = new XABPriorityCtrl(tabGeneral);
35         szrGeneral->Add(priorityCtrl, 1, wxEXPAND, 5);
36         
37 }
39 void frmContactEditorRoles::ProcessAction( wxCommandEvent& event )
40 {
41         
42         // Process action.
43         
44         // Set if the editor is adding or editing an address.
45         // FALSE = Add
46         // TRUE = Edit
48         long ListCtrlIndex;
49         
50         if (EditorMode == FALSE){
51         
52                 wxString strValue;
53                 
54                 // Get the website address.
55                 
56                 RolesListPtr->insert(std::make_pair(RolesListIndex, txtRole->GetValue()));
57                 
58                 // Get the type of website.
59                 
60                 if (EditSectionType == CE_GENERAL){
61                 
62                         RolesListTypePtr->insert(std::make_pair(RolesListIndex, wxT("")));
63                 
64                 } else if (EditSectionType == CE_HOME) {
65                 
66                         RolesListTypePtr->insert(std::make_pair(RolesListIndex, wxT("home")));
67                 
68                 } else if (EditSectionType == CE_WORK) {
69                 
70                         RolesListTypePtr->insert(std::make_pair(RolesListIndex, wxT("work")));
71                 
72                 }
73                 
74                 // Add the website priority.
75                 
76                 if (priorityCtrl->IsPriorityChecked()){
77                 
78                         RolesListPrefPtr->insert(std::make_pair(RolesListIndex, priorityCtrl->GetValue()));
79                 
80                 } else {
81                 
82                         RolesListPrefPtr->insert(std::make_pair(RolesListIndex, 0));            
83                 
84                 }
85                 
86                 // Add to the form.
87                 
88                 wxListItem coldata;
89                 
90                 coldata.SetId(RolesListIndex);
91                 coldata.SetData(RolesListIndex);                
92                 coldata.SetText(txtRole->GetValue());
93                 ListCtrlIndex = RolesListCtrlPtr->InsertItem(coldata);
94                 
95                 if (priorityCtrl->IsPriorityChecked()){
96                 
97                         RolesListCtrlPtr->SetItem(ListCtrlIndex, 1, wxString::Format(wxT("%i"), priorityCtrl->GetValue()));
98                 
99                 }
100         
101                 this->Close();          
102         
103         } else {
104         
105                 // Update the title.
106                 long longSelected = -1;         
107                 wxString strValue;              
108                 RolesListPtr->erase(RolesListIndex);
109                 RolesListPtr->insert(std::make_pair(RolesListIndex, txtRole->GetValue()));
110                 
111                 // Update the slider priority.
112                 
113                 RolesListPrefPtr->erase(RolesListIndex);
114                 
115                 if (priorityCtrl->IsPriorityChecked()){
116                 
117                         RolesListPrefPtr->insert(std::make_pair(RolesListIndex, priorityCtrl->GetValue()));
118                 
119                 } else {
120                 
121                         RolesListPrefPtr->insert(std::make_pair(RolesListIndex, 0));
122                 
123                 }       
124                 
125                 // Update the form.
126                 
127                 longSelected = RolesListCtrlPtr->GetNextItem(longSelected, 
128                         wxLIST_NEXT_ALL,
129                         wxLIST_STATE_SELECTED);
130                         
131                 if (longSelected == -1){
132                         return;
133                 }               
134                 
135                 RolesListCtrlPtr->SetItem(longSelected, 0, txtRole->GetValue());
136                 
137                 if (priorityCtrl->IsPriorityChecked()){
138                 
139                         RolesListCtrlPtr->SetItem(longSelected, 1, wxString::Format(wxT("%i"), priorityCtrl->GetValue()));
140                 
141                 } else {
142                 
143                         RolesListCtrlPtr->SetItem(longSelected, 1, wxT(""));
144                 
145                 }       
146         
147                 this->Close();
148         
149         }
152 void frmContactEditorRoles::SetEditorMode(bool EditMode, SectionType SectType)
154         
155         // Set the editor mode.
156         
157         // Set if the editor is adding or editing an address.
158         // FALSE = Add
159         // TRUE = Edit
160         
161         if (EditMode == FALSE){
162         
163                 EditorMode = FALSE;
164                 btnAction->SetLabel(_("Add"));
165                 this->SetTitle(_("Add Title"));
166         
167         } else if (EditMode == TRUE){
168         
169                 EditorMode = TRUE;
170                 btnAction->SetLabel(_("Modify"));
171                 this->SetTitle(_("Modify Title"));
172                 
173                 std::map<int,int>::iterator intiter;
174                 std::map<int,wxString>::iterator striter;               
175                 wxString strValue;
176                 
177                 // Load the data into the form. Get the website.
178                 
179                 striter = RolesListPtr->find(RolesListIndex);
180                  
181                 if (striter->first == RolesListIndex){
182                 
183                         strValue = striter->second;
184                 
185                 }
186                 
187                 txtRole->SetValue(strValue);
188                 
189                 strValue.Clear();
190                 
191                 // Get the website priority.
192                 
193                 intiter = RolesListPrefPtr->find(RolesListIndex);
194                 
195                 if (intiter->first == RolesListIndex && intiter->second > 0 &&
196                         intiter != RolesListPrefPtr->end()){
197                 
198                         priorityCtrl->SetValue(intiter->second);
199                         priorityCtrl->EnablePriority(true);
200                 
201                 }       
202                 
203         }
204         
205         EditSectionType = SectType;     
206                 
209 void frmContactEditorRoles::CloseWindow( wxCommandEvent& event )
211         
212         // Close this window.
213         
214         this->Close();
215         
218 void frmContactEditorRoles::SetupPointers(std::map<int, wxString> *RolesList,
219         std::map<int, wxString> *RolesListLanguage,
220         std::map<int, wxString> *RolesListAltID,
221         std::map<int, wxString> *RolesListPID,
222         std::map<int, wxString> *RolesListType,
223         std::map<int, wxString> *RolesListTokens,
224         std::map<int, int> *RolesListPref,
225         wxListCtrl *RolesListCtrl,
226         int RolesIndex )
229         // Setup the pointers.
230         
231         RolesListPtr = RolesList;
232         RolesListLanguagePtr = RolesListLanguage;
233         RolesListAltIDPtr = RolesListAltID;
234         RolesListPIDPtr = RolesListPID;
235         RolesListTypePtr = RolesListType;
236         RolesListTokensPtr = RolesListTokens;
237         RolesListPrefPtr = RolesListPref;
238         RolesListCtrlPtr = RolesListCtrl;
239         RolesListIndex = RolesIndex;
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy