Example #1
0
 void DeleteCompletedTasks(ref ToDoMiniData data)
 {
     Undo.RecordObject(data, "Delete completed tasks");
     data.DeleteCompletedTasks();
     EditorUtility.SetDirty(data);
     AssetDatabase.SaveAssets();
 }
Example #2
0
        void ImportData(TextAsset import, ref ToDoMiniData existingData)
        {
            TodoMiniDataExport parsedData = (TodoMiniDataExport)JsonUtility.FromJson(import.text, typeof(TodoMiniDataExport));

            Undo.RecordObject(existingData, "ToDo Mini import");
            existingData.items.AddRange(parsedData.tasks);
            UpdateToDoWindow();
        }
Example #3
0
        public override void OnInspectorGUI()
        {
            ToDoMiniData data = (ToDoMiniData)target;

            GUILayout.Space(5);
            GUILayout.Label("Settings", EditorStyles.boldLabel);

            GUILayout.Space(2);
            EditorGUI.BeginChangeCheck();
            EditorGUILayout.PropertyField(serializedObject.FindProperty("displayDensity"));
            EditorGUILayout.PropertyField(serializedObject.FindProperty("keepCompletedTasks"));
            serializedObject.ApplyModifiedProperties();
            if (EditorGUI.EndChangeCheck())
            {
                if (!data.keepCompletedTasks)
                {
                    DeleteCompletedTasks(ref data);
                }
                UpdateToDoWindow();
            }

            // Clear completed tasks.
            if (GUILayout.Button("☑ Delete completed tasks"))
            {
                DeleteCompletedTasks(ref data);
                UpdateToDoWindow();
            }

            // Clear all tasks.
            GUILayout.Space(2);
            if (GUILayout.Button("✖ Delete all tasks"))
            {
                Undo.RecordObject(data, "Delete all tasks");
                data.items.Clear();
                EditorUtility.SetDirty(data);
                UpdateToDoWindow();
            }

            // Import/export.
            GUILayout.Space(10);
            GUILayout.Label("Import/export", EditorStyles.boldLabel);
            GUILayout.BeginHorizontal();

            // Import tasks.
            DrawDropArea("Import (drop a file here)", (TextAsset droppedTextAsset) => ImportData(droppedTextAsset, ref data));
            GUILayout.Space(5);

            // Export tasks.
            GUIStyle buttonStyle = new GUIStyle(GUI.skin.button);

            buttonStyle.margin = new RectOffset();
            if (GUILayout.Button("Export", buttonStyle, GUILayout.Height(30)))
            {
                ExportData(ref data);
            }
            GUILayout.EndHorizontal();
        }
Example #4
0
        void ExportData(ref ToDoMiniData data)
        {
            string dataInJson = JsonUtility.ToJson(new TodoMiniDataExport(data));
            string fileName   = GetSafeFileName(SavingDirectory, exportFileName);

            File.WriteAllText(SavingDirectory + fileName, dataInJson);
            AssetDatabase.Refresh();
            EditorGUIUtility.PingObject(AssetDatabase.LoadAssetAtPath(assetsSubdirectory + fileName, typeof(UnityEngine.Object)));
        }
Example #5
0
 public TodoMiniDataExport(ToDoMiniData data)
 {
     tasks = data.items;
 }