Skip to content

Commit ce2f3ea

Browse files
committed
Start on insert new module
1 parent cfc4870 commit ce2f3ea

File tree

9 files changed

+46
-21
lines changed

9 files changed

+46
-21
lines changed

src/Dataflow/Engine/Controller/NetworkEditorController.cc

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ ModuleHandle NetworkEditorController::duplicateModule(const ModuleHandle& module
281281
return newModule;
282282
}
283283

284-
void NetworkEditorController::connectNewModule(const ModuleHandle& moduleToConnectTo, const PortDescriptionInterface* portToConnect, const std::string& newModuleName)
284+
void NetworkEditorController::connectNewModule(const PortDescriptionInterface* portToConnect, const std::string& newModuleName)
285285
{
286286
auto newMod = addModule(newModuleName);
287287

@@ -313,6 +313,11 @@ void NetworkEditorController::connectNewModule(const ModuleHandle& moduleToConne
313313
}
314314
}
315315

316+
void NetworkEditorController::insertNewModule(const PortDescriptionInterface* outputPort, const PortDescriptionInterface* inputPort, const std::string& newModuleName)
317+
{
318+
std::cout << "TODO nec insertNewModule" << std::endl;
319+
}
320+
316321
void NetworkEditorController::printNetwork() const
317322
{
318323
/// @todo: and make this switchable

src/Dataflow/Engine/Controller/NetworkEditorController.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@ namespace Engine {
103103
void interruptModule(const Networks::ModuleId& id);
104104

105105
Networks::ModuleHandle duplicateModule(const Networks::ModuleHandle& module);
106-
void connectNewModule(const Networks::ModuleHandle& moduleToConnectTo, const Networks::PortDescriptionInterface* portToConnect, const std::string& newModuleName);
106+
void connectNewModule(const Networks::PortDescriptionInterface* portToConnect, const std::string& newModuleName);
107+
void insertNewModule(const Networks::PortDescriptionInterface* outputPort, const Networks::PortDescriptionInterface* inputPort, const std::string& newModuleName);
107108

108109
boost::optional<Networks::ConnectionId> requestConnection(const Networks::PortDescriptionInterface* from, const Networks::PortDescriptionInterface* to) override;
109110
void removeConnection(const Networks::ConnectionId& id);

src/Interface/Application/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ SET(Interface_Application_HEADERS
8686
NoteEditor.h
8787
Connection.h
8888
Port.h
89+
PositionProvider.h
8990
PreferencesWindow.h
9091
PythonConsoleWidget.h
9192
TagManagerWindow.h

src/Interface/Application/Connection.cc

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ namespace SCIRun
181181
namespace Gui
182182
{
183183
const QString deleteAction("Delete");
184-
const QString insertModuleAction("Insert Module->*");
184+
const QString insertModuleAction("Insert Module");
185185
const QString disableEnableAction("Disable");
186186
const QString editNotesAction("Edit Notes...");
187187

@@ -192,18 +192,22 @@ namespace SCIRun
192192
{
193193
deleteAction_ = addAction(deleteAction);
194194
addWidgetToExecutionDisableList(deleteAction_);
195-
addAction(insertModuleAction)->setDisabled(true);
195+
insertAction_ = addAction(insertModuleAction);
196+
addWidgetToExecutionDisableList(insertAction_);
196197
disableAction_ = addAction(disableEnableAction);
197198
addWidgetToExecutionDisableList(disableAction_);
198199
notesAction_ = addAction(editNotesAction);
199200
}
200201
~ConnectionMenu()
201202
{
202203
removeWidgetFromExecutionDisableList(deleteAction_);
204+
removeWidgetFromExecutionDisableList(insertAction_);
205+
removeWidgetFromExecutionDisableList(disableAction_);
203206
}
204207
QAction* notesAction_;
205208
QAction* deleteAction_;
206209
QAction* disableAction_;
210+
QAction* insertAction_;
207211
};
208212
}
209213
}
@@ -263,7 +267,7 @@ ConnectionLine::ConnectionLine(PortWidget* fromPort, PortWidget* toPort, const C
263267
connectNoteEditorToAction(menu_->notesAction_);
264268
connectUpdateNote(this);
265269

266-
setPositionObject(boost::make_shared<MidpointPositionerFromPorts>(fromPort_, toPort_));
270+
NeedsScenePositionProvider::setPositionObject(boost::make_shared<MidpointPositionerFromPorts>(fromPort_, toPort_));
267271

268272
connect(menu_->disableAction_, SIGNAL(triggered()), this, SLOT(toggleDisabled()));
269273

src/Interface/Application/NetworkEditor.cc

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,16 @@ void NetworkEditor::connectNewModule(const ModuleHandle& moduleToConnectTo, cons
217217
QPointF increment(0, portToConnect->isInput() ? -110 : 110);
218218
lastModulePosition_ = widget->scenePos() + increment;
219219

220-
controller_->connectNewModule(moduleToConnectTo, portToConnect, newModuleName);
220+
controller_->connectNewModule(portToConnect, newModuleName);
221+
}
222+
223+
void NetworkEditor::insertNewModule(const SCIRun::Dataflow::Networks::ModuleHandle& moduleToConnectTo, const SCIRun::Dataflow::Networks::PortDescriptionInterface* outputPort, const SCIRun::Dataflow::Networks::PortDescriptionInterface* inputPort, const std::string& newModuleName)
224+
{
225+
auto widget = findById(scene_->items(), moduleToConnectTo->get_id());
226+
//QPointF increment(0, portToConnect->isInput() ? -110 : 110);
227+
//lastModulePosition_ = widget->scenePos() + increment;
228+
229+
controller_->insertNewModule(outputPort, inputPort, newModuleName);
221230
}
222231

223232
void NetworkEditor::replaceModuleWith(const ModuleHandle& moduleToReplace, const std::string& newModuleName)

src/Interface/Application/NetworkEditor.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,7 @@ namespace Gui {
219219
virtual boost::optional<SCIRun::Dataflow::Networks::ConnectionId> requestConnection(const SCIRun::Dataflow::Networks::PortDescriptionInterface* from, const SCIRun::Dataflow::Networks::PortDescriptionInterface* to) override;
220220
void duplicateModule(const SCIRun::Dataflow::Networks::ModuleHandle& module);
221221
void connectNewModule(const SCIRun::Dataflow::Networks::ModuleHandle& moduleToConnectTo, const SCIRun::Dataflow::Networks::PortDescriptionInterface* portToConnect, const std::string& newModuleName);
222+
void insertNewModule(const SCIRun::Dataflow::Networks::ModuleHandle& moduleToConnectTo, const SCIRun::Dataflow::Networks::PortDescriptionInterface* outputPort, const SCIRun::Dataflow::Networks::PortDescriptionInterface* inputPort, const std::string& newModuleName);
222223
void replaceModuleWith(const SCIRun::Dataflow::Networks::ModuleHandle& moduleToReplace, const std::string& newModuleName);
223224
void executeAll();
224225
void executeModule(const SCIRun::Dataflow::Networks::ModuleHandle& module);

src/Interface/Application/NetworkEditorControllerGuiProxy.cc

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,14 +134,19 @@ void NetworkEditorControllerGuiProxy::setExecutorType(int type)
134134
controller_->setExecutorType(type);
135135
}
136136

137-
void NetworkEditorControllerGuiProxy::duplicateModule(const SCIRun::Dataflow::Networks::ModuleHandle& module)
137+
void NetworkEditorControllerGuiProxy::duplicateModule(const ModuleHandle& module)
138138
{
139139
controller_->duplicateModule(module);
140140
}
141141

142-
void NetworkEditorControllerGuiProxy::connectNewModule(const SCIRun::Dataflow::Networks::ModuleHandle& moduleToConnectTo, const SCIRun::Dataflow::Networks::PortDescriptionInterface* portToConnect, const std::string& newModuleName)
142+
void NetworkEditorControllerGuiProxy::connectNewModule(const PortDescriptionInterface* portToConnect, const std::string& newModuleName)
143143
{
144-
controller_->connectNewModule(moduleToConnectTo, portToConnect, newModuleName);
144+
controller_->connectNewModule(portToConnect, newModuleName);
145+
}
146+
147+
void NetworkEditorControllerGuiProxy::insertNewModule(const PortDescriptionInterface* outputPort, const PortDescriptionInterface* inputPort, const std::string& newModuleName)
148+
{
149+
controller_->insertNewModule(outputPort, inputPort, newModuleName);
145150
}
146151

147152
const ModuleDescriptionMap& NetworkEditorControllerGuiProxy::getAllAvailableModuleDescriptions() const

src/Interface/Application/NetworkEditorControllerGuiProxy.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ namespace Gui {
5151
boost::optional<SCIRun::Dataflow::Networks::ConnectionId> requestConnection(const SCIRun::Dataflow::Networks::PortDescriptionInterface* from, const SCIRun::Dataflow::Networks::PortDescriptionInterface* to);
5252
void removeConnection(const SCIRun::Dataflow::Networks::ConnectionId& id);
5353
void duplicateModule(const SCIRun::Dataflow::Networks::ModuleHandle& module);
54-
void connectNewModule(const SCIRun::Dataflow::Networks::ModuleHandle& moduleToConnectTo, const SCIRun::Dataflow::Networks::PortDescriptionInterface* portToConnect, const std::string& newModuleName);
54+
void connectNewModule(const SCIRun::Dataflow::Networks::PortDescriptionInterface* portToConnect, const std::string& newModuleName);
55+
void insertNewModule(const SCIRun::Dataflow::Networks::PortDescriptionInterface* outputPort, const SCIRun::Dataflow::Networks::PortDescriptionInterface* inputPort, const std::string& newModuleName);
5556
SCIRun::Dataflow::Networks::NetworkFileHandle saveNetwork() const;
5657
SCIRun::Dataflow::Networks::NetworkFileHandle serializeNetworkFragment(SCIRun::Dataflow::Networks::ModuleFilter modFilter, SCIRun::Dataflow::Networks::ConnectionFilter connFilter) const;
5758
void loadNetwork(const SCIRun::Dataflow::Networks::NetworkFileHandle& xml);

src/Interface/Application/Port.cc

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,12 @@
3131
#include <boost/lambda/lambda.hpp>
3232
#include <Dataflow/Network/Port.h>
3333
#include <Interface/Application/Port.h>
34-
#include <Interface/Application/GuiLogger.h>
3534
#include <Interface/Application/Connection.h>
3635
#include <Interface/Application/PositionProvider.h>
3736
#include <Interface/Application/Utility.h>
3837
#include <Interface/Application/ClosestPortFinder.h>
3938
#include <Core/Application/Application.h>
4039
#include <Dataflow/Engine/Controller/NetworkEditorController.h>
41-
#include <Core/Application/Preferences/Preferences.h>
4240
#include <Interface/Application/SCIRunMainWindow.h>
4341

4442
using namespace SCIRun::Gui;
@@ -87,7 +85,7 @@ namespace SCIRun {
8785
{
8886
if (modulePred(module.second))
8987
{
90-
const std::string& moduleName = module.first;
88+
const auto& moduleName = module.first;
9189
auto qname = QString::fromStdString(moduleName);
9290
auto action = new QAction(qname, menu);
9391
hookup(action);
@@ -105,8 +103,8 @@ namespace SCIRun {
105103
if (!packageMenus.isEmpty())
106104
{
107105
auto p = new QMenu(QString::fromStdString(packageName), parent);
108-
for (QMenu* menu : packageMenus)
109-
p->addMenu(menu);
106+
for (auto pm : packageMenus)
107+
p->addMenu(pm);
110108

111109
menu->addMenu(p);
112110
menu->addSeparator();
@@ -139,7 +137,7 @@ namespace SCIRun {
139137
auto m = new QMenu("Connect Module", parent);
140138
faves_ = new QMenu("Favorites", parent);
141139
m->addMenu(faves_);
142-
compatibleModuleActions_ = fillMenu(m, Core::Application::Instance().controller()->getAllAvailableModuleDescriptions(), parent);
140+
compatibleModuleActions_ = fillMenu(m, Application::Instance().controller()->getAllAvailableModuleDescriptions(), parent);
143141
addMenu(m);
144142
}
145143
void filterFavorites()
@@ -168,7 +166,7 @@ PortWidget::PortWidget(const QString& name, const QColor& color, const std::stri
168166
PortDataDescriber portDataDescriber,
169167
QWidget* parent /* = 0 */)
170168
: PortWidgetBase(parent),
171-
name_(name), moduleId_(moduleId), portId_(portId), index_(index), color_(color), typename_(datatype), isInput_(isInput), isDynamic_(isDynamic), isConnected_(false), lightOn_(false), currentConnection_(0),
169+
name_(name), moduleId_(moduleId), portId_(portId), index_(index), color_(color), typename_(datatype), isInput_(isInput), isDynamic_(isDynamic), isConnected_(false), lightOn_(false), currentConnection_(nullptr),
172170
connectionFactory_(connectionFactory),
173171
closestPortFinder_(closestPortFinder),
174172
menu_(new PortActionsMenu(this)),
@@ -344,7 +342,7 @@ namespace SCIRun {
344342
void PortWidget::cancelConnectionsInProgress()
345343
{
346344
delete currentConnection_;
347-
currentConnection_ = 0;
345+
currentConnection_ = nullptr;
348346
}
349347

350348
void PortWidget::makeConnection(const QPointF& pos)
@@ -389,13 +387,13 @@ void PortWidget::tryConnectPort(const QPointF& pos, PortWidget* port, double thr
389387
}
390388
}
391389

392-
void PortWidget::MakeTheConnection(const SCIRun::Dataflow::Networks::ConnectionDescription& cd)
390+
void PortWidget::MakeTheConnection(const ConnectionDescription& cd)
393391
{
394392
if (matches(cd))
395393
{
396394
auto out = portWidgetMap_[cd.out_.moduleId_][false][cd.out_.portId_];
397395
auto in = portWidgetMap_[cd.in_.moduleId_][true][cd.in_.portId_];
398-
auto id = SCIRun::Dataflow::Networks::ConnectionId::create(cd);
396+
auto id = ConnectionId::create(cd);
399397
auto c = connectionFactory_->makeFinishedConnection(out, in, id);
400398
connect(c, SIGNAL(deleted(const SCIRun::Dataflow::Networks::ConnectionId&)), this, SIGNAL(connectionDeleted(const SCIRun::Dataflow::Networks::ConnectionId&)));
401399
connect(c, SIGNAL(noteChanged()), this, SIGNAL(connectionNoteChanged()));
@@ -430,7 +428,7 @@ void PortWidget::moveEvent(QMoveEvent * event)
430428
Q_EMIT portMoved();
431429
}
432430

433-
bool PortWidget::matches(const SCIRun::Dataflow::Networks::ConnectionDescription& cd) const
431+
bool PortWidget::matches(const ConnectionDescription& cd) const
434432
{
435433
return (isInput() && cd.in_.moduleId_ == moduleId_ && cd.in_.portId_ == portId_)
436434
|| (!isInput() && cd.out_.moduleId_ == moduleId_ && cd.out_.portId_ == portId_);

0 commit comments

Comments
 (0)