// !SMT!-S LRESULT UsersFrame::onIgnorePrivate(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { int i = -1; while ((i = ctrlUsers.GetNextItem(i, LVNI_SELECTED)) != -1) { UserInfo *ui = ctrlUsers.getItemData(i); FavoriteManager::getInstance()->setNormalPM(ui->getUser()); ui->columns[COLUMN_IGNORE].clear(); switch (wID) { case IDC_PM_IGNORED: ui->columns[COLUMN_IGNORE] = TSTRING(IGNORE_S); FavoriteManager::getInstance()->setIgnorePM(ui->getUser(), true); break; case IDC_PM_FREE: ui->columns[COLUMN_IGNORE] = TSTRING(FREE_PM_ACCESS); FavoriteManager::getInstance()->setFreePM(ui->getUser(), true); break; }; updateUser(ui->getUser()); ctrlUsers.updateItem(i); } return 0; }
bool UsersFrame::matches(const UserInfo &ui) { if(!filter.empty() && !filter.match(filter.prepare(), [this, &ui](int column) { return Text::fromT(ui.getText(column)); })) { return false; } return show(ui.getUser(), false); }
// !SMT!-S LRESULT UsersFrame::onSetUserLimit(WORD /* wNotifyCode */, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { MENUINFO menuInfo = {0}; menuInfo.cbSize = sizeof(MENUINFO); menuInfo.fMask = MIM_MENUDATA; speedMenu.GetMenuInfo(&menuInfo); const int iLimit = menuInfo.dwMenuData; const int lim = getSpeedLimitByCtrlId(wID, iLimit); int i = -1; while ((i = ctrlUsers.GetNextItem(i, LVNI_SELECTED)) != -1) { UserInfo *ui = ctrlUsers.getItemData(i); FavoriteManager::getInstance()->setUploadLimit(ui->getUser(), lim); ui->columns[COLUMN_SPEED_LIMIT] = Text::toT(FavoriteUser::getSpeedLimitText(lim)); updateUser(ui->getUser()); ctrlUsers.updateItem(i); } return 0; }
void UsersFrame::handleDescription() { if(users->countSelected() == 1) { int i = users->getSelected(); UserInfo* ui = users->getData(i); ParamDlg dlg(this, ui->columns[COLUMN_NICK], T_("Description"), ui->columns[COLUMN_DESCRIPTION]); if(dlg.run() == IDOK) { FavoriteManager::getInstance()->setUserDescription(ui->getUser(), Text::fromT(dlg.getValue())); ui->columns[COLUMN_DESCRIPTION] = dlg.getValue(); } } }
LRESULT UsersFrame::onConnect(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { const int l_cnt = ctrlUsers.GetItemCount(); for (int i = 0; i < l_cnt; ++i) { dcassert(l_cnt == ctrlUsers.GetItemCount()); UserInfo *ui = ctrlUsers.getItemData(i); const string& l_url = FavoriteManager::getUserUrl(ui->getUser()); if (!l_url.empty()) { HubFrame::openWindow(false, l_url); } } return 0; }
LRESULT UsersFrame::onOpenUserLog(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { if (ctrlUsers.GetSelectedCount() == 1) { int i = ctrlUsers.GetNextItem(-1, LVNI_SELECTED); UserInfo* ui = ctrlUsers.getItemData(i); dcassert(i != -1); const auto& l_user = ui->getUser(); // [!] PVS V807 Decreased performance. Consider creating a pointer to avoid using the 'ui->getUser()' expression repeatedly. usersframe.cpp 445 StringMap params; params["hubNI"] = Util::toString(ClientManager::getHubNames(l_user->getCID(), Util::emptyString)); params["hubURL"] = Util::toString(ClientManager::getHubs(l_user->getCID(), Util::emptyString)); params["userCID"] = l_user->getCID().toBase32(); params["userNI"] = l_user->getLastNick(); params["myCID"] = ClientManager::getMyCID().toBase32(); WinUtil::openLog(SETTING(LOG_FILE_PRIVATE_CHAT), params, TSTRING(NO_LOG_FOR_USER)); } return 0; }
void UsersFrame::removeUser(const FavoriteUser& aUser) { dcassert(!ClientManager::isShutdown()); if (!ClientManager::isShutdown()) { const int l_cnt = ctrlUsers.GetItemCount(); for (int i = 0; i < l_cnt; ++i) { dcassert(l_cnt == ctrlUsers.GetItemCount()); UserInfo *ui = ctrlUsers.getItemData(i); if (ui->getUser() == aUser.getUser()) { ctrlUsers.DeleteItem(i); delete ui; setCountMessages(ctrlUsers.GetItemCount()); return; } } } }
LRESULT UsersFrame::onEdit(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { if (ctrlUsers.GetSelectedCount() == 1) { int i = ctrlUsers.GetNextItem(-1, LVNI_SELECTED); UserInfo* ui = ctrlUsers.getItemData(i); dcassert(i != -1); LineDlg dlg; dlg.description = TSTRING(DESCRIPTION); dlg.title = ui->getText(COLUMN_NICK); dlg.line = ui->getText(COLUMN_DESCRIPTION); if (dlg.DoModal(m_hWnd)) { FavoriteManager::getInstance()->setUserDescription(ui->getUser(), Text::fromT(dlg.line)); ui->columns[COLUMN_DESCRIPTION] = dlg.line; ctrlUsers.updateItem(i); } } return 0; }
void UsersFrame::updateUser(const UserPtr& user) { dcassert(!ClientManager::isShutdown()); if (!ClientManager::isShutdown()) { const int l_cnt = ctrlUsers.GetItemCount(); for (int i = 0; i < l_cnt; ++i) { dcassert(l_cnt == ctrlUsers.GetItemCount()); UserInfo *ui = ctrlUsers.getItemData(i); if (ui->getUser() == user) { FavoriteUser currentFavUser; if (FavoriteManager::getFavoriteUser(user, currentFavUser)) { updateUser(i, ui, currentFavUser); } } } } }