コード例 #1
0
        private void ContextMenuClick(object userData, string[] options, int selected)
        {
            if ((bool)userData && selected == 0)
            {
                selected = 1;
            }
            switch (selected)
            {
            case 0:
                this.DoShowDiff(this.GetGUID());
                break;

            case 1:
                ASEditorBackend.DoAS();
                ASEditorBackend.ASWin.ShowHistory();
                break;

            case 2:
                if (!ASEditorBackend.SettingsIfNeeded())
                {
                    Debug.Log("Asset Server connection for current project is not set up");
                }
                if (EditorUtility.DisplayDialog("Discard changes", "Are you sure you want to discard local changes of selected asset?", "Discard", "Cancel"))
                {
                    AssetServer.DoUpdateWithoutConflictResolutionOnNextTick(new string[]
                    {
                        this.GetGUID()
                    });
                }
                break;
            }
        }
コード例 #2
0
 private static void Testing_Invoke(string klass, string method, params object[] prms)
 {
     try
     {
         foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
         {
             if ((assembly.GetName().Name != "UnityEditor") && (assembly.GetName().Name != "UnityEngine"))
             {
                 foreach (System.Type type in AssemblyHelper.GetTypesFromAssembly(assembly))
                 {
                     if (type.Name == klass)
                     {
                         type.InvokeMember(method, BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static, null, null, prms);
                     }
                 }
             }
         }
     }
     catch (Exception exception)
     {
         if ((exception.InnerException != null) && (exception.InnerException.GetType() == typeof(ExitGUIException)))
         {
             throw exception;
         }
         object[] objArray1 = new object[] { exception };
         Testing_Invoke(AssetServer.GetString("s_ExceptionHandlerClass"), AssetServer.GetString("s_ExceptionHandlerFunction"), objArray1);
     }
 }
コード例 #3
0
        private bool DoShowDiff(bool binary)
        {
            List <string>      list  = new List <string>();
            List <CompareInfo> list2 = new List <CompareInfo>();

            for (int i = 0; i < this.selectedLV1Items.Length; i++)
            {
                if (this.selectedLV1Items[i])
                {
                    int serverItemChangeset = AssetServer.GetServerItemChangeset(this.downloadConflicts[i], -1);
                    int ver = (!AssetServer.HasDeletionConflict(this.downloadConflicts[i])) ? -1 : -2;
                    list.Add(this.downloadConflicts[i]);
                    list2.Add(new CompareInfo(serverItemChangeset, ver, (!binary) ? 0 : 1, (!binary) ? 1 : 0));
                }
            }
            bool result;

            if (list.Count != 0)
            {
                AssetServer.CompareFiles(list.ToArray(), list2.ToArray());
                result = true;
            }
            else
            {
                result = false;
            }
            return(result);
        }
コード例 #4
0
        public static bool InitializeMaintBinding()
        {
            PListConfig plistConfig = new PListConfig("Library/ServerPreferences.plist");
            string      str1        = plistConfig["Maint UserName"];
            string      server      = plistConfig["Maint Server"];
            string      str2        = plistConfig["Maint project name"];
            string      str3        = plistConfig["Maint database name"];
            string      str4        = plistConfig["Maint port number"];
            int         result;

            if (!int.TryParse(plistConfig["Maint Timeout"], out result))
            {
                result = 5;
            }
            if (server.Length == 0 || str2.Length == 0 || (str3.Length == 0 || str1.Length == 0))
            {
                AssetServer.SetProjectName(string.Empty);
                return(false);
            }
            AssetServer.SetProjectName(string.Format("{0} @ {1}", (object)str2, (object)server));
            string connectionString = "host='" + server + "' user='******' password='******' dbname='" + str3 + "' port='" + str4 + "' sslmode=disable " + plistConfig["Maint Connection Settings"];

            AssetServer.Initialize(str1, connectionString, result);
            return(true);
        }
