LiMinggang / madedit-mod

MadEdit-Mod is a cross platform Text/Hex editor(based on the madedit project @ sourceforge)
GNU General Public License v3.0
124 stars 27 forks source link

标尺等功能和部分缺陷修复 #332

Open sln-1550 opened 6 months ago

sln-1550 commented 6 months ago

1、增加了标尺 2、HEX模式下左右窗口复制和粘贴的自动适配,左边窗口复制粘贴HEX数据,右边复制粘贴原始数据,同时也去掉了hex右键复制相关的3个菜单 3、当前行高亮用背景方式而不是线框 4、把FindTextAll参数showResult改成keepResult,表示是否不删除之前的查找结果 5、增加了一些python内置模块等 6、修复了搜索框调节不为0,每次都变大的BUG

LiMinggang commented 6 months ago

我会把这些修复、新功能拆分成独立的commits

LiMinggang commented 6 months ago

我把Ruler的cursor的xpos给改成了Column,因为指示图像意义的座标没有太大意义,而Column是字符座标。对于非固定宽度字符显示会有问题,这个加上了告警

LiMinggang commented 6 months ago

还有一些小改进和优化,都合入了 3059dd574c2b2ebedce8214c3402c624e63b67dd 37c7ab4bdf75102a44632cb0a36b6fee16f72a12

LiMinggang commented 6 months ago

修复了搜索框调节不为0,每次都变大的BUG 87941c6596f61cee6241943c5c762e5feca3b40d

LiMinggang commented 6 months ago

Python 9df94c19b874e188810b3c24e9cc048d8011259e

sln-1550 commented 6 months ago

辛苦了,确实标尺我只考虑了一种字体的尺寸

LiMinggang commented 6 months ago

没啥,有很多细枝末节要熟悉代码才知道。我把颜色和字体都设成wx控件的颜色和字体,然后第一次画的时候调整了一下尺寸。 你的设计思路很好了。 其他的部分,比如高亮的和copypaste那部分,我再想想看。

sln-1550 commented 5 months ago

最近发现一个bug,当前行高亮时碰到关键字高亮就会停掉,没有高亮行尾剩余部分。这块我自己改好了,等你这边融合以后再提交吧

LiMinggang commented 5 months ago

我这边大部分问题都修好了,linux下面也测试通过了。目前就是python那个修改需要回退,因为linux下编译有些依赖函数找不到,链接失败。我会保留提交记录,待以后解决。

sln-1550 commented 5 months ago

那我这边还需要做什么么?第一次PR,没啥经验

LiMinggang commented 5 months ago

你不用等,我现在对标尺的修复已经比较有信心了:windows和linux都测试过了。 所以如果你愿意,可以同步一次代码,然后把剩余的修改提上来。然后基于我的修改继续使用中测试,看看还有没有bug。 对于其他部分我目前的想法是:

  1. 当前行的显示如果可以,应该也是给用户提供选择。
  2. 下面这个只是改了个名字吗? 4、把FindTextAll参数showResult改成keepResult,表示是否不删除之前的查找结果
LiMinggang commented 5 months ago

然后自适应copy/paste那个,我是没太明白。 最初我的设计思路是:copy的内容可以变成 0E 0A 1D这种串,而不是只能贴内容。因为有时候需要在查找和插入的时候用到十六进制。 目前你的设计是在文本状态就贴内容?十六进制输入时贴十六进制串?

sln-1550 commented 5 months ago

你不用等,我现在对标尺的修复已经比较有信心了:windows和linux都测试过了。 所以如果你愿意,可以同步一次代码,然后把剩余的修改提上来。然后基于我的修改继续使用中测试,看看还有没有bug。 对于其他部分我目前的想法是:

  1. 当前行的显示如果可以,应该也是给用户提供选择。
  2. 下面这个只是改了个名字吗? 4、把FindTextAll参数showResult改成keepResult,表示是否不删除之前的查找结果

不是,因为我之前写脚本的时候,发现脚本执行FindTextAll后结果不会自动展开,所以才加了这个参数,之前的showResult我感觉用不上,不会用到不展示结果的搜索。

然后自适应copy/paste那个,我是没太明白。 最初我的设计思路是:copy的内容可以变成 0E 0A 1D这种串,而不是只能贴内容。因为有时候需要在查找和插入的时候用到十六进制。 目前你的设计是在文本状态就贴内容?十六进制输入时贴十六进制串?

是这个意思,就是选中左边的HEX区域,复制粘贴都是经过HEX编解码的;而在右边的复制粘贴就是原来的复制粘贴

