Skip to content

Commit be702f3

Browse files
committed
2 out of 3 parts working
1 parent 8dbfb44 commit be702f3

File tree

9 files changed

+69
-37
lines changed

9 files changed

+69
-37
lines changed

src/Dataflow/Engine/Controller/NetworkEditorController.cc

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -313,11 +313,6 @@ void NetworkEditorController::connectNewModule(const PortDescriptionInterface* p
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-
321316
void NetworkEditorController::printNetwork() const
322317
{
323318
/// @todo: and make this switchable

src/Dataflow/Engine/Controller/NetworkEditorController.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ namespace Engine {
104104

105105
Networks::ModuleHandle duplicateModule(const Networks::ModuleHandle& module);
106106
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);
108107

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

src/Interface/Application/Connection.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,7 @@ void ConnectionLine::insertNewModule()
460460
auto action = qobject_cast<QAction*>(sender());
461461
auto moduleToAddName = action->text();
462462
Q_EMIT insertNewModule(fromPort_, moduleToAddName.toStdString(), toPort_);
463+
deleteLater();
463464
}
464465

465466
ModuleIdPair ConnectionLine::getConnectedToModuleIds() const

src/Interface/Application/ModuleWidget.cc

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1323,6 +1323,25 @@ void ModuleWidget::connectNewModule(const PortDescriptionInterface* portToConnec
13231323
{
13241324
qDebug() << "Action is not done, need to change a connection.";
13251325
}
1326+
setProperty(addNewModuleActionTypePropertyName(), prop);
1327+
1328+
qDebug() << "PORT CONNS:" << portToConnect->nconnections();
1329+
1330+
auto q = dynamic_cast<const PortWidget*>(portToConnect);
1331+
if (q)
1332+
{
1333+
for (size_t i = 0; i < q->nconnections(); ++i)
1334+
{
1335+
auto cpi = q->connectedPorts()[i];
1336+
qDebug() << QString::fromStdString(cpi->id().toString());
1337+
}
1338+
}
1339+
1340+
qDebug() << "port to connect to:" << sender()->property("inputPortToConnectPid");
1341+
qDebug() << "port to connect to:" << sender()->property("inputPortToConnectMid");
1342+
setProperty("inputPortToConnectPid", sender()->property("inputPortToConnectPid"));
1343+
setProperty("inputPortToConnectMid", sender()->property("inputPortToConnectMid"));
1344+
13261345
Q_EMIT connectNewModule(theModule_, portToConnect, newModuleName);
13271346
}
13281347

src/Interface/Application/NetworkEditor.cc

Lines changed: 45 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -213,20 +213,42 @@ void NetworkEditor::duplicateModule(const ModuleHandle& module)
213213

214214
void NetworkEditor::connectNewModule(const ModuleHandle& moduleToConnectTo, const PortDescriptionInterface* portToConnect, const std::string& newModuleName)
215215
{
216+
auto prop = sender()->property(addNewModuleActionTypePropertyName());
217+
qDebug() << sender();
218+
qDebug() << "NetworkEditor SENDER PROPERTY:" << prop;
219+
qDebug() << sender()->property("inputPortToConnectPid");
220+
216221
auto widget = findById(scene_->items(), moduleToConnectTo->get_id());
217222
QPointF increment(0, portToConnect->isInput() ? -110 : 110);
218223
lastModulePosition_ = widget->scenePos() + increment;
219224

220-
controller_->connectNewModule(portToConnect, newModuleName);
221-
}
225+
qDebug() << "PORT CONNS:" << portToConnect->nconnections();
222226

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;
227+
PortDescriptionInterface* newConnectionInputPort = nullptr;
228+
auto q = dynamic_cast<const PortWidget*>(portToConnect);
229+
if (q)
230+
{
231+
for (size_t i = 0; i < q->nconnections(); ++i)
232+
{
233+
auto cpi = q->connectedPorts()[i];
234+
qDebug() << QString::fromStdString(cpi->id().toString());
235+
if (QString::fromStdString(cpi->id().toString()) == sender()->property("inputPortToConnectPid"))
236+
newConnectionInputPort = cpi;
237+
}
238+
}
239+
240+
if (newConnectionInputPort)
241+
{
242+
qDebug() << "found port object to connect up with:" << newConnectionInputPort;
243+
}
244+
else
245+
{
246+
qDebug() << "Didn't find port object to connect up with, or this is just adding a new module, not inserting.";
247+
}
228248

229-
controller_->insertNewModule(outputPort, inputPort, newModuleName);
249+
controller_->connectNewModule(portToConnect, newModuleName);
250+
251+
//requestConnection(..., newConnectionInputPort);
230252
}
231253

