Shop - improved commodity search with bar code scanner.

master
Josef Rokos 7 years ago
parent 0ddf8bce92
commit 34e1585327

@ -541,43 +541,48 @@ void ShopForm::on_btnAddItem_clicked()
void ShopForm::on_commoditySearch_textChanged(const QString &text) void ShopForm::on_commoditySearch_textChanged(const QString &text)
{ {
QString replacedText = text; for (int i = 0; i < 2; i++)
if (ui->numOnly->isChecked())
{ {
replacedText = Helper::replaceByNumbers(text); QString replacedText = text;
ui->commoditySearch->setText(replacedText);
}
QSortFilterProxyModel proxy; if (i == 1)
proxy.setSourceModel(m_commodityModel); {
proxy.setFilterKeyColumn(0); replacedText = Helper::replaceByNumbers(text);
proxy.setFilterCaseSensitivity(Qt::CaseInsensitive); //ui->commoditySearch->setText(replacedText);
proxy.setFilterFixedString(replacedText); }
auto moveToIndex = [this](const QModelIndex &matchingIndex) { QSortFilterProxyModel proxy;
ui->commodityTable->scrollTo(matchingIndex,QAbstractItemView::EnsureVisible); proxy.setSourceModel(m_commodityModel);
ui->commodityTable->setCurrentIndex(matchingIndex); proxy.setFilterKeyColumn(0);
}; proxy.setFilterCaseSensitivity(Qt::CaseInsensitive);
proxy.setFilterFixedString(replacedText);
QModelIndex matchingIndex = proxy.mapToSource(proxy.index(0,0)); auto moveToIndex = [this](const QModelIndex &matchingIndex) {
if(matchingIndex.isValid()) { ui->commodityTable->scrollTo(matchingIndex,QAbstractItemView::EnsureVisible);
moveToIndex(matchingIndex); ui->commodityTable->setCurrentIndex(matchingIndex);
m_itemFound = true; };
}
else
{
proxy.setFilterKeyColumn(1);
matchingIndex = proxy.mapToSource(proxy.index(0,0));
if (matchingIndex.isValid()) QModelIndex matchingIndex = proxy.mapToSource(proxy.index(0,0));
{ if(matchingIndex.isValid()) {
moveToIndex(matchingIndex); moveToIndex(matchingIndex);
m_itemFound = true; m_itemFound = true;
break;
} }
else else
{ {
m_itemFound = false; proxy.setFilterKeyColumn(1);
matchingIndex = proxy.mapToSource(proxy.index(0,0));
if (matchingIndex.isValid())
{
moveToIndex(matchingIndex);
m_itemFound = true;
break;
}
else
{
m_itemFound = false;
}
} }
} }
} }

@ -45,13 +45,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QCheckBox" name="numOnly">
<property name="text">
<string>Replace chars by numbers</string>
</property>
</widget>
</item>
<item> <item>
<widget class="QLineEdit" name="commoditySearch"/> <widget class="QLineEdit" name="commoditySearch"/>
</item> </item>

Loading…
Cancel
Save