Okay, this needs to be handled in FlowTab.cpp SplitSection() before the OldTabRequest is fired as that is obviously too late.
Code:
void FlowTab::SplitSection()
{
if (!IsDataWellFormed()) {
return;
}
QWidget *mainWindow_w = Utility::GetMainWindow();
MainWindow *mainWindow = qobject_cast<MainWindow *>(mainWindow_w);
if (!mainWindow) {
Utility::DisplayStdErrorDialog("Could not determine main window.");
return;
}
HTMLResource * nav_resource = mainWindow->GetCurrentBook()->GetConstOPF()->GetNavResource();
if (nav_resource && (nav_resource == m_HTMLResource)) {
Utility::DisplayStdErrorDialog("The Nav file can not be split");
return;
}
// Handle warning the user about undefined url fragments.
if (!mainWindow->ProceedWithUndefinedUrlFragments()) {
return;
}
if (m_wCodeView) {
emit OldTabRequest(m_wCodeView->SplitSection(), m_HTMLResource);
}
}
So from this, I think we can simply remove the "Cannot be split" from that part of MainWindow.cpp as it is too late by that point to not hurt something.
We can then "*assume*" that a .xml file that actually gets successfully loaded into a FlowTab itself must be xhtml (otherwise it would be loaded in a XMLTab) and maybe even remove that test in MainWidow completely since it is already too late.
I will try doing that.