基线:全量源码首提(D1 版本控制落地,含第一轮优化 B1-B4/A1/A4/缩放修复)
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""把 xiangmu 窗体里的 CJZZ.Controls 第三方控件替换为标准 WinForms 控件,
|
||||
让 SharpDevelop 设计器能正常打开编辑。"""
|
||||
import io
|
||||
import re
|
||||
import os
|
||||
|
||||
BASE = r"C:\Users\099978\Documents\SharpDevelop Projects\成套报价软件\成套报价软件\xiangmu"
|
||||
|
||||
# 控件类型映射
|
||||
TYPE_MAP = {
|
||||
"CJZZ.Controls.ResizableComboBox": "System.Windows.Forms.ComboBox",
|
||||
"CJZZ.Controls.ResizableTextBox": "System.Windows.Forms.TextBox",
|
||||
"CJZZ.Controls.RoundedButton": "System.Windows.Forms.Button",
|
||||
"CJZZ.Controls.MultiSelectComboBox": "System.Windows.Forms.ComboBox",
|
||||
}
|
||||
|
||||
# 需要删除的 CJZZ 特有属性行(按前缀匹配)
|
||||
CJZZ_PROPS = [
|
||||
"BorderColor", "HoverBorderColor", "FocusBorderColor", "PlaceholderColor",
|
||||
"PlaceholderText", "Flat", "Radius", "Items.PerLine", "Watermark",
|
||||
"ShowClearButton", "ArrowColor", "ArrowHoverColor",
|
||||
]
|
||||
|
||||
|
||||
def fix_file(path):
|
||||
s = io.open(path, encoding="utf-8-sig").read()
|
||||
orig = s
|
||||
n_changed = 0
|
||||
|
||||
# 1) 替换类型声明
|
||||
for old_t, new_t in TYPE_MAP.items():
|
||||
old_decl = "private " + old_t + " "
|
||||
new_decl = "private " + new_t + " "
|
||||
if old_decl in s:
|
||||
s = s.replace(old_decl, new_decl)
|
||||
n_changed += s.count(new_decl) - orig.count(new_decl)
|
||||
old_new = "new " + old_t + "()"
|
||||
new_new = "new " + new_t + "()"
|
||||
if old_new in s:
|
||||
s = s.replace(old_new, new_new)
|
||||
n_changed += 1
|
||||
|
||||
# 2) 删除 CJZZ 特有属性行
|
||||
lines = s.split("\n")
|
||||
out = []
|
||||
removed = 0
|
||||
for line in lines:
|
||||
stripped = line.strip()
|
||||
skip = False
|
||||
for prop in CJZZ_PROPS:
|
||||
# 形如 this.xxx.PropName = ...;
|
||||
m = re.match(r"this\.\w+\.(" + prop + r")\s*=", stripped)
|
||||
if m:
|
||||
skip = True
|
||||
removed += 1
|
||||
break
|
||||
if not skip:
|
||||
out.append(line)
|
||||
s = "\n".join(out)
|
||||
|
||||
if s != orig:
|
||||
io.open(path, "w", encoding="utf-8-sig", newline="\r\n").write(s)
|
||||
print("%s: 类型替换=%d, 删除属性行=%d" % (os.path.basename(path), n_changed, removed))
|
||||
else:
|
||||
print("%s: 无变化" % os.path.basename(path))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
for name in os.listdir(BASE):
|
||||
if name.endswith(".ui.cs"):
|
||||
fix_file(os.path.join(BASE, name))
|
||||
print("\n完成。")
|
||||
Reference in New Issue
Block a user