diff options
Diffstat (limited to 'doc/src/snippets/qtreewidget-using/mainwindow.cpp')
-rw-r--r-- | doc/src/snippets/qtreewidget-using/mainwindow.cpp | 230 |
1 files changed, 0 insertions, 230 deletions
diff --git a/doc/src/snippets/qtreewidget-using/mainwindow.cpp b/doc/src/snippets/qtreewidget-using/mainwindow.cpp deleted file mode 100644 index 2a62c3e5f8..0000000000 --- a/doc/src/snippets/qtreewidget-using/mainwindow.cpp +++ /dev/null @@ -1,230 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtGui> - -#include "mainwindow.h" - -MainWindow::MainWindow() -{ - QMenu *fileMenu = new QMenu(tr("&File")); - - QAction *quitAction = fileMenu->addAction(tr("E&xit")); - quitAction->setShortcut(tr("Ctrl+Q")); - - QMenu *itemsMenu = new QMenu(tr("&Items")); - - insertAction = itemsMenu->addAction(tr("&Insert Item")); - removeAction = itemsMenu->addAction(tr("&Remove Item")); - removeAction->setEnabled(false); - itemsMenu->addSeparator(); - ascendingAction = itemsMenu->addAction(tr("Sort in &Ascending Order")); - descendingAction = itemsMenu->addAction(tr("Sort in &Descending Order")); - autoSortAction = itemsMenu->addAction(tr("&Automatically Sort Items")); - autoSortAction->setCheckable(true); - itemsMenu->addSeparator(); - QAction *findItemsAction = itemsMenu->addAction(tr("&Find Items")); - findItemsAction->setShortcut(tr("Ctrl+F")); - - menuBar()->addMenu(fileMenu); - menuBar()->addMenu(itemsMenu); - -/* For convenient quoting: -//! [0] - QTreeWidget *treeWidget = new QTreeWidget(this); -//! [0] -*/ - treeWidget = new QTreeWidget(this); -//! [1] - treeWidget->setColumnCount(2); -//! [1] //! [2] - QStringList headers; - headers << tr("Subject") << tr("Default"); - treeWidget->setHeaderLabels(headers); -//! [2] - - connect(quitAction, SIGNAL(triggered()), this, SLOT(close())); - connect(ascendingAction, SIGNAL(triggered()), this, SLOT(sortAscending())); - connect(autoSortAction, SIGNAL(triggered()), this, SLOT(updateSortItems())); - connect(descendingAction, SIGNAL(triggered()), this, SLOT(sortDescending())); - connect(findItemsAction, SIGNAL(triggered()), this, SLOT(findItems())); - connect(insertAction, SIGNAL(triggered()), this, SLOT(insertItem())); - connect(removeAction, SIGNAL(triggered()), this, SLOT(removeItem())); - connect(treeWidget, - SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)), - this, SLOT(updateMenus(QTreeWidgetItem *))); - - setupTreeItems(); - updateMenus(treeWidget->currentItem()); - - setCentralWidget(treeWidget); - setWindowTitle(tr("Tree Widget")); -} - -void MainWindow::setupTreeItems() -{ -//! [3] - QTreeWidgetItem *cities = new QTreeWidgetItem(treeWidget); - cities->setText(0, tr("Cities")); - QTreeWidgetItem *osloItem = new QTreeWidgetItem(cities); - osloItem->setText(0, tr("Oslo")); - osloItem->setText(1, tr("Yes")); -//! [3] - - (new QTreeWidgetItem(cities))->setText(0, tr("Stockholm")); - (new QTreeWidgetItem(cities))->setText(0, tr("Helsinki")); - (new QTreeWidgetItem(cities))->setText(0, tr("Copenhagen")); - -//! [4] //! [5] - QTreeWidgetItem *planets = new QTreeWidgetItem(treeWidget, cities); -//! [4] - planets->setText(0, tr("Planets")); -//! [5] - (new QTreeWidgetItem(planets))->setText(0, tr("Mercury")); - (new QTreeWidgetItem(planets))->setText(0, tr("Venus")); - - QTreeWidgetItem *earthItem = new QTreeWidgetItem(planets); - earthItem->setText(0, tr("Earth")); - earthItem->setText(1, tr("Yes")); - - (new QTreeWidgetItem(planets))->setText(0, tr("Mars")); - (new QTreeWidgetItem(planets))->setText(0, tr("Jupiter")); - (new QTreeWidgetItem(planets))->setText(0, tr("Saturn")); - (new QTreeWidgetItem(planets))->setText(0, tr("Uranus")); - (new QTreeWidgetItem(planets))->setText(0, tr("Neptune")); - (new QTreeWidgetItem(planets))->setText(0, tr("Pluto")); -} - -void MainWindow::findItems() -{ - QString itemText = QInputDialog::getText(this, tr("Find Items"), - tr("Text to find (including wildcards):")); - - if (itemText.isEmpty()) - return; - -//! [6] - QTreeWidgetItem *item; -//! [6] - foreach (item, treeWidget->selectedItems()) - treeWidget->setItemSelected(item, false); - -//! [7] - QList<QTreeWidgetItem *> found = treeWidget->findItems( - itemText, Qt::MatchWildcard); - - foreach (item, found) { - treeWidget->setItemSelected(item, true); - // Show the item->text(0) for each item. - } -//! [7] -} - -void MainWindow::insertItem() -{ - QTreeWidgetItem *currentItem = treeWidget->currentItem(); - - if (!currentItem) - return; - - QString itemText = QInputDialog::getText(this, tr("Insert Item"), - tr("Input text for the new item:")); - - if (itemText.isEmpty()) - return; - -//! [8] - QTreeWidgetItem *parent = currentItem->parent(); - QTreeWidgetItem *newItem; - if (parent) - newItem = new QTreeWidgetItem(parent, treeWidget->currentItem()); - else -//! [8] //! [9] - newItem = new QTreeWidgetItem(treeWidget, treeWidget->currentItem()); -//! [9] - - newItem->setText(0, itemText); -} - -void MainWindow::removeItem() -{ - QTreeWidgetItem *currentItem = treeWidget->currentItem(); - - if (!currentItem) - return; - -//! [10] - QTreeWidgetItem *parent = currentItem->parent(); - int index; - - if (parent) { - index = parent->indexOfChild(treeWidget->currentItem()); - delete parent->takeChild(index); - } else { - index = treeWidget->indexOfTopLevelItem(treeWidget->currentItem()); - delete treeWidget->takeTopLevelItem(index); -//! [10] //! [11] - } -//! [11] -} - -void MainWindow::sortAscending() -{ - treeWidget->sortItems(0, Qt::AscendingOrder); -} - -void MainWindow::sortDescending() -{ - treeWidget->sortItems(0, Qt::DescendingOrder); -} - -void MainWindow::updateMenus(QTreeWidgetItem *current) -{ - insertAction->setEnabled(current != 0); - removeAction->setEnabled(current != 0); -} - -void MainWindow::updateSortItems() -{ - ascendingAction->setEnabled(!autoSortAction->isChecked()); - descendingAction->setEnabled(!autoSortAction->isChecked()); - - treeWidget->setSortingEnabled(autoSortAction->isChecked()); -} |