示例#1
0
        public void Do(params object[] args)
        {
            Album               = args[0] as Album;
            Indexes             = args[1] as int[];
            Mode                = (ClipMode)args[2];
            Clipboarder         = Clipboarder.Default;
            Clipboarder.Default = Clipboarder.CreateClipboarder(Album, Indexes, Mode);

            var arr = new string[Indexes.Length];
            var dir = $"{Program.Config["RootPath"]}/temp/clipbord_image";

            if (Directory.Exists(dir))
            {
                Directory.Delete(dir, true);
            }
            Directory.CreateDirectory(dir);
            var builder = new LSBuilder();

            for (var i = 0; i < Indexes.Length; i++)
            {
                var entity = Album[Indexes[i]];
                var path   = $"{dir}/{entity.Index}";
                builder.WriteObject(entity, path + ".json");
                arr[i] = path + ".png";
                entity.Picture.Save(arr[i]);
            }
            var collection = new StringCollection();

            collection.AddRange(arr);
            Clipboard.SetFileDropList(collection);
        }
示例#2
0
        public void Do(params object[] args)
        {
            Array               = args[0] as Album[];
            Mode                = (ClipMode)args[1];
            Clipboarder         = Clipboarder.Default;
            Clipboarder.Default = Clipboarder.CreateClipboarder(Array, null, Mode);
            var builder = new LSBuilder();
            var dir     = $"{Program.Config["RootPath"]}/temp/clipbord_img";

            if (Directory.Exists(dir))
            {
                //删除文件夹内容
                Directory.Delete(dir, true);
            }
            Directory.CreateDirectory(dir);
            var path_arr = new string[Array.Length];

            for (var i = 0; i < Array.Length; i++)
            {
                path_arr[i] = $"{dir}/{Array[i].Name}";
                Tools.SaveFile(path_arr[i], Array[i]);
                var json_path = path_arr[i].RemoveSuffix(".ogg");
                json_path = json_path.RemoveSuffix(".img");
                json_path = $"{json_path}.json";
                var root = new LSObject {
                    { "path", Array[i].Path }
                };
                builder.Write(root, json_path);
            }
            var collection = new StringCollection();

            collection.AddRange(path_arr);
            Clipboard.SetFileDropList(collection);
        }
示例#3
0
 public void Do(params object[] args)
 {
     Target      = args[0] as Album;
     Index       = (int)args[1];
     Clipboarder = Clipboarder.Default;
     Redo();
 }
示例#4
0
        public void Do(params object[] args)
        {
            Index       = (int)args[0];
            Clipboarder = Clipboarder.Default;
            var array = new Album[0];

            if (Clipboarder != null)
            {
                array = Clipboarder.Albums;
                if (Clipboarder.Mode == ClipMode.Cut)
                {
                    Clipboarder.Clear();
                    Clipboard.Clear();
                    Connector.RemoveFile(array);
                }
                for (var i = 0; i < array.Length; i++)
                {
                    array[i] = array[i].Clone();
                }
            }
            else if (Clipboard.ContainsFileDropList())
            {
                var collection = Clipboard.GetFileDropList();
                var file_arr   = new string[collection.Count];
                collection.CopyTo(file_arr, 0);
                array = Npks.Load(file_arr).ToArray();
                var builder = new LSBuilder();
                for (var i = 0; i < array.Length; i++)
                {
                    var name = file_arr[i].RemoveSuffix(".img");
                    name  = name.RemoveSuffix(".ogg");
                    name += ".json";
                    if (File.Exists(name))
                    {
                        var root = builder.Read(name)["path"];
                        var path = root.Value?.ToString();
                        if (path != null)
                        {
                            array[i].Path = path;
                        }
                    }
                }
            }
            Indexes = new int[array.Length];
            if (array.Length > 0)
            {
                if (Connector.FileCount > 0)
                {
                    Connector.SelectedFileIndex = Connector.FileCount - 1;
                }
                Index = Index > Connector.List.Count ? Connector.List.Count : Index;
                Index = Index < 0 ? 0 : Index;
                for (var i = 0; i < array.Length; i++)
                {
                    Indexes[i] = Index + i;
                }
                Connector.List.InsertRange(Index, array);
            }
        }
示例#5
0
        public void Do(params object[] args)
        {
            Target      = args[0] as Album;
            Index       = (int)args[1];
            Clipboarder = Clipboarder.Default;
            var array = new ImageEntity[0];

            if (Clipboarder != null)
            {
                Indexes = Clipboarder.Indexes;
                Source  = Clipboarder.Album;
                array   = new ImageEntity[Indexes.Length];
                Source.Adjust();
                for (var i = 0; i < array.Length; i++)
                {
                    array[i] = Source[Indexes[i]].Clone(Target);
                }
                if (Clipboarder.Mode == ClipMode.Cut)
                {
                    //如果是剪切,清空剪切板
                    Clipboarder.Default = null;
                    Clipboard.Clear();
                    for (var i = 0; i < array.Length; i++)
                    {
                        Source.List.Remove(array[i]);
                    }
                }
                Source.Adjust();
            }
            else if (Clipboard.ContainsFileDropList())
            {
                var collection = Clipboard.GetFileDropList();
                array = new ImageEntity[collection.Count];
                var builder = new LSBuilder();
                for (var i = 0; i < collection.Count; i++)
                {
                    if (!File.Exists(collection[i]))
                    {
                        continue;
                    }
                    var image = Image.FromFile(collection[i]) as Bitmap;
                    var json  = collection[i].Replace(".png", ".json");
                    if (File.Exists(json))
                    {
                        var obj = builder.Read(json);
                        array[i]         = obj.GetValue(typeof(ImageEntity)) as ImageEntity;
                        array[i].Parent  = Target;
                        array[i].Picture = image;
                    }
                }
            }
            Target.List.InsertRange(Index, array);
            Target.Adjust();
        }