railmapgen / rmp

Design your own rail map by freely dragging stations from different cities and connecting them with 135-degree rounded corners or perpendicular lines!
https://railmapgen.org/?app=rmp
GNU General Public License v3.0
94 stars 18 forks source link

允许多选状态下的单文件、跨文件复制粘贴 #621

Closed CatAlan1028 closed 8 months ago

CatAlan1028 commented 8 months ago

比如我在文件一里选择了一批对象,然后我想要粘贴到文件二中。粘贴的方式为:在粘贴位置设置一个临时的点,然后将源文件中对象的坐标相对于粘贴点进行排列;同时,粘贴后的选中状态为粘贴上的内容 (话说为什么之前不允许粘贴?我觉得如果粘贴时可以默认:如果能够识别就转换成对应的图标以及坐标,否则识别为任意文字)

thekingofcity commented 8 months ago

嗨,请简述现在操作的情况及你预期操作的情况

CatAlan1028 commented 8 months ago

5个步骤,见图片 屏幕截图 2024-01-31 1919390001 屏幕截图 2024-01-31 192103 屏幕截图 2024-01-31 191939 注意!图2右键菜单里要增加“粘贴”的选项按钮。

CatAlan1028 commented 8 months ago

现在是缺少从一个文件的部分对象批量转移到另一个文件的功能。而这一个方案可以解决这一问题。

CatAlan1028 commented 8 months ago

其中对于坐标转换举个例子:源文件复制后其中一个站点代码为:{"app":"rmp","version":1,"nodesWithAttrs":{"stn_u1cmoH7UEV":{"visible":true,"zIndex":0,"x":-2340,"y":685,"type":"suzhourt-basic","suzhourt-basic":{"names":["【示例点】","【Stn】"],"nameOffsetX":"right","nameOffsetY":"top","color":["shanghai","sh1","#E3002B","#fff"]}}},"edgesWithAttrs":{},"avgX":-2340,"avgY":685} ,右键点击处为(323,312),取5为单位,识别代码后粘贴的位置为(-2340+325, 685+310)

thekingofcity commented 8 months ago

嗨,您所提到的大部分功能当前版本都可以做到。要复制粘贴,请多选后按下Ctrl(Cmd)+C,并在需要粘贴的画布上按下Ctrl(Cmd)+V即可。有关更多快捷键的信息,您可以在设置-快捷键中找到 :)

唯一您提到但未实现的功能为复制文字后粘贴自动添加任意文字节点到画布上。这当然可以实现,但考虑到较低的任意文字节点使用频率,添加一个任意文字节点到画布上后再粘贴文字也不太复杂,就不额外写代码便利此行为了。感谢您的理解。

如有任何未尽事宜,欢迎重新打开议题讨论。

CatAlan1028 commented 8 months ago

那能否考虑在右键的菜单里增加粘贴选项呢?

thekingofcity commented 8 months ago

嗨,网页程序无法改变浏览器右键菜单,尽情理解 :)