public static string CreateTemplateIndex(string templateFilename, string path, string name = null)
        {
            var templatePath = $"{Utils.packageFolderName}/Templates/{templateFilename}.index.template";

            if (!File.Exists(templatePath))
            {
                return(null);
            }

            var dirPath         = path;
            var templateContent = File.ReadAllText(templatePath);

            if (File.Exists(path))
            {
                dirPath = Path.GetDirectoryName(path);
                if (Selection.assetGUIDs.Length > 1)
                {
                    path = dirPath;
                }
            }

            var indexFileName = string.IsNullOrEmpty(name) ? Path.GetFileNameWithoutExtension(path) : name;
            var indexPath     = AssetDatabase.GenerateUniqueAssetPath(Path.Combine(dirPath, $"{indexFileName}.index")).Replace("\\", "/");

            Debug.LogFormat(LogType.Log, LogOption.NoStacktrace, null,
                            $"Creating {templateFilename} index at <a file=\"{indexPath}\">{indexPath}</a>");

            SearchAnalytics.SendEvent(null, SearchAnalytics.GenericEventType.CreateIndexFromTemplate, templateFilename);

            File.WriteAllText(indexPath, templateContent);
            AssetDatabase.ImportAsset(indexPath);

            return(indexPath);
        }
Esempio n. 2
0
        public static void ShowWindow()
        {
            var window = GetWindow <ExpressionBuilder>();

            if (window.m_WindowId == null)
            {
                window.m_WindowId = GUID.Generate().ToString();
            }
            SearchAnalytics.SendEvent(window.m_WindowId, SearchAnalytics.GenericEventType.ExpressionBuilderOpenFromMenu);
        }
Esempio n. 3
0
        internal static void OpenWindow(SearchAnalytics.GenericEventType sourceEvt)
        {
            var window = CreateWindow <OnBoardingWindow>();

            window.m_WindowId = GUID.Generate().ToString();
            SearchAnalytics.SendEvent(window.m_WindowId, sourceEvt);
            var windowSize = new Vector2(600f, 420f);

            window.minSize  = window.maxSize = windowSize;
            window.position = Utils.GetMainWindowCenteredPosition(windowSize);
            window.Show();
            window.Focus();
        }
        internal static void CreateIndexProject()
        {
            var folderPath = AssetDatabase.GetAssetPath(Selection.activeObject);

            if (File.Exists(folderPath))
            {
                folderPath = Path.GetDirectoryName(folderPath);
            }

            var expressionPath = AssetDatabase.GenerateUniqueAssetPath(Path.Combine(folderPath, "expression.qse"));

            SearchAnalytics.SendEvent(null, SearchAnalytics.GenericEventType.ExpressionBuilderCreateExpressionFromMenu);
            var newExpression = new SearchExpression(SearchFlags.Default);

            newExpression.Save(expressionPath);
            AssetDatabase.ImportAsset(expressionPath);
            Selection.activeObject = AssetDatabase.LoadMainAssetAtPath(expressionPath);
        }
Esempio n. 5
0
        private void Save()
        {
            SearchAnalytics.SendEvent(m_WindowId, SearchAnalytics.GenericEventType.ExpressionBuilderSave);
            if (String.IsNullOrEmpty(m_ExpressionPath))
            {
                m_ExpressionPath = EditorUtility.SaveFilePanel("Save search expression...", saveExpressionDirectory, "expression", "qse").Replace("\\", "/");
            }
            if (!String.IsNullOrEmpty(m_ExpressionPath))
            {
                m_Expression.Save(m_ExpressionPath);
                UpdateDocumentInfo();

                if (m_ExpressionPath.StartsWith(Application.dataPath.Replace("\\", "/")))
                {
                    saveExpressionDirectory = Path.GetDirectoryName(m_ExpressionPath);
                    var relativepath = "Assets" + m_ExpressionPath.Substring(Application.dataPath.Replace("\\", "/").Length);
                    AssetDatabase.ImportAsset(relativepath);
                }
            }
        }
Esempio n. 6
0
        public static void Open(string assetPath)
        {
            var existingBuilderWindows = Resources.FindObjectsOfTypeAll <ExpressionBuilder>();

            foreach (var w in existingBuilderWindows)
            {
                if (w.expressionPath != null && w.expressionPath.Replace("\\", "/").Equals(assetPath.Replace("\\", "/"), StringComparison.OrdinalIgnoreCase))
                {
                    w.Focus();
                    w.Show();
                    return;
                }
            }

            var builder = CreateWindow <ExpressionBuilder>();

            builder.m_WindowId = GUID.Generate().ToString();
            SearchAnalytics.SendEvent(builder.m_WindowId, SearchAnalytics.GenericEventType.ExpressionBuilderOpenExpression);
            builder.Load(assetPath);
            builder.Show();
        }
 private void SendEvent(SearchAnalytics.GenericEventType category, string name = null, string message = null, string description = null)
 {
     SearchAnalytics.SendEvent(m_WindowId, category, name, message, description);
 }