aboutsummaryrefslogtreecommitdiff
path: root/aocaseannouncerdialog.cpp
diff options
context:
space:
mode:
authorCerapter <cerap@protonmail.com>2018-10-23 16:15:15 +0200
committerCerapter <cerap@protonmail.com>2018-10-23 16:15:15 +0200
commitde8badc9a6e74ca29cbc04ab5438d6eed2eb8984 (patch)
treeeca5e15e0036fbd117be92029c57f039e2b0606f /aocaseannouncerdialog.cpp
parent660daf9922e68eb5f5f6bb00eb3bc51d0c460de7 (diff)
Support for case alerts serverside.
- Users can use an ingame button to alert people of cases.
Diffstat (limited to 'aocaseannouncerdialog.cpp')
-rw-r--r--aocaseannouncerdialog.cpp77
1 files changed, 77 insertions, 0 deletions
diff --git a/aocaseannouncerdialog.cpp b/aocaseannouncerdialog.cpp
new file mode 100644
index 00000000..aa373535
--- /dev/null
+++ b/aocaseannouncerdialog.cpp
@@ -0,0 +1,77 @@
+#include "aocaseannouncerdialog.h"
+
+AOCaseAnnouncerDialog::AOCaseAnnouncerDialog(QWidget *parent, AOApplication *p_ao_app, Courtroom *p_court)
+{
+ ao_app = p_ao_app;
+ court = p_court;
+
+ setWindowTitle("Case Announcer");
+ resize(405, 235);
+
+ AnnouncerButtons = new QDialogButtonBox(this);
+
+ QSizePolicy sizepolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
+ sizepolicy.setHorizontalStretch(0);
+ sizepolicy.setVerticalStretch(0);
+ sizepolicy.setHeightForWidth(AnnouncerButtons->sizePolicy().hasHeightForWidth());
+ AnnouncerButtons->setSizePolicy(sizepolicy);
+ AnnouncerButtons->setOrientation(Qt::Horizontal);
+ AnnouncerButtons->setStandardButtons(QDialogButtonBox::Ok|QDialogButtonBox::Cancel);
+
+ QObject::connect(AnnouncerButtons, SIGNAL(accepted()), this, SLOT(ok_pressed()));
+ QObject::connect(AnnouncerButtons, SIGNAL(rejected()), this, SLOT(cancel_pressed()));
+
+ setUpdatesEnabled(false);
+
+ VBoxLayout = new QVBoxLayout(this);
+
+ FormLayout = new QFormLayout(this);
+ FormLayout->setLabelAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter);
+ FormLayout->setFormAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop);
+ FormLayout->setContentsMargins(6, 6, 6, 6);
+
+ VBoxLayout->addItem(FormLayout);
+ VBoxLayout->addWidget(AnnouncerButtons);
+
+ CaseTitleLabel = new QLabel(this);
+ CaseTitleLabel->setText("Case title:");
+
+ FormLayout->setWidget(0, QFormLayout::LabelRole, CaseTitleLabel);
+
+ CaseTitleLineEdit = new QLineEdit(this);
+ CaseTitleLineEdit->setMaxLength(50);
+
+ FormLayout->setWidget(0, QFormLayout::FieldRole, CaseTitleLineEdit);
+
+ DefenceNeeded = new QCheckBox(this);
+ DefenceNeeded->setText("Defence needed");
+ ProsecutorNeeded = new QCheckBox(this);
+ ProsecutorNeeded->setText("Prosecution needed");
+ JudgeNeeded = new QCheckBox(this);
+ JudgeNeeded->setText("Judge needed");
+ JurorNeeded = new QCheckBox(this);
+ JurorNeeded->setText("Jurors needed");
+
+ FormLayout->setWidget(1, QFormLayout::FieldRole, DefenceNeeded);
+ FormLayout->setWidget(2, QFormLayout::FieldRole, ProsecutorNeeded);
+ FormLayout->setWidget(3, QFormLayout::FieldRole, JudgeNeeded);
+ FormLayout->setWidget(4, QFormLayout::FieldRole, JurorNeeded);
+
+ setUpdatesEnabled(true);
+}
+
+void AOCaseAnnouncerDialog::ok_pressed()
+{
+ court->announce_case(CaseTitleLineEdit->text(),
+ DefenceNeeded->isChecked(),
+ ProsecutorNeeded->isChecked(),
+ JudgeNeeded->isChecked(),
+ JurorNeeded->isChecked());
+
+ done(0);
+}
+
+void AOCaseAnnouncerDialog::cancel_pressed()
+{
+ done(0);
+}