New dialog for defining own colors for the private chat window.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4150 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2011-04-09 22:52:52 +00:00
parent eed8ccd1df
commit 0fbde70e32
16 changed files with 1957 additions and 934 deletions

View File

@ -305,6 +305,8 @@ HEADERS += rshare.h \
gui/common/PeerDefs.h \
gui/common/PopularityDefs.h \
gui/common/GroupTreeWidget.h \
gui/style/RSStyle.h \
gui/style/StyleDialog.h \
gui/MessagesDialog.h \
gui/help/browser/helpbrowser.h \
gui/help/browser/helptextbrowser.h \
@ -411,7 +413,8 @@ FORMS += gui/StartDialog.ui \
gui/feeds/AttachFileItem.ui \
gui/im_history/ImHistoryBrowser.ui \
gui/groups/CreateGroup.ui \
gui/common/GroupTreeWidget.ui
gui/common/GroupTreeWidget.ui \
gui/style/StyleDialog.ui
SOURCES += main.cpp \
rshare.cpp \
@ -507,6 +510,8 @@ SOURCES += main.cpp \
gui/common/PeerDefs.cpp \
gui/common/PopularityDefs.cpp \
gui/common/GroupTreeWidget.cpp \
gui/style/RSStyle.cpp \
gui/style/StyleDialog.cpp \
gui/settings/rsharesettings.cpp \
gui/settings/RsharePeerSettings.cpp \
gui/settings/rsettings.cpp \

View File

