diff --git a/retroshare-gui/src/gui/chat/PopupChatWindow.cpp b/retroshare-gui/src/gui/chat/PopupChatWindow.cpp index 8c495c4cb..3e05b51e4 100644 --- a/retroshare-gui/src/gui/chat/PopupChatWindow.cpp +++ b/retroshare-gui/src/gui/chat/PopupChatWindow.cpp @@ -87,27 +87,43 @@ PopupChatWindow::PopupChatWindow(bool tabbed, QWidget *parent, Qt::WFlags flags) connect(ui.actionColor, SIGNAL(triggered()), this, SLOT(setStyle())); connect(ui.actionDockTab, SIGNAL(triggered()), this, SLOT(dockTab())); connect(ui.actionUndockTab, SIGNAL(triggered()), this, SLOT(undockTab())); + connect(ui.actionSetOnTop, SIGNAL(toggled(bool)), this, SLOT(setOnTop())); connect(ui.tabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(tabCloseRequested(int))); connect(ui.tabWidget, SIGNAL(currentChanged(int)), this, SLOT(tabCurrentChanged(int))); + if (tabbedWindow) { + /* signal toggled is called */ + ui.actionSetOnTop->setChecked(Settings->valueFromGroup("ChatWindow", "OnTop", false).toBool()); + } + setWindowIcon(QIcon(IMAGE_WINDOW)); } /** Destructor. */ PopupChatWindow::~PopupChatWindow() { - if (tabbedWindow) { - Settings->saveWidgetInformation(this); - } else { - PeerSettings->saveWidgetInformation(peerId, this); - } + saveSettings(); if (this == instance) { instance = NULL; } } +void PopupChatWindow::saveSettings() +{ + if (tabbedWindow) { + Settings->saveWidgetInformation(this); + + Settings->setValueToGroup("ChatWindow", "OnTop", ui.actionSetOnTop->isChecked()); + } else { + if (!peerId.empty()) { + PeerSettings->saveWidgetInformation(peerId, this); + PeerSettings->setPrivateChatOnTop(peerId, ui.actionSetOnTop->isChecked()); + } + } +} + void PopupChatWindow::showEvent(QShowEvent *event) { if (firstShow) { @@ -151,6 +167,9 @@ void PopupChatWindow::addDialog(PopupChatDialog *dialog) peerId = dialog->getPeerId(); chatDialog = dialog; calculateStyle(dialog); + + /* signal toggled is called */ + ui.actionSetOnTop->setChecked(PeerSettings->getPrivateChatOnTop(peerId)); } } @@ -167,8 +186,10 @@ void PopupChatWindow::removeDialog(PopupChatDialog *dialog) } } else { if (chatDialog == dialog) { + saveSettings(); ui.horizontalLayout->removeWidget(dialog); chatDialog = NULL; + peerId.erase(); deleteLater(); } } @@ -347,6 +368,20 @@ void PopupChatWindow::setStyle() } } +void PopupChatWindow::setOnTop() +{ + Qt::WindowFlags flags = windowFlags(); + if (ui.actionSetOnTop->isChecked()) { + flags |= Qt::WindowStaysOnTopHint; + } else { + flags &= ~Qt::WindowStaysOnTopHint; + } + setWindowFlags(flags); + + /* Show window again */ + show(); +} + void PopupChatWindow::calculateStyle(PopupChatDialog *dialog) { QString toolSheet; diff --git a/retroshare-gui/src/gui/chat/PopupChatWindow.h b/retroshare-gui/src/gui/chat/PopupChatWindow.h index 698ce693b..bae2e69a6 100644 --- a/retroshare-gui/src/gui/chat/PopupChatWindow.h +++ b/retroshare-gui/src/gui/chat/PopupChatWindow.h @@ -59,6 +59,7 @@ private slots: void dockTab(); void undockTab(); void setStyle(); + void setOnTop(); private: bool tabbedWindow; @@ -67,6 +68,7 @@ private: PopupChatDialog *chatDialog; PopupChatDialog *getCurrentDialog(); + void saveSettings(); void calculateStyle(PopupChatDialog *dialog); /** Qt Designer generated object */ diff --git a/retroshare-gui/src/gui/chat/PopupChatWindow.ui b/retroshare-gui/src/gui/chat/PopupChatWindow.ui index 983183037..2e48e597d 100644 --- a/retroshare-gui/src/gui/chat/PopupChatWindow.ui +++ b/retroshare-gui/src/gui/chat/PopupChatWindow.ui @@ -79,6 +79,7 @@ + @@ -130,6 +131,21 @@ Set Chat Window Color + + + true + + + + :/images/pin32.png:/images/pin32.png + + + Set window on top + + + Set window on top + + diff --git a/retroshare-gui/src/gui/images.qrc b/retroshare-gui/src/gui/images.qrc index e2a0457e8..e60fe0edf 100644 --- a/retroshare-gui/src/gui/images.qrc +++ b/retroshare-gui/src/gui/images.qrc @@ -9,7 +9,7 @@ images/pgp.png images/rs_wizard.png images/about.png - images/backblue.png + images/backblue.png images/backchat.png images/buttonframe.png images/btn1.png @@ -314,6 +314,7 @@ images/peerdetails_16x16.png images/peers_16x16.png images/peers_24x24.png + images/pin32.png images/print24.png images/priorityauto.png images/priorityhigh.png diff --git a/retroshare-gui/src/gui/images/pin32.png b/retroshare-gui/src/gui/images/pin32.png new file mode 100644 index 000000000..727591d3e Binary files /dev/null and b/retroshare-gui/src/gui/images/pin32.png differ diff --git a/retroshare-gui/src/gui/settings/RsharePeerSettings.cpp b/retroshare-gui/src/gui/settings/RsharePeerSettings.cpp index 86fac1b50..e111c81aa 100644 --- a/retroshare-gui/src/gui/settings/RsharePeerSettings.cpp +++ b/retroshare-gui/src/gui/settings/RsharePeerSettings.cpp @@ -158,6 +158,16 @@ void RsharePeerSettings::setPrivateChatFont(const std::string &peerId, const QSt set(peerId, "PrivateChatFont", value); } +bool RsharePeerSettings::getPrivateChatOnTop(const std::string &peerId) +{ + return get(peerId, "PrivateChatOnTop", false).toBool(); +} + +void RsharePeerSettings::setPrivateChatOnTop(const std::string &peerId, bool value) +{ + set(peerId, "PrivateChatOnTop", value); +} + void RsharePeerSettings::saveWidgetInformation(const std::string &peerId, QWidget *widget) { std::string gpgId; diff --git a/retroshare-gui/src/gui/settings/RsharePeerSettings.h b/retroshare-gui/src/gui/settings/RsharePeerSettings.h index ab8cf8a9e..74ff3c28c 100644 --- a/retroshare-gui/src/gui/settings/RsharePeerSettings.h +++ b/retroshare-gui/src/gui/settings/RsharePeerSettings.h @@ -39,6 +39,9 @@ public: QString getPrivateChatFont(const std::string &peerId); void setPrivateChatFont(const std::string &peerId, const QString &value); + bool getPrivateChatOnTop(const std::string &peerId); + void setPrivateChatOnTop(const std::string &peerId, bool value); + void saveWidgetInformation(const std::string &peerId, QWidget *widget); void loadWidgetInformation(const std::string &peerId, QWidget *widget); diff --git a/retroshare-gui/src/lang/retroshare_de.qm b/retroshare-gui/src/lang/retroshare_de.qm index 4872182b4..542506783 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 4fd298ba3..3f3307b0b 100644 --- a/retroshare-gui/src/lang/retroshare_de.ts +++ b/retroshare-gui/src/lang/retroshare_de.ts @@ -838,7 +838,7 @@ p, li { white-space: pre-wrap; } ChanMsgItem - + Remove Item Eintrag entfernen @@ -2846,6 +2846,166 @@ p, li { white-space: pre-wrap; } Keine Kommentare + + DhtWindow + + + + Dht Details + + + + + Peer Details + Peer-Details + + + + Net Status + + + + + Connect Options + + + + + Network Mode + + + + + Nat Type + + + + + Nat Hole + + + + + Peer Address + + + + + Extra Label + + + + + TextLabel + + + + + PeerId + PeerId + + + + Dht Status + + + + + ConnectLogic + + + + + Connect Status + + + + + Connect Mode + + + + + Request Status + + + + + Cb Status + + + + + Bucket + + + + + IP:Port + + + + + Key + + + + + Status Flags + + + + + Found + + + + + + Last Sent + + + + + Last Recv + + + + + Relay Mode + + + + + Source + + + + + Proxy + + + + + Destination + + + + + Class + + + + + Age + Alter + + + + Bandwidth + + + DirectoriesPage @@ -5723,7 +5883,7 @@ p, li { white-space: pre-wrap; } MainWindow - + Network Netzwerk @@ -5734,29 +5894,34 @@ p, li { white-space: pre-wrap; } - + Transfers Übertragungen - - + + Messages Nachrichten - - + + Channels Kanäle - + Blogs Blogs - + + Dht Details + + + + Chat Chat @@ -5812,7 +5977,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. @@ -5822,23 +5987,23 @@ p, li { white-space: pre-wrap; } Link ist fehlerhaft. - + %1 friend connected %1 Freund verbunden - + Internal Error Interener Fehler - + Options Optionen - + Hide Verbergen @@ -5848,7 +6013,7 @@ p, li { white-space: pre-wrap; } Zeigen - + RetroShare @@ -5879,7 +6044,7 @@ p, li { white-space: pre-wrap; } Schnellstart Assistent - + Search Suchen @@ -5894,12 +6059,12 @@ p, li { white-space: pre-wrap; } Messenger - + Show/Hide Anzeigen/Verbergen - + &Quit &Schliessen @@ -5920,7 +6085,7 @@ p, li { white-space: pre-wrap; } Du hast %1 neue Nachricht - + Bandwidth Graph Bandbreiten-Graph @@ -5935,7 +6100,7 @@ p, li { white-space: pre-wrap; } Schliessen - + Minimize Minimieren @@ -5949,7 +6114,7 @@ p, li { white-space: pre-wrap; } Verknüpfungs-Wolke - + Unfinished unfertig @@ -5959,7 +6124,7 @@ p, li { white-space: pre-wrap; } - + Help Hilfe @@ -5969,33 +6134,33 @@ 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 - + Applications Anwendungen - + Plugins - + Do you really want to exit RetroShare ? Willst Du RetroShare wirklich beenden? @@ -6005,7 +6170,7 @@ p, li { white-space: pre-wrap; } Wirklich beenden? - + Low disk space warning Wenig Festplatenspeicher @@ -8888,10 +9053,65 @@ p, li { white-space: pre-wrap; } Entfernen + + PluginItem + + + Form + Formular + + + + PushButton + + + + + Status: + + + + + File hash: + + + + + File name: + + + + + + + TextLabel + + + + + Launch configuration panel, if provided by the plugin + + + + + Configure + + + + + Add the plugin into the white list of accepted plugins. This will be effective after you restart RetroShare, since plugins need to be loaded at startup. + + + + + Enabled + + + PluginManagerWidget - + Install New Plugin... Neues Plugin installieren... @@ -8909,28 +9129,62 @@ p, li { white-space: pre-wrap; } PluginsPage - + Loaded plugins - + + Authorize all plugins + + + + Plugin look-up directories - - Plugin + Description + Beschreibung + + + + Hash rejected. Add to white list. + + + + + Loading error. + + + + + Missing symbol. Wrong version? + + + + + No plugin object + + + + + Plugins is loaded. + + + + + Unknown status. + + + + + Title unavailable - Description - Beschreibung - - - - <h3>No plugins loaded.</h3> + Description unavailable @@ -8975,30 +9229,30 @@ p, li { white-space: pre-wrap; } Nachrichten, die Du versendest gehen bei diesem Freund erst wieder ein wenn er Online ist - - + + Bold Fett - - + + Underline Unterstrichen - - + + Italic Kursiv - + Text Color Textfarbe - + Clear offline messages Entferne offline Nachrichten @@ -9018,12 +9272,12 @@ p, li { white-space: pre-wrap; } Nachrichtenverlauf leeren - + Font Schriftart - + Delete Chat History Nachrichtenverlauf löschen @@ -9033,12 +9287,12 @@ p, li { white-space: pre-wrap; } Löscht den gespeicherten und angezeigten Chat Verlauf - + Send Senden - + Disable Emoticons Deaktiviere Emoticons @@ -9064,12 +9318,12 @@ p, li { white-space: pre-wrap; } Ordner können nicht für Drag'n'Drop genutzt werden. Nur Dateien werden akzeptiert. - + Add a File for your Friend Füge eine Datei für deinen Freund hinzu - + Save Chat History Nachrichtenverlauf speichern @@ -9091,7 +9345,7 @@ Do you want to send them a Message instead Dein Freund ist Offline willst du ihm stattdessen eine Nachricht senden - + Attach a Picture Bild anhängen @@ -9139,7 +9393,7 @@ Do you want to send them a Message instead PopupChatWindow - + Avatar Avatar @@ -9167,7 +9421,13 @@ Do you want to send them a Message instead Setze Farbe des Chat Fensters - + + + Set window on top + Immer im Vordergrund + + + RetroShare RetroShare