Switch less often to edit mode

This change
* Removes IMode::type, ModeManager::activateModeType, and
  IEditor::preferredModeType, and adds IEditor::isDesignModePreferred
  instead
* Adapts the mode switching code in EditorManager to handle multiple
  windows, for example switching to edit mode should only happen if
  the editor/view is in the main window. Otherwise the editor window
  should be raised and focused
* Renames EditorManager::NoActivate --> DoNotChangeCurrentEditor
* Reverts the EditorManager::ModeSwitch logic to switch mode or
  make the current editor visible by default, introducing
  DoNotMakeVisible flag instead
* Fixes a few instances where EditorManager::ModeSwitch should have been
  used

One non-trivial problem left: If you open a .ui file and switch to an
external editor window, edit mode is activated, because the current
editor no longer is a .ui file, which means that the design mode gets
deactivated.

Change-Id: I76c5c2391eb4090143b778fb103acff3a5a1ff41
Reviewed-by: David Schulz <david.schulz@digia.com>
This commit is contained in:
Eike Ziller
2013-05-31 12:52:53 +02:00
parent f99ce422b4
commit 7c8db79817
74 changed files with 135 additions and 233 deletions

View File

@@ -102,7 +102,6 @@ public:
setIcon(QIcon(QLatin1String(":/images/analyzer_mode.png"))); setIcon(QIcon(QLatin1String(":/images/analyzer_mode.png")));
setPriority(P_MODE_ANALYZE); setPriority(P_MODE_ANALYZE);
setId(MODE_ANALYZE); setId(MODE_ANALYZE);
setType(MODE_EDIT_TYPE);
} }
~AnalyzerMode() ~AnalyzerMode()

View File

