Skip to content

Commit cad906b

Browse files
committed
Refactored layout of EnginesStandaloneGui with QGridLayout and adjustments to spacing and sizes of widgets
1 parent 9b59ed6 commit cad906b

1 file changed

Lines changed: 45 additions & 38 deletions

File tree

  • Core/engines_loader/engines_only_mod

Core/engines_loader/engines_only_mod/gui.py

Lines changed: 45 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -190,13 +190,17 @@ def _setup_ui(self):
190190

191191
# === Section Configuration (gauche) ===
192192
config_container = QWidget()
193-
config_layout = QVBoxLayout(config_container)
194-
config_layout.setSpacing(10)
193+
config_layout = QGridLayout(config_container)
194+
config_layout.setSpacing(15)
195195
config_layout.setContentsMargins(5, 5, 5, 5)
196+
config_layout.setColumnStretch(0, 1)
197+
config_layout.setColumnStretch(1, 1)
198+
config_layout.setRowStretch(0, 1)
199+
config_layout.setRowStretch(1, 1)
196200

197-
# Moteur
201+
# Moteur (top-left)
198202
engine_group = QGroupBox("Engine Configuration")
199-
engine_group.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred)
203+
engine_group.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
200204
engine_layout = QVBoxLayout()
201205
engine_layout.setSpacing(5)
202206

@@ -208,7 +212,7 @@ def _setup_ui(self):
208212
engine_layout.addWidget(self.compiler_tabs)
209213

210214
compat_btn = QPushButton("Check Compatibility")
211-
compat_btn.setMinimumHeight(28)
215+
compat_btn.setMinimumHeight(32)
212216
compat_btn.clicked.connect(self._check_compatibility)
213217
engine_layout.addWidget(compat_btn)
214218

@@ -217,32 +221,33 @@ def _setup_ui(self):
217221
engine_layout.addWidget(self.compat_status_label)
218222

219223
engine_group.setLayout(engine_layout)
220-
config_layout.addWidget(engine_group)
224+
config_layout.addWidget(engine_group, 0, 0)
221225

222-
# Fichier
226+
# Fichier (top-right)
223227
file_group = QGroupBox("File / Project Configuration")
224-
file_group.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred)
225-
file_layout = QGridLayout()
226-
file_layout.setSpacing(8)
227-
file_layout.setColumnStretch(1, 1)
228+
file_group.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
229+
file_layout = QVBoxLayout()
230+
file_layout.setSpacing(10)
228231

229232
file_label = QLabel("File to compile:")
230-
file_layout.addWidget(file_label, 0, 0)
233+
file_layout.addWidget(file_label)
231234

235+
file_input_layout = QHBoxLayout()
232236
self.file_path_edit = QLineEdit()
233237
self.file_path_edit.setPlaceholderText("Select a Python file to compile...")
234238
self.file_path_edit.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
235-
self.file_path_edit.setMinimumHeight(32)
236-
file_layout.addWidget(self.file_path_edit, 0, 1)
239+
self.file_path_edit.setMinimumHeight(35)
240+
file_input_layout.addWidget(self.file_path_edit)
237241

238242
browse_btn = QPushButton("Browse")
239-
browse_btn.setMinimumHeight(32)
240-
browse_btn.setMinimumWidth(80)
243+
browse_btn.setMinimumHeight(35)
244+
browse_btn.setMinimumWidth(90)
241245
browse_btn.clicked.connect(self._browse_file)
242-
file_layout.addWidget(browse_btn, 0, 2)
246+
file_input_layout.addWidget(browse_btn)
243247

248+
file_layout.addLayout(file_input_layout)
244249
file_group.setLayout(file_layout)
245-
config_layout.addWidget(file_group)
250+
config_layout.addWidget(file_group, 0, 1)
246251

247252
# Workspace
248253
workspace_group = QGroupBox("Workspace")
@@ -270,23 +275,23 @@ def _setup_ui(self):
270275
workspace_group.setLayout(workspace_layout)
271276
config_layout.addWidget(workspace_group)
272277

