bug-fix: VMdTab does not scroll to the correct header in edit mode

This is introduced after replacing QStackedLayout with QSplitter.
This commit is contained in:
Le Tan 2018-05-04 20:37:57 +08:00
parent bab0140c9f
commit ccaaeeef87

View File

@ -1383,13 +1383,20 @@ void VMdTab::setCurrentMode(Mode p_mode)
m_livePreviewHelper->setLivePreviewEnabled(false); m_livePreviewHelper->setLivePreviewEnabled(false);
} }
m_mode = p_mode;
switch (p_mode) { switch (p_mode) {
case Mode::Read: case Mode::Read:
m_webViewer->show();
if (m_editor) { if (m_editor) {
m_editor->hide(); m_editor->hide();
} }
m_webViewer->show();
// Fix the bug introduced by 051088be31dbffa3c04e2d382af15beec40d5fdb
// which replace QStackedLayout with QSplitter.
QCoreApplication::sendPostedEvents();
if (m_readWebViewState.isNull()) { if (m_readWebViewState.isNull()) {
m_readWebViewState.reset(new WebViewState()); m_readWebViewState.reset(new WebViewState());
m_readWebViewState->m_zoomFactor = factor; m_readWebViewState->m_zoomFactor = factor;
@ -1401,14 +1408,20 @@ void VMdTab::setCurrentMode(Mode p_mode)
break; break;
case Mode::Edit: case Mode::Edit:
m_editor->show();
m_webViewer->hide(); m_webViewer->hide();
m_editor->show();
QCoreApplication::sendPostedEvents();
break; break;
case Mode::EditPreview: case Mode::EditPreview:
Q_ASSERT(m_editor); Q_ASSERT(m_editor);
m_editor->show();
m_webViewer->show(); m_webViewer->show();
m_editor->show();
QCoreApplication::sendPostedEvents();
if (m_previewWebViewState.isNull()) { if (m_previewWebViewState.isNull()) {
m_previewWebViewState.reset(new WebViewState()); m_previewWebViewState.reset(new WebViewState());
m_previewWebViewState->m_zoomFactor = factor; m_previewWebViewState->m_zoomFactor = factor;
@ -1440,8 +1453,6 @@ void VMdTab::setCurrentMode(Mode p_mode)
break; break;
} }
m_mode = p_mode;
focusChild(); focusChild();
} }