private void LaunchProjPropertiesDlg(bool startOnWSPage)
{
if (!ClientServerServicesHelper.WarnOnOpeningSingleUserDialog(Cache))
return;
if (!SharedBackendServicesHelper.WarnOnOpeningSingleUserDialog(Cache))
return;
FdoCache cache = Cache;
bool fDbRenamed = false;
string sProject = cache.ProjectId.Name;
string sProjectOrig = sProject;
string sLinkedFilesRootDir = cache.LangProject.LinkedFilesRootDir;
using (var dlg = new FwProjPropertiesDlg(cache, m_app, m_app, FontHeightAdjuster.StyleSheetFromMediator(Mediator)))
{
dlg.ProjectPropertiesChanged += OnProjectPropertiesChanged;
if (startOnWSPage)
dlg.StartWithWSPage();
if (dlg.ShowDialog(this) != DialogResult.Abort)
{
fDbRenamed = dlg.ProjectNameChanged();
if (fDbRenamed)
{
sProject = dlg.ProjectName;
}
bool fFilesMoved = false;
if (dlg.LinkedFilesChanged())
{
fFilesMoved = m_app.UpdateExternalLinks(sLinkedFilesRootDir);
}
// no need for any of these refreshes if entire window has been/will be
// destroyed and recreated.
if (!fDbRenamed && !fFilesMoved)
{
Mediator.PropertyTable.SetProperty("DocumentName", cache.ProjectId.UiName);
Mediator.PropertyTable.SetPropertyPersistence("DocumentName", false);
}
}
}
if (fDbRenamed)
m_app.FwManager.RenameProject(sProject, m_app);
}