Merge pull request #2915 from manongjohn/recommit_note_level_context_menu

Recommit Add Note Level context menu
This commit is contained in:
Rodney 2019-12-04 20:00:39 -07:00 committed by GitHub
commit ec67053ca4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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
*/ */