hardsploit_gui 2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +22 -0
  3. data/Rakefile +1 -0
  4. data/bin/hardsploit_gui +3 -0
  5. data/lib/Firmware/FPGA/I2C/I2C_INTERACT/HARDSPLOIT_FIRMWARE_FPGA_I2C_INTERACT.rpd +0 -0
  6. data/lib/Firmware/FPGA/PARALLEL/NO_MUX_PARALLEL_MEMORY/HARDSPLOIT_FIRMWARE_FPGA_NO_MUX_PARALLEL_MEMORY.rpd +0 -0
  7. data/lib/Firmware/FPGA/SPI/SPI_INTERACT/HARDSPLOIT_FIRMWARE_FPGA_SPI_INTERACT.rpd +0 -0
  8. data/lib/Firmware/FPGA/SWD/SWD_INTERACT/HARDSPLOIT_FIRMWARE_FPGA_SWD_INTERACT.rpd +0 -0
  9. data/lib/Firmware/FPGA/TEST/TEST_INTERACT/HARDSPLOIT_FIRMWARE_FPGA_TEST_INTERACT.rpd +0 -0
  10. data/lib/Firmware/FPGA/VersionFPGA.rb +5 -0
  11. data/lib/Firmware/UC/HARDSPLOIT_FIRMWARE_UC.bin +0 -0
  12. data/lib/Firmware/UC/VersionUC.rb +12 -0
  13. data/lib/HardsploitAPI/HardsploitAPI.rb +134 -0
  14. data/lib/HardsploitAPI/HardsploitAPI_CONSTANT.rb +145 -0
  15. data/lib/HardsploitAPI/HardsploitAPI_FIRMWARE.rb +311 -0
  16. data/lib/HardsploitAPI/HardsploitAPI_I2C.rb +218 -0
  17. data/lib/HardsploitAPI/HardsploitAPI_NO_MUX_PARALLELE_MEMORY.rb +229 -0
  18. data/lib/HardsploitAPI/HardsploitAPI_SPI.rb +179 -0
  19. data/lib/HardsploitAPI/HardsploitAPI_TEST_INTERACT.rb +98 -0
  20. data/lib/HardsploitAPI/HardsploitAPI_USB_COMMUNICATION.rb +149 -0
  21. data/lib/HardsploitAPI/LICENSE.txt +674 -0
  22. data/lib/HardsploitAPI/README.md +22 -0
  23. data/lib/HardsploitAPI/SWD/HardsploitAPI_SWD.rb +249 -0
  24. data/lib/HardsploitAPI/SWD/HardsploitAPI_SWD_DEBUG.rb +102 -0
  25. data/lib/HardsploitAPI/SWD/HardsploitAPI_SWD_MEM_AP.rb +78 -0
  26. data/lib/HardsploitAPI/SWD/HardsploitAPI_SWD_STM32.rb +104 -0
  27. data/lib/HardsploitAPI/TRADEMARK +3 -0
  28. data/lib/LICENSE.txt +674 -0
  29. data/lib/README.md +22 -0
  30. data/lib/TRADEMARK +3 -0
  31. data/lib/class/Chip_editor.rb +448 -0
  32. data/lib/class/Command_editor.rb +268 -0
  33. data/lib/class/Command_table.rb +239 -0
  34. data/lib/class/Console.rb +28 -0
  35. data/lib/class/Export_manager.rb +124 -0
  36. data/lib/class/Firmware.rb +29 -0
  37. data/lib/class/Generic_commands.rb +275 -0
  38. data/lib/class/HardsploitGUI.rb +462 -0
  39. data/lib/class/I2C/I2c_command.rb +48 -0
  40. data/lib/class/I2C/I2c_export.rb +121 -0
  41. data/lib/class/I2C/I2c_import.rb +92 -0
  42. data/lib/class/I2C/I2c_settings.rb +117 -0
  43. data/lib/class/PARALLEL/Parallel_export.rb +146 -0
  44. data/lib/class/PARALLEL/Parallel_import.rb +88 -0
  45. data/lib/class/PARALLEL/Parallel_settings.rb +102 -0
  46. data/lib/class/SPI/Spi_export.rb +141 -0
  47. data/lib/class/SPI/Spi_import.rb +112 -0
  48. data/lib/class/SPI/Spi_settings.rb +90 -0
  49. data/lib/class/Wire_helper.rb +246 -0
  50. data/lib/db/associations.rb +125 -0
  51. data/lib/db/hs.db +0 -0
  52. data/lib/gui/gui_chip_editor.rb +355 -0
  53. data/lib/gui/gui_chip_management.rb +372 -0
  54. data/lib/gui/gui_command_editor.rb +218 -0
  55. data/lib/gui/gui_export_manager.rb +93 -0
  56. data/lib/gui/gui_generic_commands.rb +164 -0
  57. data/lib/gui/gui_generic_export.rb +148 -0
  58. data/lib/gui/gui_generic_import.rb +126 -0
  59. data/lib/gui/gui_i2c_command.rb +115 -0
  60. data/lib/gui/gui_i2c_settings.rb +201 -0
  61. data/lib/gui/gui_parallel_settings.rb +194 -0
  62. data/lib/gui/gui_spi_import.rb +126 -0
  63. data/lib/gui/gui_spi_settings.rb +187 -0
  64. data/lib/gui/gui_wire_helper.rb +99 -0
  65. data/lib/gui_designer/gui_chip_editor.ui +553 -0
  66. data/lib/gui_designer/gui_chip_management.ui +842 -0
  67. data/lib/gui_designer/gui_command_editor.ui +347 -0
  68. data/lib/gui_designer/gui_export_manager.ui +115 -0
  69. data/lib/gui_designer/gui_generic_commands.ui +258 -0
  70. data/lib/gui_designer/gui_generic_export.ui +179 -0
  71. data/lib/gui_designer/gui_generic_import.ui +142 -0
  72. data/lib/gui_designer/gui_i2c_command.ui +145 -0
  73. data/lib/gui_designer/gui_i2c_settings.ui +261 -0
  74. data/lib/gui_designer/gui_parallel_settings.ui +244 -0
  75. data/lib/gui_designer/gui_processing.ui +81 -0
  76. data/lib/gui_designer/gui_spi_settings.ui +321 -0
  77. data/lib/gui_designer/gui_wire_helper.ui +117 -0
  78. data/lib/hardsploit.rb +122 -0
  79. data/lib/images/search.png +0 -0
  80. data/lib/logs/error.log +0 -0
  81. metadata +236 -0
