Core: make ICore interface static

This mainly serves two purposes:
(a) it saves a function call in ICore::instance()->foo() vs ICore::foo() at runtime
(b) it saves typing and reduces line noise when reading

It's also (mostly) source compatible, as ICore::instance()->foo() remains compilable.

Change-Id: Icf7be0bce17fefe3560473534a8991ff79cbecc3
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
This commit is contained in:
hjk
2012-01-18 23:25:34 +01:00
parent 951b1120d6
commit 0fbd7f320f
10 changed files with 269 additions and 406 deletions

View File

@@ -1,241 +0,0 @@
/**************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Nokia Corporation (qt-info@nokia.com)
**
**
** GNU Lesser General Public License Usage
**
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this file.
** Please review the following information to ensure the GNU Lesser General
** Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** Other Usage
**
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
**
**************************************************************************/
#include "coreimpl.h"
#include "mainwindow.h"
#include <QtCore/QDir>
#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
#include <QtGui/QStatusBar>
namespace Core {
namespace Internal {
// The Core Singleton
static CoreImpl *m_instance = 0;
} // namespace Internal
} // namespace Core
using namespace Core;
using namespace Core::Internal;
ICore* ICore::instance()
{
return m_instance;
}
CoreImpl::CoreImpl(MainWindow *mainwindow)
{
m_instance = this;
m_mainwindow = mainwindow;
}
CoreImpl::~CoreImpl()
{
m_instance = 0;
}
void CoreImpl::showNewItemDialog(const QString &title,
const QList<IWizard *> &wizards,
const QString &defaultLocation)
{
m_mainwindow->showNewItemDialog(title, wizards, defaultLocation);
}
bool CoreImpl::showOptionsDialog(const QString &group, const QString &page, QWidget *parent)
{
return m_mainwindow->showOptionsDialog(group, page, parent);
}
bool CoreImpl::showWarningWithOptions(const QString &title, const QString &text,
const QString &details,
const QString &settingsCategory,
const QString &settingsId,
QWidget *parent)
{
return m_mainwindow->showWarningWithOptions(title, text,
details, settingsCategory,
settingsId, parent);
}
ActionManager *CoreImpl::actionManager() const
{
return m_mainwindow->actionManager();
}
FileManager *CoreImpl::fileManager() const
{
return m_mainwindow->fileManager();
}
MessageManager *CoreImpl::messageManager() const
{
return m_mainwindow->messageManager();
}
EditorManager *CoreImpl::editorManager() const
{
return m_mainwindow->editorManager();
}
ProgressManager *CoreImpl::progressManager() const
{
return m_mainwindow->progressManager();
}
ScriptManager *CoreImpl::scriptManager() const
{
return m_mainwindow->scriptManager();
}
VariableManager *CoreImpl::variableManager() const
{
return m_mainwindow->variableManager();
}
VcsManager *CoreImpl::vcsManager() const
{
return m_mainwindow->vcsManager();
}
ModeManager *CoreImpl::modeManager() const
{
return m_mainwindow->modeManager();
}
MimeDatabase *CoreImpl::mimeDatabase() const
{
return m_mainwindow->mimeDatabase();
}
HelpManager *CoreImpl::helpManager() const
{
return m_mainwindow->helpManager();
}
QSettings *CoreImpl::settings(QSettings::Scope scope) const
{
return m_mainwindow->settings(scope);
}
SettingsDatabase *CoreImpl::settingsDatabase() const
{
return m_mainwindow->settingsDatabase();
}
QPrinter *CoreImpl::printer() const
{
return m_mainwindow->printer();
}
QString CoreImpl::userInterfaceLanguage() const
{
return qApp->property("qtc_locale").toString();
}
#ifdef Q_OS_MAC
# define SHARE_PATH "/../Resources"
#else
# define SHARE_PATH "/../share/qtcreator"
#endif
QString CoreImpl::resourcePath() const
{
return QDir::cleanPath(QCoreApplication::applicationDirPath() + QLatin1String(SHARE_PATH));
}
QString CoreImpl::userResourcePath() const
{
// Create qtcreator dir if it doesn't yet exist
const QString configDir = QFileInfo(settings(QSettings::UserScope)->fileName()).path();
const QString urp = configDir + QLatin1String("/qtcreator");
QFileInfo fi(urp + QLatin1Char('/'));
if (!fi.exists()) {
QDir dir;
if (!dir.mkpath(urp))
qWarning() << "could not create" << urp;
}
return urp;
}
IContext *CoreImpl::currentContextObject() const
{
return m_mainwindow->currentContextObject();
}
QMainWindow *CoreImpl::mainWindow() const
{
return m_mainwindow;
}
QStatusBar *CoreImpl::statusBar() const
{
return m_mainwindow->statusBar();
}
void CoreImpl::updateAdditionalContexts(const Context &remove, const Context &add)
{
m_mainwindow->updateAdditionalContexts(remove, add);
}
bool CoreImpl::hasContext(int context) const
{
return m_mainwindow->hasContext(context);
}
void CoreImpl::addContextObject(IContext *context)
{
m_mainwindow->addContextObject(context);
}
void CoreImpl::removeContextObject(IContext *context)
{
m_mainwindow->removeContextObject(context);
}
void CoreImpl::openFiles(const QStringList &arguments, ICore::OpenFilesFlags flags)
{
m_mainwindow->openFiles(arguments, flags);
}
void CoreImpl::emitNewItemsDialogRequested()
{
emit newItemsDialogRequested();
}

