1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Projucer: Disable project saving when file modification warning is showing

This commit is contained in:
ed 2020-07-28 09:54:27 +01:00
parent f6782fe25b
commit a3af3a5381
3 changed files with 30 additions and 13 deletions

View file

@ -39,22 +39,22 @@ Project::ProjectFileModificationPoller::ProjectFileModificationPoller (Project&
void Project::ProjectFileModificationPoller::reset()
{
project.removeProjectMessage (ProjectMessages::Ids::jucerFileModified);
showingWarning = false;
pending = false;
startTimer (250);
}
void Project::ProjectFileModificationPoller::timerCallback()
{
if (project.updateCachedFileState() && ! showingWarning)
if (project.updateCachedFileState() && ! pending)
{
project.addProjectMessage (ProjectMessages::Ids::jucerFileModified,
{ { "Save current state", [this] { resaveProject(); } },
{ "Re-load from disk", [this] { reloadProjectFromDisk(); } },
{ "Ignore", [this] { reset(); } } });
{ "Re-load from disk", [this] { reloadProjectFromDisk(); } },
{ "Ignore", [this] { reset(); } } });
stopTimer();
showingWarning = true;
pending = true;
}
}
@ -79,8 +79,8 @@ void Project::ProjectFileModificationPoller::reloadProjectFromDisk()
void Project::ProjectFileModificationPoller::resaveProject()
{
project.saveProject();
reset();
project.saveProject();
}
//==============================================================================
@ -745,9 +745,15 @@ bool Project::hasIncompatibleLicenseTypeAndSplashScreenSetting() const
&& ! ProjucerApplication::getApp().getLicenseController().getCurrentState().canUnlockFullFeatures();
}
bool Project::isFileModificationCheckPending() const
{
return fileModificationPoller.isCheckPending();
}
bool Project::isSaveAndExportDisabled() const
{
return ! ProjucerApplication::getApp().isRunningCommandLine && hasIncompatibleLicenseTypeAndSplashScreenSetting();
return ! ProjucerApplication::getApp().isRunningCommandLine
&& (hasIncompatibleLicenseTypeAndSplashScreenSetting() || isFileModificationCheckPending());
}
void Project::updateLicenseWarning()