diff options
Diffstat (limited to 'examples/widgets/tutorials/modelview/7_selections')
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 |