コード例 #5
0
        private bool DoShowDiff(bool binary)
        {
            List <string>      list  = new List <string>();
            List <CompareInfo> list2 = new List <CompareInfo>();
            int changeset            = -1;
            int num2 = -1;

            if (AssetServer.IsItemDeleted(this.selectedGUID))
            {
                changeset = -2;
            }
            else
            {
                changeset = AssetServer.GetWorkingItemChangeset(this.selectedGUID);
                changeset = AssetServer.GetServerItemChangeset(this.selectedGUID, changeset);
            }
            int serverItemChangeset = AssetServer.GetServerItemChangeset(this.selectedGUID, -1);

            num2 = (serverItemChangeset != -1) ? serverItemChangeset : -2;
            list.Add(this.selectedGUID);
            list2.Add(new CompareInfo(changeset, num2, !binary ? 0 : 1, !binary ? 1 : 0));
            if (list.Count != 0)
            {
                AssetServer.CompareFiles(list.ToArray(), list2.ToArray());
            }
            else
            {
                return(false);
            }
            return(true);
        }
コード例 #6
0
        private void DoShowProjects()
        {
            int    result        = 0x29ed;
            string serverAddress = this.serverAddress;

            if (serverAddress.IndexOf(":") > 0)
            {
                int.TryParse(serverAddress.Substring(serverAddress.IndexOf(":") + 1), out result);
                serverAddress = serverAddress.Substring(0, serverAddress.IndexOf(":"));
            }
            AssetServer.AdminSetCredentials(serverAddress, result, this.userName, this.password);
            MaintDatabaseRecord[] recordArray = AssetServer.AdminRefreshDatabases();
            if (recordArray != null)
            {
                this.projectsList = new string[recordArray.Length];
                for (int i = 0; i < recordArray.Length; i++)
                {
                    this.projectsList[i] = recordArray[i].name;
                }
                this.projectsLv.totalRows = recordArray.Length;
                this.GetDefaultPListConfig();
                this.plc["Maint Server"]      = serverAddress;
                this.plc["Maint UserName"]    = this.userName;
                this.plc["Maint port number"] = this.port;
                this.plc.Save();
                ASEditorBackend.SetPassword(serverAddress, this.userName, this.password);
                ASEditorBackend.AddUser(this.serverAddress, this.userName);
            }
            else
            {
                this.projectsLv.totalRows = 0;
            }
        }
コード例 #7
0
 public bool DoGUI()
 {
     if (constants == null)
     {
         constants = new ASMainWindow.Constants();
     }
     if (this.resetKeyboardControl)
     {
         this.resetKeyboardControl  = false;
         GUIUtility.keyboardControl = 0;
     }
     GUILayout.BeginHorizontal(new GUILayoutOption[0]);
     GUILayout.BeginVertical(constants.groupBox, new GUILayoutOption[0]);
     GUILayout.Box("Server Connection", constants.title, new GUILayoutOption[0]);
     GUILayout.BeginVertical(constants.contentBox, new GUILayoutOption[0]);
     this.DoConfigGUI();
     if (AssetServer.GetAssetServerError() != string.Empty)
     {
         GUILayout.Space(10f);
         GUILayout.Label(AssetServer.GetAssetServerError(), constants.errorLabel, new GUILayoutOption[0]);
         GUILayout.Space(10f);
     }
     GUILayout.EndVertical();
     GUILayout.EndVertical();
     this.DoProjectsGUI();
     GUILayout.EndHorizontal();
     return(true);
 }
