#include "syscommugroup.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "syscommugroupthread.h" #define ENUM_SYS_COMMU_SEND_MODE "sys-commu-send-mode" SysCommuGroup::SysCommuGroup(const QString &iModuleNameStr, const QVariantMap &iUrlPars, QWidget *iParent) : TopClassAbs(iParent) { this->setLicenseKey(""); this->initModule(iModuleNameStr, iUrlPars); QWidget *centerWgt = new QWidget(this); this->setCentralWidget(centerWgt); QVBoxLayout *centerLayout = new QVBoxLayout(centerWgt); centerLayout->setMargin(0); centerLayout->setSpacing(0); if (QToolBar *toolbar = qobject_cast(uim()->getWidget("MAIN_TOOLBAR"))) { centerLayout->addWidget(toolbar, 0); } mBodyLayout = new QHBoxLayout(); centerLayout->addLayout(mBodyLayout, 1); mBodyLayout->setMargin(TTHEME_DP(16)); mBodyLayout->setSpacing(0); mUiLoader = new TUiLoader(this); mUiLoader->setProperty("SS_BG", "PANLE"); mUiLoader->setScriptEngine(APP->scriptEngine()); mUiLoader->setSelf(this); mBodyLayout->addStretch(1); mBodyLayout->addWidget(mUiLoader, 99999); mBodyLayout->addStretch(1); initPlantList(); mUiLoader->setUiStr(ui("top-commu-group").toString()); mTableView = qobject_cast(mUiLoader->getObject("MAILINFO_LIST")); if (QMenu *table_popup = qobject_cast(uim()->getWidget("MAINMENU_POPUP"))) { mTableView->setContextMenu(table_popup); } connect(mTableView->selectionModel(), &QItemSelectionModel::selectionChanged, [=](){ mUiLoader->refreshState();refreshActionState(); }); connect(mUiLoader, SIGNAL(dataChanged()), this, SLOT(setDataModified())); initSearchEntry(); restoreSizeState(); uidChangeEvent(this->uid()); refreshActionState(); } SysCommuGroup::~SysCommuGroup() { saveSizeState(); } void SysCommuGroup::reload() { QString uidStr = lastUid().isEmpty() ? uid() : lastUid(); setUid(uidStr, true); } void SysCommuGroup::copy() { setLastUid(this->uid()); setUid(0, false); QVariantMap data; data.insert("sys_name", ""); data.insert("id", ""); setData(data); setTitle(ttr("New MailGroup")); setDataModified(true); } void SysCommuGroup::create() { setLastUid(this->uid()); setUid(0, true); setDataModified(true); } void SysCommuGroup::clearData() { mUiLoader->loadValues(QVariantMap(), true); if (mTableView != nullptr) { mTableView->loadData(QVariantList()); } } void SysCommuGroup::setData(const QVariantMap &iDataMap) { QVariantMap dataMap = iDataMap; dataMap.insert("attr_data.category", iDataMap.value("attr_data").toMap().value("category").toString()); dataMap.insert("attr_data.plant", iDataMap.value("attr_data").toMap().value("plant").toString()); dataMap.insert("attr_data.department", iDataMap.value("attr_data").toMap().value("department").toString()); mUiLoader->loadValues(dataMap, false); TEnumList* enumLst = TOPENM->enumList(ENUM_SYS_COMMU_SEND_MODE); if ((mTableView != nullptr) && iDataMap.contains("MAILINFO_LIST")) { QVariantList dataLst; for (QVariant oneVar : iDataMap.value("MAILINFO_LIST").toList()) { QVariantMap oneMap = oneVar.toMap(); oneMap.insert("mode.text", enumLst->itemText(oneMap.value("mode").toString())); if (QStringLiteral("pub_contacts") == oneMap.value("src_type").toString()) { oneMap.insert("src_type.text", ttr("Contact")); } else if (QStringLiteral("manual") == oneMap.value("src_type")) { oneMap.insert("src_type.text", ttr("manual")); } else { oneMap.insert("src_type.text", oneMap.value("src_type").toString()); } dataLst.append(oneMap); } fillTableData(dataLst); } if (iDataMap.contains("name")) { setTitle(ttr("MailGroup-%1").arg(iDataMap.value("name").toString())); } } QVariantMap SysCommuGroup::getData() const { QVariantMap saveMap; QMap updatePolicy; TopClassHelper::fetchSaveFieldsFromUi(mUiLoader, saveMap, updatePolicy); if (mTableView != nullptr) { saveMap.insert("MAILINFO_LIST", mTableView->allDataMap()); } QVariantMap newUpdatePolicy; for (QMap::iterator it = updatePolicy.begin(); it != updatePolicy.end(); ++it) { newUpdatePolicy.insert(it.key(), it.value()); } saveMap.insert("id", this->uid()); saveMap.insert("updatePolicy", newUpdatePolicy); return saveMap; } void SysCommuGroup::saveData() { // 有效性验证 QVariantList errLst = mUiLoader->validateAll("COMMIT", true, "ERROR"); if (!errLst.isEmpty()) { QStringList errStrLst; for (QVariant err : errLst) { errStrLst.append(err.toMap().value("text").toString()); } TMessageBox::error(this, ttr("Save data failed!"), errStrLst.join("\n")); return; } t::saving(this); QVariantMap dataMap = getData(); QVariantMap attrData = dataMap.value("attr_data").toMap(); if (this->uid().toInt() == 0 && !mWorkcenterId.isEmpty()) { TSqlSelectorV2 selector; selector.setTable("mes_workcenter AS MW1 left join mes_workcenter AS MW2 ON MW1.parent_id = MW2.id"); selector.setField("MW1.code as department, MW2.code as plant"); selector.setWhere("MW1.id", mWorkcenterId); QVariant departData = doThreadWork(new TopClassSqlThread(this), TOPSQLTHREAD_SELECT_MAP, QVariant::fromValue(selector)); TDataResponse departRes(departData.toMap()); if (departRes.hasError()) { alertError(ttr("Save data failed!"), departRes.errText()); return; } else { QVariantMap departMap = departRes.data().toMap(); attrData = TDataParse::mergeVariantMap(attrData, departMap); dataMap.insert("attr_data", attrData); } } else if (!mWorkcenterId.isEmpty()) { attrData.remove("plant"); attrData.remove("department"); dataMap.insert("attr_data", attrData); } QVariant data = doThreadWork(new SysCommuGroupThread(this), "SAVE_DATA", dataMap); unloading(); TDataResponse dataRes(data.toMap()); if (dataRes.hasError()) { alertError(ttr("Save data failed!"), dataRes.errText()); } else { setUid(dataRes.data().toInt()); emit dataSaved(this->uid()); alertOk(ttr("Data saved")); } } void SysCommuGroup::setSendMode(const QString &iModeStr) { QModelIndexList indexLst = mTableView->selectedIndexes(); if (indexLst.isEmpty()) { return; } TEnumList *enumLst = TOPENM->enumList(ENUM_SYS_COMMU_SEND_MODE); for (QModelIndex index : indexLst) { mTableView->setRowKeyValue(index, "mode", iModeStr); mTableView->setRowKeyValue(index, "mode.text", enumLst->itemText(iModeStr)); } } void SysCommuGroup::showAddContactMail() { QVariantList selLst = getAddContactMailList(); if (selLst.isEmpty()) { return; } QVariantList selData; for (QVariant item : selLst) { QVariantMap itemMap = item.toMap(); itemMap.insert("src_uid", itemMap.value("id")); itemMap.insert("address", itemMap.value("mail")); itemMap.insert("mode", "mail_to"); itemMap.insert("src_type", "pub_contacts"); itemMap.insert("src_type.text", ttr("Contact")); TEnumList *enumLst = TOPENM->enumList(ENUM_SYS_COMMU_SEND_MODE); itemMap.insert("mode.text",enumLst->itemText("mail_to")); selData.append(QVariant(itemMap)); } QModelIndexList indexs = mTableView->appendRows(selData); mTableView->unselectAll(); mTableView->selectRows(indexs); mTableView->scrollToBottom(); } QVariantList SysCommuGroup::getAddContactMailList() { TTableViewDialog *dialog = new TTableViewDialog(this); dialog->setTitle( ttr("Add Mail")); dialog->setButtons(QStringList() << ttr("Ok") + ":Ok" << ttr("Cancel") + ":Cancel" << ttr("Unselect All") + ":UnselectAll:ResetRole"); QVariantList headeritems; headeritems << QVariant(); headeritems << tableHeaderItem("name", ttr("Login Name"),100, "string"); headeritems << tableHeaderItem("company", ttr("Company"),100, "string"); headeritems << tableHeaderItem("department", ttr("DepartMent"), 100, "string"); headeritems << tableHeaderItem("mail", ttr("Mail"), 100, "string"); headeritems << tableHeaderItem("remark", ttr("Remark"), 100, "string"); dialog->setPrimaryKey("id"); dialog->setDataKeyList(QStringList() << "id" << "name" << "company" << "department" << "remark" << "mail"); dialog->setHeaderItem(headeritems); dialog->searchEntry()->setPlaceholderText(ttr("Search %1")); dialog->searchEntry()->setSearchDelayTime(1); dialog->searchEntry()->setOptionList(TDataParse::headerItem2searchList(headeritems)); dialog->setSearchKeys(QStringList() << "name" << "company" << "department" << "remark" << "mail"); dialog->tableView()->verticalHeader()->setVisible(false); dialog->setSearchText(""); dialog->setSelectionMode(QAbstractItemView::ExtendedSelection); dialog->tableView()->horizontalHeader()->setStretchLastSection(true); // 增加other_mail字段的查找 TSqlSelectorV2 selector; selector.setTable("pub_contacts"); selector.fieldRef() << "id" << "name" << "company" << "mail" << "other_mail::json->'work_mail' as workmail" << "other_mail::json->'private_mail' as privatemail" << "department" << "remark"; QStringList excludeIdLst; for (QVariant id : mTableView->allPrimaryKey()) { if(id.toString().trimmed().isEmpty()) { continue; } excludeIdLst.append(id.toString().trimmed()); } if (excludeIdLst.length()>0){ selector.addWhere(QString(" id not in(%1) ").arg(excludeIdLst.join(","))); } QVariant data = doThreadWork(new TopClassSqlThread(this), TOPSQLTHREAD_SELECT_ARRAYMAP, QVariant::fromValue(selector)); TDataResponse dataRes(data.toMap()); if (dataRes.hasError()) { unloading();alertError(ttr("Load data failed!"), dataRes.errText()); return QVariantList(); } QVariantList allContacts = dataRes.data().toList(); // 判断数据库表pub_contacts的mail及other_mail字段 // mail字段优先级最高,other_mail的work_mail次之,other_mail的private_mail最低 QVariantList dataLst; for (QVariant row : allContacts) { QVariantMap map = row.toMap(); QString mail = map["mail"].toString(); if (!mail.trimmed().isEmpty()) { map.insert("mail", mail); } else { QStringList workmail = TDataParse::jsonStr2Variant(map["workmail"].toString()).toStringList(); if (workmail.count() != 0) { map.insert("mail", workmail.first()); } else { QStringList privatemail = TDataParse::jsonStr2Variant(map["privatemail"].toString()).toStringList(); if (privatemail.count() != 0) { map.insert("mail", privatemail.first()); } else { map.insert("mail", ""); } } } dataLst.append(map); } dialog->loadData(dataLst); QHeaderView *headerView = dialog->tableView()->horizontalHeader(); connect(headerView, &QHeaderView::sortIndicatorChanged, [=](){ QString orderField = dialog->tableView()->columnName(headerView->sortIndicatorSection()); QVariantList allDataList = dialog->tableView()->allDataMap(); if (headerView->sortIndicatorOrder() == Qt::AscendingOrder) { qSort(allDataList.begin(), allDataList.end(), [orderField](QVariant a, QVariant b){ return a.toMap().value(orderField).toString() < b.toMap().value(orderField).toString(); }); } else { qSort(allDataList.begin(), allDataList.end(), [orderField](QVariant a, QVariant b){ return a.toMap().value(orderField).toString() > b.toMap().value(orderField).toString(); }); } dialog->tableView()->clearData(); dialog->loadData(allDataList); }); QVariantList selLst = dialog->run(); return selLst; } void SysCommuGroup::showAddContactWeixin() { QVariantList selLst = getAddContactWeixinList(); if (selLst.isEmpty()) { return; } QVariantList selData; for (QVariant item : selLst) { QVariantMap itemMap = item.toMap(); itemMap.insert("src_uid", itemMap.value("id")); itemMap.insert("address", itemMap.value("wechat")); itemMap.insert("mode", "weixin"); itemMap.insert("src_type", "pub_contacts"); itemMap.insert("src_type.text", ttr("Contact")); TEnumList *enumLst = TOPENM->enumList(ENUM_SYS_COMMU_SEND_MODE); itemMap.insert("mode.text", enumLst->itemText("weixin")); selData.append(QVariant(itemMap)); } QModelIndexList indexs = mTableView->appendRows(selData); mTableView->unselectAll(); mTableView->selectRows(indexs); mTableView->scrollToBottom(); } QVariantList SysCommuGroup::getAddContactWeixinList() { TTableViewDialog *dialog = new TTableViewDialog(this); dialog->setTitle(ttr("Add Wechat")); dialog->setButtons(QStringList() << ttr("Add") + ":Ok" << ttr("Cancel")+":Cancel" << ttr("Unselect All")+":UnselectAll:ResetRole"); QVariantList headeritems; headeritems << QVariant(); headeritems << tableHeaderItem("name", ttr("Login Name"),100, "string"); headeritems << tableHeaderItem("company", ttr("Company"),100, "string"); headeritems << tableHeaderItem("department", ttr("DepartMent"), 100, "string"); headeritems << tableHeaderItem("wechat", ttr("Wechat"), 100, "string"); headeritems << tableHeaderItem("remark", ttr("Remark"), 100, "string"); dialog->setPrimaryKey("id"); dialog->setDataKeyList(QStringList() << "id" << "name" << "company" << "department" << "remark" << "wechat"); dialog->setHeaderItem(headeritems); dialog->searchEntry()->setPlaceholderText(ttr("Search %1")); dialog->searchEntry()->setSearchDelayTime(1); dialog->searchEntry()->setOptionList(TDataParse::headerItem2searchList(headeritems)); dialog->setSearchKeys(QStringList() << "name" << "company" << "department" << "remark" << "wechat"); dialog->tableView()->verticalHeader()->setVisible(false); dialog->setSearchText(""); dialog->setSelectionMode(QAbstractItemView::ExtendedSelection); dialog->tableView()->horizontalHeader()->setStretchLastSection(true); TSqlSelectorV2 selector; selector.setTable("pub_contacts"); selector.fieldRef() << "id" << "name" << "company" << " other_contact::json->'weixin' as wechat " << "department" << "remark"; QStringList excludeIdLst; for (QVariant id : mTableView->allPrimaryKey()){ if(id.toString().trimmed().isEmpty()) continue; excludeIdLst.append(id.toString().trimmed()); } if (excludeIdLst.length() > 0) { selector.addWhere(QString(" id not in(%1) ").arg(excludeIdLst.join(","))); } QVariant data = doThreadWork(new TopClassSqlThread(this), TOPSQLTHREAD_SELECT_ARRAYMAP, QVariant::fromValue(selector)); TDataResponse dataRes(data.toMap()); if (dataRes.hasError()) { unloading(); alertError(ttr("Load data failed!"), dataRes.errText()); return QVariantList(); } QVariantList allContacts = dataRes.data().toList(); // 转换微信json字段 QVariantList dataLst; for (QVariant row : allContacts) { QVariantMap map = row.toMap(); QStringList wechat = TDataParse::jsonStr2Variant(map["wechat"].toString()).toStringList(); if (wechat.count() != 0) { map.insert("wechat", wechat.first()); } else { map.insert("wechat", ""); } dataLst.append(map); } dialog->loadData(dataLst); QHeaderView *headerView = dialog->tableView()->horizontalHeader(); connect(headerView, &QHeaderView::sortIndicatorChanged, [=](){ QString orderField = dialog->tableView()->columnName(headerView->sortIndicatorSection()); QVariantList allDataList = dialog->tableView()->allDataMap(); if (headerView->sortIndicatorOrder() == Qt::AscendingOrder) { qSort(allDataList.begin(), allDataList.end(), [orderField](QVariant a, QVariant b){ return a.toMap().value(orderField).toString() < b.toMap().value(orderField).toString(); }); } else { qSort(allDataList.begin(), allDataList.end(), [orderField](QVariant a, QVariant b){ return a.toMap().value(orderField).toString() > b.toMap().value(orderField).toString(); }); } dialog->tableView()->clearData(); dialog->loadData(allDataList); }); QVariantList selList = dialog->run(); return selList; } void SysCommuGroup::showManuallyAddMail() { TUiloaderDialog *dlg = new TUiloaderDialog(this); dlg->setTitle(ttr("Add Mail")); dlg->resize(300, 200); dlg->uiLoader()->setScriptEngine(APP->scriptEngine()); dlg->setSelf(this); dlg->setUiStr(ui("add-mail").toString()); QVariantMap res = dlg->run(); if (res.isEmpty()) { return; } QString userName = res.value("name").toString(); QString userMail = res.value("address").toString(); QVariantList selData; QVariantMap rowInfo; TEnumList *enumLst = TOPENM->enumList(ENUM_SYS_COMMU_SEND_MODE); rowInfo.insert("mode", QString("mail_to")); rowInfo.insert("mode.text", enumLst->itemText("mail_to")); rowInfo.insert("src_type", "manual"); rowInfo.insert("src_type.text", ttr("manual")); rowInfo.insert("name", userName); rowInfo.insert("address", userMail); selData.append(QVariant(rowInfo)); QModelIndexList indexs = mTableView->appendRows(selData); mTableView->unselectAll(); mTableView->selectRows(indexs); mTableView->scrollToBottom(); } void SysCommuGroup::showManuallyAddWeixin() { TUiloaderDialog *dlg = new TUiloaderDialog(this); dlg->setTitle(ttr("Add Wechat")); dlg->resize(300, 200); dlg->uiLoader()->setScriptEngine(APP->scriptEngine()); dlg->setSelf(this); dlg->setUiStr(ui("add-wechat").toString()); QVariantMap res = dlg->run(); if (res.isEmpty()) { return; } QString userName = res.value("name").toString(); QString userWeixin = res.value("address").toString(); QVariantList selData; QVariantMap rowInfo; TEnumList *toEnumLst = TOPENM->enumList(ENUM_SYS_COMMU_SEND_MODE); rowInfo.insert("mode",QString("weixin")); rowInfo.insert("mode.text", toEnumLst->itemText("weixin")); rowInfo.insert("src_type", "manual"); rowInfo.insert("src_type.text", ttr("manual")); rowInfo.insert("name", userName); rowInfo.insert("address", userWeixin); selData.append(QVariant(rowInfo)); QModelIndexList indexs = mTableView->appendRows(selData); mTableView->unselectAll(); mTableView->selectRows(indexs); mTableView->scrollToBottom(); } void SysCommuGroup::fillTableData(const QVariantList &iDataLst) { TEnumList *enumLst = TOPENM->enumList(ENUM_SYS_COMMU_SEND_MODE); if (!enumLst) { mTableView->loadData(iDataLst); return; } QVariantList dataLst; for (QVariant item : iDataLst) { QVariantMap itemMap = item.toMap(); itemMap.insert("to_cc.text", enumLst->itemText(itemMap.value("to_cc").toString())); itemMap.insert("src.text", ttr(itemMap.value("src").toString())); dataLst << itemMap; } mTableView->loadData(dataLst); } TTableView *SysCommuGroup::getTableView() { return mTableView; } QVariantList SysCommuGroup::plantList() { return mPlantList; } QVariantList SysCommuGroup::departmentList() { return mDepartmentList; } QVariantMap SysCommuGroup::departmentMap() { return mDepartmentMap; } void SysCommuGroup::setWorkcenterId(const QString &iId) { mWorkcenterId = iId; mUiLoader->refreshState(); refreshActionState(); } QString SysCommuGroup::workcenterId() { return mWorkcenterId; } void SysCommuGroup::uidChangeEvent(const QString &iUidStr) { if (iUidStr.toInt() == -1) { this->setEnabled(false); } else { this->setEnabled(true); } if (iUidStr.toInt() == 0) { setTitle(ttr("New Contact Group")); clearData(); } else { t::loading(this); QVariant data = doThreadWork(new SysCommuGroupThread(this), "LOAD_DATA", QVariant(this->uid())); TDataResponse dataRes(data.toMap()); unloading(); if (dataRes.hasError()) { alertError(ttr("Load data failed!"), dataRes.errText()); } else { QVariantMap dataMap = dataRes.data().toMap(); clearData(); setData(dataMap); setTitle(ttr("Contact Group-%1").arg(dataMap.value("title").toString())); } } setDataModified(false); } void SysCommuGroup::resizeEvent(QResizeEvent *iEvent) { QSize size = iEvent->size(); if (size.width() > this->perfectSize().width()) { mBodyLayout->setMargin(TTHEME_DP(16)); mUiLoader->setProperty("SS_BORDER", 1); mUiLoader->setStyleSheet(".Q{}"); } else { mBodyLayout->setMargin(0); mUiLoader->setProperty("SS_BORDER", 0); mUiLoader->setStyleSheet(".Q{}"); } } void SysCommuGroup::initSearchEntry() { if (TSearchEntry *searchentry = qobject_cast(mUiLoader->getObject("search"))) { QVariantList searchOptionLst; QVariantMap option; option.insert("name", "name"); option.insert("text", ttr("User Name")); searchOptionLst.append(option); searchentry->setPlaceholderText(ttr("Search %1")); searchentry->setSearchDelayTime(1); searchentry->setOptionList(searchOptionLst); mSearchKey << "name"; connect(searchentry, SIGNAL(search(QString,QVariant)), this, SLOT(onDoSearch(QString,QVariant))); } } QVariantMap SysCommuGroup::tableHeaderItem(const QString &iKeyStr, const QString &iDispStr, int iSizeInt, const QString &iTypeStr) { QVariantList itemLst; itemLst << "name" << iKeyStr << "display" << iDispStr << "displayRole" << QString("$%1").arg(iKeyStr) << "resizeMode" << "Interactive" << "size" << iSizeInt ; if (!iTypeStr.isEmpty()) { itemLst << "search" << iTypeStr; } return TDataParse::variantList2Map(itemLst); } void SysCommuGroup::initPlantList() { TSqlSelectorV2 selector; selector.setTable("mes_workcenter"); selector.setField("id,code AS name,name AS text"); selector.setWhere("node_type = 'plant'"); selector.addWhere("attr_data#>>'{del_flag}' <> '1' OR attr_data#>>'{del_flag}' IS NULL"); selector.setOrder("code", Qt::AscendingOrder); QVariant data = doThreadWork(new TopClassSqlThread(this),TOPSQLTHREAD_SELECT_ARRAYMAP,QVariant::fromValue(selector)); TDataResponse dataRes(data.toMap()); if (dataRes.hasError()) { alertError(ttr("Load data failed!"), dataRes.errText()); return; } else { mPlantList = dataRes.data().toList(); } QStringList pidList; for (QVariant &var: mPlantList) { QVariantMap varMap = var.toMap(); pidList.append(varMap.value("id").toString()); } if (pidList.length() > 0) { selector.clear(); selector.setTable("mes_workcenter"); selector.setField("parent_id,code AS name,name AS text"); selector.setWhere("parent_id", pidList); selector.addWhere("attr_data#>>'{del_flag}' <> '1' OR attr_data#>>'{del_flag}' IS NULL"); selector.setOrder("code", Qt::AscendingOrder); QVariant data2 = doThreadWork(new TopClassSqlThread(this),TOPSQLTHREAD_SELECT_ARRAYMAP,QVariant::fromValue(selector)); TDataResponse dataRes2(data2.toMap()); if (dataRes2.hasError()) { alertError(ttr("Load data failed!"), dataRes2.errText()); return; } else { mDepartmentList = dataRes2.data().toList(); for (QVariant &pvar: mPlantList) { QVariantMap pvarMap = pvar.toMap(); QString pid = pvarMap.value("id").toString(); QString pcode = pvarMap.value("name").toString(); QVariantList subList; for (QVariant &cvar: mDepartmentList) { QVariantMap cvarMap = cvar.toMap(); QString cid = cvarMap.value("parent_id").toString(); if (pid == cid) { subList.append(cvarMap); } } mDepartmentMap.insert(pcode, subList); } } } } void SysCommuGroup::onDoSearch(const QString &iSearchStr, const QVariant &iOptions) { if (mTableView) { QRegExp rx(iSearchStr); rx.setPatternSyntax(QRegExp::Wildcard); rx.setCaseSensitivity(Qt::CaseInsensitive); QStringList searchlist = iOptions.toStringList(); if (searchlist.isEmpty()) { searchlist = mSearchKey; } mTableView->findRows(rx,searchlist,1); } }