273-
# Actions
278+
# Actions (bottom-right)
274279
actions_group = QGroupBox("Actions")
275-
actions_group.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred)
276-
actions_layout = QHBoxLayout()
277-
actions_layout.setSpacing(10)
280+
actions_group.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
281+
actions_layout = QVBoxLayout()
282+
actions_layout.setSpacing(12)
278283

279284
self.compile_btn = QPushButton("Compile")
280-
self.compile_btn.setMinimumHeight(40)
285+
self.compile_btn.setMinimumHeight(36)
281286
self.compile_btn.setStyleSheet(
282287
"""
283288
QPushButton {
284289
background-color: #4caf50;
285290
color: white;
286-
font-size: 14px;
291+
font-size: 16px;
287292
font-weight: bold;
288-
border-radius: 5px;
289-
padding: 8px 16px;
293+
border-radius: 6px;
294+
padding: 10px 20px;
290295
}
291296
QPushButton:hover {
292297
background-color: #45a049;
@@ -299,25 +304,27 @@ def _setup_ui(self):
299304
self.compile_btn.clicked.connect(self._run_compilation)
300305
actions_layout.addWidget(self.compile_btn)
301306

307+
button_row = QHBoxLayout()
308+
button_row.setSpacing(10)
309+
302310
dry_run_btn = QPushButton("Dry Run")
303-
dry_run_btn.setMinimumHeight(40)
311+
dry_run_btn.setMinimumHeight(32)
304312
dry_run_btn.clicked.connect(self._dry_run)
305-
actions_layout.addWidget(dry_run_btn)
313+
button_row.addWidget(dry_run_btn)
306314

307315
refresh_btn = QPushButton("Refresh Engines")
308-
refresh_btn.setMinimumHeight(40)
316+
refresh_btn.setMinimumHeight(32)
309317
refresh_btn.clicked.connect(self._refresh_engines)
310-
actions_layout.addWidget(refresh_btn)
311-
312-
actions_layout.addStretch()
318+
button_row.addWidget(refresh_btn)
313319

314320
clear_log_btn = QPushButton("Clear Log")
315-
clear_log_btn.setMinimumHeight(40)
321+
clear_log_btn.setMinimumHeight(32)
316322
clear_log_btn.clicked.connect(self._clear_log)
317-
actions_layout.addWidget(clear_log_btn)
323+
button_row.addWidget(clear_log_btn)
318324

325+
actions_layout.addLayout(button_row)
319326
actions_group.setLayout(actions_layout)
320-
config_layout.addWidget(actions_group)
327+
config_layout.addWidget(actions_group, 1, 1)
321328

322329
top_splitter.addWidget(config_container)
323330

@@ -352,7 +359,7 @@ def _setup_ui(self):
352359
# Progress bar
353360
self.progress_bar = QProgressBar()
354361
self.progress_bar.setVisible(False)
355-
self.progress_bar.setMinimumHeight(24)
362+
self.progress_bar.setMinimumHeight(18)
356363
log_layout_inner.addWidget(self.progress_bar)
357364

358365
log_group.setLayout(log_layout_inner)
@@ -368,12 +375,12 @@ def _setup_ui(self):
368375
# === Barre de statut ===
369376
self.statusBar = QStatusBar()
370377
self.statusBar.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
371-
self.statusBar.setMinimumHeight(28)
378+
self.statusBar.setMinimumHeight(22)
372379
self.setStatusBar(self.statusBar)
373380
self.statusBar.showMessage("Ready")
374381

375382
# Définir les proportions du splitter vertical
376-
main_splitter.setSizes([700, 200])
383+
main_splitter.setSizes([700, 120])
377384

378385
def _center_window(self):
379386
"""Centre la fenêtre sur l'écran."""

0 commit comments

Comments
 (0)