Beispiel #1
0
        public MultiColumnTreeView(TreeViewState state, MultiColumnHeader multicolumnHeader, TreeModel <PackDirectoriesTreeElement> model) : base(state, multicolumnHeader, model)
        {
            Assert.AreEqual(m_SortOptions.Length, Enum.GetValues(typeof(AssetStreamingColumns)).Length, "Ensure number of sort options are in sync with number of MyColumns enum values");

            // Custom setup
            rowHeight = kRowHeights;
            columnIndexForTreeFoldouts    = 0;
            showAlternatingRowBackgrounds = true;
            showBorder                        = true;
            customFoldoutYOffset              = (kRowHeights - EditorGUIUtility.singleLineHeight) * 0.5f; // center foldout in the row since we also center content. See RowGUI
            extraSpaceBeforeIconAndLabel      = kToggleWidth;
            multicolumnHeader.sortingChanged += OnSortingChanged;

            // init checkbox
//			Common.Debug.Log("dirs: " + PackingDirectories.Directories.ToString());
            List <string> directories = PackingDirectories.Directories;

            if (directories != null && model.root.children != null)
            {
                foreach (var treeElement in model.root.children)
                {
                    PackDirectoriesTreeElement dirTreeElement = (PackDirectoriesTreeElement)treeElement;
                    dirTreeElement.isChecked = PackingDirectories.IsBannedDirectory(dirTreeElement.fullPath)
                                                ? false
                                                : directories.Contains(dirTreeElement.fullPath);
                    dirTreeElement.enabled = !PackingDirectories.IsReservedDirectory(dirTreeElement.fullPath) &&
                                             !PackingDirectories.IsBannedDirectory(dirTreeElement.fullPath);
                }
            }

            Reload();
        }
Beispiel #2
0
        void CellGUI(Rect cellRect, TreeViewItem <PackDirectoriesTreeElement> item, AssetStreamingColumns column, ref RowGUIArgs args)
        {
            // Center cell rect vertically (makes it easier to place controls, icons etc in the cells)
            CenterRectUsingSingleLineHeight(ref cellRect);

            switch (column)
            {
            case AssetStreamingColumns.Directory:
            {
                args.rowRect = cellRect;
                base.RowGUI(args);
            }
            break;

            case AssetStreamingColumns.IsChecked:
            {
                bool newValue = EditorGUI.Toggle(cellRect, item.data.isChecked);                         // hide when outside cell rect
                if (newValue != item.data.isChecked)
                {
                    item.data.isChecked = newValue;
                    PackingDirectories.OnDirectoryPackingStatusChange(item.data.fullPath, newValue);
                }
            }
            break;
            }
        }
Beispiel #3
0
        public static List <PackDirectoriesTreeElement> Generate()
        {
            var treeElements = new List <PackDirectoriesTreeElement>();
            var root         = new PackDirectoriesTreeElement("Root", "", true, true, -1, _idCounter);

            treeElements.Add(root);

            foreach (string directoryRelativePath in PackingDirectories.GetAllProjectDirectories())
            {
                AddDirectoryAsChildren(directoryRelativePath, root, treeElements);
            }

            return(treeElements);
        }
Beispiel #4
0
        void LoadProjectConfig()
        {
            JSONNode configJson = Utils.GetProjectSettingsJsonNode();

            if (configJson == null)
            {
                Debug.Info("Load Project Config: Nothing to lowwwwad");
                return;
            }

            List <string> pDirs = JsonHelper.ToStringList(configJson["PackingDirectories"].AsArray);

            if (pDirs.Count > 0 && pDirs[0].Contains(PathHelper.ProjectDirectory))
            {
                PackingDirectories.Directories = pDirs;
            }
            else
            {
                if (pDirs.Count > 0)
                {
                    Debug.LogError("Failed loading Packing Directories. Please config it again before do Packing.");
                }
                PackingDirectories.InitPackingDirectories();
            }

            foreach (TransferMode t in Enum.GetValues(typeof(TransferMode)))
            {
                int    modeInt    = (int)t;
                string modeString = Enum.GetName(typeof(TransferMode), t);

                ContextForMode[modeInt].taskId       = configJson["taskId"][modeString];
                ContextForMode[modeInt].repoUsername = configJson["repoInfo"][modeString]["repoUsername"];
                ContextForMode[modeInt].repoPassword = configJson["repoInfo"][modeString]["repoPassword"];
                ContextForMode[modeInt].repoUrl      = configJson["repoInfo"][modeString]["repoUrl"];
                ContextForMode[modeInt].repoBranch   = configJson["repoInfo"][modeString]["repoBranch"];
                ContextForMode[modeInt].repoToken    = configJson["repoInfo"][modeString]["repoToken"];
            }
        }