Exemplo n.º 1
0
        private void FolderBrowerSidebar_Loaded(object sender, RoutedEventArgs e)
        {
            AppModel    = mmApp.Model;
            Window      = AppModel.Window;
            DataContext = this;

            FolderBrowserContextMenu = new FolderBrowserContextMenu(this);

            // Load explicitly here to fire *after* behavior has attached
            ComboFolderPath.PreviewKeyUp += ComboFolderPath_PreviewKeyDown;

            TreeFolderBrowser.GotFocus += TreeFolderBrowser_GotFocus;
            ComboFolderPath.GotFocus   += TreeFolderBrowser_GotFocus;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Handle edit click
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void TextFileOrFolderName_MouseUpToEdit(object sender, MouseButtonEventArgs e)
        {
            // only
            if (e.ChangedButton == MouseButton.Left)
            {
                var selected = TreeFolderBrowser.SelectedItem as PathItem;
                var t        = DateTime.Now;

                if (LastItem == selected)
                {
                    if (t >= LastClickTime.AddMilliseconds(System.Windows.Forms.SystemInformation.DoubleClickTime + 200) &&
                        t <= LastClickTime.AddMilliseconds(System.Windows.Forms.SystemInformation.DoubleClickTime * 2 + 200))
                    {
                        FolderBrowserContextMenu.MenuRenameFile_Click(null, null);
                    }
                }

                LastItem      = selected;
                LastClickTime = t;
            }
        }
Exemplo n.º 3
0
        private void FolderBrowserGrid_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            var selected = TreeFolderBrowser.SelectedItem as PathItem;

            if (e.Key == Key.F1)
            {
                AppModel.Commands.HelpCommand.Execute("_4xs10gaui.htm");
                e.Handled = true;
            }
            else if (e.Key == Key.F && Keyboard.IsKeyDown(Key.LeftCtrl))
            {
                if (SearchPanel.Visibility == Visibility.Collapsed)
                {
                    SearchPanel.Visibility = Visibility.Visible;
                    TextSearch.Focus();
                }
                else
                {
                    SearchPanel.Visibility = Visibility.Collapsed;
                    TextSearch.Text        = string.Empty;
                }

                e.Handled = true;
            }
            // Copy File to 'clipboard'
            else if ((e.Key == Key.C || e.Key == Key.X) && Keyboard.IsKeyDown(Key.LeftCtrl))
            {
                var menu = new FolderBrowserContextMenu(this);
                menu.FileBrowserCopyFile(e.Key == Key.X);
                e.Handled = true;
            }
            // Paste Files(s) from clipboard
            else if (e.Key == Key.V && Keyboard.IsKeyDown(Key.LeftCtrl))
            {
                var menu = new FolderBrowserContextMenu(this);
                menu.FileBrowserPasteFile();
                e.Handled = true;
            }
        }
Exemplo n.º 4
0
        private void TreeView_Keydown(object sender, KeyEventArgs e)
        {
            var selected = TreeFolderBrowser.SelectedItem as PathItem;

            // this works without a selection
            if (e.Key == Key.F2 && Keyboard.IsKeyDown(Key.LeftShift))
            {
                if (selected == null || !selected.IsEditing)
                {
                    FolderBrowserContextMenu.MenuAddFile_Click(sender, null);
                    e.Handled = true;
                }
                return;
            }

            if (e.Key == Key.F8)
            {
                if (selected == null || !selected.IsEditing)
                {
                    FolderBrowserContextMenu.MenuAddDirectory_Click(sender, null);
                    e.Handled = true;
                }
            }

            if (selected == null)
            {
                return;
            }

            if (e.Key == Key.Enter || e.Key == Key.Tab)
            {
                if (!selected.IsEditing)
                {
                    HandleItemSelection(forceEditorFocus: true);
                }
                else
                {
                    RenameOrCreateFileOrFolder();
                }

                e.Handled = true;
            }
            else if (e.Key == Key.Escape)
            {
                if (selected.IsEditing)
                {
                    selected.IsEditing = false;
                    if (!string.IsNullOrEmpty(selected.OriginalRenamePath))
                    {
                        selected.FullPath           = selected.OriginalRenamePath;
                        selected.OriginalRenamePath = null;
                    }
                    else
                    {
                        selected.Parent?.Files?.Remove(selected);
                    }
                }
            }
            else if (e.Key == Key.F2)
            {
                if (!selected.IsEditing)
                {
                    FolderBrowserContextMenu.MenuRenameFile_Click(sender, null);
                }
            }
            else if (e.Key == Key.Delete)
            {
                if (!selected.IsEditing)
                {
                    FolderBrowserContextMenu.MenuDeleteFile_Click(sender, null);
                }
            }
            else if (e.Key == Key.G && Keyboard.IsKeyDown(Key.LeftCtrl))
            {
                if (!selected.IsEditing)
                {
                    FolderBrowserContextMenu.MenuCommitGit_Click(null, null);
                    e.Handled = true;
                }
            }
            else if (e.Key == Key.Z && Keyboard.IsKeyDown(Key.LeftCtrl))
            {
                if (!selected.IsEditing)
                {
                    FolderBrowserContextMenu.MenuUndoGit_Click(null, null);
                    e.Handled = true;
                }
            }

            if (selected.IsEditing)
            {
                return;
            }

            // search key
            if (e.Key >= Key.A && e.Key <= Key.Z ||
                e.Key >= Key.D0 && e.Key <= Key.D9 ||
                e.Key == Key.OemPeriod ||
                e.Key == Key.Space ||
                e.Key == Key.Separator ||
                e.Key == Key.OemMinus &&
                (!Keyboard.IsKeyDown(Key.LeftCtrl) && !Keyboard.IsKeyDown(Key.LeftAlt)))
            {
                //Debug.WriteLine("Treeview TreeDown: " + e.Key + " shfit: " + Keyboard.IsKeyDown(Key.LeftShift));
                var keyConverter = new KeyConverter();

                string k;

                if (e.Key == Key.OemPeriod)
                {
                    k = ".";
                }
                else if (e.Key == Key.OemMinus && Keyboard.IsKeyDown(Key.LeftShift))
                {
                    k = "_";
                }
                else if (e.Key == Key.OemMinus)
                {
                    k = "-";
                }
                else if (e.Key == Key.Space)
                {
                    k = " ";
                }
                else
                {
                    k = keyConverter.ConvertToString(e.Key);
                }

                if (searchFilterLast > DateTime.Now.AddSeconds(-1.2))
                {
                    searchFilter += k.ToLower();
                }
                else
                {
                    searchFilter = k.ToLower();
                }

                Window.ShowStatus("File search filter: " + searchFilter, 2000);

                var lowerFilter = searchFilter.ToLower();

                var parentPath = selected.Parent;
                if (parentPath == null)
                {
                    parentPath = ActivePathItem; // root
                }
                var item = parentPath.Files.FirstOrDefault(sf => sf.DisplayName.ToLower().StartsWith(lowerFilter));
                if (item != null)
                {
                    item.IsSelected = true;
                }


                searchFilterLast = DateTime.Now;
            }
        }
Exemplo n.º 5
0
 private void TreeFolderBrowser_ContextMenuOpening(object sender, ContextMenuEventArgs e)
 {
     FolderBrowserContextMenu.ShowContextMenu();
 }