View File

@@ -1,106 +0,0 @@
/**************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Nokia Corporation (qt-info@nokia.com)
**
**
** GNU Lesser General Public License Usage
**
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this file.
** Please review the following information to ensure the GNU Lesser General
** Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** Other Usage
**
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
**
**************************************************************************/
#ifndef COREIMPL_H
#define COREIMPL_H
#include "icore.h"
namespace Core {
namespace Internal {
class MainWindow;
class CoreImpl : public ICore
{
Q_OBJECT
public:
CoreImpl(MainWindow *mainwindow);
~CoreImpl();
void showNewItemDialog(const QString &title,
const QList<IWizard *> &wizards,
const QString &defaultLocation = QString());
bool showOptionsDialog(const QString &group = QString(),
const QString &page = QString(),
QWidget *parent = 0);
bool showWarningWithOptions(const QString &title, const QString &text,
const QString &details = QString(),
const QString &settingsCategory = QString(),
const QString &settingsId = QString(),
QWidget *parent = 0);
ActionManager *actionManager() const;
FileManager *fileManager() const ;
MessageManager *messageManager() const;
EditorManager *editorManager() const;
ProgressManager *progressManager() const;
ScriptManager *scriptManager() const;
VariableManager *variableManager() const;
VcsManager *vcsManager() const;
ModeManager *modeManager() const;
MimeDatabase *mimeDatabase() const;
HelpManager *helpManager() const;
QSettings *settings(QSettings::Scope scope = QSettings::UserScope) const;
SettingsDatabase *settingsDatabase() const;
QPrinter *printer() const;
QString userInterfaceLanguage() const;
QString resourcePath() const;
QString userResourcePath() const;
IContext *currentContextObject() const;
QMainWindow *mainWindow() const;
QStatusBar *statusBar() const;
// Adds and removes additional active contexts, these contexts are appended
// to the currently active contexts.
void updateAdditionalContexts(const Context &remove, const Context &add);
bool hasContext(int context) const;
void addContextObject(IContext *context);
void removeContextObject(IContext *context);
void openFiles(const QStringList &fileNames, ICore::OpenFilesFlags flags);
void emitNewItemsDialogRequested();
private:
MainWindow *m_mainwindow;
friend class MainWindow;
};
} // namespace Internal
} // namespace Core
#endif // COREIMPL_H

View File

