-
Notifications
You must be signed in to change notification settings - Fork 0
/
gromacstools.cpp
57 lines (46 loc) · 1.49 KB
/
gromacstools.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include "gromacstools.h"
#include <QVector>
#include "gromacstool.h"
#include "gromacstoolsdefinition.h"
#include <QMenu>
#include <QDir>
GromacsTools::GromacsTools(QWidget *parent) :
QDockWidget(parent),
_toolBox(new QToolBox(this)),
_tools(GromacsToolsDefinition::GetInstance())
{
setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);
setWindowTitle(tr("Gromacs Tools"));
setMinimumWidth(400); // TODO: think of something better
_toolBox->setFrameStyle(QFrame::Box);
setWidget(_toolBox);
for(int index=0; index<_tools.NumberOfTools(); ++index)
{
GromacsTool *gromacsTool = new GromacsTool(index, this);
_toolBox->insertItem(index, gromacsTool, _tools.ToolName(index));
}
connect(_toolBox, SIGNAL(currentChanged(int)), this, SIGNAL(GromacsToolChanged(int)));
}
bool GromacsTools::CollectOptions(QStringList &listOfOptions)
{
GromacsTool *currentTool = static_cast<GromacsTool *>(_toolBox->currentWidget());
if(!currentTool->CollectOptions(listOfOptions))
{
listOfOptions.clear();
return false;
}
return true;
}
void GromacsTools::AllToolsOptionsToXML()
{
for(int index=0; index<_toolBox->count(); ++index)
{
GromacsTool *tool = static_cast<GromacsTool *>(_toolBox->widget(index));
tool->OptionsToXML();
}
}
void GromacsTools::CurrentToolOptionsToXML()
{
GromacsTool *currentTool = static_cast<GromacsTool *>(_toolBox->currentWidget());
currentTool->OptionsToXML();
}