@@ -540,9 +540,7 @@ void BazaarPlugin::showCommitWidget(const QList<VcsBase::VcsBaseClient::StatusIt
return; return;
} }
Core::IEditor *editor = Core::EditorManager::openEditor(saver.fileName(), Core::IEditor *editor = Core::EditorManager::openEditor(saver.fileName(), Constants::COMMIT_ID);
Constants::COMMIT_ID,
Core::EditorManager::ModeSwitch);
if (!editor) { if (!editor) {
outputWindow->appendError(tr("Unable to create an editor for the commit.")); outputWindow->appendError(tr("Unable to create an editor for the commit."));
return; return;

View File

@@ -687,9 +687,7 @@ QString ClearCasePlugin::ccGetFileActivity(const QString &workingDir, const QStr
ClearCaseSubmitEditor *ClearCasePlugin::openClearCaseSubmitEditor(const QString &fileName, bool isUcm) ClearCaseSubmitEditor *ClearCasePlugin::openClearCaseSubmitEditor(const QString &fileName, bool isUcm)
{ {
Core::IEditor *editor = Core::IEditor *editor =
Core::EditorManager::openEditor(fileName, Core::EditorManager::openEditor(fileName, Constants::CLEARCASECHECKINEDITOR_ID);
Constants::CLEARCASECHECKINEDITOR_ID,
Core::EditorManager::ModeSwitch);
ClearCaseSubmitEditor *submitEditor = qobject_cast<ClearCaseSubmitEditor*>(editor); ClearCaseSubmitEditor *submitEditor = qobject_cast<ClearCaseSubmitEditor*>(editor);
QTC_CHECK(submitEditor); QTC_CHECK(submitEditor);
submitEditor->registerActions(m_submitUndoAction, m_submitRedoAction, m_checkInSelectedAction, m_checkInDiffAction); submitEditor->registerActions(m_submitUndoAction, m_submitRedoAction, m_checkInSelectedAction, m_checkInDiffAction);
@@ -932,7 +930,7 @@ void ClearCasePlugin::ccDiffWithPred(const QString &workingDir, const QStringLis
// Show in the same editor if diff has been executed before // Show in the same editor if diff has been executed before
if (Core::IEditor *existingEditor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) { if (Core::IEditor *existingEditor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) {
existingEditor->createNew(result); existingEditor->createNew(result);
Core::EditorManager::activateEditor(existingEditor, Core::EditorManager::ModeSwitch); Core::EditorManager::activateEditor(existingEditor);
setDiffBaseDirectory(existingEditor, workingDir); setDiffBaseDirectory(existingEditor, workingDir);
return; return;
} }
@@ -1192,7 +1190,7 @@ void ClearCasePlugin::history(const QString &workingDir,
const QString tag = VcsBase::VcsBaseEditorWidget::editorTag(VcsBase::LogOutput, workingDir, files); const QString tag = VcsBase::VcsBaseEditorWidget::editorTag(VcsBase::LogOutput, workingDir, files);
if (Core::IEditor *editor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) { if (Core::IEditor *editor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) {
editor->createNew(response.stdOut); editor->createNew(response.stdOut);
Core::EditorManager::activateEditor(editor, Core::EditorManager::ModeSwitch); Core::EditorManager::activateEditor(editor);
} else { } else {
const QString title = QString::fromLatin1("cc history %1").arg(id); const QString title = QString::fromLatin1("cc history %1").arg(id);
const QString source = VcsBase::VcsBaseEditorWidget::getSource(workingDir, files); const QString source = VcsBase::VcsBaseEditorWidget::getSource(workingDir, files);
@@ -1305,7 +1303,7 @@ void ClearCasePlugin::vcsAnnotate(const QString &workingDir, const QString &file
if (Core::IEditor *editor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) { if (Core::IEditor *editor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) {
editor->createNew(res); editor->createNew(res);
VcsBase::VcsBaseEditorWidget::gotoLineOfEditor(editor, lineNumber); VcsBase::VcsBaseEditorWidget::gotoLineOfEditor(editor, lineNumber);
Core::EditorManager::activateEditor(editor, Core::EditorManager::ModeSwitch); Core::EditorManager::activateEditor(editor);
} else { } else {
const QString title = QString::fromLatin1("cc annotate %1").arg(id); const QString title = QString::fromLatin1("cc annotate %1").arg(id);
Core::IEditor *newEditor = showOutputInEditor(title, res, VcsBase::AnnotateOutput, source, codec); Core::IEditor *newEditor = showOutputInEditor(title, res, VcsBase::AnnotateOutput, source, codec);
@@ -1341,7 +1339,7 @@ void ClearCasePlugin::describe(const QString &source, const QString &changeNr)
const QString tag = VcsBase::VcsBaseEditorWidget::editorTag(VcsBase::DiffOutput, source, QStringList(), changeNr); const QString tag = VcsBase::VcsBaseEditorWidget::editorTag(VcsBase::DiffOutput, source, QStringList(), changeNr);
if (Core::IEditor *editor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) { if (Core::IEditor *editor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) {
editor->createNew(description); editor->createNew(description);
Core::EditorManager::activateEditor(editor, Core::EditorManager::ModeSwitch); Core::EditorManager::activateEditor(editor);
} else { } else {
const QString title = QString::fromLatin1("cc describe %1").arg(id); const QString title = QString::fromLatin1("cc describe %1").arg(id);
Core::IEditor *newEditor = showOutputInEditor(title, description, VcsBase::DiffOutput, source, codec); Core::IEditor *newEditor = showOutputInEditor(title, description, VcsBase::DiffOutput, source, codec);
@@ -1413,7 +1411,7 @@ Core::IEditor *ClearCasePlugin::showOutputInEditor(const QString& title, const Q
if (codec) if (codec)
e->setCodec(codec); e->setCodec(codec);
Core::IEditor *ie = e->editor(); Core::IEditor *ie = e->editor();
Core::EditorManager::activateEditor(ie, Core::EditorManager::ModeSwitch); Core::EditorManager::activateEditor(ie);
return ie; return ie;
} }

View File

@@ -650,7 +650,7 @@ bool BaseFileWizard::postGenerateOpenEditors(const GeneratedFiles &l, QString *e
{ {
foreach (const Core::GeneratedFile &file, l) { foreach (const Core::GeneratedFile &file, l) {
if (file.attributes() & Core::GeneratedFile::OpenEditorAttribute) { if (file.attributes() & Core::GeneratedFile::OpenEditorAttribute) {
if (!Core::EditorManager::openEditor(file.path(), file.editorId(), Core::EditorManager::ModeSwitch )) { if (!Core::EditorManager::openEditor(file.path(), file.editorId())) {
if (errorMessage) if (errorMessage)
*errorMessage = tr("Failed to open an editor for '%1'.").arg(QDir::toNativeSeparators(file.path())); *errorMessage = tr("Failed to open an editor for '%1'.").arg(QDir::toNativeSeparators(file.path()));
return false; return false;

View File

@@ -120,7 +120,6 @@ DesignMode::DesignMode()
setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Design.png"))); setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Design.png")));
setPriority(Constants::P_MODE_DESIGN); setPriority(Constants::P_MODE_DESIGN);
setId(Constants::MODE_DESIGN); setId(Constants::MODE_DESIGN);
setType(Constants::MODE_DESIGN_TYPE);
ExtensionSystem::PluginManager::addObject(d->m_coreListener); ExtensionSystem::PluginManager::addObject(d->m_coreListener);

View File

@@ -1382,7 +1382,7 @@ void DocumentManager::executeOpenWithMenuAction(QAction *action)
return; return;
} }
EditorManager::openEditor(entry.fileName, entry.editorFactory->id(), EditorManager::ModeSwitch); EditorManager::openEditor(entry.fileName, entry.editorFactory->id());
return; return;
} }
if (entry.externalEditor) if (entry.externalEditor)

View File

@@ -55,7 +55,6 @@ EditMode::EditMode() :
setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Edit.png"))); setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Edit.png")));
setPriority(Constants::P_MODE_EDIT); setPriority(Constants::P_MODE_EDIT);
setId(Constants::MODE_EDIT); setId(Constants::MODE_EDIT);
setType(Constants::MODE_EDIT_TYPE);
m_rightSplitWidgetLayout->setSpacing(0); m_rightSplitWidgetLayout->setSpacing(0);
m_rightSplitWidgetLayout->setMargin(0); m_rightSplitWidgetLayout->setMargin(0);

View File

@@ -698,15 +698,15 @@ void EditorManager::splitNewWindow(Internal::EditorView *view)
context->setContext(Context(Constants::C_EDITORMANAGER)); context->setContext(Context(Constants::C_EDITORMANAGER));
context->setWidget(splitter); context->setWidget(splitter);
ICore::addContextObject(context); ICore::addContextObject(context);
m_instance->d->m_root.append(splitter);
m_instance->d->m_rootContext.append(context);
connect(splitter, SIGNAL(destroyed(QObject*)), m_instance, SLOT(rootDestroyed(QObject*)));
splitter->show(); splitter->show();
ICore::raiseWindow(splitter); ICore::raiseWindow(splitter);
if (newEditor) if (newEditor)
m_instance->activateEditor(splitter->view(), newEditor, IgnoreNavigationHistory); m_instance->activateEditor(splitter->view(), newEditor, IgnoreNavigationHistory);
else else
splitter->view()->setFocus(); splitter->view()->setFocus();
m_instance->d->m_root.append(splitter);
m_instance->d->m_rootContext.append(context);
connect(splitter, SIGNAL(destroyed(QObject*)), m_instance, SLOT(rootDestroyed(QObject*)));
m_instance->updateActions(); m_instance->updateActions();
} }
@@ -1049,15 +1049,15 @@ bool EditorManager::closeEditors(const QList<IEditor*> &editorsToClose, bool ask
if (!newCurrent) if (!newCurrent)
newCurrent = pickUnusedEditor(); newCurrent = pickUnusedEditor();
if (newCurrent) { if (newCurrent) {
activateEditor(view, newCurrent, NoActivate); activateEditor(view, newCurrent, DoNotChangeCurrentEditor);
} else { } else {
QModelIndex idx = d->m_editorModel->firstRestoredEditor(); QModelIndex idx = d->m_editorModel->firstRestoredEditor();
if (idx.isValid()) { if (idx.isValid()) {
activateEditorForIndex(view, idx, NoActivate); activateEditorForIndex(view, idx, DoNotChangeCurrentEditor);
} else { } else {
const QList<IEditor *> editors = d->m_editorModel->editors(); const QList<IEditor *> editors = d->m_editorModel->editors();
if (!editors.isEmpty()) if (!editors.isEmpty())
activateEditor(view, editors.last(), NoActivate); activateEditor(view, editors.last(), DoNotChangeCurrentEditor);
} }
} }
} }
@@ -1112,11 +1112,11 @@ void EditorManager::closeDuplicate(Core::IEditor *editor)
if (!newCurrent) if (!newCurrent)
newCurrent = pickUnusedEditor(); newCurrent = pickUnusedEditor();
if (newCurrent) { if (newCurrent) {
activateEditor(view, newCurrent, NoActivate); activateEditor(view, newCurrent, DoNotChangeCurrentEditor);
} else { } else {
QModelIndex idx = d->m_editorModel->firstRestoredEditor(); QModelIndex idx = d->m_editorModel->firstRestoredEditor();
if (idx.isValid()) if (idx.isValid())
activateEditorForIndex(view, idx, NoActivate); activateEditorForIndex(view, idx, DoNotChangeCurrentEditor);
} }
} }
@@ -1221,15 +1221,24 @@ Core::IEditor *EditorManager::activateEditor(Core::Internal::EditorView *view, C
editor = placeEditor(view, editor); editor = placeEditor(view, editor);
if (!(flags & NoActivate)) { if (!(flags & DoNotChangeCurrentEditor)) {
setCurrentEditor(editor, (flags & IgnoreNavigationHistory)); setCurrentEditor(editor, (flags & IgnoreNavigationHistory));
if (flags & ModeSwitch) if (!(flags & DoNotMakeVisible)) {
switchToPreferedMode(); // switch to design mode?
if (isVisible()) { if (editor->isDesignModePreferred()) {
ModeManager::activateMode(Core::Constants::MODE_DESIGN);
ModeManager::setFocusToCurrentMode();
} else {
int rootIndex;
findRoot(view, &rootIndex);
if (rootIndex == 0) // main window --> we might need to switch mode
if (!editor->widget()->isVisible())
ModeManager::activateMode(Core::Constants::MODE_EDIT);
editor->widget()->setFocus(); editor->widget()->setFocus();
ICore::raiseWindow(editor->widget()); ICore::raiseWindow(editor->widget());
} }
} }
}
return editor; return editor;
} }
@@ -1572,22 +1581,6 @@ QStringList EditorManager::getOpenFileNames() const
} }
/// Empty mode == figure out the correct mode from the editor
/// forcePrefered = true, switch to the mode even if the editor is visible in another mode
/// forcePrefered = false, only switch if it is not visible
void EditorManager::switchToPreferedMode()
{
Id preferedMode;
// Figure out preferred mode for editor
if (d->m_currentEditor)
preferedMode = d->m_currentEditor->preferredModeType();
if (!preferedMode.isValid())
preferedMode = Id(Constants::MODE_EDIT_TYPE);
ModeManager::activateModeType(preferedMode);
}
IEditor *EditorManager::openEditorWithContents(const Id &editorId, IEditor *EditorManager::openEditorWithContents(const Id &editorId,
QString *titlePattern, QString *titlePattern,
const QString &contents) const QString &contents)
@@ -2191,7 +2184,7 @@ bool EditorManager::restoreState(const QByteArray &state)
continue; continue;
QFileInfo rfi(autoSaveName(fileName)); QFileInfo rfi(autoSaveName(fileName));
if (rfi.exists() && fi.lastModified() < rfi.lastModified()) if (rfi.exists() && fi.lastModified() < rfi.lastModified())
openEditor(fileName, id); openEditor(fileName, id, DoNotMakeVisible);
else else
d->m_editorModel->addRestoredEditor(fileName, displayName, id); d->m_editorModel->addRestoredEditor(fileName, displayName, id);
} }

View File

@@ -107,9 +107,9 @@ public:
static EditorToolBar *createToolBar(QWidget *parent = 0); static EditorToolBar *createToolBar(QWidget *parent = 0);
enum OpenEditorFlag { enum OpenEditorFlag {
NoActivate = 1, DoNotChangeCurrentEditor = 1,
IgnoreNavigationHistory = 2, IgnoreNavigationHistory = 2,
ModeSwitch = 4, DoNotMakeVisible = 4,
CanContainLineNumber = 8, CanContainLineNumber = 8,
OpenInOtherSplit = 16 OpenInOtherSplit = 16
}; };
@@ -278,7 +278,6 @@ private:
static void splitNewWindow(Internal::EditorView *view); static void splitNewWindow(Internal::EditorView *view);
IEditor *pickUnusedEditor() const; IEditor *pickUnusedEditor() const;
void addDocumentToRecentFiles(IDocument *document); void addDocumentToRecentFiles(IDocument *document);
void switchToPreferedMode();
void updateAutoSave(); void updateAutoSave();
void setCloseSplitEnabled(Internal::SplitterOrView *splitterOrView, bool enable); void setCloseSplitEnabled(Internal::SplitterOrView *splitterOrView, bool enable);
void updateMakeWritableWarning(); void updateMakeWritableWarning();

View File

@@ -299,7 +299,7 @@ IEditor *EditorView::currentEditor() const
void EditorView::listSelectionActivated(int index) void EditorView::listSelectionActivated(int index)
{ {
QAbstractItemModel *model = EditorManager::instance()->openedEditorsModel(); QAbstractItemModel *model = EditorManager::instance()->openedEditorsModel();
EditorManager::instance()->activateEditorForIndex(this, model->index(index, 0), Core::EditorManager::ModeSwitch); EditorManager::instance()->activateEditorForIndex(this, model->index(index, 0));
} }
void EditorView::splitHorizontally() void EditorView::splitHorizontally()
@@ -465,11 +465,11 @@ void EditorView::goBackInNavigationHistory()
IEditor *editor = 0; IEditor *editor = 0;
if (location.document) { if (location.document) {
editor = em->activateEditorForDocument(this, location.document, editor = em->activateEditorForDocument(this, location.document,
EditorManager::IgnoreNavigationHistory | EditorManager::ModeSwitch); EditorManager::IgnoreNavigationHistory);
} }
if (!editor) { if (!editor) {
editor = em->openEditor(this, location.fileName, location.id, editor = em->openEditor(this, location.fileName, location.id,
EditorManager::IgnoreNavigationHistory | EditorManager::ModeSwitch); EditorManager::IgnoreNavigationHistory);
if (!editor) { if (!editor) {
m_navigationHistory.removeAt(m_currentNavigationHistoryPosition); m_navigationHistory.removeAt(m_currentNavigationHistoryPosition);
continue; continue;
@@ -492,7 +492,7 @@ void EditorView::goForwardInNavigationHistory()
IEditor *editor = 0; IEditor *editor = 0;
if (location.document) { if (location.document) {
editor = em->activateEditorForDocument(this, location.document, editor = em->activateEditorForDocument(this, location.document,
EditorManager::IgnoreNavigationHistory | EditorManager::ModeSwitch); EditorManager::IgnoreNavigationHistory);
} }
if (!editor) { if (!editor) {
editor = em->openEditor(this, location.fileName, location.id, EditorManager::IgnoreNavigationHistory); editor = em->openEditor(this, location.fileName, location.id, EditorManager::IgnoreNavigationHistory);
@@ -784,13 +784,13 @@ void SplitterOrView::restoreState(const QByteArray &state)
if (!QFile::exists(fileName)) if (!QFile::exists(fileName))
return; return;
IEditor *e = em->openEditor(view(), fileName, Id::fromString(id), Core::EditorManager::IgnoreNavigationHistory IEditor *e = em->openEditor(view(), fileName, Id::fromString(id), Core::EditorManager::IgnoreNavigationHistory
| Core::EditorManager::NoActivate); | Core::EditorManager::DoNotChangeCurrentEditor);
if (!e) { if (!e) {
QModelIndex idx = em->openedEditorsModel()->firstRestoredEditor(); QModelIndex idx = em->openedEditorsModel()->firstRestoredEditor();
if (idx.isValid()) if (idx.isValid())
em->activateEditorForIndex(view(), idx, Core::EditorManager::IgnoreNavigationHistory em->activateEditorForIndex(view(), idx, Core::EditorManager::IgnoreNavigationHistory
| Core::EditorManager::NoActivate); | Core::EditorManager::DoNotChangeCurrentEditor);
} }
if (e) { if (e) {

View File

@@ -68,7 +68,7 @@ public:
virtual QWidget *toolBar() = 0; virtual QWidget *toolBar() = 0;
virtual Id preferredModeType() const { return Id(); } virtual bool isDesignModePreferred() const { return false; }
signals: signals:
void changed(); void changed();

View File

@@ -189,7 +189,7 @@ void OpenEditorsWidget::handleClicked(const QModelIndex &index)
void OpenEditorsWidget::activateEditor(const QModelIndex &index) void OpenEditorsWidget::activateEditor(const QModelIndex &index)
{ {
selectionModel()->select(index, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows); selectionModel()->select(index, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
EditorManager::instance()->activateEditorForIndex(index, EditorManager::ModeSwitch); EditorManager::instance()->activateEditorForIndex(index);
} }
void OpenEditorsWidget::closeEditor(const QModelIndex &index) void OpenEditorsWidget::closeEditor(const QModelIndex &index)

View File

@@ -225,11 +225,10 @@ void OpenEditorsWindow::selectEditor(QTreeWidgetItem *item)
return; return;
if (IDocument *document = item->data(0, Qt::UserRole).value<IDocument*>()) { if (IDocument *document = item->data(0, Qt::UserRole).value<IDocument*>()) {
EditorView *view = item->data(0, Qt::UserRole+1).value<EditorView*>(); EditorView *view = item->data(0, Qt::UserRole+1).value<EditorView*>();
EditorManager::instance()->activateEditorForDocument(view, document, EditorManager::ModeSwitch); EditorManager::instance()->activateEditorForDocument(view, document);
} else { } else {
if (!EditorManager::openEditor( if (!EditorManager::openEditor(
item->toolTip(0), item->data(0, Qt::UserRole+2).value<Core::Id>(), item->toolTip(0), item->data(0, Qt::UserRole+2).value<Core::Id>())) {
Core::EditorManager::ModeSwitch)) {
EditorManager::instance()->openedEditorsModel()->removeEditor(item->toolTip(0)); EditorManager::instance()->openedEditorsModel()->removeEditor(item->toolTip(0));
delete item; delete item;
} }

View File

@@ -311,7 +311,7 @@ void EditorToolBar::changeActiveEditor(int row)
{ {
EditorManager *em = ICore::editorManager(); EditorManager *em = ICore::editorManager();
QAbstractItemModel *model = d->m_editorList->model(); QAbstractItemModel *model = d->m_editorList->model();
em->activateEditorForIndex(model->index(row, 0), EditorManager::ModeSwitch); em->activateEditorForIndex(model->index(row, 0));
} }
void EditorToolBar::listContextMenu(QPoint pos) void EditorToolBar::listContextMenu(QPoint pos)

View File

@@ -49,7 +49,6 @@ public:
QIcon icon() const { return m_icon; } QIcon icon() const { return m_icon; }
int priority() const { return m_priority; } int priority() const { return m_priority; }
Id id() const { return m_id; } Id id() const { return m_id; }
Id type() const { return m_type; }
bool isEnabled() const; bool isEnabled() const;
void setEnabled(bool enabled); void setEnabled(bool enabled);
@@ -57,7 +56,6 @@ public:
void setIcon(const QIcon &icon) { m_icon = icon; } void setIcon(const QIcon &icon) { m_icon = icon; }
void setPriority(int priority) { m_priority = priority; } void setPriority(int priority) { m_priority = priority; }
void setId(Id id) { m_id = id; } void setId(Id id) { m_id = id; }
void setType(Id type) { m_type = type; }
signals: signals:
void enabledStateChanged(bool enabled); void enabledStateChanged(bool enabled);
@@ -67,7 +65,6 @@ private:
QIcon m_icon; QIcon m_icon;
int m_priority; int m_priority;
Id m_id; Id m_id;
Id m_type;
bool m_isEnabled; bool m_isEnabled;
}; };

View File

@@ -861,8 +861,6 @@ IDocument *MainWindow::openFiles(const QStringList &fileNames, ICore::OpenFilesF
} }
} else { } else {
QFlags<EditorManager::OpenEditorFlag> emFlags; QFlags<EditorManager::OpenEditorFlag> emFlags;
if (flags & ICore::SwitchMode)
emFlags = EditorManager::ModeSwitch;
if (flags & ICore::CanContainLineNumbers) if (flags & ICore::CanContainLineNumbers)
emFlags |= EditorManager::CanContainLineNumber; emFlags |= EditorManager::CanContainLineNumber;
IEditor *editor = EditorManager::openEditor(absoluteFilePath, Id(), emFlags); IEditor *editor = EditorManager::openEditor(absoluteFilePath, Id(), emFlags);
@@ -1005,7 +1003,7 @@ void MainWindow::openFileWith()
if (isExternal) if (isExternal)
EditorManager::openExternalEditor(fileName, editorId); EditorManager::openExternalEditor(fileName, editorId);
else else
EditorManager::openEditor(fileName, editorId, Core::EditorManager::ModeSwitch); EditorManager::openEditor(fileName, editorId);
} }
} }
@@ -1289,7 +1287,7 @@ void MainWindow::openRecentFile()
{ {
if (const QAction *action = qobject_cast<const QAction*>(sender())) { if (const QAction *action = qobject_cast<const QAction*>(sender())) {
const DocumentManager::RecentFile file = action->data().value<DocumentManager::RecentFile>(); const DocumentManager::RecentFile file = action->data().value<DocumentManager::RecentFile>();
EditorManager::openEditor(file.first, file.second, EditorManager::ModeSwitch); EditorManager::openEditor(file.first, file.second);
} }
} }

View File

@@ -150,21 +150,6 @@ IMode *ModeManager::mode(Id id)
return 0; return 0;
} }
void ModeManager::activateModeType(Id type)
{
if (currentMode() && currentMode()->type() == type)
return;
int index = -1;
for (int i = 0; i < d->m_modes.count(); ++i) {
if (d->m_modes.at(i)->type() == type) {
index = i;
break;
}
}
if (index != -1)
d->m_modeStack->setCurrentIndex(index);
}
void ModeManager::slotActivateMode(int id) void ModeManager::slotActivateMode(int id)
{ {
m_instance->activateMode(Id::fromUniqueIdentifier(id)); m_instance->activateMode(Id::fromUniqueIdentifier(id));
@@ -333,10 +318,10 @@ void ModeManager::setFocusToCurrentMode()
QWidget *widget = mode->widget(); QWidget *widget = mode->widget();
if (widget) { if (widget) {
QWidget *focusWidget = widget->focusWidget(); QWidget *focusWidget = widget->focusWidget();
if (focusWidget) if (!focusWidget)
focusWidget = widget;
focusWidget->setFocus(); focusWidget->setFocus();
else ICore::raiseWindow(focusWidget);
widget->setFocus();
} }
} }

View File

@@ -65,7 +65,6 @@ public:
static void addProjectSelector(QAction *action); static void addProjectSelector(QAction *action);
static void addWidget(QWidget *widget); static void addWidget(QWidget *widget);
static void activateModeType(Id type);
static void activateMode(Id id); static void activateMode(Id id);
static void setFocusToCurrentMode(); static void setFocusToCurrentMode();
static bool isModeSelectorVisible(); static bool isModeSelectorVisible();

View File

@@ -380,7 +380,7 @@ void CodepasterPlugin::finishFetch(const QString &titleDescription,
const QString fileName = saver.fileName(); const QString fileName = saver.fileName();
m_fetchedSnippets.push_back(fileName); m_fetchedSnippets.push_back(fileName);
// Open editor with title. // Open editor with title.
Core::IEditor *editor = EditorManager::openEditor(fileName, Core::Id(), EditorManager::ModeSwitch); Core::IEditor *editor = EditorManager::openEditor(fileName);
QTC_ASSERT(editor, return); QTC_ASSERT(editor, return);
editor->setDisplayName(titleDescription); editor->setDisplayName(titleDescription);
} }

View File

@@ -1992,7 +1992,7 @@ bool CPPEditorWidget::openCppEditorAt(const Link &link, bool inNextSplit)
if (!link.hasValidTarget()) if (!link.hasValidTarget())
return false; return false;
Core::EditorManager::OpenEditorFlags flags = Core::EditorManager::ModeSwitch; Core::EditorManager::OpenEditorFlags flags;
if (inNextSplit) if (inNextSplit)
flags |= Core::EditorManager::OpenInOtherSplit; flags |= Core::EditorManager::OpenInOtherSplit;
return Core::EditorManager::openEditorAt(link.targetFileName, return Core::EditorManager::openEditorAt(link.targetFileName,

View File

@@ -110,8 +110,7 @@ QList<Locator::FilterEntry> CppCurrentDocumentFilter::matchesFor(QFutureInterfac
void CppCurrentDocumentFilter::accept(Locator::FilterEntry selection) const void CppCurrentDocumentFilter::accept(Locator::FilterEntry selection) const
{ {
ModelItemInfo info = qvariant_cast<CppTools::ModelItemInfo>(selection.internalData); ModelItemInfo info = qvariant_cast<CppTools::ModelItemInfo>(selection.internalData);
Core::EditorManager::openEditorAt(info.fileName, info.line, info.column, Core::EditorManager::openEditorAt(info.fileName, info.line, info.column);
Core::Id(), Core::EditorManager::ModeSwitch);
} }
void CppCurrentDocumentFilter::refresh(QFutureInterface<void> &future) void CppCurrentDocumentFilter::refresh(QFutureInterface<void> &future)

View File

@@ -305,8 +305,7 @@ void CppFileSettingsWidget::slotEdit()
setLicenseTemplatePath(path); setLicenseTemplatePath(path);
} }
// Edit (now) existing file with C++ // Edit (now) existing file with C++
Core::EditorManager::openEditor(path, CppEditor::Constants::CPPEDITOR_ID, Core::EditorManager::openEditor(path, CppEditor::Constants::CPPEDITOR_ID);
Core::EditorManager::ModeSwitch);
} }
// --------------- CppFileSettingsPage // --------------- CppFileSettingsPage

View File

@@ -510,12 +510,9 @@ void CppFindReferences::openEditor(const Find::SearchResultItem &item)
{ {
if (item.path.size() > 0) { if (item.path.size() > 0) {
Core::EditorManager::openEditorAt(QDir::fromNativeSeparators(item.path.first()), Core::EditorManager::openEditorAt(QDir::fromNativeSeparators(item.path.first()),
item.lineNumber, item.textMarkPos, item.lineNumber, item.textMarkPos);
Core::Id(),
Core::EditorManager::ModeSwitch);
} else { } else {
Core::EditorManager::openEditor(QDir::fromNativeSeparators(item.text), Core::EditorManager::openEditor(QDir::fromNativeSeparators(item.text));
Core::Id(), Core::EditorManager::ModeSwitch);
} }
} }

View File

@@ -177,8 +177,7 @@ QList<Locator::FilterEntry> CppLocatorFilter::matchesFor(QFutureInterface<Locato
void CppLocatorFilter::accept(Locator::FilterEntry selection) const void CppLocatorFilter::accept(Locator::FilterEntry selection) const
{ {
ModelItemInfo info = qvariant_cast<CppTools::ModelItemInfo>(selection.internalData); ModelItemInfo info = qvariant_cast<CppTools::ModelItemInfo>(selection.internalData);
Core::EditorManager::openEditorAt(info.fileName, info.line, info.column, Core::EditorManager::openEditorAt(info.fileName, info.line, info.column);
Core::Id(), Core::EditorManager::ModeSwitch);
} }
void CppLocatorFilter::reset() void CppLocatorFilter::reset()

View File

@@ -164,8 +164,7 @@ void CppToolsPlugin::switchHeaderSourceInNextSplit()
QString otherFile = correspondingHeaderOrSource( QString otherFile = correspondingHeaderOrSource(
Core::EditorManager::currentEditor()->document()->fileName()); Core::EditorManager::currentEditor()->document()->fileName());
if (!otherFile.isEmpty()) if (!otherFile.isEmpty())
Core::EditorManager::openEditor(otherFile, Core::Id(), Core::EditorManager::OpenInOtherSplit Core::EditorManager::openEditor(otherFile, Core::Id(), Core::EditorManager::OpenInOtherSplit);
| Core::EditorManager::ModeSwitch);
} }
static QStringList findFilesInProject(const QString &name, static QStringList findFilesInProject(const QString &name,

View File

@@ -592,7 +592,7 @@ void CvsPlugin::cvsDiff(const CvsDiffParameters &p)
const QString tag = VcsBaseEditorWidget::editorTag(DiffOutput, p.workingDir, p.files); const QString tag = VcsBaseEditorWidget::editorTag(DiffOutput, p.workingDir, p.files);
if (IEditor *existingEditor = VcsBaseEditorWidget::locateEditorByTag(tag)) { if (IEditor *existingEditor = VcsBaseEditorWidget::locateEditorByTag(tag)) {
existingEditor->createNew(output); existingEditor->createNew(output);
EditorManager::activateEditor(existingEditor, EditorManager::ModeSwitch); EditorManager::activateEditor(existingEditor);
setDiffBaseDirectory(existingEditor, p.workingDir); setDiffBaseDirectory(existingEditor, p.workingDir);
return; return;
} }
@@ -615,8 +615,7 @@ void CvsPlugin::cvsDiff(const CvsDiffParameters &p)
CvsSubmitEditor *CvsPlugin::openCVSSubmitEditor(const QString &fileName) CvsSubmitEditor *CvsPlugin::openCVSSubmitEditor(const QString &fileName)
{ {
IEditor *editor = EditorManager::openEditor(fileName, Constants::CVSCOMMITEDITOR_ID, IEditor *editor = EditorManager::openEditor(fileName, Constants::CVSCOMMITEDITOR_ID);
EditorManager::ModeSwitch);
CvsSubmitEditor *submitEditor = qobject_cast<CvsSubmitEditor*>(editor); CvsSubmitEditor *submitEditor = qobject_cast<CvsSubmitEditor*>(editor);
QTC_CHECK(submitEditor); QTC_CHECK(submitEditor);
submitEditor->registerActions(m_submitUndoAction, m_submitRedoAction, m_submitCurrentLogAction, m_submitDiffAction); submitEditor->registerActions(m_submitUndoAction, m_submitRedoAction, m_submitCurrentLogAction, m_submitDiffAction);
@@ -861,7 +860,7 @@ void CvsPlugin::filelog(const QString &workingDir,
const QString tag = VcsBaseEditorWidget::editorTag(LogOutput, workingDir, files); const QString tag = VcsBaseEditorWidget::editorTag(LogOutput, workingDir, files);
if (Core::IEditor *editor = VcsBaseEditorWidget::locateEditorByTag(tag)) { if (Core::IEditor *editor = VcsBaseEditorWidget::locateEditorByTag(tag)) {
editor->createNew(response.stdOut); editor->createNew(response.stdOut);
Core::EditorManager::activateEditor(editor, Core::EditorManager::ModeSwitch); Core::EditorManager::activateEditor(editor);
} else { } else {
const QString title = QString::fromLatin1("cvs log %1").arg(id); const QString title = QString::fromLatin1("cvs log %1").arg(id);
Core::IEditor *newEditor = showOutputInEditor(title, response.stdOut, LogOutput, source, codec); Core::IEditor *newEditor = showOutputInEditor(title, response.stdOut, LogOutput, source, codec);
@@ -1004,7 +1003,7 @@ void CvsPlugin::annotate(const QString &workingDir, const QString &file,
if (IEditor *editor = VcsBaseEditorWidget::locateEditorByTag(tag)) { if (IEditor *editor = VcsBaseEditorWidget::locateEditorByTag(tag)) {
editor->createNew(response.stdOut); editor->createNew(response.stdOut);
VcsBaseEditorWidget::gotoLineOfEditor(editor, lineNumber); VcsBaseEditorWidget::gotoLineOfEditor(editor, lineNumber);
EditorManager::activateEditor(editor, EditorManager::ModeSwitch); EditorManager::activateEditor(editor);
} else { } else {
const QString title = QString::fromLatin1("cvs annotate %1").arg(id); const QString title = QString::fromLatin1("cvs annotate %1").arg(id);
IEditor *newEditor = showOutputInEditor(title, response.stdOut, AnnotateOutput, source, codec); IEditor *newEditor = showOutputInEditor(title, response.stdOut, AnnotateOutput, source, codec);
@@ -1199,7 +1198,7 @@ bool CvsPlugin::describe(const QString &repositoryPath,
const QString commitId = entries.front().revisions.front().commitId; const QString commitId = entries.front().revisions.front().commitId;
if (IEditor *editor = VcsBaseEditorWidget::locateEditorByTag(commitId)) { if (IEditor *editor = VcsBaseEditorWidget::locateEditorByTag(commitId)) {
editor->createNew(output); editor->createNew(output);
EditorManager::activateEditor(editor, EditorManager::ModeSwitch); EditorManager::activateEditor(editor);
setDiffBaseDirectory(editor, repositoryPath); setDiffBaseDirectory(editor, repositoryPath);
} else { } else {
const QString title = QString::fromLatin1("cvs describe %1").arg(commitId); const QString title = QString::fromLatin1("cvs describe %1").arg(commitId);
@@ -1285,7 +1284,7 @@ IEditor *CvsPlugin::showOutputInEditor(const QString& title, const QString &outp
if (codec) if (codec)
e->setCodec(codec); e->setCodec(codec);
IEditor *ie = e->editor(); IEditor *ie = e->editor();
EditorManager::activateEditor(ie, EditorManager::ModeSwitch); EditorManager::activateEditor(ie);
return ie; return ie;
} }

View File

@@ -508,7 +508,6 @@ public:
setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Debug.png"))); setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Debug.png")));
setPriority(85); setPriority(85);
setId(MODE_DEBUG); setId(MODE_DEBUG);
setType(CC::MODE_EDIT_TYPE);
} }
~DebugMode() ~DebugMode()

View File

@@ -472,8 +472,7 @@ void QmlInspectorAdapter::jumpToObjectDefinitionInEditor(
{ {
const QString fileName = m_engine->toFileInProject(objSource.url()); const QString fileName = m_engine->toFileInProject(objSource.url());
Core::EditorManager::openEditorAt(fileName, objSource.lineNumber(), Core::EditorManager::openEditorAt(fileName, objSource.lineNumber());
0, Core::Id(), Core::EditorManager::ModeSwitch);
if (debugId != -1 && debugId != m_currentSelectedDebugId) { if (debugId != -1 && debugId != m_currentSelectedDebugId) {
m_currentSelectedDebugId = debugId; m_currentSelectedDebugId = debugId;
m_currentSelectedDebugName = agent()->displayName(debugId); m_currentSelectedDebugName = agent()->displayName(debugId);

View File

@@ -912,7 +912,7 @@ void FormEditorW::switchSourceForm()
{ {
const QString fileToOpen = otherFile(); const QString fileToOpen = otherFile();
if (!fileToOpen.isEmpty()) if (!fileToOpen.isEmpty())
Core::EditorManager::openEditor(fileToOpen, Core::Id(), Core::EditorManager::ModeSwitch); Core::EditorManager::openEditor(fileToOpen);
} }
} // namespace Internal } // namespace Internal

View File

@@ -259,9 +259,9 @@ TextEditor::PlainTextEditor *FormWindowEditor::textEditor()
return &d->m_textEditor; return &d->m_textEditor;
} }
Core::Id FormWindowEditor::preferredModeType() const bool FormWindowEditor::isDesignModePreferred() const
{ {
return Core::Id(Core::Constants::MODE_DESIGN_TYPE); return true;
} }
} // namespace Designer } // namespace Designer

View File

@@ -81,7 +81,7 @@ public:
virtual QWidget *toolBar(); virtual QWidget *toolBar();
virtual Core::Id preferredModeType() const; virtual bool isDesignModePreferred() const;
// For uic code model support // For uic code model support
QString contents() const; QString contents() const;

View File

@@ -270,7 +270,9 @@ static Document::Ptr findDefinition(Function *functionDeclaration, int *line)
static inline ITextEditor *editableAt(const QString &fileName, int line, int column) static inline ITextEditor *editableAt(const QString &fileName, int line, int column)
{ {
return qobject_cast<ITextEditor *>(Core::EditorManager::openEditorAt(fileName, line, column)); return qobject_cast<ITextEditor *>(Core::EditorManager::openEditorAt(fileName, line, column,
Core::Id(),
Core::EditorManager::DoNotMakeVisible));
} }
static void addDeclaration(const Snapshot &snapshot, static void addDeclaration(const Snapshot &snapshot,

View File

@@ -142,7 +142,7 @@ void DiffEditorPlugin::diff()
if (!editor) if (!editor)
return; return;
Core::EditorManager::activateEditor(editor, Core::EditorManager::ModeSwitch); Core::EditorManager::activateEditor(editor);
DiffEditorWidget *editorWidget = editor->editorWidget(); DiffEditorWidget *editorWidget = editor->editorWidget();

View File

@@ -374,7 +374,7 @@ void DiffViewEditorWidget::jumpToOriginalFile(const QTextCursor &cursor)
const QDir dir(m_workingDirectory); const QDir dir(m_workingDirectory);
const QString fileName = dir.absoluteFilePath(it.value().fileName); const QString fileName = dir.absoluteFilePath(it.value().fileName);
Core::IEditor *ed = Core::EditorManager::openEditor(fileName, Core::Id(), Core::EditorManager::ModeSwitch); Core::IEditor *ed = Core::EditorManager::openEditor(fileName);
if (TextEditor::ITextEditor *editor = qobject_cast<TextEditor::ITextEditor *>(ed)) if (TextEditor::ITextEditor *editor = qobject_cast<TextEditor::ITextEditor *>(ed))
editor->gotoLine(lineNr, position); editor->gotoLine(lineNr, position);
} }

View File

@@ -816,7 +816,7 @@ VcsBase::VcsBaseEditorWidget *GitClient::findExistingVCSEditor(const char *regis
return 0; return 0;
// Exists already // Exists already
Core::EditorManager::activateEditor(outputEditor, Core::EditorManager::ModeSwitch); Core::EditorManager::activateEditor(outputEditor);
outputEditor->createNew(m_msgWait); outputEditor->createNew(m_msgWait);
rc = VcsBase::VcsBaseEditorWidget::getVcsBaseEditor(outputEditor); rc = VcsBase::VcsBaseEditorWidget::getVcsBaseEditor(outputEditor);
@@ -829,7 +829,7 @@ DiffEditor::DiffEditor *GitClient::findExistingOrOpenNewDiffEditor(const char *r
Core::IEditor *outputEditor = locateEditor(registerDynamicProperty, dynamicPropertyValue); Core::IEditor *outputEditor = locateEditor(registerDynamicProperty, dynamicPropertyValue);
if (outputEditor) { if (outputEditor) {
// Exists already // Exists already
Core::EditorManager::activateEditor(outputEditor, Core::EditorManager::ModeSwitch); Core::EditorManager::activateEditor(outputEditor);
outputEditor->createNew(m_msgWait); outputEditor->createNew(m_msgWait);
} }
@@ -840,7 +840,7 @@ DiffEditor::DiffEditor *GitClient::findExistingOrOpenNewDiffEditor(const char *r
editor = qobject_cast<DiffEditor::DiffEditor *>( editor = qobject_cast<DiffEditor::DiffEditor *>(
Core::EditorManager::openEditorWithContents(editorId, &title, m_msgWait)); Core::EditorManager::openEditorWithContents(editorId, &title, m_msgWait));
editor->document()->setProperty(registerDynamicProperty, dynamicPropertyValue); editor->document()->setProperty(registerDynamicProperty, dynamicPropertyValue);
Core::EditorManager::activateEditor(editor, Core::EditorManager::ModeSwitch); // should probably go outside this block Core::EditorManager::activateEditor(editor); // should probably go outside this block
} }
return editor; return editor;
} }
@@ -881,7 +881,7 @@ VcsBase::VcsBaseEditorWidget *GitClient::createVcsEditor(const Core::Id &id,
} }
rc->setForceReadOnly(true); rc->setForceReadOnly(true);
Core::EditorManager::activateEditor(outputEditor, Core::EditorManager::ModeSwitch); Core::EditorManager::activateEditor(outputEditor);
if (configWidget) if (configWidget)
rc->setConfigurationWidget(configWidget); rc->setConfigurationWidget(configWidget);

View File

@@ -975,8 +975,7 @@ void GitPlugin::updateVersionWarning()
Core::IEditor *GitPlugin::openSubmitEditor(const QString &fileName, const CommitData &cd) Core::IEditor *GitPlugin::openSubmitEditor(const QString &fileName, const CommitData &cd)
{ {
Core::IEditor *editor = Core::EditorManager::openEditor(fileName, Constants::GITSUBMITEDITOR_ID, Core::IEditor *editor = Core::EditorManager::openEditor(fileName, Constants::GITSUBMITEDITOR_ID);
Core::EditorManager::ModeSwitch);
GitSubmitEditor *submitEditor = qobject_cast<GitSubmitEditor*>(editor); GitSubmitEditor *submitEditor = qobject_cast<GitSubmitEditor*>(editor);
QTC_ASSERT(submitEditor, return 0); QTC_ASSERT(submitEditor, return 0);
setSubmitEditor(submitEditor); setSubmitEditor(submitEditor);

View File

@@ -60,7 +60,6 @@ public:
setIcon(QIcon()); setIcon(QIcon());
setPriority(0); setPriority(0);
setId("HelloWorld.HelloWorldMode"); setId("HelloWorld.HelloWorldMode");
setType("HelloWorld.HelloWorldMode");
setContextHelpId(QString()); setContextHelpId(QString());
} }
}; };

View File

@@ -100,7 +100,7 @@ QList<FilterEntry> BaseFileFilter::matchesFor(QFutureInterface<Locator::FilterEn
void BaseFileFilter::accept(Locator::FilterEntry selection) const void BaseFileFilter::accept(Locator::FilterEntry selection) const
{ {
EditorManager::openEditor(selection.internalData.toString(), Id(), EditorManager::openEditor(selection.internalData.toString(), Id(),
EditorManager::ModeSwitch | EditorManager::CanContainLineNumber); EditorManager::CanContainLineNumber);
} }
void BaseFileFilter::generateFileNames() void BaseFileFilter::generateFileNames()

View File

@@ -115,7 +115,7 @@ void FileSystemFilter::accept(FilterEntry selection) const
return; return;
} }
EditorManager::openEditor(selection.internalData.toString(), Id(), EditorManager::openEditor(selection.internalData.toString(), Id(),
EditorManager::ModeSwitch | EditorManager::CanContainLineNumber); EditorManager::CanContainLineNumber);
} }
bool FileSystemFilter::openConfigDialog(QWidget *parent, bool &needsRefresh) bool FileSystemFilter::openConfigDialog(QWidget *parent, bool &needsRefresh)

View File

@@ -106,5 +106,5 @@ void OpenDocumentsFilter::refresh(QFutureInterface<void> &future)
void OpenDocumentsFilter::accept(FilterEntry selection) const void OpenDocumentsFilter::accept(FilterEntry selection) const
{ {
EditorManager::openEditor(selection.internalData.toString(), Id(), EditorManager::openEditor(selection.internalData.toString(), Id(),
EditorManager::ModeSwitch | EditorManager::CanContainLineNumber); EditorManager::CanContainLineNumber);
} }

View File

@@ -263,8 +263,7 @@ void MaemoPackageCreationWidget::editDebianFile()
void MaemoPackageCreationWidget::editFile(const QString &filePath) void MaemoPackageCreationWidget::editFile(const QString &filePath)
{ {
Core::EditorManager::openEditor(filePath, Core::Id(), Core::EditorManager::openEditor(filePath);
Core::EditorManager::ModeSwitch);
} }
} // namespace Internal } // namespace Internal

View File

@@ -558,8 +558,7 @@ void MercurialPlugin::showCommitWidget(const QList<VcsBaseClient::StatusItem> &s
} }
Core::IEditor *editor = Core::EditorManager::openEditor(saver.fileName(), Core::IEditor *editor = Core::EditorManager::openEditor(saver.fileName(),
Constants::COMMIT_ID, Constants::COMMIT_ID);
Core::EditorManager::ModeSwitch);
if (!editor) { if (!editor) {
outputWindow->appendError(tr("Unable to create an editor for the commit.")); outputWindow->appendError(tr("Unable to create an editor for the commit."));
return; return;

View File

@@ -649,8 +649,7 @@ void PerforcePlugin::startSubmitProject()
Core::IEditor *PerforcePlugin::openPerforceSubmitEditor(const QString &fileName, const QStringList &depotFileNames) Core::IEditor *PerforcePlugin::openPerforceSubmitEditor(const QString &fileName, const QStringList &depotFileNames)
{ {
Core::IEditor *editor = Core::EditorManager::openEditor(fileName, Constants::PERFORCE_SUBMIT_EDITOR_ID, Core::IEditor *editor = Core::EditorManager::openEditor(fileName, Constants::PERFORCE_SUBMIT_EDITOR_ID);
Core::EditorManager::ModeSwitch);
PerforceSubmitEditor *submitEditor = static_cast<PerforceSubmitEditor*>(editor); PerforceSubmitEditor *submitEditor = static_cast<PerforceSubmitEditor*>(editor);
setSubmitEditor(submitEditor); setSubmitEditor(submitEditor);
submitEditor->restrictToProjectFiles(depotFileNames); submitEditor->restrictToProjectFiles(depotFileNames);
@@ -1180,7 +1179,7 @@ Core::IEditor *PerforcePlugin::showOutputInEditor(const QString &title, const QS
if (codec) if (codec)
e->setCodec(codec); e->setCodec(codec);
Core::IEditor *ie = e->editor(); Core::IEditor *ie = e->editor();
Core::EditorManager::activateEditor(ie, Core::EditorManager::ModeSwitch); Core::EditorManager::activateEditor(ie);
return ie; return ie;
} }
@@ -1262,7 +1261,7 @@ void PerforcePlugin::p4Diff(const PerforceDiffParameters &p)
if (existingEditor) { if (existingEditor) {
existingEditor->createNew(result.stdOut); existingEditor->createNew(result.stdOut);
Core::EditorManager::activateEditor(existingEditor, Core::EditorManager::ModeSwitch); Core::EditorManager::activateEditor(existingEditor);
return; return;
} }
// Create new editor // Create new editor

View File

@@ -261,7 +261,7 @@ void FolderNavigationWidget::openItem(const QModelIndex &srcIndex)
return; return;
} }
// Open file. // Open file.
Core::EditorManager::openEditor(m_fileSystemModel->filePath(srcIndex), Core::Id(), Core::EditorManager::ModeSwitch); Core::EditorManager::openEditor(m_fileSystemModel->filePath(srcIndex));
} }
void FolderNavigationWidget::setCurrentTitle(QString dirName, const QString &fullPath) void FolderNavigationWidget::setCurrentTitle(QString dirName, const QString &fullPath)

