Ejemplo n.º 1
0
        public GitManager(string repoPath, GitCallbacks callbacks, GitSettingsJson settings, IGitPrefs prefs, GitAsyncManager asyncManager)
        {
            this.repoPath     = repoPath;
            this.callbacks    = callbacks;
            this.prefs        = prefs;
            this.asyncManager = asyncManager;
            gitSettings       = settings;
            gitPath           = UniGitPath.Combine(repoPath, ".git");

            Initialize();
        }
Ejemplo n.º 2
0
        public GitProjectOverlay(GitManager gitManager, GitCallbacks gitCallbacks, GitSettingsJson gitSettings, GitAsyncManager asyncManager)
        {
            if (iconStyle == null)
            {
                iconStyle = new GUIStyle
                {
                    imagePosition = ImagePosition.ImageOnly,
                    alignment     = TextAnchor.LowerLeft,
                    padding       = new RectOffset(2, 2, 2, 2)
                };
            }

            this.gitManager   = gitManager;
            this.gitSettings  = gitSettings;
            this.asyncManager = asyncManager;
            this.gitCallbacks = gitCallbacks;
            gitCallbacks.ProjectWindowItemOnGUI += CustomIcons;
            gitCallbacks.UpdateRepository       += OnUpdateRepository;
        }
Ejemplo n.º 3
0
 private void Construct(GitExternalManager externalManager,
                        GitAsyncManager asyncManager,
                        GitOverlay gitOverlay,
                        InjectionHelper injectionHelper,
                        GitDiffWindowToolbarRenderer toolbarRenderer,
                        GitDiffElementContextFactory elementContextFactory,
                        GitDiffWindowCommitRenderer gitDiffWindowCommitRenderer,
                        GitDiffWindowDiffElementRenderer diffElementRenderer,
                        GitLfsHelper lfsHelper)
 {
     this.lfsHelper                   = lfsHelper;
     this.externalManager             = externalManager;
     this.asyncManager                = asyncManager;
     this.gitOverlay                  = gitOverlay;
     this.injectionHelper             = injectionHelper;
     this.toolbarRenderer             = toolbarRenderer;
     this.elementContextFactory       = elementContextFactory;
     this.gitDiffWindowCommitRenderer = gitDiffWindowCommitRenderer;
     this.diffElementRenderer         = diffElementRenderer;
     sorter = new GitDiffWindowSorter(this, gitManager);
 }
Ejemplo n.º 4
0
        public GitManager(
            GitCallbacks callbacks,
            GitSettingsJson settings,
            IGitPrefs prefs,
            GitAsyncManager asyncManager,
            UniGitData gitData,
            ILogger logger,
            GitInitializer initializer,
            UniGitPaths paths)
        {
            this.paths        = paths;
            this.gitData      = gitData;
            this.callbacks    = callbacks;
            this.prefs        = prefs;
            this.asyncManager = asyncManager;
            this.logger       = logger;
            this.initializer  = initializer;
            gitSettings       = settings;

            Initialize();
        }
Ejemplo n.º 5
0
        private static void Rebuild(InjectionHelper injectionHelper)
        {
            var settingsManager = injectionHelper.GetInstance <GitSettingsManager>();

            settingsManager.LoadGitSettings();

            //delayed called must be used for serialized properties to be loaded
            EditorApplication.delayCall += () =>
            {
                settingsManager.LoadOldSettingsFile();
            };

            HookManager        = injectionHelper.GetInstance <GitHookManager>();
            LfsManager         = injectionHelper.GetInstance <GitLfsManager>();
            ExternalManager    = injectionHelper.GetInstance <GitExternalManager>();
            CredentialsManager = injectionHelper.GetInstance <GitCredentialsManager>();
            LfsHelper          = injectionHelper.GetInstance <GitLfsHelper>();
            AsyncManager       = injectionHelper.GetInstance <GitAsyncManager>();

            injectionHelper.GetInstance <GitAutoFetcher>();
            injectionHelper.GetInstance <GitProjectOverlay>();

            GitProjectContextMenus.Init(GitManager, ExternalManager);
        }
Ejemplo n.º 6
0
 private void Construct(GitExternalManager externalManager, GitAsyncManager asyncManager)
 {
     this.externalManager = externalManager;
     this.asyncManager    = asyncManager;
 }
Ejemplo n.º 7
0
        public GitProjectOverlay(GitManager gitManager,
                                 GitCallbacks gitCallbacks,
                                 GitSettingsJson gitSettings,
                                 GitAsyncManager asyncManager,
                                 GitReflectionHelper reflectionHelper,
                                 GitOverlay gitOverlay,
                                 IGitPrefs prefs,
                                 UniGitData data,
                                 ILogger logger,
                                 InjectionHelper injectionHelper,
                                 [UniGitInjectOptional] bool cullNonAssetPaths = true)
        {
            if (iconStyle == null)
            {
                iconStyle = new GUIStyle
                {
                    imagePosition = ImagePosition.ImageOnly,
                    alignment     = TextAnchor.LowerLeft,
                    padding       = new RectOffset(2, 2, 2, 2)
                };
                lineStyle = new GUIStyle(EditorGUIUtility.GetBuiltinSkin(EditorSkin.Inspector).FindStyle("IN Title"))
                {
                    padding       = new RectOffset(),
                    margin        = new RectOffset(),
                    contentOffset = Vector2.zero,
                    fixedHeight   = 0,
                    fixedWidth    = 0,
                    border        = { left = 0, right = 0 }
                };
            }

            this.logger            = logger;
            this.data              = data;
            this.gitManager        = gitManager;
            this.gitSettings       = gitSettings;
            this.asyncManager      = asyncManager;
            this.gitCallbacks      = gitCallbacks;
            this.reflectionHelper  = reflectionHelper;
            this.gitOverlay        = gitOverlay;
            this.prefs             = prefs;
            this.cullNonAssetPaths = cullNonAssetPaths;
            this.injectionHelper   = injectionHelper;

            gitManager.AddWatcher(this);

            gitCallbacks.EditorUpdate           += OnEditorUpdate;
            gitCallbacks.ProjectWindowItemOnGUI += CustomIcons;
            gitCallbacks.UpdateRepository       += OnUpdateRepository;

            //project browsers only get created before delay call but not before constructor
            gitCallbacks.DelayCall += () =>
            {
                projectWindows = new List <EditorWindow>(Resources.FindObjectsOfTypeAll(reflectionHelper.ProjectWindowType).Cast <EditorWindow>());
            };

            //shortcut to getting instance id without loading asset
            var method = typeof(AssetDatabase).GetMethod("GetMainAssetOrInProgressProxyInstanceID", BindingFlags.NonPublic | BindingFlags.Static);

            if (method != null)
            {
                GetMainAssetOrInProgressProxyInstanceID = (Func <string, int>)Delegate.CreateDelegate(typeof(Func <string, int>), method);
            }
        }
Ejemplo n.º 8
0
 private void StartUpdateChaches(GitRepoStatus status)
 {
     loadingCommits = GitAsyncManager.QueueWorker(UpdateChachesThreaded, status, "Loading Commits");
 }