linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #07687
[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 3371: Add connectivity status for hubs to the favorite hubs window
------------------------------------------------------------
revno: 3371
committer: Fredrik Ullner <ullner@xxxxxxxxx>
branch nick: dcplusplus
timestamp: Fri 2013-11-29 18:42:21 +0100
message:
Add connectivity status for hubs to the favorite hubs window
modified:
changelog.txt
dcpp/ClientManager.cpp
dcpp/ClientManager.h
win32/FavHubsFrame.cpp
win32/FavHubsFrame.h
--
lp:dcplusplus
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk
Your team Dcplusplus-team is subscribed to branch lp:dcplusplus.
To unsubscribe from this branch go to https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk/+edit-subscription
=== modified file 'changelog.txt'
--- changelog.txt 2013-11-29 17:18:43 +0000
+++ changelog.txt 2013-11-29 17:42:21 +0000
@@ -4,6 +4,7 @@
* [L#250238] Remove queued files that are already shared when DC++ starts (ullner)
* [L#309815] Hub icon will change depending on user status (user/registered/operator) (ullner)
* [L#721513] Transferview: Added "Remove file from queue" menu option and "Force attempt" is now only available for downloads (ullner)
+* [L#210217] Add connectivity status for hubs to the favorite hubs window (ullner)
-- 0.831 2013-11-11 --
* [L#1249810] Fix NMDC TTH search responses (emtee)
=== modified file 'dcpp/ClientManager.cpp'
--- dcpp/ClientManager.cpp 2013-09-22 13:51:20 +0000
+++ dcpp/ClientManager.cpp 2013-11-29 17:42:21 +0000
@@ -206,6 +206,17 @@
return false;
}
+bool ClientManager::isHubConnected(const string& aUrl) const {
+ Lock l(cs);
+
+ for(auto i: clients) {
+ if(i->getHubUrl() == aUrl) {
+ return i->isConnected();
+ }
+ }
+ return false;
+}
+
string ClientManager::findHub(const string& ipPort) const {
Lock l(cs);
=== modified file 'dcpp/ClientManager.h'
--- dcpp/ClientManager.h 2013-09-15 16:39:42 +0000
+++ dcpp/ClientManager.h 2013-11-29 17:42:21 +0000
@@ -78,6 +78,7 @@
string getOfflineNick(const CID& cid) const;
bool isConnected(const string& aUrl) const;
+ bool isHubConnected(const string& aUrl) const;
void search(int aSizeMode, int64_t aSize, int aFileType, const string& aString, const string& aToken);
void search(StringList& who, int aSizeMode, int64_t aSize, int aFileType, const string& aString, const string& aToken, const StringList& aExtList);
=== modified file 'win32/FavHubsFrame.cpp'
--- win32/FavHubsFrame.cpp 2013-01-21 18:43:48 +0000
+++ win32/FavHubsFrame.cpp 2013-11-29 17:42:21 +0000
@@ -22,6 +22,8 @@
#include <set>
#include <dcpp/FavoriteManager.h>
+#include <dcpp/ClientManager.h>
+#include <dcpp/Util.h>
#include <dcpp/version.h>
#include <dwt/widgets/Grid.h>
@@ -42,6 +44,7 @@
const string& FavHubsFrame::getId() const { return id; }
static const ColumnInfo hubsColumns[] = {
+ { N_("Status"), 25, false },
{ N_("Name"), 200, false },
{ N_("Description"), 290, false },
{ N_("Nick"), 125, false },
@@ -56,7 +59,7 @@
grid(0),
hubs(0)
{
- grid = addChild(Grid::Seed(2, 8));
+ grid = addChild(Grid::Seed(2, 9));
grid->column(0).mode = GridInfo::FILL;
grid->column(1).mode = GridInfo::FILL;
grid->column(2).mode = GridInfo::FILL;
@@ -65,6 +68,7 @@
grid->column(5).mode = GridInfo::FILL;
grid->column(6).mode = GridInfo::FILL;
grid->column(7).mode = GridInfo::FILL;
+ grid->column(8).mode = GridInfo::FILL;
grid->row(0).mode = GridInfo::FILL;
grid->row(0).align = GridInfo::STRETCH;
@@ -72,7 +76,7 @@
Table::Seed cs = WinUtil::Seeds::table;
cs.style |= LVS_NOSORTHEADER;
hubs = grid->addChild(cs);
- grid->setWidget(hubs, 0, 0, 1, 8);
+ grid->setWidget(hubs, 0, 0, 1, 9);
addWidget(hubs);
WinUtil::makeColumns(hubs, hubsColumns, COLUMN_LAST, SETTING(FAVHUBSFRAME_ORDER), SETTING(FAVHUBSFRAME_WIDTHS));
@@ -152,6 +156,7 @@
fillList();
FavoriteManager::getInstance()->addListener(this);
+ ClientManager::getInstance()->addListener(this);
}
FavHubsFrame::~FavHubsFrame() {
@@ -168,6 +173,7 @@
bool FavHubsFrame::preClosing() {
FavoriteManager::getInstance()->removeListener(this);
+ ClientManager::getInstance()->removeListener(this);
return true;
}
@@ -403,7 +409,14 @@
} else
index = -1;
+ auto statusText = Util::emptyStringT;
+ if(ClientManager::getInstance()->isHubConnected(entry->getServer()))
+ {
+ statusText = T_("Connected");
+ }
+
TStringList l;
+ l.push_back(statusText);
l.push_back(Text::toT(entry->getName()));
l.push_back(Text::toT(entry->getHubDescription()));
l.push_back(Text::toT(entry->get(HubSettings::Nick)));
@@ -444,3 +457,13 @@
void FavHubsFrame::on(FavoriteRemoved, const FavoriteHubEntryPtr e) noexcept {
hubs->erase(hubs->findData(reinterpret_cast<LPARAM>(e)));
}
+
+void FavHubsFrame::on(ClientManagerListener::ClientConnected, Client*) noexcept
+{
+ callAsync([=] { refresh(); });
+}
+
+void FavHubsFrame::on(ClientManagerListener::ClientDisconnected, Client*) noexcept
+{
+ callAsync([=] { refresh(); });
+}
=== modified file 'win32/FavHubsFrame.h'
--- win32/FavHubsFrame.h 2013-01-18 21:28:38 +0000
+++ win32/FavHubsFrame.h 2013-11-29 17:42:21 +0000
@@ -20,12 +20,14 @@
#define DCPLUSPLUS_WIN32_FAV_HUBS_FRAME_H
#include <dcpp/FavoriteManagerListener.h>
+#include <dcpp/ClientManagerListener.h>
#include "StaticFrame.h"
class FavHubsFrame :
public StaticFrame<FavHubsFrame>,
- private FavoriteManagerListener
+ private FavoriteManagerListener,
+ private ClientManagerListener
{
typedef StaticFrame<FavHubsFrame> BaseType;
public:
@@ -52,7 +54,8 @@
private:
enum {
COLUMN_FIRST,
- COLUMN_NAME = COLUMN_FIRST,
+ COLUMN_STATUS = COLUMN_FIRST,
+ COLUMN_NAME,
COLUMN_DESCRIPTION,
COLUMN_NICK,
COLUMN_PASSWORD,
@@ -97,8 +100,13 @@
void select(const FavoriteHubEntryList& entries);
void openSelected();
+ // FavoriteManagerListener
virtual void on(FavoriteAdded, const FavoriteHubEntryPtr e) noexcept;
virtual void on(FavoriteRemoved, const FavoriteHubEntryPtr e) noexcept;
+
+ // ClientManagerListener
+ virtual void on(ClientManagerListener::ClientConnected, Client*) noexcept;
+ virtual void on(ClientManagerListener::ClientDisconnected, Client*) noexcept;
};
#endif // !defined(DCPLUSPLUS_WIN32_FAV_HUBS_FRAME_H)