Basic openoffice.org control, and listening for new presentation documents, still...
[kworship.git] / kworship / archive / KwResourceLink.h
blob8dd57cdcec3d668eb0e8546b001a55c2e958efd3
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 #ifndef _KwResourceLink_h_
21 #define _KwResourceLink_h_
23 /**
24 * @file KwResourceLink.h
25 * @brief A link to a resource file.
26 * @author James Hogan <james@albanarts.com>
29 #include <KUrl>
31 class KwResourceManager;
33 class QDomDocument;
34 class QDomElement;
36 /// A link to a resource file.
37 class KwResourceLink
39 public:
42 * Types
45 /// Type of resource link.
46 enum Type {
47 Null, ///< Invalid.
48 Url, ///< URL link.
49 FileRelative, ///< Path relative to the save file.
50 ArchiveRoot, ///< Path relative to the archive root.
51 ArchiveRelative ///< Path relative to the referencer in the archive.
55 * Constructors + destructor
58 /// Default constructor.
59 KwResourceLink();
61 /// Construct from a DOM element.
62 KwResourceLink(const QDomElement& element, KwResourceManager* resourceManager);
64 /** Construct a URL link.
65 * @param url URL to the resource.
67 KwResourceLink(const KUrl& url);
69 /** Construct a path link.
70 * @param type Type of path (must not be Url).
71 * @param path Path of whatever type to the resource.
73 KwResourceLink(Type type, const QString& path);
75 /// Destructor.
76 ~KwResourceLink();
79 * DOM Translation
82 /// Export this resource link into a DOM.
83 void exportToDom(QDomDocument& document, QDomElement& element, KwResourceManager* resourceManager) const;
86 * Accessors
89 /// Get whether the link is null.
90 bool isNull() const;
92 /// Get the type of resource link.
93 Type type() const;
95 /// Get the url.
96 KUrl url() const;
98 /// Get the type dependent path.
99 QString path() const;
101 private:
104 * Variables
107 /// Type of link.
108 Type m_type;
110 /// URL to resource.
111 KUrl m_url;
113 /// Path to resource depending on type.
114 QString m_path;
117 #endif // _KwResourceLink_h_