Basic openoffice.org control, and listening for new presentation documents, still...
[kworship.git] / unipresent / common / UpPresentationNode.cpp
blobaac452a3b001c001ccfdfe6b6e1544d7004bb091
1 /***************************************************************************
2 * This file is part of KWorship. *
3 * Copyright 2008 James Hogan <james@albanarts.com> *
4 * *
5 * KWorship is free software: you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation, either version 2 of the License, or *
8 * (at your option) any later version. *
9 * *
10 * KWorship is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
14 * *
15 * You should have received a copy of the GNU General Public License *
16 * along with KWorship. If not, write to the Free Software Foundation, *
17 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
18 ***************************************************************************/
20 /**
21 * @file UpPresentationNode.cpp
22 * @brief A presentations node for a backend.
23 * @author James Hogan <james@albanarts.com>
26 #include "UpPresentationNode.h"
27 #include "UpPresentation.h"
28 #include "UpSlideNode.h"
30 #include <KMimeType>
31 #include <KIcon>
33 #include <QFileInfo>
35 #include <cassert>
38 * Constructors + destructor.
41 /// Primary constructor.
42 UpPresentationNode::UpPresentationNode(DefaultModelNode* parent, UpPresentation* item)
43 : DefaultModelNode(parent)
44 , m_item(item)
48 /// Destructor.
49 UpPresentationNode::~UpPresentationNode()
54 * Accessors
57 UpPresentation* UpPresentationNode::getItem()
59 return m_item;
63 * Main interface
66 QVariant UpPresentationNode::getData(int role, int column)
68 if (role == Qt::DisplayRole)
70 if (column == 0)
72 QUrl url = m_item->url();
73 if (url.isValid())
75 QFileInfo pathInfo(url.path());
76 return pathInfo.fileName();
78 else
80 return "unnamed";
84 else if (role == Qt::DecorationRole)
86 if (column == 0)
88 KMimeType::Ptr mimeType = KMimeType::findByUrl(m_item->url());
89 return KIcon(mimeType->iconName());
92 return QVariant();
95 int UpPresentationNode::getChildCount() const
97 return m_item->numSlides();
100 DefaultModelNode* UpPresentationNode::_getChild(int index)
102 UpSlide* slide = m_item->slide(index);
103 assert(0 != slide);
104 return new UpSlideNode(this, slide);