Exemplo n.º 1
0
        private async void AllView_ItemPress(object sender, PointerRoutedEventArgs e)
        {
            var ctrlPressed  = Window.Current.CoreWindow.GetKeyState(VirtualKey.Control).HasFlag(CoreVirtualKeyStates.Down);
            var shiftPressed = Window.Current.CoreWindow.GetKeyState(VirtualKey.Shift).HasFlag(CoreVirtualKeyStates.Down);

            var cp = e.GetCurrentPoint((UIElement)sender);

            if (cp.Position.Y <= AllView.ColumnHeaderHeight || // Return if click is on the header
                cp.Properties.IsLeftButtonPressed || // Return if dragging an item
                cp.Properties.IsRightButtonPressed || // Return if the user right clicks an item
                ctrlPressed || shiftPressed)    // Allow for Ctrl+Shift selection
            {
                return;
            }
            if (IsRenamingItem)
            {
                return;
            }

            // Check if the setting to open items with a single click is turned on
            if (AppSettings.OpenItemsWithOneclick)
            {
                tapDebounceTimer.Stop();
                await Task.Delay(200); // The delay gives time for the item to be selected

                NavigationHelpers.OpenSelectedItems(ParentShellPageInstance, false);
            }
        }
Exemplo n.º 2
0
        private async void FileList_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
        {
            DismissColumn?.Invoke(sender as ListView, EventArgs.Empty);
            await Task.Delay(200);

            if (listViewItem != null)
            {
                listViewItem.Style = (Style)this.Resources["NormalStyle"];
            }
            if ((e.OriginalSource as FrameworkElement)?.DataContext is ListedItem && !AppSettings.OpenItemsWithOneclick)
            {
                if (listViewItem != null)
                {
                    listViewItem.Style = (Style)this.Resources["NormalStyle"];
                }
                var item = (e.OriginalSource as FrameworkElement).DataContext as ListedItem;
                if (item.ItemType == "File folder")
                {
                    if (item.ContainsFilesOrFolders)
                    {
                        listViewItem = (FileList.ContainerFromItem(item) as ListViewItem);

                        ItemInvoked?.Invoke(new ColumnParam {
                            Path = item.ItemPath, ListView = FileList
                        }, EventArgs.Empty);
                    }
                }
                // The delay gives time for the item to be selected
                else
                {
                    NavigationHelpers.OpenSelectedItems(ParentShellPageInstance, false);
                }
            }
        }
