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
11 #include <QVBoxLayout>
12 #include <QPushButton>
13 #include <QListWidgetItem>
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()));
32 connect(m_artisanManager
, SIGNAL(newArtisan(std::string
)), this, SLOT(artisanLoaded(std::string
)));
33 foreach(std::string name
, m_artisanManager
->artisanList()) {
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