Просмотр исходного кода

Support uncheckable header in ctkCheckableHeaderView

Julien Finet лет назад: 14
Родитель
Сommit
413b2b3796
1 измененных файлов с 10 добавлено и 7 удалено
  1. 10 7
      Libs/Widgets/ctkCheckableHeaderView.cpp

+ 10 - 7
Libs/Widgets/ctkCheckableHeaderView.cpp

@@ -156,10 +156,18 @@ void ctkCheckableHeaderViewPrivate
 ::updateCheckState(const QModelIndex& modelIndex)
 {
   Q_Q(ctkCheckableHeaderView);
-  
+  QVariant indexCheckState = modelIndex != q->rootIndex() ?
+    q->model()->data(modelIndex, Qt::CheckStateRole):
+    q->model()->headerData(0, q->orientation(), Qt::CheckStateRole);
+  bool checkable = false;
+  int oldCheckState = indexCheckState.toInt(&checkable);
+  if (!checkable)
+    {
+    return;
+    }
+
   Qt::CheckState newCheckState = Qt::PartiallyChecked;
   bool firstCheckableChild = true;
-  bool checkable = false;
   const int rowCount = q->orientation() == Qt::Horizontal ?
     q->model()->rowCount(modelIndex) : 1;
   const int columnCount = q->orientation() == Qt::Vertical ?
@@ -194,11 +202,6 @@ void ctkCheckableHeaderViewPrivate
       break;
       } 
     }
-  QVariant indexCheckState = modelIndex != q->rootIndex() ?
-    q->model()->data(modelIndex, Qt::CheckStateRole):
-    q->model()->headerData(0, q->orientation(), Qt::CheckStateRole);
-  int oldCheckState = indexCheckState.toInt(&checkable);
-  Q_ASSERT(checkable);
   if (oldCheckState == newCheckState)
     {
     return;