summaryrefslogtreecommitdiffstats
path: root/actorwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'actorwidget.cpp')
-rw-r--r--actorwidget.cpp65
1 files changed, 65 insertions, 0 deletions
diff --git a/actorwidget.cpp b/actorwidget.cpp
new file mode 100644
index 0000000..a62331e
--- /dev/null
+++ b/actorwidget.cpp
@@ -0,0 +1,65 @@
+/*
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version
+ 2 of the License, or (at your option) any later version.
+*/
+
+#include <QVBoxLayout>
+#include <QHBoxLayout>
+#include <QPushButton>
+#include <QTreeView>
+#include <QLabel>
+
+#include <QDebug>
+
+#include "actorwidget.h"
+#include "actormodel.h"
+
+ActorWidget::ActorWidget(QWidget *parent) : QWidget(parent) {
+ QVBoxLayout *mainLayout = new QVBoxLayout;
+
+ QLabel *l1 = new QLabel(tr("Actors"));
+
+ mModel = new ActorModel;
+ mView = new QTreeView;
+ mView->setModel(mModel);
+ mView->setRootIsDecorated(false);
+ mView->setSelectionMode(QAbstractItemView::ExtendedSelection);
+ mView->setHeaderHidden(true);
+
+ QHBoxLayout *buttonLayout = new QHBoxLayout;
+ mRemoveActor = new QPushButton(tr("&Remove selected"));
+ connect(mRemoveActor, SIGNAL(clicked()), this, SLOT(removeActor()));
+ mClearAll = new QPushButton(tr("Remove &all"));
+ connect(mClearAll, SIGNAL(clicked()), this, SLOT(clear()));
+ buttonLayout->addStretch();
+ buttonLayout->addWidget(mClearAll);
+ buttonLayout->addWidget(mRemoveActor);
+
+ mainLayout->addWidget(l1);
+ mainLayout->addWidget(mView);
+ mainLayout->addLayout(buttonLayout);
+
+ setLayout(mainLayout);
+}
+
+const QStringList ActorWidget::actors(){
+ return mModel->items();
+}
+
+void ActorWidget::addActor(const QString &actor) {
+ mModel->addItem(actor);
+}
+
+void ActorWidget::clear() {
+ mModel->clear();
+}
+
+void ActorWidget::removeActor() {
+ QModelIndexList idxs = mView->selectionModel()->selectedRows();
+ foreach(QModelIndex idx, idxs){
+ mModel->removeItem(idx.data());
+ }
+}
+