Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
frmMain: Implemented code to hide/show calendar entries
[xestiacalendar/.git] / source / widgets / XCCalendarList.cpp
index 6fc7f7a..84662bd 100644 (file)
@@ -75,6 +75,7 @@ void XCCalendarList::UpdateCalendarList(CalendarDataStorage *dataStorage){
                // Create the control and add it to the list.
                
                XCCalendarListAccountCtrl *newAccountCtrl = new XCCalendarListAccountCtrl(this, accountListData.accountList[AccountSeek].accountName);
+               newAccountCtrl->SetAccountID(accountListData.accountList[AccountSeek].accountID);
                
                szrMain->Add(newAccountCtrl, 0, wxEXPAND, 5);
                
@@ -89,6 +90,7 @@ void XCCalendarList::UpdateCalendarList(CalendarDataStorage *dataStorage){
                        CDSGetCalendarInfo calendarInfo = dataStorage->GetCalendar(accountListData.accountList[AccountSeek].accountName, accountCalendarList.calendarListTextID[calendarSeek]);
                        
                        XCCalendarListCalendarCtrl *newCalendarCtrl = new XCCalendarListCalendarCtrl(this, calendarInfo.calendarName, calendarInfo.calendarColour);
+                       newCalendarCtrl->SetCalendarID(accountCalendarList.calendarList[calendarSeek]);
                        
                        newAccountCtrl->AddCalendar(newCalendarCtrl);
 
@@ -102,4 +104,60 @@ void XCCalendarList::UpdateCalendarList(CalendarDataStorage *dataStorage){
        
        checksumUpdate = currentChecksum.checksumValue;
        
+}
+
+std::vector<int> XCCalendarList::GetHiddenAccountsList(){
+       
+       std::vector<int> accountList;
+       
+       // Go through each of the account controls and work
+       // out which entries should be hidden based on account.
+       
+       for (std::vector<XCCalendarListAccountCtrl*>::iterator accountListIter = accountControlList.begin();
+               accountListIter != accountControlList.end(); accountListIter++){
+       
+               if ((*accountListIter)->GetShowCheckboxState() == wxCHK_UNCHECKED){
+                       
+                       accountList.push_back((*accountListIter)->GetAccountID());
+                       
+               }
+                       
+       }
+       
+       return accountList;
+       
+}
+
+std::vector<int> XCCalendarList::GetHiddenCalendarsList(){
+
+       std::vector<int> calendarList;
+       
+       // Go through each of the calendar controls and
+       // work out which entries should be hidden based on
+       // calendar.
+
+       for (std::vector<XCCalendarListAccountCtrl*>::iterator accountListIter = accountControlList.begin();
+               accountListIter != accountControlList.end(); accountListIter++){
+       
+               // Get the list of hidden calendars.
+               
+               vector<int> calendarHiddenList = (*accountListIter)->GetHiddenCalendarList();
+                       
+               for (vector<int>::iterator calendarHiddenIter = calendarHiddenList.begin();
+                       calendarHiddenIter != calendarHiddenList.end(); calendarHiddenIter++){
+               
+                       vector<int>::iterator calendarHiddenFind = find(calendarList.begin(), calendarList.end(), *calendarHiddenIter);
+                       
+                       if (calendarHiddenFind == calendarList.end()){
+
+                               calendarList.push_back(*calendarHiddenIter);
+                               
+                       }
+                               
+               }
+                       
+       }
+       
+       return calendarList;
+       
 }
\ No newline at end of file
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