/// <param name="other">The QTreeWidgetItem to compare against for sorting</param>
/// <returns>True if this is less than other, else false.</returns>
booloperator<(constQTreeWidgetItem&other)const
{
intcolumn=treeWidget()->sortColumn();
eVariationIdindex1,index2;
doubleweight1=0,weight2=0;
VariationTreeWidgetItem<T>*varItemWidget;
VariationTreeDoubleSpinBox<T>*spinBox1,*spinBox2;
QWidget*itemWidget1=treeWidget()->itemWidget(const_cast<VariationTreeWidgetItem<T>*>(this),1);//Get the widget for the second column.
if(spinBox1=dynamic_cast<VariationTreeDoubleSpinBox<T>*>(itemWidget1))//Cast the widget to the VariationTreeDoubleSpinBox type.
{
QWidget*itemWidget2=treeWidget()->itemWidget(const_cast<QTreeWidgetItem*>(&other),1);//Get the widget for the second column of the widget item passed in.
if(spinBox2=dynamic_cast<VariationTreeDoubleSpinBox<T>*>(itemWidget2))//Cast the widget to the VariationTreeDoubleSpinBox type.
{
if(spinBox1->IsParam()||spinBox2->IsParam())//Do not sort params, their order will always remain the same.
returnfalse;
weight1=spinBox1->value();
weight2=spinBox2->value();
index1=spinBox1->GetVariation()->VariationId();
index2=spinBox2->GetVariation()->VariationId();
if(column==0)//First column clicked, sort by variation index.
{
returnindex1<index2;
}
elseif(column==1)//Second column clicked, sort by weight.