Skip to content

Commit

Permalink
Merge pull request #1226 from Autodesk/fowlert/MAYA-109983/export_state
Browse files Browse the repository at this point in the history
Separate callbacks for Save and Export
  • Loading branch information
Krystian Ligenza authored Mar 4, 2021
2 parents 1b3256b + 5d59571 commit 08647af
Showing 1 changed file with 20 additions and 8 deletions.
28 changes: 20 additions & 8 deletions lib/mayaUsd/nodes/layerManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -194,12 +194,14 @@ class LayerDatabase : public TfWeakBase

static LayerDatabase& instance();
static void setBatchSaveDelegate(BatchSaveDelegate delegate);
static void prepareForWriteCheck(bool*, void*);
static void prepareForSaveCheck(bool*, void*);
static void prepareForExportCheck(bool*, void*);
static void prepareForWriteCheck(bool*, bool);
static void loadLayersPostRead(void*);
static void cleanUpNewScene(void*);
static void removeManagerNode(MayaUsd::LayerManager* lm = nullptr);

bool getStagesToSave();
bool getStagesToSave(bool isExport);
bool supportedNodeType(MTypeId type);
void addSupportForNodeType(MTypeId type);
void removeSupportForNodeType(MTypeId type);
Expand Down Expand Up @@ -269,9 +271,9 @@ void LayerDatabase::registerCallbacks()
{
if (0 == preSaveCallbackId) {
preSaveCallbackId = MSceneMessage::addCallback(
MSceneMessage::kBeforeSaveCheck, LayerDatabase::prepareForWriteCheck);
MSceneMessage::kBeforeSaveCheck, LayerDatabase::prepareForSaveCheck);
preExportCallbackId = MSceneMessage::addCallback(
MSceneMessage::kBeforeExportCheck, LayerDatabase::prepareForWriteCheck);
MSceneMessage::kBeforeExportCheck, LayerDatabase::prepareForExportCheck);
postNewCallbackId
= MSceneMessage::addCallback(MSceneMessage::kAfterNew, LayerDatabase::cleanUpNewScene);
preOpenCallbackId = MSceneMessage::addCallback(
Expand Down Expand Up @@ -321,11 +323,21 @@ void LayerDatabase::setBatchSaveDelegate(BatchSaveDelegate delegate)
_batchSaveDelegate = delegate;
}

void LayerDatabase::prepareForWriteCheck(bool* retCode, void*)
void LayerDatabase::prepareForSaveCheck(bool* retCode, void*)
{
prepareForWriteCheck(retCode, false);
}

void LayerDatabase::prepareForExportCheck(bool* retCode, void*)
{
prepareForWriteCheck(retCode, true);
}

void LayerDatabase::prepareForWriteCheck(bool* retCode, bool isExport)
{
cleanUpNewScene(nullptr);

if (LayerDatabase::instance().getStagesToSave()) {
if (LayerDatabase::instance().getStagesToSave(isExport)) {

int dialogResult = true;

Expand All @@ -343,10 +355,10 @@ void LayerDatabase::prepareForWriteCheck(bool* retCode, void*)
}
}

bool LayerDatabase::getStagesToSave()
bool LayerDatabase::getStagesToSave(bool isExport)
{
auto allStages = MayaUsd::ufe::getAllStages();
bool checkSelection = (MFileIO::kExportTypeSelected == MFileIO::exportType());
bool checkSelection = isExport && (MFileIO::kExportTypeSelected == MFileIO::exportType());
const UFE_NS::GlobalSelection::Ptr& ufeSelection = UFE_NS::GlobalSelection::get();

_stagesToSave.clear();
Expand Down

0 comments on commit 08647af

Please sign in to comment.