Merge pull request #2915 from manongjohn/recommit_note_level_context_menu
Recommit Add Note Level context menu
This commit is contained in:
commit
ec67053ca4
1 changed files with 86 additions and 73 deletions
|
@ -3115,17 +3115,17 @@ void CellArea::contextMenuEvent(QContextMenuEvent *event) {
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
void CellArea::dragEnterEvent(QDragEnterEvent *e) {
|
void CellArea::dragEnterEvent(QDragEnterEvent *e) {
|
||||||
bool isResourceOrFolderDrop =
|
bool isResourceOrFolderDrop =
|
||||||
acceptResourceOrFolderDrop(e->mimeData()->urls());
|
acceptResourceOrFolderDrop(e->mimeData()->urls());
|
||||||
if (isResourceOrFolderDrop ||
|
if (isResourceOrFolderDrop ||
|
||||||
e->mimeData()->hasFormat(CastItems::getMimeFormat()) ||
|
e->mimeData()->hasFormat(CastItems::getMimeFormat()) ||
|
||||||
e->mimeData()->hasFormat("application/vnd.toonz.drawings")) {
|
e->mimeData()->hasFormat("application/vnd.toonz.drawings")) {
|
||||||
setDragTool(XsheetGUI::DragTool::makeDragAndDropDataTool(m_viewer));
|
setDragTool(XsheetGUI::DragTool::makeDragAndDropDataTool(m_viewer));
|
||||||
// For file dragging force CopyAction
|
// For file dragging force CopyAction
|
||||||
if (isResourceOrFolderDrop) e->setDropAction(Qt::CopyAction);
|
if (isResourceOrFolderDrop) e->setDropAction(Qt::CopyAction);
|
||||||
m_viewer->dragToolClick(e);
|
m_viewer->dragToolClick(e);
|
||||||
// For files, don't accept original proposed action in case it's a move
|
// For files, don't accept original proposed action in case it's a move
|
||||||
isResourceOrFolderDrop ? e->accept() : e->acceptProposedAction();
|
isResourceOrFolderDrop ? e->accept() : e->acceptProposedAction();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3141,7 +3141,7 @@ void CellArea::dragLeaveEvent(QDragLeaveEvent *e) {
|
||||||
void CellArea::dragMoveEvent(QDragMoveEvent *e) {
|
void CellArea::dragMoveEvent(QDragMoveEvent *e) {
|
||||||
if (!getDragTool()) return;
|
if (!getDragTool()) return;
|
||||||
bool isResourceOrFolderDrop =
|
bool isResourceOrFolderDrop =
|
||||||
acceptResourceOrFolderDrop(e->mimeData()->urls());
|
acceptResourceOrFolderDrop(e->mimeData()->urls());
|
||||||
// For file dragging force CopyAction
|
// For file dragging force CopyAction
|
||||||
if (isResourceOrFolderDrop) e->setDropAction(Qt::CopyAction);
|
if (isResourceOrFolderDrop) e->setDropAction(Qt::CopyAction);
|
||||||
m_viewer->dragToolDrag(e);
|
m_viewer->dragToolDrag(e);
|
||||||
|
@ -3158,12 +3158,12 @@ void CellArea::dropEvent(QDropEvent *e) {
|
||||||
e->setDropAction(Qt::MoveAction);
|
e->setDropAction(Qt::MoveAction);
|
||||||
e->accept();
|
e->accept();
|
||||||
} else if (acceptResourceOrFolderDrop(e->mimeData()->urls())) {
|
} else if (acceptResourceOrFolderDrop(e->mimeData()->urls())) {
|
||||||
// For file dragging force CopyAction
|
// For file dragging force CopyAction
|
||||||
e->setDropAction(Qt::CopyAction);
|
e->setDropAction(Qt::CopyAction);
|
||||||
// For files, don't accept original proposed action in case it's a move
|
// For files, don't accept original proposed action in case it's a move
|
||||||
e->accept();
|
e->accept();
|
||||||
} else
|
} else
|
||||||
e->acceptProposedAction();
|
e->acceptProposedAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -3198,10 +3198,9 @@ const bool CellArea::isControlPressed() { return isCtrlPressed; }
|
||||||
void CellArea::createCellMenu(QMenu &menu, bool isCellSelected, TXshCell cell) {
|
void CellArea::createCellMenu(QMenu &menu, bool isCellSelected, TXshCell cell) {
|
||||||
CommandManager *cmdManager = CommandManager::instance();
|
CommandManager *cmdManager = CommandManager::instance();
|
||||||
|
|
||||||
bool soundCellsSelected = m_viewer->areSoundCellsSelected();
|
bool soundCellsSelected = m_viewer->areSoundCellsSelected();
|
||||||
bool cameraCellsSelected = m_viewer->areCameraCellsSelected();
|
bool soundTextCellsSelected = m_viewer->areSoundTextCellsSelected();
|
||||||
|
bool cameraCellsSelected = m_viewer->areCameraCellsSelected();
|
||||||
if (m_viewer->areSoundTextCellsSelected()) return; // Magpies stop here
|
|
||||||
|
|
||||||
menu.addSeparator();
|
menu.addSeparator();
|
||||||
|
|
||||||
|
@ -3212,13 +3211,17 @@ void CellArea::createCellMenu(QMenu &menu, bool isCellSelected, TXshCell cell) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isCellSelected) {
|
if (isCellSelected) {
|
||||||
|
bool addSeparator = false;
|
||||||
// open fx settings instead of level settings when clicked on zerary fx
|
// open fx settings instead of level settings when clicked on zerary fx
|
||||||
// level
|
// level
|
||||||
if (cell.m_level && cell.m_level->getZeraryFxLevel())
|
if (cell.m_level && cell.m_level->getZeraryFxLevel()) {
|
||||||
menu.addAction(cmdManager->getAction(MI_FxParamEditor));
|
menu.addAction(cmdManager->getAction(MI_FxParamEditor));
|
||||||
else
|
addSeparator = true;
|
||||||
|
} else if (!soundTextCellsSelected) {
|
||||||
menu.addAction(cmdManager->getAction(MI_LevelSettings));
|
menu.addAction(cmdManager->getAction(MI_LevelSettings));
|
||||||
menu.addSeparator();
|
addSeparator = true;
|
||||||
|
}
|
||||||
|
if (addSeparator) menu.addSeparator();
|
||||||
|
|
||||||
if (!soundCellsSelected) {
|
if (!soundCellsSelected) {
|
||||||
QMenu *reframeSubMenu = new QMenu(tr("Reframe"), this);
|
QMenu *reframeSubMenu = new QMenu(tr("Reframe"), this);
|
||||||
|
@ -3250,74 +3253,81 @@ void CellArea::createCellMenu(QMenu &menu, bool isCellSelected, TXshCell cell) {
|
||||||
}
|
}
|
||||||
menu.addMenu(eachSubMenu);
|
menu.addMenu(eachSubMenu);
|
||||||
|
|
||||||
QMenu *editCellNumbersMenu = new QMenu(tr("Edit Cell Numbers"), this);
|
if (!soundTextCellsSelected) {
|
||||||
{
|
QMenu *editCellNumbersMenu = new QMenu(tr("Edit Cell Numbers"), this);
|
||||||
editCellNumbersMenu->addAction(cmdManager->getAction(MI_Reverse));
|
{
|
||||||
editCellNumbersMenu->addAction(cmdManager->getAction(MI_Swing));
|
editCellNumbersMenu->addAction(cmdManager->getAction(MI_Reverse));
|
||||||
editCellNumbersMenu->addAction(cmdManager->getAction(MI_Random));
|
editCellNumbersMenu->addAction(cmdManager->getAction(MI_Swing));
|
||||||
editCellNumbersMenu->addAction(cmdManager->getAction(MI_Dup));
|
editCellNumbersMenu->addAction(cmdManager->getAction(MI_Random));
|
||||||
editCellNumbersMenu->addAction(cmdManager->getAction(MI_Rollup));
|
editCellNumbersMenu->addAction(cmdManager->getAction(MI_Dup));
|
||||||
editCellNumbersMenu->addAction(cmdManager->getAction(MI_Rolldown));
|
editCellNumbersMenu->addAction(cmdManager->getAction(MI_Rollup));
|
||||||
editCellNumbersMenu->addAction(cmdManager->getAction(MI_TimeStretch));
|
editCellNumbersMenu->addAction(cmdManager->getAction(MI_Rolldown));
|
||||||
editCellNumbersMenu->addAction(
|
editCellNumbersMenu->addAction(cmdManager->getAction(MI_TimeStretch));
|
||||||
cmdManager->getAction(MI_AutoInputCellNumber));
|
editCellNumbersMenu->addAction(
|
||||||
|
cmdManager->getAction(MI_AutoInputCellNumber));
|
||||||
|
}
|
||||||
|
menu.addMenu(editCellNumbersMenu);
|
||||||
}
|
}
|
||||||
menu.addMenu(editCellNumbersMenu);
|
|
||||||
menu.addAction(cmdManager->getAction(MI_FillEmptyCell));
|
menu.addAction(cmdManager->getAction(MI_FillEmptyCell));
|
||||||
|
|
||||||
menu.addSeparator();
|
menu.addSeparator();
|
||||||
menu.addAction(cmdManager->getAction(MI_Autorenumber));
|
|
||||||
|
if (!soundTextCellsSelected)
|
||||||
|
menu.addAction(cmdManager->getAction(MI_Autorenumber));
|
||||||
}
|
}
|
||||||
|
|
||||||
QMenu *replaceLevelMenu = new QMenu(tr("Replace Level"), this);
|
if (!soundTextCellsSelected) {
|
||||||
menu.addMenu(replaceLevelMenu);
|
QMenu *replaceLevelMenu = new QMenu(tr("Replace Level"), this);
|
||||||
|
menu.addMenu(replaceLevelMenu);
|
||||||
|
|
||||||
replaceLevelMenu->addAction(cmdManager->getAction(MI_ReplaceLevel));
|
replaceLevelMenu->addAction(cmdManager->getAction(MI_ReplaceLevel));
|
||||||
|
|
||||||
replaceLevelMenu->addAction(
|
replaceLevelMenu->addAction(
|
||||||
cmdManager->getAction(MI_ReplaceParentDirectory));
|
cmdManager->getAction(MI_ReplaceParentDirectory));
|
||||||
|
|
||||||
{
|
{
|
||||||
// replace with another level in scene cast
|
// replace with another level in scene cast
|
||||||
std::vector<TXshLevel *> levels;
|
std::vector<TXshLevel *> levels;
|
||||||
TApp::instance()
|
TApp::instance()
|
||||||
->getCurrentScene()
|
->getCurrentScene()
|
||||||
->getScene()
|
->getScene()
|
||||||
->getLevelSet()
|
->getLevelSet()
|
||||||
->listLevels(levels);
|
->listLevels(levels);
|
||||||
if (!levels.empty()) {
|
if (!levels.empty()) {
|
||||||
QMenu *replaceMenu = replaceLevelMenu->addMenu(tr("Replace with"));
|
QMenu *replaceMenu = replaceLevelMenu->addMenu(tr("Replace with"));
|
||||||
connect(replaceMenu, SIGNAL(triggered(QAction *)), this,
|
connect(replaceMenu, SIGNAL(triggered(QAction *)), this,
|
||||||
SLOT(onReplaceByCastedLevel(QAction *)));
|
SLOT(onReplaceByCastedLevel(QAction *)));
|
||||||
for (int i = 0; i < (int)levels.size(); i++) {
|
for (int i = 0; i < (int)levels.size(); i++) {
|
||||||
if (!levels[i]->getSimpleLevel() && !levels[i]->getChildLevel())
|
if (!levels[i]->getSimpleLevel() && !levels[i]->getChildLevel())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (levels[i]->getChildLevel() &&
|
if (levels[i]->getChildLevel() &&
|
||||||
!TApp::instance()->getCurrentXsheet()->getXsheet()->isLevelUsed(
|
!TApp::instance()->getCurrentXsheet()->getXsheet()->isLevelUsed(
|
||||||
levels[i]))
|
levels[i]))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
QString tmpLevelName = QString::fromStdWString(levels[i]->getName());
|
QString tmpLevelName =
|
||||||
QAction *tmpAction = new QAction(tmpLevelName, replaceMenu);
|
QString::fromStdWString(levels[i]->getName());
|
||||||
tmpAction->setData(tmpLevelName);
|
QAction *tmpAction = new QAction(tmpLevelName, replaceMenu);
|
||||||
replaceMenu->addAction(tmpAction);
|
tmpAction->setData(tmpLevelName);
|
||||||
|
replaceMenu->addAction(tmpAction);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (!soundCellsSelected) {
|
if (!soundCellsSelected && !soundTextCellsSelected) {
|
||||||
if (selectionContainTlvImage(m_viewer->getCellSelection(),
|
if (selectionContainTlvImage(m_viewer->getCellSelection(),
|
||||||
m_viewer->getXsheet()))
|
|
||||||
replaceLevelMenu->addAction(
|
|
||||||
cmdManager->getAction(MI_RevertToCleanedUp));
|
|
||||||
if (selectionContainLevelImage(m_viewer->getCellSelection(),
|
|
||||||
m_viewer->getXsheet()))
|
m_viewer->getXsheet()))
|
||||||
replaceLevelMenu->addAction(
|
replaceLevelMenu->addAction(
|
||||||
cmdManager->getAction(MI_RevertToLastSaved));
|
cmdManager->getAction(MI_RevertToCleanedUp));
|
||||||
menu.addAction(cmdManager->getAction(MI_SetKeyframes));
|
if (selectionContainLevelImage(m_viewer->getCellSelection(),
|
||||||
|
m_viewer->getXsheet()))
|
||||||
|
replaceLevelMenu->addAction(
|
||||||
|
cmdManager->getAction(MI_RevertToLastSaved));
|
||||||
|
menu.addAction(cmdManager->getAction(MI_SetKeyframes));
|
||||||
|
}
|
||||||
|
menu.addSeparator();
|
||||||
}
|
}
|
||||||
menu.addSeparator();
|
|
||||||
|
|
||||||
menu.addAction(cmdManager->getAction(MI_Cut));
|
menu.addAction(cmdManager->getAction(MI_Cut));
|
||||||
menu.addAction(cmdManager->getAction(MI_Copy));
|
menu.addAction(cmdManager->getAction(MI_Copy));
|
||||||
|
@ -3332,8 +3342,10 @@ void CellArea::createCellMenu(QMenu &menu, bool isCellSelected, TXshCell cell) {
|
||||||
|
|
||||||
menu.addAction(cmdManager->getAction(MI_Clear));
|
menu.addAction(cmdManager->getAction(MI_Clear));
|
||||||
menu.addAction(cmdManager->getAction(MI_Insert));
|
menu.addAction(cmdManager->getAction(MI_Insert));
|
||||||
menu.addAction(cmdManager->getAction(MI_CreateBlankDrawing));
|
if (!soundTextCellsSelected) {
|
||||||
menu.addAction(cmdManager->getAction(MI_Duplicate));
|
menu.addAction(cmdManager->getAction(MI_CreateBlankDrawing));
|
||||||
|
menu.addAction(cmdManager->getAction(MI_Duplicate));
|
||||||
|
}
|
||||||
menu.addSeparator();
|
menu.addSeparator();
|
||||||
|
|
||||||
TXshSimpleLevel *sl = TApp::instance()->getCurrentLevel()->getSimpleLevel();
|
TXshSimpleLevel *sl = TApp::instance()->getCurrentLevel()->getSimpleLevel();
|
||||||
|
@ -3383,6 +3395,7 @@ void CellArea::createCellMenu(QMenu &menu, bool isCellSelected, TXshCell cell) {
|
||||||
if (!soundCellsSelected)
|
if (!soundCellsSelected)
|
||||||
menu.addAction(cmdManager->getAction(MI_ImportMagpieFile));
|
menu.addAction(cmdManager->getAction(MI_ImportMagpieFile));
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
/*! replace level with another level in the cast
|
/*! replace level with another level in the cast
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue