示例#1
0
        internal bool ProcessKeyActionIfNeeded(Event e)
        {
            PendingChangesMenuOperations operationToExecute =
                GetPendingChangesMenuOperation(e);

            OpenMenuOperations openOperationToExecute =
                GetOpenMenuOperation(e);

            if (operationToExecute == PendingChangesMenuOperations.None &&
                openOperationToExecute == OpenMenuOperations.None)
            {
                return(false);
            }

            SelectedChangesGroupInfo info =
                mPendingChangesMenuOperations.GetSelectedChangesGroupInfo();

            if (operationToExecute != PendingChangesMenuOperations.None)
            {
                return(ProcessKeyActionForPendingChangesMenu(
                           operationToExecute, mPendingChangesMenuOperations, info));
            }

            return(ProcessKeyActionForOpenMenu(
                       openOperationToExecute, mOpenMenuOperations, info));
        }
示例#2
0
 static void ProcessOpenMenuOperation(
     OpenMenuOperations openOperationToExecute,
     IOpenMenuOperations openMenuOperations)
 {
     if (openOperationToExecute == OpenMenuOperations.Open)
     {
         openMenuOperations.Open();
         return;
     }
 }
示例#3
0
        static bool ProcessKeyActionForOpenMenu(
            OpenMenuOperations openOperationToExecute,
            IOpenMenuOperations openMenuOperations,
            SelectedChangesGroupInfo info)
        {
            OpenMenuOperations openOperations =
                GetOpenMenuOperations.ForPendingChanges(info);

            if (!openOperations.HasFlag(openOperationToExecute))
            {
                return(false);
            }

            ProcessOpenMenuOperation(
                openOperationToExecute, openMenuOperations);

            return(true);
        }
示例#4
0
        void UpdateOpenMenuItems(GenericMenu menu, OpenMenuOperations operations)
        {
            if (!operations.HasFlag(OpenMenuOperations.Open) &&
                !operations.HasFlag(OpenMenuOperations.OpenWith) &&
                !operations.HasFlag(OpenMenuOperations.OpenInExplorer))
            {
                menu.AddDisabledItem(mOpenSubmenuItemContent);
                return;
            }

            if (operations.HasFlag(OpenMenuOperations.Open))
            {
                menu.AddItem(mOpenMenuItemContent, false, OpenMenuItem_Click);
            }
            else
            {
                menu.AddDisabledItem(mOpenMenuItemContent);
            }

            if (operations.HasFlag(OpenMenuOperations.OpenWith))
            {
                menu.AddItem(mOpenWithMenuItemContent, false, OpenWithMenuItem_Click);
            }
            else
            {
                menu.AddDisabledItem(mOpenWithMenuItemContent);
            }

            if (operations.HasFlag(OpenMenuOperations.OpenInExplorer))
            {
                menu.AddItem(mOpenInExplorerMenuItemContent, false, OpenInExplorerMenuItem_Click);
            }
            else
            {
                menu.AddDisabledItem(mOpenInExplorerMenuItemContent);
            }

            if (!mMetaMenuOperations.SelectionHasMeta())
            {
                return;
            }

            menu.AddSeparator(PlasticLocalization.GetString(PlasticLocalization.Name.ItemsMenuItemOpen) + "/");

            if (operations.HasFlag(OpenMenuOperations.Open))
            {
                menu.AddItem(mOpenMetaMenuItemContent, false, OpenMetaMenuItem_Click);
            }
            else
            {
                menu.AddDisabledItem(mOpenMetaMenuItemContent);
            }

            if (operations.HasFlag(OpenMenuOperations.OpenWith))
            {
                menu.AddItem(mOpenMetaWithMenuItemContent, false, OpenMetaWithMenuItem_Click);
            }
            else
            {
                menu.AddDisabledItem(mOpenMetaWithMenuItemContent);
            }

            if (operations.HasFlag(OpenMenuOperations.OpenInExplorer))
            {
                menu.AddItem(mOpenMetaInExplorerMenuItemContent, false, OpenMetaInExplorerMenuItem_Click);
            }
            else
            {
                menu.AddDisabledItem(mOpenMetaInExplorerMenuItemContent);
            }
        }
示例#5
0
        void UpdateMenuItems(GenericMenu menu)
        {
            SelectedChangesGroupInfo info =
                mPendingChangesMenuOperations.GetSelectedChangesGroupInfo();

            PendingChangesMenuOperations operations =
                PendingChangesMenuUpdater.GetAvailableMenuOperations(info);

            OpenMenuOperations openOperations =
                GetOpenMenuOperations.ForPendingChanges(info);

            if (operations == PendingChangesMenuOperations.None &&
                openOperations == OpenMenuOperations.None)
            {
                menu.AddDisabledItem(GetNoActionMenuItemContent());
                return;
            }

            UpdateOpenMenuItems(menu, openOperations);

            menu.AddSeparator(string.Empty);

            if (operations.HasFlag(PendingChangesMenuOperations.DiffWorkspaceContent))
            {
                menu.AddItem(mDiffMenuItemContent, false, DiffMenuItem_Click);
            }
            else
            {
                menu.AddDisabledItem(mDiffMenuItemContent);
            }

            if (mMetaMenuOperations.SelectionHasMeta())
            {
                if (operations.HasFlag(PendingChangesMenuOperations.DiffWorkspaceContent))
                {
                    menu.AddItem(mDiffMetaMenuItemContent, false, DiffMetaMenuItem_Click);
                }
                else
                {
                    menu.AddDisabledItem(mDiffMetaMenuItemContent);
                }
            }

            menu.AddSeparator(string.Empty);

            if (operations.HasFlag(PendingChangesMenuOperations.UndoChanges))
            {
                menu.AddItem(mUndoChangesMenuItemContent, false, UndoChangesMenuItem_Click);
            }
            else
            {
                menu.AddDisabledItem(mUndoChangesMenuItemContent);
            }

            menu.AddSeparator(string.Empty);

            if (operations.HasFlag(PendingChangesMenuOperations.ApplyLocalChanges))
            {
                menu.AddItem(mCheckoutMenuItemContent, false, CheckoutMenuItem_Click);
            }
            else
            {
                menu.AddDisabledItem(mCheckoutMenuItemContent);
            }

            if (operations.HasFlag(PendingChangesMenuOperations.Delete))
            {
                menu.AddItem(mDeleteMenuItemContent, false, DeleteMenuItem_Click);
            }
            else
            {
                menu.AddDisabledItem(mDeleteMenuItemContent);
            }

            menu.AddSeparator(string.Empty);

            mFilterMenuBuilder.UpdateMenuItems(
                menu, FilterMenuUpdater.GetMenuActions(info));

            menu.AddSeparator(string.Empty);

            if (operations.HasFlag(PendingChangesMenuOperations.History))
            {
                menu.AddItem(mViewHistoryMenuItemContent, false, HistoryMenuItem_Click);
            }
            else
            {
                menu.AddDisabledItem(mViewHistoryMenuItemContent, false);
            }

            if (mMetaMenuOperations.SelectionHasMeta())
            {
                if (operations.HasFlag(PendingChangesMenuOperations.History))
                {
                    menu.AddItem(mViewHistoryMetaMenuItemContent, false, HistoryMetaMenuItem_Click);
                }
                else
                {
                    menu.AddDisabledItem(mViewHistoryMetaMenuItemContent);
                }
            }
        }