Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Spacing clear up
[xestiacalendar/.git] / source / forms / eventeditor / frmEventEditor.cpp
index 4c95dc3..ad9b184 100644 (file)
@@ -70,8 +70,15 @@ void frmEventEditor::SetupForm(CalendarDataStorage *dataStorage, XCALPreferences
                
                calendarID = eventInfo.calendarID;
                
+               // Set the calendar combination box to the name.
+               
+               string combinedName = dataStorage->GetCalendar(calendarID).accountName;
+               combinedName += " : ";
+               combinedName += dataStorage->GetCalendar(eventInfo.calendarID).calendarName;
+               
                // Load the calendar info.
                
+               cmbCalendar->SetSelection(cmbCalendar->FindString(combinedName));
                cmbCalendar->Show(false);
                lblCalendar->Show(false);
                
@@ -122,14 +129,20 @@ void frmEventEditor::SetupForm(CalendarDataStorage *dataStorage, XCALPreferences
                eventData.LoadFile(eventFilePath);
                
                // TODO: Set the duration data.
+
+       } else {
+       
+               // Setup the date and time with some default values (today's date and time).
+
+               SetDefaultDateTime();
                
-               return;
        }
-       
-       // Setup the date and time with some default values (today's date and time).
-       
-       SetDefaultDateTime();
 
+       // Enable window updating and update window name.
+
+       UpdateWindowName();
+       enableUpdates = true;
+       
 }
 
 void frmEventEditor::SetEditMode(bool editMode){
@@ -146,7 +159,10 @@ void frmEventEditor::SaveContact(wxCommandEvent &event){
 
 void frmEventEditor::SaveNewContact(wxCommandEvent &event){
        
-       SaveContact();
+       if (!SaveContact())
+       {
+               return;
+       }
        
        // Reset the form for a new entry.
        
@@ -165,18 +181,16 @@ void frmEventEditor::SaveNewContact(wxCommandEvent &event){
        szrDetails->Layout();
        szrList->Layout();
        
-
-       
 }
 
-void frmEventEditor::SaveContact(){
+bool frmEventEditor::SaveContact(){
 
        // Verify that a calendar has been selected.
        
        if (cmbCalendar->GetSelection() == -1 && editMode == false){
                
                wxMessageBox("Please select a calendar for this entry.", "No calendar selected", wxOK);
-               return;
+               return false;
                
        }
        
@@ -185,7 +199,7 @@ void frmEventEditor::SaveContact(){
        if (txtEventName->GetValue().IsEmpty()){
                
                wxMessageBox("The event name cannot be left empty.", "Event name is empty", wxOK);
-               return
+               return false;
                
        }
        
@@ -211,6 +225,19 @@ void frmEventEditor::SaveContact(){
        // Set the data into the calendar event object.
                
        eventData.summaryData = txtEventName->GetValue().ToStdString();
+
+       if (eventData.descriptionList.size() > 0)
+       {
+               eventData.descriptionList[0] = txtEventDescription->GetValue().ToStdString();
+       }
+       else
+       {
+               eventData.descriptionList.push_back(txtEventDescription->GetValue().ToStdString());
+               eventData.descriptionListAltRep.push_back("");
+               eventData.descriptionListLanguage.push_back("");
+               eventData.descriptionListTokens.push_back("");
+       }
+
        eventData.descriptionList.push_back(txtEventDescription->GetValue().ToStdString());
        eventData.descriptionListAltRep.push_back("");
        eventData.descriptionListLanguage.push_back("");
@@ -283,6 +310,7 @@ void frmEventEditor::SaveContact(){
                
                EventProperties *eventInfo = new EventProperties;
                eventInfo->eventName = txtEventName->GetValue().ToStdString();
+               eventInfo->eventDescipriton = txtEventDescription->GetValue().ToStdString();
                eventInfo->calendarID = calendarIDList[cmbCalendar->GetSelection()];
                eventInfo->eventID = addEventResult.calendarEntryID;
                eventInfo->eventYear = dapStartDate->GetValue().GetYear();
@@ -330,6 +358,7 @@ void frmEventEditor::SaveContact(){
                
                EventProperties *eventInfo = new EventProperties;
                eventInfo->eventName = txtEventName->GetValue().ToStdString();
+               eventInfo->eventDescipriton = txtEventDescription->GetValue().ToStdString();
                eventInfo->calendarID = calendarID;
                eventInfo->eventID = eventID;
                eventInfo->eventYear = dapStartDate->GetValue().GetYear();
@@ -346,14 +375,37 @@ void frmEventEditor::SaveContact(){
                
        }
        
+       return true;
+       
 }
 
-void frmEventEditor::CloseWindow(wxCommandEvent &event){
+void frmEventEditor::CloseWindow(wxCommandEvent &event)
+{
        
        this->Close();
        
 }
 
+void frmEventEditor::CloseWindow(wxCloseEvent &event)
+{
+
+       WindowData *deleteWindowData = new WindowData;
+    
+       deleteWindowData->DataType = 1;
+       deleteWindowData->WindowPointer = (void*)this;
+       deleteWindowData->WindowID = windowID;
+       
+       // Delete the window from the window list.
+       
+       wxCommandEvent deleteEvent(XCMAIN_DELETEWINDOWINFO);
+       deleteEvent.SetId(ID_DELETEWINDOW);
+       deleteEvent.SetClientData(deleteWindowData);
+       wxPostEvent(this->GetParent(), deleteEvent);
+       
+       this->Destroy();
+       
+}
+
 bool frmEventEditor::ProcessEvent(wxEvent& event)
 {
 
@@ -469,4 +521,77 @@ void frmEventEditor::SetDefaultDateTime(){
        
        txtEndTime->SetValue((wxString)formattedTime);
        
-}
\ No newline at end of file
+}
+
+void frmEventEditor::SetWindowMenuItemID(int windowID)
+{
+       
+       this->windowID = windowID;
+       
+}
+
+void frmEventEditor::ProcessCalendarControl(wxCommandEvent &event)
+{
+       
+       UpdateWindowName();
+       
+}
+
+void frmEventEditor::ProcessEventName(wxCommandEvent &event)
+{
+       
+       UpdateWindowName();
+       
+}
+
+void frmEventEditor::UpdateWindowName()
+{
+       
+       // Generate the window title.
+       
+       string windowTitle;
+       
+       if (cmbCalendar->GetSelection() == -1)
+       {
+               windowTitle += "(calendar not selected)";
+       }
+       else
+       {
+               windowTitle += cmbCalendar->GetStringSelection().ToStdString();
+       }
+       
+       if (txtEventName->IsEmpty())
+       {
+               windowTitle += " - ";
+               windowTitle += "(unamed event)";
+       }
+       else
+       {
+               windowTitle += " - ";
+               windowTitle += txtEventName->GetValue().ToStdString();
+       }
+       
+       SetTitle(windowTitle);
+
+       // Check if post window title updating is enabled before
+       // going any further.
+       
+       if (enableUpdates == false)
+       {
+               return;
+       }
+       
+       WindowData *updateWindowData = new WindowData;
+
+       updateWindowData->DataType = 1;
+       updateWindowData->WindowPointer = (void*)this;
+       updateWindowData->WindowID = windowID;
+       
+       // Delete the window from the window list.
+       
+       wxCommandEvent updateEvent(XCMAIN_UPDATEWINDOWINFO);
+       updateEvent.SetId(ID_UPDATEWINDOW);
+       updateEvent.SetClientData(updateWindowData);
+       wxPostEvent(this->GetParent(), updateEvent);
+       
+}
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