internal bool __RemovePane(PaneViewModel pane)
 {
     if (pane is DocumentViewModel)
     {
         if (!_internalDocuments.Contains((DocumentViewModel)pane))
         {
             return(false);
         }
         else
         {
             _internalDocuments.Remove((DocumentViewModel)pane);
             return(true);
         }
     }
     else if (pane is ToolViewModel)
     {
         if (!_internalPanels.Contains((ToolViewModel)pane))
         {
             return(false);
         }
         else
         {
             _internalPanels.Remove((ToolViewModel)pane);
             return(true);
         }
     }
     else
     {
         throw new Exception("Unknown type of PaneViewModel");
     }
 }
 internal bool __AddPane(PaneViewModel pane)
 {
     if (pane is DocumentViewModel)
     {
         if (_internalDocuments.Contains((DocumentViewModel)pane))
         {
             // TODO: show
             return(false);
         }
         else
         {
             _internalDocuments.Add((DocumentViewModel)pane);
             return(true);
         }
     }
     else if (pane is ToolViewModel)
     {
         if (_internalPanels.Contains((ToolViewModel)pane))
         {
             // TODO: show
             return(false);
         }
         else
         {
             _internalPanels.Add((ToolViewModel)pane);
             return(true);
         }
     }
     else
     {
         throw new Exception("Unknown type of PaneViewModel");
     }
 }
Пример #3
0
        /// <summary>
        /// Invoked when application execution is being suspended.  Application state is saved
        /// without knowing whether the application will be terminated or resumed with the contents
        /// of memory still intact.
        /// </summary>
        /// <param name="sender">The source of the suspend request.</param>
        /// <param name="e">Details about the suspend request.</param>
        private async void OnSuspending(object sender, SuspendingEventArgs e)
        {
            // Save application state and stop any background activity
            var deferral = e.SuspendingOperation.GetDeferral();

            SaveSessionTabs();

            if (OutputPath != null)
            {
                await SafetyExtensions.IgnoreExceptions(async() =>
                {
                    var instance = MainPageViewModel.AppInstances.FirstOrDefault(x => x.Control.TabItemContent.IsCurrentInstance);
                    if (instance == null)
                    {
                        return;
                    }
                    var items = (instance.Control.TabItemContent as PaneHolderPage)?.ActivePane?.SlimContentPage?.SelectedItems;
                    if (items == null)
                    {
                        return;
                    }
                    await FileIO.WriteLinesAsync(await StorageFile.GetFileFromPathAsync(OutputPath), items.Select(x => x.ItemPath));
                }, Logger);
            }

            DrivesManager?.Dispose();
            PaneViewModel?.Dispose();
            PreviewPaneViewModel?.Dispose();

            // Try to maintain clipboard data after app close
            SafetyExtensions.IgnoreExceptions(() =>
            {
                var dataPackage = Clipboard.GetContent();
                if (dataPackage.Properties.PackageFamilyName == Package.Current.Id.FamilyName)
                {
                    if (dataPackage.Contains(StandardDataFormats.StorageItems))
                    {
                        Clipboard.Flush();
                    }
                }
            }, Logger);

            deferral.Complete();
        }
Пример #4
0
 public RemovePaneCmd(ISiteViewModel receiver, PaneViewModel pane) : base(receiver)
 {
     _pane = pane;
 }
Пример #5
0
 internal void Close(PaneViewModel fileToClose)
 {
     _viewModels.Remove(fileToClose);
 }
Пример #6
0
 bool ISiteViewModelReceiver.__RemovePane(PaneViewModel pane)
 {
     return(_mainViewModel.__RemovePane(pane));
 }