1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
|
/*
SPDX-FileCopyrightText: 2005 Adam Treat <treat@kde.org>
SPDX-FileCopyrightText: 2013 Sebastian Kügler <sebas@kde.org>
SPDX-License-Identifier: LGPL-2.0-or-later
*/
#include "kdevdocumentmodel.h"
#include <QIcon>
KDevDocumentItem::KDevDocumentItem( const QString &name )
: QStandardItem(name)
{
}
KDevDocumentItem::~KDevDocumentItem()
{}
const QUrl KDevDocumentItem::url() const
{
return m_url;
}
void KDevDocumentItem::setUrl(const QUrl& url)
{
m_url = url;
}
QVariant KDevDocumentItem::data(int role) const
{
if (role == UrlRole) {
return m_url;
}
return QStandardItem::data(role);
}
KDevCategoryItem::KDevCategoryItem( const QString &name )
: KDevDocumentItem( name )
{
setFlags(Qt::ItemIsEnabled);
setToolTip( name );
setIcon( QIcon::fromTheme( QStringLiteral( "folder") ) );
}
KDevCategoryItem::~KDevCategoryItem()
{}
QList<KDevFileItem*> KDevCategoryItem::fileList() const
{
QList<KDevFileItem*> lst;
for ( int i = 0; i < rowCount(); ++i )
{
if (KDevFileItem* item = static_cast<KDevDocumentItem*>(child(i))->fileItem())
lst.append( item );
}
return lst;
}
KDevFileItem* KDevCategoryItem::file( const QUrl &url ) const
{
const auto fileList = this->fileList();
for (KDevFileItem* item : fileList) {
if ( item->url() == url )
return item;
}
return nullptr;
}
KDevFileItem::KDevFileItem( const QUrl &url )
: KDevDocumentItem( url.fileName() )
{
setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
setUrl( url );
}
KDevFileItem::~KDevFileItem()
{}
KDevDocumentModel::KDevDocumentModel( QObject *parent )
: QStandardItemModel( parent )
{
setRowCount(0);
setColumnCount(1);
}
KDevDocumentModel::~KDevDocumentModel()
{}
QList<KDevCategoryItem*> KDevDocumentModel::categoryList() const
{
QList<KDevCategoryItem*> lst;
for ( int i = 0; i < rowCount() ; ++i )
{
if (KDevCategoryItem* categoryitem = static_cast<KDevDocumentItem*>(item(i))->categoryItem()) {
lst.append( categoryitem );
}
}
return lst;
}
KDevCategoryItem* KDevDocumentModel::category( const QString& category ) const
{
const auto categoryList = this->categoryList();
for (KDevCategoryItem* item : categoryList) {
if ( item->toolTip() == category )
return item;
}
return nullptr;
}
#include "moc_kdevdocumentmodel.cpp"
|