Skip to content

Commit

Permalink
Fixed crashes on edit/delete events when a phase is selected
Browse files Browse the repository at this point in the history
  • Loading branch information
amtriathlon committed Mar 18, 2018
1 parent 84e6cc5 commit 2f38661
Showing 1 changed file with 21 additions and 3 deletions.
24 changes: 21 additions & 3 deletions src/Gui/LTMSidebar.cpp
Expand Up @@ -684,8 +684,14 @@ LTMSidebar::eventPopup()
// events are against a selected season
if (dateRangeTree->selectedItems().count() == 0) return; // need a season selected!

// if a phase is selected (rather than a season), get the season this phase belongs to
QTreeWidgetItem *selectedDateRange = dateRangeTree->selectedItems().first();
if (selectedDateRange->parent() != NULL) {
selectedDateRange = selectedDateRange->parent();
}

// and the season must be user defined not temporary
int seasonindex = allDateRanges->indexOfChild(dateRangeTree->selectedItems().first());
int seasonindex = allDateRanges->indexOfChild(selectedDateRange);
if (seasons->seasons[seasonindex].getType() == Season::temporary) return;

// have we selected an event?
Expand Down Expand Up @@ -1322,7 +1328,13 @@ LTMSidebar::deleteEvent()

if (dateRangeTree->selectedItems().count()) {

int seasonindex = allDateRanges->indexOfChild(dateRangeTree->selectedItems().first());
// if a phase is selected (rather than a season), get the season this phase belongs to
QTreeWidgetItem *selectedDateRange = dateRangeTree->selectedItems().first();
if (selectedDateRange->parent() != NULL) {
selectedDateRange = selectedDateRange->parent();
}

int seasonindex = allDateRanges->indexOfChild(selectedDateRange);

// only delete those that are selected
if (eventTree->selectedItems().count() > 0) {
Expand Down Expand Up @@ -1350,7 +1362,13 @@ LTMSidebar::editEvent()

if (dateRangeTree->selectedItems().count()) {

int seasonindex = allDateRanges->indexOfChild(dateRangeTree->selectedItems().first());
// if a phase is selected (rather than a season), get the season this phase belongs to
QTreeWidgetItem *selectedDateRange = dateRangeTree->selectedItems().first();
if (selectedDateRange->parent() != NULL) {
selectedDateRange = selectedDateRange->parent();
}

int seasonindex = allDateRanges->indexOfChild(selectedDateRange);

// only delete those that are selected
if (eventTree->selectedItems().count() == 1) {
Expand Down

0 comments on commit 2f38661

Please sign in to comment.