Exemplo n.º 1
0
        internal void SetActiveDocumentInternal(Document document)
        {
            // Work around a case where we closed a document but haven't updated
            // the active_document_index yet and it points to the closed document
            if (HasOpenDocuments && active_document_index != -1 && OpenDocuments.Count > active_document_index)
            {
                PintaCore.Tools.Commit();
            }

            int index = OpenDocuments.IndexOf(document);

            active_document_index = index;

            OnActiveDocumentChanged(EventArgs.Empty);
        }
Exemplo n.º 2
0
        private void OpenAutoSavedDocuments()
        {
            OpenDocuments.AddRange(LoadAutoSavedDocuments(DocumentRoot.Path));

            _dispatcher.InvokeAsync(() =>
            {
                if (HasNoOpenDocuments)
                {
                    CreateNewDocument();
                }
                else
                {
                    CurrentOpenDocument = OpenDocuments[0];
                }
            });
        }
Exemplo n.º 3
0
        public void OpenDocument(DocumentViewModel document)
        {
            if (document.IsFolder)
            {
                return;
            }

            var openDocument = OpenDocuments.FirstOrDefault(x => x.Document == document);

            if (openDocument == null)
            {
                openDocument = GetOpenDocumentViewModel(document);
                OpenDocuments.Add(openDocument);
            }
            CurrentOpenDocument = openDocument;
        }
Exemplo n.º 4
0
        public async Task CloseDocument(OpenDocumentViewModel document)
        {
            var result = await document.Save(promptSave : true).ConfigureAwait(true);

            if (result == SaveResult.Cancel)
            {
                return;
            }
            if (document.Document?.IsAutoSave == true)
            {
                File.Delete(document.Document.Path);
            }
            RoslynHost.CloseDocument(document.DocumentId);
            OpenDocuments.Remove(document);
            document.Close();
        }
Exemplo n.º 5
0
        /// <summary>
        /// Opens a document in the viewer.
        ///
        /// If the document is already opened it is just activated.
        /// </summary>
        /// <param name="filePath">Path of the document, which should be opened in the viewer.</param>
        /// <param name="searchQuery">Search query for which the match occurrences have been returned.</param>
        /// <param name="occurrences">Match occurrences, which should be highlighted in the document viewer.</param>
        /// <returns>Opened document view model.</returns>
        internal DocumentViewModel OpenDocument(string filePath, string searchQuery, ReadOnlyCollection <IOccurrence> occurrences)
        {
            int docIndex = 0;

            if (Engine.FileStorageProviders.Exists(filePath))
            {
                try
                {
                    System.Windows.Input.Mouse.OverrideCursor = System.Windows.Input.Cursors.Wait;
                    foreach (var openDocument in OpenDocuments)
                    {
                        if (openDocument.FilePath.Equals(filePath, StringComparison.OrdinalIgnoreCase))
                        {
                            break;
                        }
                        ++docIndex;
                    }

                    if (docIndex >= OpenDocuments.Count || OpenDocuments[docIndex].OccurrenceModels != occurrences)
                    {
                        var newDocument = new DocumentViewModel(filePath, occurrences, searchQuery, fileActionCloseAllButThis: mCloseAllButThisFileAction, fileActionCloseAll: mCloseAllFilesAction);
                        newDocument.FileViewerTemplate = mFileViewerTemplate;
                        if (docIndex < OpenDocuments.Count)
                        {
                            OpenDocuments.RemoveAt(docIndex);
                        }
                        OpenDocuments.Insert(docIndex, newDocument);
                        CurrentDocument = newDocument;
                    }
                    else
                    {
                        CurrentDocument = OpenDocuments[docIndex];
                    }
                    return(CurrentDocument);
                }
                finally
                {
                    System.Windows.Input.Mouse.OverrideCursor = null;
                }
            }
            else
            {
                System.Windows.MessageBox.Show(string.Format("Cannot open file \"{0}\" because it does not exist!", filePath), "Open file...", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error);
            }

            return(null);
        }
Exemplo n.º 6
0
        public Document CreateAndActivateDocument(string filename, Gdk.Size size)
        {
            Document doc = new Document(size);

            if (string.IsNullOrEmpty(filename))
            {
                doc.Filename = string.Format(Catalog.GetString("Unsaved Image {0}"), new_file_name++);
            }
            else
            {
                doc.PathAndFileName = filename;
            }

            OpenDocuments.Add(doc);
            OnDocumentCreated(new DocumentEventArgs(doc));

            SetActiveDocument(doc);

            return(doc);
        }
Exemplo n.º 7
0
        public async Task CloseDocument(OpenDocumentViewModel document)
        {
            var result = await document.Save(promptSave : true).ConfigureAwait(true);

            if (result == SaveResult.Cancel)
            {
                return;
            }

            // ReSharper disable once PossibleNullReferenceException
            var autoSavePath = document.Document?.GetAutoSavePath();

            if (autoSavePath != null && File.Exists(autoSavePath))
            {
                File.Delete(autoSavePath);
            }

            RoslynHost.CloseDocument(document.DocumentId);
            OpenDocuments.Remove(document);
            document.Close();
        }
Exemplo n.º 8
0
        public async void OpenDocument()
        {
            try
            {
                FileOpenPicker openPicker = new FileOpenPicker();
                openPicker.ViewMode = PickerViewMode.List;
                openPicker.FileTypeFilter.Add(".json");

                StorageFile file = await openPicker.PickSingleFileAsync();

                if (file != null)
                {
                    string token = StorageApplicationPermissions.FutureAccessList.Add(file);
                    OpenDocuments.Add(await DocumentViewModel.LoadFromFileAsync(this, file, token));
                    CurrentDocument = OpenDocuments.LastOrDefault();
                    SaveFileTokensAsync();
                }
                else
                {
                }
            }
            catch { }
        }
