documentor: Fixed first Save on doc file creation
[sdk] / documentor / src / Documentor.ec
index fbe3c73..06bebe6 100644 (file)
@@ -2085,6 +2085,7 @@ class MainForm : Window
          if(SettingsDialog { master = this }.Modal() == ok) // Open the settings dialog to allow the user to change the directory for the eCdoc files
          {
             // Refresh docs
+            view.edit = false;
             view.Destroy(0);
             view.Create();
          }
@@ -2283,9 +2284,26 @@ class HelpView : HTMLView
 
             sprintf(docFile, "%s/%s.eCdoc", settings.docDir, (!module || !module.name || (ns && ns->name && !strcmp(ns->name, "namespaces/ecere/namespaces/com"))) ? "ecereCOM" : module.name);
 
-            archive = ArchiveOpen(docFile, { true } );
-            readOnly = archive == null;
-            delete archive;
+            if(FileExists(docFile))
+            {
+               archive = ArchiveOpen(docFile, { true } );
+               readOnly = archive == null;
+               delete archive;
+            }
+            else
+            {
+               readOnly = true;
+               archive = ArchiveOpen(docFile, { true } );
+               if(archive)
+               {
+                  // Must create root directory on archive creation
+                  ArchiveDir dir = archive.OpenDirectory("", null, replace);
+                  if(dir)
+                     readOnly = false;
+                  delete dir;
+               }
+               delete archive;
+            }
          }
 
          page.Generate(f);