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/InputCreator.cpp
10 #include <QVBoxLayout>
11 #include <QFormLayout>
12 #include <QPushButton>
15 #include <QFileDialog>
18 #include "visualizer/InputCreator.h"
19 #include "util/MessageSystem.h"
20 #include "visualizer/LogInput.h"
22 namespace Visualizer
{
24 InputCreator::InputCreator(InputManager
*inputManager
) : m_inputManager(inputManager
) {
26 QVBoxLayout
*layout
= new QVBoxLayout();
28 QTabWidget
*tabWidget
= new QTabWidget();
30 tabWidget
->addTab(setupLogTab(), tr("&Log file"));
32 layout
->addWidget(tabWidget
);
37 InputCreator::~InputCreator() {
41 QWidget
*InputCreator::setupLogTab() {
42 QWidget
*tab
= new QWidget();
44 QFormLayout
*layout
= new QFormLayout();
46 QHBoxLayout
*selectionLayout
= new QHBoxLayout();
48 m_fileLocation
= new QLabel(tr("Not selected."));
49 selectionLayout
->addWidget(m_fileLocation
);
51 QPushButton
*selectFile
= new QPushButton(style()->standardIcon(QStyle::SP_DirOpenIcon
), tr(""));
52 selectionLayout
->addWidget(selectFile
);
53 connect(selectFile
, SIGNAL(clicked()), this, SLOT(fileSelected()));
55 layout
->addRow(tr("File location:"), selectionLayout
);
57 m_logCreateButton
= new QPushButton(tr("&Open log"));
58 m_logCreateButton
->setDisabled(true);
59 layout
->addWidget(m_logCreateButton
);
60 connect(m_logCreateButton
, SIGNAL(clicked()), this, SLOT(createLogInput()));
62 tab
->setLayout(layout
);
67 void InputCreator::fileSelected() {
68 QString filename
= QFileDialog::getOpenFileName(this);
69 if(filename
== "") return;
71 m_logCreateButton
->setDisabled(false);
72 m_fileLocation
->setText(filename
);
75 void InputCreator::createLogInput() {
77 LogInput
*li
= new LogInput(m_fileLocation
->text().toStdString(), m_inputManager
->artisanManager());
78 emit
inputCreated(li
);
81 } // namespace Visualizer