Use single QVariant tagging on RDTreeWidgetItem instead of setData

* It saves on allocating a vector of vectors and in most cases is all we
  need.
This commit is contained in:
baldurk
2017-04-21 18:45:12 +01:00
parent f65f5ea9da
commit 605fd4dcc5
10 changed files with 114 additions and 101 deletions
@@ -127,7 +127,7 @@ void EnvironmentEditor::on_variables_currentItemChanged(RDTreeWidgetItem *curren
if(!sel)
return;
EnvironmentModification mod = sel[0]->data(0, Qt::UserRole).value<EnvironmentModification>();
EnvironmentModification mod = sel->tag().value<EnvironmentModification>();
if(!mod.value.empty())
{
@@ -214,7 +214,7 @@ void EnvironmentEditor::addModification(EnvironmentModification mod, bool silent
node->setText(2, ToQStr(mod.value));
}
node->setData(0, Qt::UserRole, QVariant::fromValue(mod));
node->setTag(QVariant::fromValue(mod));
ui->variables->setSelectedItem(node);
@@ -236,7 +236,7 @@ QList<EnvironmentModification> EnvironmentEditor::modifications()
for(int i = 0; i < ui->variables->topLevelItemCount(); i++)
{
EnvironmentModification mod =
ui->variables->topLevelItem(i)->data(0, Qt::UserRole).value<EnvironmentModification>();
ui->variables->topLevelItem(i)->tag().value<EnvironmentModification>();
if(!mod.name.empty())
ret.push_back(mod);
+4 -4
View File
@@ -46,7 +46,7 @@ static void setRemoteConnect(RDTreeWidgetItem *item, const RemoteConnect &connec
if(!item)
return;
item->setData(0, Qt::UserRole, QVariant::fromValue(connect));
item->setTag(QVariant::fromValue(connect));
}
static RemoteConnect getRemoteConnect(RDTreeWidgetItem *item)
@@ -54,7 +54,7 @@ static RemoteConnect getRemoteConnect(RDTreeWidgetItem *item)
if(!item)
return RemoteConnect();
return item->data(0, Qt::UserRole).value<RemoteConnect>();
return item->tag().value<RemoteConnect>();
}
static void setRemoteHost(RDTreeWidgetItem *item, RemoteHost *host)
@@ -62,7 +62,7 @@ static void setRemoteHost(RDTreeWidgetItem *item, RemoteHost *host)
if(!item)
return;
item->setData(0, Qt::UserRole + 1, QVariant::fromValue((uintptr_t)host));
item->setTag(QVariant::fromValue((uintptr_t)host));
}
static RemoteHost *getRemoteHost(RDTreeWidgetItem *item)
@@ -70,7 +70,7 @@ static RemoteHost *getRemoteHost(RDTreeWidgetItem *item)
if(!item)
return NULL;
return (RemoteHost *)item->data(0, Qt::UserRole + 1).value<uintptr_t>();
return (RemoteHost *)item->tag().value<uintptr_t>();
}
RemoteManager::RemoteManager(ICaptureContext &ctx, MainWindow *main)