LiMinggang commented 5 months ago

你不用等,我现在对标尺的修复已经比较有信心了:windows和linux都测试过了。 所以如果你愿意,可以同步一次代码,然后把剩余的修改提上来。然后基于我的修改继续使用中测试,看看还有没有bug。 对于其他部分我目前的想法是:

  1. 当前行的显示如果可以,应该也是给用户提供选择。
  2. 下面这个只是改了个名字吗? 4、把FindTextAll参数showResult改成keepResult,表示是否不删除之前的查找结果

不是,因为我之前写脚本的时候,发现脚本执行FindTextAll后结果不会自动展开,所以才加了这个参数,之前的showResult我感觉用不上,不会用到不展示结果的搜索。

然后自适应copy/paste那个,我是没太明白。 最初我的设计思路是:copy的内容可以变成 0E 0A 1D这种串,而不是只能贴内容。因为有时候需要在查找和插入的时候用到十六进制。 目前你的设计是在文本状态就贴内容?十六进制输入时贴十六进制串?

是这个意思,就是选中左边的HEX区域,复制粘贴都是经过HEX编解码的;而在右边的复制粘贴就是原来的复制粘贴

那这个功能跟原来的设计还不是同一个应用场景。可以考虑两者共存

sln-1550 commented 5 months ago

你不用等,我现在对标尺的修复已经比较有信心了:windows和linux都测试过了。 所以如果你愿意,可以同步一次代码,然后把剩余的修改提上来。然后基于我的修改继续使用中测试,看看还有没有bug。 对于其他部分我目前的想法是:

  1. 当前行的显示如果可以,应该也是给用户提供选择。
  2. 下面这个只是改了个名字吗? 4、把FindTextAll参数showResult改成keepResult,表示是否不删除之前的查找结果

不是,因为我之前写脚本的时候,发现脚本执行FindTextAll后结果不会自动展开,所以才加了这个参数,之前的showResult我感觉用不上,不会用到不展示结果的搜索。

然后自适应copy/paste那个,我是没太明白。 最初我的设计思路是:copy的内容可以变成 0E 0A 1D这种串,而不是只能贴内容。因为有时候需要在查找和插入的时候用到十六进制。 目前你的设计是在文本状态就贴内容?十六进制输入时贴十六进制串?

是这个意思,就是选中左边的HEX区域,复制粘贴都是经过HEX编解码的;而在右边的复制粘贴就是原来的复制粘贴

那这个功能跟原来的设计还不是同一个应用场景。可以考虑两者共存

我觉得是一个场景,就是复制和粘贴HEX编、解码后的内容

LiMinggang commented 5 months ago

你不用等,我现在对标尺的修复已经比较有信心了:windows和linux都测试过了。 所以如果你愿意,可以同步一次代码,然后把剩余的修改提上来。然后基于我的修改继续使用中测试,看看还有没有bug。 对于其他部分我目前的想法是:

  1. 当前行的显示如果可以,应该也是给用户提供选择。
  2. 下面这个只是改了个名字吗? 4、把FindTextAll参数showResult改成keepResult,表示是否不删除之前的查找结果

不是,因为我之前写脚本的时候,发现脚本执行FindTextAll后结果不会自动展开,所以才加了这个参数,之前的showResult我感觉用不上,不会用到不展示结果的搜索。

然后自适应copy/paste那个,我是没太明白。 最初我的设计思路是:copy的内容可以变成 0E 0A 1D这种串,而不是只能贴内容。因为有时候需要在查找和插入的时候用到十六进制。 目前你的设计是在文本状态就贴内容?十六进制输入时贴十六进制串?

是这个意思,就是选中左边的HEX区域,复制粘贴都是经过HEX编解码的;而在右边的复制粘贴就是原来的复制粘贴

那这个功能跟原来的设计还不是同一个应用场景。可以考虑两者共存

我觉得是一个场景,就是复制和粘贴HEX编、解码后的内容

就一个问题:在文本模式下,如果用户粘贴,你觉得他想粘贴什么内容?

sln-1550 commented 5 months ago

就一个问题:在文本模式下,如果用户粘贴,你觉得他想粘贴什么内容?

文本模式没有改,我的代码只是在HEX模式下工作。 这个我不想跟你争辩,毕竟我是hex模式用的多,我用自己改的版本觉得方便,你这边可以不加,没关系的

sln-1550 commented 2 months ago

https://github.com/user-attachments/assets/fb84ff18-23cd-47b1-a656-26ca48ce1699

贴个视频说明下吧,省的讲不清楚。