~ubuntu-branches/ubuntu/utopic/kdevplatform/utopic-proposed

« back to all changes in this revision

Viewing changes to shell/kross/xmltokross/project.h

  • Committer: Package Import Robot
  • Author(s): Scarlett Clark
  • Date: 2014-08-30 03:52:11 UTC
  • mfrom: (0.3.26)
  • Revision ID: package-import@ubuntu.com-20140830035211-wndqlc843eu2v8nk
Tags: 1.7.0-0ubuntu1
* New upstream release
* Add XS-Testsuite: autopkgtest

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* This file is part of the KDE project
2
 
   Copyright 2001 Matthias Hoelzer-Kluepfel <hoelzer@kde.org>
3
 
   Copyright 2001-2002 Bernd Gehrmann <bernd@kdevelop.org>
4
 
   Copyright 2002-2003 Roberto Raggi <roberto@kdevelop.org>
5
 
   Copyright 2002 Simon Hausmann <hausmann@kde.org>
6
 
   Copyright 2003 Jens Dagerbo <jens.dagerbo@swipnet.se>
7
 
   Copyright 2003 Mario Scalas <mario.scalas@libero.it>
8
 
   Copyright 2003-2004 Alexander Dymo <adymo@kdevelop.org>
9
 
   Copyright     2006 Matt Rogers <mattr@kde.org>
10
 
   Copyright     2007 Andreas Pakulat <apaku@gmx.de>
11
 
 
12
 
   This library is free software; you can redistribute it and/or
13
 
   modify it under the terms of the GNU Library General Public
14
 
   License as published by the Free Software Foundation; either
15
 
   version 2 of the License, or (at your option) any later version.
16
 
 
17
 
   This library is distributed in the hope that it will be useful,
18
 
   but WITHOUT ANY WARRANTY; without even the implied warranty of
19
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
20
 
   Library General Public License for more details.
21
 
 
22
 
   You should have received a copy of the GNU Library General Public License
23
 
   along with this library; see the file COPYING.LIB.  If not, write to
24
 
   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
25
 
   Boston, MA 02110-1301, USA.
26
 
*/
27
 
#ifndef KDEVPLATFORM_DUMBPROJECT_H
28
 
#define KDEVPLATFORM_DUMBPROJECT_H
29
 
 
30
 
#include <shell/project.h>
31
 
 
32
 
#include <KUrl>
33
 
 
34
 
template<typename T> class QList;
35
 
 
36
 
class KJob;
37
 
 
38
 
namespace KDevelop
39
 
{
40
 
 
41
 
class IProjectFileManager;
42
 
class IBuildSystemManager;
43
 
class ProjectFileItem;
44
 
class PersistentHash;
45
 
 
46
 
class DumbProject : public Project
47
 
{
48
 
    Q_OBJECT
49
 
public:
50
 
    DumbProject(QObject *parent = 0);
51
 
 
52
 
    /// Destructor.
53
 
    virtual ~DumbProject();
54
 
 
55
 
    /** Get a list of all files in the project */
56
 
    virtual int fileCount() const;
57
 
    virtual ProjectFileItem* fileAt( int i ) const;
58
 
 
59
 
    virtual QList<ProjectFileItem*> files() const;
60
 
 
61
 
    virtual QList<ProjectFileItem*> filesForUrl( const KUrl& ) const;
62
 
 
63
 
    QString projectTempFile() const;
64
 
    QString developerTempFile() const;
65
 
    KUrl developerFileUrl() const;
66
 
    virtual void reloadModel();
67
 
    virtual KUrl projectFileUrl() const;
68
 
    virtual KSharedConfig::Ptr projectConfiguration() const;
69
 
 
70
 
public Q_SLOTS:
71
 
    virtual bool open(const KUrl &projectFileUrl);
72
 
 
73
 
    virtual void close();
74
 
 
75
 
    /**
76
 
     * @brief Get the project folder
77
 
     * @return The canonical absolute directory of the project.
78
 
     */
79
 
    virtual Q_SCRIPTABLE const KUrl folder() const;
80
 
 
81
 
    /** Returns the name of the project. */
82
 
    virtual Q_SCRIPTABLE QString name() const;
83
 
 
84
 
    /**
85
 
     * Get the file manager for the project
86
 
     *
87
 
     * @return the file manager for the project, if one exists; otherwise null
88
 
     */
89
 
    IProjectFileManager* projectFileManager() const;
90
 
 
91
 
    /**
92
 
     * Get the build system manager for the project
93
 
     *
94
 
     * @return the build system manager for the project, if one exists; otherwise null
95
 
     */
96
 
    IBuildSystemManager* buildSystemManager() const;
97
 
 
98
 
    IPlugin* versionControlPlugin() const;
99
 
 
100
 
    /**
101
 
     * Get the plugin that manages the project
102
 
     * This can be used to get other interfaces like IBuildSystemManager
103
 
     */
104
 
    IPlugin* managerPlugin() const;
105
 
 
106
 
    /**
107
 
     * Set the manager plugin for the project.
108
 
     */
109
 
    void setManagerPlugin( IPlugin* manager );
110
 
 
111
 
    /**
112
 
     * With this the top-level project item can be retrieved
113
 
     */
114
 
    ProjectFolderItem* projectItem() const;
115
 
 
116
 
    /**
117
 
     * Find the url relative to the project directory equivalent to @a absoluteUrl.
118
 
     * This function does not check to see if the file is contained within the
119
 
     * project; for that, use inProject().
120
 
     *
121
 
     * @param absoluteUrl Absolute url to convert
122
 
     * @deprecated use KUrl::relativeUrl instead
123
 
     * @returns absoluteUrl relative to projectDirectory()
124
 
     **/
125
 
    KUrl relativeUrl(const KUrl& absoluteUrl) const;
126
 
 
127
 
    /**
128
 
     * Check if the url specified by @a url is part of the project.
129
 
     * @a url can be either a relative url (to the project directory) or
130
 
     * an absolute url.
131
 
     *
132
 
     * @param url the url to check
133
 
     *
134
 
     * @return true if the url @a url is a part of the project.
135
 
     */
136
 
    bool inProject(const KUrl &url) const;
137
 
 
138
 
private:
139
 
    class DumbProjectPrivate* const d;
140
 
};
141
 
 
142
 
}
143
 
#endif