kdelibs/kio/kfile/kdevicelistitem_p.h
2014-11-13 01:04:59 +02:00

126 lines
3.3 KiB
C++

/* This file is part of the KDE project
Copyright (C) 2006 Michael Larouche <michael.larouche@kdemail.net>
2007 Kevin Ottens <ervin@kde.org>
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 <QVariant>
#include <QList>
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 <michael.larouche@kdemail.net>
*/
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<KDeviceListItem*> 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