X-Git-Url: http://Server1/repobrowser/?p=xestiacalendar%2F.git;a=blobdiff_plain;f=source%2Fwidgets%2FXCCalendarMonthView.cpp;h=941a484c4450c5f440006133a52dc8a8b30cb0e3;hp=d962006d1d6a766f45ac815cb9565ee415ce2cd1;hb=902d948e5e45ad483c8e235690dda8f2bf596ad5;hpb=d97b5c14c651aa7dad92072e7bf192704540018c diff --git a/source/widgets/XCCalendarMonthView.cpp b/source/widgets/XCCalendarMonthView.cpp index d962006..941a484 100644 --- a/source/widgets/XCCalendarMonthView.cpp +++ b/source/widgets/XCCalendarMonthView.cpp @@ -91,51 +91,6 @@ XCCalendarMonthView::XCCalendarMonthView(wxWindow *parent, const wxString& title Bind(XCCALENDARMONTH_ADDENTRY, &XCCalendarMonthView::AddCalendarEntry, this, ID_ADDENTRY); Bind(XCCALENDARMONTH_UPDATEENTRY, &XCCalendarMonthView::UpdateCalendarEntry, this, ID_UPDATEENTRY); Bind(XCCALENDARMONTH_UPDATECALENDARCOLOUR, &XCCalendarMonthView::UpdateCalendarColour, this, ID_UPDATECOLOUR); -} - -XCCalendarMonthView::XCCalendarMonthView(XCCalendarMonthViewGrid *grid, CalendarDataStorage *dataStorage, std::vector *hideAccounts, std::vector *hideCalendars) - : wxPanel(NULL, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL){ - - Connect(ID_MONTHVIEWCLEARSELECTION, XCCALENDARMONTH_DESELECTOTHERENTRIES, wxCommandEventHandler(XCCalendarMonthView::DeselectOthersEvent)); - - calendarStorage = dataStorage; - - mondayText = new XCCalendarMonthViewDayTitle(this, _("Monday"), wxDefaultPosition, wxDefaultSize); - tuesdayText = new XCCalendarMonthViewDayTitle(this, _("Tuesday"), wxDefaultPosition, wxDefaultSize); - wednesdayText = new XCCalendarMonthViewDayTitle(this, _("Wednesday"), wxDefaultPosition, wxDefaultSize); - thursdayText = new XCCalendarMonthViewDayTitle(this, _("Thursday"), wxDefaultPosition, wxDefaultSize); - fridayText = new XCCalendarMonthViewDayTitle(this, _("Friday"), wxDefaultPosition, wxDefaultSize); - saturdayText = new XCCalendarMonthViewDayTitle(this, _("Saturday"), wxDefaultPosition, wxDefaultSize); - sundayText = new XCCalendarMonthViewDayTitle(this, _("Sunday"), wxDefaultPosition, wxDefaultSize); - - windowSizer->Add(mondayText, 1, wxEXPAND|wxALL, 0); - windowSizer->Add(tuesdayText, 1, wxEXPAND|wxALL, 0); - windowSizer->Add(wednesdayText, 1, wxEXPAND|wxALL, 0); - windowSizer->Add(thursdayText, 1, wxEXPAND|wxALL, 0); - windowSizer->Add(fridayText, 1, wxEXPAND|wxALL, 0); - windowSizer->Add(saturdayText, 1, wxEXPAND|wxALL, 0); - windowSizer->Add(sundayText, 1, wxEXPAND|wxALL, 0); - - ProcessGrid(grid, hideAccounts, hideCalendars); - - // Setup the days. - - // Setup the growable rows and columns. - - windowSizer->AddGrowableCol(0); - windowSizer->AddGrowableCol(1); - windowSizer->AddGrowableCol(2); - windowSizer->AddGrowableCol(3); - windowSizer->AddGrowableCol(4); - windowSizer->AddGrowableCol(5); - windowSizer->AddGrowableCol(6); - windowSizer->SetFlexibleDirection( wxBOTH ); - windowSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - this->SetSizer(windowSizer); - windowSizer->Fit(this); - this->Layout(); - this->SetBackgroundColour(wxColour(0,0,0)); } @@ -156,6 +111,27 @@ XCCalendarMonthView::~XCCalendarMonthView(){ } + delete eventMenu; + this->SetSizer(nullptr, true); + + // Unbind events from control + + Unbind(XCCALENDARMONTH_DESELECTOTHERENTRIES, &XCCalendarMonthView::DeselectOthersEvent, this); + Unbind(XCCALENDARMONTH_HIDEACCOUNTENTRIES, &XCCalendarMonthView::HideAccountEntries, this); + Unbind(XCCALENDARMONTH_SHOWACCOUNTENTRIES, &XCCalendarMonthView::ShowAccountEntries, this); + Unbind(XCCALENDARMONTH_HIDECALENDARENTRIES, &XCCalendarMonthView::HideCalendarEntries, this); + Unbind(XCCALENDARMONTH_SHOWCALENDARENTRIES, &XCCalendarMonthView::ShowCalendarEntries, this); + Unbind(XCCALENDARMONTH_DELETECALENDARENTRIES, &XCCalendarMonthView::DeleteCalendarEntries, this); + Unbind(XCCALENDARMONTH_DISPLAYEVENTMENU, &XCCalendarMonthView::ShowEventMenu, this); + Unbind(XCCALENDARMONTH_DELETEENTRY, &XCCalendarMonthView::DeleteCalendarEntry, this); + Unbind(XCCALENDARMONTH_ADDENTRY, &XCCalendarMonthView::AddCalendarEntry, this); + Unbind(XCCALENDARMONTH_UPDATEENTRY, &XCCalendarMonthView::UpdateCalendarEntry, this); + Unbind(XCCALENDARMONTH_UPDATECALENDARCOLOUR, &XCCalendarMonthView::UpdateCalendarColour, this); + + // Don't delete CalendarDataStorage object (used elsewhere). + + calendarStorage = nullptr; + } void XCCalendarMonthView::ProcessGrid(XCCalendarMonthViewGrid *grid, std::vector *hideAccounts, std::vector *hideCalendars){