forked from qt-creator/qt-creator
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:
@@ -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();
|
||||
}
|
||||
@@ -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
|
||||
@@ -57,7 +57,6 @@ SOURCES += mainwindow.cpp \
|
||||
coreplugin.cpp \
|
||||
variablemanager.cpp \
|
||||
modemanager.cpp \
|
||||
coreimpl.cpp \
|
||||
basefilewizard.cpp \
|
||||
generatedfile.cpp \
|
||||
plugindialog.cpp \
|
||||
@@ -160,7 +159,6 @@ HEADERS += mainwindow.h \
|
||||
coreplugin.h \
|
||||
variablemanager.h \
|
||||
modemanager.h \
|
||||
coreimpl.h \
|
||||
basefilewizard.h \
|
||||
generatedfile.h \
|
||||
plugindialog.h \
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
**************************************************************************/
|
||||
|
||||
#include "iwizard.h"
|
||||
#include "coreimpl.h"
|
||||
#include "icore.h"
|
||||
|
||||
#include <extensionsystem/pluginmanager.h>
|
||||
|
||||
@@ -145,8 +145,7 @@ template <class Predicate>
|
||||
QList<IWizard*> findWizards(Predicate predicate)
|
||||
{
|
||||
// Hack: Trigger delayed creation of wizards
|
||||
if (Core::Internal::CoreImpl *ci = qobject_cast<Core::Internal::CoreImpl*>(ICore::instance()))
|
||||
ci->emitNewItemsDialogRequested();
|
||||
ICore::emitNewItemsDialogRequested();
|
||||
// Filter all wizards
|
||||
const QList<IWizard*> allWizards = IWizard::allWizards();
|
||||
QList<IWizard*> rc;
|
||||
@@ -160,8 +159,7 @@ template <class Predicate>
|
||||
QList<IWizard*> IWizard::allWizards()
|
||||
{
|
||||
// Hack: Trigger delayed creation of wizards
|
||||
if (Core::Internal::CoreImpl *ci = qobject_cast<Core::Internal::CoreImpl*>(ICore::instance()))
|
||||
ci->emitNewItemsDialogRequested();
|
||||
ICore::emitNewItemsDialogRequested();
|
||||
return ExtensionSystem::PluginManager::instance()->getObjects<IWizard>();
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
#include "editorview.h"
|
||||
#include "editormanager.h"
|
||||
#include "coreimpl.h"
|
||||
#include "icore.h"
|
||||
#include "minisplitter.h"
|
||||
#include "openeditorsmodel.h"
|
||||
|
||||
@@ -139,7 +139,7 @@ EditorView::~EditorView()
|
||||
|
||||
void EditorView::closeView()
|
||||
{
|
||||
EditorManager *em = CoreImpl::instance()->editorManager();
|
||||
EditorManager *em = ICore::instance()->editorManager();
|
||||
IEditor *editor = currentEditor();
|
||||
if (editor)
|
||||
em->closeEditor(editor);
|
||||
@@ -406,7 +406,7 @@ void EditorView::updateCurrentPositionInNavigationHistory()
|
||||
|
||||
void EditorView::goBackInNavigationHistory()
|
||||
{
|
||||
EditorManager *em = CoreImpl::instance()->editorManager();
|
||||
EditorManager *em = ICore::instance()->editorManager();
|
||||
updateCurrentPositionInNavigationHistory();
|
||||
while (m_currentNavigationHistoryPosition > 0) {
|
||||
--m_currentNavigationHistoryPosition;
|
||||
@@ -431,7 +431,7 @@ void EditorView::goBackInNavigationHistory()
|
||||
|
||||
void EditorView::goForwardInNavigationHistory()
|
||||
{
|
||||
EditorManager *em = CoreImpl::instance()->editorManager();
|
||||
EditorManager *em = ICore::instance()->editorManager();
|
||||
updateCurrentPositionInNavigationHistory();
|
||||
if (m_currentNavigationHistoryPosition >= m_navigationHistory.size()-1)
|
||||
return;
|
||||
@@ -490,12 +490,12 @@ void SplitterOrView::mousePressEvent(QMouseEvent *e)
|
||||
if (e->button() != Qt::LeftButton)
|
||||
return;
|
||||
setFocus(Qt::MouseFocusReason);
|
||||
CoreImpl::instance()->editorManager()->setCurrentView(this);
|
||||
ICore::instance()->editorManager()->setCurrentView(this);
|
||||
}
|
||||
|
||||
void SplitterOrView::paintEvent(QPaintEvent *)
|
||||
{
|
||||
if (CoreImpl::instance()->editorManager()->currentSplitterOrView() != this)
|
||||
if (ICore::instance()->editorManager()->currentSplitterOrView() != this)
|
||||
return;
|
||||
|
||||
if (!m_view || hasEditors())
|
||||
@@ -657,7 +657,7 @@ void SplitterOrView::split(Qt::Orientation orientation)
|
||||
m_splitter = new MiniSplitter(this);
|
||||
m_splitter->setOrientation(orientation);
|
||||
m_layout->addWidget(m_splitter);
|
||||
EditorManager *em = CoreImpl::instance()->editorManager();
|
||||
EditorManager *em = ICore::instance()->editorManager();
|
||||
Core::IEditor *e = m_view->currentEditor();
|
||||
|
||||
SplitterOrView *view = 0;
|
||||
@@ -710,7 +710,7 @@ void SplitterOrView::unsplitAll()
|
||||
void SplitterOrView::unsplitAll_helper()
|
||||
{
|
||||
if (!m_isRoot && m_view)
|
||||
CoreImpl::instance()->editorManager()->emptyView(m_view);
|
||||
ICore::instance()->editorManager()->emptyView(m_view);
|
||||
if (m_splitter) {
|
||||
for (int i = 0; i < m_splitter->count(); ++i) {
|
||||
if (SplitterOrView *splitterOrView = qobject_cast<SplitterOrView*>(m_splitter->widget(i))) {
|
||||
@@ -726,7 +726,7 @@ void SplitterOrView::unsplit()
|
||||
return;
|
||||
|
||||
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));
|
||||
QSplitter *oldSplitter = m_splitter;
|
||||
m_splitter = 0;
|
||||
@@ -771,7 +771,7 @@ QByteArray SplitterOrView::saveState() const
|
||||
<< static_cast<SplitterOrView*>(m_splitter->widget(1))->saveState();
|
||||
} else {
|
||||
IEditor* e = editor();
|
||||
EditorManager *em = CoreImpl::instance()->editorManager();
|
||||
EditorManager *em = ICore::instance()->editorManager();
|
||||
|
||||
// don't save state of temporary or ad-hoc editors
|
||||
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(1))->restoreState(second);
|
||||
} else if (mode == "editor" || mode == "currenteditor") {
|
||||
EditorManager *em = CoreImpl::instance()->editorManager();
|
||||
EditorManager *em = ICore::instance()->editorManager();
|
||||
QString fileName;
|
||||
QString id;
|
||||
QByteArray editorState;
|
||||
|
||||
@@ -343,3 +343,213 @@
|
||||
\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.
|
||||
*/
|
||||
|
||||
#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
|
||||
|
||||
@@ -63,60 +63,63 @@ class SettingsDatabase;
|
||||
class VariableManager;
|
||||
class VcsManager;
|
||||
|
||||
namespace Internal { class MainWindow; }
|
||||
|
||||
class CORE_EXPORT ICore : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
ICore() {}
|
||||
virtual ~ICore() {}
|
||||
friend class Internal::MainWindow;
|
||||
explicit ICore(Internal::MainWindow *mw);
|
||||
~ICore();
|
||||
|
||||
public:
|
||||
static ICore *instance();
|
||||
|
||||
virtual void showNewItemDialog(const QString &title,
|
||||
const QList<IWizard *> &wizards,
|
||||
const QString &defaultLocation = QString()) = 0;
|
||||
static void showNewItemDialog(const QString &title,
|
||||
const QList<IWizard *> &wizards,
|
||||
const QString &defaultLocation = QString());
|
||||
|
||||
virtual bool showOptionsDialog(const QString &group = QString(),
|
||||
const QString &page = QString(),
|
||||
QWidget *parent = 0) = 0;
|
||||
static bool showOptionsDialog(const QString &group = QString(),
|
||||
const QString &page = QString(),
|
||||
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 &settingsCategory = QString(),
|
||||
const QString &settingsId = QString(),
|
||||
QWidget *parent = 0) = 0;
|
||||
QWidget *parent = 0);
|
||||
|
||||
virtual ActionManager *actionManager() const = 0;
|
||||
virtual FileManager *fileManager() const = 0;
|
||||
virtual MessageManager *messageManager() const = 0;
|
||||
virtual EditorManager *editorManager() const = 0;
|
||||
virtual ProgressManager *progressManager() const = 0;
|
||||
virtual ScriptManager *scriptManager() const = 0;
|
||||
virtual VariableManager *variableManager() const = 0;
|
||||
virtual VcsManager *vcsManager() const = 0;
|
||||
virtual ModeManager *modeManager() const = 0;
|
||||
virtual MimeDatabase *mimeDatabase() const = 0;
|
||||
virtual HelpManager *helpManager() const = 0;
|
||||
static ActionManager *actionManager();
|
||||
static FileManager *fileManager();
|
||||
static MessageManager *messageManager();
|
||||
static EditorManager *editorManager();
|
||||
static ProgressManager *progressManager();
|
||||
static ScriptManager *scriptManager();
|
||||
static VariableManager *variableManager();
|
||||
static VcsManager *vcsManager();
|
||||
static ModeManager *modeManager();
|
||||
static MimeDatabase *mimeDatabase();
|
||||
static HelpManager *helpManager();
|
||||
|
||||
virtual QSettings *settings(QSettings::Scope scope = QSettings::UserScope) const = 0;
|
||||
virtual SettingsDatabase *settingsDatabase() const = 0;
|
||||
virtual QPrinter *printer() const = 0;
|
||||
virtual QString userInterfaceLanguage() const = 0;
|
||||
static QSettings *settings(QSettings::Scope scope = QSettings::UserScope);
|
||||
static SettingsDatabase *settingsDatabase();
|
||||
static QPrinter *printer();
|
||||
static QString userInterfaceLanguage();
|
||||
|
||||
virtual QString resourcePath() const = 0;
|
||||
virtual QString userResourcePath() const = 0;
|
||||
static QString resourcePath();
|
||||
static QString userResourcePath();
|
||||
|
||||
virtual QMainWindow *mainWindow() const = 0;
|
||||
virtual QStatusBar *statusBar() const = 0;
|
||||
static QMainWindow *mainWindow();
|
||||
static QStatusBar *statusBar();
|
||||
|
||||
virtual IContext *currentContextObject() const = 0;
|
||||
static IContext *currentContextObject();
|
||||
// Adds and removes additional active contexts, these contexts are appended
|
||||
// to the currently active contexts.
|
||||
virtual void updateAdditionalContexts(const Context &remove, const Context &add) = 0;
|
||||
virtual bool hasContext(int context) const = 0;
|
||||
virtual void addContextObject(IContext *context) = 0;
|
||||
virtual void removeContextObject(IContext *context) = 0;
|
||||
static void updateAdditionalContexts(const Context &remove, const Context &add);
|
||||
static bool hasContext(int context);
|
||||
static void addContextObject(IContext *context);
|
||||
static void removeContextObject(IContext *context);
|
||||
|
||||
enum OpenFilesFlags {
|
||||
None = 0,
|
||||
@@ -125,7 +128,9 @@ public:
|
||||
/// Stop loading once the first file fails to load
|
||||
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:
|
||||
void coreAboutToOpen();
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
#include "actioncontainer.h"
|
||||
#include "command.h"
|
||||
#include "actionmanager_p.h"
|
||||
#include "coreimpl.h"
|
||||
#include "icore.h"
|
||||
#include "coreconstants.h"
|
||||
#include "editormanager.h"
|
||||
#include "externaltool.h"
|
||||
@@ -127,7 +127,7 @@ enum { debugMainWindow = 0 };
|
||||
|
||||
MainWindow::MainWindow() :
|
||||
EventFilteringMainWindow(),
|
||||
m_coreImpl(new CoreImpl(this)),
|
||||
m_coreImpl(new ICore(this)),
|
||||
m_additionalContexts(Constants::C_GLOBAL),
|
||||
m_settings(ExtensionSystem::PluginManager::instance()->settings()),
|
||||
m_globalSettings(ExtensionSystem::PluginManager::instance()->globalSettings()),
|
||||
|
||||
@@ -70,7 +70,6 @@ class VcsManager;
|
||||
namespace Internal {
|
||||
|
||||
class ActionManagerPrivate;
|
||||
class CoreImpl;
|
||||
class FancyTabWidget;
|
||||
class GeneralSettings;
|
||||
class ProgressManagerPrivate;
|
||||
@@ -180,7 +179,7 @@ private:
|
||||
void readSettings();
|
||||
void writeSettings();
|
||||
|
||||
CoreImpl *m_coreImpl;
|
||||
ICore *m_coreImpl;
|
||||
Context m_additionalContexts;
|
||||
QSettings *m_settings;
|
||||
QSettings *m_globalSettings;
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
#include "projectwizardpage.h"
|
||||
#include "ui_projectwizardpage.h"
|
||||
|
||||
#include <coreplugin/coreimpl.h>
|
||||
#include <coreplugin/icore.h>
|
||||
#include <vcsbase/vcsbaseconstants.h>
|
||||
|
||||
#include <QtCore/QDir>
|
||||
|
||||
Reference in New Issue
Block a user