diff --git a/retroshare-gui/src/gui/MainWindow.cpp b/retroshare-gui/src/gui/MainWindow.cpp index 12d534786..b8de7244c 100644 --- a/retroshare-gui/src/gui/MainWindow.cpp +++ b/retroshare-gui/src/gui/MainWindow.cpp @@ -158,6 +158,18 @@ MainWindow::MainWindow(QWidget* parent, Qt::WFlags flags) m_bStatusLoadDone = false; isIdle = false; + trayIconCombined = NULL; + trayIconMessages = NULL; + trayIconForums = NULL; + trayIconChannels = NULL; + trayIconChat = NULL; + trayIconTransfers = NULL; + trayActionMessages = NULL; + trayActionForums = NULL; + trayActionChannels = NULL; + trayActionChat = NULL; + trayActionTransfers = NULL; + setWindowTitle(tr("RetroShare %1 a secure decentralised communication platform").arg(retroshareVersion())); /* add url handler for RetroShare links */ @@ -298,12 +310,6 @@ MainWindow::MainWindow(QWidget* parent, Qt::WFlags flags) /* Set focus to the current page */ ui.stackPages->currentWidget()->setFocus(); - /* call once */ - updateMessages(); - updateForums(); - updateChannels(NOTIFY_TYPE_ADD); - privateChatChanged(NOTIFY_LIST_PRIVATE_INCOMING_CHAT, NOTIFY_TYPE_ADD); - idle = new Idle(); idle->start(); connect(idle, SIGNAL(secondsIdle(int)), this, SLOT(checkAndSetIdle(int))); @@ -357,7 +363,7 @@ void MainWindow::displayDiskSpaceWarning(int loc,int size_limit_mb) void MainWindow::createTrayIcon() { /** Tray icon Menu **/ - trayMenu = new QMenu(this); + QMenu *trayMenu = new QMenu(this); QObject::connect(trayMenu, SIGNAL(aboutToShow()), this, SLOT(updateMenu())); toggleVisibilityAction = trayMenu->addAction(QIcon(IMAGE_RETROSHARE), tr("Show/Hide"), this, SLOT(toggleVisibilitycontextmenu())); @@ -390,30 +396,135 @@ void MainWindow::createTrayIcon() connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(toggleVisibility(QSystemTrayIcon::ActivationReason))); trayIcon->show(); - // Create the tray icon for messages - trayIconMessages = new QSystemTrayIcon(this); - trayIconMessages->setIcon(QIcon(":/images/newmsg.png")); - connect(trayIconMessages, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(trayIconMessagesClicked(QSystemTrayIcon::ActivationReason))); + createNotifyIcons(); +} - // Create the tray icon for forums - trayIconForums = new QSystemTrayIcon(this); - trayIconForums->setIcon(QIcon(":/images/konversation16.png")); - connect(trayIconForums, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(trayIconForumsClicked(QSystemTrayIcon::ActivationReason))); +void MainWindow::createNotifyIcons() +{ +#define DELETE_ICON(x) if (x) { delete(x); x = NULL; } - // Create the tray icon for channels - trayIconChannels = new QSystemTrayIcon(this); - trayIconChannels->setIcon(QIcon(":/images/channels16.png")); - connect(trayIconChannels, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(trayIconChannelsClicked(QSystemTrayIcon::ActivationReason))); + int notifyFlag = Settings->getTrayNotifyFlags(); - // Create the tray icon for chat - trayIconChat = new QSystemTrayIcon(this); - trayIconChat->setIcon(QIcon(":/images/chat.png")); - connect(trayIconChat, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(trayIconChatClicked(QSystemTrayIcon::ActivationReason))); + QMenu *trayMenu = NULL; - // Create the tray icon for transfers - trayIconTransfers = new QSystemTrayIcon(this); - trayIconTransfers->setIcon(QIcon(":/images/ktorrent32.png")); - connect(trayIconTransfers, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(trayIconTransfersClicked(QSystemTrayIcon::ActivationReason))); + /* Delete combined systray icon and rebuild it */ + trayActionMessages = NULL; + trayActionForums = NULL; + trayActionChannels = NULL; + trayActionChat = NULL; + trayActionTransfers = NULL; + DELETE_ICON(trayIconCombined); + + if (notifyFlag & TRAYNOTIFY_COMBINEDICON) { + /* Delete single systray icons */ + DELETE_ICON(trayIconMessages); + DELETE_ICON(trayIconForums); + DELETE_ICON(trayIconChannels); + DELETE_ICON(trayIconChat); + DELETE_ICON(trayIconTransfers); + + /* Create combined systray icon */ + trayIconCombined = new QSystemTrayIcon(this); + trayIconCombined->setIcon(QIcon(":/images/rstray_new.png")); + + trayMenu = new QMenu(this); + trayIconCombined->setContextMenu(trayMenu); + } + + /* Create systray icons or actions */ + if (notifyFlag & TRAYNOTIFY_MESSAGES) { + if (trayMenu) { + DELETE_ICON(trayIconMessages); + + trayActionMessages = trayMenu->addAction(QIcon(":/images/newmsg.png"), "", this, SLOT(trayIconMessagesClicked())); + trayActionMessages->setVisible(false); + trayActionMessages->setData(tr("Messages")); + } else if (trayIconMessages == NULL) { + // Create the tray icon for messages + trayIconMessages = new QSystemTrayIcon(this); + trayIconMessages->setIcon(QIcon(":/images/newmsg.png")); + connect(trayIconMessages, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(trayIconMessagesClicked(QSystemTrayIcon::ActivationReason))); + } + } else { + DELETE_ICON(trayIconMessages); + } + + if (notifyFlag & TRAYNOTIFY_FORUMS) { + if (trayMenu) { + DELETE_ICON(trayIconForums); + + trayActionForums = trayMenu->addAction(QIcon(":/images/konversation16.png"), "", this, SLOT(trayIconForumsClicked())); + trayActionForums->setVisible(false); + trayActionForums->setData(tr("Forums")); + } else if (trayIconForums == NULL) { + // Create the tray icon for forums + trayIconForums = new QSystemTrayIcon(this); + trayIconForums->setIcon(QIcon(":/images/konversation16.png")); + connect(trayIconForums, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(trayIconForumsClicked(QSystemTrayIcon::ActivationReason))); + } + } else { + DELETE_ICON(trayIconForums); + } + + if (notifyFlag & TRAYNOTIFY_CHANNELS) { + if (trayMenu) { + DELETE_ICON(trayIconChannels); + + trayActionChannels = trayMenu->addAction(QIcon(":/images/channels16.png"), "", this, SLOT(trayIconChannelsClicked())); + trayActionChannels->setVisible(false); + trayActionChannels->setData(tr("Channels")); + } else if (trayIconChannels == NULL) { + // Create the tray icon for channels + trayIconChannels = new QSystemTrayIcon(this); + trayIconChannels->setIcon(QIcon(":/images/channels16.png")); + connect(trayIconChannels, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(trayIconChannelsClicked(QSystemTrayIcon::ActivationReason))); + } + } else { + DELETE_ICON(trayIconChannels); + } + + if (notifyFlag & TRAYNOTIFY_PRIVATECHAT) { + if (trayMenu) { + DELETE_ICON(trayIconChat); + + trayActionChat = trayMenu->addAction(QIcon(":/images/chat.png"), "", this, SLOT(trayIconChatClicked())); + trayActionChat->setVisible(false); + trayActionChat->setData(tr("Chat")); + } else if (trayIconChat == NULL) { + // Create the tray icon for chat + trayIconChat = new QSystemTrayIcon(this); + trayIconChat->setIcon(QIcon(":/images/chat.png")); + connect(trayIconChat, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(trayIconChatClicked(QSystemTrayIcon::ActivationReason))); + } + } else { + DELETE_ICON(trayIconChat); + } + + if (notifyFlag & TRAYNOTIFY_TRANSFERS) { + if (trayMenu) { + DELETE_ICON(trayIconTransfers); + + trayActionTransfers = trayMenu->addAction(QIcon(":/images/ktorrent32.png"), "", this, SLOT(trayIconTransfersClicked())); + trayActionTransfers->setVisible(false); + trayActionTransfers->setData(tr("Transfers")); + } else if (trayIconTransfers == NULL) { + // Create the tray icon for transfers + trayIconTransfers = new QSystemTrayIcon(this); + trayIconTransfers->setIcon(QIcon(":/images/ktorrent32.png")); + connect(trayIconTransfers, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(trayIconTransfersClicked(QSystemTrayIcon::ActivationReason))); + } + } else { + DELETE_ICON(trayIconTransfers); + } + + /* call once */ + updateMessages(); + updateForums(); + updateChannels(NOTIFY_TYPE_ADD); + privateChatChanged(NOTIFY_LIST_PRIVATE_INCOMING_CHAT, NOTIFY_TYPE_ADD); + // transfer + +#undef DELETE_ICON } /*static*/ void MainWindow::installGroupChatNotifier() @@ -430,6 +541,16 @@ void MainWindow::createTrayIcon() } } +/*static*/ void MainWindow::installNotifyIcons() +{ + if (_instance == NULL) { + // nothing to do + return; + } + + _instance->createNotifyIcons(); +} + void MainWindow::displaySystrayMsg(const QString& title,const QString& msg) { trayIcon->showMessage(title, msg, QSystemTrayIcon::Information, 3000); @@ -446,16 +567,33 @@ void MainWindow::updateMessages() messageAction->setIcon(QIcon(QPixmap(":/images/evolution.png"))) ; } - if (newInboxCount && (Settings->getTrayNotifyFlags() & TRAYNOTIFY_MESSAGES)) { - if (newInboxCount > 1) { - trayIconMessages->setToolTip(tr("RetroShare") + "\n" + tr("You have %1 new messages").arg(newInboxCount)); + if (trayIconMessages) { + if (newInboxCount) { + if (newInboxCount > 1) { + trayIconMessages->setToolTip("RetroShare\n" + tr("You have %1 new messages").arg(newInboxCount)); + } else { + trayIconMessages->setToolTip("RetroShare\n" + tr("You have %1 new message").arg(newInboxCount)); + } + trayIconMessages->show(); } else { - trayIconMessages->setToolTip(tr("RetroShare") + "\n" + tr("You have %1 new message").arg(newInboxCount)); + trayIconMessages->hide(); } - trayIconMessages->show(); - } else { - trayIconMessages->hide(); } + + if (trayActionMessages) { + if (newInboxCount) { + if (newInboxCount > 1) { + trayActionMessages->setText(tr("%1 new messages").arg(newInboxCount)); + } else { + trayActionMessages->setText(tr("%1 new message").arg(newInboxCount)); + } + trayActionMessages->setVisible(true); + } else { + trayActionMessages->setVisible(false); + } + } + + updateTrayCombine(); } void MainWindow::updateForums() @@ -470,16 +608,33 @@ void MainWindow::updateForums() forumAction->setIcon(QIcon(IMAGE_FORUMS)) ; } - if (newMessageCount && (Settings->getTrayNotifyFlags() & TRAYNOTIFY_FORUMS)) { - if (newMessageCount > 1) { - trayIconForums->setToolTip(tr("RetroShare") + "\n" + tr("You have %1 new messages").arg(newMessageCount)); + if (trayIconForums) { + if (newMessageCount) { + if (newMessageCount > 1) { + trayIconForums->setToolTip("RetroShare\n" + tr("You have %1 new messages").arg(newMessageCount)); + } else { + trayIconForums->setToolTip("RetroShare\n" + tr("You have %1 new message").arg(newMessageCount)); + } + trayIconForums->show(); } else { - trayIconForums->setToolTip(tr("RetroShare") + "\n" + tr("You have %1 new message").arg(newMessageCount)); + trayIconForums->hide(); } - trayIconForums->show(); - } else { - trayIconForums->hide(); } + + if (trayActionForums) { + if (newMessageCount) { + if (newMessageCount > 1) { + trayActionForums->setText(tr("%1 new messages").arg(newMessageCount)); + } else { + trayActionForums->setText(tr("%1 new message").arg(newMessageCount)); + } + trayActionForums->setVisible(true); + } else { + trayActionForums->setVisible(false); + } + } + + updateTrayCombine(); } void MainWindow::updateChannels(int type) @@ -494,16 +649,33 @@ void MainWindow::updateChannels(int type) channelAction->setIcon(QIcon(IMAGE_CHANNELS)) ; } - if (newMessageCount && (Settings->getTrayNotifyFlags() & TRAYNOTIFY_CHANNELS)) { - if (newMessageCount > 1) { - trayIconChannels->setToolTip(tr("RetroShare") + "\n" + tr("You have %1 new messages").arg(newMessageCount)); + if (trayIconChannels) { + if (newMessageCount) { + if (newMessageCount > 1) { + trayIconChannels->setToolTip("RetroShare\n" + tr("You have %1 new messages").arg(newMessageCount)); + } else { + trayIconChannels->setToolTip("RetroShare\n" + tr("You have %1 new message").arg(newMessageCount)); + } + trayIconChannels->show(); } else { - trayIconChannels->setToolTip(tr("RetroShare") + "\n" + tr("You have %1 new message").arg(newMessageCount)); + trayIconChannels->hide(); } - trayIconChannels->show(); - } else { - trayIconChannels->hide(); } + + if (trayActionChannels) { + if (newMessageCount) { + if (newMessageCount > 1) { + trayActionChannels->setText(tr("%1 new messages").arg(newMessageCount)); + } else { + trayActionChannels->setText(tr("%1 new message").arg(newMessageCount)); + } + trayActionChannels->setVisible(true); + } else { + trayActionChannels->setVisible(false); + } + } + + updateTrayCombine(); } void MainWindow::updateTransfers(int count) @@ -514,15 +686,57 @@ void MainWindow::updateTransfers(int count) transferAction->setIcon(QIcon(IMAGE_TRANSFERS)) ; } - if (count && (Settings->getTrayNotifyFlags() & TRAYNOTIFY_TRANSFERS)) { - if (count > 1) { - trayIconTransfers->setToolTip(tr("RetroShare") + "\n" + tr("You have %1 completed downloads").arg(count)); + if (trayIconTransfers) { + if (count) { + if (count > 1) { + trayIconTransfers->setToolTip("RetroShare\n" + tr("You have %1 completed downloads").arg(count)); + } else { + trayIconTransfers->setToolTip("RetroShare\n" + tr("You have %1 completed download").arg(count)); + } + trayIconTransfers->show(); } else { - trayIconTransfers->setToolTip(tr("RetroShare") + "\n" + tr("You have %1 completed download").arg(count)); + trayIconTransfers->hide(); } - trayIconTransfers->show(); - } else { - trayIconTransfers->hide(); + } + + if (trayActionTransfers) { + if (count) { + if (count > 1) { + trayActionTransfers->setText(tr("%1 completed downloads").arg(count)); + } else { + trayActionTransfers->setText(tr("%1 completed download").arg(count)); + } + trayActionTransfers->setVisible(true); + } else { + trayActionTransfers->setVisible(false); + } + } + + updateTrayCombine(); +} + +void MainWindow::updateTrayCombine() +{ + if (trayIconCombined) { + QMenu *trayMenu = trayIconCombined->contextMenu(); + QList actions = trayMenu->actions(); + + bool visible = false; + QString toolTip; + + QList::iterator actionIt; + for (actionIt = actions.begin(); actionIt != actions.end(); actionIt++) { + if ((*actionIt)->isVisible()) { + visible = true; + if (toolTip.isEmpty() == false) { + toolTip += "\r"; + } + toolTip += (*actionIt)->data().toString() + ":" + (*actionIt)->text(); + } + } + + trayIconCombined->setToolTip(toolTip); + trayIconCombined->setVisible(visible); } } @@ -569,7 +783,7 @@ void MainWindow::updateStatus() trayIcon->setIcon(QIcon(IMAGE_RETROSHARE)); } - QString tray = tr("RetroShare") + "\n" + tr("Down: %1 (kB/s)").arg(downKb, 0, 'f', 2) + " | " + tr("Up: %1 (kB/s)").arg(upKb, 0, 'f', 2) + "\n"; + QString tray = "RetroShare\n" + tr("Down: %1 (kB/s)").arg(downKb, 0, 'f', 2) + " | " + tr("Up: %1 (kB/s)").arg(upKb, 0, 'f', 2) + "\n"; if (nOnlineCount == 1) { tray += tr("%1 friend connected").arg(nOnlineCount); @@ -589,11 +803,33 @@ void MainWindow::privateChatChanged(int list, int type) /* than count the chat messages */ int chatCount = rsMsgs->getPrivateChatQueueCount(true); - if (chatCount && (Settings->getTrayNotifyFlags() & TRAYNOTIFY_PRIVATECHAT)) { - trayIconChat->show(); - } else { - trayIconChat->hide(); + if (trayIconChat) { + if (chatCount) { + if (chatCount > 1) { + trayIconChat->setToolTip("RetroShare\n" + tr("You have %1 new messages").arg(chatCount)); + } else { + trayIconChat->setToolTip("RetroShare\n" + tr("You have %1 new message").arg(chatCount)); + } + trayIconChat->show(); + } else { + trayIconChat->hide(); + } } + + if (trayActionChat) { + if (chatCount) { + if (chatCount > 1) { + trayActionChat->setText(tr("%1 new messages").arg(chatCount)); + } else { + trayActionChat->setText(tr("%1 new message").arg(chatCount)); + } + trayActionChat->setVisible(true); + } else { + trayActionChat->setVisible(false);; + } + } + + updateTrayCombine(); } } diff --git a/retroshare-gui/src/gui/MainWindow.h b/retroshare-gui/src/gui/MainWindow.h index de1e9699c..ac2aa7fae 100644 --- a/retroshare-gui/src/gui/MainWindow.h +++ b/retroshare-gui/src/gui/MainWindow.h @@ -131,6 +131,7 @@ public: PluginsPage* pluginsPage ; static void installGroupChatNotifier(); + static void installNotifyIcons(); /* initialize widget with status informations, status constant stored in data or in Qt::UserRole */ void initializeStatusObject(QObject *pObject, bool bConnect); @@ -164,11 +165,13 @@ private slots: void toggleVisibility(QSystemTrayIcon::ActivationReason e); void toggleVisibilitycontextmenu(); - void trayIconMessagesClicked(QSystemTrayIcon::ActivationReason e); - void trayIconForumsClicked(QSystemTrayIcon::ActivationReason e); - void trayIconChannelsClicked(QSystemTrayIcon::ActivationReason e); - void trayIconChatClicked(QSystemTrayIcon::ActivationReason e); - void trayIconTransfersClicked(QSystemTrayIcon::ActivationReason e); + + /* default parameter for connect with the actions of the combined systray icon */ + void trayIconMessagesClicked(QSystemTrayIcon::ActivationReason e = QSystemTrayIcon::Trigger); + void trayIconForumsClicked(QSystemTrayIcon::ActivationReason e = QSystemTrayIcon::Trigger); + void trayIconChannelsClicked(QSystemTrayIcon::ActivationReason e = QSystemTrayIcon::Trigger); + void trayIconChatClicked(QSystemTrayIcon::ActivationReason e = QSystemTrayIcon::Trigger); + void trayIconTransfersClicked(QSystemTrayIcon::ActivationReason e = QSystemTrayIcon::Trigger); /** Toolbar fns. */ void addFriend(); @@ -206,6 +209,8 @@ private: void createActions(); void createTrayIcon(); + void createNotifyIcons(); + void updateTrayCombine(); static MainWindow *_instance; @@ -231,13 +236,18 @@ private: void loadStyleSheet(const QString &sheetName); QSystemTrayIcon *trayIcon; + QSystemTrayIcon *trayIconCombined; QSystemTrayIcon *trayIconMessages; QSystemTrayIcon *trayIconForums; QSystemTrayIcon *trayIconChannels; QSystemTrayIcon *trayIconChat; QSystemTrayIcon *trayIconTransfers; + QAction *trayActionMessages; + QAction *trayActionForums; + QAction *trayActionChannels; + QAction *trayActionChat; + QAction *trayActionTransfers; QAction *toggleVisibilityAction, *toolAct; - QMenu *trayMenu; PeerStatus *peerstatus; NATStatus *natstatus; diff --git a/retroshare-gui/src/gui/images.qrc b/retroshare-gui/src/gui/images.qrc index 75e89ab73..56d474e0b 100644 --- a/retroshare-gui/src/gui/images.qrc +++ b/retroshare-gui/src/gui/images.qrc @@ -354,6 +354,7 @@ images/rstray0.png images/rstray1.png images/rstray2.png + images/rstray_new.png images/security-high-16.png images/security-high-48.png images/security-low-48.png diff --git a/retroshare-gui/src/gui/images/rstray_new.png b/retroshare-gui/src/gui/images/rstray_new.png new file mode 100644 index 000000000..a45d972d3 Binary files /dev/null and b/retroshare-gui/src/gui/images/rstray_new.png differ diff --git a/retroshare-gui/src/gui/settings/NotifyPage.cpp b/retroshare-gui/src/gui/settings/NotifyPage.cpp index 8121ac539..25daddbe7 100755 --- a/retroshare-gui/src/gui/settings/NotifyPage.cpp +++ b/retroshare-gui/src/gui/settings/NotifyPage.cpp @@ -114,6 +114,8 @@ NotifyPage::save(QString &errmsg) traynotifyflags |= TRAYNOTIFY_FORUMS; if (ui.trayNotify_Transfer->isChecked()) traynotifyflags |= TRAYNOTIFY_TRANSFERS; + if (ui.trayNotify_CombinedIcon->isChecked()) + traynotifyflags |= TRAYNOTIFY_COMBINEDICON; Settings->setNotifyFlags(notifyflags); Settings->setTrayNotifyFlags(traynotifyflags); @@ -122,6 +124,7 @@ NotifyPage::save(QString &errmsg) Settings->setDisplayTrayGroupChat(ui.systray_GroupChat->isChecked()); MainWindow::installGroupChatNotifier(); + MainWindow::installNotifyIcons(); Settings->setAddFeedsAtEnd(ui.addFeedsAtEnd->isChecked()); @@ -164,6 +167,7 @@ void NotifyPage::load() ui.trayNotify_Channels->setChecked(traynotifyflags & TRAYNOTIFY_CHANNELS); ui.trayNotify_Forums->setChecked(traynotifyflags & TRAYNOTIFY_FORUMS); ui.trayNotify_Transfer->setChecked(traynotifyflags & TRAYNOTIFY_TRANSFERS); + ui.trayNotify_CombinedIcon->setChecked(traynotifyflags & TRAYNOTIFY_COMBINEDICON); ui.addFeedsAtEnd->setChecked(Settings->getAddFeedsAtEnd()); } diff --git a/retroshare-gui/src/gui/settings/NotifyPage.ui b/retroshare-gui/src/gui/settings/NotifyPage.ui index 03b179230..bc4c4992f 100755 --- a/retroshare-gui/src/gui/settings/NotifyPage.ui +++ b/retroshare-gui/src/gui/settings/NotifyPage.ui @@ -6,7 +6,7 @@ 0 0 - 396 + 408 425 @@ -616,6 +616,20 @@ + + + + Qt::Horizontal + + + + + + + Combined icon + + + diff --git a/retroshare-gui/src/gui/settings/rsharesettings.h b/retroshare-gui/src/gui/settings/rsharesettings.h index 79b107cc9..49af523db 100644 --- a/retroshare-gui/src/gui/settings/rsharesettings.h +++ b/retroshare-gui/src/gui/settings/rsharesettings.h @@ -32,12 +32,14 @@ #include "rsettings.h" /* Defines for get/setTrayNotifyFlags */ -#define TRAYNOTIFY_PRIVATECHAT 0x01 -#define TRAYNOTIFY_MESSAGES 0x02 -#define TRAYNOTIFY_CHANNELS 0x04 -#define TRAYNOTIFY_FORUMS 0x08 -#define TRAYNOTIFY_TRANSFERS 0x10 -#define TRAYNOTIFY_ALL 0x1F +#define TRAYNOTIFY_PRIVATECHAT 0x00000001 +#define TRAYNOTIFY_MESSAGES 0x00000002 +#define TRAYNOTIFY_CHANNELS 0x00000004 +#define TRAYNOTIFY_FORUMS 0x00000008 +#define TRAYNOTIFY_TRANSFERS 0x00000010 +#define TRAYNOTIFY_ALL 0x0000001F + +#define TRAYNOTIFY_COMBINEDICON 0x80000000 //Forward declaration. class QWidget; diff --git a/retroshare-gui/src/lang/retroshare_de.qm b/retroshare-gui/src/lang/retroshare_de.qm index 6fc13b146..5bc62d001 100644 Binary files a/retroshare-gui/src/lang/retroshare_de.qm and b/retroshare-gui/src/lang/retroshare_de.qm differ diff --git a/retroshare-gui/src/lang/retroshare_de.ts b/retroshare-gui/src/lang/retroshare_de.ts index 633ad81d0..d24aed433 100644 --- a/retroshare-gui/src/lang/retroshare_de.ts +++ b/retroshare-gui/src/lang/retroshare_de.ts @@ -5100,7 +5100,7 @@ p, li { white-space: pre-wrap; } MainWindow - + Network Netzwerk @@ -5111,26 +5111,50 @@ p, li { white-space: pre-wrap; } + Transfers Übertragungen - + + Messages Nachrichten - + + Channels Kanäle - + Blogs Blogs - + + Chat + Chat + + + + + + + %1 new messages + %1 neue Nachrichten + + + + + + + %1 new message + %1 neue Nachricht + + + You have %1 completed downloads Du hast %1 fertige Downloads @@ -5140,7 +5164,17 @@ p, li { white-space: pre-wrap; } Du hast %1 fertigen Download - + + %1 completed downloads + %1 fertige Downloads + + + + %1 completed download + %1 fertigen Download + + + Down: %1 (kB/s) Runter: %1 (kB/s) @@ -5155,7 +5189,7 @@ p, li { white-space: pre-wrap; } %1 Freunde verbunden - + It seems to be an old RetroShare link. Please use copy instead. Es scheint ein alter RetroShare Link zu sein. Bitte kopiere den Link stattdessen. @@ -5165,12 +5199,12 @@ p, li { white-space: pre-wrap; } Link ist fehlerhaft. - + %1 friend connected %1 Freund verbunden - + Internal Error Interener Fehler @@ -5191,16 +5225,7 @@ p, li { white-space: pre-wrap; } Zeigen - - - - - - - - - - + RetroShare @@ -5231,7 +5256,7 @@ p, li { white-space: pre-wrap; } Schnellstart Assistent - + Search Suchen @@ -5246,7 +5271,7 @@ p, li { white-space: pre-wrap; } Messenger - + Show/Hide Anzeigen/Verbergen @@ -5256,21 +5281,23 @@ p, li { white-space: pre-wrap; } &Schliessen - - - + + + + You have %1 new messages Du hast %1 neue Nachrichten - - - + + + + You have %1 new message Du hast %1 neue Nachricht - + Bandwidth Graph Bandbreiten-Graph @@ -5285,7 +5312,7 @@ p, li { white-space: pre-wrap; } Schliessen - + Minimize Minimieren @@ -5295,7 +5322,7 @@ p, li { white-space: pre-wrap; } Maximieren - + Links Cloud Verknüpfungs-Wolke @@ -5310,7 +5337,7 @@ p, li { white-space: pre-wrap; } - + Help Hilfe @@ -5320,17 +5347,18 @@ p, li { white-space: pre-wrap; } Über - + + Forums Foren - + RetroShare %1 a secure decentralised communication platform RetroShare %1 eine sichere und dezentralisierte Kommunikationsplattform - + Open Messages Öffne Nachrichten @@ -5340,12 +5368,12 @@ p, li { white-space: pre-wrap; } Anwendungen - + Plugins - + Do you really want to exit RetroShare ? Willst Du RetroShare wirklich beenden? @@ -5355,7 +5383,7 @@ p, li { white-space: pre-wrap; } Wirklich beenden? - + Low disk space warning Wenig Festplatenspeicher @@ -7017,12 +7045,17 @@ p, li { white-space: pre-wrap; } - + Download completed Download fertig - + + Combined icon + Kombiniertes Icon + + + Toasters @@ -7067,7 +7100,7 @@ p, li { white-space: pre-wrap; } Zeige Systemabschnitts-Nachricht an - + Add feeds at end Feeds am Ende anfügen