@@ -0,0 +1,145 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ui version="4.0">
3
+ <class>I2c_command</class>
4
+ <widget class="QWidget" name="I2c_command">
5
+ <property name="geometry">
6
+ <rect>
7
+ <x>0</x>
8
+ <y>0</y>
9
+ <width>287</width>
10
+ <height>103</height>
11
+ </rect>
12
+ </property>
13
+ <property name="windowTitle">
14
+ <string>Hardsploit - I2C Command</string>
15
+ </property>
16
+ <layout class="QGridLayout" name="gridLayout">
17
+ <item row="1" column="0">
18
+ <layout class="QFormLayout" name="fl">
19
+ <item row="0" column="0">
20
+ <widget class="QLabel" name="lbl_size">
21
+ <property name="text">
22
+ <string>Payload size:</string>
23
+ </property>
24
+ </widget>
25
+ </item>
26
+ <item row="0" column="1">
27
+ <widget class="QLineEdit" name="lie_size"/>
28
+ </item>
29
+ <item row="1" column="0">
30
+ <widget class="QLabel" name="lbl_type_cmd">
31
+ <property name="text">
32
+ <string>Command type:</string>
33
+ </property>
34
+ </widget>
35
+ </item>
36
+ <item row="1" column="1">
37
+ <widget class="QGroupBox" name="groupBox">
38
+ <property name="title">
39
+ <string/>
40
+ </property>
41
+ <widget class="QRadioButton" name="rbn_read">
42
+ <property name="geometry">
43
+ <rect>
44
+ <x>10</x>
45
+ <y>-4</y>
46
+ <width>61</width>
47
+ <height>31</height>
48
+ </rect>
49
+ </property>
50
+ <property name="text">
51
+ <string>Read</string>
52
+ </property>
53
+ <property name="checked">
54
+ <bool>true</bool>
55
+ </property>
56
+ </widget>
57
+ <widget class="QRadioButton" name="rbn_write">
58
+ <property name="geometry">
59
+ <rect>
60
+ <x>90</x>
61
+ <y>0</y>
62
+ <width>61</width>
63
+ <height>21</height>
64
+ </rect>
65
+ </property>
66
+ <property name="text">
67
+ <string>Write</string>
68
+ </property>
69
+ </widget>
70
+ </widget>
71
+ </item>
72
+ </layout>
73
+ </item>
74
+ <item row="2" column="0">
75
+ <layout class="QHBoxLayout" name="hl">
76
+ <item>
77
+ <spacer name="hs">
78
+ <property name="orientation">
79
+ <enum>Qt::Horizontal</enum>
80
+ </property>
81
+ <property name="sizeHint" stdset="0">
82
+ <size>
83
+ <width>40</width>
84
+ <height>20</height>
85
+ </size>
86
+ </property>
87
+ </spacer>
88
+ </item>
89
+ <item>
90
+ <widget class="QPushButton" name="btn_cancel">
91
+ <property name="text">
92
+ <string>Cancel</string>
93
+ </property>
94
+ </widget>
95
+ </item>
96
+ <item>
97
+ <widget class="QPushButton" name="bnt_new_cmd">
98
+ <property name="text">
99
+ <string>Open</string>
100
+ </property>
101
+ </widget>
102
+ </item>
103
+ </layout>
104
+ </item>
105
+ </layout>
106
+ </widget>
107
+ <resources/>
108
+ <connections>
109
+ <connection>
110
+ <sender>btn_cancel</sender>
111
+ <signal>clicked()</signal>
112
+ <receiver>I2c_command</receiver>
113
+ <slot>close()</slot>
114
+ <hints>
115
+ <hint type="sourcelabel">
116
+ <x>110</x>
117
+ <y>74</y>
118
+ </hint>
119
+ <hint type="destinationlabel">
120
+ <x>251</x>
121
+ <y>80</y>
122
+ </hint>
123
+ </hints>
124
+ </connection>
125
+ <connection>
126
+ <sender>bnt_new_cmd</sender>
127
+ <signal>clicked()</signal>
128
+ <receiver>I2c_command</receiver>
129
+ <slot>open_generic_cmd()</slot>
130
+ <hints>
131
+ <hint type="sourcelabel">
132
+ <x>234</x>
133
+ <y>67</y>
134
+ </hint>
135
+ <hint type="destinationlabel">
136
+ <x>254</x>
137
+ <y>50</y>
138
+ </hint>
139
+ </hints>
140
+ </connection>
141
+ </connections>
142
+ <slots>
143
+ <slot>open_generic_cmd()</slot>
144
+ </slots>
145
+ </ui>
@@ -0,0 +1,261 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ui version="4.0">
3
+ <class>I2c_settings</class>
4
+ <widget class="QWidget" name="I2c_settings">
5
+ <property name="geometry">
6
+ <rect>
7
+ <x>0</x>
8
+ <y>0</y>
9
+ <width>358</width>
10
+ <height>396</height>
11
+ </rect>
12
+ </property>
13
+ <property name="windowTitle">
14
+ <string>Hardsploit - I²C settings</string>
15
+ </property>
16
+ <layout class="QGridLayout" name="gridLayout">
17
+ <item row="0" column="0">
18
+ <layout class="QVBoxLayout" name="vl">
19
+ <item>
20
+ <layout class="QHBoxLayout" name="hl2">
21
+ <item>
22
+ <widget class="QLabel" name="lbl_chip">
23
+ <property name="text">
24
+ <string>[CHIP]</string>
25
+ </property>
26
+ </widget>
27
+ </item>
28
+ <item>
29
+ <widget class="QLabel" name="lbl_parameters">
30
+ <property name="text">
31
+ <string>PARAMETERS</string>
32
+ </property>
33
+ </widget>
34
+ </item>
35
+ <item>
36
+ <spacer name="hs2">
37
+ <property name="orientation">
38
+ <enum>Qt::Horizontal</enum>
39
+ </property>
40
+ <property name="sizeHint" stdset="0">
41
+ <size>
42
+ <width>40</width>
43
+ <height>20</height>
44
+ </size>
45
+ </property>
46
+ </spacer>
47
+ </item>
48
+ </layout>
49
+ </item>
50
+ <item>
51
+ <layout class="QFormLayout" name="fl">
52
+ <item row="1" column="0">
53
+ <widget class="QLabel" name="lbl_address_w">
54
+ <property name="text">
55
+ <string>Base address (W):</string>
56
+ </property>
57
+ </widget>
58
+ </item>
59
+ <item row="1" column="1">
60
+ <widget class="QLineEdit" name="lie_address_w">
61
+ <property name="maxLength">
62
+ <number>2</number>
63
+ </property>
64
+ <property name="placeholderText">
65
+ <string>in hexadecimal</string>
66
+ </property>
67
+ </widget>
68
+ </item>
69
+ <item row="2" column="0">
70
+ <widget class="QLabel" name="lbl_address_r">
71
+ <property name="text">
72
+ <string>Base address (R):</string>
73
+ </property>
74
+ </widget>
75
+ </item>
76
+ <item row="2" column="1">
77
+ <widget class="QLineEdit" name="lie_address_r">
78
+ <property name="maxLength">
79
+ <number>2</number>
80
+ </property>
81
+ <property name="placeholderText">
82
+ <string>in hexadecimal</string>
83
+ </property>
84
+ </widget>
85
+ </item>
86
+ <item row="3" column="0">
87
+ <widget class="QLabel" name="lbl_frequency">
88
+ <property name="text">
89
+ <string>Frequency (Khz):</string>
90
+ </property>
91
+ </widget>
92
+ </item>
93
+ <item row="3" column="1">
94
+ <widget class="QComboBox" name="cbx_frequency">
95
+ <item>
96
+ <property name="text">
97
+ <string>100</string>
98
+ </property>
99
+ </item>
100
+ <item>
101
+ <property name="text">
102
+ <string>400</string>
103
+ </property>
104
+ </item>
105
+ <item>
106
+ <property name="text">
107
+ <string>1000</string>
108
+ </property>
109
+ </item>
110
+ </widget>
111
+ </item>
112
+ <item row="4" column="0">
113
+ <widget class="QLabel" name="lbl_full_size">
114
+ <property name="text">
115
+ <string>Total size:</string>
116
+ </property>
117
+ </widget>
118
+ </item>
119
+ <item row="4" column="1">
120
+ <widget class="QLineEdit" name="lie_total_size">
121
+ <property name="placeholderText">
122
+ <string>in octet, to a maximum of 4Go</string>
123
+ </property>
124
+ </widget>
125
+ </item>
126
+ <item row="5" column="0">
127
+ <widget class="QLabel" name="lbl_bus_scan">
128
+ <property name="text">
129
+ <string>Bus scan:</string>
130
+ </property>
131
+ </widget>
132
+ </item>
133
+ <item row="5" column="1">
134
+ <widget class="QPushButton" name="btn_bus_scan">
135
+ <property name="text">
136
+ <string>Launch</string>
137
+ </property>
138
+ </widget>
139
+ </item>
140
+ </layout>
141
+ </item>
142
+ <item>
143
+ <widget class="QTableWidget" name="tbl_bus_scan">
144
+ <attribute name="horizontalHeaderDefaultSectionSize">
145
+ <number>85</number>
146
+ </attribute>
147
+ <attribute name="horizontalHeaderStretchLastSection">
148
+ <bool>true</bool>
149
+ </attribute>
150
+ <attribute name="verticalHeaderVisible">
151
+ <bool>false</bool>
152
+ </attribute>
153
+ <column>
154
+ <property name="text">
155
+ <string>Address</string>
156
+ </property>
157
+ </column>
158
+ <column>
159
+ <property name="text">
160
+ <string>R/W</string>
161
+ </property>
162
+ </column>
163
+ </widget>
164
+ </item>
165
+ <item>
166
+ <layout class="QHBoxLayout" name="hl">
167
+ <item>
168
+ <spacer name="hs">
169
+ <property name="orientation">
170
+ <enum>Qt::Horizontal</enum>
171
+ </property>
172
+ <property name="sizeHint" stdset="0">
173
+ <size>
174
+ <width>40</width>
175
+ <height>20</height>
176
+ </size>
177
+ </property>
178
+ </spacer>
179
+ </item>
180
+ <item>
181
+ <widget class="QPushButton" name="btn_cancel">
182
+ <property name="text">
183
+ <string>Close</string>
184
+ </property>
185
+ </widget>
186
+ </item>
187
+ <item>
188
+ <widget class="QPushButton" name="btn_save">
189
+ <property name="maximumSize">
190
+ <size>
191
+ <width>16777215</width>
192
+ <height>16777215</height>
193
+ </size>
194
+ </property>
195
+ <property name="text">
196
+ <string>Save</string>
197
+ </property>
198
+ </widget>
199
+ </item>
200
+ </layout>
201
+ </item>
202
+ </layout>
203
+ </item>
204
+ </layout>
205
+ </widget>
206
+ <resources/>
207
+ <connections>
208
+ <connection>
209
+ <sender>btn_cancel</sender>
210
+ <signal>clicked()</signal>
211
+ <receiver>I2c_settings</receiver>
212
+ <slot>close()</slot>
213
+ <hints>
214
+ <hint type="sourcelabel">
215
+ <x>265</x>
216
+ <y>384</y>
217
+ </hint>
218
+ <hint type="destinationlabel">
219
+ <x>357</x>
220
+ <y>130</y>
221
+ </hint>
222
+ </hints>
223
+ </connection>
224
+ <connection>
225
+ <sender>btn_save</sender>
226
+ <signal>clicked()</signal>
227
+ <receiver>I2c_settings</receiver>
228
+ <slot>save_settings()</slot>
229
+ <hints>
230
+ <hint type="sourcelabel">
231
+ <x>346</x>
232
+ <y>384</y>
233
+ </hint>
234
+ <hint type="destinationlabel">
235
+ <x>357</x>
236
+ <y>169</y>
237
+ </hint>
238
+ </hints>
239
+ </connection>
240
+ <connection>
241
+ <sender>btn_bus_scan</sender>
242
+ <signal>clicked()</signal>
243
+ <receiver>I2c_settings</receiver>
244
+ <slot>bus_scan()</slot>
245
+ <hints>
246
+ <hint type="sourcelabel">
247
+ <x>338</x>
248
+ <y>158</y>
249
+ </hint>
250
+ <hint type="destinationlabel">
251
+ <x>356</x>
252
+ <y>90</y>
253
+ </hint>
254
+ </hints>
255
+ </connection>
256
+ </connections>
257
+ <slots>
258
+ <slot>save_settings()</slot>
259
+ <slot>bus_scan()</slot>
260
+ </slots>
261
+ </ui>
@@ -0,0 +1,244 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ui version="4.0">
3
+ <class>Parallel_settings</class>
4
+ <widget class="QWidget" name="Parallel_settings">
5
+ <property name="geometry">
6
+ <rect>
7
+ <x>0</x>
8
+ <y>0</y>
9
+ <width>384</width>
10
+ <height>216</height>
11
+ </rect>
12
+ </property>
13
+ <property name="windowTitle">
14
+ <string>Hardsploit - Parallel settings</string>
15
+ </property>
16
+ <layout class="QGridLayout" name="gridLayout">
17
+ <item row="1" column="0">
18
+ <layout class="QVBoxLayout" name="vl">
19
+ <item>
20
+ <layout class="QHBoxLayout" name="hl2">
21
+ <item>
22
+ <widget class="QLabel" name="lbl_chip">
23
+ <property name="text">
24
+ <string>[CHIP]</string>
25
+ </property>
26
+ </widget>
27
+ </item>
28
+ <item>
29
+ <widget class="QLabel" name="lbl_parameters">
30
+ <property name="text">
31
+ <string>PARAMETERS</string>
32
+ </property>
33
+ </widget>
34
+ </item>
35
+ <item>
36
+ <spacer name="hs2">
37
+ <property name="orientation">
38
+ <enum>Qt::Horizontal</enum>
39
+ </property>
40
+ <property name="sizeHint" stdset="0">
41
+ <size>
42
+ <width>40</width>
43
+ <height>20</height>
44
+ </size>
45
+ </property>
46
+ </spacer>
47
+ </item>
48
+ </layout>
49
+ </item>
50
+ <item>
51
+ <layout class="QFormLayout" name="fl">
52
+ <item row="1" column="0">
53
+ <widget class="QLabel" name="lbl_total_size">
54
+ <property name="text">
55
+ <string>Total size:</string>
56
+ </property>
57
+ </widget>
58
+ </item>
59
+ <item row="1" column="1">
60
+ <widget class="QLineEdit" name="lie_total_size">
61
+ <property name="text">
62
+ <string/>
63
+ </property>
64
+ <property name="maxLength">
65
+ <number>20</number>
66
+ </property>
67
+ <property name="placeholderText">
68
+ <string>in bytes</string>
69
+ </property>
70
+ </widget>
71
+ </item>
72
+ <item row="2" column="0">
73
+ <widget class="QLabel" name="lbl_latency">
74
+ <property name="text">
75
+ <string>Read latency:</string>
76
+ </property>
77
+ </widget>
78
+ </item>
79
+ <item row="2" column="1">
80
+ <widget class="QLineEdit" name="lie_read_latency">
81
+ <property name="maxLength">
82
+ <number>20</number>
83
+ </property>
84
+ <property name="placeholderText">
85
+ <string> 0 to 1600 nanosecondes</string>
86
+ </property>
87
+ </widget>
88
+ </item>
89
+ <item row="3" column="0">
90
+ <widget class="QLabel" name="lbl_write_latency">
91
+ <property name="text">
92
+ <string>Write latency</string>
93
+ </property>
94
+ </widget>
95
+ </item>
96
+ <item row="3" column="1">
97
+ <widget class="QLineEdit" name="lie_write_latency">
98
+ <property name="text">
99
+ <string/>
100
+ </property>
101
+ <property name="placeholderText">
102
+ <string>in nanosecondes</string>
103
+ </property>
104
+ </widget>
105
+ </item>
106
+ <item row="4" column="0">
107
+ <widget class="QLabel" name="lbl_word_size">
108
+ <property name="text">
109
+ <string>Word size:</string>
110
+ </property>
111
+ </widget>
112
+ </item>
113
+ <item row="4" column="1">
114
+ <widget class="QGroupBox" name="groupBox">
115
+ <property name="title">
116
+ <string/>
117
+ </property>
118
+ <widget class="QRadioButton" name="rbn_8b">
119
+ <property name="geometry">
120
+ <rect>
121
+ <x>0</x>
122
+ <y>0</y>
123
+ <width>71</width>
124
+ <height>20</height>
125
+ </rect>
126
+ </property>
127
+ <property name="text">
128
+ <string>8 bits</string>
129
+ </property>
130
+ </widget>
131
+ <widget class="QRadioButton" name="rbn_16b">
132
+ <property name="geometry">
133
+ <rect>
134
+ <x>80</x>
135
+ <y>0</y>
136
+ <width>81</width>
137
+ <height>21</height>
138
+ </rect>
139
+ </property>
140
+ <property name="text">
141
+ <string>16 bits</string>
142
+ </property>
143
+ </widget>
144
+ </widget>
145
+ </item>
146
+ <item row="5" column="0">
147
+ <widget class="QLabel" name="lbl_page_size">
148
+ <property name="text">
149
+ <string>Page size:</string>
150
+ </property>
151
+ </widget>
152
+ </item>
153
+ <item row="5" column="1">
154
+ <widget class="QLineEdit" name="lie_page_size">
155
+ <property name="text">
156
+ <string/>
157
+ </property>
158
+ <property name="placeholderText">
159
+ <string>in bytes</string>
160
+ </property>
161
+ </widget>
162
+ </item>
163
+ </layout>
164
+ </item>
165
+ <item>
166
+ <layout class="QHBoxLayout" name="hl">
167
+ <item>
168
+ <spacer name="hs">
169
+ <property name="orientation">
170
+ <enum>Qt::Horizontal</enum>
171
+ </property>
172
+ <property name="sizeHint" stdset="0">
173
+ <size>
174
+ <width>40</width>
175
+ <height>20</height>
176
+ </size>
177
+ </property>
178
+ </spacer>
179
+ </item>
180
+ <item>
181
+ <widget class="QPushButton" name="btn_cancel">
182
+ <property name="text">
183
+ <string>Cancel</string>
184
+ </property>
185
+ </widget>
186
+ </item>
187
+ <item>
188
+ <widget class="QPushButton" name="btn_save">
189
+ <property name="maximumSize">
190
+ <size>
191
+ <width>16777215</width>
192
+ <height>16777215</height>
193
+ </size>
194
+ </property>
195
+ <property name="text">
196
+ <string>Save</string>
197
+ </property>
198
+ </widget>
199
+ </item>
200
+ </layout>
201
+ </item>
202
+ </layout>
203
+ </item>
204
+ </layout>
205
+ </widget>
206
+ <resources/>
207
+ <connections>
208
+ <connection>
209
+ <sender>btn_cancel</sender>
210
+ <signal>clicked()</signal>
211
+ <receiver>Parallel_settings</receiver>
212
+ <slot>close()</slot>
213
+ <hints>
214
+ <hint type="sourcelabel">
215
+ <x>412</x>
216
+ <y>201</y>
217
+ </hint>
218
+ <hint type="destinationlabel">
219
+ <x>540</x>
220
+ <y>121</y>
221
+ </hint>
222
+ </hints>
223
+ </connection>
224
+ <connection>
225
+ <sender>btn_save</sender>
226
+ <signal>clicked()</signal>
227
+ <receiver>Parallel_settings</receiver>
228
+ <slot>save_settings()</slot>
229
+ <hints>
230
+ <hint type="sourcelabel">
231
+ <x>526</x>
232
+ <y>193</y>
233
+ </hint>
234
+ <hint type="destinationlabel">
235
+ <x>541</x>
236
+ <y>163</y>
237
+ </hint>
238
+ </hints>
239
+ </connection>
240
+ </connections>
241
+ <slots>
242
+ <slot>save_settings()</slot>
243
+ </slots>
244
+ </ui>