@@ -1274,22 +1274,27 @@ namespace {
12741274
12751275}
12761276
1277- template <typename T>
1278- class TD ;
12791277
12801278void 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
13511362int 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
13611379void 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
13991417void 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
18521872void 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)
0 commit comments