@@ -57,7 +57,6 @@ SOURCES += mainwindow.cpp \
coreplugin.cpp \ coreplugin.cpp \
variablemanager.cpp \ variablemanager.cpp \
modemanager.cpp \ modemanager.cpp \
coreimpl.cpp \
basefilewizard.cpp \ basefilewizard.cpp \
generatedfile.cpp \ generatedfile.cpp \
plugindialog.cpp \ plugindialog.cpp \
@@ -160,7 +159,6 @@ HEADERS += mainwindow.h \
coreplugin.h \ coreplugin.h \
variablemanager.h \ variablemanager.h \
modemanager.h \ modemanager.h \
coreimpl.h \
basefilewizard.h \ basefilewizard.h \
generatedfile.h \ generatedfile.h \
plugindialog.h \ plugindialog.h \

View File

@@ -31,7 +31,7 @@
**************************************************************************/ **************************************************************************/
#include "iwizard.h" #include "iwizard.h"
#include "coreimpl.h" #include "icore.h"
#include <extensionsystem/pluginmanager.h> #include <extensionsystem/pluginmanager.h>
@@ -145,8 +145,7 @@ template <class Predicate>
QList<IWizard*> findWizards(Predicate predicate) QList<IWizard*> findWizards(Predicate predicate)
{ {
// Hack: Trigger delayed creation of wizards // Hack: Trigger delayed creation of wizards
if (Core::Internal::CoreImpl *ci = qobject_cast<Core::Internal::CoreImpl*>(ICore::instance())) ICore::emitNewItemsDialogRequested();
ci->emitNewItemsDialogRequested();
// Filter all wizards // Filter all wizards
const QList<IWizard*> allWizards = IWizard::allWizards(); const QList<IWizard*> allWizards = IWizard::allWizards();
QList<IWizard*> rc; QList<IWizard*> rc;
@@ -160,8 +159,7 @@ template <class Predicate>
QList<IWizard*> IWizard::allWizards() QList<IWizard*> IWizard::allWizards()
{ {
// Hack: Trigger delayed creation of wizards // Hack: Trigger delayed creation of wizards
if (Core::Internal::CoreImpl *ci = qobject_cast<Core::Internal::CoreImpl*>(ICore::instance())) ICore::emitNewItemsDialogRequested();
ci->emitNewItemsDialogRequested();
return ExtensionSystem::PluginManager::instance()->getObjects<IWizard>(); return ExtensionSystem::PluginManager::instance()->getObjects<IWizard>();
} }

View File

@@ -32,7 +32,7 @@
#include "editorview.h" #include "editorview.h"
#include "editormanager.h" #include "editormanager.h"
#include "coreimpl.h" #include "icore.h"
#include "minisplitter.h" #include "minisplitter.h"
#include "openeditorsmodel.h" #include "openeditorsmodel.h"
@@ -139,7 +139,7 @@ EditorView::~EditorView()
void EditorView::closeView() void EditorView::closeView()
{ {
EditorManager *em = CoreImpl::instance()->editorManager(); EditorManager *em = ICore::instance()->editorManager();
IEditor *editor = currentEditor(); IEditor *editor = currentEditor();
if (editor) if (editor)
em->closeEditor(editor); em->closeEditor(editor);
@@ -406,7 +406,7 @@ void EditorView::updateCurrentPositionInNavigationHistory()
void EditorView::goBackInNavigationHistory() void EditorView::goBackInNavigationHistory()
{ {
EditorManager *em = CoreImpl::instance()->editorManager(); EditorManager *em = ICore::instance()->editorManager();
updateCurrentPositionInNavigationHistory(); updateCurrentPositionInNavigationHistory();
while (m_currentNavigationHistoryPosition > 0) { while (m_currentNavigationHistoryPosition > 0) {
--m_currentNavigationHistoryPosition; --m_currentNavigationHistoryPosition;
@@ -431,7 +431,7 @@ void EditorView::goBackInNavigationHistory()
void EditorView::goForwardInNavigationHistory() void EditorView::goForwardInNavigationHistory()
{ {
EditorManager *em = CoreImpl::instance()->editorManager(); EditorManager *em = ICore::instance()->editorManager();
updateCurrentPositionInNavigationHistory(); updateCurrentPositionInNavigationHistory();
if (m_currentNavigationHistoryPosition >= m_navigationHistory.size()-1) if (m_currentNavigationHistoryPosition >= m_navigationHistory.size()-1)
return; return;
@@ -490,12 +490,12 @@ void SplitterOrView::mousePressEvent(QMouseEvent *e)
if (e->button() != Qt::LeftButton) if (e->button() != Qt::LeftButton)
return; return;
setFocus(Qt::MouseFocusReason); setFocus(Qt::MouseFocusReason);
CoreImpl::instance()->editorManager()->setCurrentView(this); ICore::instance()->editorManager()->setCurrentView(this);
} }
void SplitterOrView::paintEvent(QPaintEvent *) void SplitterOrView::paintEvent(QPaintEvent *)
{ {
if (CoreImpl::instance()->editorManager()->currentSplitterOrView() != this) if (ICore::instance()->editorManager()->currentSplitterOrView() != this)
return; return;
if (!m_view || hasEditors()) if (!m_view || hasEditors())
@@ -657,7 +657,7 @@ void SplitterOrView::split(Qt::Orientation orientation)
m_splitter = new MiniSplitter(this); m_splitter = new MiniSplitter(this);
m_splitter->setOrientation(orientation); m_splitter->setOrientation(orientation);
m_layout->addWidget(m_splitter); m_layout->addWidget(m_splitter);
EditorManager *em = CoreImpl::instance()->editorManager(); EditorManager *em = ICore::instance()->editorManager();
Core::IEditor *e = m_view->currentEditor(); Core::IEditor *e = m_view->currentEditor();
SplitterOrView *view = 0; SplitterOrView *view = 0;
@@ -710,7 +710,7 @@ void SplitterOrView::unsplitAll()
void SplitterOrView::unsplitAll_helper() void SplitterOrView::unsplitAll_helper()
{ {
if (!m_isRoot && m_view) if (!m_isRoot && m_view)
CoreImpl::instance()->editorManager()->emptyView(m_view); ICore::instance()->editorManager()->emptyView(m_view);
if (m_splitter) { if (m_splitter) {
for (int i = 0; i < m_splitter->count(); ++i) { for (int i = 0; i < m_splitter->count(); ++i) {
if (SplitterOrView *splitterOrView = qobject_cast<SplitterOrView*>(m_splitter->widget(i))) { if (SplitterOrView *splitterOrView = qobject_cast<SplitterOrView*>(m_splitter->widget(i))) {
@@ -726,7 +726,7 @@ void SplitterOrView::unsplit()
return; return;
Q_ASSERT(m_splitter->count() == 1); Q_ASSERT(m_splitter->count() == 1);
EditorManager *em = CoreImpl::instance()->editorManager(); EditorManager *em = ICore::instance()->editorManager();
SplitterOrView *childSplitterOrView = qobject_cast<SplitterOrView*>(m_splitter->widget(0)); SplitterOrView *childSplitterOrView = qobject_cast<SplitterOrView*>(m_splitter->widget(0));
QSplitter *oldSplitter = m_splitter; QSplitter *oldSplitter = m_splitter;
m_splitter = 0; m_splitter = 0;
@@ -771,7 +771,7 @@ QByteArray SplitterOrView::saveState() const
<< static_cast<SplitterOrView*>(m_splitter->widget(1))->saveState(); << static_cast<SplitterOrView*>(m_splitter->widget(1))->saveState();
} else { } else {
IEditor* e = editor(); IEditor* e = editor();
EditorManager *em = CoreImpl::instance()->editorManager(); EditorManager *em = ICore::instance()->editorManager();
// don't save state of temporary or ad-hoc editors // don't save state of temporary or ad-hoc editors
if (e && (e->isTemporary() || e->file()->fileName().isEmpty())) { if (e && (e->isTemporary() || e->file()->fileName().isEmpty())) {
@@ -812,7 +812,7 @@ void SplitterOrView::restoreState(const QByteArray &state)
static_cast<SplitterOrView*>(m_splitter->widget(0))->restoreState(first); static_cast<SplitterOrView*>(m_splitter->widget(0))->restoreState(first);
static_cast<SplitterOrView*>(m_splitter->widget(1))->restoreState(second); static_cast<SplitterOrView*>(m_splitter->widget(1))->restoreState(second);
} else if (mode == "editor" || mode == "currenteditor") { } else if (mode == "editor" || mode == "currenteditor") {
EditorManager *em = CoreImpl::instance()->editorManager(); EditorManager *em = ICore::instance()->editorManager();
QString fileName; QString fileName;
QString id; QString id;
QByteArray editorState; QByteArray editorState;

View File

@@ -343,3 +343,213 @@
\brief Sent just after a new \a context became the current context \brief Sent just after a new \a context became the current context
(meaning that its widget got focus), or if the additional context ids changed. (meaning that its widget got focus), or if the additional context ids changed.
*/ */
#include "icore.h"
#include "mainwindow.h"
#include <QtCore/QDir>
#include <QtCore/QCoreApplication>
#include <QtCore/QDebug>
#include <QtGui/QStatusBar>
namespace Core {
// The Core Singleton
static ICore *m_instance = 0;
namespace Internal {
static MainWindow *m_mainwindow;
} // namespace Internal
using namespace Core::Internal;
ICore *ICore::instance()
{
return m_instance;
}
ICore::ICore(MainWindow *mainwindow)
{
m_instance = this;
m_mainwindow = mainwindow;
}
ICore::~ICore()
{
m_instance = 0;
}
void ICore::showNewItemDialog(const QString &title,
const QList<IWizard *> &wizards,
const QString &defaultLocation)
{
m_mainwindow->showNewItemDialog(title, wizards, defaultLocation);
}
bool ICore::showOptionsDialog(const QString &group, const QString &page, QWidget *parent)
{
return m_mainwindow->showOptionsDialog(group, page, parent);
}
bool ICore::showWarningWithOptions(const QString &title, const QString &text,
const QString &details,
const QString &settingsCategory,
const QString &settingsId,
QWidget *parent)
{
return m_mainwindow->showWarningWithOptions(title, text,
details, settingsCategory,
settingsId, parent);
}
ActionManager *ICore::actionManager()
{
return m_mainwindow->actionManager();
}
FileManager *ICore::fileManager()
{
return m_mainwindow->fileManager();
}
MessageManager *ICore::messageManager()
{
return m_mainwindow->messageManager();
}
EditorManager *ICore::editorManager()
{
return m_mainwindow->editorManager();
}
ProgressManager *ICore::progressManager()
{
return m_mainwindow->progressManager();
}
ScriptManager *ICore::scriptManager()
{
return m_mainwindow->scriptManager();
}
VariableManager *ICore::variableManager()
{
return m_mainwindow->variableManager();
}
VcsManager *ICore::vcsManager()
{
return m_mainwindow->vcsManager();
}
ModeManager *ICore::modeManager()
{
return m_mainwindow->modeManager();
}
MimeDatabase *ICore::mimeDatabase()
{
return m_mainwindow->mimeDatabase();
}
HelpManager *ICore::helpManager()
{
return m_mainwindow->helpManager();
}
QSettings *ICore::settings(QSettings::Scope scope)
{
return m_mainwindow->settings(scope);
}
SettingsDatabase *ICore::settingsDatabase()
{
return m_mainwindow->settingsDatabase();
}
QPrinter *ICore::printer()
{
return m_mainwindow->printer();
}
QString ICore::userInterfaceLanguage()
{
return qApp->property("qtc_locale").toString();
}
#ifdef Q_OS_MAC
# define SHARE_PATH "/../Resources"
#else
# define SHARE_PATH "/../share/qtcreator"
#endif
QString ICore::resourcePath()
{
return QDir::cleanPath(QCoreApplication::applicationDirPath() + QLatin1String(SHARE_PATH));
}
QString ICore::userResourcePath()
{
// Create qtcreator dir if it doesn't yet exist
const QString configDir = QFileInfo(settings(QSettings::UserScope)->fileName()).path();
const QString urp = configDir + QLatin1String("/qtcreator");
QFileInfo fi(urp + QLatin1Char('/'));
if (!fi.exists()) {
QDir dir;
if (!dir.mkpath(urp))
qWarning() << "could not create" << urp;
}
return urp;
}
IContext *ICore::currentContextObject()
{
return m_mainwindow->currentContextObject();
}
QMainWindow *ICore::mainWindow()
{
return m_mainwindow;
}
QStatusBar *ICore::statusBar()
{
return m_mainwindow->statusBar();
}
void ICore::updateAdditionalContexts(const Context &remove, const Context &add)
{
m_mainwindow->updateAdditionalContexts(remove, add);
}
bool ICore::hasContext(int context)
{
return m_mainwindow->hasContext(context);
}
void ICore::addContextObject(IContext *context)
{
m_mainwindow->addContextObject(context);
}
void ICore::removeContextObject(IContext *context)
{
m_mainwindow->removeContextObject(context);
}
void ICore::openFiles(const QStringList &arguments, ICore::OpenFilesFlags flags)
{
m_mainwindow->openFiles(arguments, flags);
}
void ICore::emitNewItemsDialogRequested()
{
emit m_instance->newItemsDialogRequested();
}
} // namespace Core

View File

@@ -63,60 +63,63 @@ class SettingsDatabase;
class VariableManager; class VariableManager;
class VcsManager; class VcsManager;
namespace Internal { class MainWindow; }
class CORE_EXPORT ICore : public QObject class CORE_EXPORT ICore : public QObject
{ {
Q_OBJECT Q_OBJECT
public: friend class Internal::MainWindow;
ICore() {} explicit ICore(Internal::MainWindow *mw);
virtual ~ICore() {} ~ICore();
public:
static ICore *instance(); static ICore *instance();
virtual void showNewItemDialog(const QString &title, static void showNewItemDialog(const QString &title,
const QList<IWizard *> &wizards, const QList<IWizard *> &wizards,
const QString &defaultLocation = QString()) = 0; const QString &defaultLocation = QString());
virtual bool showOptionsDialog(const QString &group = QString(), static bool showOptionsDialog(const QString &group = QString(),
const QString &page = QString(), const QString &page = QString(),
QWidget *parent = 0) = 0; QWidget *parent = 0);
virtual bool showWarningWithOptions(const QString &title, const QString &text, static bool showWarningWithOptions(const QString &title, const QString &text,
const QString &details = QString(), const QString &details = QString(),
const QString &settingsCategory = QString(), const QString &settingsCategory = QString(),
const QString &settingsId = QString(), const QString &settingsId = QString(),
QWidget *parent = 0) = 0; QWidget *parent = 0);
virtual ActionManager *actionManager() const = 0; static ActionManager *actionManager();
virtual FileManager *fileManager() const = 0; static FileManager *fileManager();
virtual MessageManager *messageManager() const = 0; static MessageManager *messageManager();
virtual EditorManager *editorManager() const = 0; static EditorManager *editorManager();
virtual ProgressManager *progressManager() const = 0; static ProgressManager *progressManager();
virtual ScriptManager *scriptManager() const = 0; static ScriptManager *scriptManager();
virtual VariableManager *variableManager() const = 0; static VariableManager *variableManager();
virtual VcsManager *vcsManager() const = 0; static VcsManager *vcsManager();
virtual ModeManager *modeManager() const = 0; static ModeManager *modeManager();
virtual MimeDatabase *mimeDatabase() const = 0; static MimeDatabase *mimeDatabase();
virtual HelpManager *helpManager() const = 0; static HelpManager *helpManager();
virtual QSettings *settings(QSettings::Scope scope = QSettings::UserScope) const = 0; static QSettings *settings(QSettings::Scope scope = QSettings::UserScope);
virtual SettingsDatabase *settingsDatabase() const = 0; static SettingsDatabase *settingsDatabase();
virtual QPrinter *printer() const = 0; static QPrinter *printer();
virtual QString userInterfaceLanguage() const = 0; static QString userInterfaceLanguage();
virtual QString resourcePath() const = 0; static QString resourcePath();
virtual QString userResourcePath() const = 0; static QString userResourcePath();
virtual QMainWindow *mainWindow() const = 0; static QMainWindow *mainWindow();
virtual QStatusBar *statusBar() const = 0; static QStatusBar *statusBar();
virtual IContext *currentContextObject() const = 0; static IContext *currentContextObject();
// Adds and removes additional active contexts, these contexts are appended // Adds and removes additional active contexts, these contexts are appended
// to the currently active contexts. // to the currently active contexts.
virtual void updateAdditionalContexts(const Context &remove, const Context &add) = 0; static void updateAdditionalContexts(const Context &remove, const Context &add);
virtual bool hasContext(int context) const = 0; static bool hasContext(int context);
virtual void addContextObject(IContext *context) = 0; static void addContextObject(IContext *context);
virtual void removeContextObject(IContext *context) = 0; static void removeContextObject(IContext *context);
enum OpenFilesFlags { enum OpenFilesFlags {
None = 0, None = 0,
@@ -125,7 +128,9 @@ public:
/// Stop loading once the first file fails to load /// Stop loading once the first file fails to load
StopOnLoadFail = 4 StopOnLoadFail = 4
}; };
virtual void openFiles(const QStringList &fileNames, OpenFilesFlags flags = None) = 0; static void openFiles(const QStringList &fileNames, OpenFilesFlags flags = None);
static void emitNewItemsDialogRequested();
signals: signals:
void coreAboutToOpen(); void coreAboutToOpen();

View File

@@ -34,7 +34,7 @@
#include "actioncontainer.h" #include "actioncontainer.h"
#include "command.h" #include "command.h"
#include "actionmanager_p.h" #include "actionmanager_p.h"
#include "coreimpl.h" #include "icore.h"
#include "coreconstants.h" #include "coreconstants.h"
#include "editormanager.h" #include "editormanager.h"
#include "externaltool.h" #include "externaltool.h"
@@ -127,7 +127,7 @@ enum { debugMainWindow = 0 };
MainWindow::MainWindow() : MainWindow::MainWindow() :
EventFilteringMainWindow(), EventFilteringMainWindow(),
m_coreImpl(new CoreImpl(this)), m_coreImpl(new ICore(this)),
m_additionalContexts(Constants::C_GLOBAL), m_additionalContexts(Constants::C_GLOBAL),
m_settings(ExtensionSystem::PluginManager::instance()->settings()), m_settings(ExtensionSystem::PluginManager::instance()->settings()),
m_globalSettings(ExtensionSystem::PluginManager::instance()->globalSettings()), m_globalSettings(ExtensionSystem::PluginManager::instance()->globalSettings()),

View File

@@ -70,7 +70,6 @@ class VcsManager;
namespace Internal { namespace Internal {
class ActionManagerPrivate; class ActionManagerPrivate;
class CoreImpl;
class FancyTabWidget; class FancyTabWidget;
class GeneralSettings; class GeneralSettings;
class ProgressManagerPrivate; class ProgressManagerPrivate;
@@ -180,7 +179,7 @@ private:
void readSettings(); void readSettings();
void writeSettings(); void writeSettings();
CoreImpl *m_coreImpl; ICore *m_coreImpl;
Context m_additionalContexts; Context m_additionalContexts;
QSettings *m_settings; QSettings *m_settings;
QSettings *m_globalSettings; QSettings *m_globalSettings;

View File

@@ -33,7 +33,7 @@
#include "projectwizardpage.h" #include "projectwizardpage.h"
#include "ui_projectwizardpage.h" #include "ui_projectwizardpage.h"
#include <coreplugin/coreimpl.h> #include <coreplugin/icore.h>
#include <vcsbase/vcsbaseconstants.h> #include <vcsbase/vcsbaseconstants.h>
#include <QtCore/QDir> #include <QtCore/QDir>