aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/coreplugin/editormanager/editormanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/coreplugin/editormanager/editormanager.cpp')
-rw-r--r--src/plugins/coreplugin/editormanager/editormanager.cpp105
1 files changed, 51 insertions, 54 deletions
diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index 9a10447a9d..9809c6e4f5 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -186,8 +186,9 @@ EditorManagerPlaceHolder* EditorManagerPlaceHolder::current()
namespace Core {
-struct EditorManagerPrivate {
- explicit EditorManagerPrivate(ICore *core, QWidget *parent);
+struct EditorManagerPrivate
+{
+ explicit EditorManagerPrivate(QWidget *parent);
~EditorManagerPrivate();
Internal::EditorView *m_view;
Internal::SplitterOrView *m_splitter;
@@ -195,9 +196,6 @@ struct EditorManagerPrivate {
QPointer<SplitterOrView> m_currentView;
QTimer *m_autoSaveTimer;
- ICore *m_core;
-
-
// actions
QAction *m_revertToSavedAction;
QAction *m_saveAction;
@@ -239,11 +237,10 @@ struct EditorManagerPrivate {
};
}
-EditorManagerPrivate::EditorManagerPrivate(ICore *core, QWidget *parent) :
+EditorManagerPrivate::EditorManagerPrivate(QWidget *parent) :
m_view(0),
m_splitter(0),
m_autoSaveTimer(0),
- m_core(core),
m_revertToSavedAction(new QAction(EditorManager::tr("Revert to Saved"), parent)),
m_saveAction(new QAction(parent)),
m_saveAsAction(new QAction(parent)),
@@ -286,20 +283,20 @@ static Command *createSeparator(ActionManager *am, QObject *parent,
return cmd;
}
-EditorManager::EditorManager(ICore *core, QWidget *parent) :
+EditorManager::EditorManager(QWidget *parent) :
QWidget(parent),
- d(new EditorManagerPrivate(core, parent))
+ d(new EditorManagerPrivate(parent))
{
m_instance = this;
- connect(d->m_core, SIGNAL(contextAboutToChange(Core::IContext *)),
+ connect(ICore::instance(), SIGNAL(contextAboutToChange(Core::IContext *)),
this, SLOT(handleContextChange(Core::IContext *)));
const Context editManagerContext(Constants::C_EDITORMANAGER);
// combined context for edit & design modes
const Context editDesignContext(Constants::C_EDITORMANAGER, Constants::C_DESIGN_MODE);
- ActionManager *am = d->m_core->actionManager();
+ ActionManager *am = ICore::actionManager();
ActionContainer *mfile = am->actionContainer(Constants::M_FILE);
// Revert to saved
@@ -488,7 +485,7 @@ EditorManager::EditorManager(ICore *core, QWidget *parent) :
EditorManager::~EditorManager()
{
m_instance = 0;
- if (d->m_core) {
+ if (ICore::instance()) {
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
if (d->m_coreListener) {
pm->removeObject(d->m_coreListener);
@@ -540,7 +537,7 @@ void EditorManager::removeEditor(IEditor *editor)
d->m_editorModel->removeEditor(editor);
if (!isDuplicate)
FileManager::instance()->removeFile(editor->file());
- d->m_core->removeContextObject(editor);
+ ICore::removeContextObject(editor);
}
void EditorManager::handleContextChange(Core::IContext *context)
@@ -817,7 +814,7 @@ void EditorManager::closeOtherEditorsFromContextMenu()
void EditorManager::showInGraphicalShell()
{
const QString path = d->m_contextMenuEditorIndex.data(Qt::UserRole + 1).toString();
- Core::FileUtils::showInGraphicalShell(ICore::instance()->mainWindow(), path);
+ Core::FileUtils::showInGraphicalShell(ICore::mainWindow(), path);
}
void EditorManager::openTerminal()
@@ -873,7 +870,7 @@ bool EditorManager::closeEditors(const QList<IEditor*> &editorsToClose, bool ask
//ask whether to save modified files
if (askAboutModifiedEditors) {
bool cancelled = false;
- QList<IFile*> list = d->m_core->fileManager()->
+ QList<IFile*> list = ICore::fileManager()->
saveModifiedFiles(filesForEditors(acceptedEditors), &cancelled);
if (cancelled)
return false;
@@ -1132,7 +1129,7 @@ EditorManager::EditorFactoryList
{
EditorFactoryList rc;
const EditorFactoryList allFactories = pluginManager()->getObjects<IEditorFactory>();
- mimeTypeFactoryRecursion(d->m_core->mimeDatabase(), mimeType, allFactories, bestMatchOnly, &rc);
+ mimeTypeFactoryRecursion(ICore::mimeDatabase(), mimeType, allFactories, bestMatchOnly, &rc);
if (debugEditorManager)
qDebug() << Q_FUNC_INFO << mimeType.type() << " returns " << rc;
return rc;
@@ -1143,7 +1140,7 @@ EditorManager::ExternalEditorList
{
ExternalEditorList rc;
const ExternalEditorList allEditors = pluginManager()->getObjects<IExternalEditor>();
- mimeTypeFactoryRecursion(d->m_core->mimeDatabase(), mimeType, allEditors, bestMatchOnly, &rc);
+ mimeTypeFactoryRecursion(ICore::mimeDatabase(), mimeType, allEditors, bestMatchOnly, &rc);
if (debugEditorManager)
qDebug() << Q_FUNC_INFO << mimeType.type() << " returns " << rc;
return rc;
@@ -1170,15 +1167,15 @@ IEditor *EditorManager::createEditor(const Id &editorId, const QString &fileName
if (!editorId.isValid()) {
const QFileInfo fileInfo(fileName);
// Find by mime type
- MimeType mimeType = d->m_core->mimeDatabase()->findByFile(fileInfo);
+ MimeType mimeType = ICore::mimeDatabase()->findByFile(fileInfo);
if (!mimeType) {
qWarning("%s unable to determine mime type of %s/%s. Falling back to text/plain",
Q_FUNC_INFO, fileName.toUtf8().constData(), editorId.name().constData());
- mimeType = d->m_core->mimeDatabase()->findByType(QLatin1String("text/plain"));
+ mimeType = ICore::mimeDatabase()->findByType(QLatin1String("text/plain"));
}
// open text files > 48 MB in binary editor
if (fileInfo.size() > maxTextFileSize() && mimeType.type().startsWith(QLatin1String("text")))
- mimeType = d->m_core->mimeDatabase()->findByType(QLatin1String("application/octet-stream"));
+ mimeType = ICore::mimeDatabase()->findByType(QLatin1String("application/octet-stream"));
factories = editorFactories(mimeType, true);
} else {
// Find by editor id
@@ -1203,15 +1200,15 @@ void EditorManager::addEditor(IEditor *editor, bool isDuplicate)
{
if (!editor)
return;
- d->m_core->addContextObject(editor);
+ ICore::addContextObject(editor);
d->m_editorModel->addEditor(editor, isDuplicate);
if (!isDuplicate) {
const bool isTemporary = editor->isTemporary();
const bool addWatcher = !isTemporary;
- d->m_core->fileManager()->addFile(editor->file(), addWatcher);
+ ICore::fileManager()->addFile(editor->file(), addWatcher);
if (!isTemporary)
- d->m_core->fileManager()->addToRecentFiles(editor->file()->fileName(),
+ ICore::fileManager()->addToRecentFiles(editor->file()->fileName(),
editor->id());
}
emit editorOpened(editor);
@@ -1223,7 +1220,7 @@ Core::Id EditorManager::getOpenWithEditorId(const QString &fileName,
bool *isExternalEditor) const
{
// Collect editors that can open the file
- const MimeType mt = d->m_core->mimeDatabase()->findByFile(fileName);
+ const MimeType mt = ICore::mimeDatabase()->findByFile(fileName);
if (!mt)
return Id();
QStringList allEditorIds;
@@ -1244,7 +1241,7 @@ Core::Id EditorManager::getOpenWithEditorId(const QString &fileName,
if (allEditorIds.empty())
return Id();
// Run dialog.
- OpenWithDialog dialog(fileName, d->m_core->mainWindow());
+ OpenWithDialog dialog(fileName, ICore::mainWindow());
dialog.setEditors(allEditorIds);
dialog.setCurrentEditor(0);
if (dialog.exec() != QDialog::Accepted)
@@ -1330,7 +1327,7 @@ IEditor *EditorManager::openEditor(Core::Internal::EditorView *view, const QStri
QString errorString;
if (!editor->open(&errorString, fn, realFn)) {
QApplication::restoreOverrideCursor();
- QMessageBox::critical(d->m_core->mainWindow(), tr("File Error"), errorString);
+ QMessageBox::critical(ICore::mainWindow(), tr("File Error"), errorString);
delete editor;
return 0;
}
@@ -1362,15 +1359,15 @@ bool EditorManager::openExternalEditor(const QString &fileName, const Core::Id &
const bool ok = ee->startEditor(fileName, &errorMessage);
QApplication::restoreOverrideCursor();
if (!ok)
- QMessageBox::critical(d->m_core->mainWindow(), tr("Opening File"), errorMessage);
+ QMessageBox::critical(ICore::mainWindow(), tr("Opening File"), errorMessage);
return ok;
}
QStringList EditorManager::getOpenFileNames() const
{
QString selectedFilter;
- const QString &fileFilters = d->m_core->mimeDatabase()->allFiltersString(&selectedFilter);
- return ICore::instance()->fileManager()->getOpenFileNames(fileFilters,
+ const QString &fileFilters = ICore::mimeDatabase()->allFiltersString(&selectedFilter);
+ return ICore::fileManager()->getOpenFileNames(fileFilters,
QString(), &selectedFilter);
}
@@ -1488,7 +1485,7 @@ bool EditorManager::saveFile(IFile *fileParam)
bool isReadOnly;
// try saving, no matter what isReadOnly tells us
- success = d->m_core->fileManager()->saveFile(file, QString(), &isReadOnly);
+ success = ICore::fileManager()->saveFile(file, QString(), &isReadOnly);
if (!success && isReadOnly) {
MakeWritableResult answer =
@@ -1500,7 +1497,7 @@ bool EditorManager::saveFile(IFile *fileParam)
file->checkPermissions();
- success = d->m_core->fileManager()->saveFile(file);
+ success = ICore::fileManager()->saveFile(file);
}
if (success) {
@@ -1525,7 +1522,7 @@ void EditorManager::autoSave()
errors << errorString;
}
if (!errors.isEmpty())
- QMessageBox::critical(d->m_core->mainWindow(), tr("File Error"),
+ QMessageBox::critical(ICore::mainWindow(), tr("File Error"),
errors.join(QLatin1String("\n")));
}
@@ -1534,13 +1531,13 @@ MakeWritableResult EditorManager::makeFileWritable(IFile *file)
if (!file)
return Failed;
QString directory = QFileInfo(file->fileName()).absolutePath();
- IVersionControl *versionControl = d->m_core->vcsManager()->findVersionControlForDirectory(directory);
+ IVersionControl *versionControl = ICore::vcsManager()->findVersionControlForDirectory(directory);
const QString &fileName = file->fileName();
- switch (FileManager::promptReadOnlyFile(fileName, versionControl, d->m_core->mainWindow(), file->isSaveAsAllowed())) {
+ switch (FileManager::promptReadOnlyFile(fileName, versionControl, ICore::mainWindow(), file->isSaveAsAllowed())) {
case FileManager::RO_OpenVCS:
if (!versionControl->vcsOpen(fileName)) {
- QMessageBox::warning(d->m_core->mainWindow(), tr("Cannot Open File"), tr("Cannot open the file for editing with SCC."));
+ QMessageBox::warning(ICore::mainWindow(), tr("Cannot Open File"), tr("Cannot open the file for editing with SCC."));
return Failed;
}
file->checkPermissions();
@@ -1548,7 +1545,7 @@ MakeWritableResult EditorManager::makeFileWritable(IFile *file)
case FileManager::RO_MakeWriteable: {
const bool permsOk = QFile::setPermissions(fileName, QFile::permissions(fileName) | QFile::WriteUser);
if (!permsOk) {
- QMessageBox::warning(d->m_core->mainWindow(), tr("Cannot Set Permissions"), tr("Cannot set permissions to writable."));
+ QMessageBox::warning(ICore::mainWindow(), tr("Cannot Set Permissions"), tr("Cannot set permissions to writable."));
return Failed;
}
}
@@ -1570,11 +1567,11 @@ bool EditorManager::saveFileAs(IFile *fileParam)
if (!file)
return false;
- const QString &filter = d->m_core->mimeDatabase()->allFiltersString();
+ const QString &filter = ICore::mimeDatabase()->allFiltersString();
QString selectedFilter =
- d->m_core->mimeDatabase()->findByFile(QFileInfo(file->fileName())).filterString();
+ ICore::mimeDatabase()->findByFile(QFileInfo(file->fileName())).filterString();
const QString &absoluteFilePath =
- d->m_core->fileManager()->getSaveAsFileName(file, filter, &selectedFilter);
+ ICore::fileManager()->getSaveAsFileName(file, filter, &selectedFilter);
if (absoluteFilePath.isEmpty())
return false;
@@ -1587,7 +1584,7 @@ bool EditorManager::saveFileAs(IFile *fileParam)
}
}
- const bool success = d->m_core->fileManager()->saveFile(file, absoluteFilePath);
+ const bool success = ICore::fileManager()->saveFile(file, absoluteFilePath);
file->checkPermissions();
// @todo: There is an issue to be treated here. The new file might be of a different mime
@@ -1617,7 +1614,7 @@ void EditorManager::addFileToRecentFiles(IFile *file)
}
}
if (!isTemporary)
- d->m_core->fileManager()->addToRecentFiles(file->fileName(), editorId);
+ ICore::fileManager()->addToRecentFiles(file->fileName(), editorId);
}
void EditorManager::gotoNextDocHistory()
@@ -1659,12 +1656,12 @@ void EditorManager::vcsOpenCurrentEditor()
return;
const QString directory = QFileInfo(curEditor->file()->fileName()).absolutePath();
- IVersionControl *versionControl = d->m_core->vcsManager()->findVersionControlForDirectory(directory);
+ IVersionControl *versionControl = ICore::vcsManager()->findVersionControlForDirectory(directory);
if (!versionControl || !versionControl->supportsOperation(IVersionControl::OpenOperation))
return;
if (!versionControl->vcsOpen(curEditor->file()->fileName())) {
- QMessageBox::warning(d->m_core->mainWindow(), tr("Cannot Open File"),
+ QMessageBox::warning(ICore::mainWindow(), tr("Cannot Open File"),
tr("Cannot open the file for editing with VCS."));
}
}
@@ -1683,11 +1680,11 @@ void EditorManager::updateWindowTitle()
windowTitle.prepend(editorName + dashSep);
QString filePath = QFileInfo(curEditor->file()->fileName()).absoluteFilePath();
if (!filePath.isEmpty())
- d->m_core->mainWindow()->setWindowFilePath(filePath);
+ ICore::mainWindow()->setWindowFilePath(filePath);
} else {
- d->m_core->mainWindow()->setWindowFilePath(QString());
+ ICore::mainWindow()->setWindowFilePath(QString());
}
- d->m_core->mainWindow()->setWindowTitle(windowTitle);
+ ICore::mainWindow()->setWindowTitle(windowTitle);
}
void EditorManager::handleEditorStateChange()
@@ -1729,7 +1726,7 @@ void EditorManager::updateActions()
// if we do not really show a warning.
bool promptVCS = false;
const QString directory = QFileInfo(curEditor->file()->fileName()).absolutePath();
- IVersionControl *versionControl = d->m_core->vcsManager()->findVersionControlForDirectory(directory);
+ IVersionControl *versionControl = ICore::vcsManager()->findVersionControlForDirectory(directory);
if (versionControl && versionControl->supportsOperation(IVersionControl::OpenOperation)) {
if (versionControl->settingsFlags() & IVersionControl::AutoOpen) {
vcsOpenCurrentEditor();
@@ -1883,7 +1880,7 @@ void EditorManager::showPopupOrSelectDocument() const
// EditorManager is invisible when invoked from Design Mode.
const QPoint p = isVisible() ?
mapToGlobal(QPoint(0, 0)) :
- d->m_core->mainWindow()->mapToGlobal(QPoint(0, 0));
+ ICore::mainWindow()->mapToGlobal(QPoint(0, 0));
windowPopup()->move((width()-d->m_windowPopup->width())/2 + p.x(),
(height()-d->m_windowPopup->height())/2 + p.y());
windowPopup()->setVisible(true);
@@ -1995,7 +1992,7 @@ static const char autoSaveIntervalKey[] = "EditorManager/AutoSaveInterval";
void EditorManager::saveSettings()
{
- SettingsDatabase *settings = d->m_core->settingsDatabase();
+ SettingsDatabase *settings = ICore::settingsDatabase();
settings->setValue(QLatin1String(documentStatesKey), d->m_editorStates);
settings->setValue(QLatin1String(reloadBehaviorKey), d->m_reloadSetting);
settings->setValue(QLatin1String(autoSaveEnabledKey), d->m_autoSaveEnabled);
@@ -2005,14 +2002,14 @@ void EditorManager::saveSettings()
void EditorManager::readSettings()
{
// Backward compatibility to old locations for these settings
- QSettings *qs = d->m_core->settings();
+ QSettings *qs = ICore::settings();
if (qs->contains(QLatin1String(documentStatesKey))) {
d->m_editorStates = qs->value(QLatin1String(documentStatesKey))
.value<QMap<QString, QVariant> >();
qs->remove(QLatin1String(documentStatesKey));
}
- SettingsDatabase *settings = d->m_core->settingsDatabase();
+ SettingsDatabase *settings = ICore::settingsDatabase();
if (settings->contains(QLatin1String(documentStatesKey)))
d->m_editorStates = settings->value(QLatin1String(documentStatesKey))
.value<QMap<QString, QVariant> >();
@@ -2039,7 +2036,7 @@ void EditorManager::revertToSaved()
if (currEditor->file()->isModified()) {
QMessageBox msgBox(QMessageBox::Question, tr("Revert to Saved"),
tr("You will lose your current changes if you proceed reverting %1.").arg(QDir::toNativeSeparators(fileName)),
- QMessageBox::Yes|QMessageBox::No, d->m_core->mainWindow());
+ QMessageBox::Yes|QMessageBox::No, ICore::mainWindow());
msgBox.button(QMessageBox::Yes)->setText(tr("Proceed"));
msgBox.button(QMessageBox::No)->setText(tr("Cancel"));
msgBox.setDefaultButton(QMessageBox::No);
@@ -2050,7 +2047,7 @@ void EditorManager::revertToSaved()
}
QString errorString;
if (!currEditor->file()->reload(&errorString, IFile::FlagReload, IFile::TypeContents))
- QMessageBox::critical(d->m_core->mainWindow(), tr("File Error"), errorString);
+ QMessageBox::critical(ICore::mainWindow(), tr("File Error"), errorString);
}
void EditorManager::showEditorStatusBar(const QString &id,
@@ -2101,7 +2098,7 @@ int EditorManager::autoSaveInterval() const
QTextCodec *EditorManager::defaultTextCodec() const
{
- QSettings *settings = Core::ICore::instance()->settings();
+ QSettings *settings = Core::ICore::settings();
if (QTextCodec *candidate = QTextCodec::codecForName(
settings->value(QLatin1String(Constants::SETTINGS_DEFAULTTEXTENCODING)).toByteArray()))
return candidate;