Began proof-of-concept memory module.
[aesalon.git] / src / visualizer / ArtisanManagerWidget.cpp
blob765149161d58791bf1544293ff9a9d19312649c5
1 /** Aesalon, a tool to visualize program behaviour in real time.
2 Copyright (C) 2009-2011, Aesalon development team.
4 Aesalon is distributed under the terms of the GNU GPLv3. See
5 the included file LICENSE for more information.
7 @file src/visualizer/ArtisanManagerWidget.cpp
8 */
10 #include <QList>
11 #include <QVBoxLayout>
12 #include <QPushButton>
13 #include <QListWidgetItem>
14 #include <QString>
16 #include "visualizer/ArtisanManagerWidget.h"
18 namespace Visualizer {
20 ArtisanManagerWidget::ArtisanManagerWidget(ArtisanManager *artisanManager) : m_artisanManager(artisanManager) {
21 QVBoxLayout *layout = new QVBoxLayout();
23 m_listWidget = new QListWidget();
24 layout->addWidget(m_listWidget);
26 QPushButton *createButton = new QPushButton(tr("Add artisan &viewport"));
27 layout->addWidget(createButton);
28 connect(createButton, SIGNAL(clicked()), this, SLOT(newArtisan()));
30 setLayout(layout);
32 connect(m_artisanManager, SIGNAL(newArtisan(std::string)), this, SLOT(artisanLoaded(std::string)));
33 foreach(std::string name, m_artisanManager->artisanList()) {
34 artisanLoaded(name);
38 ArtisanManagerWidget::~ArtisanManagerWidget() {
42 void ArtisanManagerWidget::newArtisan() {
43 QList<QListWidgetItem *> itemList = m_listWidget->selectedItems();
45 foreach(QListWidgetItem *item, itemList) {
46 const std::string &name = item->data(Qt::DisplayRole).toString().toStdString();
47 Artisan::Viewport *viewport = m_artisanManager->artisan(name)->interface()->createViewport();
48 emit newViewport(viewport);
52 void ArtisanManagerWidget::artisanLoaded(std::string name) {
53 ArtisanWrapper *artisan = m_artisanManager->artisan(name);
54 if(artisan != NULL) new QListWidgetItem(QString::fromStdString(name), m_listWidget);
57 } // namespace Visualizer