/* This file is part of the KDE project Copyright (C) 2006 Michael Larouche 2007 Kevin Ottens This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License version 2 as published by the Free Software Foundation. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef KDEVICELISTITEM_P_H #define KDEVICELISTITEM_P_H #include #include namespace Solid { class Device; } /** * @brief Item for the Device List model * Represent a Solid::Device in the tree device list model. * It helps to map the device in the tree. * * Keep a reference of the device that it maps. * * @author Michaƫl Larouche */ class KDeviceListItem { public: /** * @brief Create a new DeviceListItem */ KDeviceListItem(); /** * The d-tor duh. */ ~KDeviceListItem(); /** * @brief Return a child of this item according to the given row. * @param row row of the child to retrieve. * @return the child DeviceListItem */ KDeviceListItem *child(int row); /** * @brief Get all the children of this item. * @return list of children. */ QList children(); /** * @brief Returns the index position of a child in the list. * @param child the child to insert. * @return the index position of a child in the list. */ int indexOf(KDeviceListItem *child) const; /** * @brief Helper method to get the numbers of childrens of this item. * @return the child count of this item. */ int childCount() const; /** * Get the relative(to parent) row position of this item in the tree. * @return the row position. */ int row() const; /** * @brief Set the parent of this item * @param parent the parent DeviceListItem. */ void setParent(KDeviceListItem *parent); /** * @brief Get the parent of this item * @return the parent DeviceListItem. */ KDeviceListItem *parent(); /** * Get the Solid::Device reference for this item. * @param device the Solid::Device reference. */ void setDevice(const Solid::Device &device); /** * Get the Solid::Device reference for this item. * @return the Solid::Device reference. */ Solid::Device &device(); private: /** * @brief Helper method to append a child DeviceListItem. * @param child child item to append. */ void appendChild(KDeviceListItem *child); /** * @brief Helper method to remove a child DeviceListItem. * @param child child item to remove. */ void removeChild(KDeviceListItem *child); class Private; Private * const d; }; #endif