-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsessioneditpageplayers.cpp
More file actions
79 lines (67 loc) · 2.38 KB
/
sessioneditpageplayers.cpp
File metadata and controls
79 lines (67 loc) · 2.38 KB
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
77
78
79
#include "sessioneditpageplayers.h"
#include "sessioneditpagesession.h"
#include "sessioneditwizard.h"
#include <QAbstractButton>
#include <QInputDialog>
#include <QMessageBox>
#include <QStringList>
#include <QVariant>
#include <QWizard>
#include "database.h"
SessionEditPagePlayers::SessionEditPagePlayers(QWidget *parent, QString session)
: QWizardPage(parent), m_session_name_init(session)
{ }
void SessionEditPagePlayers::initializePage()
{
setTitle( "Edit Session - Players" );
m_list = new QListWidget(this);
m_list->setSortingEnabled(true);
if ( !m_session_name_init.isEmpty() )
{ m_list->addItems(Database::players(m_session_name_init)); }
for ( int i = 0; i < m_list->count(); i++ )
{ m_list->item(i)->setFlags(m_list->item(i)->flags() | Qt::ItemIsEditable); }
m_list->setSelectionMode(QAbstractItemView::SelectionMode::SingleSelection);
m_add = new QPushButton("add player", this);
QObject::connect(m_add, SIGNAL(clicked(bool)), this, SLOT(onAdd(bool)));
m_del = new QPushButton("delete selected", this);
QObject::connect(m_del, SIGNAL(clicked(bool)), this, SLOT(onDel(bool)));
SessionEditPageSession* pageSession = qobject_cast<SessionEditPageSession*>(
wizard()->page(SessionEditWizard::PageID::Session));
if ( pageSession )
{
m_add->setEnabled(false);
m_del->setEnabled(false);
}
m_layout = new QGridLayout(this);
m_layout->addWidget(m_list,0,0,1,2);
m_layout->addWidget(m_add,1,0);
m_layout->addWidget(m_del,1,1);
}
void SessionEditPagePlayers::onAdd(bool)
{
QString name = QInputDialog::getText(this, "Add Player", "Player Name: ");
if ( players().contains(name,Qt::CaseInsensitive) )
{
QMessageBox::warning( this, "Add Player",
QString( "Player \"%1\" already is in list!" ).arg(name) );
return;
}
m_list->addItem(name);
}
void SessionEditPagePlayers::onDel(bool)
{
QList<QListWidgetItem*> selected = m_list->selectedItems();
if ( selected.count() )
{ m_list->takeItem(m_list->row(selected.at(0))); }
}
QStringList SessionEditPagePlayers::players() const
{
QStringList players;
for ( int i = 0; i < m_list->count(); i++ )
{ players << m_list->item(i)->text(); }
return players;
}
bool SessionEditPagePlayers::validatePage()
{
return true;
}