summaryrefslogtreecommitdiffstats
path: root/examples/widgets/tutorials/modelview/7_selections
diff options
context:
space:
mode:
Diffstat (limited to 'examples/widgets/tutorials/modelview/7_selections')
-rw-r--r--examples/widgets/tutorials/modelview/7_selections/CMakeLists.txt34
-rw-r--r--examples/widgets/tutorials/modelview/7_selections/mainwindow.cpp32
-rw-r--r--examples/widgets/tutorials/modelview/7_selections/mainwindow.h12
3 files changed, 42 insertions, 36 deletions
diff --git a/examples/widgets/tutorials/modelview/7_selections/CMakeLists.txt b/examples/widgets/tutorials/modelview/7_selections/CMakeLists.txt
index 1c3910be40..0eda358808 100644
--- a/examples/widgets/tutorials/modelview/7_selections/CMakeLists.txt
+++ b/examples/widgets/tutorials/modelview/7_selections/CMakeLists.txt
@@ -1,16 +1,13 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
cmake_minimum_required(VERSION 3.16)
project(mv_selections LANGUAGES CXX)
-set(CMAKE_AUTOMOC ON)
-
-if(NOT DEFINED INSTALL_EXAMPLESDIR)
- set(INSTALL_EXAMPLESDIR "examples")
-endif()
-
-set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/tutorials/modelview/7_selections")
-
find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets)
+qt_standard_project_setup()
+
qt_add_executable(mv_selections
main.cpp
mainwindow.cpp mainwindow.h
@@ -21,14 +18,21 @@ set_target_properties(mv_selections PROPERTIES
MACOSX_BUNDLE TRUE
)
-target_link_libraries(mv_selections PUBLIC
- Qt::Core
- Qt::Gui
- Qt::Widgets
+target_link_libraries(mv_selections PRIVATE
+ Qt6::Core
+ Qt6::Gui
+ Qt6::Widgets
)
install(TARGETS mv_selections
- RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
- BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
- LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}"
+ BUNDLE DESTINATION .
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+)
+
+qt_generate_deploy_app_script(
+ TARGET mv_selections
+ OUTPUT_SCRIPT deploy_script
+ NO_UNSUPPORTED_PLATFORM_ERROR
)
+install(SCRIPT ${deploy_script})
diff --git a/examples/widgets/tutorials/modelview/7_selections/mainwindow.cpp b/examples/widgets/tutorials/modelview/7_selections/mainwindow.cpp
index 0539d49ce6..3bedb2f82c 100644
--- a/examples/widgets/tutorials/modelview/7_selections/mainwindow.cpp
+++ b/examples/widgets/tutorials/modelview/7_selections/mainwindow.cpp
@@ -14,20 +14,20 @@ MainWindow::MainWindow(QWidget *parent)
, standardModel(new QStandardItemModel(this))
{
setCentralWidget(treeView);
- QStandardItem *rootNode = standardModel->invisibleRootItem();
+ auto *rootNode = standardModel->invisibleRootItem();
- //defining a couple of items
- QStandardItem *americaItem = new QStandardItem("America");
- QStandardItem *mexicoItem = new QStandardItem("Canada");
- QStandardItem *usaItem = new QStandardItem("USA");
- QStandardItem *bostonItem = new QStandardItem("Boston");
- QStandardItem *europeItem = new QStandardItem("Europe");
- QStandardItem *italyItem = new QStandardItem("Italy");
- QStandardItem *romeItem = new QStandardItem("Rome");
- QStandardItem *veronaItem = new QStandardItem("Verona");
+ // defining a couple of items
+ auto *americaItem = new QStandardItem("America");
+ auto *mexicoItem = new QStandardItem("Canada");
+ auto *usaItem = new QStandardItem("USA");
+ auto *bostonItem = new QStandardItem("Boston");
+ auto *europeItem = new QStandardItem("Europe");
+ auto *italyItem = new QStandardItem("Italy");
+ auto *romeItem = new QStandardItem("Rome");
+ auto *veronaItem = new QStandardItem("Verona");
- //building up the hierarchy
+ // building up the hierarchy
rootNode-> appendRow(americaItem);
rootNode-> appendRow(europeItem);
americaItem-> appendRow(mexicoItem);
@@ -37,11 +37,11 @@ MainWindow::MainWindow(QWidget *parent)
italyItem-> appendRow(romeItem);
italyItem-> appendRow(veronaItem);
- //register the model
+ // register the model
treeView->setModel(standardModel);
treeView->expandAll();
- //selection changes shall trigger a slot
+ // selection changes shall trigger a slot
QItemSelectionModel *selectionModel = treeView->selectionModel();
connect(selectionModel, &QItemSelectionModel::selectionChanged,
this, &MainWindow::selectionChangedSlot);
@@ -53,13 +53,13 @@ MainWindow::MainWindow(QWidget *parent)
//! [quoting modelview_b]
void MainWindow::selectionChangedSlot(const QItemSelection & /*newSelection*/, const QItemSelection & /*oldSelection*/)
{
- //get the text of the selected item
+ // get the text of the selected item
const QModelIndex index = treeView->selectionModel()->currentIndex();
QString selectedText = index.data(Qt::DisplayRole).toString();
- //find out the hierarchy level of the selected item
+ // find out the hierarchy level of the selected item
int hierarchyLevel = 1;
QModelIndex seekRoot = index;
- while (seekRoot.parent() != QModelIndex()) {
+ while (seekRoot.parent().isValid()) {
seekRoot = seekRoot.parent();
hierarchyLevel++;
}
diff --git a/examples/widgets/tutorials/modelview/7_selections/mainwindow.h b/examples/widgets/tutorials/modelview/7_selections/mainwindow.h
index a0d05222fa..cca1ae837f 100644
--- a/examples/widgets/tutorials/modelview/7_selections/mainwindow.h
+++ b/examples/widgets/tutorials/modelview/7_selections/mainwindow.h
@@ -7,7 +7,7 @@
#include <QMainWindow>
QT_BEGIN_NAMESPACE
-class QTreeView; //forward declarations
+class QTreeView; // forward declarations
class QStandardItemModel;
class QItemSelection;
QT_END_NAMESPACE
@@ -16,13 +16,15 @@ QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
+public:
+ explicit MainWindow(QWidget *parent = nullptr);
+
+private slots:
+ void selectionChangedSlot(const QItemSelection &newSelection, const QItemSelection &oldSelection);
+
private:
QTreeView *treeView;
QStandardItemModel *standardModel;
-private slots:
- void selectionChangedSlot(const QItemSelection &newSelection, const QItemSelection &oldSelection);
-public:
- MainWindow(QWidget *parent = nullptr);
};
#endif // MAINWINDOW_H