Fix: next and prev tabs incorrectly implemented (#6208)
Signed-off-by: T.J. McGrath-Daly <tj.mcgrath.daly@huawei.com> Co-authored-by: Tobias Alexander Franke <tobias.alexander.franke@huawei.com>
This commit is contained in:
@@ -2141,24 +2141,7 @@ namespace LUAEditor
|
||||
if (event->type() == QEvent::KeyPress)
|
||||
{
|
||||
QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event);
|
||||
if (keyEvent->key() == Qt::Key_Control)
|
||||
{
|
||||
TrackedLUACtrlTabOrder::iterator tabIter = m_CtrlTabOrder.begin();
|
||||
while (tabIter != m_CtrlTabOrder.end())
|
||||
{
|
||||
if (*tabIter == m_lastFocusedAssetId)
|
||||
{
|
||||
// store the visible top window and make it the list's topmost
|
||||
m_StoredTabAssetId = m_lastFocusedAssetId;
|
||||
m_CtrlTabOrder.erase(tabIter);
|
||||
m_CtrlTabOrder.push_front(m_lastFocusedAssetId);
|
||||
break;
|
||||
}
|
||||
|
||||
++tabIter;
|
||||
}
|
||||
}
|
||||
else if (keyEvent->key() == Qt::Key_C && (keyEvent->modifiers() & Qt::ControlModifier))
|
||||
if (keyEvent->key() == Qt::Key_C && (keyEvent->modifiers() & Qt::ControlModifier))
|
||||
{
|
||||
OnEditMenuCopy();
|
||||
return true;
|
||||
@@ -2174,32 +2157,6 @@ namespace LUAEditor
|
||||
QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event);
|
||||
if (keyEvent->key() == Qt::Key_Control)
|
||||
{
|
||||
// reconfigure the ctrl+tab stack to set the next document to be the stored guid
|
||||
// which was recorded when Ctrl was first pressed
|
||||
TrackedLUACtrlTabOrder::iterator tabIter = m_CtrlTabOrder.begin();
|
||||
while (tabIter != m_CtrlTabOrder.end())
|
||||
{
|
||||
if (*tabIter == m_StoredTabAssetId)
|
||||
{
|
||||
m_CtrlTabOrder.erase(tabIter);
|
||||
|
||||
tabIter = m_CtrlTabOrder.begin();
|
||||
++tabIter;
|
||||
if (tabIter != m_CtrlTabOrder.end())
|
||||
{
|
||||
m_CtrlTabOrder.insert(tabIter, m_StoredTabAssetId);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_CtrlTabOrder.push_back(m_StoredTabAssetId);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
++tabIter;
|
||||
}
|
||||
|
||||
m_StoredTabAssetId = "";
|
||||
}
|
||||
}
|
||||
@@ -2210,46 +2167,67 @@ namespace LUAEditor
|
||||
|
||||
void LUAEditorMainWindow::OnTabForwards()
|
||||
{
|
||||
// pop the first entry and push it to the last spot
|
||||
TrackedLUACtrlTabOrder::iterator tabIter = m_CtrlTabOrder.begin();
|
||||
if (tabIter != m_CtrlTabOrder.end())
|
||||
{
|
||||
AZStd::string assetId = *tabIter;
|
||||
m_CtrlTabOrder.pop_front();
|
||||
m_CtrlTabOrder.push_back(assetId);
|
||||
// then grab the new first entry and pass it on to the widgetry
|
||||
tabIter = m_CtrlTabOrder.begin();
|
||||
|
||||
TrackedLUAViewMap::iterator viewInfoIter = m_dOpenLUAView.find(*tabIter);
|
||||
if (viewInfoIter != m_dOpenLUAView.end())
|
||||
while (tabIter != m_CtrlTabOrder.end())
|
||||
{
|
||||
if (*tabIter == m_lastFocusedAssetId)
|
||||
{
|
||||
viewInfoIter->second.luaDockWidget()->show();
|
||||
viewInfoIter->second.luaDockWidget()->raise();
|
||||
viewInfoIter->second.luaViewWidget()->setFocus();
|
||||
break;
|
||||
}
|
||||
tabIter++;
|
||||
}
|
||||
|
||||
if (tabIter == m_CtrlTabOrder.begin())
|
||||
{
|
||||
tabIter = m_CtrlTabOrder.end();
|
||||
--tabIter;
|
||||
}
|
||||
else
|
||||
{
|
||||
--tabIter;
|
||||
}
|
||||
|
||||
TrackedLUAViewMap::iterator viewInfoIter = m_dOpenLUAView.find(*tabIter);
|
||||
if (viewInfoIter != m_dOpenLUAView.end())
|
||||
{
|
||||
viewInfoIter->second.luaDockWidget()->show();
|
||||
viewInfoIter->second.luaDockWidget()->raise();
|
||||
viewInfoIter->second.luaViewWidget()->setFocus();
|
||||
m_lastFocusedAssetId = *tabIter;
|
||||
}
|
||||
}
|
||||
|
||||
void LUAEditorMainWindow::OnTabBackwards()
|
||||
{
|
||||
// pop the last entry and push it to the first spot
|
||||
TrackedLUACtrlTabOrder::iterator tabIter = m_CtrlTabOrder.end();
|
||||
--tabIter;
|
||||
if (tabIter != m_CtrlTabOrder.end())
|
||||
{
|
||||
TrackedLUACtrlTabOrder::iterator tabIter = m_CtrlTabOrder.begin();
|
||||
while (tabIter != m_CtrlTabOrder.end())
|
||||
{
|
||||
AZStd::string assetId = *tabIter;
|
||||
m_CtrlTabOrder.pop_back();
|
||||
m_CtrlTabOrder.push_front(assetId);
|
||||
// then grab the new first entry and pass it on to the widgetry
|
||||
tabIter = m_CtrlTabOrder.begin();
|
||||
|
||||
TrackedLUAViewMap::iterator viewInfoIter = m_dOpenLUAView.find(*tabIter);
|
||||
if (viewInfoIter != m_dOpenLUAView.end())
|
||||
if (*tabIter == m_lastFocusedAssetId)
|
||||
{
|
||||
viewInfoIter->second.luaDockWidget()->show();
|
||||
viewInfoIter->second.luaDockWidget()->raise();
|
||||
viewInfoIter->second.luaViewWidget()->setFocus();
|
||||
break;
|
||||
}
|
||||
tabIter++;
|
||||
}
|
||||
|
||||
if (tabIter == m_CtrlTabOrder.end())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
tabIter++;
|
||||
if (tabIter == m_CtrlTabOrder.end())
|
||||
{
|
||||
tabIter = m_CtrlTabOrder.begin();
|
||||
|
||||
}
|
||||
|
||||
TrackedLUAViewMap::iterator viewInfoIter = m_dOpenLUAView.find(*tabIter);
|
||||
if (viewInfoIter != m_dOpenLUAView.end())
|
||||
{
|
||||
viewInfoIter->second.luaDockWidget()->show();
|
||||
viewInfoIter->second.luaDockWidget()->raise();
|
||||
viewInfoIter->second.luaViewWidget()->setFocus();
|
||||
m_lastFocusedAssetId = *tabIter;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user