View File

@@ -265,7 +265,6 @@ public:
setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Project.png"))); setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Project.png")));
setPriority(Constants::P_MODE_SESSION); setPriority(Constants::P_MODE_SESSION);
setId(Constants::MODE_SESSION); setId(Constants::MODE_SESSION);
setType(Core::Id());
setContextHelpId(QLatin1String("Managing Projects")); setContextHelpId(QLatin1String("Managing Projects"));
} }
}; };
@@ -2873,7 +2872,7 @@ void ProjectExplorerPlugin::removeProject()
void ProjectExplorerPlugin::openFile() void ProjectExplorerPlugin::openFile()
{ {
QTC_ASSERT(d->m_currentNode, return); QTC_ASSERT(d->m_currentNode, return);
Core::EditorManager::openEditor(d->m_currentNode->path(), Core::Id(), Core::EditorManager::ModeSwitch); Core::EditorManager::openEditor(d->m_currentNode->path());
} }
void ProjectExplorerPlugin::searchOnFileSystem() void ProjectExplorerPlugin::searchOnFileSystem()

View File

@@ -372,7 +372,7 @@ void ProjectTreeWidget::openItem(const QModelIndex &mainIndex)
Node *node = m_model->nodeForIndex(mainIndex); Node *node = m_model->nodeForIndex(mainIndex);
if (node->nodeType() != FileNodeType) if (node->nodeType() != FileNodeType)
return; return;
IEditor *editor = EditorManager::openEditor(node->path(), Id(), EditorManager::ModeSwitch); IEditor *editor = EditorManager::openEditor(node->path());
if (node->line() >= 0) if (node->line() >= 0)
editor->gotoLine(node->line()); editor->gotoLine(node->line());
} }

