From: <arn...@us...> - 2006-04-30 11:10:19
|
Revision: 599 Author: arnetheduck Date: 2006-04-30 04:09:50 -0700 (Sun, 30 Apr 2006) ViewCVS: http://svn.sourceforge.net/dcplusplus/?rev=599&view=rev Log Message: ----------- CID display added here and there (in frames, when nick missing) Modified Paths: -------------- dcplusplus/trunk/Example.xml dcplusplus/trunk/changelog.txt dcplusplus/trunk/client/BufferedSocket.cpp dcplusplus/trunk/client/ClientManager.cpp dcplusplus/trunk/client/ClientManager.h dcplusplus/trunk/client/QueueManager.cpp dcplusplus/trunk/client/StringDefs.cpp dcplusplus/trunk/client/StringDefs.h dcplusplus/trunk/windows/FinishedFrame.cpp dcplusplus/trunk/windows/FinishedULFrame.cpp dcplusplus/trunk/windows/HubFrame.cpp dcplusplus/trunk/windows/HubFrame.h dcplusplus/trunk/windows/SearchFrm.cpp dcplusplus/trunk/windows/SearchFrm.h dcplusplus/trunk/windows/TransferView.cpp dcplusplus/trunk/windows/TransferView.h dcplusplus/trunk/windows/UsersFrame.cpp dcplusplus/trunk/windows/UsersFrame.h Modified: dcplusplus/trunk/Example.xml =================================================================== --- dcplusplus/trunk/Example.xml 2006-04-30 09:27:55 UTC (rev 598) +++ dcplusplus/trunk/Example.xml 2006-04-30 11:09:50 UTC (rev 599) @@ -41,6 +41,7 @@ <String Name="BrowseAccel">&Browse...</String> <String Name="BrowseFileList">Browse file list</String> <String Name="ChooseFolder">Choose folder</String> + <String Name="Cid">CID</String> <String Name="Close">Close</String> <String Name="CloseConnection">Close connection</String> <String Name="ClosingConnection">Closing connection...</String> Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2006-04-30 09:27:55 UTC (rev 598) +++ dcplusplus/trunk/changelog.txt 2006-04-30 11:09:50 UTC (rev 599) @@ -3,8 +3,10 @@ * Fixed an issue where client could be crashed from remote * Fixed an issue bad nicks could cause directories to be created in log / file list download folder * Changed autodrop default to 2 for fewer unexpected autodrops (thanks paka) +* Saved users file more often to have fewer missing nicks around +* CID of user shown if nick is missing (in queue for example) +* Added display of CID in a few places - -- 0.689 2006-04-01 -- * Fixed displaying of available bytes when user list is off * Fixed a potential crash when not showing user list Modified: dcplusplus/trunk/client/BufferedSocket.cpp =================================================================== --- dcplusplus/trunk/client/BufferedSocket.cpp 2006-04-30 09:27:55 UTC (rev 598) +++ dcplusplus/trunk/client/BufferedSocket.cpp 2006-04-30 11:09:50 UTC (rev 599) @@ -269,7 +269,7 @@ size_t readPos = 0; bool readDone = false; - dcdebug("Starting threadSend"); + dcdebug("Starting threadSend\n"); while(true) { if(!readDone && readBuf.size() > readPos) { // Fill read buffer Modified: dcplusplus/trunk/client/ClientManager.cpp =================================================================== --- dcplusplus/trunk/client/ClientManager.cpp 2006-04-30 09:27:55 UTC (rev 598) +++ dcplusplus/trunk/client/ClientManager.cpp 2006-04-30 11:09:50 UTC (rev 599) @@ -112,10 +112,11 @@ if(lst.empty()) { // Offline perhaps? UserIter i = users.find(cid); - if(i != users.end()) + if(i != users.end() && !i->second->getFirstNick().empty()) { lst.push_back(i->second->getFirstNick()); - else + } else { lst.push_back('{' + cid.toBase32() + '}'); + } } return lst; } @@ -452,7 +453,7 @@ } } -void ClientManager::on(Save, SimpleXML*) throw() { +void ClientManager::save() { Lock l(cs); try { @@ -485,6 +486,10 @@ } } +void ClientManager::on(Save, SimpleXML*) throw() { + save(); +} + User::Ptr& ClientManager::getMe() { if(!me) { Lock l(cs); Modified: dcplusplus/trunk/client/ClientManager.h =================================================================== --- dcplusplus/trunk/client/ClientManager.h 2006-04-30 09:27:55 UTC (rev 598) +++ dcplusplus/trunk/client/ClientManager.h 2006-04-30 11:09:50 UTC (rev 599) @@ -106,6 +106,8 @@ CID getMyCID(); const CID& getMyPID(); + + void save(); private: typedef HASH_MAP<string, User::Ptr> LegacyMap; typedef LegacyMap::iterator LegacyIter; Modified: dcplusplus/trunk/client/QueueManager.cpp =================================================================== --- dcplusplus/trunk/client/QueueManager.cpp 2006-04-30 09:27:55 UTC (rev 598) +++ dcplusplus/trunk/client/QueueManager.cpp 2006-04-30 11:09:50 UTC (rev 599) @@ -1179,6 +1179,8 @@ File::deleteFile(getQueueFile()); File::renameFile(getQueueFile() + ".tmp", getQueueFile()); + ClientManager::getInstance()->save(); + dirty = false; } catch(const FileException&) { // ... Modified: dcplusplus/trunk/client/StringDefs.cpp =================================================================== --- dcplusplus/trunk/client/StringDefs.cpp 2006-04-30 09:27:55 UTC (rev 598) +++ dcplusplus/trunk/client/StringDefs.cpp 2006-04-30 11:09:50 UTC (rev 599) @@ -42,6 +42,7 @@ "&Browse...", "Browse file list", "Choose folder", +"CID", "Close", "Close connection", "Closing connection...", @@ -644,6 +645,7 @@ "BrowseAccel", "BrowseFileList", "ChooseFolder", +"Cid", "Close", "CloseConnection", "ClosingConnection", Modified: dcplusplus/trunk/client/StringDefs.h =================================================================== --- dcplusplus/trunk/client/StringDefs.h 2006-04-30 09:27:55 UTC (rev 598) +++ dcplusplus/trunk/client/StringDefs.h 2006-04-30 11:09:50 UTC (rev 599) @@ -45,6 +45,7 @@ BROWSE_ACCEL, // "&Browse..." BROWSE_FILE_LIST, // "Browse file list" CHOOSE_FOLDER, // "Choose folder" + CID, // "CID" CLOSE, // "Close" CLOSE_CONNECTION, // "Close connection" CLOSING_CONNECTION, // "Closing connection..." Modified: dcplusplus/trunk/windows/FinishedFrame.cpp =================================================================== --- dcplusplus/trunk/windows/FinishedFrame.cpp 2006-04-30 09:27:55 UTC (rev 598) +++ dcplusplus/trunk/windows/FinishedFrame.cpp 2006-04-30 11:09:50 UTC (rev 599) @@ -21,234 +21,8 @@ #include "Resource.h" #include "FinishedFrame.h" -#include "WinUtil.h" -#include "TextFrame.h" -#include "../client/ClientManager.h" -#include "../client/StringTokenizer.h" -int FinishedFrame::columnIndexes[] = { COLUMN_DONE, COLUMN_FILE, COLUMN_PATH, COLUMN_NICK, COLUMN_HUB, COLUMN_SIZE, COLUMN_SPEED, COLUMN_CRC32 }; -int FinishedFrame::columnSizes[] = { 100, 110, 290, 125, 80, 80, 80, 80 }; -static ResourceManager::Strings columnNames[] = { ResourceManager::FILENAME, ResourceManager::TIME, ResourceManager::PATH, -ResourceManager::NICK, ResourceManager::HUB, ResourceManager::SIZE, ResourceManager::SPEED, ResourceManager::CRC_CHECKED -}; - -LRESULT FinishedFrame::onCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) -{ - CreateSimpleStatusBar(ATL_IDS_IDLEMESSAGE, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | SBARS_SIZEGRIP); - ctrlStatus.Attach(m_hWndStatusBar); - - ctrlList.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | - WS_HSCROLL | WS_VSCROLL | LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS, WS_EX_CLIENTEDGE, IDC_FINISHED); - ctrlList.SetExtendedListViewStyle(LVS_EX_LABELTIP | LVS_EX_HEADERDRAGDROP | LVS_EX_FULLROWSELECT); - - ctrlList.SetImageList(WinUtil::fileImages, LVSIL_SMALL); - ctrlList.SetBkColor(WinUtil::bgColor); - ctrlList.SetTextBkColor(WinUtil::bgColor); - ctrlList.SetTextColor(WinUtil::textColor); - - // Create listview columns - WinUtil::splitTokens(columnIndexes, SETTING(FINISHED_ORDER), COLUMN_LAST); - WinUtil::splitTokens(columnSizes, SETTING(FINISHED_WIDTHS), COLUMN_LAST); - - for(int j=0; j<COLUMN_LAST; j++) { - int fmt = (j == COLUMN_SIZE || j == COLUMN_SPEED) ? LVCFMT_RIGHT : LVCFMT_LEFT; - ctrlList.InsertColumn(j, CTSTRING_I(columnNames[j]), fmt, columnSizes[j], j); - } - - ctrlList.SetColumnOrderArray(COLUMN_LAST, columnIndexes); - ctrlList.setSort(COLUMN_DONE, ExListViewCtrl::SORT_STRING_NOCASE); - - UpdateLayout(); - - FinishedManager::getInstance()->addListener(this); - updateList(FinishedManager::getInstance()->lockList()); - FinishedManager::getInstance()->unlockList(); - - ctxMenu.CreatePopupMenu(); - ctxMenu.AppendMenu(MF_STRING, IDC_VIEW_AS_TEXT, CTSTRING(VIEW_AS_TEXT)); - ctxMenu.AppendMenu(MF_STRING, IDC_OPEN_FILE, CTSTRING(OPEN)); - ctxMenu.AppendMenu(MF_STRING, IDC_OPEN_FOLDER, CTSTRING(OPEN_FOLDER)); - ctxMenu.AppendMenu(MF_SEPARATOR); - ctxMenu.AppendMenu(MF_STRING, IDC_REMOVE, CTSTRING(REMOVE)); - ctxMenu.AppendMenu(MF_STRING, IDC_TOTAL, CTSTRING(REMOVE_ALL)); - ctxMenu.SetMenuDefaultItem(IDC_OPEN_FILE); - - bHandled = FALSE; - return TRUE; -} - -LRESULT FinishedFrame::onContextMenu(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { - if (reinterpret_cast<HWND>(wParam) == ctrlList && ctrlList.GetSelectedCount() > 0) { - POINT pt = { GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) }; - - if(pt.x == -1 && pt.y == -1) { - WinUtil::getContextMenuPos(ctrlList, pt); - } - - ctxMenu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, m_hWnd); - return TRUE; - } - bHandled = FALSE; - return FALSE; -} - -LRESULT FinishedFrame::onColumnClickFinished(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/) { - NMLISTVIEW* const l = (NMLISTVIEW*)pnmh; - if(l->iSubItem == ctrlList.getSortColumn()) { - if (!ctrlList.isAscending()) - ctrlList.setSort(-1, ctrlList.getSortType()); - else - ctrlList.setSortDirection(false); - } else { - switch(l->iSubItem) { - case COLUMN_SIZE: - ctrlList.setSort(l->iSubItem, ExListViewCtrl::SORT_FUNC, true, sortSize); - break; - case COLUMN_SPEED: - ctrlList.setSort(l->iSubItem, ExListViewCtrl::SORT_FUNC, true, sortSpeed); - break; - default: - ctrlList.setSort(l->iSubItem, ExListViewCtrl::SORT_STRING_NOCASE); - break; - } - } - return 0; -} - -void FinishedFrame::UpdateLayout(BOOL bResizeBars /* = TRUE */) { - RECT rect; - GetClientRect(&rect); - - // position bars and offset their dimensions - UpdateBarsPosition(rect, bResizeBars); - - if(ctrlStatus.IsWindow()) { - CRect sr; - int w[4]; - ctrlStatus.GetClientRect(sr); - w[3] = sr.right - 16; - w[2] = max(w[3] - 100, 0); - w[1] = max(w[2] - 100, 0); - w[0] = max(w[1] - 100, 0); - - ctrlStatus.SetParts(4, w); - } - - CRect rc(rect); - ctrlList.MoveWindow(rc); -} - -LRESULT FinishedFrame::onDoubleClick(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/) { - - NMITEMACTIVATE * const item = (NMITEMACTIVATE*) pnmh; - - if(item->iItem != -1) { - FinishedItem* entry = (FinishedItem*)ctrlList.GetItemData(item->iItem); - WinUtil::openFile(Text::toT(entry->getTarget())); - } - return 0; -} - -LRESULT FinishedFrame::onViewAsText(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) -{ - int i; - if((i = ctrlList.GetNextItem(-1, LVNI_SELECTED)) != -1) { - FinishedItem * const entry = (FinishedItem*)ctrlList.GetItemData(i); - TextFrame::openWindow(Text::toT(entry->getTarget())); - } - return 0; -} - -LRESULT FinishedFrame::onOpenFile(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) -{ - int i; - if((i = ctrlList.GetNextItem(-1, LVNI_SELECTED)) != -1) { - FinishedItem * const entry = (FinishedItem*)ctrlList.GetItemData(i); - WinUtil::openFile(Text::toT(entry->getTarget())); - } - return 0; -} - -LRESULT FinishedFrame::onOpenFolder(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) -{ - int i; - if((i = ctrlList.GetNextItem(-1, LVNI_SELECTED)) != -1) { - FinishedItem * const entry = (FinishedItem*)ctrlList.GetItemData(i); - WinUtil::openFolder(Text::toT(entry->getTarget())); - } - return 0; -} - -LRESULT FinishedFrame::onRemove(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { - switch(wID) - { - case IDC_REMOVE: - { - int i = -1; - while((i = ctrlList.GetNextItem(-1, LVNI_SELECTED)) != -1) { - FinishedManager::getInstance()->remove((FinishedItem*)ctrlList.GetItemData(i)); - ctrlList.DeleteItem(i); - } - break; - } - case IDC_TOTAL: - FinishedManager::getInstance()->removeAll(); - break; - } - return 0; -} - -LRESULT FinishedFrame::onClose(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) { - if(!closed) { - FinishedManager::getInstance()->removeListener(this); - - closed = true; - PostMessage(WM_CLOSE); - return 0; - } else { - WinUtil::saveHeaderOrder(ctrlList, SettingsManager::FINISHED_ORDER, - SettingsManager::FINISHED_WIDTHS, COLUMN_LAST, columnIndexes, columnSizes); - - bHandled = FALSE; - return 0; - } -} - -LRESULT FinishedFrame::onSpeaker(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/) { - if(wParam == SPEAK_ADD_LINE) { - FinishedItem* entry = (FinishedItem*)lParam; - addEntry(entry); - if(BOOLSETTING(BOLD_FINISHED_DOWNLOADS)) - setDirty(); - updateStatus(); - } else if(wParam == SPEAK_REMOVE) { - updateStatus(); - } else if(wParam == SPEAK_REMOVE_ALL) { - ctrlList.DeleteAllItems(); - updateStatus(); - } - return 0; -} - -void FinishedFrame::addEntry(FinishedItem* entry) { - TStringList l; - l.push_back(Text::toT(Util::getFileName(entry->getTarget()))); - l.push_back(Text::toT(Util::formatTime("%Y-%m-%d %H:%M:%S", entry->getTime()))); - l.push_back(Text::toT(Util::getFilePath(entry->getTarget()))); - l.push_back(Text::toT(entry->getUser())); - l.push_back(Text::toT(entry->getHub())); - l.push_back(Text::toT(Util::formatBytes(entry->getSize()))); - l.push_back(Text::toT(Util::formatBytes(entry->getAvgSpeed()) + "/s")); - l.push_back(entry->getCrc32Checked() ? TSTRING(YES_STR) : TSTRING(NO_STR)); - totalBytes += entry->getChunkSize(); - totalTime += entry->getMilliSeconds(); - - int image = WinUtil::getIconIndex(Text::toT(entry->getTarget())); - int loc = ctrlList.insert(l, image, (LPARAM)entry); - ctrlList.EnsureVisible(loc, FALSE); -} - /** * @file * $Id: FinishedFrame.cpp,v 1.39 2005/12/19 00:15:52 arnetheduck Exp $ Modified: dcplusplus/trunk/windows/FinishedULFrame.cpp =================================================================== --- dcplusplus/trunk/windows/FinishedULFrame.cpp 2006-04-30 09:27:55 UTC (rev 598) +++ dcplusplus/trunk/windows/FinishedULFrame.cpp 2006-04-30 11:09:50 UTC (rev 599) @@ -21,235 +21,7 @@ #include "Resource.h" #include "FinishedULFrame.h" -#include "WinUtil.h" -#include "TextFrame.h" -#include "../client/ClientManager.h" -#include "../client/StringTokenizer.h" - -int FinishedULFrame::columnIndexes[] = { COLUMN_DONE, COLUMN_FILE, COLUMN_PATH, COLUMN_NICK, COLUMN_HUB, COLUMN_SIZE, COLUMN_SPEED }; -int FinishedULFrame::columnSizes[] = { 100, 110, 290, 125, 80, 80, 80 }; -static ResourceManager::Strings columnNames[] = { ResourceManager::FILENAME, ResourceManager::TIME, ResourceManager::PATH, -ResourceManager::NICK, ResourceManager::HUB, ResourceManager::SIZE, ResourceManager::SPEED -}; - -LRESULT FinishedULFrame::onCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) -{ - CreateSimpleStatusBar(ATL_IDS_IDLEMESSAGE, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | SBARS_SIZEGRIP); - ctrlStatus.Attach(m_hWndStatusBar); - - ctrlList.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | - WS_HSCROLL | WS_VSCROLL | LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS, WS_EX_CLIENTEDGE, IDC_FINISHED_UL); - ctrlList.SetExtendedListViewStyle(LVS_EX_LABELTIP | LVS_EX_HEADERDRAGDROP | LVS_EX_FULLROWSELECT); - - ctrlList.SetImageList(WinUtil::fileImages, LVSIL_SMALL); - ctrlList.SetBkColor(WinUtil::bgColor); - ctrlList.SetTextBkColor(WinUtil::bgColor); - ctrlList.SetTextColor(WinUtil::textColor); - - // Create listview columns - WinUtil::splitTokens(columnIndexes, SETTING(FINISHED_UL_ORDER), COLUMN_LAST); - WinUtil::splitTokens(columnSizes, SETTING(FINISHED_UL_WIDTHS), COLUMN_LAST); - - for(int j=0; j<COLUMN_LAST; j++) { - int fmt = (j == COLUMN_SIZE || j == COLUMN_SPEED) ? LVCFMT_RIGHT : LVCFMT_LEFT; - ctrlList.InsertColumn(j, CTSTRING_I(columnNames[j]), fmt, columnSizes[j], j); - } - - ctrlList.SetColumnOrderArray(COLUMN_LAST, columnIndexes); - ctrlList.setSort(COLUMN_DONE, ExListViewCtrl::SORT_STRING_NOCASE); - - UpdateLayout(); - - FinishedManager::getInstance()->addListener(this); - updateList(FinishedManager::getInstance()->lockList(true)); - FinishedManager::getInstance()->unlockList(); - - ctxMenu.CreatePopupMenu(); - ctxMenu.AppendMenu(MF_STRING, IDC_VIEW_AS_TEXT, CTSTRING(VIEW_AS_TEXT)); - ctxMenu.AppendMenu(MF_STRING, IDC_OPEN_FILE, CTSTRING(OPEN)); - ctxMenu.AppendMenu(MF_STRING, IDC_OPEN_FOLDER, CTSTRING(OPEN_FOLDER)); - ctxMenu.AppendMenu(MF_SEPARATOR); - ctxMenu.AppendMenu(MF_STRING, IDC_REMOVE, CTSTRING(REMOVE)); - ctxMenu.AppendMenu(MF_STRING, IDC_TOTAL, CTSTRING(REMOVE_ALL)); - ctxMenu.SetMenuDefaultItem(IDC_OPEN_FILE); - - bHandled = FALSE; - return TRUE; -} - -LRESULT FinishedULFrame::onContextMenu(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { - if (reinterpret_cast<HWND>(wParam) == ctrlList && ctrlList.GetSelectedCount() > 0) { - POINT pt = { GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) }; - - if(pt.x == -1 && pt.y == -1) { - WinUtil::getContextMenuPos(ctrlList, pt); - } - - ctxMenu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, m_hWnd); - return TRUE; - } - - bHandled = FALSE; - return FALSE; -} - -LRESULT FinishedULFrame::onColumnClickFinished(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/) { - NMLISTVIEW* const l = (NMLISTVIEW*)pnmh; - if(l->iSubItem == ctrlList.getSortColumn()) { - if (!ctrlList.isAscending()) - ctrlList.setSort(-1, ctrlList.getSortType()); - else - ctrlList.setSortDirection(false); - } else { - switch(l->iSubItem) { - case COLUMN_SIZE: - ctrlList.setSort(l->iSubItem, ExListViewCtrl::SORT_FUNC, true, sortSize); - break; - case COLUMN_SPEED: - ctrlList.setSort(l->iSubItem, ExListViewCtrl::SORT_FUNC, true, sortSpeed); - break; - default: - ctrlList.setSort(l->iSubItem, ExListViewCtrl::SORT_STRING_NOCASE); - break; - } - } - return 0; -} - -void FinishedULFrame::UpdateLayout(BOOL bResizeBars /* = TRUE */) -{ - RECT rect; - GetClientRect(&rect); - - // position bars and offset their dimensions - UpdateBarsPosition(rect, bResizeBars); - - if(ctrlStatus.IsWindow()) { - CRect sr; - int w[4]; - ctrlStatus.GetClientRect(sr); - w[3] = sr.right - 16; - w[2] = max(w[3] - 100, 0); - w[1] = max(w[2] - 100, 0); - w[0] = max(w[1] - 100, 0); - - ctrlStatus.SetParts(4, w); - } - - CRect rc(rect); - ctrlList.MoveWindow(rc); -} - -LRESULT FinishedULFrame::onDoubleClick(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/) { - - NMITEMACTIVATE * const item = (NMITEMACTIVATE*) pnmh; - - if(item->iItem != -1) { - FinishedItem* entry = (FinishedItem*)ctrlList.GetItemData(item->iItem); - WinUtil::openFile(Text::toT(entry->getTarget())); - } - return 0; -} - -LRESULT FinishedULFrame::onViewAsText(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) -{ - int i; - if((i = ctrlList.GetNextItem(-1, LVNI_SELECTED)) != -1) { - FinishedItem * const entry = (FinishedItem*)ctrlList.GetItemData(i); - TextFrame::openWindow(Text::toT(entry->getTarget())); - } - return 0; -} - -LRESULT FinishedULFrame::onOpenFile(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) -{ - int i; - if((i = ctrlList.GetNextItem(-1, LVNI_SELECTED)) != -1) { - FinishedItem * const entry = (FinishedItem*)ctrlList.GetItemData(i); - WinUtil::openFile(Text::toT(entry->getTarget())); - } - return 0; -} - -LRESULT FinishedULFrame::onOpenFolder(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) -{ - int i; - if((i = ctrlList.GetNextItem(-1, LVNI_SELECTED)) != -1) { - FinishedItem * const entry = (FinishedItem*)ctrlList.GetItemData(i); - WinUtil::openFolder(Text::toT(entry->getTarget())); - } - return 0; -} - -LRESULT FinishedULFrame::onRemove(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { - switch(wID) - { - case IDC_REMOVE: - { - int i = -1; - while((i = ctrlList.GetNextItem(-1, LVNI_SELECTED)) != -1) { - FinishedManager::getInstance()->remove((FinishedItem*)ctrlList.GetItemData(i), true); - ctrlList.DeleteItem(i); - } - break; - } - case IDC_TOTAL: - FinishedManager::getInstance()->removeAll(true); - break; - } - return 0; -} - -LRESULT FinishedULFrame::onClose(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) { - if(!closed) { - FinishedManager::getInstance()->removeListener(this); - - closed = true; - PostMessage(WM_CLOSE); - return 0; - } else { - WinUtil::saveHeaderOrder(ctrlList, SettingsManager::FINISHED_UL_ORDER, - SettingsManager::FINISHED_UL_WIDTHS, COLUMN_LAST, columnIndexes, columnSizes); - - bHandled = FALSE; - return 0; - } -} - -LRESULT FinishedULFrame::onSpeaker(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/) { - if(wParam == SPEAK_ADD_LINE) { - FinishedItem* entry = (FinishedItem*)lParam; - addEntry(entry); - if(BOOLSETTING(BOLD_FINISHED_UPLOADS)) - setDirty(); - updateStatus(); - } else if(wParam == SPEAK_REMOVE) { - updateStatus(); - } else if(wParam == SPEAK_REMOVE_ALL) { - ctrlList.DeleteAllItems(); - updateStatus(); - } - return 0; -} - -void FinishedULFrame::addEntry(FinishedItem* entry) { - TStringList l; - l.push_back(Text::toT(Util::getFileName(entry->getTarget()))); - l.push_back(Text::toT(Util::formatTime("%Y-%m-%d %H:%M:%S", entry->getTime()))); - l.push_back(Text::toT(Util::getFilePath(entry->getTarget()))); - l.push_back(Text::toT(entry->getUser())); - l.push_back(Text::toT(entry->getHub())); - l.push_back(Text::toT(Util::formatBytes(entry->getSize()))); - l.push_back(Text::toT(Util::formatBytes(entry->getAvgSpeed()) + "/s")); - totalBytes += entry->getChunkSize(); - totalTime += entry->getMilliSeconds(); - - int image = WinUtil::getIconIndex(Text::toT(entry->getTarget())); - int loc = ctrlList.insert(l, image, (LPARAM)entry); - ctrlList.EnsureVisible(loc, FALSE); -} - /** * @file * $Id: FinishedULFrame.cpp,v 1.32 2005/12/19 00:15:52 arnetheduck Exp $ Modified: dcplusplus/trunk/windows/HubFrame.cpp =================================================================== --- dcplusplus/trunk/windows/HubFrame.cpp 2006-04-30 09:27:55 UTC (rev 598) +++ dcplusplus/trunk/windows/HubFrame.cpp 2006-04-30 11:09:50 UTC (rev 599) @@ -37,10 +37,10 @@ HubFrame::FrameMap HubFrame::frames; -int HubFrame::columnSizes[] = { 100, 75, 75, 100, 75, 100 }; -int HubFrame::columnIndexes[] = { COLUMN_NICK, COLUMN_SHARED, COLUMN_DESCRIPTION, COLUMN_TAG, COLUMN_CONNECTION, COLUMN_EMAIL }; +int HubFrame::columnSizes[] = { 100, 75, 75, 100, 75, 100, 125 }; +int HubFrame::columnIndexes[] = { COLUMN_NICK, COLUMN_SHARED, COLUMN_DESCRIPTION, COLUMN_TAG, COLUMN_CONNECTION, COLUMN_EMAIL, COLUMN_CID }; static ResourceManager::Strings columnNames[] = { ResourceManager::NICK, ResourceManager::SHARED, -ResourceManager::DESCRIPTION, ResourceManager::TAG, ResourceManager::CONNECTION, ResourceManager::EMAIL }; +ResourceManager::DESCRIPTION, ResourceManager::TAG, ResourceManager::CONNECTION, ResourceManager::EMAIL, ResourceManager::CID }; LRESULT HubFrame::OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) { @@ -421,6 +421,7 @@ columns[COLUMN_TAG] = Text::toT(identity.getTag()); columns[COLUMN_CONNECTION] = Text::toT(identity.getConnection()); columns[COLUMN_EMAIL] = Text::toT(identity.getEmail()); + columns[COLUMN_CID] = Text::toT(identity.getUser()->getCID().toBase32()); if(sortCol != -1) { needsSort = needsSort || (old != columns[sortCol]); Modified: dcplusplus/trunk/windows/HubFrame.h =================================================================== --- dcplusplus/trunk/windows/HubFrame.h 2006-04-30 09:27:55 UTC (rev 598) +++ dcplusplus/trunk/windows/HubFrame.h 2006-04-30 11:09:50 UTC (rev 599) @@ -166,6 +166,7 @@ COLUMN_TAG, COLUMN_CONNECTION, COLUMN_EMAIL, + COLUMN_CID, COLUMN_LAST }; Modified: dcplusplus/trunk/windows/SearchFrm.cpp =================================================================== --- dcplusplus/trunk/windows/SearchFrm.cpp 2006-04-30 09:27:55 UTC (rev 598) +++ dcplusplus/trunk/windows/SearchFrm.cpp 2006-04-30 11:09:50 UTC (rev 599) @@ -30,12 +30,12 @@ TStringList SearchFrame::lastSearches; int SearchFrame::columnIndexes[] = { COLUMN_FILENAME, COLUMN_NICK, COLUMN_TYPE, COLUMN_SIZE, - COLUMN_PATH, COLUMN_SLOTS, COLUMN_CONNECTION, COLUMN_HUB, COLUMN_EXACT_SIZE, COLUMN_IP, COLUMN_TTH }; -int SearchFrame::columnSizes[] = { 200, 100, 50, 80, 100, 40, 70, 150, 80, 100, 125 }; + COLUMN_PATH, COLUMN_SLOTS, COLUMN_CONNECTION, COLUMN_HUB, COLUMN_EXACT_SIZE, COLUMN_IP, COLUMN_TTH, COLUMN_CID }; +int SearchFrame::columnSizes[] = { 200, 100, 50, 80, 100, 40, 70, 150, 80, 100, 125, 125 }; static ResourceManager::Strings columnNames[] = { ResourceManager::FILE, ResourceManager::USER, ResourceManager::TYPE, ResourceManager::SIZE, ResourceManager::PATH, ResourceManager::SLOTS, ResourceManager::CONNECTION, - ResourceManager::HUB, ResourceManager::EXACT_SIZE, ResourceManager::IP_BARE, ResourceManager::TTH_ROOT }; + ResourceManager::HUB, ResourceManager::EXACT_SIZE, ResourceManager::IP_BARE, ResourceManager::TTH_ROOT, ResourceManager::CID }; void SearchFrame::openWindow(const tstring& str /* = Util::emptyString */, LONGLONG size /* = 0 */, SearchManager::SizeModes mode /* = SearchManager::SIZE_ATLEAST */, SearchManager::TypeModes type /* = SearchManager::TYPE_ANY ( 0 ) */) { SearchFrame* pChild = new SearchFrame(); @@ -407,7 +407,7 @@ void SearchFrame::SearchInfo::view() { try { if(sr->getType() == SearchResult::TYPE_FILE) { - QueueManager::getInstance()->add(Util::getTempPath() + Text::fromT(fileName), + QueueManager::getInstance()->add(Util::getTempPath() + Text::fromT(columns[COLUMN_FILENAME]), sr->getSize(), sr->getTTH(), sr->getUser(), sr->getFile(), sr->getUtf8(), QueueItem::FLAG_CLIENT_VIEW | QueueItem::FLAG_TEXT); } @@ -418,7 +418,7 @@ void SearchFrame::SearchInfo::Download::operator()(SearchInfo* si) { try { if(si->sr->getType() == SearchResult::TYPE_FILE) { - string target = Text::fromT(tgt + si->fileName); + string target = Text::fromT(tgt + si->columns[COLUMN_FILENAME]); QueueManager::getInstance()->add(target, si->sr->getSize(), si->sr->getTTH(), si->sr->getUser(), si->sr->getFile(), si->sr->getUtf8()); @@ -436,7 +436,7 @@ void SearchFrame::SearchInfo::DownloadWhole::operator()(SearchInfo* si) { try { if(si->sr->getType() == SearchResult::TYPE_FILE) { - QueueManager::getInstance()->addDirectory(Text::fromT(si->path), si->sr->getUser(), Text::fromT(tgt), + QueueManager::getInstance()->addDirectory(Text::fromT(si->columns[COLUMN_PATH]), si->sr->getUser(), Text::fromT(tgt), WinUtil::isShift() ? QueueItem::HIGHEST : QueueItem::DEFAULT); } else { QueueManager::getInstance()->addDirectory(si->sr->getFile(), si->sr->getUser(), Text::fromT(tgt), @@ -466,7 +466,7 @@ void SearchFrame::SearchInfo::getList() { try { - WinUtil::addInitalDir(sr->getUser(), Text::fromT(getPath())); + WinUtil::addInitalDir(sr->getUser(), Text::fromT(columns[COLUMN_PATH])); QueueManager::getInstance()->addList(sr->getUser(), QueueItem::FLAG_CLIENT_VIEW); } catch(const Exception&) { // Ignore for now... @@ -475,20 +475,20 @@ void SearchFrame::SearchInfo::browseList() { try { - QueueManager::getInstance()->addPfs(sr->getUser(), Text::fromT(getPath())); + QueueManager::getInstance()->addPfs(sr->getUser(), Text::fromT(columns[COLUMN_PATH])); } catch(const Exception&) { // Ignore for now... } } void SearchFrame::SearchInfo::CheckSize::operator()(SearchInfo* si) { - if(!si->getTTH().empty()) { + if(!si->columns[COLUMN_TTH].empty()) { if(firstTTH) { - tth = si->getTTH(); + tth = si->columns[COLUMN_TTH]; hasTTH = true; firstTTH = false; } else if(hasTTH) { - if(tth != si->getTTH()) { + if(tth != si->columns[COLUMN_TTH]) { hasTTH = false; } } @@ -499,10 +499,10 @@ if(si->sr->getType() == SearchResult::TYPE_FILE) { if(ext.empty()) { - ext = Util::getFileExt(si->fileName); + ext = Util::getFileExt(si->columns[COLUMN_FILENAME]); size = si->sr->getSize(); } else if(size != -1) { - if((si->sr->getSize() != size) || (Util::stricmp(ext, Util::getFileExt(si->fileName)) != 0)) { + if((si->sr->getSize() != size) || (Util::stricmp(ext, Util::getFileExt(si->columns[COLUMN_FILENAME])) != 0)) { size = -1; } } @@ -526,7 +526,7 @@ SearchResult* sr = si->sr; if(sr->getType() == SearchResult::TYPE_FILE) { - tstring target = Text::toT(SETTING(DOWNLOAD_DIRECTORY)) + si->getFileName(); + tstring target = Text::toT(SETTING(DOWNLOAD_DIRECTORY)) + si->columns[COLUMN_FILENAME]; if(WinUtil::browseFile(target, m_hWnd)) { WinUtil::addLastDir(Util::getFilePath(target)); ctrlResults.forEachSelectedT(SearchInfo::DownloadTarget(target)); @@ -1140,39 +1140,42 @@ void SearchFrame::SearchInfo::update() { if(sr->getType() == SearchResult::TYPE_FILE) { if(sr->getFile().rfind(_T('\\')) == tstring::npos) { - fileName = Text::toT(sr->getUtf8() ? sr->getFile() : Text::acpToUtf8(sr->getFile())); + columns[COLUMN_FILENAME] = Text::toT(sr->getUtf8() ? sr->getFile() : Text::acpToUtf8(sr->getFile())); } else { - fileName = Text::toT(Util::getFileName(sr->getUtf8() ? sr->getFile() : Text::acpToUtf8(sr->getFile()))); - path = Text::toT(Util::getFilePath(sr->getUtf8() ? sr->getFile() : Text::acpToUtf8(sr->getFile()))); + columns[COLUMN_FILENAME] = Text::toT(Util::getFileName(sr->getUtf8() ? sr->getFile() : Text::acpToUtf8(sr->getFile()))); + columns[COLUMN_PATH] = Text::toT(Util::getFilePath(sr->getUtf8() ? sr->getFile() : Text::acpToUtf8(sr->getFile()))); } - type = Text::toT(Util::getFileExt(Text::fromT(fileName))); - if(!type.empty() && type[0] == _T('.')) - type.erase(0, 1); - size = Text::toT(Util::formatBytes(sr->getSize())); - exactSize = Text::toT(Util::formatExactSize(sr->getSize())); + columns[COLUMN_TYPE] = Text::toT(Util::getFileExt(Text::fromT(columns[COLUMN_FILENAME]))); + if(!columns[COLUMN_TYPE].empty() && columns[COLUMN_TYPE][0] == _T('.')) + columns[COLUMN_TYPE].erase(0, 1); + columns[COLUMN_SIZE] = Text::toT(Util::formatBytes(sr->getSize())); + columns[COLUMN_EXACT_SIZE] = Text::toT(Util::formatExactSize(sr->getSize())); } else { - fileName = Text::toT(sr->getUtf8() ? sr->getFileName() : Text::acpToUtf8(sr->getFileName())); - path = Text::toT(sr->getUtf8() ? sr->getFile() : Text::acpToUtf8(sr->getFile())); - type = TSTRING(DIRECTORY); + columns[COLUMN_FILENAME] = Text::toT(sr->getUtf8() ? sr->getFileName() : Text::acpToUtf8(sr->getFileName())); + columns[COLUMN_PATH] = Text::toT(sr->getUtf8() ? sr->getFile() : Text::acpToUtf8(sr->getFile())); + columns[COLUMN_TYPE] = TSTRING(DIRECTORY); if(sr->getSize() > 0) { - size = Text::toT(Util::formatBytes(sr->getSize())); - exactSize = Text::toT(Util::formatExactSize(sr->getSize())); + columns[COLUMN_SIZE] = Text::toT(Util::formatBytes(sr->getSize())); + columns[COLUMN_EXACT_SIZE] = Text::toT(Util::formatExactSize(sr->getSize())); } } - nick = WinUtil::getNicks(sr->getUser()); - connection = Text::toT(ClientManager::getInstance()->getConnection(sr->getUser()->getCID())); - hubName = Text::toT(sr->getHubName()); - slots = Text::toT(sr->getSlotString()); - ip = Text::toT(sr->getIP()); - if (!ip.empty()) { + columns[COLUMN_NICK] = WinUtil::getNicks(sr->getUser()); + columns[COLUMN_CONNECTION] = Text::toT(ClientManager::getInstance()->getConnection(sr->getUser()->getCID())); + columns[COLUMN_HUB] = Text::toT(sr->getHubName()); + columns[COLUMN_SLOTS] = Text::toT(sr->getSlotString()); + columns[COLUMN_IP] = Text::toT(sr->getIP()); + if (!columns[COLUMN_IP].empty()) { // Only attempt to grab a country mapping if we actually have an IP address tstring tmpCountry = Text::toT(Util::getIpCountry(sr->getIP())); if(!tmpCountry.empty()) - ip = tmpCountry + _T(" (") + ip + _T(")"); + columns[COLUMN_IP] = tmpCountry + _T(" (") + columns[COLUMN_IP] + _T(")"); } - if(sr->getTTH() != NULL) - setTTH(Text::toT(sr->getTTH()->toBase32())); + if(sr->getTTH() != NULL) { + columns[COLUMN_TTH] = Text::toT(sr->getTTH()->toBase32()); + } + columns[COLUMN_CID] = Text::toT(sr->getUser()->getCID().toBase32()); + } /** Modified: dcplusplus/trunk/windows/SearchFrm.h =================================================================== --- dcplusplus/trunk/windows/SearchFrm.h 2006-04-30 09:27:55 UTC (rev 598) +++ dcplusplus/trunk/windows/SearchFrm.h 2006-04-30 11:09:50 UTC (rev 599) @@ -232,13 +232,12 @@ COLUMN_EXACT_SIZE, COLUMN_IP, COLUMN_TTH, + COLUMN_CID, COLUMN_LAST }; class SearchInfo : public UserInfoBase { public: - SearchResult* sr; - SearchInfo(SearchResult* aSR) : UserInfoBase(aSR->getUser()), sr(aSR) { sr->incRef(); update(); } @@ -278,29 +277,14 @@ tstring tth; }; - const tstring& getText(int col) const { - switch(col) { - case COLUMN_NICK: return nick; - case COLUMN_FILENAME: return fileName; - case COLUMN_TYPE: return type; - case COLUMN_SIZE: return size; - case COLUMN_PATH: return path; - case COLUMN_SLOTS: return slots; - case COLUMN_CONNECTION: return connection; - case COLUMN_HUB: return hubName; - case COLUMN_EXACT_SIZE: return exactSize; - case COLUMN_IP: return ip; - case COLUMN_TTH: return tth; - default: return Util::emptyStringT; - } - } + const tstring& getText(int col) const { return columns[col]; } static int compareItems(SearchInfo* a, SearchInfo* b, int col) { switch(col) { case COLUMN_TYPE: if(a->sr->getType() == b->sr->getType()) - return lstrcmpi(a->type.c_str(), b->type.c_str()); + return lstrcmpi(a->columns[COLUMN_TYPE].c_str(), b->columns[COLUMN_TYPE].c_str()); else return(a->sr->getType() == SearchResult::TYPE_DIRECTORY) ? -1 : 1; case COLUMN_SLOTS: @@ -316,17 +300,8 @@ void update(); - GETSET(tstring, nick, Nick); - GETSET(tstring, connection, Connection) - GETSET(tstring, fileName, FileName); - GETSET(tstring, path, Path); - GETSET(tstring, type, Type); - GETSET(tstring, hubName, HubName); - GETSET(tstring, size, Size); - GETSET(tstring, slots, Slots); - GETSET(tstring, exactSize, ExactSize); - GETSET(tstring, ip, IP); - GETSET(tstring, tth, TTH); + SearchResult* sr; + tstring columns[COLUMN_LAST]; }; struct HubInfo : public FastAlloc<HubInfo> { Modified: dcplusplus/trunk/windows/TransferView.cpp =================================================================== --- dcplusplus/trunk/windows/TransferView.cpp 2006-04-30 09:27:55 UTC (rev 598) +++ dcplusplus/trunk/windows/TransferView.cpp 2006-04-30 11:09:50 UTC (rev 599) @@ -28,12 +28,12 @@ #include "WinUtil.h" #include "TransferView.h" -int TransferView::columnIndexes[] = { COLUMN_USER, COLUMN_HUB, COLUMN_STATUS, COLUMN_TIMELEFT, COLUMN_SPEED, COLUMN_FILE, COLUMN_SIZE, COLUMN_PATH, COLUMN_IP, COLUMN_RATIO }; -int TransferView::columnSizes[] = { 150, 100, 250, 75, 75, 175, 100, 200, 50, 75 }; +int TransferView::columnIndexes[] = { COLUMN_USER, COLUMN_HUB, COLUMN_STATUS, COLUMN_TIMELEFT, COLUMN_SPEED, COLUMN_FILE, COLUMN_SIZE, COLUMN_PATH, COLUMN_IP, COLUMN_RATIO, COLUMN_CID }; +int TransferView::columnSizes[] = { 150, 100, 250, 75, 75, 175, 100, 200, 50, 75, 125 }; static ResourceManager::Strings columnNames[] = { ResourceManager::USER, ResourceManager::HUB, ResourceManager::STATUS, ResourceManager::TIME_LEFT, ResourceManager::SPEED, ResourceManager::FILENAME, ResourceManager::SIZE, ResourceManager::PATH, -ResourceManager::IP_BARE, ResourceManager::RATIO}; +ResourceManager::IP_BARE, ResourceManager::RATIO, ResourceManager::CID, }; TransferView::~TransferView() { arrows.Destroy(); @@ -344,6 +344,7 @@ { columns[COLUMN_USER] = WinUtil::getNicks(u); columns[COLUMN_HUB] = WinUtil::getHubNames(u).first; + columns[COLUMN_CID] = Text::toT(u->getCID().toBase32()); } void TransferView::ItemInfo::update(const UpdateInfo& ui) { Modified: dcplusplus/trunk/windows/TransferView.h =================================================================== --- dcplusplus/trunk/windows/TransferView.h 2006-04-30 09:27:55 UTC (rev 598) +++ dcplusplus/trunk/windows/TransferView.h 2006-04-30 11:09:50 UTC (rev 599) @@ -133,6 +133,7 @@ COLUMN_PATH, COLUMN_IP, COLUMN_RATIO, + COLUMN_CID, COLUMN_LAST }; @@ -215,7 +216,7 @@ MASK_TIMELEFT = 1 << 7, MASK_IP = 1 << 8, MASK_STATUS_STRING = 1 << 9, - MASK_COUNTRY = 1 << 10 + MASK_COUNTRY = 1 << 10, }; bool operator==(const ItemInfo& ii) { return download == ii.download && user == ii.user; } Modified: dcplusplus/trunk/windows/UsersFrame.cpp =================================================================== --- dcplusplus/trunk/windows/UsersFrame.cpp 2006-04-30 09:27:55 UTC (rev 598) +++ dcplusplus/trunk/windows/UsersFrame.cpp 2006-04-30 11:09:50 UTC (rev 599) @@ -29,9 +29,9 @@ #include "HubFrame.h" -int UsersFrame::columnIndexes[] = { COLUMN_NICK, COLUMN_HUB, COLUMN_SEEN, COLUMN_DESCRIPTION }; -int UsersFrame::columnSizes[] = { 200, 300, 150, 200 }; -static ResourceManager::Strings columnNames[] = { ResourceManager::AUTO_GRANT, ResourceManager::LAST_HUB, ResourceManager::LAST_SEEN, ResourceManager::DESCRIPTION }; +int UsersFrame::columnIndexes[] = { COLUMN_NICK, COLUMN_HUB, COLUMN_SEEN, COLUMN_DESCRIPTION, COLUMN_CID }; +int UsersFrame::columnSizes[] = { 200, 300, 150, 200, 125 }; +static ResourceManager::Strings columnNames[] = { ResourceManager::AUTO_GRANT, ResourceManager::LAST_HUB, ResourceManager::LAST_SEEN, ResourceManager::DESCRIPTION, ResourceManager::CID }; LRESULT UsersFrame::onCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) { @@ -216,6 +216,7 @@ columns[COLUMN_HUB] = user->isOnline() ? WinUtil::getHubNames(u.getUser()).first : Text::toT(u.getUrl()); columns[COLUMN_SEEN] = user->isOnline() ? TSTRING(ONLINE) : Text::toT(Util::formatTime("%Y-%m-%d %H:%M", u.getLastSeen())); columns[COLUMN_DESCRIPTION] = Text::toT(u.getDescription()); + columns[COLUMN_CID] = Text::toT(u.getUser()->getCID().toBase32()); } LRESULT UsersFrame::onSpeaker(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/) { Modified: dcplusplus/trunk/windows/UsersFrame.h =================================================================== --- dcplusplus/trunk/windows/UsersFrame.h 2006-04-30 09:27:55 UTC (rev 598) +++ dcplusplus/trunk/windows/UsersFrame.h 2006-04-30 11:09:50 UTC (rev 599) @@ -85,6 +85,7 @@ COLUMN_HUB, COLUMN_SEEN, COLUMN_DESCRIPTION, + COLUMN_CID, COLUMN_LAST }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |