From: <arn...@us...> - 2008-01-03 21:59:31
|
Revision: 956 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=956&view=rev Author: arnetheduck Date: 2008-01-03 13:59:28 -0800 (Thu, 03 Jan 2008) Log Message: ----------- Add some more download frame stuff Modified Paths: -------------- dcplusplus/trunk/Compile.txt dcplusplus/trunk/changelog.txt dcplusplus/trunk/dcpp/QueueManager.cpp dcplusplus/trunk/dcpp/QueueManager.h dcplusplus/trunk/dcpp/SettingsManager.cpp dcplusplus/trunk/dcpp/SettingsManager.h dcplusplus/trunk/win32/DownloadsFrame.cpp dcplusplus/trunk/win32/DownloadsFrame.h dcplusplus/trunk/win32/MainWindow.cpp dcplusplus/trunk/win32/TypedListView.h dcplusplus/trunk/win32/WindowsPage.cpp dcplusplus/trunk/win32/po/dcpp-win32.pot Added Paths: ----------- dcplusplus/trunk/win32/MainWindowFactory.cpp Modified: dcplusplus/trunk/Compile.txt =================================================================== --- dcplusplus/trunk/Compile.txt 2008-01-03 19:21:30 UTC (rev 955) +++ dcplusplus/trunk/Compile.txt 2008-01-03 21:59:28 UTC (rev 956) @@ -9,6 +9,9 @@ but if you want to experiment you can try the potentially slower sjlj. After installing gcc, you will need to go to the bin folder of your mingw installation and copy g++-dw2/sjlj.exe and gcc-dw2/sjlj.exe to g++.exe and gcc.exe respectively. + You will also need the gettext tools: gettext-0.16.1-1-bin.tar.bz2, gettext-0.16.1-1-dll.tar.bz2 and + libiconv-1.11-1-dll.tar.bz2. Extract and make sure they're in your PATH. + Note; Make sure gcc/g++ is in your path and before any cygwin installation. 1b) or install Microsoft Visual C++ 8.0 (I don't use it so there might be some compile problems) @@ -25,7 +28,7 @@ 3) Download HTML help workshop from http://msdn2.microsoft.com/en-us/library/ms670169.aspx. Copy the include and library files to the respective directories in the htmlhelp folder. Make sure hhc.exe is in your PATH. - + 4) Open a command prompt and type "scons" followed by some options: "tools=mingw" - Use mingw for building (default) "tools=default" - Use msvc for building (yes, the option value is strange) @@ -35,8 +38,6 @@ To see more options, type "scons -h". Tip: You can create a file custom.py and put your options in there. -If you get a linking error citing missing references on the first compile, run scons again. - Note; If you have problems, use google. It works for me. By the way, with doxygen, graphviz and some luck you can use the supplied doxygen configuration file @@ -65,5 +66,6 @@ In order to avoid future licensing issues, I ask you to give me copyright over any submitted code. If you don't like this policy, you are free to start your own distribution (as many have done), and if you're lucky it might become more popular than the original =). Please -state explicitly when submitting the patch that you give me copyright over the code if the submission is larger than trivial. +state explicitly when submitting the patch that you give me copyright over the code if the submission is larger +than trivial. Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2008-01-03 19:21:30 UTC (rev 955) +++ dcplusplus/trunk/changelog.txt 2008-01-03 21:59:28 UTC (rev 956) @@ -8,6 +8,7 @@ * Fixed a crash with partial list browsing * Replaced homegrown i18n solution with gettext * Fixed an issue with nick encodings and nmdc connections (thanks stanislav maslovski) +* Added download view which shows per-file download information -- 0.704 2007-12-14 -- * Hub lists added to utilize Coral's distributed network (ullner) Modified: dcplusplus/trunk/dcpp/QueueManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/QueueManager.cpp 2008-01-03 19:21:30 UTC (rev 955) +++ dcplusplus/trunk/dcpp/QueueManager.cpp 2008-01-03 21:59:28 UTC (rev 956) @@ -602,6 +602,25 @@ return matches; } +int64_t QueueManager::getPos(const string& target) throw() { + Lock l(cs); + QueueItem* qi = fileQueue.find(target); + if(qi) { + return qi->getDownloadedBytes(); + } + return -1; +} + +int64_t QueueManager::getSize(const string& target) throw() { + Lock l(cs); + QueueItem* qi = fileQueue.find(target); + if(qi) { + return qi->getSize(); + } + return -1; +} + + void QueueManager::move(const string& aSource, const string& aTarget) throw() { string target = Util::validateFileName(aTarget); if(aSource == target) Modified: dcplusplus/trunk/dcpp/QueueManager.h =================================================================== --- dcplusplus/trunk/dcpp/QueueManager.h 2008-01-03 19:21:30 UTC (rev 955) +++ dcplusplus/trunk/dcpp/QueueManager.h 2008-01-03 21:59:28 UTC (rev 956) @@ -87,6 +87,9 @@ int matchListing(const DirectoryListing& dl) throw(); bool getTTH(const string& name, TTHValue& tth) throw(); + + int64_t getSize(const string& target) throw(); + int64_t getPos(const string& target) throw(); /** Move the target location of a queued item. Running items are silently ignored */ void move(const string& aSource, const string& aTarget) throw(); Modified: dcplusplus/trunk/dcpp/SettingsManager.cpp =================================================================== --- dcplusplus/trunk/dcpp/SettingsManager.cpp 2008-01-03 19:21:30 UTC (rev 955) +++ dcplusplus/trunk/dcpp/SettingsManager.cpp 2008-01-03 21:59:28 UTC (rev 956) @@ -78,7 +78,7 @@ "UseTLS", "AutoSearchLimit", "AltSortOrder", "AutoKickNoFavs", "PromptPassword", "SpyFrameIgnoreTthSearches", "DontDlAlreadyQueued", "MaxCommandLength", "AllowUntrustedHubs", "AllowUntrustedClients", "TLSPort", "FastHash", "SortFavUsersFirst", "ShowShellMenu", "MinSegmentSize", "FollowLinks", - "SendBloom", + "SendBloom", "OpenDownloads", "SENTRY", // Int64 "TotalUpload", "TotalDownload", @@ -274,6 +274,7 @@ setDefault(MIN_SEGMENT_SIZE, 1024); setDefault(FOLLOW_LINKS, false); setDefault(SEND_BLOOM, true); + setDefault(OPEN_DOWNLOADS, true); #ifdef _WIN32 setDefault(MAIN_WINDOW_STATE, SW_SHOWNORMAL); Modified: dcplusplus/trunk/dcpp/SettingsManager.h =================================================================== --- dcplusplus/trunk/dcpp/SettingsManager.h 2008-01-03 19:21:30 UTC (rev 955) +++ dcplusplus/trunk/dcpp/SettingsManager.h 2008-01-03 21:59:28 UTC (rev 956) @@ -90,7 +90,7 @@ USE_TLS, AUTO_SEARCH_LIMIT, ALT_SORT_ORDER, AUTO_KICK_NO_FAVS, PROMPT_PASSWORD, SPY_FRAME_IGNORE_TTH_SEARCHES, DONT_DL_ALREADY_QUEUED, MAX_COMMAND_LENGTH, ALLOW_UNTRUSTED_HUBS, ALLOW_UNTRUSTED_CLIENTS, TLS_PORT, FAST_HASH, SORT_FAVUSERS_FIRST, SHOW_SHELL_MENU, MIN_SEGMENT_SIZE, FOLLOW_LINKS, - SEND_BLOOM, + SEND_BLOOM, OPEN_DOWNLOADS, INT_LAST }; enum Int64Setting { INT64_FIRST = INT_LAST + 1, Modified: dcplusplus/trunk/win32/DownloadsFrame.cpp =================================================================== --- dcplusplus/trunk/win32/DownloadsFrame.cpp 2008-01-03 19:21:30 UTC (rev 955) +++ dcplusplus/trunk/win32/DownloadsFrame.cpp 2008-01-03 21:59:28 UTC (rev 956) @@ -22,9 +22,11 @@ #include <dcpp/QueueItem.h> #include <dcpp/QueueManager.h> #include <dcpp/Download.h> +#include <dcpp/DownloadManager.h> #include "DownloadsFrame.h" #include "HoldRedraw.h" +#include "WinUtil.h" int DownloadsFrame::columnIndexes[] = { COLUMN_FILE, COLUMN_PATH, COLUMN_STATUS, COLUMN_TIMELEFT, COLUMN_SPEED, COLUMN_SIZE }; int DownloadsFrame::columnSizes[] = { 200, 300, 150, 200, 125, 100}; @@ -46,8 +48,8 @@ downloads->setColumnWidths(WinUtil::splitTokens(SETTING(HUBFRAME_WIDTHS), columnSizes)); downloads->setSort(COLUMN_STATUS); downloads->setColor(WinUtil::textColor, WinUtil::bgColor); + downloads->setSmallImageList(WinUtil::fileImages); - downloads->onKeyDown(std::tr1::bind(&DownloadsFrame::handleKeyDown, this, _1)); downloads->onContextMenu(std::tr1::bind(&DownloadsFrame::handleContextMenu, this, _1)); } @@ -58,10 +60,14 @@ startup = false; onSpeaker(std::tr1::bind(&DownloadsFrame::handleSpeaker, this, _1, _2)); + + QueueManager::getInstance()->addListener(this); + DownloadManager::getInstance()->addListener(this); } DownloadsFrame::~DownloadsFrame() { - + QueueManager::getInstance()->removeListener(this); + DownloadManager::getInstance()->removeListener(this); } void DownloadsFrame::layout() { @@ -81,16 +87,22 @@ SettingsManager::getInstance()->set(SettingsManager::DOWNLOADSFRAME_WIDTHS, WinUtil::toString(downloads->getColumnWidths())); } -DownloadsFrame::DownloadInfo::DownloadInfo(const string& filename, int64_t size_) : path(filename), done(0), size(size), users(0) { - columns[COLUMN_FILE] = Text::toT(Util::getFileName(filename)); - columns[COLUMN_PATH] = Text::toT(Util::getFilePath(filename)); - columns[COLUMN_SIZE] = Text::toT(Util::toString(size)); +DownloadsFrame::DownloadInfo::DownloadInfo(const string& target, int64_t size_) : path(target), done(QueueManager::getInstance()->getPos(target)), size(size_), users(0) { + columns[COLUMN_FILE] = Text::toT(Util::getFileName(target)); + columns[COLUMN_PATH] = Text::toT(Util::getFilePath(target)); + columns[COLUMN_SIZE] = Text::toT(Util::formatBytes(size)); + update(); } +int DownloadsFrame::DownloadInfo::getImage() const { + return WinUtil::getIconIndex(Text::toT(path)); +} + void DownloadsFrame::DownloadInfo::update(const DownloadsFrame::TickInfo& ti) { users = ti.users; - done = ti.done; // TODO Add done from queuemanager... + done = ti.done + QueueManager::getInstance()->getInstance()->getPos(ti.path); bps = ti.bps; + update(); } void DownloadsFrame::DownloadInfo::update() { @@ -99,19 +111,12 @@ columns[COLUMN_TIMELEFT].clear(); columns[COLUMN_SPEED].clear(); } else { - double timeleft = bps > 0 ? (size - done) / bps : 0; columns[COLUMN_STATUS] = str(TFN_("Downloading from %1% user", "Downloading from %1% users", users) % users); - columns[COLUMN_TIMELEFT] = Text::toT(Util::formatSeconds(static_cast<int64_t>(timeleft))); + columns[COLUMN_TIMELEFT] = Text::toT(Util::formatSeconds(static_cast<int64_t>(timeleft()))); columns[COLUMN_SPEED] = str(TF_("%1%/s") % Text::toT(Util::formatBytes(static_cast<int64_t>(bps)))); } } -bool DownloadsFrame::handleKeyDown(int c) { - switch(c) { - } - return false; -} - bool DownloadsFrame::handleContextMenu(SmartWin::ScreenCoordinate pt) { if (downloads->hasSelection()) { if(pt.x() == -1 && pt.y() == -1) { @@ -142,19 +147,26 @@ boost::scoped_ptr<TickInfo> ti(reinterpret_cast<TickInfo*>(lParam)); int i = find(ti->path); if(i == -1) { - // TODO get size - i = downloads->insert(new DownloadInfo(ti->path, 0)); + int64_t size = QueueManager::getInstance()->getSize(ti->path); + if(size == -1) { + return 0; + } + i = downloads->insert(new DownloadInfo(ti->path, size)); } DownloadInfo* di = downloads->getData(i); di->update(*ti); + downloads->update(i); } else if(wParam == SPEAKER_DISCONNECTED) { boost::scoped_ptr<string> path(reinterpret_cast<string*>(lParam)); int i = find(*path); if(i != -1) { DownloadInfo* di = downloads->getData(i); - di->users--; + if(--di->users == 0) { + di->bps = 0; + } di->update(); + downloads->update(i); } } else if(wParam == SPEAKER_REMOVED) { boost::scoped_ptr<string> path(reinterpret_cast<string*>(lParam)); @@ -170,6 +182,10 @@ std::vector<TickInfo*> dis; for(DownloadList::const_iterator i = l.begin(); i != l.end(); ++i) { Download* d = *i; + if(d->getType() != Transfer::TYPE_FILE) { + continue; + } + TickInfo* ti = 0; for(std::vector<TickInfo*>::iterator j = dis.begin(); j != dis.end(); ++j) { TickInfo* ti2 = *j; @@ -180,6 +196,7 @@ } if(!ti) { ti = new TickInfo(d->getPath()); + dis.push_back(ti); } ti->users++; ti->bps += d->getAverageSpeed(); Modified: dcplusplus/trunk/win32/DownloadsFrame.h =================================================================== --- dcplusplus/trunk/win32/DownloadsFrame.h 2008-01-03 19:21:30 UTC (rev 955) +++ dcplusplus/trunk/win32/DownloadsFrame.h 2008-01-03 21:59:28 UTC (rev 956) @@ -20,7 +20,7 @@ #define DCPLUSPLUS_WIN32_DOWNLOADS_FRAME_H #include <dcpp/DownloadManagerListener.h> -#include <dcpp/ConnectionManagerListener.h> +#include <dcpp/QueueManagerListener.h> #include <dcpp/forward.h> #include <dcpp/ResourceManager.h> @@ -30,8 +30,8 @@ class DownloadsFrame : public StaticFrame<DownloadsFrame>, - private DownloadManagerListener, - private ConnectionManagerListener + public DownloadManagerListener, + public QueueManagerListener { public: enum Status { @@ -88,17 +88,22 @@ return columns[col]; } - int getImage() const { - return 0; - } + int getImage() const; static int compareItems(DownloadInfo* a, DownloadInfo* b, int col) { - return lstrcmpi(a->columns[col].c_str(), b->columns[col].c_str()); + switch(col) { + case COLUMN_STATUS: return compare(a->users, b->users); + case COLUMN_TIMELEFT: return compare(a->timeleft(), b->timeleft()); + case COLUMN_SPEED: return compare(a->bps, b->bps); + case COLUMN_SIZE: return compare(a->size, b->size); + default: return lstrcmpi(a->columns[col].c_str(), b->columns[col].c_str()); + } } void update(); void update(const TickInfo& ti); + int64_t timeleft() { return bps == 0 ? 0 : (size - done) / bps; } string path; int64_t done; int64_t size; @@ -119,7 +124,6 @@ int find(const string& path); - bool handleKeyDown(int c); bool handleContextMenu(SmartWin::ScreenCoordinate pt); LRESULT handleSpeaker(WPARAM wParam, LPARAM lParam); Modified: dcplusplus/trunk/win32/MainWindow.cpp =================================================================== --- dcplusplus/trunk/win32/MainWindow.cpp 2008-01-03 19:21:30 UTC (rev 955) +++ dcplusplus/trunk/win32/MainWindow.cpp 2008-01-03 21:59:28 UTC (rev 956) @@ -21,30 +21,18 @@ #include "MainWindow.h" #include "resource.h" -#include "SystemFrame.h" -#include "NotepadFrame.h" -#include "HubFrame.h" -#include "PublicHubsFrame.h" -#include "FavHubsFrame.h" -#include "QueueFrame.h" -#include "SearchFrame.h" -#include "ADLSearchFrame.h" -#include "SpyFrame.h" -#include "FinishedDLFrame.h" -#include "FinishedULFrame.h" #include "LineDlg.h" #include "HashProgressDlg.h" #include "SettingsDialog.h" #include "TextFrame.h" -#include "DirectoryListingFrame.h" -#include "PrivateFrame.h" #include "SingleInstance.h" -#include "StatsFrame.h" -#include "UsersFrame.h" -#include "WaitingUsersFrame.h" #include "AboutDlg.h" #include "UPnP.h" #include "TransferView.h" +#include "HubFrame.h" +#include "PrivateFrame.h" +#include "DirectoryListingFrame.h" +#include "SearchFrame.h" #include <dcpp/SettingsManager.h> #include <dcpp/ResourceManager.h> @@ -134,6 +122,7 @@ if(BOOLSETTING(OPEN_NOTEPAD)) postMessage(WM_COMMAND, IDC_NOTEPAD); if(BOOLSETTING(OPEN_PUBLIC)) postMessage(WM_COMMAND, IDC_PUBLIC_HUBS); if(BOOLSETTING(OPEN_FAVORITE_HUBS)) postMessage(WM_COMMAND, IDC_FAVORITE_HUBS); + if(BOOLSETTING(OPEN_DOWNLOADS)) postMessage(WM_COMMAND, IDC_DOWNLOADS); if (!WinUtil::isShift()) speak(AUTO_CONNECT); @@ -226,8 +215,9 @@ view->appendItem(IDC_NOTEPAD, TSTRING(MENU_NOTEPAD), std::tr1::bind(&MainWindow::handleOpenWindow, this, _1)); view->appendItem(IDC_SYSTEM_LOG, TSTRING(MENU_SYSTEM_LOG), std::tr1::bind(&MainWindow::handleOpenWindow, this, _1)); view->appendItem(IDC_NET_STATS, TSTRING(MENU_NETWORK_STATISTICS), std::tr1::bind(&MainWindow::handleOpenWindow, this, _1)); + view->appendItem(IDC_DOWNLOADS, T_("Downloads"), std::tr1::bind(&MainWindow::handleOpenWindow, this, _1)); view->appendItem(IDC_HASH_PROGRESS, TSTRING(MENU_HASH_PROGRESS), std::tr1::bind(&MainWindow::handleHashProgress, this)); - + WidgetMenuPtr window = mainMenu->appendPopup(CTSTRING(MENU_WINDOW)); window->appendItem(IDC_CLOSE_ALL_DISCONNECTED, TSTRING(MENU_CLOSE_DISCONNECTED), std::tr1::bind(&MainWindow::handleCloseWindows, this, _1)); @@ -834,53 +824,6 @@ WinUtil::openFile(Text::toT(SETTING(DOWNLOAD_DIRECTORY))); } -void MainWindow::handleOpenWindow(unsigned id) { - switch (id) { - case IDC_PUBLIC_HUBS: - PublicHubsFrame::openWindow(getMDIParent()); - break; - case IDC_FAVORITE_HUBS: - FavHubsFrame::openWindow(getMDIParent()); - break; - case IDC_FAVUSERS: - UsersFrame::openWindow(getMDIParent()); - break; - case IDC_QUEUE: - QueueFrame::openWindow(getMDIParent()); - break; - case IDC_FINISHED_DL: - FinishedDLFrame::openWindow(getMDIParent()); - break; - case IDC_WAITING_USERS: - WaitingUsersFrame::openWindow(getMDIParent()); - break; - case IDC_FINISHED_UL: - FinishedULFrame::openWindow(getMDIParent()); - break; - case IDC_SEARCH: - SearchFrame::openWindow(getMDIParent()); - break; - case IDC_ADL_SEARCH: - ADLSearchFrame::openWindow(getMDIParent()); - break; - case IDC_SEARCH_SPY: - SpyFrame::openWindow(getMDIParent()); - break; - case IDC_NOTEPAD: - NotepadFrame::openWindow(getMDIParent()); - break; - case IDC_SYSTEM_LOG: - SystemFrame::openWindow(getMDIParent()); - break; - case IDC_NET_STATS: - StatsFrame::openWindow(getMDIParent()); - break; - default: - dcassert(0); - break; - } -} - void MainWindow::on(HttpConnectionListener::Complete, HttpConnection* /*aConn*/, const string&) throw() { try { SimpleXML xml; Added: dcplusplus/trunk/win32/MainWindowFactory.cpp =================================================================== --- dcplusplus/trunk/win32/MainWindowFactory.cpp (rev 0) +++ dcplusplus/trunk/win32/MainWindowFactory.cpp 2008-01-03 21:59:28 UTC (rev 956) @@ -0,0 +1,86 @@ +/* + * Copyright (C) 2001-2007 Jacek Sieka, arnetheduck on gmail point com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include "stdafx.h" + +#include "MainWindow.h" + +#include "ADLSearchFrame.h" +#include "DownloadsFrame.h" +#include "FavHubsFrame.h" +#include "FinishedDLFrame.h" +#include "FinishedULFrame.h" +#include "NotepadFrame.h" +#include "PublicHubsFrame.h" +#include "QueueFrame.h" +#include "SearchFrame.h" +#include "SpyFrame.h" +#include "StatsFrame.h" +#include "SystemFrame.h" +#include "UsersFrame.h" +#include "WaitingUsersFrame.h" + +void MainWindow::handleOpenWindow(unsigned id) { + switch (id) { + case IDC_PUBLIC_HUBS: + PublicHubsFrame::openWindow(getMDIParent()); + break; + case IDC_FAVORITE_HUBS: + FavHubsFrame::openWindow(getMDIParent()); + break; + case IDC_FAVUSERS: + UsersFrame::openWindow(getMDIParent()); + break; + case IDC_QUEUE: + QueueFrame::openWindow(getMDIParent()); + break; + case IDC_FINISHED_DL: + FinishedDLFrame::openWindow(getMDIParent()); + break; + case IDC_WAITING_USERS: + WaitingUsersFrame::openWindow(getMDIParent()); + break; + case IDC_FINISHED_UL: + FinishedULFrame::openWindow(getMDIParent()); + break; + case IDC_SEARCH: + SearchFrame::openWindow(getMDIParent()); + break; + case IDC_ADL_SEARCH: + ADLSearchFrame::openWindow(getMDIParent()); + break; + case IDC_SEARCH_SPY: + SpyFrame::openWindow(getMDIParent()); + break; + case IDC_NOTEPAD: + NotepadFrame::openWindow(getMDIParent()); + break; + case IDC_SYSTEM_LOG: + SystemFrame::openWindow(getMDIParent()); + break; + case IDC_NET_STATS: + StatsFrame::openWindow(getMDIParent()); + break; + case IDC_DOWNLOADS: + DownloadsFrame::openWindow(getMDIParent()); + break; + default: + dcassert(0); + break; + } +} Modified: dcplusplus/trunk/win32/TypedListView.h =================================================================== --- dcplusplus/trunk/win32/TypedListView.h 2008-01-03 19:21:30 UTC (rev 955) +++ dcplusplus/trunk/win32/TypedListView.h 2008-01-03 21:59:28 UTC (rev 956) @@ -112,9 +112,7 @@ } void update(int i) { - unsigned k = this->getColumnCount(); - for(unsigned j = 0; j < k; ++j) - ListView_SetItemText(this->handle(), i, j, LPSTR_TEXTCALLBACK); + redraw(i, i); } void update(ContentType* item) { int i = find(item); if(i != -1) update(i); } Modified: dcplusplus/trunk/win32/WindowsPage.cpp =================================================================== --- dcplusplus/trunk/win32/WindowsPage.cpp 2008-01-03 19:21:30 UTC (rev 955) +++ dcplusplus/trunk/win32/WindowsPage.cpp 2008-01-03 21:59:28 UTC (rev 956) @@ -45,6 +45,7 @@ { SettingsManager::OPEN_NOTEPAD, ResourceManager::NOTEPAD }, { SettingsManager::OPEN_PUBLIC, ResourceManager::PUBLIC_HUBS }, { SettingsManager::OPEN_FAVORITE_HUBS, ResourceManager::FAVORITE_HUBS }, + { SettingsManager::OPEN_DOWNLOADS, ResourceManager::DOWNLOADS }, { 0, ResourceManager::SETTINGS_AUTO_AWAY } }; Modified: dcplusplus/trunk/win32/po/dcpp-win32.pot =================================================================== --- dcplusplus/trunk/win32/po/dcpp-win32.pot 2008-01-03 19:21:30 UTC (rev 955) +++ dcplusplus/trunk/win32/po/dcpp-win32.pot 2008-01-03 21:59:28 UTC (rev 956) @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: dcpp-win32\n" "Report-Msgid-Bugs-To: dcp...@li...\n" -"POT-Creation-Date: 2008-01-03 20:12+0100\n" +"POT-Creation-Date: 2008-01-03 22:52+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL...@li...>\n" @@ -17,22 +17,22 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: win32/DownloadsFrame.cpp:36 +#: win32/MainWindow.cpp:218 win32/DownloadsFrame.cpp:38 msgid "Downloads" msgstr "" -#: win32/DownloadsFrame.cpp:98 +#: win32/DownloadsFrame.cpp:110 msgid "Waiting for slot" msgstr "" -#: win32/DownloadsFrame.cpp:103 +#: win32/DownloadsFrame.cpp:114 #, boost-format msgid "Downloading from %1% user" msgid_plural "Downloading from %1% users" msgstr[0] "" msgstr[1] "" -#: win32/DownloadsFrame.cpp:105 +#: win32/DownloadsFrame.cpp:116 #, boost-format msgid "%1%/s" msgstr "" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |