Skip to content

Commit 2da68cb

Browse files
committed
Deleting subnets works
1 parent efd7986 commit 2da68cb

File tree

3 files changed

+42
-18
lines changed

3 files changed

+42
-18
lines changed

src/Interface/Application/SCIRunMainWindow.cc

Lines changed: 37 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1274,22 +1274,27 @@ namespace {
12741274

12751275
}
12761276

1277-
template <typename T>
1278-
class TD;
12791277

12801278
void SCIRunMainWindow::fillSavedSubnetworkMenu()
12811279
{
12821280
auto savedSubnetworks = getSavedSubnetworksMenu(moduleSelectorTreeWidget_);
1283-
for (auto&& tup : zip(savedSubnetworksNames_, savedSubnetworksXml_))
1281+
if (savedSubnetworksNames_.size() != savedSubnetworksXml_.size())
1282+
{
1283+
qDebug() << "invalid subnet saved settings: sizes don't match" << savedSubnetworksNames_.size() << "," << savedSubnetworksXml_.size() << ',' << savedSubnetworksNames_.keys().size() << savedSubnetworksNames_.keys();
1284+
return;
1285+
}
1286+
auto keys = savedSubnetworksNames_.keys();
1287+
for (auto&& tup : zip(savedSubnetworksNames_, savedSubnetworksXml_, keys))
12841288
{
12851289
auto subnet = new QTreeWidgetItem();
12861290
QVariant name, xml;
1287-
boost::tie(name, xml) = tup;
1291+
QString key;
1292+
boost::tie(name, xml, key) = tup;
12881293
subnet->setText(0, name.toString());
12891294
subnet->setToolTip(0, xml.toString());
12901295
subnet->setTextColor(0, CLIPBOARD_COLOR);
12911296
savedSubnetworks->addChild(subnet);
1292-
setupSubnetItem(subnet);
1297+
setupSubnetItem(subnet, false, key);
12931298
}
12941299
}
12951300

@@ -1322,19 +1327,25 @@ void SCIRunMainWindow::fillModuleSelector()
13221327
"QTreeWidget::indicator:checked {image: url(:/general/Resources/faveYes.png);}");
13231328
}
13241329

1325-
void SCIRunMainWindow::setupSubnetItem(QTreeWidgetItem* fave)
1330+
template <class T>
1331+
QString idFromPointer(T* item)
1332+
{
1333+
QString addressString;
1334+
QTextStream addressStream(&addressString);
1335+
addressStream << static_cast<const void*>(item);
1336+
addressStream.flush();
1337+
return addressString;
1338+
}
1339+
1340+
void SCIRunMainWindow::setupSubnetItem(QTreeWidgetItem* fave, bool addToMap, const QString& idFromMap)
13261341
{
13271342
auto dualPushButtons = new QWidget();
13281343
auto hLayout = new QHBoxLayout();
13291344
auto delButton = new QToolButton();
13301345

13311346
delButton->setIcon(QPixmap(":/general/Resources/delete_red.png"));
13321347
delButton->setToolTip("Delete");
1333-
QString addressString;
1334-
QTextStream addressStream(&addressString);
1335-
addressStream << static_cast<const void*>(fave);
1336-
addressStream.flush();
1337-
delButton->setProperty("ID", addressString);
1348+
13381349
connect(delButton, SIGNAL(clicked()), this, SLOT(removeSavedSubnetwork()));
13391350
auto renButton = new QToolButton();
13401351
renButton->setIcon(QPixmap(":/general/Resources/rename.ico"));
@@ -1346,16 +1357,23 @@ void SCIRunMainWindow::setupSubnetItem(QTreeWidgetItem* fave)
13461357
hLayout->addWidget(renButton);
13471358
dualPushButtons->setLayout(hLayout);
13481359
#ifdef WIN32
1349-
int subnetHeight = 28;
1360+
int subnetHeight = 30;
13501361
#else
13511362
int subnetHeight = 35;
13521363
#endif
13531364
dualPushButtons->setMaximumHeight(subnetHeight);
1354-
fave->setData(0, Qt::UserRole, addressString);
1365+
13551366
moduleSelectorTreeWidget_->setItemWidget(fave, 0, dualPushButtons);
1367+
auto id = addToMap ? idFromPointer(fave) + "::" + fave->text(0) : idFromMap;
1368+
delButton->setProperty("ID", id);
1369+
fave->setData(0, Qt::UserRole, id);
13561370

1357-
savedSubnetworksXml_[addressString] = fave->toolTip(0);
1358-
savedSubnetworksNames_[addressString] = fave->text(0);
1371+
if (addToMap)
1372+
{
1373+
//qDebug() << "Adding to saved subnet maps:" << id;
1374+
savedSubnetworksXml_[id] = fave->toolTip(0);
1375+
savedSubnetworksNames_[id] = fave->text(0);
1376+
}
13591377
}
13601378

13611379
void SCIRunMainWindow::handleCheckedModuleEntry(QTreeWidgetItem* item, int column)
@@ -1376,7 +1394,7 @@ void SCIRunMainWindow::handleCheckedModuleEntry(QTreeWidgetItem* item, int colum
13761394
favoriteModuleNames_ << item->text(0);
13771395
else
13781396
{
1379-
setupSubnetItem(fave);
1397+
setupSubnetItem(fave, true, "");
13801398
}
13811399
}
13821400
}
@@ -1399,8 +1417,10 @@ void SCIRunMainWindow::handleCheckedModuleEntry(QTreeWidgetItem* item, int colum
13991417
void SCIRunMainWindow::removeSavedSubnetwork()
14001418
{
14011419
auto toDelete = sender()->property("ID").toString();
1420+
//qDebug() << "removing from subnet maps: " << toDelete << savedSubnetworksNames_.size() << savedSubnetworksXml_.size();
14021421
savedSubnetworksNames_.remove(toDelete);
14031422
savedSubnetworksXml_.remove(toDelete);
1423+
//qDebug() << "done removing from subnet maps: " << toDelete << savedSubnetworksNames_.size() << savedSubnetworksXml_.size();
14041424
auto tree = getSavedSubnetworksMenu(moduleSelectorTreeWidget_);
14051425
for (int i = 0; i < tree->childCount(); ++i)
14061426
{
@@ -1851,7 +1871,7 @@ void SCIRunMainWindow::updateClipboardHistory(const QString& xml)
18511871

18521872
void SCIRunMainWindow::updateSavedSubnetworks()
18531873
{
1854-
qDebug() << "TODO rewrite: updateSavedSubnetworks";
1874+
//qDebug() << "TODO rewrite: updateSavedSubnetworks";
18551875
//savedSubnetworks_.clear();
18561876
//auto menu = getSavedSubnetworksMenu(moduleSelectorTreeWidget_);
18571877
//for (auto i = 0; i < menu->childCount(); ++i)

src/Interface/Application/SCIRunMainWindow.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ public Q_SLOTS:
145145
void setupVersionButton();
146146
void printStyleSheet() const;
147147
void hideNonfunctioningWidgets();
148-
void setupSubnetItem(QTreeWidgetItem* fave);
148+
void setupSubnetItem(QTreeWidgetItem* fave, bool addToMap, const QString& idFromMap);
149149
void showStatusMessage(const QString& str);
150150
void showStatusMessage(const QString& str, int timeInMsec);
151151

src/Interface/Application/Settings.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,11 @@ void SCIRunMainWindow::writeSettings()
313313
settings.setValue("tagNames", tagManagerWindow_->getTagNames());
314314
settings.setValue("tagColors", tagManagerWindow_->getTagColors());
315315
settings.setValue("triggeredScripts", fromStrMap(triggeredEventsWindow_->getScripts()));
316+
//qDebug() << "writing names: " << savedSubnetworksNames_;
316317
settings.setValue("savedSubnetworksNames", savedSubnetworksNames_);
318+
//settings.setValue("savedSubnetworksNames", QMap<QString, QVariant>());
319+
//qDebug() << "writing xml: " << savedSubnetworksXml_;
320+
//settings.setValue("savedSubnetworksXml", QMap<QString, QVariant>());
317321
settings.setValue("savedSubnetworksXml", savedSubnetworksXml_);
318322

319323
settings.setValue("geometry", saveGeometry());

0 commit comments

Comments
 (0)