From d4e7332f1769bfdbdda934ca547080e9fe3a799c Mon Sep 17 00:00:00 2001
From: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Date: Fri, 26 Apr 2013 10:39:04 +0200
Subject: [PATCH] Don't select a TableView index by default

Change-Id: I436849ce43b11dd3b61ef59280e3b8fa39b7da0f
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
---
 src/controls/TableView.qml                    |  5 +++-
 .../data/tableview/table1_qobjectmodel.qml    |  1 +
 .../tableview/table2_qabstractitemmodel.qml   |  1 +
 .../data/tableview/table3_qobjectlist.qml     |  1 +
 .../data/tableview/table4_qstringlist.qml     |  1 +
 .../data/tableview/table5_listmodel.qml       |  1 +
 .../data/tableview/table6_countmodel.qml      |  1 +
 .../data/tableview/table7_arraymodel.qml      |  1 +
 .../data/tableview/table8_itemmodel.qml       |  1 +
 tests/auto/controls/data/tst_tableview.qml    | 23 +++++++++++++++++++
 10 files changed, 35 insertions(+), 1 deletion(-)

diff --git a/src/controls/TableView.qml b/src/controls/TableView.qml
index cf12ed01b..56c27fdeb 100644
--- a/src/controls/TableView.qml
+++ b/src/controls/TableView.qml
@@ -216,7 +216,9 @@ ScrollView {
     property alias section: listView.section
 
     /*! \qmlproperty int TableView::currentRow
-    The current row index of the view. */
+    The current row index of the view.
+    The default value is \c -1 to indicate that no row is selected.
+    */
     property alias currentRow: listView.currentIndex
 
     /*! \qmlsignal TableView::activated()
@@ -255,6 +257,7 @@ ScrollView {
         activeFocusOnTab: true
         anchors.topMargin: tableHeader.height
         anchors.fill: parent
+        currentIndex: -1
 
         flickableDirection: Flickable.HorizontalFlick
         SystemPalette {
diff --git a/tests/auto/controls/data/tableview/table1_qobjectmodel.qml b/tests/auto/controls/data/tableview/table1_qobjectmodel.qml
index 4b26f66dd..f058de00c 100644
--- a/tests/auto/controls/data/tableview/table1_qobjectmodel.qml
+++ b/tests/auto/controls/data/tableview/table1_qobjectmodel.qml
@@ -45,6 +45,7 @@ import QtQuickControlsTests 1.0
 TableView {
     model: TestObject {}
     height: 70
+    currentRow: 0
     TableViewColumn {
         role: "value"
         width: 100
diff --git a/tests/auto/controls/data/tableview/table2_qabstractitemmodel.qml b/tests/auto/controls/data/tableview/table2_qabstractitemmodel.qml
index bc3da2328..514a57c82 100644
--- a/tests/auto/controls/data/tableview/table2_qabstractitemmodel.qml
+++ b/tests/auto/controls/data/tableview/table2_qabstractitemmodel.qml
@@ -45,6 +45,7 @@ import QtQuickControlsTests 1.0
 TableView {
     model: TestItemModel {}
     height: 70
+    currentRow: 0
     TableViewColumn {
         role: "test"
         width: 100
diff --git a/tests/auto/controls/data/tableview/table3_qobjectlist.qml b/tests/auto/controls/data/tableview/table3_qobjectlist.qml
index f3f64327e..76008e8f1 100644
--- a/tests/auto/controls/data/tableview/table3_qobjectlist.qml
+++ b/tests/auto/controls/data/tableview/table3_qobjectlist.qml
@@ -44,6 +44,7 @@ import QtQuickControlsTests 1.0
 
 TableView {
     model: model_qobjectlist
+    currentRow: 0
     height: 70
     TableViewColumn {
         role: "value"
diff --git a/tests/auto/controls/data/tableview/table4_qstringlist.qml b/tests/auto/controls/data/tableview/table4_qstringlist.qml
index 75840499a..94f86156a 100644
--- a/tests/auto/controls/data/tableview/table4_qstringlist.qml
+++ b/tests/auto/controls/data/tableview/table4_qstringlist.qml
@@ -45,6 +45,7 @@ import QtQuickControlsTests 1.0
 TableView {
     model: model_qstringlist
     height: 70
+    currentRow: 0
     TableViewColumn {
         width: 100
     }
diff --git a/tests/auto/controls/data/tableview/table5_listmodel.qml b/tests/auto/controls/data/tableview/table5_listmodel.qml
index c0e46abcb..e8074201e 100644
--- a/tests/auto/controls/data/tableview/table5_listmodel.qml
+++ b/tests/auto/controls/data/tableview/table5_listmodel.qml
@@ -42,6 +42,7 @@ import QtQuick 2.1
 import QtQuick.Controls 1.0
 
 TableView {
+    currentRow: 0
 
     model:  ListModel {
         ListElement { value: "A" }
diff --git a/tests/auto/controls/data/tableview/table6_countmodel.qml b/tests/auto/controls/data/tableview/table6_countmodel.qml
index 995de4852..4a7073d4b 100644
--- a/tests/auto/controls/data/tableview/table6_countmodel.qml
+++ b/tests/auto/controls/data/tableview/table6_countmodel.qml
@@ -44,6 +44,7 @@ import QtQuick.Controls 1.0
 TableView {
     model: 3 // qml
     height: 70
+    currentRow: 0
     TableViewColumn {
         width: 100
     }
diff --git a/tests/auto/controls/data/tableview/table7_arraymodel.qml b/tests/auto/controls/data/tableview/table7_arraymodel.qml
index d3483ddcb..d794e170c 100644
--- a/tests/auto/controls/data/tableview/table7_arraymodel.qml
+++ b/tests/auto/controls/data/tableview/table7_arraymodel.qml
@@ -44,6 +44,7 @@ import QtQuick.Controls 1.0
 TableView {
     model: ["A", "B", "C"] // qml
     height: 70
+    currentRow: 0
     TableViewColumn {
         width: 100
     }
diff --git a/tests/auto/controls/data/tableview/table8_itemmodel.qml b/tests/auto/controls/data/tableview/table8_itemmodel.qml
index 081f1d61b..c39ae5335 100644
--- a/tests/auto/controls/data/tableview/table8_itemmodel.qml
+++ b/tests/auto/controls/data/tableview/table8_itemmodel.qml
@@ -44,6 +44,7 @@ import QtQuick.Controls 1.0
 TableView {
     model: Item { x: 10 }// qml
     height: 70
+    currentRow: 0
     TableViewColumn {
         role: "x"
         width: 100
diff --git a/tests/auto/controls/data/tst_tableview.qml b/tests/auto/controls/data/tst_tableview.qml
index 4bdf15dbc..b03d58fe0 100644
--- a/tests/auto/controls/data/tst_tableview.qml
+++ b/tests/auto/controls/data/tst_tableview.qml
@@ -64,6 +64,29 @@ TestCase {
                 ]
     }
 
+    function test_basic_setup() {
+        var test_instanceStr =
+           'import QtQuick 2.1;             \
+            import QtQuick.Controls 1.0;    \
+            TableView {                     \
+                TableViewColumn {           \
+                }                           \
+                model: 10                   \
+            }'
+
+        var table = Qt.createQmlObject(test_instanceStr, testCase, '')
+        compare(table.currentRow, -1)
+        verify(table.rowCount === 10)
+        verify (table.currentRowItem === null)
+        table.currentRow = 0
+        verify(table.currentRowItem !== null)
+        verify (table.currentRow === 0)
+        table.currentRow = 3
+        verify(table.currentRowItem !== null)
+        verify (table.currentRow === 3)
+        table.destroy()
+    }
+
     function test_usingqmlmodel(data) {
 
         var component = Qt.createComponent(data.a)
-- 
GitLab