переструктурирвоаны исходники проекта
This commit is contained in:
parent
abfc507e4e
commit
c32dc161f8
BIN
DebugVarEdit.exe
BIN
DebugVarEdit.exe
Binary file not shown.
16
README.md
16
README.md
@ -86,15 +86,15 @@
|
||||
```bash
|
||||
Src
|
||||
├── DebugVarEdit_GUI.py # Главное окно
|
||||
├── VariableTable.py # Таблица выбранных переменных
|
||||
├── VariableSelector.py # Окно выбора переменных
|
||||
├── selectTable.py # Таблица переменных в окне выбора переменных
|
||||
├── scanVarGUI.py # Отображение процесса сканирования переменных
|
||||
├── scanVar.py # Сканирование переменных среди .c/.h файлов
|
||||
├── generateVars.py # Генерация debug_vars.c
|
||||
├── var_table.py # Таблица выбранных переменных
|
||||
├── var_selector_window.py # Окно выбора переменных
|
||||
├── var_selector_table.py # Таблица переменных в окне выбора переменных
|
||||
├── scan_progress_gui.py # Отображение процесса сканирования переменных
|
||||
├── scan_vars.py # Сканирование переменных среди .c/.h файлов
|
||||
├── generate_debug_vars.py # Генерация debug_vars.c
|
||||
├── myXML.py # Утилиты для XML
|
||||
├── parseMakefile.py # Парсинг makefile на .c/.h файлы
|
||||
├── setupVars.py # Подготовка переменных для окна выбора переменных
|
||||
├── makefile_parser.py # Парсинг makefile на .c/.h файлы
|
||||
├── var_setup.py # Подготовка переменных для окна выбора переменных
|
||||
├── libclang.dll # Бибилиотека clang
|
||||
├── icon.ico # Иконка
|
||||
build
|
||||
|
@ -1,19 +1,19 @@
|
||||
# build command
|
||||
# pyinstaller --onefile --name DebugVarEdit --add-binary "build/libclang.dll;build" --distpath ./ --workpath ./build_temp --specpath ./build_temp setupVars_GUI.py
|
||||
# pyinstaller --onefile --name DebugVarEdit --add-binary "build/libclang.dll;build" --distpath ./ --workpath ./build_temp --specpath ./build_temp var_setup_GUI.py
|
||||
|
||||
import sys
|
||||
import os
|
||||
import subprocess
|
||||
import lxml.etree as ET
|
||||
from generateVars import type_map
|
||||
from generate_debug_vars import type_map
|
||||
from enum import IntEnum
|
||||
import threading
|
||||
from generateVars import run_generate
|
||||
import setupVars
|
||||
from VariableSelector import VariableSelectorDialog
|
||||
from VariableTable import VariableTableWidget, rows
|
||||
from scanVarGUI import ProcessOutputWindow
|
||||
import scanVars
|
||||
from generate_debug_vars import run_generate
|
||||
import var_setup
|
||||
from var_selector_window import var_selector_windowDialog
|
||||
from var_table import var_tableWidget, rows
|
||||
from scan_progress_gui import ProcessOutputWindow
|
||||
import scan_vars
|
||||
import myXML
|
||||
import time
|
||||
|
||||
@ -63,7 +63,7 @@ class VarEditor(QWidget):
|
||||
def initUI(self):
|
||||
self.setWindowTitle(var_edit_title)
|
||||
|
||||
base_path = scanVars.get_base_path()
|
||||
base_path = scan_vars.get_base_path()
|
||||
icon_path = os.path.join(base_path, "icon.ico")
|
||||
if os.path.exists(icon_path):
|
||||
self.setWindowIcon(QIcon(icon_path))
|
||||
@ -134,7 +134,7 @@ class VarEditor(QWidget):
|
||||
btn_open_output = QPushButton(open_output_title)
|
||||
btn_open_output.clicked.connect(self.__open_output_file_with_program)
|
||||
# Таблица
|
||||
self.table = VariableTableWidget()
|
||||
self.table = var_tableWidget()
|
||||
# Основной layout
|
||||
layout = QVBoxLayout()
|
||||
layout.addLayout(xml_layout)
|
||||
@ -208,7 +208,7 @@ class VarEditor(QWidget):
|
||||
|
||||
# Создаём окно с кнопкой "Готово"
|
||||
self.proc_win = ProcessOutputWindow(self.proj_path, self.makefile_path, self.xml_path,
|
||||
on_done_callback=self.__after_scanvars_finished)
|
||||
on_done_callback=self.__after_scan_vars_finished)
|
||||
self.proc_win.start_scan()
|
||||
|
||||
|
||||
@ -302,11 +302,11 @@ class VarEditor(QWidget):
|
||||
structs_path_full = myXML.make_absolute_path(structs_path, self.proj_path)
|
||||
if structs_path_full and os.path.isfile(structs_path_full):
|
||||
self.structs_path = structs_path_full
|
||||
self.structs, self.typedef_map = setupVars.parse_structs(structs_path_full)
|
||||
self.structs, self.typedef_map = var_setup.parse_structs(structs_path_full)
|
||||
else:
|
||||
self.structs_path = None
|
||||
|
||||
self.vars_list = setupVars.parse_vars(self.xml_path, self.typedef_map)
|
||||
self.vars_list = var_setup.parse_vars(self.xml_path, self.typedef_map)
|
||||
self.table.populate(self.vars_list, self.structs, self.write_to_xml)
|
||||
except Exception as e:
|
||||
QMessageBox.warning(self, "Ошибка", f"Ошибка при чтении XML:\n{e}")
|
||||
@ -404,7 +404,7 @@ class VarEditor(QWidget):
|
||||
self.update()
|
||||
|
||||
|
||||
def __after_scanvars_finished(self):
|
||||
def __after_scan_vars_finished(self):
|
||||
if not os.path.isfile(self.xml_path):
|
||||
self.makefile_path = None
|
||||
self.structs_path = None
|
||||
@ -443,7 +443,7 @@ class VarEditor(QWidget):
|
||||
QMessageBox.warning(self, "Нет переменных", f"Сначала загрузите переменные ({scan_title}).")
|
||||
return
|
||||
|
||||
dlg = VariableSelectorDialog(self.table, self.vars_list, self.structs, self.typedef_map, self.xml_path, self)
|
||||
dlg = var_selector_windowDialog(self.table, self.vars_list, self.structs, self.typedef_map, self.xml_path, self)
|
||||
if dlg.exec_():
|
||||
self.write_to_xml()
|
||||
self.update()
|
||||
|
@ -1,7 +1,7 @@
|
||||
# build command
|
||||
# pyinstaller --onefile --distpath . --workpath ./build --specpath ./build generateVars.py
|
||||
# pyinstaller --onefile --distpath . --workpath ./build --specpath ./build generate_debug_vars.py
|
||||
# start script
|
||||
# generateVars.exe F:\Work\Projects\TMS\TMS_new_bus\ Src/DebugTools/vars.xml Src/DebugTools
|
||||
# generate_debug_vars.exe F:\Work\Projects\TMS\TMS_new_bus\ Src/DebugTools/vars.xml Src/DebugTools
|
||||
|
||||
import sys
|
||||
import os
|
@ -6,8 +6,8 @@ import sys
|
||||
import contextlib
|
||||
import io
|
||||
import json
|
||||
from scanVars import run_scan
|
||||
from VariableTable import VariableTableWidget, rows
|
||||
from scan_vars import run_scan
|
||||
from var_table import var_tableWidget, rows
|
||||
|
||||
from PySide2.QtWidgets import (
|
||||
QApplication, QWidget, QTableWidget, QTableWidgetItem,
|
@ -1,7 +1,7 @@
|
||||
# build command
|
||||
# pyinstaller --onefile scanVars.py --add-binary "F:\Work\Projects\TMS\TMS_new_bus\Src\DebugTools/build/libclang.dll;." --distpath . --workpath ./build --specpath ./build
|
||||
# pyinstaller --onefile scan_vars.py --add-binary "F:\Work\Projects\TMS\TMS_new_bus\Src\DebugTools/build/libclang.dll;." --distpath . --workpath ./build --specpath ./build
|
||||
# start script
|
||||
# scanVars.exe F:\Work\Projects\TMS\TMS_new_bus\ F:\Work\Projects\TMS\TMS_new_bus\Debug\makefile
|
||||
# scan_vars.exe F:\Work\Projects\TMS\TMS_new_bus\ F:\Work\Projects\TMS\TMS_new_bus\Debug\makefile
|
||||
|
||||
import os
|
||||
import sys
|
||||
@ -11,7 +11,7 @@ from clang import cindex
|
||||
from clang.cindex import Config
|
||||
import lxml.etree as ET
|
||||
from xml.dom import minidom
|
||||
from parseMakefile import parse_makefile
|
||||
from makefile_parser import parse_makefile
|
||||
from collections import deque
|
||||
import argparse
|
||||
import myXML
|
@ -6,16 +6,16 @@ from PySide2.QtWidgets import (
|
||||
)
|
||||
from PySide2.QtGui import QKeySequence, QKeyEvent
|
||||
from PySide2.QtCore import Qt, QStringListModel, QSettings
|
||||
import VariableTable
|
||||
import setupVars
|
||||
import var_table
|
||||
import var_setup
|
||||
import myXML
|
||||
import time
|
||||
import selectTable
|
||||
import var_selector_table
|
||||
|
||||
|
||||
array_re = re.compile(r'^(\w+)\[(\d+)\]$')
|
||||
|
||||
class VariableSelectorDialog(QDialog):
|
||||
class var_selector_windowDialog(QDialog):
|
||||
def __init__(self, table, all_vars, structs, typedefs, xml_path=None, parent=None):
|
||||
super().__init__(parent)
|
||||
self.setWindowTitle("Выбор переменных")
|
||||
@ -55,10 +55,10 @@ class VariableSelectorDialog(QDialog):
|
||||
self.btn_accept = QPushButton("Применить")
|
||||
|
||||
# Создаем экземпляр вашего готового виджета
|
||||
self.vars_widget = selectTable.VariableSelectWidget(self)
|
||||
self.vars_widget = var_selector_table.VariableSelectWidget(self)
|
||||
self.vars_widget.tree.itemDoubleClicked.connect(self.on_left_tree_double_click)
|
||||
self.vars_widget.setObjectName("LeftTable")
|
||||
self.selected_vars_widget = selectTable.VariableSelectWidget(self)
|
||||
self.selected_vars_widget = var_selector_table.VariableSelectWidget(self)
|
||||
self.selected_vars_widget.tree.itemDoubleClicked.connect(self.on_rigth_tree_double_click)
|
||||
self.selected_vars_widget.setObjectName("RightTable")
|
||||
|
||||
@ -107,7 +107,7 @@ class VariableSelectorDialog(QDialog):
|
||||
self.selected_vars_widget.set_autocomplete(self.autocomplete_checkbox.isChecked())
|
||||
|
||||
# --- Код в конце __init__ ---
|
||||
self.expanded_vars = setupVars.expand_vars(self.all_vars, self.structs, self.typedefs)
|
||||
self.expanded_vars = var_setup.expand_vars(self.all_vars, self.structs, self.typedefs)
|
||||
self.update_vars_widget()
|
||||
|
||||
def on_move_right(self):
|
||||
@ -147,7 +147,7 @@ class VariableSelectorDialog(QDialog):
|
||||
t_start = time.perf_counter()
|
||||
|
||||
t1 = time.perf_counter()
|
||||
self.selected_vars, self.unselected_vars = setupVars.split_vars_by_show_flag(self.expanded_vars)
|
||||
self.selected_vars, self.unselected_vars = var_setup.split_vars_by_show_flag(self.expanded_vars)
|
||||
|
||||
t2 = time.perf_counter()
|
||||
self.vars_widget.set_data(self.unselected_vars)
|
@ -2,9 +2,9 @@ import sys
|
||||
import os
|
||||
import re
|
||||
import lxml.etree as ET
|
||||
from generateVars import map_type_to_pt, get_iq_define, type_map
|
||||
from generate_debug_vars import map_type_to_pt, get_iq_define, type_map
|
||||
from enum import IntEnum
|
||||
import scanVars
|
||||
import scan_vars
|
||||
import myXML
|
||||
import pickle
|
||||
|
||||
@ -291,7 +291,7 @@ def expand_struct_recursively(prefix, type_str, structs, typedefs, var_attrs, de
|
||||
return process_array(prefix, type_str, structs, typedefs, var_attrs, depth)
|
||||
|
||||
# Ищем структуру по имени типа
|
||||
base_type = scanVars.strip_ptr_and_array(type_str)
|
||||
base_type = scan_vars.strip_ptr_and_array(type_str)
|
||||
fields = structs.get(base_type)
|
||||
if not isinstance(fields, dict):
|
||||
# Не структура и не массив — просто возвращаем пустой список
|
@ -6,7 +6,7 @@ from PySide2.QtWidgets import (
|
||||
from PySide2.QtGui import QColor, QBrush, QPalette
|
||||
from PySide2.QtCore import Qt
|
||||
from enum import IntEnum
|
||||
from generateVars import type_map
|
||||
from generate_debug_vars import type_map
|
||||
import time
|
||||
from typing import Dict, List
|
||||
|
||||
@ -61,7 +61,7 @@ class FilterDialog(QDialog):
|
||||
|
||||
|
||||
|
||||
class VariableTableWidget(QTableWidget):
|
||||
class var_tableWidget(QTableWidget):
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(0, 8, parent)
|
||||
# Таблица переменных
|
Loading…
Reference in New Issue
Block a user