Доработка/Рефактор/Исправления. Продолжение добавления управления модуляцией усилителей. Перенос из работы в модуль prd. Исправление диапазонов.
This commit is contained in:
@@ -20,6 +20,7 @@ const TABLE_PARAMS = {
|
||||
'dur': [4, 'Длительность импульса, мкс', true, 0.0, 1000000.0],
|
||||
'period': [5, 'Период повтора, мкс', true, 0.0, 1000000.0] }
|
||||
|
||||
const MOD_ROW_INDEX = 6 ## Индекс строки с модуляцией
|
||||
|
||||
func init_table():
|
||||
for i in TABLE_PARAMS.size(): $table.add_row(TABLE_ROW)
|
||||
@@ -33,30 +34,32 @@ func init_table():
|
||||
var node = $table.get_node2(1, p[0])
|
||||
node.connect('text_submitted', Callable(self, 'on_edit_entry').bind(node))
|
||||
$table.add_row(TABLE_TAGGLE_BTN)
|
||||
$table.set_node_text(0, 6, 'Модуляция')
|
||||
$table.set_node_alligment(0, 6, HORIZONTAL_ALIGNMENT_LEFT)
|
||||
$table.set_node_editable(0, 6, false)
|
||||
var taggle_btn = $table.get_node2(1, 6)
|
||||
for item in taggle_btn.get_children():
|
||||
$table.set_node_text(0, MOD_ROW_INDEX, 'Модуляция')
|
||||
$table.set_node_alligment(0, MOD_ROW_INDEX, HORIZONTAL_ALIGNMENT_LEFT)
|
||||
$table.set_node_editable(0, MOD_ROW_INDEX, false)
|
||||
var taggle_node = $table.get_node2(1, MOD_ROW_INDEX)
|
||||
for item in taggle_node.get_children():
|
||||
item.size.x = 85
|
||||
item.size.y = 25
|
||||
item.position.x = 0
|
||||
item.position.y = 0
|
||||
taggle_btn.size.x = 85
|
||||
taggle_btn.size.y = 25
|
||||
taggle_node.size.x = 85
|
||||
taggle_node.size.y = 25
|
||||
var taggle_btn = taggle_node.get_children()[1]
|
||||
taggle_btn.connect('pressed', on_taggle_btn.bind(taggle_btn))
|
||||
taggle_btn.disabled = true
|
||||
$table.set_columns_min_size(TABLE_COLUMN_SIZE)
|
||||
$table.set_meta('id', 0)
|
||||
signaller.connect('interfer_selected', Callable(self, 'on_interfer_selected').bind(taggle_btn))
|
||||
signaller.connect('rto_threat_unsel', Callable(self, 'on_rto_threat_unsel'))
|
||||
|
||||
|
||||
## Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
signaller.connect('interfer_selected', Callable(self, 'on_interfer_selected'))
|
||||
signaller.connect('rto_threat_unsel', Callable(self, 'on_rto_threat_unsel'))
|
||||
call_deferred('init_table')
|
||||
|
||||
|
||||
func on_edit_entry(text : String, entry):
|
||||
print_debug()
|
||||
var ecm = $table.get_meta('ecm')
|
||||
if $table.has_meta('ecm') == false: return
|
||||
var indexis = $table.get_key_indexes(entry.name)
|
||||
@@ -77,19 +80,22 @@ func check_value(val, min_val, max_val, old_val):
|
||||
else: return old_val
|
||||
|
||||
|
||||
func on_interfer_selected(ecm):
|
||||
func on_interfer_selected(ecm, taggle_btn):
|
||||
if ecm != null:
|
||||
$table.set_meta('ecm', ecm)
|
||||
taggle_btn.disabled = false
|
||||
else:
|
||||
$table.set_meta('ecm', null)
|
||||
on_ecm_update()
|
||||
taggle_btn.disabled = true
|
||||
taggle_btn.button_pressed = false
|
||||
on_ecm_update(taggle_btn)
|
||||
|
||||
|
||||
func on_ecm_update():
|
||||
func on_ecm_update(taggle_btn):
|
||||
for item in len(TABLE_PARAMS):
|
||||
$table.set_node_text(1, item, '')
|
||||
$table.set_node_editable(1, item, false)
|
||||
if $table.has_meta('ecm') == false: return
|
||||
if not $table.has_meta('ecm'): return
|
||||
var ecm: interfer.Interfer = $table.get_meta('ecm')
|
||||
var mnms = tools.get_members_names(ecm)
|
||||
for item in ecm['params'].keys():
|
||||
@@ -100,9 +106,17 @@ func on_ecm_update():
|
||||
var val = ecm.get_value(member_name)
|
||||
$table.set_node_text(1, p[0], '%s' % val)
|
||||
$table.set_node_editable(1, p[0], p[2])
|
||||
taggle_btn.button_pressed = ecm.modulation
|
||||
|
||||
|
||||
|
||||
func on_rto_threat_unsel(_th_id):
|
||||
for item in range(len(TABLE_PARAMS)):
|
||||
$table.set_node_text(1, item, '')
|
||||
$table.set_node_editable(1, item, false)
|
||||
|
||||
|
||||
func on_taggle_btn(taggle_btn):
|
||||
if not $table.has_meta('ecm'): return
|
||||
var ecm: interfer.Interfer = $table.get_meta('ecm')
|
||||
ecm.modulation = taggle_btn.button_pressed
|
||||
|
||||
Reference in New Issue
Block a user