• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdevelop API Reference
  • KDE Home
  • Contact Us
 

kdevelop/kdevplatform/interfaces

  • extragear
  • kdevelop
  • kdevelop
  • kdevplatform
  • interfaces
iprojectcontroller.h
Go to the documentation of this file.
1 /* This file is part of KDevelop
2 Copyright 2006 Adam Treat <[email protected]>
3 Copyright 2007 Andreas Pakulat <[email protected]>
4 
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
9 
10 This library 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 GNU
13 Library General Public License for more details.
14 
15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19 */
20 
21 #ifndef KDEVPLATFORM_IPROJECTCONTROLLER_H
22 #define KDEVPLATFORM_IPROJECTCONTROLLER_H
23 
24 #include <QObject>
25 #include <QList>
26 #include <QUrl>
27 
28 #include "interfacesexport.h"
29 
30 namespace KDevelop
31 {
32 
33 class IProject;
34 class ProjectBuildSetModel;
35 class ProjectModel;
36 class ProjectBaseItem;
37 class ProjectChangesModel;
38 
42 class KDEVPLATFORMINTERFACES_EXPORT IProjectController : public QObject
43 {
44  Q_OBJECT
45 public:
46  explicit IProjectController( QObject *parent = nullptr );
47  ~IProjectController() override;
48 
49  Q_INVOKABLE virtual KDevelop::IProject* projectAt( int ) const = 0;
50  Q_INVOKABLE virtual int projectCount() const = 0;
51  Q_INVOKABLE virtual QList<IProject*> projects() const = 0;
52 
57  virtual ProjectModel* projectModel() = 0;
58 
59 
64  virtual ProjectChangesModel* changesModel() = 0;
65 
66  virtual ProjectBuildSetModel* buildSetModel() = 0;
67 
73  virtual KDevelop::IProject* findProjectByName( const QString& name ) = 0;
74 
81  virtual IProject* findProjectForUrl( const QUrl& url ) const = 0;
82 
89  virtual bool isProjectNameUsed( const QString& name ) const = 0;
90 
91  virtual QUrl projectsBaseDirectory() const = 0;
92 
93  enum FormattingOptions {
94  FormatHtml,
95  FormatPlain
96  };
97 
105  virtual QString prettyFilePath(const QUrl& url, FormattingOptions format = FormatHtml) const = 0;
106 
113  virtual QString prettyFileName(const QUrl& url, FormattingOptions format = FormatHtml) const = 0;
114 
118  static bool parseAllProjectSources();
119 
120 public Q_SLOTS:
125  virtual void openProjectForUrl( const QUrl &sourceUrl ) = 0;
132  virtual void openProject( const QUrl & url = QUrl() ) = 0;
139  virtual void closeProject( IProject* ) = 0;
140 
147  virtual void closeAllProjects() = 0;
148 
149  virtual void configureProject( IProject* ) = 0;
150 
156  virtual void reparseProject( IProject* project, bool forceUpdate = false, bool forceAll = false ) = 0;
157 
158 // virtual void changeCurrentProject( KDevelop::ProjectBaseItem* ) = 0;
159 
160 Q_SIGNALS:
171  void projectAboutToBeOpened( KDevelop::IProject* project );
177  void projectOpened( KDevelop::IProject* project );
183  void projectClosing( KDevelop::IProject* project );
190  void projectClosed( KDevelop::IProject* project );
196  void projectOpeningAborted( KDevelop::IProject* project );
197 
203  void projectConfigurationChanged( KDevelop::IProject* project );
204 };
205 
206 }
207 #endif
208 
KDevelop::IProjectController
Definition: iprojectcontroller.h:42
QObject
KDevelop::IProjectController::FormattingOptions
FormattingOptions
Definition: iprojectcontroller.h:93
QString
QList
Definition: context.h:40
QUrl
KDevelop::IProject
Object which represents a KDevelop project.
Definition: iproject.h:59
KDevelop::IProjectController::FormatHtml
Definition: iprojectcontroller.h:94
This file is part of the KDE documentation.
Documentation copyright © 1996-2019 The KDE developers.
Generated on Wed Dec 11 2019 07:57:26 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kdevelop/kdevplatform/interfaces

Skip menu "kdevelop/kdevplatform/interfaces"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdevelop API Reference

Skip menu "kdevelop API Reference"
  •   kdevplatform
  •     debugger
  •     documentation
  •     interfaces
  •     language
  •       assistant
  •       backgroundparser
  •       checks
  •       classmodel
  •       codecompletion
  •       codegen
  •       duchain
  •       editor
  •       highlighting
  •       interfaces
  •       util
  •     outputview
  •     project
  •     serialization
  •     shell
  •     sublime
  •     tests
  •     util
  •     vcs

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal