fix crash on save level as command
This commit is contained in:
parent
fd19c4eedf
commit
a30667c815
1 changed files with 32 additions and 2 deletions
|
@ -1456,6 +1456,38 @@ void SaveLevelAsPopup::initFolder() {
|
||||||
if (scene) fp = scene->decodeFilePath(project->getFolder(TProject::Drawings));
|
if (scene) fp = scene->decodeFilePath(project->getFolder(TProject::Drawings));
|
||||||
setFolder(fp);
|
setFolder(fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
/*
|
||||||
|
For Save Level As command, it is needed to check if the current level is
|
||||||
|
selected (just like Save Level command) BEFORE opening the popup. So I decided
|
||||||
|
to use an original MenuItemHandler rather than OpenPopupCommandHandler.
|
||||||
|
06/07/2016 Shun
|
||||||
|
*/
|
||||||
|
|
||||||
|
class SaveLevelAsCommandHandler final : public MenuItemHandler {
|
||||||
|
SaveLevelAsPopup *m_popup;
|
||||||
|
|
||||||
|
public:
|
||||||
|
SaveLevelAsCommandHandler() : MenuItemHandler(MI_SaveLevelAs), m_popup(0) {}
|
||||||
|
void execute() override {
|
||||||
|
TXshSimpleLevel *sl = TApp::instance()->getCurrentLevel()->getSimpleLevel();
|
||||||
|
if (!sl) {
|
||||||
|
DVGui::warning(QObject::tr("No Current Level"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ToonzScene *scene = TApp::instance()->getCurrentScene()->getScene();
|
||||||
|
if (!scene) {
|
||||||
|
DVGui::warning(QObject::tr("No Current Scene"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!m_popup) m_popup = new SaveLevelAsPopup();
|
||||||
|
m_popup->show();
|
||||||
|
m_popup->raise();
|
||||||
|
m_popup->activateWindow();
|
||||||
|
}
|
||||||
|
} saveLevelAsCommandHandler;
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
// ReplaceLevelPopup
|
// ReplaceLevelPopup
|
||||||
|
|
||||||
|
@ -2040,8 +2072,6 @@ OpenPopupCommandHandler<SaveSceneAsPopup> saveSceneAsPopupCommand(
|
||||||
OpenPopupCommandHandler<SaveSubSceneAsPopup> saveSubSceneAsPopupCommand(
|
OpenPopupCommandHandler<SaveSubSceneAsPopup> saveSubSceneAsPopupCommand(
|
||||||
MI_SaveSubxsheetAs);
|
MI_SaveSubxsheetAs);
|
||||||
OpenPopupCommandHandler<LoadLevelPopup> loadLevelPopupCommand(MI_LoadLevel);
|
OpenPopupCommandHandler<LoadLevelPopup> loadLevelPopupCommand(MI_LoadLevel);
|
||||||
OpenPopupCommandHandler<SaveLevelAsPopup> saveLevelAsPopupCommand(
|
|
||||||
MI_SaveLevelAs);
|
|
||||||
OpenPopupCommandHandler<ConvertPopupWithInput> convertWithInputPopupCommand(
|
OpenPopupCommandHandler<ConvertPopupWithInput> convertWithInputPopupCommand(
|
||||||
MI_ConvertFileWithInput);
|
MI_ConvertFileWithInput);
|
||||||
OpenPopupCommandHandler<ReplaceLevelPopup> replaceLevelPopupCommand(
|
OpenPopupCommandHandler<ReplaceLevelPopup> replaceLevelPopupCommand(
|
||||||
|
|
Loading…
Reference in a new issue