From 61ac779340124a04445e6a8662f1169514bdb973 Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Sat, 10 Jul 2010 23:03:31 +0200 Subject: [PATCH] Some week days picker behavior fixes --- qmaemo5weekdayspickwidget.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/qmaemo5weekdayspickwidget.cpp b/qmaemo5weekdayspickwidget.cpp index 00a3746..6d2b22b 100644 --- a/qmaemo5weekdayspickwidget.cpp +++ b/qmaemo5weekdayspickwidget.cpp @@ -88,13 +88,18 @@ void QMaemo5WeekDaysPickWidget::emitSelectionAndClose() { QList selected_rows; QModelIndexList selected_indexes = daysList->selectionModel()->selectedRows(); foreach(QModelIndex index, selected_indexes) { - selected_rows << index.row(); + // Insert sort + int i = 0; + const int row = index.row(); + while(selected_rows.at(i) < row) ++i; + selected_rows.insert(i, row); } emit selectedDays(selected_rows); close(); } void QMaemo5WeekDaysPickWidget::ensureConsistentSelection(QModelIndex index) { + qDebug("Received a click"); switch(index.row()) { case NEVER: @@ -135,6 +140,17 @@ void QMaemo5WeekDaysPickWidget::ensureConsistentSelection(QModelIndex index) { // Select NEVER item daysList->selectionModel()->select(daysList->model()->index(NEVER, 0), QItemSelectionModel::Select | QItemSelectionModel::Rows); } + } else { + // If all days are selected, select EVERY_DAY + bool all_days_selected = true; + for(int i=MON; iselectionModel()->isRowSelected(i, daysList->rootIndex())) { + all_days_selected = false; + break; + } + } + if(all_days_selected) + daysList->selectionModel()->select(daysList->model()->index(EVERY_DAY, 0), QItemSelectionModel::Select | QItemSelectionModel::Rows); } } } -- 1.7.9.5