Merge remote-tracking branch 'MaD_CaT/master' into workflows
This commit is contained in:
@@ -42,6 +42,16 @@ const INTERFER_NAMES = {
|
|||||||
'elrs': 'ЕЛРС' }
|
'elrs': 'ЕЛРС' }
|
||||||
|
|
||||||
|
|
||||||
|
var SIGNALS_CONNECTIONS = [
|
||||||
|
[signaller, 'interfer_new', 'on_interfer_new'],
|
||||||
|
[signaller, 'interfer_off', 'on_interfer_off'],
|
||||||
|
[signaller, 'rto_threat_unsel', 'on_rto_threat_unsel'],
|
||||||
|
[signaller, 'rto_threat_sel', 'on_rto_threat_sel'],
|
||||||
|
[interfer, 'interfer_update', 'on_interfer_update'],
|
||||||
|
[interfer, 'interfer_recommendate', 'on_interfer_recommendate'],
|
||||||
|
[interfer, 'interfer_resized', 'on_interfer_resized'] ]
|
||||||
|
|
||||||
|
|
||||||
## Индексы колонок
|
## Индексы колонок
|
||||||
const COLUMN_NUMBER = 0
|
const COLUMN_NUMBER = 0
|
||||||
const COLUMN_NAME = 1
|
const COLUMN_NAME = 1
|
||||||
@@ -52,8 +62,10 @@ const TABLE_TEXT_ROWS = 4
|
|||||||
|
|
||||||
var course = 0.0 ## Курс корабля
|
var course = 0.0 ## Курс корабля
|
||||||
var color_emit: Color
|
var color_emit: Color
|
||||||
|
var signal_conections: Array
|
||||||
|
var ecms: Dictionary ## Словарь с помехами
|
||||||
|
|
||||||
func on_rto_threat_unsel(_th_id): $table.clear_rows_selected()
|
func on_rto_threat_unsel(_th_id, _tbl_index): $table.clear_rows_selected()
|
||||||
|
|
||||||
|
|
||||||
## Вызывается при нажатии указателем мыши на выбранный ряд.
|
## Вызывается при нажатии указателем мыши на выбранный ряд.
|
||||||
@@ -86,17 +98,20 @@ func on_rto_threat_sel(th_id: int, table_index):
|
|||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready():
|
func _ready():
|
||||||
var table_index: = Dictionary()
|
var table_index: = Dictionary()
|
||||||
signaller.connect('interfer_new', Callable(self, 'on_interfer_new').bind(table_index))
|
for item in SIGNALS_CONNECTIONS:
|
||||||
signaller.connect('interfer_off', Callable(self, 'on_interfer_off').bind(table_index))
|
item.append(table_index)
|
||||||
signaller.connect('rto_threat_unsel', Callable(self, 'on_rto_threat_unsel'))
|
|
||||||
signaller.connect('rto_threat_sel', Callable(self, 'on_rto_threat_sel').bind(table_index))
|
|
||||||
interfer.connect('interfer_update', Callable(self, 'on_interfer_update').bind(table_index))
|
|
||||||
interfer.connect('interfer_recommendate', Callable(self, 'on_interfer_recommendate'))
|
|
||||||
$table.connect('row_pressed', Callable(self, 'on_row_pressed'))
|
$table.connect('row_pressed', Callable(self, 'on_row_pressed'))
|
||||||
call_deferred('init_table')
|
call_deferred('init_table')
|
||||||
var unit_nav = network.get_unit_instance('навигация')
|
var unit_nav = network.get_unit_instance('навигация')
|
||||||
unit_nav.connect('data_received', on_navi_data_received)
|
unit_nav.connect('data_received', on_navi_data_received)
|
||||||
ProjectSettings.connect('settings_changed', on_settings_changed)
|
ProjectSettings.connect('settings_changed', on_settings_changed)
|
||||||
|
signaller.connect('режим_работа', connect_all)
|
||||||
|
signaller.connect('режим_контроль', disconnect_all)
|
||||||
|
signaller.connect('режим_журнал', disconnect_all)
|
||||||
|
signaller.connect('режим_эмс', disconnect_all)
|
||||||
|
signaller.connect('режим_эмс2', disconnect_all)
|
||||||
|
signaller.connect('режим_настройки', disconnect_all)
|
||||||
|
connect_all()
|
||||||
|
|
||||||
|
|
||||||
func init_table():
|
func init_table():
|
||||||
@@ -180,7 +195,7 @@ func map_th_to_row(ecm) -> Array:
|
|||||||
return row
|
return row
|
||||||
|
|
||||||
|
|
||||||
func on_interfer_recommendate(ecm):
|
func on_interfer_recommendate(ecm, _tbl_index):
|
||||||
var sel_rows: Array
|
var sel_rows: Array
|
||||||
$table.get_selected_rows(sel_rows)
|
$table.get_selected_rows(sel_rows)
|
||||||
if not len(sel_rows): return
|
if not len(sel_rows): return
|
||||||
@@ -207,3 +222,32 @@ func disable_edit(tbl, num_col: int, i_row: int):
|
|||||||
for col in num_col:
|
for col in num_col:
|
||||||
var node: LineEdit = tbl.get_node2(col, i_row)
|
var node: LineEdit = tbl.get_node2(col, i_row)
|
||||||
node.editable = false
|
node.editable = false
|
||||||
|
|
||||||
|
|
||||||
|
func connect_all() -> void:
|
||||||
|
signal_conections.clear()
|
||||||
|
var table_index = SIGNALS_CONNECTIONS[0][3]
|
||||||
|
for item in SIGNALS_CONNECTIONS:
|
||||||
|
var proc = Callable(self, item[2]).bind(item[3])
|
||||||
|
var rc = item[0].connect(item[1], proc)
|
||||||
|
if rc == Error.OK:
|
||||||
|
signal_conections.append([item[0], item[1], proc])
|
||||||
|
else:
|
||||||
|
var ers = error_string(rc)
|
||||||
|
push_error('%s: %s %s %s' % [ers, item[0], item[1], item[2]])
|
||||||
|
signaller.emit_signal('connect_work_signal')
|
||||||
|
for ecm in ecms.values():
|
||||||
|
on_interfer_new(ecm, table_index)
|
||||||
|
|
||||||
|
|
||||||
|
func disconnect_all() -> void:
|
||||||
|
var table_index = SIGNALS_CONNECTIONS[0][3]
|
||||||
|
for item in signal_conections:
|
||||||
|
item[0].disconnect(item[1], item[2])
|
||||||
|
signal_conections.clear()
|
||||||
|
$table.clear_rows()
|
||||||
|
table_index.clear()
|
||||||
|
|
||||||
|
|
||||||
|
func on_interfer_resized(ecms_dic: Dictionary, _tbl_index) -> void:
|
||||||
|
ecms = ecms_dic
|
||||||
|
|||||||
Reference in New Issue
Block a user