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