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
|
import sys
from PyQt5.QtWidgets import QApplication, QComboBox, QDialog, QFormLayout, QHBoxLayout, QLabel, QLineEdit, QMessageBox, QPushButton
from PyQt5.QtGui import QFont
from PyQt5.QtCore import Qt
import src.globals as Globals
from src.group import Group
import src.db_sqlite as DB
class addGroupForm(QDialog):
"""
Implemented so that it can be used for adding and editing groups
"""
def __init__(self):
super().__init__()
self.initializeUI()
def initializeUI(self):
self.resize(400, 1)
self.setWindowTitle("Add Group")
self.displayWidgets()
self.exec()
def displayWidgets(self):
group_form_layout = QFormLayout()
title = QLabel("Add Group")
title.setFont(QFont("Arial", 18))
title.setAlignment(Qt.AlignCenter)
group_form_layout.addRow(title)
self.new_group_name = QLineEdit()
group_form_layout.addRow("Name:", self.new_group_name)
self.new_group_column = QComboBox()
self.new_group_column.addItems(["Left", "Right"])
group_form_layout.addRow("Column:", self.new_group_column)
self.new_group_link = QLineEdit() # TODO see if there is a widget specifically for URLs
group_form_layout.addRow("Link:", self.new_group_link)
# Submit and cancel buttons
buttons_h_box = QHBoxLayout()
buttons_h_box.addStretch()
close_button = QPushButton("Cancel")
close_button.clicked.connect(self.close)
buttons_h_box.addWidget(close_button)
submit_button = QPushButton("Submit")
submit_button.clicked.connect(self.handleSubmit)
buttons_h_box.addWidget(submit_button)
buttons_h_box.addStretch()
group_form_layout.addRow(buttons_h_box)
self.setLayout(group_form_layout)
def handleSubmit(self):
name_text = self.new_group_name.text()
column_text = self.new_group_column.currentText()
link_text = self.new_group_link.text()
if not name_text:
QMessageBox.warning(self, "Error Message",
"Name cannot be blank",
QMessageBox.Close,
QMessageBox.Close)
return
new_id = DB.insertGroup(Group(0, name_text, column_text, link_text))
Globals.groups.append(Group(new_id, name_text, column_text, link_text))
self.close()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = addGroupForm()
sys.exit(app.exec_())
|