Exemplo n.º 3
0
        private void FileList_ItemTapped(object sender, TappedRoutedEventArgs e)
        {
            var ctrlPressed  = Window.Current.CoreWindow.GetKeyState(VirtualKey.Control).HasFlag(CoreVirtualKeyStates.Down);
            var shiftPressed = Window.Current.CoreWindow.GetKeyState(VirtualKey.Shift).HasFlag(CoreVirtualKeyStates.Down);
            var item         = (e.OriginalSource as FrameworkElement)?.DataContext as ListedItem;

            if (item == null)
            {
                return;
            }
            // Skip code if the control or shift key is pressed or if the user is using multiselect
            if (ctrlPressed || shiftPressed || MainViewModel.MultiselectEnabled)
            {
                return;
            }

            // Check if the setting to open items with a single click is turned on
            if (item != null &&
                ((UserSettingsService.PreferencesSettingsService.OpenFoldersWithOneClick && item.PrimaryItemAttribute == StorageItemTypes.Folder) || (UserSettingsService.PreferencesSettingsService.OpenFilesWithOneClick && item.PrimaryItemAttribute == StorageItemTypes.File)))
            {
                ResetRenameDoubleClick();
                NavigationHelpers.OpenSelectedItems(ParentShellPageInstance, false);
            }
            else
            {
                var clickedItem = e.OriginalSource as FrameworkElement;
                if (clickedItem is TextBlock textBlock && textBlock.Name == "ItemName")
                {
                    CheckRenameDoubleClick(clickedItem?.DataContext);
                }
        private void FileList_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
        {
            if ((e.OriginalSource as FrameworkElement)?.DataContext is ListedItem item &&
                ((!UserSettingsService.FilesAndFoldersSettingsService.OpenFilesWithOneClick && item.PrimaryItemAttribute == StorageItemTypes.File) ||
                 (!UserSettingsService.FilesAndFoldersSettingsService.OpenFoldersWithOneClick && item.PrimaryItemAttribute == StorageItemTypes.Folder)))
            {
                if (item.PrimaryItemAttribute == Windows.Storage.StorageItemTypes.Folder)
                {
                    DismissOtherBlades(sender as ListView);

                    listViewItem = (FileList.ContainerFromItem(item) as ListViewItem);
                    var frame = new Frame();
                    frame.Navigated += Frame_Navigated;
                    var blade = new BladeItem();
                    blade.Content = frame;
                    ColumnHost.Items.Add(blade);

                    frame.Navigate(typeof(ColumnShellPage), new ColumnParam
                    {
                        Column = 1,
                        Path   = item.ItemPath
                    });
                }
                else
                {
                    NavigationHelpers.OpenSelectedItems(ParentShellPageInstance, false);
                }
            }

            ResetRenameDoubleClick();
        }
        private async void FileList_ItemTapped(object sender, TappedRoutedEventArgs e)
        {
            if (listViewItem != null)
            {
                //_ = VisualStateManager.GoToState(listViewItem, "CurrentItem", true);
            }
            var ctrlPressed  = Window.Current.CoreWindow.GetKeyState(VirtualKey.Control).HasFlag(CoreVirtualKeyStates.Down);
            var shiftPressed = Window.Current.CoreWindow.GetKeyState(VirtualKey.Shift).HasFlag(CoreVirtualKeyStates.Down);
            var item         = (e.OriginalSource as FrameworkElement)?.DataContext as ListedItem;

            if (ctrlPressed || shiftPressed) // Allow for Ctrl+Shift selection
            {
                return;
            }
            // Check if the setting to open items with a single click is turned on
            if (item != null &&
                ((UserSettingsService.FilesAndFoldersSettingsService.OpenFoldersWithOneClick && item.PrimaryItemAttribute == StorageItemTypes.Folder) || (UserSettingsService.FilesAndFoldersSettingsService.OpenFilesWithOneClick && item.PrimaryItemAttribute == StorageItemTypes.File)))
            {
                ResetRenameDoubleClick();
                if (item.PrimaryItemAttribute == StorageItemTypes.Folder)
                {
                    DismissOtherBlades(sender as ListView);

                    listViewItem = (FileList.ContainerFromItem(item) as ListViewItem);
                    var frame = new Frame();
                    frame.Navigated += Frame_Navigated;
                    var blade = new BladeItem();
                    blade.Content = frame;
                    ColumnHost.Items.Add(blade);

                    frame.Navigate(typeof(ColumnShellPage), new ColumnParam
                    {
                        Column = 1,
                        Path   = item.ItemPath
                    });
                }
                else
                {
                    NavigationHelpers.OpenSelectedItems(ParentShellPageInstance, false);
                }
            }
            else
            {
                var clickedItem = e.OriginalSource as FrameworkElement;
                if (clickedItem is TextBlock && ((TextBlock)clickedItem).Name == "ItemName")
                {
                    CheckRenameDoubleClick(clickedItem?.DataContext);
                }
                else if (IsRenamingItem)
                {
                    ListViewItem listViewItem = FileList.ContainerFromItem(RenamingItem) as ListViewItem;
                    if (listViewItem != null)
                    {
                        var textBox = listViewItem.FindDescendant("ListViewTextBoxItemName") as TextBox;
                        CommitRename(textBox);
                    }
                }
            }
        }
Exemplo n.º 6
0
 private void FileList_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
 {
     // Skip opening selected items if the double tap doesn't capture an item
     if ((e.OriginalSource as FrameworkElement)?.DataContext is ListedItem && !AppSettings.OpenItemsWithOneclick)
     {
         NavigationHelpers.OpenSelectedItems(ParentShellPageInstance, false);
     }
 }
Exemplo n.º 7
0
        private async void FileList_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
        {
            DismissOtherBlades(sender as ListView);
            await Task.Delay(200);

            if ((e.OriginalSource as FrameworkElement)?.DataContext is ListedItem && !AppSettings.OpenItemsWithOneclick)
            {
                if (listViewItem != null)
                {
                    listViewItem.Style = (Style)this.Resources["NormalStyle"];
                }
                var item = (e.OriginalSource as FrameworkElement).DataContext as ListedItem;
                if (item.PrimaryItemAttribute == Windows.Storage.StorageItemTypes.Folder)
                {
                    //var pane = new ModernShellPage();
                    //pane.FilesystemViewModel = new ItemViewModel(InstanceViewModel?.FolderSettings);
                    //await pane.FilesystemViewModel.SetWorkingDirectoryAsync(item.ItemPath);
                    //pane.IsPageMainPane = false;
                    //pane.NavParams = item.ItemPath;
                    try
                    {
                        while (ColumnHost.ActiveBlades.Count > 1)
                        {
                            ColumnHost.Items.RemoveAt(1);
                            ColumnHost.ActiveBlades.RemoveAt(1);
                        }
                    }
                    catch
                    {
                    }
                    if (item.ContainsFilesOrFolders)
                    {
                        listViewItem = (FileList.ContainerFromItem(item) as ListViewItem);
                        var frame = new Frame();
                        var blade = new BladeItem();
                        blade.Content = frame;
                        ColumnHost.Items.Add(blade);
                        //pane.NavigateWithArguments(typeof(ColumnViewBase), new NavigationArguments()
                        //{
                        //    NavPathParam = item.ItemPath,
                        //    AssociatedTabInstance = ParentShellPageInstance
                        //});

                        frame.Navigate(typeof(ColumnShellPage), new ColumnParam
                        {
                            Column = 1,
                            Path   = item.ItemPath
                        });
                    }
                }
                // The delay gives time for the item to be selected
                else
                {
                    NavigationHelpers.OpenSelectedItems(ParentShellPageInstance, false);
                }
            }
        }
Exemplo n.º 8
0
        private void AllView_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
        {
            tapDebounceTimer.Stop();

            if (AppSettings.OpenFoldersNewTab)
            {
                NavigationHelpers.OpenPathInNewTab(((e.OriginalSource as FrameworkElement)?.DataContext as ListedItem).ItemPath);
            }
            else
            {
                NavigationHelpers.OpenSelectedItems(ParentShellPageInstance, false);
            }
        }
Exemplo n.º 9
0
        private async void FileList_PreviewKeyDown(object sender, KeyRoutedEventArgs e)
        {
            var ctrlPressed     = Window.Current.CoreWindow.GetKeyState(VirtualKey.Control).HasFlag(CoreVirtualKeyStates.Down);
            var shiftPressed    = Window.Current.CoreWindow.GetKeyState(VirtualKey.Shift).HasFlag(CoreVirtualKeyStates.Down);
            var focusedElement  = FocusManager.GetFocusedElement() as FrameworkElement;
            var isFooterFocused = focusedElement is HyperlinkButton;

            if (e.Key == VirtualKey.Enter && !isFooterFocused && !e.KeyStatus.IsMenuKeyDown)
            {
                if (!IsRenamingItem)
                {
                    NavigationHelpers.OpenSelectedItems(ParentShellPageInstance, false);
                    e.Handled = true;
                }
            }
            else if (e.Key == VirtualKey.Enter && e.KeyStatus.IsMenuKeyDown)
            {
                FilePropertiesHelpers.ShowProperties(ParentShellPageInstance);
                e.Handled = true;
            }
            else if (e.Key == VirtualKey.Space)
            {
                if (!IsRenamingItem && !isFooterFocused && !ParentShellPageInstance.NavToolbarViewModel.IsEditModeEnabled)
                {
                    e.Handled = true;
                    await QuickLookHelpers.ToggleQuickLook(ParentShellPageInstance);
                }
            }
            else if (e.KeyStatus.IsMenuKeyDown && (e.Key == VirtualKey.Left || e.Key == VirtualKey.Right || e.Key == VirtualKey.Up))
            {
                // Unfocus the GridView so keyboard shortcut can be handled
                NavToolbar?.Focus(FocusState.Pointer);
            }
            else if (e.KeyStatus.IsMenuKeyDown && shiftPressed && e.Key == VirtualKey.Add)
            {
                // Unfocus the ListView so keyboard shortcut can be handled (alt + shift + "+")
                NavToolbar?.Focus(FocusState.Pointer);
            }
            else if (e.Key == VirtualKey.Up || e.Key == VirtualKey.Down)
            {
                // If list has only one item, select it on arrow down/up (#5681)
                if (!IsItemSelected)
                {
                    FileList.SelectedIndex = 0;
                    e.Handled = true;
                }
            }
        }
Exemplo n.º 10
0
        private async void FileList_ItemClick(object sender, ItemClickEventArgs e)
        {
            DismissColumn?.Invoke(sender as ListView, EventArgs.Empty);
            await Task.Delay(200);

            if (listViewItem != null)
            {
                listViewItem.Style = (Style)this.Resources["NormalStyle"];
            }
            var ctrlPressed  = Window.Current.CoreWindow.GetKeyState(VirtualKey.Control).HasFlag(CoreVirtualKeyStates.Down);
            var shiftPressed = Window.Current.CoreWindow.GetKeyState(VirtualKey.Shift).HasFlag(CoreVirtualKeyStates.Down);

            if (ctrlPressed || shiftPressed) // Allow for Ctrl+Shift selection
            {
                return;
            }
            if (IsRenamingItem)
            {
                return;
            }
            var item = (e.ClickedItem as ListedItem);

            // Check if the setting to open items with a single click is turned on
            if (AppSettings.OpenItemsWithOneclick)
            {
                tapDebounceTimer.Stop();
                await Task.Delay(200);

                if (item.ItemType == "File folder")
                {
                    if (item.ContainsFilesOrFolders)
                    {
                        listViewItem = (FileList.ContainerFromItem(item) as ListViewItem);
                        ItemInvoked?.Invoke(new ColumnParam {
                            Path = item.ItemPath, ListView = FileList
                        }, EventArgs.Empty);
                    }
                }
                // The delay gives time for the item to be selected
                else
                {
                    NavigationHelpers.OpenSelectedItems(ParentShellPageInstance, false);
                }
            }
        }
Exemplo n.º 11
0
        private void FileList_PreviewKeyDown(object sender, KeyRoutedEventArgs e)
        {
            var ctrlPressed  = Window.Current.CoreWindow.GetKeyState(VirtualKey.Control).HasFlag(CoreVirtualKeyStates.Down);
            var shiftPressed = Window.Current.CoreWindow.GetKeyState(VirtualKey.Shift).HasFlag(CoreVirtualKeyStates.Down);

            if (e.Key == VirtualKey.Enter && !e.KeyStatus.IsMenuKeyDown)
            {
                if (!IsRenamingItem)
                {
                    NavigationHelpers.OpenSelectedItems(ParentShellPageInstance, false);
                    e.Handled = true;
                }
            }
            else if (e.Key == VirtualKey.Enter && e.KeyStatus.IsMenuKeyDown)
            {
                FilePropertiesHelpers.ShowProperties(ParentShellPageInstance);
                e.Handled = true;
            }
            else if (e.Key == VirtualKey.Space)
            {
                if (!IsRenamingItem && !ParentShellPageInstance.NavigationToolbar.IsEditModeEnabled)
                {
                    if (App.MainViewModel.IsQuickLookEnabled)
                    {
                        QuickLookHelpers.ToggleQuickLook(ParentShellPageInstance);
                    }
                    e.Handled = true;
                }
            }
            else if (e.KeyStatus.IsMenuKeyDown && (e.Key == VirtualKey.Left || e.Key == VirtualKey.Right || e.Key == VirtualKey.Up))
            {
                // Unfocus the GridView so keyboard shortcut can be handled
                (ParentShellPageInstance.NavigationToolbar as Control)?.Focus(FocusState.Pointer);
            }
            else if (ctrlPressed && shiftPressed && (e.Key == VirtualKey.Left || e.Key == VirtualKey.Right || e.Key == VirtualKey.W))
            {
                // Unfocus the ListView so keyboard shortcut can be handled (ctrl + shift + W/"->"/"<-")
                (ParentShellPageInstance.NavigationToolbar as Control)?.Focus(FocusState.Pointer);
            }
            else if (e.KeyStatus.IsMenuKeyDown && shiftPressed && e.Key == VirtualKey.Add)
            {
                // Unfocus the ListView so keyboard shortcut can be handled (alt + shift + "+")
                (ParentShellPageInstance.NavigationToolbar as Control)?.Focus(FocusState.Pointer);
            }
        }
Exemplo n.º 12
0
        private async void FileList_ItemClick(object sender, ItemClickEventArgs e)
        {
            var ctrlPressed  = Window.Current.CoreWindow.GetKeyState(VirtualKey.Control).HasFlag(CoreVirtualKeyStates.Down);
            var shiftPressed = Window.Current.CoreWindow.GetKeyState(VirtualKey.Shift).HasFlag(CoreVirtualKeyStates.Down);

            // Skip code if the control or shift key is pressed or if the user is using multiselect
            if (ctrlPressed || shiftPressed || InteractionViewModel.MultiselectEnabled)
            {
                return;
            }

            // Check if the setting to open items with a single click is turned on
            if (AppSettings.OpenItemsWithOneclick)
            {
                await Task.Delay(200); // The delay gives time for the item to be selected

                NavigationHelpers.OpenSelectedItems(ParentShellPageInstance, false);
            }
        }
        private void FileList_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
        {
            var clickedItem = e.OriginalSource as FrameworkElement;

            if (clickedItem?.DataContext is ListedItem item &&
                ((!UserSettingsService.FilesAndFoldersSettingsService.OpenFilesWithOneClick && item.PrimaryItemAttribute == StorageItemTypes.File) ||
                 (!UserSettingsService.FilesAndFoldersSettingsService.OpenFoldersWithOneClick && item.PrimaryItemAttribute == StorageItemTypes.Folder)))
            {
                if (item.PrimaryItemAttribute == StorageItemTypes.Folder)
                {
                    DismissColumn?.Invoke(sender as ListView, EventArgs.Empty);
                    listViewItem = FileList.ContainerFromItem(item) as ListViewItem;
                    ItemInvoked?.Invoke(new ColumnParam {
                        Path = item.ItemPath, ListView = FileList
                    }, EventArgs.Empty);
                }
                else
                {
                    NavigationHelpers.OpenSelectedItems(ParentShellPageInstance, false);
                }
            }

            ResetRenameDoubleClick();
        }
        private async void FileList_ItemTapped(object sender, TappedRoutedEventArgs e)
        {
            var ctrlPressed  = Window.Current.CoreWindow.GetKeyState(VirtualKey.Control).HasFlag(CoreVirtualKeyStates.Down);
            var shiftPressed = Window.Current.CoreWindow.GetKeyState(VirtualKey.Shift).HasFlag(CoreVirtualKeyStates.Down);
            var item         = (e.OriginalSource as FrameworkElement)?.DataContext as ListedItem;

            if (ctrlPressed || shiftPressed) // Allow for Ctrl+Shift selection
            {
                return;
            }
            // Check if the setting to open items with a single click is turned on
            if (item != null &&
                ((UserSettingsService.FilesAndFoldersSettingsService.OpenFoldersWithOneClick && item.PrimaryItemAttribute == StorageItemTypes.Folder) || (UserSettingsService.FilesAndFoldersSettingsService.OpenFilesWithOneClick && item.PrimaryItemAttribute == StorageItemTypes.File)))
            {
                ResetRenameDoubleClick();

                if (item.PrimaryItemAttribute == StorageItemTypes.Folder)
                {
                    DismissColumn?.Invoke(sender as ListView, EventArgs.Empty);
                    listViewItem = FileList.ContainerFromItem(item) as ListViewItem;
                    ItemInvoked?.Invoke(new ColumnParam {
                        Path = item.ItemPath, ListView = FileList
                    }, EventArgs.Empty);
                }
                else
                {
                    NavigationHelpers.OpenSelectedItems(ParentShellPageInstance, false);
                }
            }
            else
            {
                var clickedItem = e.OriginalSource as FrameworkElement;
                if (clickedItem is TextBlock textBlock && textBlock.Name == "ItemName")
                {
                    CheckRenameDoubleClick(clickedItem.DataContext);
                }
Exemplo n.º 15
0
        private async void FileList_ItemClick(object sender, ItemClickEventArgs e)
        {
            DismissOtherBlades(sender as ListView);
            await Task.Delay(200);

            if (listViewItem != null)
            {
                listViewItem.Style = (Style)this.Resources["NormalStyle"];
            }
            var ctrlPressed  = Window.Current.CoreWindow.GetKeyState(VirtualKey.Control).HasFlag(CoreVirtualKeyStates.Down);
            var shiftPressed = Window.Current.CoreWindow.GetKeyState(VirtualKey.Shift).HasFlag(CoreVirtualKeyStates.Down);

            if (ctrlPressed || shiftPressed) // Allow for Ctrl+Shift selection
            {
                return;
            }
            if (IsRenamingItem)
            {
                return;
            }
            var item = (e.ClickedItem as ListedItem);

            // Check if the setting to open items with a single click is turned on
            if (AppSettings.OpenItemsWithOneclick)
            {
                tapDebounceTimer.Stop();
                await Task.Delay(200);

                if (item.PrimaryItemAttribute == Windows.Storage.StorageItemTypes.Folder)
                {
                    //var pane = new ModernShellPage();
                    //pane.FilesystemViewModel = new ItemViewModel(InstanceViewModel?.FolderSettings);
                    //await pane.FilesystemViewModel.SetWorkingDirectoryAsync(item.ItemPath);
                    //pane.IsPageMainPane = false;
                    //pane.NavParams = item.ItemPath;

                    if (item.ContainsFilesOrFolders)
                    {
                        listViewItem = (FileList.ContainerFromItem(item) as ListViewItem);
                        var frame = new Frame();
                        var blade = new BladeItem();
                        blade.Content = frame;
                        ColumnHost.Items.Add(blade);
                        //pane.NavigateWithArguments(typeof(ColumnViewBase), new NavigationArguments()
                        //{
                        //    NavPathParam = item.ItemPath,
                        //    AssociatedTabInstance = ParentShellPageInstance
                        //});

                        frame.Navigate(typeof(ColumnShellPage), new ColumnParam
                        {
                            Column = 1,
                            Path   = item.ItemPath
                        });
                    }
                }
                // The delay gives time for the item to be selected
                else
                {
                    NavigationHelpers.OpenSelectedItems(ParentShellPageInstance, false);
                }
            }
        }
Exemplo n.º 16
0
 private void AllView_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
 {
     tapDebounceTimer.Stop();
     NavigationHelpers.OpenSelectedItems(ParentShellPageInstance, false);
 }
 public virtual void OpenItemWithApplicationPicker(RoutedEventArgs e)
 {
     NavigationHelpers.OpenSelectedItems(associatedInstance, true);
 }
 public virtual void OpenItem(RoutedEventArgs e)
 {
     NavigationHelpers.OpenSelectedItems(associatedInstance, false);
 }