View File

@@ -120,7 +120,8 @@ void FormEditorCrumbleBar::onCrumblePathElementClicked(const QVariant &data)
} else { } else {
crumblePath()->popElement(); crumblePath()->popElement();
nextFileIsCalledInternally(); nextFileIsCalledInternally();
Core::EditorManager::openEditor(clickedCrumbleBarInfo.fileName); Core::EditorManager::openEditor(clickedCrumbleBarInfo.fileName, Core::Id(),
Core::EditorManager::DoNotMakeVisible);
if (!clickedCrumbleBarInfo.componentId.isEmpty()) { if (!clickedCrumbleBarInfo.componentId.isEmpty()) {
currentDesignDocument()->changeToSubComponent( currentDesignDocument()->changeToSubComponent(
currentDesignDocument()->rewriterView()->modelNodeForId(clickedCrumbleBarInfo.componentId)); currentDesignDocument()->rewriterView()->modelNodeForId(clickedCrumbleBarInfo.componentId));

View File

@@ -309,7 +309,7 @@ void DesignDocument::changeToSubComponent(const ModelNode &componentNode)
void DesignDocument::changeToExternalSubComponent(const QString &fileName) void DesignDocument::changeToExternalSubComponent(const QString &fileName)
{ {
Core::EditorManager::openEditor(fileName); Core::EditorManager::openEditor(fileName, Core::Id(), Core::EditorManager::DoNotMakeVisible);
} }
void DesignDocument::goIntoSelectedComponent() void DesignDocument::goIntoSelectedComponent()

View File

@@ -289,7 +289,8 @@ void NavigatorView::changeToComponent(const QModelIndex &index)
if (index.isValid() && m_treeModel->data(index, Qt::UserRole).isValid()) { if (index.isValid() && m_treeModel->data(index, Qt::UserRole).isValid()) {
ModelNode doubleClickNode = m_treeModel->nodeForIndex(index); ModelNode doubleClickNode = m_treeModel->nodeForIndex(index);
if (doubleClickNode.metaInfo().isFileComponent()) if (doubleClickNode.metaInfo().isFileComponent())
Core::EditorManager::openEditor(doubleClickNode.metaInfo().componentFileName()); Core::EditorManager::openEditor(doubleClickNode.metaInfo().componentFileName(),
Core::Id(), Core::EditorManager::DoNotMakeVisible);
} }
} }

View File

@@ -35,8 +35,7 @@
using namespace QmlDesigner; using namespace QmlDesigner;
DesignerSettings::DesignerSettings() DesignerSettings::DesignerSettings()
: openDesignMode(QmlDesigner::Constants::QML_OPENDESIGNMODE_DEFAULT), : itemSpacing(0),
itemSpacing(0),
containerPadding(0), containerPadding(0),
canvasWidth(10000), canvasWidth(10000),
canvasHeight(10000), canvasHeight(10000),
@@ -50,9 +49,6 @@ void DesignerSettings::fromSettings(QSettings *settings)
{ {
settings->beginGroup(QLatin1String(QmlDesigner::Constants::QML_SETTINGS_GROUP)); settings->beginGroup(QLatin1String(QmlDesigner::Constants::QML_SETTINGS_GROUP));
settings->beginGroup(QLatin1String(QmlDesigner::Constants::QML_DESIGNER_SETTINGS_GROUP)); settings->beginGroup(QLatin1String(QmlDesigner::Constants::QML_DESIGNER_SETTINGS_GROUP));
openDesignMode = settings->value(
QLatin1String(QmlDesigner::Constants::QML_OPENDESIGNMODE_SETTINGS_KEY),
bool(QmlDesigner::Constants::QML_OPENDESIGNMODE_DEFAULT)).toBool();
itemSpacing = settings->value( itemSpacing = settings->value(
QLatin1String(QmlDesigner::Constants::QML_ITEMSPACING_KEY), QVariant(6)).toInt(); QLatin1String(QmlDesigner::Constants::QML_ITEMSPACING_KEY), QVariant(6)).toInt();
containerPadding = settings->value( containerPadding = settings->value(
@@ -76,7 +72,6 @@ void DesignerSettings::toSettings(QSettings *settings) const
{ {
settings->beginGroup(QLatin1String(QmlDesigner::Constants::QML_SETTINGS_GROUP)); settings->beginGroup(QLatin1String(QmlDesigner::Constants::QML_SETTINGS_GROUP));
settings->beginGroup(QLatin1String(QmlDesigner::Constants::QML_DESIGNER_SETTINGS_GROUP)); settings->beginGroup(QLatin1String(QmlDesigner::Constants::QML_DESIGNER_SETTINGS_GROUP));
settings->setValue(QLatin1String(QmlDesigner::Constants::QML_OPENDESIGNMODE_SETTINGS_KEY), openDesignMode);
settings->setValue(QLatin1String(QmlDesigner::Constants::QML_ITEMSPACING_KEY), itemSpacing); settings->setValue(QLatin1String(QmlDesigner::Constants::QML_ITEMSPACING_KEY), itemSpacing);
settings->setValue(QLatin1String(QmlDesigner::Constants::QML_CONTAINERPADDING_KEY), containerPadding); settings->setValue(QLatin1String(QmlDesigner::Constants::QML_CONTAINERPADDING_KEY), containerPadding);
settings->setValue(QLatin1String(QmlDesigner::Constants::QML_CANVASWIDTH_KEY), canvasWidth); settings->setValue(QLatin1String(QmlDesigner::Constants::QML_CANVASWIDTH_KEY), canvasWidth);
@@ -92,8 +87,7 @@ void DesignerSettings::toSettings(QSettings *settings) const
bool DesignerSettings::equals(const DesignerSettings &other) const bool DesignerSettings::equals(const DesignerSettings &other) const
{ {
return openDesignMode == other.openDesignMode return containerPadding == other.containerPadding
&& containerPadding == other.containerPadding
&& canvasWidth == other.canvasWidth && canvasWidth == other.canvasWidth
&& canvasHeight == other.canvasHeight && canvasHeight == other.canvasHeight
&& warningsInDesigner == other.warningsInDesigner && warningsInDesigner == other.warningsInDesigner

View File

@@ -47,7 +47,6 @@ public:
void toSettings(QSettings *) const; void toSettings(QSettings *) const;
bool equals(const DesignerSettings &other) const; bool equals(const DesignerSettings &other) const;
bool openDesignMode;
int itemSpacing; int itemSpacing;
int containerPadding; int containerPadding;
int canvasWidth; int canvasWidth;

View File

@@ -451,7 +451,8 @@ void DesignModeWidget::toolBarOnGoBackClicked()
if (m_navigatorHistoryCounter > 0) { if (m_navigatorHistoryCounter > 0) {
--m_navigatorHistoryCounter; --m_navigatorHistoryCounter;
m_keepNavigatorHistory = true; m_keepNavigatorHistory = true;
Core::EditorManager::openEditor(m_navigatorHistory.at(m_navigatorHistoryCounter)); Core::EditorManager::openEditor(m_navigatorHistory.at(m_navigatorHistoryCounter),
Core::Id(), Core::EditorManager::DoNotMakeVisible);
m_keepNavigatorHistory = false; m_keepNavigatorHistory = false;
} }
} }
@@ -461,7 +462,8 @@ void DesignModeWidget::toolBarOnGoForwardClicked()
if (m_navigatorHistoryCounter < (m_navigatorHistory.size() - 1)) { if (m_navigatorHistoryCounter < (m_navigatorHistory.size() - 1)) {
++m_navigatorHistoryCounter; ++m_navigatorHistoryCounter;
m_keepNavigatorHistory = true; m_keepNavigatorHistory = true;
Core::EditorManager::openEditor(m_navigatorHistory.at(m_navigatorHistoryCounter)); Core::EditorManager::openEditor(m_navigatorHistory.at(m_navigatorHistoryCounter),
Core::Id(), Core::EditorManager::DoNotMakeVisible);
m_keepNavigatorHistory = false; m_keepNavigatorHistory = false;
} }
} }

View File

@@ -53,7 +53,6 @@ const char GO_INTO_COMPONENT[] = "QmlDesigner.GoIntoComponent";
// This setting is also accessed by the QMlJsEditor. // This setting is also accessed by the QMlJsEditor.
const char QML_SETTINGS_GROUP[] = "QML"; const char QML_SETTINGS_GROUP[] = "QML";
const char QML_DESIGNER_SETTINGS_GROUP[] = "Designer"; const char QML_DESIGNER_SETTINGS_GROUP[] = "Designer";
const char QML_OPENDESIGNMODE_SETTINGS_KEY[] = "OpenDesignMode";
const char QML_ITEMSPACING_KEY[] = "ItemSpacing"; const char QML_ITEMSPACING_KEY[] = "ItemSpacing";
const char QML_CONTAINERPADDING_KEY[] = "ContainerPadding"; const char QML_CONTAINERPADDING_KEY[] = "ContainerPadding";
const char QML_CANVASWIDTH_KEY[] = "CanvasWidth"; const char QML_CANVASWIDTH_KEY[] = "CanvasWidth";
@@ -64,7 +63,6 @@ const char QML_WARNIN_FOR_FEATURES_IN_DESIGNER_KEY[] = "WarnAboutQtQuickFeatures
const char QML_WARNIN_FOR_DESIGNER_FEATURES_IN_EDITOR_KEY[] = "WarnAboutQtQuickDesignerFeaturesInCodeEditor"; const char QML_WARNIN_FOR_DESIGNER_FEATURES_IN_EDITOR_KEY[] = "WarnAboutQtQuickDesignerFeaturesInCodeEditor";
const char QML_SHOW_DEBUGVIEW[] = "ShowQtQuickDesignerDebugView"; const char QML_SHOW_DEBUGVIEW[] = "ShowQtQuickDesignerDebugView";
const char QML_ENABLE_DEBUGVIEW[] = "EnableQtQuickDesignerDebugView"; const char QML_ENABLE_DEBUGVIEW[] = "EnableQtQuickDesignerDebugView";
enum { QML_OPENDESIGNMODE_DEFAULT = 0 }; // 0 for text mode, 1 for design mode
const char SETTINGS_CATEGORY_QML_ICON[] = ":/core/images/category_qml.png"; const char SETTINGS_CATEGORY_QML_ICON[] = ":/core/images/category_qml.png";

View File

@@ -33,7 +33,6 @@
#include <qmljstools/qmljstoolsconstants.h> #include <qmljstools/qmljstoolsconstants.h>
#include <texteditor/texteditorconstants.h> #include <texteditor/texteditorconstants.h>
#include <qmldesigner/qmldesignerconstants.h>
#include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/projectexplorerconstants.h>
#include <coreplugin/mimedatabase.h> #include <coreplugin/mimedatabase.h>
@@ -52,41 +51,13 @@ QmlJSEditorEditable::QmlJSEditorEditable(QmlJSTextEditorWidget *editor)
m_context.add(ProjectExplorer::Constants::LANG_QMLJS); m_context.add(ProjectExplorer::Constants::LANG_QMLJS);
} }
// Use preferred mode from Bauhaus settings bool QmlJSEditorEditable::isDesignModePreferred() const
static bool openInDesignMode()
{
static bool bauhausDetected = false;
static bool bauhausPresent = false;
// Check if Bauhaus is loaded, that is, a Design mode widget is
// registered for the QML mime type.
if (!bauhausDetected) {
if (const Core::IMode *dm = Core::ModeManager::mode(Core::Constants::MODE_DESIGN))
if (const Core::DesignMode *designMode = qobject_cast<const Core::DesignMode *>(dm))
bauhausPresent = designMode->registeredMimeTypes().contains(QLatin1String(QmlJSTools::Constants::QML_MIMETYPE));
bauhausDetected = true;
}
if (!bauhausPresent)
return false;
return bool(QmlDesigner::Constants::QML_OPENDESIGNMODE_DEFAULT);
}
Core::Id QmlJSEditorEditable::preferredModeType() const
{ {
// stay in design mode if we are there
Core::IMode *mode = Core::ModeManager::currentMode(); Core::IMode *mode = Core::ModeManager::currentMode();
if (mode && (mode->type() == Core::Constants::MODE_DESIGN_TYPE if (mode && mode->id() == Core::Constants::MODE_DESIGN)
|| mode->type() == Core::Constants::MODE_EDIT_TYPE)) return true;
{ return false;
return mode->type();
}
// if we are in other mode than edit or design, use the hard-coded default.
// because the editor opening decision is modal, it would be confusing to
// have the user also access to this failsafe setting.
if (editorWidget()->mimeType() == QLatin1String(QmlJSTools::Constants::QML_MIMETYPE)
&& openInDesignMode())
return Core::Id(Core::Constants::MODE_DESIGN_TYPE);
return Core::Id();
} }
void QmlJSEditorEditable::setTextCodec(QTextCodec *codec, TextCodecReason reason) void QmlJSEditorEditable::setTextCodec(QTextCodec *codec, TextCodecReason reason)

View File

@@ -49,7 +49,7 @@ public:
Core::Id id() const; Core::Id id() const;
bool isTemporary() const { return false; } bool isTemporary() const { return false; }
bool open(QString *errorString, const QString &fileName, const QString &realFileName); bool open(QString *errorString, const QString &fileName, const QString &realFileName);
Core::Id preferredModeType() const; bool isDesignModePreferred() const;
void setTextCodec(QTextCodec *codec, TextCodecReason = TextCodecOtherReason); void setTextCodec(QTextCodec *codec, TextCodecReason = TextCodecOtherReason);
const Utils::CommentDefinition *commentDefinition() const; const Utils::CommentDefinition *commentDefinition() const;

View File

@@ -985,11 +985,9 @@ void FindReferences::openEditor(const Find::SearchResultItem &item)
{ {
if (item.path.size() > 0) { if (item.path.size() > 0) {
Core::EditorManager::openEditorAt(QDir::fromNativeSeparators(item.path.first()), Core::EditorManager::openEditorAt(QDir::fromNativeSeparators(item.path.first()),
item.lineNumber, item.textMarkPos, Core::Id(), item.lineNumber, item.textMarkPos);
Core::EditorManager::ModeSwitch);
} else { } else {
Core::EditorManager::openEditor(QDir::fromNativeSeparators(item.text), Core::EditorManager::openEditor(QDir::fromNativeSeparators(item.text));
Core::Id(), Core::EditorManager::ModeSwitch);
} }
} }

View File

@@ -111,6 +111,5 @@ QList<Locator::FilterEntry> FunctionFilter::matchesFor(QFutureInterface<Locator:
void FunctionFilter::accept(Locator::FilterEntry selection) const void FunctionFilter::accept(Locator::FilterEntry selection) const
{ {
const LocatorData::Entry entry = qvariant_cast<LocatorData::Entry>(selection.internalData); const LocatorData::Entry entry = qvariant_cast<LocatorData::Entry>(selection.internalData);
Core::EditorManager::openEditorAt(entry.fileName, entry.line, entry.column, Core::EditorManager::openEditorAt(entry.fileName, entry.line, entry.column);
Core::Id(), Core::EditorManager::ModeSwitch);
} }

View File

@@ -247,7 +247,8 @@ void Qt4Manager::addLibrary(const QString &fileName, ProFileEditorWidget *editor
editable = editor->editor(); editable = editor->editor();
} else { } else {
editable = qobject_cast<TextEditor::BaseTextEditor *> editable = qobject_cast<TextEditor::BaseTextEditor *>
(Core::EditorManager::openEditor(fileName, Qt4ProjectManager::Constants::PROFILE_EDITOR_ID)); (Core::EditorManager::openEditor(fileName, Qt4ProjectManager::Constants::PROFILE_EDITOR_ID,
Core::EditorManager::DoNotMakeVisible));
} }
if (!editable) if (!editable)
return; return;

View File

@@ -283,7 +283,7 @@ bool AbstractMobileAppWizard::postGenerateFiles(const QWizard *w,
if (success) { if (success) {
const QString fileToOpen = fileToOpenPostGeneration(); const QString fileToOpen = fileToOpenPostGeneration();
if (!fileToOpen.isEmpty()) { if (!fileToOpen.isEmpty()) {
Core::EditorManager::openEditor(fileToOpen, Core::Id(), Core::EditorManager::ModeSwitch); Core::EditorManager::openEditor(fileToOpen);
ProjectExplorer::ProjectExplorerPlugin::instance()->setCurrentFile(0, fileToOpen); ProjectExplorer::ProjectExplorerPlugin::instance()->setCurrentFile(0, fileToOpen);
} }
} }

View File

@@ -431,7 +431,7 @@ void ExamplesWelcomePage::openProject(const QString &projectFile, const QStringL
Core::ICore::openFiles(filesToOpen); Core::ICore::openFiles(filesToOpen);
if (project->needsConfiguration()) if (project->needsConfiguration())
project->configureAsExampleProject(platforms); project->configureAsExampleProject(platforms);
Core::ModeManager::activateModeType(Core::Constants::MODE_EDIT_TYPE); Core::ModeManager::activateMode(Core::Constants::MODE_EDIT);
if (help.isValid()) if (help.isValid())
Core::ICore::helpManager()->handleHelpRequest(help.toString() + QLatin1String("?view=split")); Core::ICore::helpManager()->handleHelpRequest(help.toString() + QLatin1String("?view=split"));
} }

View File

@@ -234,7 +234,7 @@ void QtOutputFormatter::handleLink(const QString &href)
if (!fileName.isEmpty()) { if (!fileName.isEmpty()) {
fileName = m_projectFinder.findFile(QUrl::fromLocalFile(fileName)); fileName = m_projectFinder.findFile(QUrl::fromLocalFile(fileName));
Core::EditorManager::openEditorAt(fileName, line, 0); Core::EditorManager::openEditorAt(fileName, line);
return; return;
} }
} }

View File

@@ -589,7 +589,7 @@ void SubversionPlugin::svnDiff(const Subversion::Internal::SubversionDiffParamet
// Show in the same editor if diff has been executed before // Show in the same editor if diff has been executed before
if (Core::IEditor *existingEditor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) { if (Core::IEditor *existingEditor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) {
existingEditor->createNew(response.stdOut); existingEditor->createNew(response.stdOut);
Core::EditorManager::activateEditor(existingEditor, Core::EditorManager::ModeSwitch); Core::EditorManager::activateEditor(existingEditor);
setDiffBaseDirectory(existingEditor, p.workingDir); setDiffBaseDirectory(existingEditor, p.workingDir);
return; return;
} }
@@ -613,8 +613,7 @@ void SubversionPlugin::svnDiff(const Subversion::Internal::SubversionDiffParamet
SubversionSubmitEditor *SubversionPlugin::openSubversionSubmitEditor(const QString &fileName) SubversionSubmitEditor *SubversionPlugin::openSubversionSubmitEditor(const QString &fileName)
{ {
Core::IEditor *editor = Core::EditorManager::openEditor(fileName, Core::IEditor *editor = Core::EditorManager::openEditor(fileName,
Constants::SUBVERSIONCOMMITEDITOR_ID, Constants::SUBVERSIONCOMMITEDITOR_ID);
Core::EditorManager::ModeSwitch);
SubversionSubmitEditor *submitEditor = qobject_cast<SubversionSubmitEditor*>(editor); SubversionSubmitEditor *submitEditor = qobject_cast<SubversionSubmitEditor*>(editor);
QTC_CHECK(submitEditor); QTC_CHECK(submitEditor);
setSubmitEditor(submitEditor); setSubmitEditor(submitEditor);
@@ -901,7 +900,7 @@ void SubversionPlugin::filelog(const QString &workingDir,
const QString tag = VcsBase::VcsBaseEditorWidget::editorTag(VcsBase::LogOutput, workingDir, files); const QString tag = VcsBase::VcsBaseEditorWidget::editorTag(VcsBase::LogOutput, workingDir, files);
if (Core::IEditor *editor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) { if (Core::IEditor *editor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) {
editor->createNew(response.stdOut); editor->createNew(response.stdOut);
Core::EditorManager::activateEditor(editor, Core::EditorManager::ModeSwitch); Core::EditorManager::activateEditor(editor);
} else { } else {
const QString title = QString::fromLatin1("svn log %1").arg(id); const QString title = QString::fromLatin1("svn log %1").arg(id);
const QString source = VcsBase::VcsBaseEditorWidget::getSource(workingDir, files); const QString source = VcsBase::VcsBaseEditorWidget::getSource(workingDir, files);
@@ -979,7 +978,7 @@ void SubversionPlugin::vcsAnnotate(const QString &workingDir, const QString &fil
if (Core::IEditor *editor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) { if (Core::IEditor *editor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) {
editor->createNew(response.stdOut); editor->createNew(response.stdOut);
VcsBase::VcsBaseEditorWidget::gotoLineOfEditor(editor, lineNumber); VcsBase::VcsBaseEditorWidget::gotoLineOfEditor(editor, lineNumber);
Core::EditorManager::activateEditor(editor, Core::EditorManager::ModeSwitch); Core::EditorManager::activateEditor(editor);
} else { } else {
const QString title = QString::fromLatin1("svn annotate %1").arg(id); const QString title = QString::fromLatin1("svn annotate %1").arg(id);
Core::IEditor *newEditor = showOutputInEditor(title, response.stdOut, VcsBase::AnnotateOutput, source, codec); Core::IEditor *newEditor = showOutputInEditor(title, response.stdOut, VcsBase::AnnotateOutput, source, codec);
@@ -1044,7 +1043,7 @@ void SubversionPlugin::describe(const QString &source, const QString &changeNr)
const QString tag = VcsBase::VcsBaseEditorWidget::editorTag(VcsBase::DiffOutput, source, QStringList(), changeNr); const QString tag = VcsBase::VcsBaseEditorWidget::editorTag(VcsBase::DiffOutput, source, QStringList(), changeNr);
if (Core::IEditor *editor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) { if (Core::IEditor *editor = VcsBase::VcsBaseEditorWidget::locateEditorByTag(tag)) {
editor->createNew(description); editor->createNew(description);
Core::EditorManager::activateEditor(editor, Core::EditorManager::ModeSwitch); Core::EditorManager::activateEditor(editor);
} else { } else {
const QString title = QString::fromLatin1("svn describe %1#%2").arg(fi.fileName(), changeNr); const QString title = QString::fromLatin1("svn describe %1#%2").arg(fi.fileName(), changeNr);
Core::IEditor *newEditor = showOutputInEditor(title, description, VcsBase::DiffOutput, source, codec); Core::IEditor *newEditor = showOutputInEditor(title, description, VcsBase::DiffOutput, source, codec);
@@ -1189,7 +1188,7 @@ Core::IEditor *SubversionPlugin::showOutputInEditor(const QString &title, const
if (codec) if (codec)
e->setCodec(codec); e->setCodec(codec);
Core::IEditor *ie = e->editor(); Core::IEditor *ie = e->editor();
Core::EditorManager::activateEditor(ie, Core::EditorManager::ModeSwitch); Core::EditorManager::activateEditor(ie);
return ie; return ie;
} }

View File

@@ -312,12 +312,9 @@ void BaseFileFind::openEditor(const Find::SearchResultItem &item)
if (item.path.size() > 0) { if (item.path.size() > 0) {
openedEditor = Core::EditorManager::openEditorAt(QDir::fromNativeSeparators(item.path.first()), openedEditor = Core::EditorManager::openEditorAt(QDir::fromNativeSeparators(item.path.first()),
item.lineNumber, item.lineNumber,
item.textMarkPos, item.textMarkPos);
Core::Id(),
Core::EditorManager::ModeSwitch);
} else { } else {
openedEditor = Core::EditorManager::openEditor(QDir::fromNativeSeparators(item.text), openedEditor = Core::EditorManager::openEditor(QDir::fromNativeSeparators(item.text));
Core::Id(), Core::EditorManager::ModeSwitch);
} }
if (d->m_currentFindSupport) if (d->m_currentFindSupport)
d->m_currentFindSupport->clearResults(); d->m_currentFindSupport->clearResults();

View File

@@ -4899,8 +4899,7 @@ bool BaseTextEditorWidget::openLink(const Link &link, bool inNextSplit)
return true; return true;
} }
return Core::EditorManager::openEditorAt(link.targetFileName, link.targetLine, link.targetColumn, return Core::EditorManager::openEditorAt(link.targetFileName, link.targetLine, link.targetColumn);
Core::Id(), Core::EditorManager::ModeSwitch);
} }
void BaseTextEditorWidget::updateLink(QMouseEvent *e) void BaseTextEditorWidget::updateLink(QMouseEvent *e)

View File

@@ -97,9 +97,7 @@ void LineNumberFilter::accept(FilterEntry selection) const
data.first = currLine; data.first = currLine;
} }
editor->gotoLine(data.first, data.second); editor->gotoLine(data.first, data.second);
editor->widget()->setFocus(); Core::EditorManager::activateEditor(editor);
ICore::raiseWindow(editor->widget());
Core::ModeManager::activateModeType(Id(Core::Constants::MODE_EDIT_TYPE));
} }
} }

View File

@@ -136,7 +136,7 @@ BaseTextEditorWidget *RefactoringChanges::openEditor(const QString &fileName, bo
{ {
Core::EditorManager::OpenEditorFlags flags = Core::EditorManager::IgnoreNavigationHistory; Core::EditorManager::OpenEditorFlags flags = Core::EditorManager::IgnoreNavigationHistory;
if (!activate) if (!activate)
flags |= Core::EditorManager::NoActivate; flags |= Core::EditorManager::DoNotChangeCurrentEditor;
if (line != -1) { if (line != -1) {
// openEditorAt uses a 1-based line and a 0-based column! // openEditorAt uses a 1-based line and a 0-based column!
column -= 1; column -= 1;

View File

@@ -137,7 +137,7 @@ void ScratchFileWizard::createFile()
file.setAutoRemove(false); file.setAutoRemove(false);
QTC_ASSERT(file.open(), return; ); QTC_ASSERT(file.open(), return; );
file.close(); file.close();
Core::EditorManager::openEditor(file.fileName(), Core::Id(), Core::EditorManager::ModeSwitch); Core::EditorManager::openEditor(file.fileName());
} }
// ExtensionSystem::PluginInterface // ExtensionSystem::PluginInterface

View File

@@ -279,7 +279,7 @@ void CleanDialog::slotDoubleClicked(const QModelIndex &index)
if (const QStandardItem *item = d->m_filesModel->itemFromIndex(index)) if (const QStandardItem *item = d->m_filesModel->itemFromIndex(index))
if (!item->data(Internal::isDirectoryRole).toBool()) { if (!item->data(Internal::isDirectoryRole).toBool()) {
const QString fname = item->data(Internal::fileNameRole).toString(); const QString fname = item->data(Internal::fileNameRole).toString();
Core::EditorManager::openEditor(fname, Core::Id(), Core::EditorManager::ModeSwitch); Core::EditorManager::openEditor(fname);
} }
} }

View File

@@ -576,7 +576,7 @@ VcsBase::VcsBaseEditorWidget *VcsBaseClient::createVcsEditor(Core::Id kind, QStr
} }
baseEditor->setForceReadOnly(true); baseEditor->setForceReadOnly(true);
Core::EditorManager::activateEditor(outputEditor, Core::EditorManager::ModeSwitch); Core::EditorManager::activateEditor(outputEditor);
return baseEditor; return baseEditor;
} }