コード例 #8
0
 private static void Testing_Invoke(string klass, string method, params object[] prms)
 {
     try
     {
         foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
         {
             if (assembly.GetName().Name != "UnityEditor" && assembly.GetName().Name != "UnityEngine")
             {
                 foreach (System.Type type in AssemblyHelper.GetTypesFromAssembly(assembly))
                 {
                     if (type.Name == klass)
                     {
                         type.InvokeMember(method, BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.InvokeMethod, (Binder)null, (object)null, prms);
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         if (ex.InnerException != null && ex.InnerException.GetType() == typeof(ExitGUIException))
         {
             throw ex;
         }
         ASEditorBackend.Testing_Invoke(AssetServer.GetString("s_ExceptionHandlerClass"), AssetServer.GetString("s_ExceptionHandlerFunction"), (object)ex);
     }
 }
コード例 #9
0
 private static void Testing_DummyCallback(bool success)
 {
     ASEditorBackend.Testing_Invoke(AssetServer.GetAndRemoveString("s_TestingClass"), AssetServer.GetAndRemoveString("s_TestingFunction"), new object[]
     {
         success
     });
 }
コード例 #10
0
        private bool DoShowDiff(bool binary)
        {
            List <string>      list  = new List <string>();
            List <CompareInfo> list2 = new List <CompareInfo>();
            int num;

            if (AssetServer.IsItemDeleted(this.selectedGUID))
            {
                num = -2;
            }
            else
            {
                num = AssetServer.GetWorkingItemChangeset(this.selectedGUID);
                num = AssetServer.GetServerItemChangeset(this.selectedGUID, num);
            }
            int serverItemChangeset = AssetServer.GetServerItemChangeset(this.selectedGUID, -1);
            int ver = (serverItemChangeset != -1) ? serverItemChangeset : -2;

            list.Add(this.selectedGUID);
            list2.Add(new CompareInfo(num, ver, (!binary) ? 0 : 1, (!binary) ? 1 : 0));
            bool result;

            if (list.Count != 0)
            {
                AssetServer.CompareFiles(list.ToArray(), list2.ToArray());
                result = true;
            }
            else
            {
                result = false;
            }
            return(result);
        }
コード例 #11
0
        public static bool InitializeMaintBinding()
        {
            int         num;
            PListConfig config = new PListConfig("Library/ServerPreferences.plist");
            string      user   = config["Maint UserName"];
            string      str2   = config["Maint Server"];
            string      str3   = config["Maint project name"];
            string      str4   = config["Maint database name"];
            string      str5   = config["Maint port number"];

            if (!int.TryParse(config["Maint Timeout"], out num))
            {
                num = 5;
            }
            if (((str2.Length == 0) || (str3.Length == 0)) || ((str4.Length == 0) || (user.Length == 0)))
            {
                AssetServer.SetProjectName(string.Empty);
                return(false);
            }
            AssetServer.SetProjectName(string.Format("{0} @ {1}", str3, str2));
            string[] textArray1       = new string[] { "host='", str2, "' user='******' password='******' dbname='", str4, "' port='", str5, "' sslmode=disable ", config["Maint Connection Settings"] };
            string   connectionString = string.Concat(textArray1);

            AssetServer.Initialize(user, connectionString, num);
            return(true);
        }
コード例 #12
0
 private void DoGetUsers()
 {
     MaintUserRecord[] users = AssetServer.AdminGetUsers(this.databases[this.lv.row].dbName);
     this.users         = users == null ? new MaintUserRecord[0] : users;
     this.lv2.totalRows = this.users.Length;
     this.lv2.row       = -1;
 }
コード例 #13
0
        public void DoRecover()
        {
            string[] selectedDeletedItemGUIDs   = this.GetSelectedDeletedItemGUIDs();
            Dictionary <string, int> dictionary = new Dictionary <string, int>();
            int num = 0;

            for (int i = 0; i < selectedDeletedItemGUIDs.Length; i++)
            {
                for (int j = 0; j < this.m_DeletedItems.Length; j++)
                {
                    if (this.m_DeletedItems[j].guid == selectedDeletedItemGUIDs[i])
                    {
                        dictionary[this.m_DeletedItems[j].guid] = j;
                        break;
                    }
                }
            }
            DeletedAsset[] assets = new DeletedAsset[dictionary.Count];
            while (dictionary.Count != 0)
            {
                DeletedAsset asset = null;
                foreach (KeyValuePair <string, int> pair in dictionary)
                {
                    asset = this.m_DeletedItems[pair.Value];
                    if (!dictionary.ContainsKey(asset.parent))
                    {
                        assets[num++] = asset;
                        break;
                    }
                }
                dictionary.Remove(asset.guid);
            }
            AssetServer.SetAfterActionFinishedCallback("ASEditorBackend", "CBReinitASMainWindow");
            AssetServer.DoRecoverOnNextTick(assets);
        }
コード例 #14
0
        public static bool Testing_SetupDatabase(string host, int port, string adminUser, string adminPwd, string user, string pwd, string projectName)
        {
            AssetServer.AdminSetCredentials(host, port, adminUser, adminPwd);
            MaintDatabaseRecord[] array = AssetServer.AdminRefreshDatabases();
            if (array == null)
            {
                return(false);
            }
            MaintDatabaseRecord[] array2 = array;
            for (int i = 0; i < array2.Length; i++)
            {
                MaintDatabaseRecord maintDatabaseRecord = array2[i];
                if (maintDatabaseRecord.name == projectName)
                {
                    AssetServer.AdminDeleteDB(projectName);
                }
            }
            if (AssetServer.AdminCreateDB(projectName) == 0)
            {
                return(false);
            }
            string databaseName = AssetServer.GetDatabaseName(host, adminUser, adminPwd, port.ToString(), projectName);

            if (!AssetServer.AdminSetUserEnabled(databaseName, user, user, string.Empty, 1))
            {
                return(false);
            }
            ASEditorBackend.Testing_SetActiveDatabase(host, port, projectName, databaseName, user, pwd);
            return(true);
        }
コード例 #15
0
        private void DoConnect()
        {
            EditorPrefs.SetString("ASAdminServer", this.server);
            this.userSelected    = false;
            this.isConnected     = false;
            this.projectSelected = false;
            this.lv.row          = -1;
            this.lv2.row         = -1;
            this.lv.totalRows    = 0;
            this.lv2.totalRows   = 0;
            int    result = 10733;
            string server;

            if (this.server.IndexOf(":") > 0)
            {
                int.TryParse(this.server.Substring(this.server.IndexOf(":") + 1), out result);
                server = this.server.Substring(0, this.server.IndexOf(":"));
            }
            else
            {
                server = this.server;
            }
            AssetServer.AdminSetCredentials(server, result, this.user, this.password);
            this.DoRefreshDatabases();
        }
コード例 #16
0
 private static void Testing_Invoke(string klass, string method, params object[] prms)
 {
     try
     {
         AppDomain  currentDomain = AppDomain.CurrentDomain;
         Assembly[] assemblies    = currentDomain.GetAssemblies();
         for (int i = 0; i < assemblies.Length; i++)
         {
             Assembly assembly = assemblies[i];
             if (assembly.GetName().Name != "UnityEditor" && assembly.GetName().Name != "UnityEngine")
             {
                 Type[] typesFromAssembly = AssemblyHelper.GetTypesFromAssembly(assembly);
                 for (int j = 0; j < typesFromAssembly.Length; j++)
                 {
                     Type type = typesFromAssembly[j];
                     if (type.Name == klass)
                     {
                         type.InvokeMember(method, BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.InvokeMethod, null, null, prms);
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         if (ex.InnerException != null && ex.InnerException.GetType() == typeof(ExitGUIException))
         {
             throw ex;
         }
         ASEditorBackend.Testing_Invoke(AssetServer.GetString("s_ExceptionHandlerClass"), AssetServer.GetString("s_ExceptionHandlerFunction"), new object[]
         {
             ex
         });
     }
 }
コード例 #17
0
        private void DoShowProjects()
        {
            int    num  = 10733;
            string text = this.serverAddress;

            if (text.IndexOf(":") > 0)
            {
                int.TryParse(text.Substring(text.IndexOf(":") + 1), out num);
                text = text.Substring(0, text.IndexOf(":"));
            }
            AssetServer.AdminSetCredentials(text, num, this.userName, this.password);
            MaintDatabaseRecord[] array = AssetServer.AdminRefreshDatabases();
            if (array != null)
            {
                this.projectsList = new string[array.Length];
                for (int i = 0; i < array.Length; i++)
                {
                    this.projectsList[i] = array[i].name;
                }
                this.projectsLv.totalRows = array.Length;
                this.GetDefaultPListConfig();
                this.plc["Maint Server"]      = text;
                this.plc["Maint UserName"]    = this.userName;
                this.plc["Maint port number"] = this.port;
                this.plc.Save();
                ASEditorBackend.SetPassword(text, this.userName, this.password);
                ASEditorBackend.AddUser(this.serverAddress, this.userName);
            }
            else
            {
                this.projectsLv.totalRows = 0;
            }
        }
コード例 #18
0
        public static bool Testing_SetupDatabase(string host, int port, string adminUser, string adminPwd, string user, string pwd, string projectName)
        {
            AssetServer.AdminSetCredentials(host, port, adminUser, adminPwd);
            MaintDatabaseRecord[] recordArray = AssetServer.AdminRefreshDatabases();
            if (recordArray == null)
            {
                return(false);
            }
            foreach (MaintDatabaseRecord record in recordArray)
            {
                if (record.name == projectName)
                {
                    AssetServer.AdminDeleteDB(projectName);
                }
            }
            if (AssetServer.AdminCreateDB(projectName) == 0)
            {
                return(false);
            }
            string databaseName = AssetServer.GetDatabaseName(host, adminUser, adminPwd, port.ToString(), projectName);

            if (!AssetServer.AdminSetUserEnabled(databaseName, user, user, string.Empty, 1))
            {
                return(false);
            }
            Testing_SetActiveDatabase(host, port, projectName, databaseName, user, pwd);
            return(true);
        }
コード例 #19
0
        private void PerformCurrentAction()
        {
            switch (this.currAction)
            {
            case Action.Main:
                this.currAction = Action.Main;
                this.DoConnect();
                Event.current.Use();
                return;

            case Action.CreateUser:
                AssetServer.AdminCreateUser(this.nUserName, this.nFullName, this.nEmail, this.nPassword1);
                this.currAction = Action.Main;
                if (this.lv.row > -1)
                {
                    this.DoGetUsers();
                }
                Event.current.Use();
                return;

            case Action.SetPassword:
                AssetServer.AdminChangePassword(this.users[this.lv2.row].userName, this.nPassword1);
                this.currAction = Action.Main;
                Event.current.Use();
                return;

            case Action.CreateProject:
                if (AssetServer.AdminCreateDB(this.nProjectName, this.nTemplateProjectName) != 0)
                {
                    this.DoRefreshDatabases();
                    for (int i = 0; i < this.databases.Length; i++)
                    {
                        if (this.databases[i].name == this.nProjectName)
                        {
                            this.lv.row = i;
                            this.DoGetUsers();
                            break;
                        }
                    }
                }
                break;

            case Action.ModifyUser:
                AssetServer.AdminModifyUserInfo(this.databases[this.lv.row].dbName, this.users[this.lv2.row].userName, this.nFullName, this.nEmail);
                this.currAction = Action.Main;
                if (this.lv.row > -1)
                {
                    this.DoGetUsers();
                }
                Event.current.Use();
                return;

            default:
                return;
            }
            this.currAction = Action.Main;
            Event.current.Use();
        }
コード例 #20
0
 internal static IEnumerable <ExportPackageItem> GetAssetItemsForExport(ICollection <string> guids, bool includeDependencies)
 {
     if (guids.Count == 0)
     {
         string[] collection = new string[0];
         guids = new HashSet <string>(AssetServer.CollectAllChildren(AssetServer.GetRootGUID(), collection));
     }
     if (< > f__am$cache5 == null)
     {
コード例 #21
0
 public static string[] Testing_GetAllDatabaseNames()
 {
     MaintDatabaseRecord[] recordArray = AssetServer.AdminRefreshDatabases();
     string[] strArray = new string[recordArray.Length];
     for (int i = 0; i < recordArray.Length; i++)
     {
         strArray[i] = recordArray[i].name;
     }
     return(strArray);
 }
コード例 #22
0
 public static string[] Testing_GetAllDatabaseNames()
 {
     MaintDatabaseRecord[] maintDatabaseRecordArray = AssetServer.AdminRefreshDatabases();
     string[] strArray = new string[maintDatabaseRecordArray.Length];
     for (int index = 0; index < maintDatabaseRecordArray.Length; ++index)
     {
         strArray[index] = maintDatabaseRecordArray[index].name;
     }
     return(strArray);
 }
コード例 #23
0
 public static string[] Testing_GetAllDatabaseNames()
 {
     MaintDatabaseRecord[] array = AssetServer.AdminRefreshDatabases();
     string[] array2             = new string[array.Length];
     for (int i = 0; i < array.Length; i++)
     {
         array2[i] = array[i].name;
     }
     return(array2);
 }
コード例 #24
0
        private ChangeFlags GetChangeFlags()
        {
            string gUID = this.GetGUID();

            if (gUID == string.Empty)
            {
                return(ChangeFlags.None);
            }
            return(AssetServer.GetChangeFlags(gUID));
        }
コード例 #25
0
 public bool DoUpdate(bool afterResolvingConflicts)
 {
     AssetServer.RemoveMaintErrorsFromConsole();
     if (ASEditorBackend.SettingsIfNeeded())
     {
         this.showingConflicts = false;
         AssetServer.SetAfterActionFinishedCallback("ASEditorBackend", "CBReinitOnSuccess");
         AssetServer.DoUpdateOnNextTick(!afterResolvingConflicts, "ShowASConflictResolutionsWindow");
     }
     return(true);
 }
コード例 #26
0
 private bool AtLeastOneSelectedAssetCanBeMerged()
 {
     for (int i = 0; i < this.downloadConflicts.Length; i++)
     {
         if (this.selectedLV1Items[i] && !AssetServer.AssetIsBinaryByGUID(this.downloadConflicts[i]) && !AssetServer.IsItemDeleted(this.downloadConflicts[i]))
         {
             return(true);
         }
     }
     return(false);
 }
コード例 #27
0
        private void DoShowDiff(string guid)
        {
            List <string>      list  = new List <string>();
            List <CompareInfo> list2 = new List <CompareInfo>();
            int workingItemChangeset = AssetServer.GetWorkingItemChangeset(guid);

            list.Add(guid);
            list2.Add(new CompareInfo(workingItemChangeset, -1, 0, 1));
            Debug.Log("Comparing asset revisions " + workingItemChangeset.ToString() + " and Local");
            AssetServer.CompareFiles(list.ToArray(), list2.ToArray());
        }
コード例 #28
0
 private void DownloadFile()
 {
     if ((this.ChangeLogSelectionRev >= 0) && (this.m_ChangeLogSelectionGUID != string.Empty))
     {
         string[] textArray1 = new string[] { "Are you sure you want to download '", this.m_ChangeLogSelectionAssetName, "' from revision ", this.ChangeLogSelectionRev.ToString(), " and lose all changes?" };
         if (EditorUtility.DisplayDialog("Download file", string.Concat(textArray1), "Download", "Cancel"))
         {
             AssetServer.DoRevertOnNextTick(this.ChangeLogSelectionRev, this.m_ChangeLogSelectionGUID);
         }
     }
 }
コード例 #29
0
 private void SetupDeletedItems()
 {
     this.m_DeletedItems = AssetServer.GetServerDeletedItems();
     this.m_DelPVstate.Clear();
     this.m_DelPVstate.lv = new ListViewState(0);
     this.m_DelPVstate.AddAssetItems(this.m_DeletedItems);
     this.m_DelPVstate.AddAssetItems(AssetServer.GetLocalDeletedItems());
     this.m_DelPVstate.SetLineCount();
     this.m_DelPVstate.selectedItems = new bool[this.m_DelPVstate.lv.totalRows];
     this.m_DeletedItemsInitialized  = true;
 }
コード例 #30
0
        private void ResolveSelectedDownloadConflicts(DownloadResolution res)
        {
            int  num  = -1;
            bool flag = false;
            int  i    = 0;

            while (i < this.downloadConflicts.Length)
            {
                if (this.selectedLV1Items[i])
                {
                    string guid = this.downloadConflicts[i];
                    if (res == DownloadResolution.Merge && (AssetServer.AssetIsBinaryByGUID(guid) || AssetServer.IsItemDeleted(guid)))
                    {
                        flag = true;
                    }
                    else
                    {
                        if (res != DownloadResolution.Unresolved)
                        {
                            if (AssetServer.GetDownloadResolution(guid) == DownloadResolution.Unresolved)
                            {
                                this.downloadConflictsToResolve--;
                            }
                        }
                        else
                        {
                            this.downloadConflictsToResolve++;
                        }
                        this.downloadResolutions[i] = res;
                        AssetServer.SetDownloadResolution(guid, res);
                        num = ((num != -1) ? -2 : i);
                    }
                }
IL_9F:
                i++;
                continue;
                goto IL_9F;
            }
            this.enableContinueButton = (this.downloadConflictsToResolve == 0);
            if (num >= 0)
            {
                this.selectedLV1Items[num] = false;
                if (num < this.selectedLV1Items.Length - 1)
                {
                    this.selectedLV1Items[num + 1] = true;
                }
            }
            this.enableMergeButton = this.AtLeastOneSelectedAssetCanBeMerged();
            if (flag)
            {
                EditorUtility.DisplayDialog("Some conflicting changes cannot be merged", "Notice that not all selected changes where selected for merging. This happened because not all of them can be merged (e.g. assets are binary or deleted).", "OK");
            }
        }