30 setObjectName(
QSL(
"sbi_networkicon"));
31 setCursor(Qt::PointingHandCursor);
34 onlineStateChanged(
true);
38void SBI_NetworkIcon::onlineStateChanged(
bool online)
41 setPixmap(QIcon(
QSL(
":sbi/data/network-online.png")).pixmap(16));
44 setPixmap(QIcon(
QSL(
":sbi/data/network-offline.png")).pixmap(16));
50void SBI_NetworkIcon::showDialog()
56void SBI_NetworkIcon::showMenu(
const QPoint &pos)
58 QFont boldFont = font();
59 boldFont.setBold(
true);
62 menu.addAction(QIcon::fromTheme(
QSL(
"preferences-system-network"), QIcon(
QSL(
":sbi/data/preferences-network.png"))), tr(
"Proxy Configuration"))->setFont(boldFont);
64 QMenu* proxyMenu = menu.addMenu(tr(
"Select proxy"));
66 const QHash<QString, SBI_NetworkProxy*> &proxies =
SBINetManager->proxies();
68 QHashIterator<QString, SBI_NetworkProxy*> it(proxies);
69 while (it.hasNext()) {
71 QAction* act = proxyMenu->addAction(it.key(),
this, &SBI_NetworkIcon::useProxy);
72 act->setData(it.key());
73 act->setCheckable(
true);
77 if (proxyMenu->actions().isEmpty()) {
78 proxyMenu->addAction(tr(
"Empty"))->setEnabled(
false);
82 menu.addAction(tr(
"Manage proxies"),
this, &SBI_NetworkIcon::showDialog);
86void SBI_NetworkIcon::useProxy()
88 if (
auto* act = qobject_cast<QAction*>(sender())) {
93void SBI_NetworkIcon::updateToolTip()
95 QString tooltip = tr(
"Shows network status and manages proxy<br/><br/><b>Network:</b><br/>%1<br/><br/><b>Proxy:</b><br/>%2");
99 tooltip = tooltip.arg(tr(
"Connected"));
101 switch (QNetworkProxy::applicationProxy().type()) {
102 case QNetworkProxy::DefaultProxy:
103 tooltip = tooltip.arg(tr(
"System proxy"));
106 case QNetworkProxy::NoProxy:
107 tooltip = tooltip.arg(tr(
"No proxy"));
111 tooltip = tooltip.arg(tr(
"User defined"));
122void SBI_NetworkIcon::enterEvent(QEnterEvent* event)
126 SBI_Icon::enterEvent(event);
SBI_NetworkIcon(BrowserWindow *window)