View File

@@ -1115,7 +1115,7 @@ void VcsBaseEditorWidget::jumpToChangeFromDiff(QTextCursor cursor)
if (!exists) if (!exists)
return; return;
Core::IEditor *ed = Core::EditorManager::openEditor(fileName, Core::Id(), Core::EditorManager::ModeSwitch); Core::IEditor *ed = Core::EditorManager::openEditor(fileName);
if (TextEditor::ITextEditor *editor = qobject_cast<TextEditor::ITextEditor *>(ed)) if (TextEditor::ITextEditor *editor = qobject_cast<TextEditor::ITextEditor *>(ed))
editor->gotoLine(chunkStart + lineCount); editor->gotoLine(chunkStart + lineCount);
} }

View File

@@ -189,7 +189,7 @@ void OutputWindowPlainTextEdit::contextMenuEvent(QContextMenuEvent *event)
} }
if (action == openAction) { if (action == openAction) {
const QString fileName = action->data().toString(); const QString fileName = action->data().toString();
Core::EditorManager::openEditor(fileName, Core::Id(), Core::EditorManager::ModeSwitch); Core::EditorManager::openEditor(fileName);
} }
} }
delete menu; delete menu;

View File

@@ -691,9 +691,7 @@ bool VcsBasePlugin::raiseSubmitEditor() const
{ {
if (!d->m_submitEditor) if (!d->m_submitEditor)
return false; return false;
Core::EditorManager::activateEditor( Core::EditorManager::activateEditor(d->m_submitEditor, Core::EditorManager::IgnoreNavigationHistory);
d->m_submitEditor,
Core::EditorManager::IgnoreNavigationHistory | Core::EditorManager::ModeSwitch);
return true; return true;
} }

