forked from forth32/qhuaweiflash
-
Notifications
You must be signed in to change notification settings - Fork 0
/
MainWindow.h
150 lines (124 loc) · 4.11 KB
/
MainWindow.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#include <QtWidgets>
#include "ptable.h"
#include "hexeditor.h"
#include "kerneledit.h"
#include "nvdedit.h"
#include "cpio.h"
//******************************************************************************
//* Класс главного окна
//******************************************************************************
class MainWindow: public QMainWindow {
Q_OBJECT
QTableWidget* ptedit=0; // редактор таблицы разделов
QLineEdit* oemedit=0; // редактор oeminfo-разделов
QLabel* label=0;
QSpacerItem* spacer=0; // подпорка под короткие формы редакторов
hexeditor* hexedit=0;
kerneledit* kedit=0; // редактор разделов kernel
nvdedit* nvedit=0; // редактор разделов kernel
cpioedit* cpio=0; // редактор файловых разделов
bool modified=false;
// Хранилище настроек
QSettings* config;
int hrow=-1; // строка списка разделов, соответствующая текущему заголовку
int structure_mode_save=-1; // предыдущее состояние переключателя дамп-формат
enum parttypes partmode=part_bin;
public:
MainWindow(QString startfile);
virtual ~MainWindow();
// Базовый виджет - вертикальный сплиттер
QSplitter *centralwidget;
// Иконка главного окна
QIcon icon;
// Обработчики меню
QAction *fileopen;
QAction *fileappend;
QAction *part_store;
QAction *part_extract;
QAction *part_replace;
QAction *file_exit;
QAction *filesave;
QAction *MoveUp;
QAction *MoveDown;
QAction *Delete;
QAction *part_copy_header;
QAction *Menu_Oper_flash;
QAction *Menu_Oper_USBDload;
QAction *Menu_Oper_Reboot;
QAction *Menu_Oper_signinfo;
// Элементы интерфейса
// Элементы редактора заголовка
QWidget* hdrpanel; // корневой виджет
QVBoxLayout* vlhdr; // основной вертикальный компоновщик
QLabel* hdlbl1;
QListWidget *partlist; // список разделов
QLabel* hdlbl2;
QFormLayout* lphdr; // редакторы полей заголовка
QLineEdit *Date_input;
QLineEdit *Time_input;
QToolButton *setdate;
QComboBox* dload_id_selector;
QCheckBox* zflag_selector;
QLineEdit *Version_input;
QLineEdit *pcode;
QLabel* hdlbl3;
QLineEdit *Platform_input;
// Элементы редактора раздела
QWidget* edpanel;
QVBoxLayout* EditorLayout;
// Кнопки сырой-форматный
QBoxLayout* laymode;
QGroupBox *modebuttons;
QRadioButton *dump_mode;
QRadioButton *structure_mode;
// линия-разделитель
QFrame* hframe;
// Главное меню
QMenuBar *menubar;
QMenu *menu_file;
QMenu *menu_oper;
QMenu *menu_part;
// Статусбар
QStatusBar* statusbar;
// Выбор порта
QLabel* plbl;
QComboBox *PortSelector;
QToolButton *RefreshPorts;
void open_recent(int n);
void settitle() {setWindowTitle("Huawei firmware editor/flasher");}
void ask_save();
void removeEditor();
// Слоты обработчиков главного меню
public slots:
void SelectFwFile(); // выбор файла
void AppendFwFile(); // добавление файла
void SaveFwFile(); // запись полного образа на диск
void save_as();
void OpenFwFile(QString filename); // открытие файла прошивки
void SelectPart(); // выбор раздела прошивки
void Menu_Part_Store();
void Menu_Part_Extract();
void Menu_Part_Replace();
void Menu_Part_Delete();
void Menu_Part_MoveUp();
void Menu_Part_MoveDown();
void Terminate() { QCoreApplication::quit(); }
void regenerate_partlist();
void Menu_Part_EditHeader();
void Disable_EditHeader();
void HeaderChanged();
void DataChanged();
void Start_Flasher();
void Reboot_modem();
void usbdload();
void find_ports();
void EnableMenu();
void set_date();
void ShowSignInfo();
void HeadCopy();
void open_recent_file();
void setModified();
};
// Независимые от лкасса обработчики
void head_copy();
extern MainWindow* mw;