EditMode::EditMode() : m_splitter(new MiniSplitter), m_rightSplitWidgetLayout(new QVBoxLayout) { setObjectName(QLatin1String("EditMode")); setDisplayName(tr("Edit")); setIcon(Utils::Icon::modeIcon(Icons::MODE_EDIT_CLASSIC, Icons::MODE_EDIT_FLAT, Icons::MODE_EDIT_FLAT_ACTIVE)); setPriority(Constants::P_MODE_EDIT); setId(Constants::MODE_EDIT); m_rightSplitWidgetLayout->setSpacing(0); m_rightSplitWidgetLayout->setMargin(0); QWidget *rightSplitWidget = new QWidget; rightSplitWidget->setLayout(m_rightSplitWidgetLayout); auto editorPlaceHolder = new EditorManagerPlaceHolder(Constants::MODE_EDIT); m_rightSplitWidgetLayout->insertWidget(0, editorPlaceHolder); MiniSplitter *rightPaneSplitter = new MiniSplitter; rightPaneSplitter->insertWidget(0, rightSplitWidget); rightPaneSplitter->insertWidget(1, new RightPanePlaceHolder(Constants::MODE_EDIT)); rightPaneSplitter->setStretchFactor(0, 1); rightPaneSplitter->setStretchFactor(1, 0); MiniSplitter *splitter = new MiniSplitter; splitter->setOrientation(Qt::Vertical); splitter->insertWidget(0, rightPaneSplitter); QWidget *outputPane = new OutputPanePlaceHolder(Constants::MODE_EDIT, splitter); outputPane->setObjectName(QLatin1String("EditModeOutputPanePlaceHolder")); splitter->insertWidget(1, outputPane); splitter->setStretchFactor(0, 3); splitter->setStretchFactor(1, 0); m_splitter->insertWidget(0, new NavigationWidgetPlaceHolder(Constants::MODE_EDIT)); m_splitter->insertWidget(1, splitter); m_splitter->setStretchFactor(0, 0); m_splitter->setStretchFactor(1, 1); connect(ModeManager::instance(), &ModeManager::currentModeChanged, this, &EditMode::grabEditorManager); m_splitter->setFocusProxy(editorPlaceHolder); IContext *modeContextObject = new IContext(this); modeContextObject->setContext(Context(Constants::C_EDITORMANAGER)); modeContextObject->setWidget(m_splitter); ICore::addContextObject(modeContextObject); setWidget(m_splitter); setContext(Context(Constants::C_EDIT_MODE, Constants::C_NAVIGATION_PANE)); }