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

Commit 18c202f

Browse files
committed
Improve results and previous CGPA fields
1 parent dfbee5e commit 18c202f

File tree

4 files changed

+74
-41
lines changed

4 files changed

+74
-41
lines changed

moadaly/ui/main.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from .. import database
99
from . import result_box
10-
from . import previous_gpa_box
10+
from . import previous_cgpa_box
1111
from . import calculation_system_options_box
1212
from . import grades_panel
1313
from . import manage_profiles_dialogs
@@ -36,7 +36,7 @@ def __init__(self):
3636

3737
# Create main window widgets.
3838
self.result_box = result_box.ResultBox()
39-
self.previous_gpa_box = previous_gpa_box.PreviousGPABox()
39+
self.previous_gpa_box = previous_cgpa_box.PreviousCGPABox()
4040
self.calculation_system_box = (
4141
calculation_system_options_box.CalculationSystemBox()
4242
)

moadaly/ui/previous_cgpa_box.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
"""Where you can specify an old CGPA to be added to the calculation."""
2+
from gettext import gettext as _
3+
4+
from PySide6 import QtCore, QtWidgets
5+
6+
7+
class PreviousCGPABox(QtWidgets.QWidget):
8+
"""A Group Box where you can specify a previous CGPA, to add it to the calculation."""
9+
10+
def __init__(self):
11+
"""Initialize components of the previous CGPA widget."""
12+
super().__init__()
13+
14+
group_box = QtWidgets.QGroupBox(_("Previous CGPA"))
15+
group_box.setParent(self)
16+
17+
group_box_layout = QtWidgets.QFormLayout()
18+
group_box.setLayout(group_box_layout)
19+
20+
# Previous credit units.
21+
self.previous_credit = QtWidgets.QSpinBox()
22+
self.previous_credit.setMaximum(100000)
23+
self.previous_credit.valueChanged.connect(self.update_previous_points)
24+
group_box_layout.addRow(
25+
QtWidgets.QLabel(_("Previous Credit Units")), self.previous_credit
26+
)
27+
28+
# Previous CGPA.
29+
self.previous_cgpa = QtWidgets.QDoubleSpinBox()
30+
self.previous_cgpa.setDecimals(3)
31+
self.previous_cgpa.setSingleStep(0.1)
32+
# TODO Set the maximum value to 4 or 5 for the GPA depending on the used GPA system.
33+
# TODO Set decimals count to three decimal values.
34+
self.previous_cgpa.setMaximum(5.0)
35+
self.previous_cgpa.valueChanged.connect(self.update_previous_points)
36+
group_box_layout.addRow(
37+
QtWidgets.QLabel(_("Previous CGPA")), self.previous_cgpa
38+
)
39+
40+
# Previous points.
41+
self.previous_points = QtWidgets.QDoubleSpinBox()
42+
self.previous_points.setReadOnly(True)
43+
self.previous_points.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
44+
self.previous_points.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons)
45+
self.previous_points.setDecimals(3)
46+
group_box_layout.addRow(
47+
QtWidgets.QLabel(_("Previous Points")), self.previous_points
48+
)
49+
50+
def update_previous_points(self) -> None:
51+
"""Update previous points when CGPA or credit is changed."""
52+
self.previous_points.setValue(
53+
self.previous_cgpa.value() * self.previous_credit.value()
54+
)

moadaly/ui/previous_gpa_box.py

Lines changed: 0 additions & 34 deletions
This file was deleted.

moadaly/ui/result_box.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"""The result box where the results are displayed."""
22
from gettext import gettext as _
33

4-
from PySide6 import QtWidgets
4+
from PySide6 import QtCore, QtWidgets
55

66

77
class ResultBox(QtWidgets.QWidget):
@@ -17,16 +17,23 @@ def __init__(self):
1717
group_box_layout = QtWidgets.QFormLayout()
1818

1919
# Result GPA.
20-
self.result_gpa = QtWidgets.QLabel(_("Undefined"))
20+
self.result_gpa = QtWidgets.QDoubleSpinBox()
21+
self.result_gpa.setReadOnly(True)
22+
self.result_gpa.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
23+
self.result_gpa.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons)
24+
self.result_gpa.setDecimals(3)
2125
self.result_gpa.setStyleSheet(
2226
"""
2327
font: bold;
2428
"""
2529
)
26-
group_box_layout.addRow(QtWidgets.QLabel(_("GPA:")), self.result_gpa)
30+
group_box_layout.addRow(QtWidgets.QLabel(_("CGPA:")), self.result_gpa)
2731

2832
# Result hours.
29-
self.result_hours = QtWidgets.QLabel("0")
33+
self.result_hours = QtWidgets.QSpinBox()
34+
self.result_hours.setReadOnly(True)
35+
self.result_hours.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
36+
self.result_hours.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons)
3037
self.result_hours.setStyleSheet(
3138
"""
3239
font: bold;
@@ -35,7 +42,10 @@ def __init__(self):
3542
group_box_layout.addRow(QtWidgets.QLabel(_("Hours:")), self.result_hours)
3643

3744
# Result points.
38-
self.result_points = QtWidgets.QLabel("0.00")
45+
self.result_points = QtWidgets.QDoubleSpinBox()
46+
self.result_points.setReadOnly(True)
47+
self.result_points.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
48+
self.result_points.setButtonSymbols(QtWidgets.QAbstractSpinBox.NoButtons)
3949
self.result_points.setStyleSheet(
4050
"""
4151
font: bold;
@@ -45,6 +55,9 @@ def __init__(self):
4555

4656
# Result grade.
4757
self.result_grade = QtWidgets.QLabel(_("Undefined"))
58+
self.result_grade = QtWidgets.QLineEdit(_("Undefined"))
59+
self.result_grade.setReadOnly(True)
60+
self.result_grade.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
4861
self.result_grade.setStyleSheet(
4962
"""
5063
font: bold;

0 commit comments

Comments
 (0)