@ -104,7 +104,7 @@ PopupChatDialog::PopupChatDialog(const std::string &id, const QString &name, QWi
peerStatus = 0;
last_status_send_time = 0 ;
style.setStyleFromSettings(ChatStyle::TYPE_PRIVATE);
chatStyle.setStyleFromSettings(ChatStyle::TYPE_PRIVATE);
/* Hide or show the frames */
showAvatarFrame(PeerSettings->getShowAvatarFrame(dialogId));
@ -169,6 +169,9 @@ PopupChatDialog::PopupChatDialog(const std::string &id, const QString &name, QWi
// load settings
processSettings(true);
// load style
PeerSettings->getStyle(dialogId, "PopupChatDialog", style);
// initialize first status
StatusInfo peerStatusInfo;
// No check of return value. Non existing status info is handled as offline.
@ -643,7 +646,7 @@ void PopupChatDialog::addChatMsg(bool incoming, const std::string &id, const QSt
type = incoming ? ChatStyle::FORMATMSG_INCOMING : ChatStyle::FORMATMSG_OUTGOING;
}
QString formatMsg = style.formatMessage(type, name, recvTime, message, formatFlag);
QString formatMsg = chatStyle.formatMessage(type, name, recvTime, message, formatFlag);
if (addToHistory) {
historyKeeper.addMessage(incoming, id, name, sendTime, recvTime, message);
@ -762,7 +765,7 @@ void PopupChatDialog::on_closeInfoFrameButton_clicked()
void PopupChatDialog::setColor()
{
bool ok;
QRgb color = QColorDialog::getRgba(ui.chattextEdit->textColor().rgba(), &ok, this);
QRgb color = QColorDialog::getRgba(ui.chattextEdit->textColor().rgba(), &ok, window());
if (ok) {
mCurrentColor = QColor(color);
PeerSettings->setPrivateChatColor(dialogId, mCurrentColor.name());
@ -910,32 +913,32 @@ void PopupChatDialog::addExtraPicture()
{
// select a picture file
QString file;
if (misc::getOpenFileName(this, RshareSettings::LASTDIR_IMAGES, tr("Load Picture File"), "Pictures (*.png *.xpm *.jpg)", file)) {
if (misc::getOpenFileName(window(), RshareSettings::LASTDIR_IMAGES, tr("Load Picture File"), "Pictures (*.png *.xpm *.jpg)", file)) {
addAttachment(file.toUtf8().constData(), 1);
}
}
void PopupChatDialog::addAttachment(std::string filePath,int flag)
{
/* add a AttachFileItem to the attachment section */
std::cerr << "PopupChatDialog::addExtraFile() hashing file.";
std::cerr << std::endl;
/* add a AttachFileItem to the attachment section */
std::cerr << "PopupChatDialog::addExtraFile() hashing file.";
std::cerr << std::endl;
/* add widget in for new destination */
AttachFileItem *file = new AttachFileItem(filePath);
//file->
if(flag==1)
file->setPicFlag(1);
/* add widget in for new destination */
AttachFileItem *file = new AttachFileItem(filePath);
//file->
ui.vboxLayout->addWidget(file, 1, 0);
if(flag==1)
file->setPicFlag(1);
//when the file is local or is finished hashing, call the fileHashingFinished method to send a chat message
if (file->getState() == AFI_STATE_LOCAL) {
ui.vboxLayout->addWidget(file, 1, 0);
//when the file is local or is finished hashing, call the fileHashingFinished method to send a chat message
if (file->getState() == AFI_STATE_LOCAL) {
fileHashingFinished(file);
} else {
} else {
QObject::connect(file,SIGNAL(fileFinished(AttachFileItem *)), SLOT(fileHashingFinished(AttachFileItem *))) ;
}
}
}
void PopupChatDialog::fileHashingFinished(AttachFileItem* file)
@ -1120,7 +1123,7 @@ bool PopupChatDialog::fileSave()
bool PopupChatDialog::fileSaveAs()
{
QString fn;
if (misc::getSaveFileName(this, RshareSettings::LASTDIR_HISTORY, tr("Save as..."), tr("Text File (*.txt );;All Files (*)"), fn)) {
if (misc::getSaveFileName(window(), RshareSettings::LASTDIR_HISTORY, tr("Save as..."), tr("Text File (*.txt );;All Files (*)"), fn)) {
setCurrentFileName(fn);
return fileSave();
}
@ -1248,6 +1251,21 @@ void PopupChatDialog::updatePeersCustomStateString(const QString& peer_id, const
void PopupChatDialog::on_actionMessageHistory_triggered()
{
ImHistoryBrowser imBrowser(dialogId, historyKeeper, ui.chattextEdit, this);
ImHistoryBrowser imBrowser(dialogId, historyKeeper, ui.chattextEdit, window());
imBrowser.exec();
}
bool PopupChatDialog::setStyle()
{
if (style.showDialog(window())) {
PeerSettings->setStyle(dialogId, "PopupChatDialog", style);
return true;
}
return false;
}
const RSStyle &PopupChatDialog::getStyle()
{
return style;
}

View File

@ -34,6 +34,7 @@ class ChatInfo;
#include <retroshare/rsmsgs.h>
#include "gui/im_history/IMHistoryKeeper.h"
#include "ChatStyle.h"
#include "gui/style/RSStyle.h"
class PopupChatDialog : public QWidget
{
@ -59,6 +60,8 @@ public:
int getPeerStatus() { return peerStatus; }
void focusDialog();
void activate();
bool setStyle();
const RSStyle &getStyle();
public slots:
void updateStatus(const QString &peer_id, int status);
@ -144,9 +147,11 @@ private:
bool typing;
int peerStatus;
IMHistoryKeeper historyKeeper;
ChatStyle style;
ChatStyle chatStyle;
bool m_manualDelete;
RSStyle style;
/** Qt Designer generated object */
Ui::PopupChatDialog ui;
};

File diff suppressed because it is too large Load Diff

View File

@ -28,6 +28,7 @@
#include "gui/settings/rsharesettings.h"
#include "gui/settings/RsharePeerSettings.h"
#include "gui/common/StatusDefs.h"
#include "gui/style/RSStyle.h"
#include"util/misc.h"
#include <retroshare/rsmsgs.h>
@ -83,6 +84,7 @@ PopupChatWindow::PopupChatWindow(bool tabbed, QWidget *parent, Qt::WFlags flags)
setAttribute(Qt::WA_DeleteOnClose, true);
connect(ui.actionAvatar, SIGNAL(triggered()),this, SLOT(getAvatar()));
connect(ui.actionColor, SIGNAL(triggered()), this, SLOT(setStyle()));
connect(ui.actionDockTab, SIGNAL(triggered()), this, SLOT(dockTab()));
connect(ui.actionUndockTab, SIGNAL(triggered()), this, SLOT(undockTab()));
@ -120,18 +122,21 @@ void PopupChatWindow::showEvent(QShowEvent *event)
}
}
PopupChatDialog *PopupChatWindow::getCurrentDialog()
{
if (tabbedWindow) {
return dynamic_cast<PopupChatDialog*>(ui.tabWidget->currentWidget());
}
return chatDialog;
}
void PopupChatWindow::changeEvent(QEvent *event)
{
if (event->type() == QEvent::ActivationChange) {
if (tabbedWindow) {
PopupChatDialog *pcd = dynamic_cast<PopupChatDialog*>(ui.tabWidget->currentWidget());
if (pcd) {
pcd->activate();
}
} else {
if (chatDialog) {
chatDialog->activate();
}
PopupChatDialog *pcd = getCurrentDialog();
if (pcd) {
pcd->activate();
}
}
}
@ -144,6 +149,7 @@ void PopupChatWindow::addDialog(PopupChatDialog *dialog)
ui.horizontalLayout->addWidget(dialog);
peerId = dialog->getPeerId();
chatDialog = dialog;
calculateStyle(dialog);
}
}
@ -297,6 +303,7 @@ void PopupChatWindow::tabCurrentChanged(int tab)
if (pcd) {
pcd->activate();
calculateStyle(pcd);
}
}
@ -329,3 +336,35 @@ void PopupChatWindow::undockTab()
}
}
}
void PopupChatWindow::setStyle()
{
PopupChatDialog *pcd = getCurrentDialog();
if (pcd && pcd->setStyle()) {
calculateStyle(pcd);
}
}
void PopupChatWindow::calculateStyle(PopupChatDialog *dialog)
{
QString toolSheet;
QString statusSheet;
QString widgetSheet;
if (dialog) {
const RSStyle &style = dialog->getStyle();
QString styleSheet = style.getStyleSheet();
if (styleSheet.isEmpty() == false) {
toolSheet = QString("QToolBar{%1}").arg(styleSheet);
statusSheet = QString(".QStatusBar{%1}").arg(styleSheet);
widgetSheet = QString(".QWidget{%1}").arg(styleSheet);
}
}
ui.chattoolBar->setStyleSheet(toolSheet);
ui.chatstatusbar->setStyleSheet(statusSheet);
ui.chatcentralwidget->setStyleSheet(widgetSheet);
}

View File

@ -58,6 +58,7 @@ private slots:
void tabCurrentChanged(int tab);
void dockTab();
void undockTab();
void setStyle();
private:
bool tabbedWindow;
@ -65,6 +66,9 @@ private:
std::string peerId;
PopupChatDialog *chatDialog;
PopupChatDialog *getCurrentDialog();
void calculateStyle(PopupChatDialog *dialog);
/** Qt Designer generated object */
Ui::PopupChatWindow ui;
};

View File

@ -23,32 +23,16 @@
<property name="styleSheet">
<string notr="true"/>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<property name="leftMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="horizontalSpacing">
<number>0</number>
</property>
<property name="verticalSpacing">
<number>1</number>
</property>
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="tabsClosable">
<bool>true</bool>
</property>
<property name="movable">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="tabsClosable">
<bool>true</bool>
</property>
<property name="movable">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
@ -82,6 +66,7 @@
<bool>false</bool>
</attribute>
<addaction name="actionAvatar"/>
<addaction name="actionColor"/>
<addaction name="actionDockTab"/>
<addaction name="actionUndockTab"/>
</widget>
@ -121,6 +106,18 @@
<string>Undock tab</string>
</property>
</action>
<action name="actionColor">
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/highlight.png</normaloff>:/images/highlight.png</iconset>
</property>
<property name="text">
<string>Set Chat Window Color</string>
</property>
<property name="toolTip">
<string>Set Chat Window Color</string>
</property>
</action>
</widget>
<resources>
<include location="../images.qrc"/>

View File

@ -31,6 +31,7 @@
#include <retroshare/rspeers.h>
#include "RsharePeerSettings.h"
#include "gui/style/RSStyle.h"
/** The file in which all settings of he peers will read and written. */
#define SETTINGS_FILE (RsInit::RsProfileConfigDirectory() + "/RSPeers.conf")
@ -206,3 +207,41 @@ void RsharePeerSettings::setShowAvatarFrame(const std::string &peerId, bool valu
{
return set(peerId, "ShowAvatarFrame", value);
}
void RsharePeerSettings::getStyle(const std::string &peerId, const QString &name, RSStyle &style)
{
std::string gpgId;
if (getGpgIdOfSslId(peerId, gpgId) == false) {
/* gpg id not found */
return;
}
beginGroup(QString::fromStdString(gpgId));
beginGroup("style");
beginGroup(name);
style.readSetting(*this);
endGroup();
endGroup();
endGroup();
}
void RsharePeerSettings::setStyle(const std::string &peerId, const QString &name, RSStyle &style)
{
std::string gpgId;
if (getGpgIdOfSslId(peerId, gpgId) == false) {
/* gpg id not found */
return;
}
beginGroup(QString::fromStdString(gpgId));
beginGroup("style");
beginGroup(name);
style.writeSetting(*this);
endGroup();
endGroup();
endGroup();
}

View File

@ -24,6 +24,8 @@
#include <QSettings>
class RSStyle;
/** Handles saving and restoring RShares's settings for peers */
class RsharePeerSettings : public QSettings
{
@ -43,6 +45,9 @@ public:
bool getShowAvatarFrame(const std::string &peerId);
void setShowAvatarFrame(const std::string &peerId, bool value);
void getStyle(const std::string &peerId, const QString &name, RSStyle &style);
void setStyle(const std::string &peerId, const QString &name, RSStyle &style);
protected:
/** Default constructor. */
RsharePeerSettings();

View File

@ -0,0 +1,114 @@
/****************************************************************
* This file is distributed under the following license:
*
* Copyright (c) 2010, RetroShare Team
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
****************************************************************/
#include <QColor>
#include <QSettings>
#include "RSStyle.h"
#include "StyleDialog.h"
RSStyle::RSStyle()
{
styleType = STYLETYPE_NONE;
}
/*static*/ int RSStyle::neededColors(StyleType styleType)
{
switch (styleType) {
case STYLETYPE_NONE:
return 0;
case STYLETYPE_SOLID:
return 1;
case STYLETYPE_GRADIENT:
return 2;
}
return 0;
}
QString RSStyle::getStyleSheet() const
{
QString sheet;
switch (styleType) {
case STYLETYPE_NONE:
break;
case STYLETYPE_SOLID:
sheet = "background-color: <color1>";
break;
case STYLETYPE_GRADIENT:
sheet = "background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0 <color1>, stop:1 <color2>);";
break;
}
if (sheet.isEmpty() == false) {
/* Replace colors */
for (int i = 0; i < colors.size(); i++) {
sheet.replace(QString("<color%1>").arg(i + 1), colors[i].name());
}
}
return sheet;
}
bool RSStyle::showDialog(QWidget *parent)
{
StyleDialog dlg(*this, parent);
int result = dlg.exec();
if (result == QDialog::Accepted) {
dlg.getStyle(*this);
return true;
}
return false;
}
void RSStyle::readSetting (QSettings &settings)
{
int type = (StyleType) settings.value("styleType").toInt();
if (type >= 0 && type <= STYLETYPE_MAX) {
styleType = (StyleType) type;
} else {
styleType = STYLETYPE_NONE;
}
colors.empty();
int size = settings.beginReadArray("colors");
for (int i = 0; i < size; i++) {
settings.setArrayIndex(i);
colors.append(QColor(settings.value("value").toString()));
}
settings.endArray();
}
void RSStyle::writeSetting (QSettings &settings)
{
settings.setValue("styleType", styleType);
settings.beginWriteArray("colors");
int size = colors.size();
for (int i = 0; i < size; i++) {
settings.setArrayIndex(i);
settings.setValue("value", colors[i].name());
}
settings.endArray();
}

View File

@ -0,0 +1,58 @@
/****************************************************************
* This file is distributed under the following license:
*
* Copyright (c) 2010, RetroShare Team
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
****************************************************************/
#ifndef _RSSTYLE_H
#define _RSSTYLE_H
#include <QList>
class QSettings;
class RSStyle
{
public:
enum StyleType
{
STYLETYPE_NONE = 0,
STYLETYPE_SOLID = 1,
STYLETYPE_GRADIENT = 2,
STYLETYPE_MAX = 2
};
public:
RSStyle();
QString getStyleSheet() const;
bool showDialog(QWidget *parent);
static int neededColors(StyleType styleType);
void readSetting (QSettings &settings);
void writeSetting (QSettings &settings);
public:
StyleType styleType;
QList<QColor> colors;
};
#endif

View File

@ -0,0 +1,161 @@
/****************************************************************
*
* RetroShare is distributed under the following license:
*
* Copyright (C) 2006, crypton
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
****************************************************************/
#include <QColorDialog>
#include "gui/settings/rsharesettings.h"
#include "StyleDialog.h"
#include "gui/style/RSStyle.h"
/** Default constructor */
StyleDialog::StyleDialog(RSStyle &style, QWidget *parent, Qt::WFlags flags) : QDialog(parent, flags)
{
/* Invoke Qt Designer generated QObject setup routine */
ui.setupUi(this);
/* Load window postion */
QByteArray geometry = Settings->valueFromGroup("StyleDialog", "Geometry", QByteArray()).toByteArray();
if (geometry.isEmpty() == false) {
restoreGeometry(geometry);
}
// setWindowIcon(QIcon(":/images/rstray3.png"));
connect(ui.buttonBox, SIGNAL(accepted()), this, SLOT(onOK()));
connect(ui.buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
connect(ui.color1Button, SIGNAL(clicked()), this, SLOT(chooseColor()));
connect(ui.color2Button, SIGNAL(clicked()), this, SLOT(chooseColor()));
/* Initialize style combobox */
ui.styleComboBox->addItem(tr("None"), RSStyle::STYLETYPE_NONE);
ui.styleComboBox->addItem(tr("Solid"), RSStyle::STYLETYPE_SOLID);
ui.styleComboBox->addItem(tr("Gradient"), RSStyle::STYLETYPE_GRADIENT);
ui.styleComboBox->setCurrentIndex(style.styleType);
connect(ui.styleComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(showButtons()));
/* Add pushbuttons and labels */
pushButtons.append(ui.color1Button);
pushButtons.append(ui.color2Button);
labels.append(ui.color1Label);
labels.append(ui.color2Label);
/* Set pushbuttons visible */
showButtons();
/* Init colors */
for (int i = 0; i < pushButtons.size(); i++) {
if (i < style.colors.size()) {
colors[pushButtons[i]] = style.colors[i];
} else {
colors[pushButtons[i]] = Qt::white;
}
}
drawButtons();
drawPreview();
}
/** Destructor. */
StyleDialog::~StyleDialog()
{
/* Save window postion */
Settings->setValueToGroup("StyleDialog", "Geometry", saveGeometry());
}
void StyleDialog::onOK()
{
accept();
}
int StyleDialog::neededColors()
{
return RSStyle::neededColors((RSStyle::StyleType) ui.styleComboBox->itemData(ui.styleComboBox->currentIndex()).toInt());
}
void StyleDialog::getStyle(RSStyle &style)
{
style.styleType = (RSStyle::StyleType) ui.styleComboBox->itemData(ui.styleComboBox->currentIndex()).toInt();
style.colors.clear();
int count = qMin(neededColors(), pushButtons.size());
for (int i = 0; i < count; i++) {
style.colors.append(colors[pushButtons[i]]);
}
}
void StyleDialog::showButtons()
{
int count = neededColors();
for (int i = 0; i < pushButtons.size(); i++) {
pushButtons[i]->setVisible(i < count);
labels[i]->setVisible(i < count);
}
drawPreview();
}
void StyleDialog::drawButtons()
{
QPixmap pxm(16,14);
QMap<QPushButton*, QColor>::iterator it;
for (it = colors.begin(); it != colors.end(); it++) {
pxm.fill(it.value());
it.key()->setIcon(pxm);
}
}
void StyleDialog::drawPreview()
{
RSStyle style;
getStyle(style);
QString widgetSheet;
QString styleSheet = style.getStyleSheet();
if (styleSheet.isEmpty() == false) {
widgetSheet = QString(".QWidget{%1}").arg(styleSheet);
}
ui.previewWidget->setStyleSheet(widgetSheet);
}
void StyleDialog::chooseColor()
{
QPushButton *button = dynamic_cast<QPushButton*>(sender());
if (button == NULL) {
return;
}
QColor color = QColorDialog::getColor(colors[button]);
if (color.isValid()) {
colors[button] = color;
drawButtons();
drawPreview();
}
}

View File

@ -0,0 +1,63 @@
/****************************************************************
* RetroShare is distributed under the following license:
*
* Copyright (C) 2006, crypton
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
****************************************************************/
#ifndef _STYLEDIALOG_H
#define _STYLEDIALOG_H
#include <QMap>
#include <QList>
#include "ui_StyleDialog.h"
class QPushButton;
class RSStyle;
class StyleDialog : public QDialog
{
Q_OBJECT
public:
/** Default constructor */
StyleDialog(RSStyle &style, QWidget *parent = 0, Qt::WFlags flags = 0);
/** Default destructor */
~StyleDialog();
void getStyle(RSStyle &style);
private slots:
void onOK();
void chooseColor();
void showButtons();
private:
QMap<QPushButton*, QColor> colors;
QList<QPushButton*> pushButtons;
QList<QLabel*> labels;
void drawButtons();
int neededColors();
void drawPreview();
/** Qt Designer generated object */
Ui::StyleDialog ui;
};
#endif

View File

@ -0,0 +1,273 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>StyleDialog</class>
<widget class="QDialog" name="StyleDialog">
<property name="windowModality">
<enum>Qt::NonModal</enum>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>387</width>
<height>227</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>387</width>
<height>227</height>
</size>
</property>
<property name="windowTitle">
<string>Define Style</string>
</property>
<property name="windowIcon">
<iconset resource="../images.qrc">
<normaloff>:/images/rstray3.png</normaloff>:/images/rstray3.png</iconset>
</property>
<property name="sizeGripEnabled">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QFrame" name="frame">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="styleSheet">
<string notr="true">QFrame#frame{background-image: url(:/images/connect/connectFriendBanner.png);}
</string>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="minimumSize">
<size>
<width>64</width>
<height>64</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>64</width>
<height>64</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../images.qrc">:/images/library.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="headerLabel">
<property name="font">
<font>
<pointsize>18</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:18pt; color:#ffffff;&quot;&gt;Define Style&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QFrame" name="frame_2">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QFormLayout" name="formLayout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_2">
<item row="2" column="2">
<widget class="QPushButton" name="color2Button">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Choose color</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="color1Button">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Choose color</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="color2Label">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Color 2</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="color1Label">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Color 1</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QComboBox" name="styleComboBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>150</width>
<height>0</height>
</size>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="syleLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Style</string>
</property>
</widget>
</item>
<item row="3" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>5000</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="0" column="1">
<widget class="QWidget" name="previewWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
<property name="centerButtons">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<resources>
<include location="../images.qrc"/>
</resources>
<connections/>
</ui>

View File

@ -760,7 +760,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>CertificatePage</name>
<message>
<location filename="../gui/connect/ConnectFriendWizard.cpp" line="+621"/>
<location filename="../gui/connect/ConnectFriendWizard.cpp" line="+644"/>
<source>Certificate files</source>
<translation>Zertifikat-Dateien</translation>
</message>
@ -1025,13 +1025,18 @@ p, li { white-space: pre-wrap; }
<source>Set all to read</source>
<translation>Alle als gelesen markieren</translation>
</message>
<message>
<location line="+7"/>
<source>Enable Auto-download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+88"/>
<source>Create Channel</source>
<translation>Kanal erstellen</translation>
</message>
<message>
<location line="-192"/>
<location line="-199"/>
<source>Unsubscribe</source>
<translation>Abbestellen</translation>
</message>
@ -1051,7 +1056,7 @@ p, li { white-space: pre-wrap; }
<translation>Kanal abbestellen</translation>
</message>
<message>
<location filename="../gui/ChannelFeed.cpp" line="+82"/>
<location filename="../gui/ChannelFeed.cpp" line="+85"/>
<source>Own Channels</source>
<translation>Meine Kanäle</translation>
</message>
@ -1072,7 +1077,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../gui/ChannelFeed.ui" line="-171"/>
<location filename="../gui/ChannelFeed.cpp" line="+56"/>
<location filename="../gui/ChannelFeed.cpp" line="+57"/>
<source>Post to Channel</source>
<translation>Kanalbeitrag erstellen</translation>
</message>
@ -1102,12 +1107,12 @@ p, li { white-space: pre-wrap; }
<translation>Verteile Kanal</translation>
</message>
<message>
<location line="+259"/>
<location line="+267"/>
<source>No Channel Selected</source>
<translation>Keinen Kanal gewählt</translation>
</message>
<message>
<location line="-262"/>
<location line="-270"/>
<source>Edit Channel Details</source>
<translation>Kanal-Details bearbeiten</translation>
</message>
@ -1384,7 +1389,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>ConfCertDialog</name>
<message>
<location filename="../gui/connect/ConfCertDialog.ui" line="+647"/>
<location filename="../gui/connect/ConfCertDialog.ui" line="+665"/>
<source>Cancel</source>
<translation>Abbrechen</translation>
</message>
@ -1394,7 +1399,7 @@ p, li { white-space: pre-wrap; }
<translation>OK</translation>
</message>
<message>
<location line="-596"/>
<location line="-614"/>
<source>Peer Info</source>
<translation>Nachbar Info</translation>
</message>
@ -1419,7 +1424,7 @@ p, li { white-space: pre-wrap; }
<translation>Adresse des Nachbarn</translation>
</message>
<message>
<location line="+399"/>
<location line="+417"/>
<source>Deny Friend</source>
<translation>Blockiere Freund</translation>
</message>
@ -1429,13 +1434,13 @@ p, li { white-space: pre-wrap; }
<translation>Als Freund wählen</translation>
</message>
<message>
<location line="-73"/>
<location line="+20"/>
<location line="-82"/>
<location line="+29"/>
<source>Sign GPG key</source>
<translation>Unterzeichne GPG Schlüssel</translation>
</message>
<message>
<location line="-178"/>
<location line="-196"/>
<source>Your trust in this peer is:</source>
<translation>Dein Vertrauen zu diesem Nachbar ist:</translation>
</message>
@ -1516,7 +1521,29 @@ p, li { white-space: pre-wrap; }
<translation>Voll </translation>
</message>
<message>
<location line="+234"/>
<location line="+94"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p align=&quot;justify&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Signing a friend&apos;s key is a way to express your trust into this friend, to your other friends. Besides, only signed peers will receive information about your other trusted friends.&lt;/p&gt;
&lt;p align=&quot;justify&quot; style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
&lt;p align=&quot;justify&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Signing a key cannot be undone, so do it wisely.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+29"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Sans&apos;; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Signing a friend&apos;s key is a way to express your trust into this friend, to your other friends. Besides, only signed peers will receive information about your other trusted friends.&lt;/p&gt;
&lt;p align=&quot;justify&quot; style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;/p&gt;
&lt;p align=&quot;justify&quot; style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Signing a key cannot be undone, so do it wisely.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+129"/>
<source>Apply and Close</source>
<translation>Übernehmen und Schliessen</translation>
</message>
@ -1590,7 +1617,7 @@ und meinen GPG Schlüssel nicht unterzeichnet</translation>
<translation>Vielleicht ist das Passwort falsch</translation>
</message>
<message>
<location filename="../gui/connect/ConfCertDialog.ui" line="-304"/>
<location filename="../gui/connect/ConfCertDialog.ui" line="-322"/>
<source>Trust </source>
<translation>Vertrauen </translation>
</message>
@ -1615,7 +1642,7 @@ und meinen GPG Schlüssel nicht unterzeichnet</translation>
<translation>Kopiere Nachbar</translation>
</message>
<message>
<location filename="../gui/connect/ConfCertDialog.ui" line="+489"/>
<location filename="../gui/connect/ConfCertDialog.ui" line="+507"/>
<source>Certificate</source>
<translation>Zertifikat</translation>
</message>
@ -1623,7 +1650,7 @@ und meinen GPG Schlüssel nicht unterzeichnet</translation>
<context>
<name>ConnectFriendWizard</name>
<message>
<location filename="../gui/connect/ConnectFriendWizard.cpp" line="-775"/>
<location filename="../gui/connect/ConnectFriendWizard.cpp" line="-798"/>
<source>Connect Friend Wizard</source>
<translation>Assistent um sich zu einem Freund zu verbinden</translation>
</message>
@ -2782,7 +2809,7 @@ p, li { white-space: pre-wrap; }
<translation>Durchsuchen</translation>
</message>
<message>
<location filename="../gui/settings/DirectoriesPage.cpp" line="+148"/>
<location filename="../gui/settings/DirectoriesPage.cpp" line="+173"/>
<source>Set Incoming Directory</source>
<translation>Ordner für eingehende Dateien</translation>
</message>
@ -2831,7 +2858,17 @@ Das ist nützlich, wenn Du eine externe Festplatte freigibst und die Datei nicht
<translation>Bereinige Hash Cache</translation>
</message>
<message>
<location line="-118"/>
<location line="+11"/>
<source>Auto-check shared directories every </source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+10"/>
<source> minute(s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-139"/>
<source>Partials Directory</source>
<translation>Temporäre Dateien</translation>
</message>
@ -2966,7 +3003,7 @@ Das ist nützlich, wenn Du eine externe Festplatte freigibst und die Datei nicht
<context>
<name>EmailPage</name>
<message>
<location filename="../gui/connect/ConnectFriendWizard.cpp" line="+1057"/>
<location filename="../gui/connect/ConnectFriendWizard.cpp" line="+1080"/>
<source>Invite Friends by Email</source>
<translation type="unfinished"></translation>
</message>
@ -3289,6 +3326,44 @@ p, li { white-space: pre-wrap; }
<translation>Direkte Freund-Übertragung / Verfügbarkeit angenommen</translation>
</message>
</context>
<context>
<name>FlatStyle_RDM</name>
<message>
<location filename="../gui/RemoteDirModel.cpp" line="+653"/>
<source>Friends Directories</source>
<translation type="unfinished">Dateien von Freunden</translation>
</message>
<message>
<location line="+2"/>
<source>My Directories</source>
<translation type="unfinished">Meine Ordner</translation>
</message>
<message>
<location line="+2"/>
<source>Size</source>
<translation type="unfinished">Grösse</translation>
</message>
<message>
<location line="+2"/>
<source>Age</source>
<translation type="unfinished">Alter</translation>
</message>
<message>
<location line="+3"/>
<source>Friend</source>
<translation type="unfinished">Freund</translation>
</message>
<message>
<location line="+2"/>
<source>Share Type</source>
<translation type="unfinished">Freigabe Typ</translation>
</message>
<message>
<location line="+2"/>
<source>Directory</source>
<translation type="unfinished">Ordner</translation>
</message>
</context>
<context>
<name>FofPage</name>
<message>
@ -4891,7 +4966,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>IntroPage</name>
<message>
<location filename="../gui/connect/ConnectFriendWizard.cpp" line="-378"/>
<location filename="../gui/connect/ConnectFriendWizard.cpp" line="-401"/>
<source>&amp;Make friend with selected friends of my friends</source>
<translation>&amp;Füge ausgewählte Freunde Deiner Freunde hinzu</translation>
</message>
@ -5208,20 +5283,20 @@ p, li { white-space: pre-wrap; }
<location line="+94"/>
<location line="+41"/>
<location line="+41"/>
<location line="+158"/>
<location line="+163"/>
<source>%1 new messages</source>
<translation>%1 neue Nachrichten</translation>
</message>
<message>
<location line="-238"/>
<location line="-243"/>
<location line="+41"/>
<location line="+41"/>
<location line="+158"/>
<location line="+163"/>
<source>%1 new message</source>
<translation>%1 neue Nachricht</translation>
</message>
<message>
<location line="-136"/>
<location line="-141"/>
<source>You have %1 completed downloads</source>
<translation>Du hast %1 fertige Downloads</translation>
</message>
@ -5256,7 +5331,7 @@ p, li { white-space: pre-wrap; }
<translation>%1 Freunde verbunden</translation>
</message>
<message>
<location line="+677"/>
<location line="+682"/>
<source>It seems to be an old RetroShare link. Please use copy instead.</source>
<translation>Es scheint ein alter RetroShare Link zu sein. Bitte kopiere den Link stattdessen.</translation>
</message>
@ -5266,12 +5341,12 @@ p, li { white-space: pre-wrap; }
<translation>Link ist fehlerhaft.</translation>
</message>
<message>
<location line="-685"/>
<location line="-690"/>
<source>%1 friend connected</source>
<translation>%1 Freund verbunden</translation>
</message>
<message>
<location line="+318"/>
<location line="+323"/>
<source>Internal Error</source>
<translation>Interener Fehler</translation>
</message>
@ -5292,7 +5367,7 @@ p, li { white-space: pre-wrap; }
<translation>Zeigen</translation>
</message>
<message>
<location line="-752"/>
<location line="-757"/>
<source>RetroShare</source>
<translation></translation>
</message>
@ -5351,15 +5426,15 @@ p, li { white-space: pre-wrap; }
<location line="+186"/>
<location line="+41"/>
<location line="+41"/>
<location line="+158"/>
<location line="+163"/>
<source>You have %1 new messages</source>
<translation>Du hast %1 neue Nachrichten</translation>
</message>
<message>
<location line="-238"/>
<location line="-243"/>
<location line="+41"/>
<location line="+41"/>
<location line="+158"/>
<location line="+163"/>
<source>You have %1 new message</source>
<translation>Du hast %1 neue Nachricht</translation>
</message>
@ -5379,7 +5454,7 @@ p, li { white-space: pre-wrap; }
<translation>Schliessen</translation>
</message>
<message>
<location filename="../gui/MainWindow.cpp" line="-690"/>
<location filename="../gui/MainWindow.cpp" line="-695"/>
<source>Minimize</source>
<translation>Minimieren</translation>
</message>
@ -5404,7 +5479,7 @@ p, li { white-space: pre-wrap; }
<translation></translation>
</message>
<message>
<location filename="../gui/MainWindow.cpp" line="+821"/>
<location filename="../gui/MainWindow.cpp" line="+826"/>
<source>Help</source>
<translation>Hilfe</translation>
</message>
@ -5414,7 +5489,7 @@ p, li { white-space: pre-wrap; }
<translation>Über</translation>
</message>
<message>
<location filename="../gui/MainWindow.cpp" line="-842"/>
<location filename="../gui/MainWindow.cpp" line="-847"/>
<location line="+217"/>
<source>Forums</source>
<translation>Foren</translation>
@ -5425,7 +5500,7 @@ p, li { white-space: pre-wrap; }
<translation>RetroShare %1 eine sichere und dezentralisierte Kommunikationsplattform</translation>
</message>
<message>
<location line="+908"/>
<location line="+913"/>
<source>Open Messages</source>
<translation>Öffne Nachrichten</translation>
</message>
@ -5435,12 +5510,12 @@ p, li { white-space: pre-wrap; }
<translation>Anwendungen</translation>
</message>
<message>
<location line="-829"/>
<location line="-834"/>
<source>Plugins</source>
<translation></translation>
</message>
<message>
<location line="+845"/>
<location line="+850"/>
<source>Do you really want to exit RetroShare ?</source>
<translation>Willst Du RetroShare wirklich beenden?</translation>
</message>
@ -5450,7 +5525,7 @@ p, li { white-space: pre-wrap; }
<translation>Wirklich beenden?</translation>
</message>
<message>
<location line="-741"/>
<location line="-746"/>
<source>Low disk space warning</source>
<translation>Wenig Festplatenspeicher</translation>
</message>
@ -8076,7 +8151,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>PopupChatDialog</name>
<message>
<location filename="../gui/chat/PopupChatDialog.cpp" line="+745"/>
<location filename="../gui/chat/PopupChatDialog.cpp" line="+748"/>
<source>Hide Avatar</source>
<translation>Avatar verstecken</translation>
</message>
@ -8086,7 +8161,7 @@ p, li { white-space: pre-wrap; }
<translation>Avatar zeigen</translation>
</message>
<message>
<location line="+86"/>
<location line="+88"/>
<source>Do you really want to physically delete the history?</source>
<translation>Willst Du wirklich den Nachrichtenverlauf physisch löschen?</translation>
</message>
@ -8106,30 +8181,30 @@ p, li { white-space: pre-wrap; }
<translation>Nachrichten, die Du versendest gehen bei diesem Freund erst wieder ein wenn er Online ist</translation>
</message>
<message>
<location filename="../gui/chat/PopupChatDialog.ui" line="+585"/>
<location line="+278"/>
<location filename="../gui/chat/PopupChatDialog.ui" line="+594"/>
<location line="+281"/>
<source>Bold</source>
<translation>Fett</translation>
</message>
<message>
<location line="-243"/>
<location line="+253"/>
<location line="-246"/>
<location line="+256"/>
<source>Underline</source>
<translation>Unterstrichen</translation>
</message>
<message>
<location line="-218"/>
<location line="+213"/>
<location line="-221"/>
<location line="+216"/>
<source>Italic</source>
<translation>Kursiv</translation>
</message>
<message>
<location line="-143"/>
<location line="-146"/>
<source>Text Color</source>
<translation>Textfarbe</translation>
</message>
<message>
<location line="+183"/>
<location line="+186"/>
<source>Clear offline messages</source>
<translation>Entferne offline Nachrichten</translation>
</message>
@ -8149,12 +8224,12 @@ p, li { white-space: pre-wrap; }
<translation>Nachrichtenverlauf leeren</translation>
</message>
<message>
<location line="-197"/>
<location line="-200"/>
<source>Font</source>
<translation>Schriftart</translation>
</message>
<message>
<location line="+235"/>
<location line="+238"/>
<source>Delete Chat History</source>
<translation>Nachrichtenverlauf löschen</translation>
</message>
@ -8164,12 +8239,12 @@ p, li { white-space: pre-wrap; }
<translation>Löscht den gespeicherten und angezeigten Chat Verlauf</translation>
</message>
<message>
<location line="-402"/>
<location line="-405"/>
<source>Send</source>
<translation>Senden</translation>
</message>
<message>
<location line="+369"/>
<location line="+372"/>
<source>Disable Emoticons</source>
<translation>Deaktiviere Emoticons</translation>
</message>
@ -8195,12 +8270,12 @@ p, li { white-space: pre-wrap; }
<translation>Ordner können nicht für Drag&apos;n&apos;Drop genutzt werden. Nur Dateien werden akzeptiert.</translation>
</message>
<message>
<location filename="../gui/chat/PopupChatDialog.ui" line="-388"/>
<location filename="../gui/chat/PopupChatDialog.ui" line="-391"/>
<source>Add a File for your Friend</source>
<translation>Füge eine Datei für deinen Freund hinzu</translation>
</message>
<message>
<location line="+410"/>
<location line="+413"/>
<location line="+3"/>
<source>Save Chat History</source>
<translation>Nachrichtenverlauf speichern</translation>
@ -8216,18 +8291,18 @@ p, li { white-space: pre-wrap; }
<translation>Text Datei (*.txt );;Alle Dateien (*)</translation>
</message>
<message>
<location line="-720"/>
<location line="-722"/>
<source>Your Friend is offline
Do you want to send them a Message instead</source>
<translation>Dein Freund ist Offline willst du ihm stattdessen eine Nachricht senden</translation>
</message>
<message>
<location filename="../gui/chat/PopupChatDialog.ui" line="-445"/>
<location filename="../gui/chat/PopupChatDialog.ui" line="-448"/>
<source>Attach a Picture</source>
<translation>Bild anhängen</translation>
</message>
<message>
<location filename="../gui/chat/PopupChatDialog.cpp" line="+763"/>
<location filename="../gui/chat/PopupChatDialog.cpp" line="+765"/>
<source>is Idle and may not reply</source>
<translation>antwortet möglicherweise nicht, da der Status auf &quot;Untätig&quot; gesetzt wurde</translation>
</message>
@ -8247,7 +8322,7 @@ Do you want to send them a Message instead</source>
<translation>ist Offline.</translation>
</message>
<message>
<location line="-721"/>
<location line="-723"/>
<source>Paste RetroShare Link</source>
<translation>RetroShare Link einfügen</translation>
</message>
@ -8270,7 +8345,7 @@ Do you want to send them a Message instead</source>
<context>
<name>PopupChatWindow</name>
<message>
<location filename="../gui/chat/PopupChatWindow.ui" line="+94"/>
<location filename="../gui/chat/PopupChatWindow.ui" line="+79"/>
<source>Avatar</source>
<translation>Avatar</translation>
</message>
@ -8292,7 +8367,13 @@ Do you want to send them a Message instead</source>
<translation>Tab abdocken</translation>
</message>
<message>
<location filename="../gui/chat/PopupChatWindow.cpp" line="+260"/>
<location line="+9"/>
<location line="+3"/>
<source>Set Chat Window Color</source>
<translation>Setze Farbe des Chat Fensters</translation>
</message>
<message>
<location filename="../gui/chat/PopupChatWindow.cpp" line="+266"/>
<source>RetroShare</source>
<translation>RetroShare</translation>
</message>
@ -9262,76 +9343,83 @@ p, li { white-space: pre-wrap; }
<context>
<name>RemoteDirModel</name>
<message>
<location filename="../gui/RemoteDirModel.cpp" line="+565"/>
<source>Friends Directories</source>
<translation>Dateien von Freunden</translation>
<translation type="obsolete">Dateien von Freunden</translation>
</message>
<message>
<location line="+2"/>
<source>My Directories</source>
<translation>Meine Ordner</translation>
<translation type="obsolete">Meine Ordner</translation>
</message>
<message>
<location line="+2"/>
<source>Size</source>
<translation>Grösse</translation>
<translation type="obsolete">Grösse</translation>
</message>
<message>
<location line="+4"/>
<source>Share Type</source>
<translation>Freigabe Typ</translation>
<translation type="obsolete">Freigabe Typ</translation>
</message>
<message>
<location line="+2"/>
<source>What&apos;s new</source>
<translation>Was ist neu</translation>
<translation type="obsolete">Was ist neu</translation>
</message>
<message>
<location line="-4"/>
<source>Age</source>
<translation>Alter</translation>
<translation type="obsolete">Alter</translation>
</message>
<message>
<location line="-410"/>
<source>Anonymous</source>
<translation>Anonym</translation>
<translation type="obsolete">Anonym</translation>
</message>
<message>
<source>Anonymous and browsable by friends</source>
<translation type="obsolete">Anonym und Durchsuchbar von Freunden</translation>
</message>
<message>
<source>Only browsable by friends</source>
<translation type="obsolete">Nur Durchsuchbar von Freunden</translation>
</message>
<message>
<source>NEW</source>
<translation type="obsolete">NEU</translation>
</message>
<message>
<source>FILE</source>
<translation type="obsolete">DATEI</translation>
</message>
<message>
<source>Files</source>
<translation type="obsolete">Dateien</translation>
</message>
<message>
<source>File</source>
<translation type="obsolete">Datei</translation>
</message>
<message>
<source>DIR</source>
<translation type="obsolete">ORDNER</translation>
</message>
</context>
<context>
<name>RetroshareDirModel</name>
<message>
<location filename="../gui/RemoteDirModel.cpp" line="-472"/>
<source>Anonymous</source>
<translation type="unfinished">Anonym</translation>
</message>
<message>
<location line="+1"/>
<source>Anonymous and browsable by friends</source>
<translation>Anonym und Durchsuchbar von Freunden</translation>
<translation type="unfinished">Anonym und Durchsuchbar von Freunden</translation>
</message>
<message>
<location line="+1"/>
<source>Only browsable by friends</source>
<translation>Nur Durchsuchbar von Freunden</translation>
<translation type="unfinished">Nur Durchsuchbar von Freunden</translation>
</message>
<message>
<location line="+9"/>
<source>NEW</source>
<translation>NEU</translation>
</message>
<message>
<location line="+253"/>
<location line="+69"/>
<source>FILE</source>
<translation>DATEI</translation>
</message>
<message>
<location line="-56"/>
<source>Files</source>
<translation>Dateien</translation>
</message>
<message>
<location line="+2"/>
<source>File</source>
<translation>Datei</translation>
</message>
<message>
<location line="+6"/>
<location line="+64"/>
<source>DIR</source>
<translation>ORDNER</translation>
<translation type="unfinished">NEU</translation>
</message>
</context>
<context>
@ -9400,7 +9488,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>RsidPage</name>
<message>
<location filename="../gui/connect/ConnectFriendWizard.cpp" line="+897"/>
<location filename="../gui/connect/ConnectFriendWizard.cpp" line="+920"/>
<source>RetroShare ID</source>
<translation>RetroShare ID</translation>
</message>
@ -9497,7 +9585,7 @@ p, li { white-space: pre-wrap; }
<translation>Freunden empfehlen</translation>
</message>
<message>
<location line="+142"/>
<location line="+140"/>
<source>Remove</source>
<translation>Entfernen</translation>
</message>
@ -9508,7 +9596,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location line="+342"/>
<location line="+66"/>
<location line="+68"/>
<source>Folder</source>
<translation>Ordner</translation>
</message>
@ -9568,7 +9656,7 @@ p, li { white-space: pre-wrap; }
<translation>Such ID</translation>
</message>
<message>
<location filename="../gui/SearchDialog.cpp" line="-955"/>
<location filename="../gui/SearchDialog.cpp" line="-957"/>
<source>Download Notice</source>
<translation>Download</translation>
</message>
@ -10207,13 +10295,13 @@ p, li { white-space: pre-wrap; }
<context>
<name>SharedFilesDialog</name>
<message>
<location filename="../gui/SharedFilesDialog.ui" line="+958"/>
<location filename="../gui/SharedFilesDialog.cpp" line="+305"/>
<location filename="../gui/SharedFilesDialog.ui" line="+984"/>
<location filename="../gui/SharedFilesDialog.cpp" line="+365"/>
<source>Download</source>
<translation>Herunterladen</translation>
</message>
<message>
<location line="-359"/>
<location line="-385"/>
<source>Splitted View</source>
<translation>Geteiltes Fenster</translation>
</message>
@ -10276,23 +10364,33 @@ p, li { white-space: pre-wrap; }
<translation>Zurücksetzen</translation>
</message>
<message>
<location line="+180"/>
<location line="+28"/>
<source>Tree view</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+5"/>
<source>Flat view</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+173"/>
<source>check files</source>
<translation>Prüfe Dateien</translation>
</message>
<message>
<location filename="../gui/SharedFilesDialog.cpp" line="-80"/>
<location line="+496"/>
<location filename="../gui/SharedFilesDialog.cpp" line="-133"/>
<location line="+549"/>
<source>Open File</source>
<translation>Datei öffnen</translation>
</message>
<message>
<location line="-494"/>
<location line="-547"/>
<source>Open Folder</source>
<translation>Ordner öffnen</translation>
</message>
<message>
<location line="+503"/>
<location line="+556"/>
<source>Set command for opening this file</source>
<translation>Setze eine Regel zum Öffnen dieser Datei</translation>
</message>
@ -10317,7 +10415,7 @@ p, li { white-space: pre-wrap; }
<translation>Sende RetroShare Link</translation>
</message>
<message>
<location line="-102"/>
<location line="-155"/>
<source>Copy retroshare Links to Clipboard</source>
<translation>Kopiere RetroShare Links in die Zwischenablage</translation>
</message>
@ -10347,7 +10445,7 @@ p, li { white-space: pre-wrap; }
<translation>Füge die Links zur Verknüpfungs-Wolke hinzu</translation>
</message>
<message>
<location line="+98"/>
<location line="+151"/>
<location line="+380"/>
<source>Recommend in a message to</source>
<translation>Empfehle in einer Nachricht an</translation>
@ -10967,6 +11065,63 @@ p, li { white-space: pre-wrap; }
<translation>Abbrechen</translation>
</message>
</context>
<context>
<name>StyleDialog</name>
<message>
<location filename="../gui/style/StyleDialog.ui" line="+29"/>
<source>Define Style</source>
<translation>Definiere Farben</translation>
</message>
<message>
<location line="+78"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:18pt; color:#ffffff;&quot;&gt;Define Style&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:18pt; color:#ffffff;&quot;&gt;Definiere Farben&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location line="+34"/>
<location line="+16"/>
<source>Choose color</source>
<translation>Farbe wählen</translation>
</message>
<message>
<location line="+16"/>
<source>Color 2</source>
<translation>Farbe 2</translation>
</message>
<message>
<location line="+13"/>
<source>Color 1</source>
<translation>Farbe 1</translation>
</message>
<message>
<location line="+29"/>
<source>Style</source>
<translation>Stil</translation>
</message>
<message>
<location filename="../gui/style/StyleDialog.cpp" line="+51"/>
<source>None</source>
<translation>Kein</translation>
</message>
<message>
<location line="+1"/>
<source>Solid</source>
<translation>Farbe</translation>
</message>
<message>
<location line="+1"/>
<source>Gradient</source>
<translation>Farbverlauf</translation>
</message>
</context>
<context>
<name>SubDestItem</name>
<message>
@ -11100,7 +11255,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>TextPage</name>
<message>
<location filename="../gui/connect/ConnectFriendWizard.cpp" line="-921"/>
<location filename="../gui/connect/ConnectFriendWizard.cpp" line="-944"/>
<source>Use text representation of the PGP certificates.</source>
<translation>Verwende diesen Text als PGP Zertifikat.</translation>
</message>
@ -11110,7 +11265,7 @@ p, li { white-space: pre-wrap; }
<translation>Der folgende Text ist Ihr PGP Zertifikat. Sie können es zu Ihrem Freund geben </translation>
</message>
<message>
<location line="+41"/>
<location line="+39"/>
<source>Save your Cert into a File</source>
<translation>Zertifikat als Datei speichern</translation>
</message>
@ -11120,7 +11275,12 @@ p, li { white-space: pre-wrap; }
<translation>Bitte füge das PGP-Zertifikat von Ihre Freunde in das Feld unten ein</translation>
</message>
<message>
<location line="+95"/>
<location line="+13"/>
<source>Clean certificate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+107"/>
<source>Save as...</source>
<translation>Speichern unter...</translation>
</message>
@ -11140,12 +11300,12 @@ p, li { white-space: pre-wrap; }
<translation></translation>
</message>
<message>
<location line="-132"/>
<location line="-155"/>
<source>Text certificate</source>
<translation>Text-Zertifikat</translation>
</message>
<message>
<location line="+36"/>
<location line="+34"/>
<source>Copy your Cert to Clipboard</source>
<translation>Kopiere dein Zertifikat in die Zwischenablage</translation>
</message>
@ -11155,7 +11315,7 @@ p, li { white-space: pre-wrap; }
<translation>Starte das Standard-Emailprogramm</translation>
</message>
<message>
<location line="+66"/>
<location line="+91"/>
<source>Connect Friend Help</source>
<translation>Verbindungshilfe</translation>
</message>
@ -11170,7 +11330,7 @@ p, li { white-space: pre-wrap; }
<translation>Dein Zertiifkat ist in in die Zwischenablage kopiert worden</translation>
</message>
<message>
<location line="-23"/>
<location line="-33"/>
<source>RetroShare Invite</source>
<translation>RetroShare Einladung</translation>
</message>
@ -11452,7 +11612,17 @@ p, li { white-space: pre-wrap; }
<translation>Details:</translation>
</message>
<message>
<location line="+243"/>
<location line="+186"/>
<source>File preview</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+0"/>
<source>File %1 preview failed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+62"/>
<source>Open Transfer</source>
<translation>Öffne Übertragung</translation>
</message>
@ -11462,7 +11632,7 @@ p, li { white-space: pre-wrap; }
<translation>Datei %1 ist nicht komplett. Wenn es eine Media Datei ist dann versuche &quot;Vorschau&quot;.</translation>
</message>
<message>
<location line="-370"/>
<location line="-375"/>
<source>Are you sure that you want to cancel and delete these files?</source>
<translation>Soll dieser Download wirklich abgebrochen und gelöscht werden?</translation>
</message>
@ -11586,6 +11756,66 @@ p, li { white-space: pre-wrap; }
<translation>Erzwinge Überprüfung</translation>
</message>
</context>
<context>
<name>TreeStyle_RDM</name>
<message>
<location filename="../gui/RemoteDirModel.cpp" line="+136"/>
<location line="+108"/>
<source>FILE</source>
<translation type="unfinished">DATEI</translation>
</message>
<message>
<location line="-95"/>
<source>Files</source>
<translation type="unfinished">Dateien</translation>
</message>
<message>
<location line="+2"/>
<source>File</source>
<translation type="unfinished">Datei</translation>
</message>
<message>
<location line="+6"/>
<location line="+103"/>
<source>DIR</source>
<translation type="unfinished">ORDNER</translation>
</message>
<message>
<location line="+145"/>
<source>Friends Directories</source>
<translation type="unfinished">Dateien von Freunden</translation>
</message>
<message>
<location line="+2"/>
<source>My Directories</source>
<translation type="unfinished">Meine Ordner</translation>
</message>
<message>
<location line="+2"/>
<source>Size</source>
<translation type="unfinished">Grösse</translation>
</message>
<message>
<location line="+2"/>
<source>Age</source>
<translation type="unfinished">Alter</translation>
</message>
<message>
<location line="+3"/>
<source>Friend</source>
<translation type="unfinished">Freund</translation>
</message>
<message>
<location line="+2"/>
<source>Share Type</source>
<translation type="unfinished">Freigabe Typ</translation>
</message>
<message>
<location line="+2"/>
<source>What&apos;s new</source>
<translation type="unfinished">Was ist neu</translation>
</message>
</context>
<context>
<name>TrustView</name>
<message>