Exemplo n.º 9
0
        public async void CloseDocument(BaseDocumentViewModel document)
        {
            // TODO: Check if not saved
            int index = OpenDocuments.IndexOf(document);

            if (index != -1)
            {
                OpenDocuments.RemoveAt(index);

                if (index < OpenDocuments.Count)
                {
                    CurrentDocument = OpenDocuments[index];
                }
                else
                {
                    CurrentDocument = OpenDocuments.LastOrDefault();
                }

                if (document.Token != null)
                {
                    await SaveFileTokensAsync();
                }
            }
        }
Exemplo n.º 10
0
        public void OnSelectedSolutionItemChanged()
        {
            if (!(SelectedSolutionItem?.HasPreview ?? false))
            {
                return;
            }

            var alreadyOpenDocument = OpenDocuments.FirstOrDefault(d => d.AssociatedModel == SelectedSolutionItem);

            if (alreadyOpenDocument != null)
            {
                ActiveDocument = alreadyOpenDocument;
                return;
            }

            var currentTemporary = OpenDocuments.FirstOrDefault(d => d.IsTemporary);

            var document = OpenDocument(SelectedSolutionItem);

            if (currentTemporary == null)
            {
                currentTemporary = new DocumentViewModel
                {
                    IsTemporary = true
                };

                OpenDocuments.Add(currentTemporary);
            }

            currentTemporary.AssociatedModel = document.AssociatedModel;
            currentTemporary.Content         = document.Content;
            currentTemporary.Syntax          = document.Syntax;
            currentTemporary.Title           = $"*{document.Title}";

            ActiveDocument = currentTemporary;
        }
Exemplo n.º 11
0
        private async Task LoadFilesAsync()
        {
            OpenDocuments.Clear();

            var tokens = await Settings.GetFileTokensAsync();

            var documents = new List <BaseDocumentViewModel>();

            foreach (string token in tokens)
            {
                try
                {
                    StorageFile file;
                    bool        isSaveable = false;
                    if (token.StartsWith("SampleFile:"))
                    {
                        string fileName = token.Substring("SampleFile:".Length);
                        file = await StorageFile.GetFileFromApplicationUriAsync(new Uri($"ms-appx:///{SamplesFolderName}/{fileName}"));
                    }
                    else
                    {
                        file = await StorageApplicationPermissions.FutureAccessList.GetFileAsync(token);

                        isSaveable = true;
                    }

                    if (file != null)
                    {
                        documents.Add(await LoadFromFileAsync(file, token, Properties, isSaveable));
                    }
                }
                catch { }
            }

            try
            {
                var samplesFolder = await Package.Current.InstalledLocation.GetFolderAsync(SamplesFolderName);

                foreach (var file in await samplesFolder.GetFilesAsync())
                {
                    if (file.FileType.ToLower().Equals(".json"))
                    {
                        AddDocumentItems.Add(new AddDocumentListItem()
                        {
                            DisplayName = file.Name,
                            File        = file
                        });
                    }
                }
            }
            catch { }

            foreach (var doc in documents)
            {
                AddDocument(doc);
            }

            var currDoc = documents.FirstOrDefault(i => i.Token == _currentDocumentToken.Value);

            if (currDoc == null)
            {
                currDoc = documents.FirstOrDefault();
            }

            CurrentDocument = currDoc;
        }
Exemplo n.º 12
0
 private void AddDocument(BaseDocumentViewModel doc)
 {
     OpenDocuments.Add(doc);
     doc.OnRequestClose          += Doc_OnRequestClose;
     doc.OnRequestSaveFileTokens += Doc_OnRequestSaveFileTokens;
 }
Exemplo n.º 13
0
 private async void AddAndSelectDocument(BaseDocumentViewModel doc)
 {
     AddDocument(doc);
     CurrentDocument = OpenDocuments.LastOrDefault();
     await SaveFileTokensAsync();
 }
Exemplo n.º 14
0
 private void NewDocument()
 {
     AddDocument(CreateNewDocument());
     CurrentDocument = OpenDocuments.Last();
 }
Exemplo n.º 15
0
 /// <summary>
 /// Called to update the current status of the command.
 /// </summary>
 protected override void OnBeforeQueryStatus()
 {
     Enabled = OpenDocuments.Any();
 }
Exemplo n.º 16
0
 private async Task SaveFileTokensAsync()
 {
     await Settings.SaveFileTokensAsync(OpenDocuments.Select(i => i.Token));
 }
Exemplo n.º 17
0
 public override System.Threading.Tasks.Task <ParsedDocument> Parse(ParseOptions parseOptions, System.Threading.CancellationToken cancellationToken)
 {
     Doc.Editor.FileName = parseOptions.FileName;
     OpenDocuments.Add(new OpenRazorDocument(Doc.Editor));
     return(base.Parse(parseOptions, cancellationToken));
 }
Exemplo n.º 18
0
 public override ParsedDocument Parse(bool storeAst, string fileName, System.IO.TextReader content, Project project = null)
 {
     Doc.Editor.Document.FileName = fileName;
     OpenDocuments.Add(Doc.Editor.Document);
     return(base.Parse(storeAst, fileName, content, project));
 }