232254
void NetworkEditor::replaceModuleWith(const ModuleHandle& moduleToReplace, const std::string& newModuleName)
@@ -407,7 +429,7 @@ void ZLevelManager::sendToBack()
407429

408430
void ZLevelManager::setZValue(int z)
409431
{
410-
ModuleProxyWidget* node = selectedModuleProxy();
432+
auto node = selectedModuleProxy();
411433
if (node)
412434
{
413435
node->setZValue(z);
@@ -421,7 +443,7 @@ ModuleProxyWidget* getModuleProxy(QGraphicsItem* item)
421443

422444
ModuleWidget* getModule(QGraphicsItem* item)
423445
{
424-
ModuleProxyWidget* proxy = getModuleProxy(item);
446+
auto proxy = getModuleProxy(item);
425447
if (proxy)
426448
return static_cast<ModuleWidget*>(proxy->widget());
427449
return nullptr;
@@ -443,7 +465,7 @@ void NetworkEditor::setVisibility(bool visible)
443465
//TODO copy/paste
444466
ModuleWidget* NetworkEditor::selectedModule() const
445467
{
446-
QList<QGraphicsItem*> items = scene_->selectedItems();
468+
auto items = scene_->selectedItems();
447469
if (items.count() == 1)
448470
{
449471
return getModule(items.first());
@@ -453,7 +475,7 @@ ModuleWidget* NetworkEditor::selectedModule() const
453475

454476
ModuleProxyWidget* ZLevelManager::selectedModuleProxy() const
455477
{
456-
QList<QGraphicsItem*> items = scene_->selectedItems();
478+
auto items = scene_->selectedItems();
457479
if (items.count() == 1)
458480
{
459481
return getModuleProxy(items.first());
@@ -463,19 +485,19 @@ ModuleProxyWidget* ZLevelManager::selectedModuleProxy() const
463485

464486
ConnectionLine* NetworkEditor::selectedLink() const
465487
{
466-
QList<QGraphicsItem*> items = scene_->selectedItems();
488+
auto items = scene_->selectedItems();
467489
if (items.count() == 1)
468490
return dynamic_cast<ConnectionLine*>(items.first());
469491
return nullptr;
470492
}
471493

472494
NetworkEditor::ModulePair NetworkEditor::selectedModulePair() const
473495
{
474-
QList<QGraphicsItem*> items = scene_->selectedItems();
496+
auto items = scene_->selectedItems();
475497
if (items.count() == 2)
476498
{
477-
ModuleWidget* first = getModule(items.first());
478-
ModuleWidget* second = getModule(items.last());
499+
auto first = getModule(items.first());
500+
auto second = getModule(items.last());
479501
if (first && second)
480502
return ModulePair(first, second);
481503
}
@@ -484,7 +506,7 @@ NetworkEditor::ModulePair NetworkEditor::selectedModulePair() const
484506

485507
void NetworkEditor::del()
486508
{
487-
QList<QGraphicsItem*> items = scene_->selectedItems();
509+
auto items = scene_->selectedItems();
488510
QMutableListIterator<QGraphicsItem*> i(items);
489511
while (i.hasNext())
490512
{
@@ -514,7 +536,7 @@ void NetworkEditor::copy()
514536
{
515537
for (const auto& item : selected)
516538
{
517-
if (ModuleProxyWidget* w = dynamic_cast<ModuleProxyWidget*>(item))
539+
if (auto w = dynamic_cast<ModuleProxyWidget*>(item))
518540
{
519541
if (w->getModuleWidget()->getModuleId() == mod->get_id().id_)
520542
return true;
@@ -554,7 +576,7 @@ void NetworkEditor::copy()
554576

555577
void NetworkEditor::paste()
556578
{
557-
QString str = QApplication::clipboard()->text();
579+
auto str = QApplication::clipboard()->text();
558580

559581
std::istringstream istr(str.toStdString());
560582
try
@@ -628,7 +650,7 @@ void NetworkEditor::mouseMoveEvent(QMouseEvent *event)
628650
if (event->button() != Qt::LeftButton)
629651
Q_EMIT networkEditorMouseButtonPressed();
630652

631-
if (ConnectionLine* cL = getSingleConnectionSelected())
653+
if (auto cL = getSingleConnectionSelected())
632654
{
633655
if (event->buttons() & Qt::LeftButton)
634656
{
@@ -667,7 +689,7 @@ ConnectionLine* NetworkEditor::getSingleConnectionSelected()
667689

668690
void NetworkEditor::unselectConnectionGroup()
669691
{
670-
QList<QGraphicsItem*> items = scene_->selectedItems();
692+
auto items = scene_->selectedItems();
671693
if (items.count() == 3)
672694
{
673695
int hasConnection = 0;
@@ -961,7 +983,7 @@ void NetworkEditor::loadNetwork(const NetworkFileHandle& xml)
961983

962984
Q_FOREACH(QGraphicsItem* item, scene_->items())
963985
{
964-
if (ModuleProxyWidget* w = dynamic_cast<ModuleProxyWidget*>(item))
986+
if (auto w = dynamic_cast<ModuleProxyWidget*>(item))
965987
{
966988
w->getModuleWidget()->postLoadAction();
967989
}
@@ -980,7 +1002,7 @@ void NetworkEditor::appendToNetwork(const NetworkFileHandle& xml)
9801002
Q_FOREACH(QGraphicsItem* item, scene_->items())
9811003
{
9821004
if (!originalItems.contains(item))
983-
if (ModuleProxyWidget* w = dynamic_cast<ModuleProxyWidget*>(item))
1005+
if (auto w = dynamic_cast<ModuleProxyWidget*>(item))
9841006
{
9851007
w->getModuleWidget()->postLoadAction();
9861008
}

src/Interface/Application/NetworkEditor.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,6 @@ 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);
223222
void replaceModuleWith(const SCIRun::Dataflow::Networks::ModuleHandle& moduleToReplace, const std::string& newModuleName);
224223
void executeAll();
225224
void executeModule(const SCIRun::Dataflow::Networks::ModuleHandle& module);

src/Interface/Application/NetworkEditorControllerGuiProxy.cc

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -144,11 +144,6 @@ void NetworkEditorControllerGuiProxy::connectNewModule(const PortDescriptionInte
144144
controller_->connectNewModule(portToConnect, newModuleName);
145145
}
146146

147-
void NetworkEditorControllerGuiProxy::insertNewModule(const PortDescriptionInterface* outputPort, const PortDescriptionInterface* inputPort, const std::string& newModuleName)
148-
{
149-
controller_->insertNewModule(outputPort, inputPort, newModuleName);
150-
}
151-
152147
const ModuleDescriptionMap& NetworkEditorControllerGuiProxy::getAllAvailableModuleDescriptions() const
153148
{
154149
return controller_->getAllAvailableModuleDescriptions();

src/Interface/Application/NetworkEditorControllerGuiProxy.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ namespace Gui {
5252
void removeConnection(const SCIRun::Dataflow::Networks::ConnectionId& id);
5353
void duplicateModule(const SCIRun::Dataflow::Networks::ModuleHandle& module);
5454
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);
5655
SCIRun::Dataflow::Networks::NetworkFileHandle saveNetwork() const;
5756
SCIRun::Dataflow::Networks::NetworkFileHandle serializeNetworkFragment(SCIRun::Dataflow::Networks::ModuleFilter modFilter, SCIRun::Dataflow::Networks::ConnectionFilter connFilter) const;
5857
void loadNetwork(const SCIRun::Dataflow::Networks::NetworkFileHandle& xml);

src/Interface/Application/Port.cc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -606,12 +606,15 @@ void PortWidget::connectNewModule()
606606
Q_EMIT connectNewModule(this, moduleToAddName.toStdString());
607607
}
608608

609-
void PortWidget::insertNewModule(const SCIRun::Dataflow::Networks::PortDescriptionInterface* output, const std::string& newModuleName, const SCIRun::Dataflow::Networks::PortDescriptionInterface* input)
609+
void PortWidget::insertNewModule(const PortDescriptionInterface* output, const std::string& newModuleName, const PortDescriptionInterface* input)
610610
{
611611
qDebug() << "NEW SLOT:" << sender();
612612
//auto action = qobject_cast<QAction*>(sender());
613613
qDebug() << "PortWidget SENDER PROPERTY:" << sender()->property(addNewModuleActionTypePropertyName());
614614
setProperty(addNewModuleActionTypePropertyName(), sender()->property(addNewModuleActionTypePropertyName()));
615+
setProperty("inputPortToConnectPid", QString::fromStdString(input->id().toString()));
616+
setProperty("inputPortToConnectMid", QString::fromStdString(input->getUnderlyingModuleId().id_));
617+
615618
Q_EMIT connectNewModule(output, newModuleName);
616619
}
617620

0 commit comments

Comments
 (0)