Skip to content
This repository was archived by the owner on Aug 28, 2020. It is now read-only.

Commit 5f54c43

Browse files
committed
create a custom widget for the permanent status bar
1 parent 424e72c commit 5f54c43

File tree

2 files changed

+32
-7
lines changed

2 files changed

+32
-7
lines changed

pugdebug/gui/main_window.py

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
from PyQt5.QtCore import Qt
1313
from PyQt5.QtWidgets import (QMainWindow, QToolBar, QMenuBar, QDockWidget,
14-
QLabel, QAction)
14+
QLabel, QAction, QWidget, QHBoxLayout)
1515
from PyQt5.QtGui import QFont, QKeySequence
1616

1717
from pugdebug.gui.file_browser import PugdebugFileBrowser
@@ -67,8 +67,9 @@ def setup_gui_elements(self):
6767
self.setup_statusbar()
6868

6969
def setup_statusbar(self):
70-
self.permanent_statusbar = QLabel("Idle...")
70+
self.permanent_statusbar = PugdebugStatusBar()
7171
self.statusBar().addPermanentWidget(self.permanent_statusbar)
72+
self.set_debugging_status(0)
7273

7374
def setup_fonts(self):
7475
font = QFont('mono')
@@ -246,12 +247,36 @@ def get_breakpoint_viewer(self):
246247
def get_expression_viewer(self):
247248
return self.expression_viewer
248249

249-
def set_statusbar_text(self, text):
250-
self.permanent_statusbar.setText(text)
250+
def set_debugging_status(self, status):
251+
self.permanent_statusbar.set_debugging_status(status)
251252

252253
def __add_dock_widget(self, widget, title, area):
253254
dw = QDockWidget(title, self)
254255
object_name = "dock-widget-%s" % title.lower().replace(" ", "-")
255256
dw.setObjectName(object_name)
256257
dw.setWidget(widget)
257258
self.addDockWidget(area, dw)
259+
260+
261+
class PugdebugStatusBar(QWidget):
262+
263+
def __init__(self):
264+
super(PugdebugStatusBar, self).__init__()
265+
self.label = QLabel(self)
266+
267+
layout = QHBoxLayout()
268+
layout.addWidget(self.label)
269+
270+
self.setLayout(layout)
271+
272+
def set_debugging_status(self, status):
273+
if status == 0:
274+
text = "Idle ..."
275+
elif status == 1:
276+
text = 'Waiting for connection ...'
277+
elif status == 2:
278+
text = 'Debugging stopped ...'
279+
elif status == 3:
280+
text = 'Debugging in progress ...'
281+
282+
self.label.setText(text)

pugdebug/pugdebug.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@ def start_debug(self):
380380
self.document_viewer.remove_line_highlights()
381381

382382
self.debugger.start_debug()
383-
self.main_window.set_statusbar_text("Waiting for connection...")
383+
self.main_window.set_debugging_status(1)
384384

385385
def handle_debugging_started(self):
386386
"""Handle when debugging starts
@@ -397,7 +397,7 @@ def handle_debugging_started(self):
397397
398398
Open the index file in the document viewer.
399399
"""
400-
self.main_window.set_statusbar_text("Debugging in progress...")
400+
self.main_window.set_debugging_status(3)
401401

402402
self.main_window.toggle_actions(True)
403403

@@ -430,7 +430,7 @@ def handle_debugging_stopped(self):
430430

431431
self.main_window.toggle_actions(False)
432432

433-
self.main_window.set_statusbar_text("Debugging stopped...")
433+
self.main_window.set_debugging_status(2)
434434

435435
self.expression_viewer.clear_values()
436436

0 commit comments

Comments
 (0)