diff options
Diffstat (limited to 'actorwidget.cpp')
-rw-r--r-- | actorwidget.cpp | 65 |
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()); + } +} + |