View File

@@ -573,8 +573,7 @@ VcsBaseSubmitEditor::PromptSubmitResult
{ {
SubmitEditorWidget *submitWidget = static_cast<SubmitEditorWidget *>(this->widget()); SubmitEditorWidget *submitWidget = static_cast<SubmitEditorWidget *>(this->widget());
Core::EditorManager::activateEditor( Core::EditorManager::activateEditor(this, Core::EditorManager::IgnoreNavigationHistory);
this, Core::EditorManager::IgnoreNavigationHistory | Core::EditorManager::ModeSwitch);
QString errorMessage; QString errorMessage;
QMessageBox::StandardButton answer = QMessageBox::Yes; QMessageBox::StandardButton answer = QMessageBox::Yes;

View File

@@ -143,7 +143,6 @@ WelcomeMode::WelcomeMode() :
setIcon(qtLogo); setIcon(qtLogo);
setPriority(Core::Constants::P_MODE_WELCOME); setPriority(Core::Constants::P_MODE_WELCOME);
setId(Core::Constants::MODE_WELCOME); setId(Core::Constants::MODE_WELCOME);
setType(Core::Constants::MODE_WELCOME_TYPE);
setContextHelpId(QLatin1String("Qt Creator Manual")); setContextHelpId(QLatin1String("Qt Creator Manual"));
setContext(Core::Context(Core::Constants::C_WELCOME_MODE)); setContext(Core::Context(Core::Constants::C_WELCOME_MODE));