diff options
Diffstat (limited to 'src/plugins/coreplugin/editormanager/editormanager.cpp')
-rw-r--r-- | src/plugins/coreplugin/editormanager/editormanager.cpp | 105 |
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; |