diff --git a/.gitignore b/.gitignore
index 606e522a3..b4dfddcac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,7 +21,7 @@ Thumbs.db
!supportlibs/libsam3/Makefile
# QtCreator cruft
-*CMakeLists.txt.user*
+*CMakeLists.txt.user
# Build artifacts
/jsonapi-generator/src/jsonapi-generator
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 45fed1bb2..c91f867a5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,7 +1,7 @@
-image: docker:latest
+image: docker:stable
services:
- - docker:dind
+ - docker:stable-dind
stages:
- build
@@ -18,7 +18,6 @@ variables:
build-ubuntu-test-image:
stage: build
script:
- - docker --version
- >
docker login "$CI_REGISTRY"
--username "$CI_REGISTRY_USER"
@@ -36,7 +35,6 @@ build-ubuntu-test-image:
test-ubuntu:
stage: test
script:
- - docker --version
- >
docker login "$CI_REGISTRY"
--username "$CI_REGISTRY_USER"
diff --git a/.gitmodules b/.gitmodules
index 273336f84..7692f4556 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -36,8 +36,3 @@
[submodule "retroshare-webui"]
path = retroshare-webui
url = https://github.com/RetroShare/RSNewWebUI.git
- branch = master
-[submodule "supportlibs/librnp"]
- path = supportlibs/librnp
- url = https://github.com/rnpgp/rnp.git
- branch = main
diff --git a/README.asciidoc b/README.asciidoc
index 6e5c52ce9..e1f41e74d 100644
--- a/README.asciidoc
+++ b/README.asciidoc
@@ -7,9 +7,6 @@ RetroShare is a decentralized, private, secure, cross-platform, communication
toolkit.
RetroShare provides file sharing, chat, messages, forums, channels and more.
-|===============================================================================
-| Developer Documentation | image:https://deepwiki.com/badge.svg[link="https://deepwiki.com/RetroShare/RetroShare",title="Ask DeepWiki"]
-|===============================================================================
.Build Status
|===============================================================================
|GNU/Linux (via Gitlab CI) | image:https://gitlab.com/RetroShare/RetroShare/badges/master/pipeline.svg[link="https://gitlab.com/RetroShare/RetroShare/-/commits/master",title="pipeline status"]
diff --git a/RetroShare.pro b/RetroShare.pro
index 4972fe2ab..944e8204e 100644
--- a/RetroShare.pro
+++ b/RetroShare.pro
@@ -25,6 +25,9 @@ CONFIG += c++14
TEMPLATE = subdirs
+SUBDIRS += openpgpsdk
+openpgpsdk.file = openpgpsdk/src/openpgpsdk.pro
+
rs_jsonapi:isEmpty(JSONAPI_GENERATOR_EXE) {
SUBDIRS += jsonapi-generator
jsonapi-generator.file = jsonapi-generator/src/jsonapi-generator.pro
@@ -33,7 +36,7 @@ rs_jsonapi:isEmpty(JSONAPI_GENERATOR_EXE) {
SUBDIRS += libbitdht
libbitdht.file = libbitdht/src/libbitdht.pro
-libretroshare.depends += libbitdht
+libretroshare.depends += openpgpsdk libbitdht
SUBDIRS += libretroshare
libretroshare.file = libretroshare/src/libretroshare.pro
diff --git a/build_scripts/GitlabCI/base.Dockerfile b/build_scripts/GitlabCI/base.Dockerfile
index 5fd1bd81d..13097f58d 100644
--- a/build_scripts/GitlabCI/base.Dockerfile
+++ b/build_scripts/GitlabCI/base.Dockerfile
@@ -40,23 +40,18 @@ RUN git clone --depth 1 https://github.com/aetilius/pHash.git && \
rm -rf pHash-build pHash
ARG FRESHCLONE=0
-ARG REPO_URL=https://github.com/RetroShare/RetroShare.git
+ARG REPO_URL=https://gitlab.com/RetroShare/RetroShare.git
ARG REPO_BRANCH=master
ARG REPO_DEPTH="--depth 2000"
-RUN git clone $REPO_DEPTH $REPO_URL -b $REPO_BRANCH && \
- cd RetroShare && \
+RUN git clone $REPO_DEPTH $REPO_URL -b $REPO_BRANCH && cd RetroShare && \
git fetch --tags && \
- git submodule update --init \
- libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/ \
- supportlibs/restbed/ && \
- cd supportlibs/restbed/ && \
- git submodule update --init \
- dependency/asio/ dependency/kashmir/ && \
- cd ../../../
+ git submodule update --init --remote --force \
+ libbitdht/ libretroshare/ openpgpsdk/ && \
+ cd ..
RUN \
mkdir RetroShare-build && cd RetroShare-build && \
cmake -B. -S../RetroShare/retroshare-service \
- -DRS_FORUM_DEEP_INDEX=ON -DRS_JSON_API=ON -DRS_WEBUI=ON && \
+ -DRS_FORUM_DEEP_INDEX=ON -DRS_JSON_API=ON && \
make -j$(nproc) && make install && \
cd .. && rm -rf RetroShare-build
diff --git a/build_scripts/GitlabCI/gitlabCI.Dockerfile b/build_scripts/GitlabCI/gitlabCI.Dockerfile
index 5ae3f4ed3..c62c4d198 100644
--- a/build_scripts/GitlabCI/gitlabCI.Dockerfile
+++ b/build_scripts/GitlabCI/gitlabCI.Dockerfile
@@ -2,19 +2,19 @@ FROM registry.gitlab.com/retroshare/retroshare:base
RUN apt-get update -y && apt-get upgrade -y
-ARG REPO_URL=https://github.com/RetroShare/RetroShare.git
+ARG REPO_URL=https://gitlab.com/RetroShare/RetroShare.git
ARG REPO_BRANCH=master
RUN \
cd RetroShare && git remote add testing $REPO_URL && \
git fetch --tags testing $REPO_BRANCH && \
git reset --hard testing/$REPO_BRANCH && \
- git submodule update --init \
- libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/ && \
+ git submodule update --init --remote --force \
+ libbitdht/ libretroshare/ openpgpsdk/ && \
git --no-pager log --max-count 1
RUN \
mkdir RetroShare-build && cd RetroShare-build && \
cmake -B. -S../RetroShare/retroshare-service \
- -DRS_FORUM_DEEP_INDEX=ON -DRS_JSON_API=ON -DRS_WEBUI=ON \
+ -DRS_FORUM_DEEP_INDEX=ON -DRS_JSON_API=ON \
-DRS_WARN_DEPRECATED=OFF -DRS_WARN_LESS=ON && \
make -j$(nproc) && make install && \
cd .. && rm -rf RetroShare-build
diff --git a/build_scripts/OBS b/build_scripts/OBS
index 0a3997cc1..353596b0e 160000
--- a/build_scripts/OBS
+++ b/build_scripts/OBS
@@ -1 +1 @@
-Subproject commit 0a3997cc1355b2c848161dca015b7e2df039707b
+Subproject commit 353596b0ee5ea76611eb663b90bf3ab1c9f34ad7
diff --git a/build_scripts/OSX/MacOS_X_InstallGuide.md b/build_scripts/OSX/MacOS_X_InstallGuide.md
index b63b12185..6dafd63c0 100644
--- a/build_scripts/OSX/MacOS_X_InstallGuide.md
+++ b/build_scripts/OSX/MacOS_X_InstallGuide.md
@@ -2,15 +2,13 @@
## Qt Installation
-Qt 5.15 is not available as install package.
+Install Qt via: [Qt Download](http://www.qt.io/download/)
-Download Qt 5.15.x from here: [Qt 5.15.17](https://download.qt.io/archive/qt/5.15/5.15.17/single/qt-everywhere-opensource-src-5.15.17.tar.xz)
+Use default options. And add Qt Script support.
-Instruction howto Build Qt 5.15.x on macOS: [macOS Building](https://doc.qt.io/archives/qt-5.15/macos-building.html)
-## Set the Environment Variables
Add to the PATH environment variable by editing your *~/.profile* file.
- export PATH="/users/$USER/Qt/5.15.17/clang_64/bin:$PATH"
+ export PATH="/users/$USER/Qt/5.14.1/clang_64/bin:$PATH"
Depends on which version of Qt you use.
@@ -32,20 +30,32 @@ In GitHub Desktop -> Clone Repository -> URL
Add Repository URL: https://github.com/RetroShare/RetroShare.git and Clone
-## ***Get XCode & MacOSX SDK***
+## ***Choose if you use MacPort or HomeBrew***
-To identify the correct version of Xcode to install, you need to know which OS you are running. Go to the [x] menu -> "About This Mac" and read the macOS version number.
+### MacPort Installation
-If you are running macOS Ventura 13.5 or later, you can install Xcode directly from App Store using the instructions below.
+Install MacPort and XCode following this guide: [MacPort and XCode](http://guide.macports.org/#installing.xcode)
-You can find older versions of Xcode at [Apple Developer Downloads](https://developer.apple.com/downloads/). Find the appropriate .xip file for your macOS version
+Start XCode to get it updated and to able C compiler to create executables.
-To install from App Store:
+#### Install libraries
-Select [x] menu - > "App Storeā¦".
-Search for Xcode. Download and install.
+ $ sudo port -v selfupdate
+ $ sudo port install openssl
+ $ sudo port install miniupnpc
+ $ sudo port install libmicrohttpd
+
+For VOIP Plugin:
-Once Xcode has installed, you must drag the XCode icon into your Applications folder. After you have done this, open Xcode from the Applications folder by double-clicking on the icon and then follow the remaining instructions below.
+ $ sudo port install speex-devel
+ $ sudo port install opencv
+ $ sudo port install ffmpeg
+
+Get Your OSX SDK if missing: [MacOSX-SDKs](https://github.com/phracker/MacOSX-SDKs)
+
+### HOMEBREW Installation
+
+Install HomeBrew following this guide: [HomeBrew](http://brew.sh/)
Install XCode command line developer tools:
@@ -53,33 +63,13 @@ Install XCode command line developer tools:
Start XCode to get it updated and to able C compiler to create executables.
-Older MacOSX SDK is available from here: [MacOSX-SDKs](https://github.com/phracker/MacOSX-SDKs)
-
-### MacPort Installation
-
-Install MacPort following this guide: [MacPort](http://guide.macports.org/#installing.xcode)
-
-### HOMEBREW Installation
-
-Install HomeBrew following this guide: [HomeBrew](http://brew.sh/)
-
#### Install libraries
$ brew install openssl
$ brew install miniupnpc
+ $ brew install libmicrohttpd
$ brew install rapidjson
$ brew install sqlcipher
-
-For RNP lib:
-
- $ brew install bzip2
- $ brew install zlib
- $ brew install json-c
- $ brew install botan@2
-
-#### Install CMake
-
- $ brew install cmake
If you have error in linking, run this:
@@ -95,7 +85,8 @@ For VOIP Plugin:
For FeedReader Plugin:
$ brew install libxslt
- $ brew install libxml2
+
+Get Your OSX SDK if missing: [MacOSX-SDKs](https://github.com/phracker/MacOSX-SDKs)
## Last Settings
@@ -113,8 +104,11 @@ In QtCreator Projects -> Build -> Build Settings -> Build Steps -> Add Additiona
## Set your Mac OS SDK version
+Edit RetroShare.pro
-Edit retroshare.pri and set your installed sdk version example for 11.1 -> rs_macos11.1 (line 135:)
+ CONFIG += c++14 rs_macos11.1
+
+and then retroshare.pri
macx:CONFIG *= rs_macos11.1
rs_macos10.8:CONFIG -= rs_macos11.1
@@ -128,7 +122,7 @@ Edit retroshare.pri and set your installed sdk version example for 11.1 -> rs_ma
## Link Include & Libraries
-When required edit your retroshare.pri macx-* section, check if the Include and Lib path are correct (macx-* section)
+Edit your retroshare.pri and add to macx-* section
INCLUDEPATH += "/usr/local/opt/openssl/include"
QMAKE_LIBDIR += "/usr/local/opt/openssl/lib"
@@ -137,21 +131,13 @@ When required edit your retroshare.pri macx-* section, check if the Include and
alternative via Terminal
- $ qmake
- INCLUDEPATH+="/usr/local/opt/openssl/include" \
- QMAKE_LIBDIR+="/usr/local/opt/openssl/lib" \
- QMAKE_LIBDIR+="/usr/local/opt/sqlcipher/lib" \
- QMAKE_LIBDIR+="/usr/local/opt/miniupnpc/lib" \
- CONFIG+=rs_autologin \
- CONFIG+=rs_use_native_dialogs \
- CONFIG+=release \
- ..
+ $ qmake INCLUDEPATH+="/usr/local/opt/openssl/include" QMAKE_LIBDIR+="/usr/local/opt/openssl/lib" QMAKE_LIBDIR+="/usr/local/opt/sqlcipher/lib" QMAKE_LIBDIR+="/usr/local/opt/miniupnpc/lib"
For FeedReader Plugin:
INCLUDEPATH += "/usr/local/opt/libxml2/include/libxml2"
-With plugins:
+For building RetroShare with plugins:
$ qmake \
INCLUDEPATH+="/usr/local/opt/openssl/include" QMAKE_LIBDIR+="/usr/local/opt/openssl/lib" \
@@ -173,30 +159,13 @@ With plugins:
You can now compile RetroShare into Qt Creator or with Terminal
- $ cd /path/to/retroshare
- $ qmake ..
- $ make
+ cd retroshare
+ qmake; make
You can change Target and SDK in *./retroshare.pri:82* changing value of QMAKE_MACOSX_DEPLOYMENT_TARGET and QMAKE_MAC_SDK
You can find the compiled application at *./retroshare/retroshare-gui/src/retroshare.app*
-## Issues
-
-If you have issues with openssl (Undefined symbols for architecture x86_64) try to add to *~/.profile* file this or via Terminal
-
- export PATH="/usr/local/opt/openssl/bin:$PATH"
- export LDFLAGS="-L/usr/local/opt/openssl/lib"
- export CPPFLAGS="-I/usr/local/opt/openssl/include"
- export PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig"
-
-For Qt Creator -> QtCreator Projects -> Build -> Build Settings -> Build Steps -> Add Additional arguments:
-
- LDFLAGS="-L/usr/local/opt/openssl/lib"
- CPPFLAGS="-I/usr/local/opt/openssl/include"
-
-
-
## Copy Plugins
$ cp \
@@ -204,13 +173,3 @@ For Qt Creator -> QtCreator Projects -> Build -> Build Settings -> Build Steps -
./plugins/VOIP/lib/libVOIP.dylib \
./plugins/RetroChess/lib/libRetroChess.dylib \
./retroshare-gui/src/RetroShare.app/Contents/Resources/
-
-### Compile Retroshare-Service & Webui with CMake
-before you can compile overwrite the file "asio/include/asio/detail/config.hpp" here is a fix for macos [
-asio fix](https://github.com/chriskohlhoff/asio/commit/68df16d560c68944809bb2947360fe8035e9ae0a)
-
- $ cd retroshare-service
- $ mkdir build-dir
- $ cd build-dir
- $ cmake -DRS_WEBUI=ON -DCMAKE_BUILD_TYPE=Release ..
- $ make
diff --git a/build_scripts/OSX/makeOSXPackage.sh b/build_scripts/OSX/makeOSXPackage.sh
deleted file mode 100644
index 8f9700ed0..000000000
--- a/build_scripts/OSX/makeOSXPackage.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/sh
-
-APP="RetroShare"
-RSVERSION="0.6.7a"
-QTVERSION="Qt-5.15.11"
-
-# Install the 7z to create dmg archives.
-#brew list p7zip || brew install p7zip
-
-# Package your app
-echo "Packaging retroshare..."
-#cd ${project_dir}/build/macOS/clang/x86_64/release/
-cd retroshare-gui/src/
-
-# Remove build directories that you don't want to deploy
-rm -rf moc
-rm -rf obj
-rm -rf qrc
-
-# This sets the CFBundleVersion & CFBundleShortVersionString string
-/usr/libexec/PlistBuddy -c "Delete :CFBundleGetInfoString" retroshare.app/Contents/Info.plist
-/usr/libexec/PlistBuddy -c "Add :CFBundleVersion string $RSVERSION" retroshare.app/Contents/Info.plist
-/usr/libexec/PlistBuddy -c "Add :CFBundleShortVersionString string $RSVERSION" retroshare.app/Contents/Info.plist
-/usr/libexec/PlistBuddy -c "Delete :NSRequiresAquaSystemAppearance" retroshare.app/Contents/Info.plist
-
-# This automatically creates retroshare.dmg
-
-echo "Creating dmg archive..."
-macdeployqt retroshare.app -dmg
-
-DATE=`date +"%m-%d-%Y"`
-MACVERSION=`sw_vers -productVersion`
-#RSVERSION=`git describe --abbrev=0 --tags`
-GITHEAD=`git rev-parse --short HEAD`
-
-mv $APP.dmg "$APP-$RSVERSION-$GITHEAD-$DATE-MacOS-$MACVERSION-$QTVERSION.dmg"
-
-# You can use the appdmg command line app to create your dmg file if
-# you want to use a custom background and icon arrangement. I'm still
-# working on this for my apps, myself. If you want to do this, you'll
-# remove the -dmg option above.
-# appdmg json-path YourApp_${TRAVIS_TAG}.dmg
-
-# Copy other project files
-cp "../../libbitdht/src/bitdht/bdboot.txt" "retroshare.app/Contents/Resources/"
-cp "../../plugins/FeedReader/lib/libFeedReader.dylib" "retroshare.app/Contents/Resources/"
-cp -R "sounds" "retroshare.app/Contents/Resources/sounds"
-
-# cp "${project_dir}/README.md" "README.md"
-# cp "${project_dir}/LICENSE" "LICENSE"
-# cp "${project_dir}/Qt License" "Qt License"
diff --git a/build_scripts/RedHat+Fedora/data/retroshare.desktop b/build_scripts/RedHat+Fedora/data/retroshare.desktop
index 95056d54a..7b93b4fa5 100644
--- a/build_scripts/RedHat+Fedora/data/retroshare.desktop
+++ b/build_scripts/RedHat+Fedora/data/retroshare.desktop
@@ -1,11 +1,10 @@
[Desktop Entry]
-Encoding=UTF-8
Version=1.0
Name=RetroShare
-Comment=Securely communicate with your friends
+Comment=Securely share files with your friends
Exec=/usr/bin/retroshare %U
Icon=/usr/share/pixmaps/retroshare.xpm
Terminal=false
Type=Application
-Categories=Network;Email;InstantMessaging;Chat;Feed;FileTransfer;P2P
+Categories=Network;P2P;
MimeType=x-scheme-handler/retroshare;
diff --git a/build_scripts/Windows-msys2/WindowsMSys2_InstallGuide.md b/build_scripts/Windows-msys2/WindowsMSys2_InstallGuide.md
index a0d1b67b6..2105112f1 100644
--- a/build_scripts/Windows-msys2/WindowsMSys2_InstallGuide.md
+++ b/build_scripts/Windows-msys2/WindowsMSys2_InstallGuide.md
@@ -18,8 +18,8 @@ At the end, you'll get at ..\\*-msys2\deploy\ the Portable 7zip file.
### MSYS2 INSTALLATION (for editing or debugging)
-Download MSYS2 from [MSYS2](http://www.msys2.org/). Installing
-MSYS2 requires 64 bit Windows 10 or newer.
+Download MSYS2 from [MSYS2](http://www.msys2.org/). Get the i686 version
+if you run a 32-bit Windows or the x86_64 if you run a 64-bit Windows.
Run the installer and install MSYS2.
@@ -40,29 +40,26 @@ Run MSYS2 MSYS again and finish updating with:
Install the default programs needed to build:
- pacman -S base-devel git wget p7zip gcc perl ruby doxygen cmake
+ pacman -S base-devel git wget p7zip gcc perl ruby python2 doxygen cmake
-Install the 64-bit toolchain:
+Install the 32-bit toolchain:
- pacman -S mingw-w64-x86_64-toolchain
+ pacman -S mingw-w64-i686-toolchain
Install all needed dependencies:
- pacman -S mingw-w64-x86_64-miniupnpc
- pacman -S mingw-w64-x86_64-libxslt
- pacman -S mingw-w64-x86_64-xapian-core
- pacman -S mingw-w64-x86_64-sqlcipher
- pacman -S mingw-w64-x86_64-qt5-base
- pacman -S mingw-w64-x86_64-qt5-multimedia
- pacman -S mingw-w64-x86_64-ccmake
- pacman -S mingw-w64-x86_64-rapidjson
- pacman -S mingw-w64-x86_64-json-c
- pacman -S mingw-w64-x86_64-libbotan
- pacman -S mingw-w64-x86_64-asio
+ pacman -S mingw-w64-i686-miniupnpc
+ pacman -S mingw-w64-i686-libmicrohttpd
+ pacman -S mingw-w64-i686-libxslt
+ pacman -S mingw-w64-i686-xapian-core
+ pacman -S mingw-w64-i686-sqlcipher
+ pacman -S mingw-w64-i686-qt5
+ pacman -S mingw32/mingw-w64-i686-cmake
+ pacman -S mingw-w64-i686-rapidjson
If you want to use QtCreator as IDE, prefer using this one publish by MSYS2 as all build Kit are already setted.
- pacman -S mingw-w64-x86_64-qt-creator
+ pacman -S mingw-w64-i686-qt-creator
*You can start it from MSYS2 terminal.*
@@ -70,7 +67,7 @@ We're done installing MSYS2, close the shell terminal.
### BUILDING RETROSHARE
-Now run the MSYS2 MinGW 64-bit shell terminal (it's in the start menu).
+Now run the MSYS2 MinGW 32-bit shell terminal (it's in the start menu).
We will use it to checkout Retroshare and build it:
git clone https://github.com/RetroShare/RetroShare.git
diff --git a/build_scripts/Windows-msys2/build/build-installer.bat b/build_scripts/Windows-msys2/build/build-installer.bat
index da404f273..192b2d025 100644
--- a/build_scripts/Windows-msys2/build/build-installer.bat
+++ b/build_scripts/Windows-msys2/build/build-installer.bat
@@ -43,7 +43,6 @@ set NSIS_PARAM=%NSIS_PARAM% /DDEPLOYDIR="%RsDeployPath%"
set NSIS_PARAM=%NSIS_PARAM% /DOUTDIR="%RsPackPath%"
set NSIS_PARAM=%NSIS_PARAM% /DINSTALLERADD="%RsArchiveAdd%"
set NSIS_PARAM=%NSIS_PARAM% /DARCHITECTURE="%RsArchitecture%"
-set NSIS_PARAM=%NSIS_PARAM% /DTOOLCHAIN="%RsToolchain%"
set NSIS_PARAM=%NSIS_PARAM% /DREVISION=%RsVersion.Extra%
set QtMainVersion=%QtVersion:~0,1%
diff --git a/build_scripts/Windows-msys2/build/build.bat b/build_scripts/Windows-msys2/build/build.bat
index fc5632293..4fdaff09f 100644
--- a/build_scripts/Windows-msys2/build/build.bat
+++ b/build_scripts/Windows-msys2/build/build.bat
@@ -18,17 +18,15 @@ if errorlevel 1 goto error_env
if not "%ParamNoupdate%"=="1" (
:: Install needed things
%EnvMSYS2Cmd% "pacman --noconfirm --needed -S make git mingw-w64-%RsMSYS2Architecture%-toolchain mingw-w64-%RsMSYS2Architecture%-qt5 mingw-w64-%RsMSYS2Architecture%-miniupnpc mingw-w64-%RsMSYS2Architecture%-sqlcipher mingw-w64-%RsMSYS2Architecture%-cmake mingw-w64-%RsMSYS2Architecture%-rapidjson"
- :: rnp
- %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-json-c mingw-w64-%RsMSYS2Architecture%-libbotan"
:: Webui
- if "%ParamWebui%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-doxygen mingw-w64-%RsMSYS2Architecture%-asio"
+ if "%ParamWebui%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-doxygen"
:: Plugins
if "%ParamPlugins%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-speex mingw-w64-%RsMSYS2Architecture%-speexdsp mingw-w64-%RsMSYS2Architecture%-curl mingw-w64-%RsMSYS2Architecture%-libxslt mingw-w64-%RsMSYS2Architecture%-opencv mingw-w64-%RsMSYS2Architecture%-ffmpeg"
:: Clang
- if "%ClangCompiler%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-clang"
+ if "%ParamClang%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-clang"
:: Indexing
if "%ParamIndexing%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-xapian-core mingw-w64-%RsMSYS2Architecture%-libvorbis mingw-w64-%RsMSYS2Architecture%-flac mingw-w64-%RsMSYS2Architecture%-taglib"
@@ -79,10 +77,11 @@ echo %RsBuildConfig% >> buildinfo.txt
echo %RsArchitecture% >> buildinfo.txt
echo Qt %QtVersion% >> buildinfo.txt
echo %RsToolchain% >> buildinfo.txt
+echo %RsCompiler% >> buildinfo.txt
call "%ToolsPath%\msys2-path.bat" "%SourcePath%" MSYS2SourcePath
call "%ToolsPath%\msys2-path.bat" "%EnvMSYS2Path%" MSYS2EnvMSYS2Path
-if "%ClangCompiler%"=="1" (
+if "%ParamClang%"=="1" (
%EnvMSYS2Cmd% "qmake "%MSYS2SourcePath%/RetroShare.pro" -r -spec win32-clang-g++ %RS_QMAKE_CONFIG%"
) else (
%EnvMSYS2Cmd% "qmake "%MSYS2SourcePath%/RetroShare.pro" -r -spec win32-g++ %RS_QMAKE_CONFIG%"
diff --git a/build_scripts/Windows-msys2/build/env-base.bat b/build_scripts/Windows-msys2/build/env-base.bat
index 6e5c8480f..01a7a8f12 100644
--- a/build_scripts/Windows-msys2/build/env-base.bat
+++ b/build_scripts/Windows-msys2/build/env-base.bat
@@ -5,7 +5,7 @@ set ParamAutologin=0
set ParamPlugins=0
set ParamTor=0
set ParamWebui=0
-set ClangCompiler=0
+set ParamClang=0
set ParamIndexing=0
set ParamFriendserver=0
set ParamNoupdate=0
@@ -55,6 +55,8 @@ if "%~1" NEQ "" (
set ParamWebui=1
) else if "%%~a"=="singlethread" (
set CoreCount=1
+ ) else if "%%~a"=="clang" (
+ set ParamClang=1
) else if "%%~a"=="indexing" (
set ParamIndexing=1
) else if "%%~a"=="friendserver" (
@@ -94,18 +96,24 @@ if "%RsToolchain%"=="mingw32" (
set RsArchitecture=x64
set RsMSYS2Architecture=clang-x86_64
set MSYSTEM=CLANG64
- set ClangCompiler=1
+ set ParamClang=1
) else if "%RsToolchain%"=="clang32" (
set RsArchitecture=x86
set RsMSYS2Architecture=clang-i686
set MSYSTEM=CLANG32
- set ClangCompiler=1
+ set ParamClang=1
) else if "%RsToolchain%"=="clangarm64" (
set RsArchitecture=arm64
set RsMSYS2Architecture=clang-aarch64
set MSYSTEM=CLANGARM64
)
+if "%ParamClang%"=="1" (
+ set RsCompiler=Clang
+) else (
+ set RsCompiler=GCC
+)
+
if "%ParamRelease%"=="1" (
if "%ParamDebug%"=="1" (
echo.
@@ -154,6 +162,7 @@ echo autologin Build with autologin
echo plugins Build plugins
echo webui Enable JsonAPI and pack webui files
echo singlethread Use only 1 thread for building
+echo clang Use clang compiler instead of GCC
echo indexing Build with deep channel and file indexing support
echo friendserver Enable friendserver support
echo noupdate Skip updating the libraries
diff --git a/build_scripts/Windows-msys2/build/env.bat b/build_scripts/Windows-msys2/build/env.bat
index 38ceeaee3..ccba33db3 100644
--- a/build_scripts/Windows-msys2/build/env.bat
+++ b/build_scripts/Windows-msys2/build/env.bat
@@ -14,8 +14,8 @@ if "%QtVersion%"=="" %cecho% error "Cannot get Qt version." & exit /B 1
set RsMinGWPath=%EnvMSYS2BasePath%\%RsToolchain%
-set RsBuildPath=%BuildPath%\Qt-%QtVersion%-%RsToolchain%-%RsBuildConfig%
-set RsDeployPath=%DeployPath%\Qt-%QtVersion%-%RsToolchain%%RsType%-%RsBuildConfig%
+set RsBuildPath=%BuildPath%\Qt-%QtVersion%-%RsToolchain%-%RsCompiler%-%RsBuildConfig%
+set RsDeployPath=%DeployPath%\Qt-%QtVersion%%RsType%-%RsToolchain%-%RsCompiler%-%RsBuildConfig%
set RsPackPath=%DeployPath%
set RsArchiveAdd=
set RsWebuiBuildPath=%RsBuildPath%\retroshare-webui\webui
diff --git a/build_scripts/Windows-msys2/build/pack.bat b/build_scripts/Windows-msys2/build/pack.bat
index 3fa48c615..313da7479 100644
--- a/build_scripts/Windows-msys2/build/pack.bat
+++ b/build_scripts/Windows-msys2/build/pack.bat
@@ -71,9 +71,9 @@ if "%QtMainVersion%"=="4" set QtMainVersion2=4
if "%QtMainVersion%"=="5" set QtMainVersion1=5
if "%RsBuildConfig%" NEQ "release" (
- set Archive=%RsPackPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsVersion.Extra%-%RsToolchain%-msys2%RsType%%RsArchiveAdd%-%RsBuildConfig%.7z
+ set Archive=%RsPackPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsVersion.Extra%-%RsArchitecture%-msys2%RsType%%RsArchiveAdd%-%RsBuildConfig%.7z
) else (
- set Archive=%RsPackPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsVersion.Extra%-%RsToolchain%-msys2%RsType%%RsArchiveAdd%.7z
+ set Archive=%RsPackPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsVersion.Extra%-%RsArchitecture%-msys2%RsType%%RsArchiveAdd%.7z
)
if exist "%Archive%" del /Q "%Archive%"
@@ -105,7 +105,6 @@ copy "%RsBuildPath%\retroshare-nogui\src\%RsBuildConfig%\retroshare*-nogui.exe"
copy "%RsBuildPath%\retroshare-service\src\%RsBuildConfig%\retroshare*-service.exe" "%RsDeployPath%" %Quite%
copy "%RsBuildPath%\supportlibs\cmark\build\src\libcmark.dll" "%RsDeployPath%" %Quite%
if exist "%RsBuildPath%\libretroshare\src\lib\retroshare.dll" copy "%RsBuildPath%\libretroshare\src\lib\retroshare.dll" "%RsDeployPath%" %Quite%
-if exist "%RsBuildPath%\supportlibs\librnp\Build\src\lib\librnp.dll" copy "%RsBuildPath%\supportlibs\librnp\Build\src\lib\librnp.dll" "%RsDeployPath%" %Quite%
if exist "%RsBuildPath%\retroshare-friendserver\src\%RsBuildConfig%\retroshare-friendserver.exe" (
copy "%RsBuildPath%\retroshare-friendserver\src\%RsBuildConfig%\retroshare-friendserver.exe" "%RsDeployPath%" %Quite%
)
diff --git a/build_scripts/Windows-msys2/env/tools/prepare-msys2.bat b/build_scripts/Windows-msys2/env/tools/prepare-msys2.bat
index cea1df073..eaeba1482 100644
--- a/build_scripts/Windows-msys2/env/tools/prepare-msys2.bat
+++ b/build_scripts/Windows-msys2/env/tools/prepare-msys2.bat
@@ -16,7 +16,7 @@ if "%~1"=="clean" (
goto exit
)
-set MSYS2Version=20241208
+set MSYS2Version=20231026
set MSYS2Install=msys2-base-x86_64-%MSYS2Version%.sfx.exe
set MSYS2Url=https://github.com/msys2/msys2-installer/releases/download/%MSYS2Version:~0,4%-%MSYS2Version:~4,2%-%MSYS2Version:~6,2%/%MSYS2Install%
diff --git a/build_scripts/Windows-msys2/installer/retroshare-Qt5.nsi b/build_scripts/Windows-msys2/installer/retroshare-Qt5.nsi
index f37f33cf8..cd4a7867e 100644
--- a/build_scripts/Windows-msys2/installer/retroshare-Qt5.nsi
+++ b/build_scripts/Windows-msys2/installer/retroshare-Qt5.nsi
@@ -9,7 +9,6 @@
;!define REVISION ""
;!define DEPLOYDIR ""
;!define ARCHITECTURE ""
-;!define TOOLCHAIN ""
# Optional defines
;!define OUTDIR ""
@@ -22,9 +21,6 @@
!ifndef ARCHITECTURE
!error "ARCHITECTURE is not defined"
!endif
-!ifndef TOOLCHAIN
-!error "TOOLCHAIN is not defined"
-!endif
# Check optional defines
!ifdef OUTDIR
@@ -76,7 +72,7 @@ ${!defineifexist} TOR_EXISTS "${DEPLOYDIR}\tor.exe"
# Main Install settings
Name "${APPNAMEANDVERSION}"
InstallDirRegKey HKLM "Software\${APPNAME}" ""
-OutFile "${OUTDIR_}RetroShare-${VERSION}-${Date}-${REVISION}-${TOOLCHAIN}-msys2${RSTYPE}${INSTALLERADD}-setup.exe"
+OutFile "${OUTDIR_}RetroShare-${VERSION}-${Date}-${REVISION}-${ARCHITECTURE}${RSTYPE}${INSTALLERADD}-setup.exe"
BrandingText "${APPNAMEANDVERSION}"
RequestExecutionlevel highest
# Use compression
diff --git a/build_scripts/Windows-msys2/readme.md b/build_scripts/Windows-msys2/readme.md
index f5e214ee7..5582ec451 100644
--- a/build_scripts/Windows-msys2/readme.md
+++ b/build_scripts/Windows-msys2/readme.md
@@ -55,6 +55,7 @@ Run the scripts in this order:
* "CONFIG+=..." enable other extra compile time features, you can find the almost complete list in file *<sourcefolder>\retroshare.pri*
* For fixing compile problems (optional)
* singlethread: use only 1 thread for building, slow but useful if you don't find the error message in the console
+ * clang: use clang compiler instead of GCC
* noupdate: skip the msys2 update step, sometimes some msys2 packages are broken, you can manually switch back to the older package, and this option will prevent updating to the broken version again
Example:
diff --git a/build_scripts/Windows/build-libs/Makefile b/build_scripts/Windows/build-libs/Makefile
index b0c9ce137..0075770cd 100644
--- a/build_scripts/Windows/build-libs/Makefile
+++ b/build_scripts/Windows/build-libs/Makefile
@@ -2,32 +2,23 @@ ZLIB_VERSION=1.2.11
BZIP2_VERSION=1.0.8
MINIUPNPC_VERSION=2.2.3
OPENSSL_VERSION=1.1.1w
-SPEEX_VERSION=1.2.1
-SPEEXDSP_VERSION=1.2.1
-LIBXML2_MAIN_VERSION=2.14
-LIBXML2_VERSION=$(LIBXML2_MAIN_VERSION).5
-LIBXSLT_MAIN_VERSION=1.1
-LIBXSLT_VERSION=$(LIBXSLT_MAIN_VERSION).43
-CURL_VERSION=8.9.1
+SPEEX_VERSION=1.2.0
+SPEEXDSP_VERSION=1.2.0
+LIBXML2_VERSION=2.9.12
+LIBXSLT_VERSION=1.1.34
+CURL_VERSION=7.81.0
TCL_VERSION=8.6.10
SQLCIPHER_VERSION=4.5.0
LIBMICROHTTPD_VERSION=0.9.75
-FFMPEG_VERSION=4.4.6
+FFMPEG_VERSION=4.4
RAPIDJSON_VERSION=1.1.0
-XAPIAN_VERSION=1.4.29
-ASIO_VERSION=1-34-2
-#RNP_VERSION=0.17.1
-
-# libaries for rnp
-JSON_C_VERSION=0.18
-BOTAN_VERSION=2.19.5
+XAPIAN_VERSION=1.4.19
DOWNLOAD_PATH?=download
BUILD_PATH=build
LIBS_PATH?=libs
-all: dirs zlib bzip2 miniupnpc openssl speex speexdsp libxml curl sqlcipher libmicrohttpd ffmpeg rapidjson xapian jsonc botan asio copylibs
-#rnp
+all: dirs zlib bzip2 miniupnpc openssl speex speexdsp libxml2 libxslt curl sqlcipher libmicrohttpd ffmpeg rapidjson xapian copylibs
download: \
$(DOWNLOAD_PATH)/zlib-$(ZLIB_VERSION).tar.gz \
@@ -36,13 +27,13 @@ download: \
$(DOWNLOAD_PATH)/openssl-$(OPENSSL_VERSION).tar.gz \
$(DOWNLOAD_PATH)/speex-$(SPEEX_VERSION).tar.gz \
$(DOWNLOAD_PATH)/speexdsp-$(SPEEXDSP_VERSION).tar.gz \
- $(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.xz \
- $(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.xz \
+ $(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.gz \
+ $(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.gz \
$(DOWNLOAD_PATH)/curl-$(CURL_VERSION).tar.gz \
$(DOWNLOAD_PATH)/tcl$(TCL_VERSION)-src.tar.gz \
$(DOWNLOAD_PATH)/sqlcipher-$(SQLCIPHER_VERSION).tar.gz \
$(DOWNLOAD_PATH)/libmicrohttpd-$(LIBMICROHTTPD_VERSION).tar.gz \
- $(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.xz \
+ $(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.gz \
$(DOWNLOAD_PATH)/rapidjson-$(RAPIDJSON_VERSION).tar.gz \
$(DOWNLOAD_PATH)/xapian-core-$(XAPIAN_VERSION).tar.xz
@@ -193,52 +184,50 @@ $(BUILD_PATH)/speexdsp-$(SPEEXDSP_VERSION): $(DOWNLOAD_PATH)/speexdsp-$(SPEEXDSP
rm -r -f speexdsp-$(SPEEXDSP_VERSION)
mv $(BUILD_PATH)/speexdsp-$(SPEEXDSP_VERSION).tmp $(BUILD_PATH)/speexdsp-$(SPEEXDSP_VERSION)
-libxml: \
- $(BUILD_PATH)/libxml2-$(LIBXML2_VERSION) \
- $(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION)
+libxml2: $(BUILD_PATH)/libxml2-$(LIBXML2_VERSION)
-$(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.xz:
- wget --no-check-certificate https://download.gnome.org/sources/libxml2/$(LIBXML2_MAIN_VERSION)/libxml2-$(LIBXML2_VERSION).tar.xz -O $(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.xz
+$(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.gz:
+ wget ftp://xmlsoft.org/libxml2/libxml2-$(LIBXML2_VERSION).tar.gz -O $(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.gz
-$(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.xz:
- wget --no-check-certificate https://download.gnome.org/sources/libxslt/$(LIBXSLT_MAIN_VERSION)/libxslt-$(LIBXSLT_VERSION).tar.xz -O $(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.xz
-
-$(BUILD_PATH)/libxml2-$(LIBXML2_VERSION) $(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION): \
- $(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.xz \
- $(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.xz
- # libxml2: prepare
- pacman --needed --noconfirm -S python3 pkg-config
+$(BUILD_PATH)/libxml2-$(LIBXML2_VERSION): $(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.gz
+ # prepare
rm -r -f $(BUILD_PATH)/libxml2-*
- tar xvf $(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.xz
- # libxslt: prepare
- rm -r -f $(BUILD_PATH)/libxslt-*
- tar xvf $(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.xz
- tar xvf $(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.xz
- # libxml2: build
+ tar xvf $(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.gz
+ # build
cd libxml2-$(LIBXML2_VERSION) && ./configure --without-iconv -enable-shared=no
#cd libxml2-$(LIBXML2_VERSION) && make install exec_prefix="`pwd`/../$(BUILD_PATH)"
- cd libxml2-$(LIBXML2_VERSION) && make libxml2.la
- # libxslt: build
- cd libxslt-$(LIBXSLT_VERSION) && ./configure --with-libxml-src=../libxml2-$(LIBXML2_VERSION) -enable-shared=no CFLAGS=-DLIBXML_STATIC
- cd libxslt-$(LIBXSLT_VERSION)/libxslt && make
- cd libxslt-$(LIBXSLT_VERSION)/libexslt && make
- # libxml2: copy files
+ cd libxml2-$(LIBXML2_VERSION) && make
+ # copy files
mkdir -p $(BUILD_PATH)/libxml2-$(LIBXML2_VERSION).tmp/include/libxml
cp libxml2-$(LIBXML2_VERSION)/include/libxml/*.h $(BUILD_PATH)/libxml2-$(LIBXML2_VERSION).tmp/include/libxml/
mkdir -p $(BUILD_PATH)/libxml2-$(LIBXML2_VERSION).tmp/lib
cp libxml2-$(LIBXML2_VERSION)/.libs/libxml2.a $(BUILD_PATH)/libxml2-$(LIBXML2_VERSION).tmp/lib/
- # libxslt: copy files
+ # cleanup
+ #rm -r -f libxml2-$(LIBXML2_VERSION) # see libxslt
+ mv $(BUILD_PATH)/libxml2-$(LIBXML2_VERSION).tmp $(BUILD_PATH)/libxml2-$(LIBXML2_VERSION)
+
+libxslt: $(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION)
+
+$(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.gz:
+ wget ftp://xmlsoft.org/libxml2/libxslt-$(LIBXSLT_VERSION).tar.gz -O $(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.gz
+
+$(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION): $(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.gz $(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.gz
+ # prepare
+ rm -r -f $(BUILD_PATH)/libxslt-*
+ tar xvf $(DOWNLOAD_PATH)/libxml2-$(LIBXML2_VERSION).tar.gz
+ tar xvf $(DOWNLOAD_PATH)/libxslt-$(LIBXSLT_VERSION).tar.gz
+ # build
+ cd libxslt-$(LIBXSLT_VERSION) && ./configure --with-libxml-src=../libxml2-$(LIBXML2_VERSION) -enable-shared=no CFLAGS=-DLIBXML_STATIC
+ cd libxslt-$(LIBXSLT_VERSION) && make
+ # copy files
mkdir -p $(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION).tmp/include/libxslt
cp libxslt-$(LIBXSLT_VERSION)/libxslt/*.h $(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION).tmp/include/libxslt/
mkdir -p $(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION).tmp/lib
cp libxslt-$(LIBXSLT_VERSION)/libxslt/.libs/libxslt.a $(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION).tmp/lib/
cp libxslt-$(LIBXSLT_VERSION)/libexslt/.libs/libexslt.a $(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION).tmp/lib/
- # libxml2: cleanup
+ # cleanup
rm -r -f libxml2-$(LIBXML2_VERSION)
- # libxslt: cleanup
rm -r -f libxslt-$(LIBXSLT_VERSION)
- # finish
- mv $(BUILD_PATH)/libxml2-$(LIBXML2_VERSION).tmp $(BUILD_PATH)/libxml2-$(LIBXML2_VERSION)
mv $(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION).tmp $(BUILD_PATH)/libxslt-$(LIBXSLT_VERSION)
curl: $(BUILD_PATH)/curl-$(CURL_VERSION)
@@ -253,7 +242,7 @@ $(BUILD_PATH)/curl-$(CURL_VERSION): $(DOWNLOAD_PATH)/curl-$(CURL_VERSION).tar.gz
# build
cd curl-$(CURL_VERSION) && ./configure --disable-shared --with-ssl="`pwd`/../$(BUILD_PATH)/openssl-$(OPENSSL_VERSION)"
#cd curl-$(CURL_VERSION) && make install exec_prefix="`pwd`/../$(BUILD_PATH)"
- cd curl-$(CURL_VERSION)/lib && make
+ cd curl-$(CURL_VERSION) && make
# copy files
mkdir -p $(BUILD_PATH)/curl-$(CURL_VERSION).tmp/include/curl
cp curl-$(CURL_VERSION)/include/curl/*.h $(BUILD_PATH)/curl-$(CURL_VERSION).tmp/include/curl/
@@ -316,13 +305,13 @@ $(BUILD_PATH)/libmicrohttpd-$(LIBMICROHTTPD_VERSION): $(DOWNLOAD_PATH)/libmicroh
ffmpeg: $(BUILD_PATH)/ffmpeg-$(FFMPEG_VERSION)
-$(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.xz:
- wget --no-check-certificate https://ffmpeg.org/releases/ffmpeg-$(FFMPEG_VERSION).tar.xz -O $(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.xz
+$(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.gz:
+ wget --no-check-certificate https://ffmpeg.org/releases/ffmpeg-$(FFMPEG_VERSION).tar.gz -O $(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.gz
-$(BUILD_PATH)/ffmpeg-$(FFMPEG_VERSION): $(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.xz
+$(BUILD_PATH)/ffmpeg-$(FFMPEG_VERSION): $(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.gz
# prepare
rm -r -f $(BUILD_PATH)/ffmpeg-*
- tar xvf $(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.xz
+ tar xvf $(DOWNLOAD_PATH)/ffmpeg-$(FFMPEG_VERSION).tar.gz
# build
cd ffmpeg-$(FFMPEG_VERSION) && ./configure --disable-shared --enable-static --disable-programs --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-yasm --disable-everything --enable-encoder=mpeg4 --enable-decoder=mpeg4 --prefix="`pwd`/../$(BUILD_PATH)/ffmpeg-$(FFMPEG_VERSION).tmp"
cd ffmpeg-$(FFMPEG_VERSION) && make install
@@ -374,73 +363,8 @@ $(BUILD_PATH)/xapian-core-$(XAPIAN_VERSION): $(DOWNLOAD_PATH)/xapian-core-$(XAPI
rm -r -f xapian-core-$(XAPIAN_VERSION)
mv $(BUILD_PATH)/xapian-core-$(XAPIAN_VERSION).tmp $(BUILD_PATH)/xapian-core-$(XAPIAN_VERSION)
-jsonc: $(BUILD_PATH)/json-c-$(JSON_C_VERSION)
-
-$(BUILD_PATH)/json-c-$(JSON_C_VERSION):
- # prepare
- rm -r -f $(BUILD_PATH)/json-c-*
- [ -d "json-c-$(JSON_C_VERSION)" ] || git clone https://github.com/json-c/json-c.git --depth=1 --branch json-c-$(JSON_C_VERSION) "json-c-$(JSON_C_VERSION)"
- # build
- mkdir -p json-c-$(JSON_C_VERSION)/build
- cd json-c-$(JSON_C_VERSION)/build && cmake .. -G"MSYS Makefiles" -Wno-dev -DCMAKE_BUILD_TYPE="release" -DBUILD_SHARED_LIBS=off -DBUILD_STATIC_LIBS=on -DBUILD_TESTING=off -DCMAKE_CXX_FLAGS="-D__MINGW_USE_VC2005_COMPAT" -DCMAKE_INSTALL_PREFIX="`pwd`/install" -DCMAKE_INSTALL_PREFIX="`pwd`/../../$(BUILD_PATH)/json-c-$(JSON_C_VERSION).tmp"
- cd json-c-$(JSON_C_VERSION)/build && make install
- # cleanup
- rm -r -f json-c-$(JSON_C_VERSION)
- mv $(BUILD_PATH)/json-c-$(JSON_C_VERSION).tmp $(BUILD_PATH)/json-c-$(JSON_C_VERSION)
-
-botan: $(BUILD_PATH)/botan-$(BOTAN_VERSION)
-
-$(BUILD_PATH)/botan-$(BOTAN_VERSION):
- # prepare
- pacman --needed --noconfirm -S python3
- rm -r -f $(BUILD_PATH)/botan-*
- [ -d "botan-$(BOTAN_VERSION)" ] || git clone https://github.com/randombit/botan.git --depth=1 --branch $(BOTAN_VERSION) "botan-$(BOTAN_VERSION)"
- # build
- if [ $(MSYSTEM) = "MINGW32" ] ; then cd botan-$(BOTAN_VERSION) && ./configure.py --os=mingw --cpu=x86_32 --disable-shared-library --enable-static-library --extra-cxxflags="-D__MINGW_USE_VC2005_COMPAT" --prefix="`pwd`/../$(BUILD_PATH)/botan-$(BOTAN_VERSION).tmp" ; fi
- if [ $(MSYSTEM) = "MINGW64" ] ; then cd botan-$(BOTAN_VERSION) && ./configure.py --os=mingw --cpu=x86_64 --disable-shared-library --enable-static-library --prefix="`pwd`/../$(BUILD_PATH)/botan-$(BOTAN_VERSION).tmp" ; fi
- cd botan-$(BOTAN_VERSION) && make install
- # cleanup
- rm -r -f botan-$(BOTAN_VERSION)
- mv $(BUILD_PATH)/botan-$(BOTAN_VERSION).tmp $(BUILD_PATH)/botan-$(BOTAN_VERSION)
-
-asio: $(BUILD_PATH)/asio-$(ASIO_VERSION)
-
-$(BUILD_PATH)/asio-$(ASIO_VERSION):
- # prepare
- rm -r -f $(BUILD_PATH)/asio-*
- [ -d "asio-$(ASIO_VERSION)" ] || git clone https://github.com/chriskohlhoff/asio.git --depth=1 --branch asio-$(ASIO_VERSION) "asio-$(ASIO_VERSION)"
- # copy files
- mkdir -p $(BUILD_PATH)/asio-$(ASIO_VERSION).tmp/include/asio
- cp asio-$(ASIO_VERSION)/asio/include/*.hpp $(BUILD_PATH)/asio-$(ASIO_VERSION).tmp/include/
- cp -r asio-$(ASIO_VERSION)/asio/include/asio/* $(BUILD_PATH)/asio-$(ASIO_VERSION).tmp/include/asio/
- # cleanup
- rm -r -f asio-$(ASIO_VERSION)
- mv $(BUILD_PATH)/asio-$(ASIO_VERSION).tmp $(BUILD_PATH)/asio-$(ASIO_VERSION)
-
-rnp: $(BUILD_PATH)/rnp-$(RNP_VERSION)
-
-$(BUILD_PATH)/rnp-$(RNP_VERSION):
- # prepare
- rm -r -f $(BUILD_PATH)/rnp-*
- [ -d "rnp-$(RNP_VERSION)" ] || git clone https://github.com/rnpgp/rnp.git --depth=1 --branch v$(RNP_VERSION) --recurse-submodules --shallow-submodules "rnp-$(RNP_VERSION)"
- # build
- mkdir -p rnp-$(RNP_VERSION)/build
- cd rnp-$(RNP_VERSION)/build && cmake .. -G"MSYS Makefiles" -Wno-dev -DCMAKE_INSTALL_PREFIX="`pwd`/install" -DBUILD_SHARED_LIBS=yes -DBUILD_TESTING=off -DCMAKE_CXX_FLAGS="-D__MINGW_USE_VC2005_COMPAT -D__STDC_FORMAT_MACROS" -DBZIP2_INCLUDE_DIR="`pwd`/../../$(BUILD_PATH)/bzip2-$(BZIP2_VERSION)/include" -DBZIP2_LIBRARY_RELEASE="`pwd`/../../$(BUILD_PATH)/bzip2-$(BZIP2_VERSION)/lib/libbz2.a" -DBZIP2_LIBRARIES="`pwd`/../../$(BUILD_PATH)/bzip2-$(BZIP2_VERSION)/lib/libbz2.a" -DZLIB_INCLUDE_DIR="`pwd`/../../$(BUILD_PATH)/zlib-$(ZLIB_VERSION)/include" -DZLIB_LIBRARY="`pwd`/../../$(BUILD_PATH)/zlib-$(ZLIB_VERSION)/lib/libz.a" -DJSON-C_INCLUDE_DIR="`pwd`/../../$(BUILD_PATH)/json-c-$(JSON_C_VERSION)/include/json-c" -DJSON-C_LIBRARY="`pwd`/../../$(BUILD_PATH)/json-c-$(JSON_C_VERSION)/lib/libjson-c.a" -DBOTAN_INCLUDE_DIR="`pwd`/../../$(BUILD_PATH)/botan-$(BOTAN_VERSION)/include/botan-`echo $(BOTAN_VERSION) | cut -c1-1`" -DBOTAN_LIBRARY="`pwd`/../../$(BUILD_PATH)/botan-$(BOTAN_VERSION)/lib/libbotan-`echo $(BOTAN_VERSION) | cut -c1-1`.a"
- cmake --build rnp-$(RNP_VERSION)/build
- # copy files
- mkdir -p $(BUILD_PATH)/rnp-$(RNP_VERSION).tmp/include/rnp
- cp -r rnp-$(RNP_VERSION)/include/rnp/* $(BUILD_PATH)/rnp-$(RNP_VERSION).tmp/include/rnp/
- cp -r rnp-$(RNP_VERSION)/build/src/lib/rnp/* $(BUILD_PATH)/rnp-$(RNP_VERSION).tmp/include/rnp/
- mkdir -p $(BUILD_PATH)/rnp-$(RNP_VERSION).tmp/lib
- cp -r rnp-$(RNP_VERSION)/build/src/lib/librnp.dll.a $(BUILD_PATH)/rnp-$(RNP_VERSION).tmp/lib/
- mkdir -p $(BUILD_PATH)/rnp-$(RNP_VERSION).tmp/bin
- cp -r rnp-$(RNP_VERSION)/build/src/lib/librnp.dll $(BUILD_PATH)/rnp-$(RNP_VERSION).tmp/bin/
- # cleanup
- rm -r -f rnp-$(RNP_VERSION)
- mv $(BUILD_PATH)/rnp-$(RNP_VERSION).tmp $(BUILD_PATH)/rnp-$(RNP_VERSION)
-
copylibs:
rm -r -f $(LIBS_PATH) ; \
mkdir -p $(LIBS_PATH) ; \
- cp -p $(BUILD_PATH)/gcc-version $(LIBS_PATH) ; \
- find $(BUILD_PATH) -mindepth 1 -maxdepth 1 -type d -not -name "*.tmp" -print -exec cp -r -p {}/. $(LIBS_PATH) \; ; \
+ cp $(BUILD_PATH)/gcc-version $(LIBS_PATH) ; \
+ find $(BUILD_PATH) -mindepth 1 -maxdepth 1 -type d -not -name "*.tmp" -print -exec cp -r {}/. $(LIBS_PATH) \; ; \
diff --git a/build_scripts/Windows/build/pack.bat b/build_scripts/Windows/build/pack.bat
index ff347babf..1c844efa0 100644
--- a/build_scripts/Windows/build/pack.bat
+++ b/build_scripts/Windows/build/pack.bat
@@ -96,7 +96,6 @@ copy nul "%RsDeployPath%\portable" %Quite%
echo copy binaries
copy "%RsBuildPath%\retroshare-gui\src\%RsBuildConfig%\retroshare*.exe" "%RsDeployPath%" %Quite%
if exist "%RsBuildPath%\libretroshare\src\lib\retroshare.dll" copy "%RsBuildPath%\libretroshare\src\lib\retroshare.dll" "%RsDeployPath%" %Quite%
-if exist "%RsBuildPath%\supportlibs\librnp\Build\src\lib\librnp.dll" copy "%RsBuildPath%\supportlibs\librnp\Build\src\lib\librnp.dll" "%RsDeployPath%" %Quite%
if "%ParamService%"=="1" (
copy "%RsBuildPath%\retroshare-service\src\%RsBuildConfig%\retroshare*-service.exe" "%RsDeployPath%" %Quite%
diff --git a/build_scripts/Windows/env/tools/prepare-msys2.bat b/build_scripts/Windows/env/tools/prepare-msys2.bat
index ba2f12ce6..25f00ac30 100644
--- a/build_scripts/Windows/env/tools/prepare-msys2.bat
+++ b/build_scripts/Windows/env/tools/prepare-msys2.bat
@@ -16,13 +16,13 @@ if "%~1"=="clean" (
goto exit
)
-set MSYS2Version=20241208
+set MSYS2Version=20231026
set MSYS2Install=msys2-base-x86_64-%MSYS2Version%.sfx.exe
set MSYS2Url=https://github.com/msys2/msys2-installer/releases/download/%MSYS2Version:~0,4%-%MSYS2Version:~4,2%-%MSYS2Version:~6,2%/%MSYS2Install%
set MSYS2UnpackPath=%EnvMSYS2Path%\msys64
-set CMakeInstall=cmake-3.31.3-windows-i386.zip
-set CMakeUrl=https://github.com/Kitware/CMake/releases/download/v3.31.3/%CMakeInstall%
+set CMakeInstall=cmake-3.19.0-win32-x86.zip
+set CMakeUrl=https://github.com/Kitware/CMake/releases/download/v3.19.0/%CMakeInstall%
if exist "%MSYS2UnpackPath%\usr\bin\pacman.exe" (
if "%~1"=="reinstall" (
diff --git a/build_scripts/Windows/env/tools/prepare-tools.bat b/build_scripts/Windows/env/tools/prepare-tools.bat
index f088acfa8..88549faed 100644
--- a/build_scripts/Windows/env/tools/prepare-tools.bat
+++ b/build_scripts/Windows/env/tools/prepare-tools.bat
@@ -19,9 +19,9 @@ set MinGitInstallPath=%EnvToolsPath%\MinGit
set DoxygenInstall=doxygen-1.9.6.windows.x64.bin.zip
set DoxygenUrl=https://github.com/doxygen/doxygen/releases/download/Release_1_9_6/%DoxygenInstall%
set DoxygenInstallPath=%EnvToolsPath%\doxygen
-set CMakeVersion=cmake-3.31.3-windows-i386
+set CMakeVersion=cmake-3.19.0-win32-x86
set CMakeInstall=%CMakeVersion%.zip
-set CMakeUrl=https://github.com/Kitware/CMake/releases/download/v3.31.3/%CMakeInstall%
+set CMakeUrl=https://github.com/Kitware/CMake/releases/download/v3.19.0/%CMakeInstall%
set CMakeInstallPath=%EnvToolsPath%\cmake
set TorProjectUrl=https://www.torproject.org
set TorDownloadIndexUrl=%TorProjectUrl%/download/tor
diff --git a/build_scripts/Windows/installer/retroshare-Qt5.nsi b/build_scripts/Windows/installer/retroshare-Qt5.nsi
index c7a5b9554..63c81bbcc 100644
--- a/build_scripts/Windows/installer/retroshare-Qt5.nsi
+++ b/build_scripts/Windows/installer/retroshare-Qt5.nsi
@@ -247,7 +247,6 @@ Section $(Section_Main) Section_Main
; External binaries
File "${EXTERNAL_LIB_DIR}\bin\miniupnpc.dll"
- File "${RELEASEDIR}\supportlibs\librnp\Build\src\lib\librnp.dll"
!if ${ARCHITECTURE} == "x86"
File "${EXTERNAL_LIB_DIR}\bin\libcrypto-1_1.dll"
File "${EXTERNAL_LIB_DIR}\bin\libssl-1_1.dll"
diff --git a/build_scripts/git_tag_cleaner.sh b/build_scripts/git_tag_cleaner.sh
deleted file mode 100755
index cf7a3ef0c..000000000
--- a/build_scripts/git_tag_cleaner.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-
-function git_del_tag()
-{
- mTag=$1
-
- for mRemote in $(git remote); do
- echo "Attempting tag $mTag removal from remote $mRemote"
- GIT_TERMINAL_PROMPT=0 git push $mRemote :$mTag || true
- done
- git tag --delete $mTag
-}
-
-for mModule in . build_scripts/OBS/ libbitdht/ libretroshare/ openpgpsdk/ retroshare-webui/ ; do
- pushd $mModule
- git_del_tag v0.6.7a
- git tag --list | grep untagged | while read mTag; do git_del_tag $mTag ; done
- popd
-done
-
diff --git a/data/retroshare.desktop b/data/retroshare.desktop
index 95056d54a..efc73dd6b 100644
--- a/data/retroshare.desktop
+++ b/data/retroshare.desktop
@@ -7,5 +7,5 @@ Exec=/usr/bin/retroshare %U
Icon=/usr/share/pixmaps/retroshare.xpm
Terminal=false
Type=Application
-Categories=Network;Email;InstantMessaging;Chat;Feed;FileTransfer;P2P
+Categories=Application;Network;P2P;Feed;Chat;InstantMessaging
MimeType=x-scheme-handler/retroshare;
diff --git a/libretroshare b/libretroshare
index ac83e00ea..bfa91bdef 160000
--- a/libretroshare
+++ b/libretroshare
@@ -1 +1 @@
-Subproject commit ac83e00ea7a26cd6cf57cefef745d6dcfd07e5da
+Subproject commit bfa91bdef24f2339f1db053d155a6ef169027a95
diff --git a/openpgpsdk b/openpgpsdk
index 178aa8ebc..b41667912 160000
--- a/openpgpsdk
+++ b/openpgpsdk
@@ -1 +1 @@
-Subproject commit 178aa8ebcef47e3271d5a5ca5c07e45d3b71c81d
+Subproject commit b41667912751a453e8e5d4733215a0609277a26f
diff --git a/plugins/FeedReader/FeedReader.pro b/plugins/FeedReader/FeedReader.pro
index 97137c2b2..5c696b5c3 100644
--- a/plugins/FeedReader/FeedReader.pro
+++ b/plugins/FeedReader/FeedReader.pro
@@ -45,7 +45,6 @@ SOURCES = FeedReaderPlugin.cpp \
gui/FeedReaderUserNotify.cpp \
gui/FeedReaderFeedItem.cpp \
gui/FeedTreeWidget.cpp \
- gui/ProxyWidget.cpp \
util/CURLWrapper.cpp \
util/XMLWrapper.cpp \
util/HTMLWrapper.cpp \
@@ -67,7 +66,6 @@ HEADERS = FeedReaderPlugin.h \
gui/FeedReaderUserNotify.h \
gui/FeedReaderFeedItem.h \
gui/FeedTreeWidget.h \
- gui/ProxyWidget.h \
util/CURLWrapper.h \
util/XMLWrapper.h \
util/HTMLWrapper.h \
@@ -78,8 +76,7 @@ FORMS = gui/FeedReaderDialog.ui \
gui/AddFeedDialog.ui \
gui/PreviewFeedDialog.ui \
gui/FeedReaderConfig.ui \
- gui/FeedReaderFeedItem.ui \
- gui/ProxyWidget.ui
+ gui/FeedReaderFeedItem.ui
TARGET = FeedReader
@@ -128,7 +125,7 @@ win32 {
isEmpty(QMAKE_SH) {
# MinGW
- LIBS += -lcrypt32 -lbcrypt
+ LIBS += -lcrypt32
}
# Check for msys2
diff --git a/plugins/FeedReader/gui/AddFeedDialog.cpp b/plugins/FeedReader/gui/AddFeedDialog.cpp
index b6e781c4b..59baf908a 100644
--- a/plugins/FeedReader/gui/AddFeedDialog.cpp
+++ b/plugins/FeedReader/gui/AddFeedDialog.cpp
@@ -180,7 +180,8 @@ void AddFeedDialog::useStandardUpdateIntervalToggled()
void AddFeedDialog::useStandardProxyToggled()
{
bool checked = ui->useStandardProxyCheckBox->isChecked();
- ui->proxyWidget->setEnabled(!checked);
+ ui->proxyAddressLineEdit->setEnabled(!checked);
+ ui->proxyPortSpinBox->setEnabled(!checked);
}
void AddFeedDialog::typeForumToggled()
@@ -334,8 +335,8 @@ bool AddFeedDialog::fillFeed(uint32_t feedId)
ui->passwordLineEdit->setText(QString::fromUtf8(feedInfo.password.c_str()));
ui->useStandardProxyCheckBox->setChecked(feedInfo.flag.standardProxy);
- ui->proxyWidget->setAddress(QString::fromUtf8(feedInfo.proxyAddress.c_str()));
- ui->proxyWidget->setPort(feedInfo.proxyPort);
+ ui->proxyAddressLineEdit->setText(QString::fromUtf8(feedInfo.proxyAddress.c_str()));
+ ui->proxyPortSpinBox->setValue(feedInfo.proxyPort);
ui->useStandardUpdateInterval->setChecked(feedInfo.flag.standardUpdateInterval);
ui->updateIntervalSpinBox->setValue(feedInfo.updateInterval / 60);
@@ -424,8 +425,8 @@ void AddFeedDialog::getFeedInfo(FeedInfo &feedInfo)
feedInfo.password = ui->passwordLineEdit->text().toUtf8().constData();
feedInfo.flag.standardProxy = ui->useStandardProxyCheckBox->isChecked();
- feedInfo.proxyAddress = ui->proxyWidget->address().toUtf8().constData();
- feedInfo.proxyPort = ui->proxyWidget->port();
+ feedInfo.proxyAddress = ui->proxyAddressLineEdit->text().toUtf8().constData();
+ feedInfo.proxyPort = ui->proxyPortSpinBox->value();
feedInfo.flag.standardUpdateInterval = ui->useStandardUpdateInterval->isChecked();
feedInfo.updateInterval = ui->updateIntervalSpinBox->value() * 60;
diff --git a/plugins/FeedReader/gui/AddFeedDialog.ui b/plugins/FeedReader/gui/AddFeedDialog.ui
index 569578473..ebb478162 100644
--- a/plugins/FeedReader/gui/AddFeedDialog.ui
+++ b/plugins/FeedReader/gui/AddFeedDialog.ui
@@ -133,16 +133,37 @@
Proxy
-
- -
+
+ -
Use standard proxy
- -
-
+ -
+
+
+ Server
+
+
+
+ -
+
+
+ -
+
+
+ :
+
+
+
+ -
+
+
+ 65535
+
+
@@ -444,12 +465,6 @@
QComboBox
-
- ProxyWidget
- QWidget
-
- 1
-
urlLineEdit
@@ -479,7 +494,8 @@
useStandardUpdateInterval
updateIntervalSpinBox
useStandardProxyCheckBox
- proxyWidget
+ proxyAddressLineEdit
+ proxyPortSpinBox
diff --git a/plugins/FeedReader/gui/FeedReaderConfig.cpp b/plugins/FeedReader/gui/FeedReaderConfig.cpp
index 91b24f394..89456e3da 100644
--- a/plugins/FeedReader/gui/FeedReaderConfig.cpp
+++ b/plugins/FeedReader/gui/FeedReaderConfig.cpp
@@ -31,7 +31,8 @@ FeedReaderConfig::FeedReaderConfig(QWidget *parent, Qt::WindowFlags flags)
/* Invoke the Qt Designer generated object setup routine */
ui->setupUi(this);
- ui->proxyWidget->setEnabled(false);
+ ui->proxyAddressLineEdit->setEnabled(false);
+ ui->proxyPortSpinBox->setEnabled(false);
/* Connect signals */
connect(ui->updateIntervalSpinBox, (void(QSpinBox::*)(int))&QSpinBox::valueChanged, this, [this]() {
@@ -50,7 +51,8 @@ FeedReaderConfig::FeedReaderConfig(QWidget *parent, Qt::WindowFlags flags)
Settings->setValueToGroup("FeedReaderDialog", "OpenAllInNewTab", ui->openAllInNewTabCheckBox->isChecked());
});
connect(ui->useProxyCheckBox, &QCheckBox::toggled, this, &FeedReaderConfig::updateProxy);
- connect(ui->proxyWidget, &ProxyWidget::changed, this, &FeedReaderConfig::updateProxy);
+ connect(ui->proxyAddressLineEdit, &QLineEdit::textChanged, this, &FeedReaderConfig::updateProxy);
+ connect(ui->proxyPortSpinBox, (void(QSpinBox::*)(int))&QSpinBox::valueChanged, this, &FeedReaderConfig::updateProxy);
connect(ui->useProxyCheckBox, SIGNAL(toggled(bool)), this, SLOT(useProxyToggled()));
}
@@ -73,8 +75,8 @@ void FeedReaderConfig::load()
std::string proxyAddress;
uint16_t proxyPort;
whileBlocking(ui->useProxyCheckBox)->setChecked(rsFeedReader->getStandardProxy(proxyAddress, proxyPort));
- whileBlocking(ui->proxyWidget)->setAddress(QString::fromUtf8(proxyAddress.c_str()));
- whileBlocking(ui->proxyWidget)->setPort(proxyPort);
+ whileBlocking(ui->proxyAddressLineEdit)->setText(QString::fromUtf8(proxyAddress.c_str()));
+ whileBlocking(ui->proxyPortSpinBox)->setValue(proxyPort);
loaded = true;
@@ -85,10 +87,11 @@ void FeedReaderConfig::useProxyToggled()
{
bool enabled = ui->useProxyCheckBox->isChecked();
- ui->proxyWidget->setEnabled(enabled);
+ ui->proxyAddressLineEdit->setEnabled(enabled);
+ ui->proxyPortSpinBox->setEnabled(enabled);
}
void FeedReaderConfig::updateProxy()
{
- rsFeedReader->setStandardProxy(ui->useProxyCheckBox->isChecked(), ui->proxyWidget->address().toUtf8().constData(), ui->proxyWidget->port());
+ rsFeedReader->setStandardProxy(ui->useProxyCheckBox->isChecked(), ui->proxyAddressLineEdit->text().toUtf8().constData(), ui->proxyPortSpinBox->value());
}
diff --git a/plugins/FeedReader/gui/FeedReaderConfig.ui b/plugins/FeedReader/gui/FeedReaderConfig.ui
index 18fa29a42..8928dc85e 100644
--- a/plugins/FeedReader/gui/FeedReaderConfig.ui
+++ b/plugins/FeedReader/gui/FeedReaderConfig.ui
@@ -77,16 +77,37 @@
Proxy
-
- -
+
+ -
Use proxy
- -
-
+ -
+
+
+ Server
+
+
+
+ -
+
+
+ -
+
+
+ 65535
+
+
+
+ -
+
+
+ :
+
+
@@ -136,19 +157,12 @@
-
-
- ProxyWidget
- QWidget
-
- 1
-
-
updateIntervalSpinBox
storageTimeSpinBox
useProxyCheckBox
- proxyWidget
+ proxyAddressLineEdit
+ proxyPortSpinBox
saveInBackgroundCheckBox
setMsgToReadOnActivate
openAllInNewTabCheckBox
diff --git a/plugins/FeedReader/gui/FeedReaderDialog.cpp b/plugins/FeedReader/gui/FeedReaderDialog.cpp
index 87db9cf9c..08f390a09 100644
--- a/plugins/FeedReader/gui/FeedReaderDialog.cpp
+++ b/plugins/FeedReader/gui/FeedReaderDialog.cpp
@@ -129,8 +129,6 @@ FeedReaderDialog::FeedReaderDialog(RsFeedReader *feedReader, FeedReaderNotify *n
settingsChanged();
feedTreeItemActivated(NULL);
-
- mFontSizeHandler.registerFontSize(ui->feedTreeWidget);
}
FeedReaderDialog::~FeedReaderDialog()
diff --git a/plugins/FeedReader/gui/FeedReaderDialog.h b/plugins/FeedReader/gui/FeedReaderDialog.h
index a9672bc76..12e11ee7f 100644
--- a/plugins/FeedReader/gui/FeedReaderDialog.h
+++ b/plugins/FeedReader/gui/FeedReaderDialog.h
@@ -23,7 +23,6 @@
#include
#include "interface/rsFeedReader.h"
-#include "util/FontSizeHandler.h"
namespace Ui {
class FeedReaderDialog;
@@ -99,8 +98,6 @@ private:
RsFeedReader *mFeedReader;
FeedReaderNotify *mNotify;
- FontSizeHandler mFontSizeHandler;
-
/** Qt Designer generated object */
Ui::FeedReaderDialog *ui;
};
diff --git a/plugins/FeedReader/gui/FeedReaderDialog.ui b/plugins/FeedReader/gui/FeedReaderDialog.ui
index 440bb7736..b6b004d69 100644
--- a/plugins/FeedReader/gui/FeedReaderDialog.ui
+++ b/plugins/FeedReader/gui/FeedReaderDialog.ui
@@ -57,10 +57,10 @@
-
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
diff --git a/plugins/FeedReader/gui/FeedReaderMessageWidget.cpp b/plugins/FeedReader/gui/FeedReaderMessageWidget.cpp
index ec0e3d0e2..59f72103c 100644
--- a/plugins/FeedReader/gui/FeedReaderMessageWidget.cpp
+++ b/plugins/FeedReader/gui/FeedReaderMessageWidget.cpp
@@ -154,8 +154,6 @@ FeedReaderMessageWidget::FeedReaderMessageWidget(uint32_t feedId, RsFeedReader *
ui->msgTreeWidget->installEventFilter(this);
setFeedId(feedId);
-
- mFontSizeHandler.registerFontSize(ui->msgTreeWidget);
}
FeedReaderMessageWidget::~FeedReaderMessageWidget()
diff --git a/plugins/FeedReader/gui/FeedReaderMessageWidget.h b/plugins/FeedReader/gui/FeedReaderMessageWidget.h
index 40f16e29f..1223b3b4e 100644
--- a/plugins/FeedReader/gui/FeedReaderMessageWidget.h
+++ b/plugins/FeedReader/gui/FeedReaderMessageWidget.h
@@ -24,7 +24,6 @@
#include
#include "interface/rsFeedReader.h"
-#include "util/FontSizeHandler.h"
namespace Ui {
class FeedReaderMessageWidget;
@@ -108,8 +107,6 @@ private:
RsFeedReader *mFeedReader;
FeedReaderNotify *mNotify;
- FontSizeHandler mFontSizeHandler;
-
Ui::FeedReaderMessageWidget *ui;
};
diff --git a/plugins/FeedReader/gui/ProxyWidget.cpp b/plugins/FeedReader/gui/ProxyWidget.cpp
deleted file mode 100644
index eeb0c5256..000000000
--- a/plugins/FeedReader/gui/ProxyWidget.cpp
+++ /dev/null
@@ -1,142 +0,0 @@
-#include "ProxyWidget.h"
-#include "ui_ProxyWidget.h"
-
-ProxyWidget::ProxyWidget(QWidget *parent)
- : QWidget(parent)
- , ui(new Ui::ProxyWidget)
-{
- ui->setupUi(this);
-
- /* Connect signals */
- connectUi(true);
- connect(ui->portSpinBox, (void(QSpinBox::*)(int))&QSpinBox::valueChanged, this, &ProxyWidget::changed);
-
- /* Initialize types */
- ui->schemeComboBox->addItem("", "");
- ui->schemeComboBox->addItem("HTTP", "http://");
- ui->schemeComboBox->setItemData(ui->schemeComboBox->count() - 1, tr("HTTP Proxy."), Qt::ToolTipRole);
- ui->schemeComboBox->addItem("HTTPS", "https://");
- ui->schemeComboBox->setItemData(ui->schemeComboBox->count() - 1, tr("HTTPS Proxy."), Qt::ToolTipRole);
- ui->schemeComboBox->addItem("SOCKS4", "socks4://");
- ui->schemeComboBox->setItemData(ui->schemeComboBox->count() - 1, tr("SOCKS4 Proxy."), Qt::ToolTipRole);
- ui->schemeComboBox->addItem("SOCKS4a", "socks4a://");
- ui->schemeComboBox->setItemData(ui->schemeComboBox->count() - 1, tr("SOCKS4a Proxy. Proxy resolves URL hostname."), Qt::ToolTipRole);
- ui->schemeComboBox->addItem("SOCKS5", "socks5://");
- ui->schemeComboBox->setItemData(ui->schemeComboBox->count() - 1, tr("SOCKS5 Proxy."), Qt::ToolTipRole);
- ui->schemeComboBox->addItem("SOCKS5h", "socks5h://");
- ui->schemeComboBox->setItemData(ui->schemeComboBox->count() - 1, tr("SOCKS5 Proxy. Proxy resolves URL hostname."), Qt::ToolTipRole);
-}
-
-ProxyWidget::~ProxyWidget()
-{
- delete ui;
-}
-
-void ProxyWidget::connectUi(bool doConnect)
-{
- if (doConnect) {
- if (!mAddressConnection) {
- mAddressConnection = connect(ui->addressLineEdit, &QLineEdit::textChanged, this, &ProxyWidget::addressChanged);
- }
- if (!mSchemeConnection) {
- mSchemeConnection = connect(ui->schemeComboBox, (void(QComboBox::*)(int))&QComboBox::currentIndexChanged, this, &ProxyWidget::changed);
- }
- } else {
- if (mAddressConnection) {
- disconnect(mAddressConnection);
- }
- if (mSchemeConnection) {
- disconnect(mSchemeConnection);
- }
- }
-}
-
-QString ProxyWidget::address()
-{
- QString host = ui->addressLineEdit->text();
- if (host.isEmpty()) {
- return "";
- }
-
- QString value;
-
- QString scheme = ui->schemeComboBox->currentData().toString();
- if (!scheme.isEmpty()) {
- value = scheme;
- }
-
- value += ui->addressLineEdit->text();
-
- return value;
-}
-
-void ProxyWidget::setAddress(const QString &value)
-{
- int schemeIndex;
- QString host;
-
- splitAddress(value, schemeIndex, host);
-
- connectUi(false);
- ui->schemeComboBox->setCurrentIndex(schemeIndex);
- ui->addressLineEdit->setText(host);
- connectUi(true);
-}
-
-int ProxyWidget::port()
-{
- return ui->portSpinBox->value();
-}
-
-void ProxyWidget::setPort(int value)
-{
- ui->portSpinBox->setValue(value);
-}
-
-void ProxyWidget::addressChanged(const QString &value)
-{
- int schemeIndex;
- QString host;
-
- splitAddress(value, schemeIndex, host);
-
- connectUi(false);
- ui->schemeComboBox->setCurrentIndex(schemeIndex);
- if (host != ui->addressLineEdit->text()) {
- ui->addressLineEdit->setText(host);
- }
- connectUi(true);
-
- emit changed();
-}
-
-void ProxyWidget::splitAddress(const QString &value, int &schemeIndex, QString &host)
-{
- if (value.isEmpty()) {
- schemeIndex = ui->schemeComboBox->currentIndex();
- host = value;
- return;
- }
-
- QString scheme;
- int index = value.indexOf("://");
- if (index >= 0) {
- scheme = value.left(index + 3);
- host = value.mid(index + 3);
- } else {
- if (ui->schemeComboBox->currentIndex() == 0) {
- // Default to HTTP
- scheme = "http://";
- } else {
- scheme = ui->schemeComboBox->currentData().toString();
- }
- host = value;
- }
-
- schemeIndex = ui->schemeComboBox->findData(scheme);
- if (schemeIndex < 0) {
- /* Unknown scheme */
- schemeIndex = 0;
- host = value;
- }
-}
diff --git a/plugins/FeedReader/gui/ProxyWidget.h b/plugins/FeedReader/gui/ProxyWidget.h
deleted file mode 100644
index d1fdac315..000000000
--- a/plugins/FeedReader/gui/ProxyWidget.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef PROXYWIDGET_H
-#define PROXYWIDGET_H
-
-#include
-
-namespace Ui {
-class ProxyWidget;
-}
-
-class ProxyWidget : public QWidget
-{
- Q_OBJECT
-
-public:
- explicit ProxyWidget(QWidget *parent = nullptr);
- ~ProxyWidget();
-
- QString address();
- void setAddress(const QString &value);
-
- int port();
- void setPort(int value);
-
-Q_SIGNALS:
- void changed();
-
-private Q_SLOTS:
- void addressChanged(const QString &value);
-
-private:
- void connectUi(bool doConnect);
- void splitAddress(const QString &value, int &schemeIndex, QString &host);
-
-private:
- Ui::ProxyWidget *ui;
- QMetaObject::Connection mAddressConnection;
- QMetaObject::Connection mSchemeConnection;
-};
-
-#endif // PROXYWIDGET_H
diff --git a/plugins/FeedReader/gui/ProxyWidget.ui b/plugins/FeedReader/gui/ProxyWidget.ui
deleted file mode 100644
index 0671cebc3..000000000
--- a/plugins/FeedReader/gui/ProxyWidget.ui
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
- ProxyWidget
-
-
-
- 0
- 0
- 400
- 22
-
-
-
-
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
- -
-
-
- -
-
-
- -
-
-
- :
-
-
-
- -
-
-
- 65535
-
-
-
-
-
-
-
-
diff --git a/plugins/FeedReader/lang/FeedReader_en.ts b/plugins/FeedReader/lang/FeedReader_en.ts
index 2fea9589e..707c8cec9 100644
--- a/plugins/FeedReader/lang/FeedReader_en.ts
+++ b/plugins/FeedReader/lang/FeedReader_en.ts
@@ -9,7 +9,7 @@
-
+
Board
@@ -34,7 +34,7 @@
-
+
Authentication (not yet supported)
@@ -59,7 +59,7 @@
-
+
Update interval
@@ -89,7 +89,7 @@
-
+
Storage time
@@ -114,7 +114,17 @@
-
+
+ Server
+
+
+
+
+ :
+
+
+
+
Type
@@ -189,7 +199,7 @@
-
+
Edit feed
@@ -254,7 +264,17 @@
-
+
+ Server
+
+
+
+
+ :
+
+
+
+
Misc
@@ -297,12 +317,12 @@
-
+
Message Folders
-
+
New
@@ -352,7 +372,7 @@
-
+
Add new folder
@@ -515,7 +535,7 @@
-
+
Title
@@ -531,11 +551,6 @@
Author
-
-
- Copy Link Location
-
-
Search Title
@@ -552,7 +567,7 @@
-
+
Open link in browser
@@ -562,7 +577,7 @@
-
+
The messages will be added to the forum
@@ -622,7 +637,7 @@
-
+
Hide
@@ -942,37 +957,4 @@
-
- ProxyWidget
-
-
- HTTP Proxy.
-
-
-
-
- HTTPS Proxy.
-
-
-
-
- SOCKS4 Proxy.
-
-
-
-
- SOCKS4a Proxy. Proxy resolves URL hostname.
-
-
-
-
- SOCKS5 Proxy.
-
-
-
-
- SOCKS5 Proxy. Proxy resolves URL hostname.
-
-
-
diff --git a/plugins/FeedReader/services/p3FeedReaderThread.cc b/plugins/FeedReader/services/p3FeedReaderThread.cc
index 110d051cf..845b5c82b 100644
--- a/plugins/FeedReader/services/p3FeedReaderThread.cc
+++ b/plugins/FeedReader/services/p3FeedReaderThread.cc
@@ -848,22 +848,6 @@ RsFeedReaderErrorState p3FeedReaderThread::process(const RsFeedReaderFeed &feed,
RsFeedReaderErrorState result = RS_FEED_ERRORSTATE_OK;
- time_t minimumPubDate = 0;
- if (feed.lastUpdate == 0) {
- // Get all items on first scan
- } else {
- // Get storage time
- uint32_t storageTime = 0;
- if (feed.flag & RS_FEED_FLAG_STANDARD_STORAGE_TIME) {
- storageTime = mFeedReader->getStandardStorageTime();
- } else {
- storageTime = feed.storageTime;
- }
- if (storageTime > 0) {
- minimumPubDate = time(NULL) - storageTime;
- }
- }
-
XMLWrapper xml;
if (xml.readXML(feed.content.c_str())) {
xmlNodePtr root = xml.getRootElement();
@@ -1022,13 +1006,6 @@ RsFeedReaderErrorState p3FeedReaderThread::process(const RsFeedReaderFeed &feed,
}
}
- if (minimumPubDate) {
- if (item->pubDate < minimumPubDate) {
- // pubDate is less than storage time, don't add as new item
- continue;
- }
- }
-
entries.push_back(item);
}
} else {
@@ -1120,7 +1097,7 @@ RsFeedReaderErrorState p3FeedReaderThread::processMsg(const RsFeedReaderFeed &fe
std::string url;
if (feed.flag & RS_FEED_FLAG_SAVE_COMPLETE_PAGE) {
#ifdef FEEDREADER_DEBUG
- std::cerr << "p3FeedReaderThread::processMsg - feed " << feed.feedId << " (" << feed.name << ") download page " << msg->link << std::endl;
+ std::cerr << "p3FeedReaderThread::processHTML - feed " << feed.feedId << " (" << feed.name << ") download page " << msg->link << std::endl;
#endif
std::string content;
CURLWrapper CURL(proxy);
@@ -1157,7 +1134,7 @@ RsFeedReaderErrorState p3FeedReaderThread::processMsg(const RsFeedReaderFeed &fe
if (result != RS_FEED_ERRORSTATE_OK) {
#ifdef FEEDREADER_DEBUG
- std::cerr << "p3FeedReaderThread::processMsg - feed " << feed.feedId << " (" << feed.name << ") cannot download page, CURLCode = " << code << ", error = " << errorString << std::endl;
+ std::cerr << "p3FeedReaderThread::processHTML - feed " << feed.feedId << " (" << feed.name << ") cannot download page, CURLCode = " << code << ", error = " << errorString << std::endl;
#endif
return result;
}
@@ -1303,7 +1280,7 @@ RsFeedReaderErrorState p3FeedReaderThread::processMsg(const RsFeedReaderFeed &fe
if (!src.empty()) {
/* download image */
#ifdef FEEDREADER_DEBUG
- std::cerr << "p3FeedReaderThread::processMsg - feed " << feed.feedId << " (" << feed.name << ") download image " << src << std::endl;
+ std::cerr << "p3FeedReaderThread::processHTML - feed " << feed.feedId << " (" << feed.name << ") download image " << src << std::endl;
#endif
std::vector data;
CURLWrapper CURL(proxy);
@@ -1371,7 +1348,7 @@ RsFeedReaderErrorState p3FeedReaderThread::processMsg(const RsFeedReaderFeed &fe
if (!html.saveHTML(msg->postedDescriptionWithoutFirstImage)) {
errorString = html.lastError();
#ifdef FEEDREADER_DEBUG
- std::cerr << "p3FeedReaderThread::processMsg - feed " << feed.feedId << " (" << feed.name << ") cannot dump html" << std::endl;
+ std::cerr << "p3FeedReaderThread::processHTML - feed " << feed.feedId << " (" << feed.name << ") cannot dump html" << std::endl;
std::cerr << " Error: " << errorString << std::endl;
#endif
result = RS_FEED_ERRORSTATE_PROCESS_INTERNAL_ERROR;
@@ -1380,7 +1357,7 @@ RsFeedReaderErrorState p3FeedReaderThread::processMsg(const RsFeedReaderFeed &fe
} else {
errorString = html.lastError();
#ifdef FEEDREADER_DEBUG
- std::cerr << "p3FeedReaderThread::processMsg - feed " << feed.feedId << " (" << feed.name << ") cannot dump html" << std::endl;
+ std::cerr << "p3FeedReaderThread::processHTML - feed " << feed.feedId << " (" << feed.name << ") cannot dump html" << std::endl;
std::cerr << " Error: " << errorString << std::endl;
#endif
result = RS_FEED_ERRORSTATE_PROCESS_INTERNAL_ERROR;
@@ -1389,14 +1366,14 @@ RsFeedReaderErrorState p3FeedReaderThread::processMsg(const RsFeedReaderFeed &fe
}
} else {
#ifdef FEEDREADER_DEBUG
- std::cerr << "p3FeedReaderThread::processMsg - feed " << feed.feedId << " (" << feed.name << ") no root element" << std::endl;
+ std::cerr << "p3FeedReaderThread::processHTML - feed " << feed.feedId << " (" << feed.name << ") no root element" << std::endl;
#endif
result = RS_FEED_ERRORSTATE_PROCESS_HTML_ERROR;
}
} else {
errorString = html.lastError();
#ifdef FEEDREADER_DEBUG
- std::cerr << "p3FeedReaderThread::processMsg - feed " << feed.feedId << " (" << feed.name << ") cannot read html" << std::endl;
+ std::cerr << "p3FeedReaderThread::processHTML - feed " << feed.feedId << " (" << feed.name << ") cannot read html" << std::endl;
std::cerr << " Error: " << errorString << std::endl;
#endif
result = RS_FEED_ERRORSTATE_PROCESS_HTML_ERROR;
diff --git a/plugins/VOIP/gui/QVideoDevice.cpp b/plugins/VOIP/gui/QVideoDevice.cpp
index fb81b84e2..51e3a83bf 100644
--- a/plugins/VOIP/gui/QVideoDevice.cpp
+++ b/plugins/VOIP/gui/QVideoDevice.cpp
@@ -37,7 +37,6 @@ QVideoInputDevice::QVideoInputDevice(QWidget *parent)
_capture_device = NULL ;
_video_processor = NULL ;
_echo_output_device = NULL ;
- _image_capture = NULL;
}
QVideoInputDevice::~QVideoInputDevice()
diff --git a/retroshare-friendserver/src/friendserver.cc b/retroshare-friendserver/src/friendserver.cc
index 3c80bba83..19c286256 100644
--- a/retroshare-friendserver/src/friendserver.cc
+++ b/retroshare-friendserver/src/friendserver.cc
@@ -8,11 +8,7 @@
#include "pgp/pgpkeyutil.h"
#include "pgp/rscertificate.h"
-#ifdef USE_OPENPGPSDK
#include "pgp/openpgpsdkhandler.h"
-#else
-#include "pgp/rnppgphandler.h"
-#endif
#include "friendserver.h"
#include "friend_server/fsitem.h"
@@ -397,11 +393,7 @@ FriendServer::FriendServer(const std::string& base_dir,const std::string& listen
std::string pgp_private_keyring_path = RsDirUtil::makePath(base_dir,"pgp_private_keyring") ; // not used.
std::string pgp_trustdb_path = RsDirUtil::makePath(base_dir,"pgp_trustdb") ; // not used.
-#ifdef USE_OPENPGPSDK
mPgpHandler = new OpenPGPSDKHandler(pgp_public_keyring_path,pgp_private_keyring_path,pgp_trustdb_path,pgp_lock_path);
-#else
- mPgpHandler = new RNPPGPHandler(pgp_public_keyring_path,pgp_private_keyring_path,pgp_trustdb_path,pgp_lock_path);
-#endif
// Random bias. Should be cryptographically safe.
diff --git a/retroshare-gui/src/README.txt b/retroshare-gui/src/README.txt
index 231d16b23..7f7f35c8e 100644
--- a/retroshare-gui/src/README.txt
+++ b/retroshare-gui/src/README.txt
@@ -2,14 +2,17 @@
README for RetroShare
=======================================================================================
-RetroShare web site . . . . https://retroshare.cc/
+RetroShare web site . . . . http://retroshare.net/index.html
Developer's blog . . . . . https://retroshareteam.wordpress.com
-Documentation . . . . . . . https://retrosharedocs.readthedocs.io/en/latest/
+Documentation . . . . . . . https://retroshare.readthedocs.io/en/latest/
+Support . . . . . . . . . . http://retroshare.net/support.html
+Forums . . . . . . . . . . http://retroshare.sourceforge.net/forum/
Wiki . . . . . . . . . . . https://github.com/RetroShare/documentation/wiki
+Old developers site . . . . http://retroshare.sourceforge.net/wiki/index.php/Developers_Corner
Project site . . . . . . . https://github.com/RetroShare/RetroShare
-Related projects/plugins . .https://github.com/RetroShare
+Relted projects/plugins . . https://github.com/RetroShare
-Contact: . . . . . . . . . retroshare.project@gmail.com
+Contact: . . . . . . . . . retroshare@lunamutt.com ,defnax@users.sourceforge.net
=========================================================================================
Compiling RetroShare
@@ -19,9 +22,9 @@ Build Scripts are avaible on GIT:
https://github.com/RetroShare/RetroShare/tree/master/build_scripts
You can find here instructions howto compile RetroShare:
-https://retrosharedocs.readthedocs.io/en/latest/developer/compilation/
+https://retroshare.readthedocs.io/en/latest/developer/compilation/
-You can go on over to our forum or chat room when you have trouble with compiling:
+You can go on over to our forum or chat lobby when you have trouble with compiling:
retroshare://forum?name=Developers%20Discussions&id=8fd22bd8f99754461e7ba1ca8a727995
retroshare://chat_room?name=Retroshare%20Devel%20%28signed%29&id=L68DB0A1E09BDA3A5
-
+http://retroshare.sourceforge.net/forum/
diff --git a/retroshare-gui/src/gui/AboutWidget.cpp b/retroshare-gui/src/gui/AboutWidget.cpp
index 1c4ae6827..b468550b1 100644
--- a/retroshare-gui/src/gui/AboutWidget.cpp
+++ b/retroshare-gui/src/gui/AboutWidget.cpp
@@ -142,7 +142,7 @@ void AboutWidget::updateTitle()
{
if (tWidget == NULL)
{
- setWindowTitle(QString("%1 %2").arg(tr("About RetroShare"), RsApplication::retroshareVersion(true)));
+ setWindowTitle(QString("%1 %2").arg(tr("About RetroShare"), Rshare::retroshareVersion(true)));
}
else
{
@@ -228,7 +228,7 @@ void AWidget::initImages()
#ifdef RS_ONLYHIDDENNODE
p.drawText(QPointF(10, 50), QString("%1 : %2 (With embedded Tor)").arg(tr("Retroshare version"), Rshare::retroshareVersion(true)));
#else
- p.drawText(QPointF(10, 50), QString("%1 : %2").arg(tr("Retroshare version"), RsApplication::retroshareVersion(true)));
+ p.drawText(QPointF(10, 50), QString("%1 : %2").arg(tr("Retroshare version"), Rshare::retroshareVersion(true)));
#endif
/* Draw Qt's version number */
@@ -936,7 +936,7 @@ void AboutWidget::on_copy_button_clicked()
{
QString verInfo;
QString rsVerString = "RetroShare Version: ";
- rsVerString+=RsApplication::retroshareVersion(true);
+ rsVerString+=Rshare::retroshareVersion(true);
verInfo+=rsVerString;
#ifdef RS_ONLYHIDDENNODE
verInfo+=" " + tr("Only Hidden Node");
diff --git a/retroshare-gui/src/gui/ChatLobbyWidget.cpp b/retroshare-gui/src/gui/ChatLobbyWidget.cpp
index 60ed255a8..0b5350110 100644
--- a/retroshare-gui/src/gui/ChatLobbyWidget.cpp
+++ b/retroshare-gui/src/gui/ChatLobbyWidget.cpp
@@ -143,28 +143,28 @@ ChatLobbyWidget::ChatLobbyWidget(QWidget *parent, Qt::WindowFlags flags)
QHeaderView_setSectionResizeModeColumn(header, COLUMN_TOPIC, QHeaderView::Interactive);
privateSubLobbyItem = new RSTreeWidgetItem(compareRole, TYPE_FOLDER);
- privateSubLobbyItem->setText(COLUMN_NAME, tr("Private Subscribed"));
+ privateSubLobbyItem->setText(COLUMN_NAME, tr("Private Subscribed chat rooms"));
privateSubLobbyItem->setData(COLUMN_NAME, ROLE_SORT, "1");
// privateLobbyItem->setIcon(COLUMN_NAME, QIcon(IMAGE_PRIVATE));
privateSubLobbyItem->setData(COLUMN_DATA, ROLE_PRIVACYLEVEL, CHAT_LOBBY_PRIVACY_LEVEL_PRIVATE);
ui.lobbyTreeWidget->insertTopLevelItem(0, privateSubLobbyItem);
publicSubLobbyItem = new RSTreeWidgetItem(compareRole, TYPE_FOLDER);
- publicSubLobbyItem->setText(COLUMN_NAME, tr("Public Subscribed"));
+ publicSubLobbyItem->setText(COLUMN_NAME, tr("Public Subscribed chat rooms"));
publicSubLobbyItem->setData(COLUMN_NAME, ROLE_SORT, "2");
// publicLobbyItem->setIcon(COLUMN_NAME, QIcon(IMAGE_PUBLIC));
publicSubLobbyItem->setData(COLUMN_DATA, ROLE_PRIVACYLEVEL, CHAT_LOBBY_PRIVACY_LEVEL_PUBLIC);
ui.lobbyTreeWidget->insertTopLevelItem(1, publicSubLobbyItem);
privateLobbyItem = new RSTreeWidgetItem(compareRole, TYPE_FOLDER);
- privateLobbyItem->setText(COLUMN_NAME, tr("Private"));
+ privateLobbyItem->setText(COLUMN_NAME, tr("Private chat rooms"));
privateLobbyItem->setData(COLUMN_NAME, ROLE_SORT, "3");
// privateLobbyItem->setIcon(COLUMN_NAME, QIcon(IMAGE_PRIVATE));
privateLobbyItem->setData(COLUMN_DATA, ROLE_PRIVACYLEVEL, CHAT_LOBBY_PRIVACY_LEVEL_PRIVATE);
ui.lobbyTreeWidget->insertTopLevelItem(2, privateLobbyItem);
publicLobbyItem = new RSTreeWidgetItem(compareRole, TYPE_FOLDER);
- publicLobbyItem->setText(COLUMN_NAME, tr("Public"));
+ publicLobbyItem->setText(COLUMN_NAME, tr("Public chat rooms"));
publicLobbyItem->setData(COLUMN_NAME, ROLE_SORT, "4");
// publicLobbyItem->setIcon(COLUMN_NAME, QIcon(IMAGE_PUBLIC));
publicLobbyItem->setData(COLUMN_DATA, ROLE_PRIVACYLEVEL, CHAT_LOBBY_PRIVACY_LEVEL_PUBLIC);
@@ -230,8 +230,6 @@ ChatLobbyWidget::ChatLobbyWidget(QWidget *parent, Qt::WindowFlags flags)
int ltwH = misc::getFontSizeFactor("LobbyTreeWidget", 1.5).height();
ui.lobbyTreeWidget->setIconSize(QSize(ltwH,ltwH));
-
- mFontSizeHandler.registerFontSize(ui.lobbyTreeWidget);
}
ChatLobbyWidget::~ChatLobbyWidget()
@@ -422,7 +420,7 @@ static void updateItem(QTreeWidget *treeWidget, QTreeWidgetItem *item, ChatLobby
if(lobby_flags & RS_CHAT_LOBBY_FLAGS_PGP_SIGNED)
{
tooltipstr += QObject::tr("\nSecurity: no anonymous IDs") ;
- QColor foreground = QColor(16, 157, 0); // green
+ QColor foreground = QColor(0, 128, 0); // green
for (int column = 0; column < COLUMN_COUNT; ++column)
item->setData(column, Qt::ForegroundRole, foreground);
}
@@ -723,9 +721,9 @@ void ChatLobbyWidget::updateDisplay()
}
}
publicSubLobbyItem->setHidden(publicSubLobbyItem->childCount()==0);
- publicSubLobbyItem->setText(COLUMN_NAME, tr("Public Subscribed")+ QString(" (") + QString::number(publicSubLobbyItem->childCount())+QString(")"));
+ publicSubLobbyItem->setText(COLUMN_NAME, tr("Public Subscribed chat rooms")+ QString(" (") + QString::number(publicSubLobbyItem->childCount())+QString(")"));
privateSubLobbyItem->setHidden(privateSubLobbyItem->childCount()==0);
- publicLobbyItem->setText(COLUMN_NAME, tr("Public")+ " (" + QString::number(publicLobbyItem->childCount())+QString(")"));
+ publicLobbyItem->setText(COLUMN_NAME, tr("Public chat rooms")+ " (" + QString::number(publicLobbyItem->childCount())+QString(")"));
}
void ChatLobbyWidget::createChatLobby()
diff --git a/retroshare-gui/src/gui/ChatLobbyWidget.h b/retroshare-gui/src/gui/ChatLobbyWidget.h
index 424780dac..a5055788e 100644
--- a/retroshare-gui/src/gui/ChatLobbyWidget.h
+++ b/retroshare-gui/src/gui/ChatLobbyWidget.h
@@ -25,7 +25,6 @@
#include "chat/ChatLobbyUserNotify.h"
#include "gui/gxs/GxsIdChooser.h"
-#include "util/FontSizeHandler.h"
#include
@@ -147,8 +146,6 @@ private:
QAbstractButton* myInviteYesButton;
GxsIdChooser* myInviteIdChooser;
- FontSizeHandler mFontSizeHandler;
-
/* UI - from Designer */
Ui::ChatLobbyWidget ui;
};
diff --git a/retroshare-gui/src/gui/ChatLobbyWidget.ui b/retroshare-gui/src/gui/ChatLobbyWidget.ui
index b2f711b72..8f8e8f29d 100644
--- a/retroshare-gui/src/gui/ChatLobbyWidget.ui
+++ b/retroshare-gui/src/gui/ChatLobbyWidget.ui
@@ -73,7 +73,7 @@
- 12
+ 12
75
true
@@ -191,6 +191,11 @@
-
+
+
+ 11
+
+
16
@@ -459,7 +464,7 @@
LineEditClear
QLineEdit
- gui/common/LineEditClear.h
+ gui/common/LineEditClear.h
RSTreeWidget
diff --git a/retroshare-gui/src/gui/FileTransfer/DLListDelegate.cpp b/retroshare-gui/src/gui/FileTransfer/DLListDelegate.cpp
old mode 100755
new mode 100644
index 319c284d5..3fc982012
--- a/retroshare-gui/src/gui/FileTransfer/DLListDelegate.cpp
+++ b/retroshare-gui/src/gui/FileTransfer/DLListDelegate.cpp
@@ -102,7 +102,7 @@ void DLListDelegate::paint(QPainter * painter, const QStyleOptionViewItem & opti
multi *= 1024.0;
}
}
- painter->drawText(option.rect, Qt::AlignRight | Qt::AlignVCenter, temp);
+ painter->drawText(option.rect, Qt::AlignRight, temp);
break;
case COLUMN_REMAINING:
remaining = index.data().toLongLong();
@@ -121,7 +121,7 @@ void DLListDelegate::paint(QPainter * painter, const QStyleOptionViewItem & opti
multi *= 1024.0;
}
}
- painter->drawText(option.rect, Qt::AlignRight | Qt::AlignVCenter, temp);
+ painter->drawText(option.rect, Qt::AlignRight, temp);
break;
case COLUMN_COMPLETED:
completed = index.data().toLongLong();
@@ -140,7 +140,7 @@ void DLListDelegate::paint(QPainter * painter, const QStyleOptionViewItem & opti
multi *= 1024.0;
}
}
- painter->drawText(option.rect, Qt::AlignRight | Qt::AlignVCenter, temp);
+ painter->drawText(option.rect, Qt::AlignRight, temp);
break;
case COLUMN_DLSPEED:
dlspeed = index.data().toDouble();
@@ -151,7 +151,7 @@ void DLListDelegate::paint(QPainter * painter, const QStyleOptionViewItem & opti
temp.sprintf("%.2f", dlspeed/1024.);
temp += " KB/s";
}
- painter->drawText(option.rect, Qt::AlignRight | Qt::AlignVCenter, temp);
+ painter->drawText(option.rect, Qt::AlignRight, temp);
break;
case COLUMN_PROGRESS:
{
@@ -236,7 +236,7 @@ void DLListDelegate::paint(QPainter * painter, const QStyleOptionViewItem & opti
pixmap = qvariant_cast(value).pixmap(option.decorationSize, option.state & QStyle::State_Enabled ? QIcon::Normal : QIcon::Disabled, option.state & QStyle::State_Open ? QIcon::On : QIcon::Off);
pixmapRect = (pixmap.isNull() ? QRect(0, 0, 0, 0): QRect(QPoint(0, 0), option.decorationSize));
if (pixmapRect.isValid()){
- QPoint p = QStyle::alignedRect(option.direction, Qt::AlignLeft | Qt::AlignVCenter, pixmap.size(), option.rect).topLeft();
+ QPoint p = QStyle::alignedRect(option.direction, Qt::AlignLeft, pixmap.size(), option.rect).topLeft();
p.setX( p.x() + pixOffset);
painter->drawPixmap(p, pixmap);
temp = " " + temp;
@@ -247,13 +247,13 @@ void DLListDelegate::paint(QPainter * painter, const QStyleOptionViewItem & opti
pixmap = qvariant_cast(value).pixmap(option.decorationSize, option.state & QStyle::State_Enabled ? QIcon::Normal : QIcon::Disabled, option.state & QStyle::State_Open ? QIcon::On : QIcon::Off);
pixmapRect = (pixmap.isNull() ? QRect(0, 0, 0, 0): QRect(QPoint(0, 0), option.decorationSize));
if (pixmapRect.isValid()){
- QPoint p = QStyle::alignedRect(option.direction, Qt::AlignLeft | Qt::AlignVCenter, pixmap.size(), option.rect).topLeft();
+ QPoint p = QStyle::alignedRect(option.direction, Qt::AlignLeft, pixmap.size(), option.rect).topLeft();
p.setX( p.x() + pixOffset);
painter->drawPixmap(p, pixmap);
temp = " " + temp;
pixOffset += pixmap.size().width();
}
- painter->drawText(option.rect.translated(pixOffset, 0), Qt::AlignLeft | Qt::AlignVCenter, temp);
+ painter->drawText(option.rect.translated(pixOffset, 0), Qt::AlignLeft, temp);
}
break;
case COLUMN_LASTDL:
@@ -279,7 +279,7 @@ QSize DLListDelegate::sizeHint(const QStyleOptionViewItem & option, const QModel
{
float w = QFontMetricsF(option.font).width(index.data(Qt::DisplayRole).toString());
- int S = QFontMetricsF(option.font).height()*1.5 ;
+ int S = QFontMetricsF(option.font).height() ;
return QSize(w,S);
}
diff --git a/retroshare-gui/src/gui/FileTransfer/SearchDialog.cpp b/retroshare-gui/src/gui/FileTransfer/SearchDialog.cpp
index 0af441dd5..832970833 100644
--- a/retroshare-gui/src/gui/FileTransfer/SearchDialog.cpp
+++ b/retroshare-gui/src/gui/FileTransfer/SearchDialog.cpp
@@ -30,7 +30,7 @@
#include "gui/RetroShareLink.h"
#include "retroshare-gui/RsAutoUpdatePage.h"
#include "gui/msgs/MessageComposer.h"
-#include "gui/common/RsCollectionDialog.h"
+#include "gui/common/RsCollection.h"
#include "gui/common/FilesDefs.h"
#include "gui/common/RsUrlHandler.h"
#include "gui/settings/rsharesettings.h"
@@ -38,7 +38,6 @@
#include "gui/common/RSTreeWidgetItem.h"
#include "util/QtVersion.h"
#include "util/qtthreadsutils.h"
-#include "util/misc.h"
#include
#include
@@ -202,6 +201,10 @@ SearchDialog::SearchDialog(QWidget *parent)
ui.searchResultWidget->sortItems(SR_NAME_COL, Qt::AscendingOrder);
+ QFontMetricsF fontMetrics(ui.searchResultWidget->font());
+ int iconHeight = fontMetrics.height() * 1.4;
+ ui.searchResultWidget->setIconSize(QSize(iconHeight, iconHeight));
+
/* Set initial size the splitter */
QList sizes;
sizes << 250 << width(); // Qt calculates the right sizes
@@ -236,8 +239,6 @@ SearchDialog::SearchDialog(QWidget *parent)
RsQThreadUtils::postToObject([=](){ handleEvent_main_thread(event); }, this );
}, mEventHandlerId, RsEventType::FILE_TRANSFER );
- mFontSizeHandler.registerFontSize(ui.searchSummaryWidget);
- mFontSizeHandler.registerFontSize(ui.searchResultWidget, 1.4f);
}
SearchDialog::~SearchDialog()
@@ -324,7 +325,7 @@ void SearchDialog::checkText(const QString& txt)
ui.searchButton->setDisabled(txt.length() < 3);
ui.searchLineFrame->setProperty("valid", (txt.length() >= 3));
ui.searchLineFrame->style()->unpolish(ui.searchLineFrame);
- RsApplication::refreshStyleSheet(ui.searchLineFrame, false);
+ Rshare::refreshStyleSheet(ui.searchLineFrame, false);
}
void SearchDialog::initialiseFileTypeMappings()
@@ -496,23 +497,25 @@ void SearchDialog::collCreate()
int selectedCount = selectedItems.size() ;
QTreeWidgetItem * item ;
- RsFileTree tree;
-
- for (int i = 0; i < selectedCount; ++i)
- {
+ for (int i = 0; i < selectedCount; ++i) {
item = selectedItems.at(i) ;
- if (!item->text(SR_HASH_COL).isEmpty())
- {
+ if (!item->text(SR_HASH_COL).isEmpty()) {
std::string name = item->text(SR_NAME_COL).toUtf8().constData();
RsFileHash hash( item->text(SR_HASH_COL).toStdString() );
uint64_t count = item->text(SR_SIZE_COL).toULongLong();
- tree.addFile(tree.root(),name,hash,count);
+ DirDetails details;
+ details.name = name;
+ details.hash = hash;
+ details.size = count;
+ details.type = DIR_TYPE_FILE;
+
+ dirVec.push_back(details);
}
}
- RsCollectionDialog::openNewCollection(tree);
+ RsCollection(dirVec,RS_FILE_HINTS_LOCAL).openNewColl(this);
}
void SearchDialog::collModif()
@@ -539,8 +542,12 @@ void SearchDialog::collModif()
/* open file with a suitable application */
QFileInfo qinfo;
qinfo.setFile(QString::fromUtf8(path.c_str()));
- if (qinfo.exists() && qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString))
- RsCollectionDialog::openExistingCollection(qinfo.absoluteFilePath());
+ if (qinfo.exists()) {
+ if (qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString)) {
+ RsCollection collection;
+ collection.openColl(qinfo.absoluteFilePath());
+ }//if (qinfo.absoluteFilePath().endsWith(RsCollectionFile::ExtensionString))
+ }//if (qinfo.exists())
}
void SearchDialog::collView()
@@ -567,8 +574,12 @@ void SearchDialog::collView()
/* open file with a suitable application */
QFileInfo qinfo;
qinfo.setFile(QString::fromUtf8(path.c_str()));
- if (qinfo.exists() && qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString))
- RsCollectionDialog::openExistingCollection(qinfo.absoluteFilePath(), true);
+ if (qinfo.exists()) {
+ if (qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString)) {
+ RsCollection collection;
+ collection.openColl(qinfo.absoluteFilePath(), true);
+ }//if (qinfo.absoluteFilePath().endsWith(RsCollectionFile::ExtensionString))
+ }//if (qinfo.exists())
}
void SearchDialog::collOpen()
@@ -586,35 +597,32 @@ void SearchDialog::collOpen()
if (rsFiles->FileDetails(hash, RS_FILE_HINTS_EXTRA | RS_FILE_HINTS_LOCAL
| RS_FILE_HINTS_BROWSABLE | RS_FILE_HINTS_NETWORK_WIDE
- | RS_FILE_HINTS_SPEC_ONLY, info))
- {
+ | RS_FILE_HINTS_SPEC_ONLY, info)) {
+
/* make path for downloaded files */
std::string path;
path = info.path;
/* open file with a suitable application */
QFileInfo qinfo;
- RsCollection::RsCollectionErrorCode err;
qinfo.setFile(QString::fromUtf8(path.c_str()));
- if (qinfo.exists() && qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString))
- RsCollectionDialog::downloadFiles(RsCollection(qinfo.absoluteFilePath(),err));
+ if (qinfo.exists()) {
+ if (qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString)) {
+ RsCollection collection;
+ if (collection.load(qinfo.absoluteFilePath())) {
+ collection.downloadFiles();
+ return;
+ }
+ }
+ }
}
}
}
- QString fileName;
- if (!misc::getOpenFileName(nullptr, RshareSettings::LASTDIR_EXTRAFILE, QApplication::translate("RsCollectionFile", "Open collection file"), QApplication::translate("RsCollectionFile", "Collection files") + " (*." + RsCollection::ExtensionString + ")", fileName))
- return ;
-
- std::cerr << "Got file name: " << fileName.toStdString() << std::endl;
-
- RsCollection::RsCollectionErrorCode err;
- RsCollection collection(fileName, err);
-
- if(err == RsCollection::RsCollectionErrorCode::COLLECTION_NO_ERROR)
- RsCollectionDialog::downloadFiles(collection);
- else
- QMessageBox::information(nullptr,tr("Error open RsCollection file"),RsCollection::errorString(err));
+ RsCollection collection;
+ if (collection.load(this)) {
+ collection.downloadFiles();
+ }//if (collection.load(this))
}
void SearchDialog::downloadDirectory(const QTreeWidgetItem *item, const QString &base)
@@ -898,7 +906,7 @@ void SearchDialog::searchKeywords(const QString& keywords)
if (keywords.length() < 3)
return ;
- QStringList qWords = keywords.split(" ", QtSkipEmptyParts);
+ QStringList qWords = keywords.split(" ", QString::SkipEmptyParts);
std::list words;
QStringListIterator qWordsIter(qWords);
while (qWordsIter.hasNext())
@@ -1040,7 +1048,7 @@ void SearchDialog::insertDirectory(const QString &txt, qulonglong searchId, cons
child->setText(SR_SOURCES_COL, QString::number(1));
child->setData(SR_SOURCES_COL, ROLE_SORT, 1);
- child->setTextAlignment( SR_SOURCES_COL, Qt::AlignRight | Qt::AlignVCenter );
+ child->setTextAlignment( SR_SOURCES_COL, Qt::AlignRight );
child->setText(SR_SEARCH_ID_COL, sid_hexa);
setIconAndType(child, QString::fromUtf8(dir.name.c_str()));
@@ -1065,7 +1073,7 @@ void SearchDialog::insertDirectory(const QString &txt, qulonglong searchId, cons
child->setTextAlignment( SR_SIZE_COL, Qt::AlignRight );
child->setText(SR_SOURCES_COL, QString::number(1));
child->setData(SR_SOURCES_COL, ROLE_SORT, 1);
- child->setTextAlignment( SR_SOURCES_COL, Qt::AlignRight | Qt::AlignVCenter );
+ child->setTextAlignment( SR_SOURCES_COL, Qt::AlignRight );
child->setText(SR_SEARCH_ID_COL, sid_hexa);
child->setText(SR_TYPE_COL, tr("Folder"));
@@ -1134,7 +1142,7 @@ void SearchDialog::insertDirectory(const QString &txt, qulonglong searchId, cons
child->setTextAlignment( SR_SIZE_COL, Qt::AlignRight );
child->setText(SR_SOURCES_COL, QString::number(1));
child->setData(SR_SOURCES_COL, ROLE_SORT, 1);
- child->setTextAlignment( SR_SOURCES_COL, Qt::AlignRight | Qt::AlignVCenter );
+ child->setTextAlignment( SR_SOURCES_COL, Qt::AlignRight );
child->setText(SR_SEARCH_ID_COL, sid_hexa);
child->setText(SR_TYPE_COL, tr("Folder"));
@@ -1236,7 +1244,7 @@ void SearchDialog::insertFile(qulonglong searchId, const FileDetail& file, int s
int friendSource = 0;
int anonymousSource = 0;
QString resultCount = it->text(SR_SOURCES_COL);
- QStringList modifiedResultCount = resultCount.split("/", QtSkipEmptyParts);
+ QStringList modifiedResultCount = resultCount.split("/", QString::SkipEmptyParts);
if(searchType == FRIEND_SEARCH)
{
friendSource = modifiedResultCount.at(0).toInt() + 1;
@@ -1326,11 +1334,9 @@ void SearchDialog::insertFile(qulonglong searchId, const FileDetail& file, int s
item->setText(SR_SIZE_COL, QString::number(file.size));
item->setData(SR_SIZE_COL, ROLE_SORT, (qulonglong) file.size);
- item->setText(SR_AGE_COL, QString::number(file.mtime));
- item->setData(SR_AGE_COL, ROLE_SORT, file.mtime);
+ item->setText(SR_AGE_COL, QString::number(file.mtime));
+ item->setData(SR_AGE_COL, ROLE_SORT, file.mtime);
item->setTextAlignment( SR_SIZE_COL, Qt::AlignRight );
- item->setTextAlignment( SR_AGE_COL, Qt::AlignCenter );
-
int friendSource = 0;
int anonymousSource = 0;
if(searchType == FRIEND_SEARCH)
@@ -1349,7 +1355,7 @@ void SearchDialog::insertFile(qulonglong searchId, const FileDetail& file, int s
item->setText(SR_SOURCES_COL,modifiedResult);
item->setToolTip(SR_SOURCES_COL, tr("Obtained via ")+QString::fromStdString(rsPeers->getPeerName(file.id)) );
item->setData(SR_SOURCES_COL, ROLE_SORT, fltRes);
- item->setTextAlignment( SR_SOURCES_COL, Qt::AlignRight | Qt::AlignVCenter );
+ item->setTextAlignment( SR_SOURCES_COL, Qt::AlignRight );
item->setText(SR_SEARCH_ID_COL, sid_hexa);
QColor foreground;
diff --git a/retroshare-gui/src/gui/FileTransfer/SearchDialog.h b/retroshare-gui/src/gui/FileTransfer/SearchDialog.h
index 0af53662b..8aa7bac64 100644
--- a/retroshare-gui/src/gui/FileTransfer/SearchDialog.h
+++ b/retroshare-gui/src/gui/FileTransfer/SearchDialog.h
@@ -25,7 +25,6 @@
#include "retroshare/rsevents.h"
#include "ui_SearchDialog.h"
#include "retroshare-gui/mainpage.h"
-#include "util/FontSizeHandler.h"
class AdvancedSearchDialog;
class RSTreeWidgetItemCompareRole;
@@ -174,8 +173,6 @@ private:
QAction *collViewAct;
QAction *collOpenAct;
- FontSizeHandler mFontSizeHandler;
-
/** Qt Designer generated object */
Ui::SearchDialog ui;
diff --git a/retroshare-gui/src/gui/FileTransfer/SharedFilesDialog.cpp b/retroshare-gui/src/gui/FileTransfer/SharedFilesDialog.cpp
index 2a8a6b58f..74a7d5744 100644
--- a/retroshare-gui/src/gui/FileTransfer/SharedFilesDialog.cpp
+++ b/retroshare-gui/src/gui/FileTransfer/SharedFilesDialog.cpp
@@ -27,7 +27,7 @@
#include "gui/RetroShareLink.h"
#include "gui/ShareManager.h"
#include "gui/common/PeerDefs.h"
-#include "gui/common/RsCollectionDialog.h"
+#include "gui/common/RsCollection.h"
#include "gui/msgs/MessageComposer.h"
#include "gui/gxschannels/GxsChannelDialog.h"
#include "gui/gxsforums/GxsForumsDialog.h"
@@ -652,7 +652,7 @@ void SharedFilesDialog::copyLinks(const QModelIndexList& lst, bool remote,QList<
QString dir_name = QDir(QString::fromUtf8(details.name.c_str())).dirName();
- RetroShareLink link = RetroShareLink::createFileTree(dir_name,ft->totalFileSize(),ft->numFiles(),QString::fromStdString(ft->toRadix64())) ;
+ RetroShareLink link = RetroShareLink::createFileTree(dir_name,ft->mTotalSize,ft->mTotalFiles,QString::fromStdString(ft->toRadix64())) ;
if(link.valid())
urls.push_back(link) ;
@@ -734,32 +734,7 @@ void SharedFilesDialog::sendLinkTo()
void SharedFilesDialog::collCreate()
{
QModelIndexList lst = getSelected();
-
- std::vector dirVec;
- model->getDirDetailsFromSelect(lst, dirVec);
-
- auto RemoteMode = isRemote();
- FileSearchFlags f = RemoteMode?RS_FILE_HINTS_REMOTE:RS_FILE_HINTS_LOCAL ;
-
- QString dir_name;
-
- if(!RemoteMode)
- {
- if(!dirVec.empty())
- {
- const DirDetails& details = dirVec[0];
- dir_name = QDir(QString::fromUtf8(details.name.c_str())).dirName();
- }
- }
-
- RsFileTree tree;
-
- for(uint32_t i=0;icreateCollectionFile(this, lst);
}
void SharedFilesDialog::collModif()
@@ -784,8 +759,12 @@ void SharedFilesDialog::collModif()
/* open file with a suitable application */
QFileInfo qinfo;
qinfo.setFile(QString::fromUtf8(path.c_str()));
- if (qinfo.exists() && qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString))
- RsCollectionDialog::editExistingCollection(qinfo.absoluteFilePath());
+ if (qinfo.exists()) {
+ if (qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString)) {
+ RsCollection collection;
+ collection.openColl(qinfo.absoluteFilePath());
+ }
+ }
}
void SharedFilesDialog::collView()
@@ -810,8 +789,12 @@ void SharedFilesDialog::collView()
/* open file with a suitable application */
QFileInfo qinfo;
qinfo.setFile(QString::fromUtf8(path.c_str()));
- if (qinfo.exists() && qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString))
- RsCollectionDialog::openExistingCollection(qinfo.absoluteFilePath(), true);
+ if (qinfo.exists()) {
+ if (qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString)) {
+ RsCollection collection;
+ collection.openColl(qinfo.absoluteFilePath(), true);
+ }
+ }
}
void SharedFilesDialog::collOpen()
@@ -838,24 +821,20 @@ void SharedFilesDialog::collOpen()
qinfo.setFile(QString::fromUtf8(path.c_str()));
if (qinfo.exists()) {
if (qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString)) {
-
- RsCollectionDialog::openExistingCollection(qinfo.absoluteFilePath(),true);
+ RsCollection collection;
+ if (collection.load(qinfo.absoluteFilePath())) {
+ collection.downloadFiles();
+ return;
+ }
}
}
}
}
- QString fileName;
- if (!misc::getOpenFileName(nullptr, RshareSettings::LASTDIR_EXTRAFILE, QApplication::translate("RsCollectionFile", "Open collection file"), QApplication::translate("RsCollectionFile", "Collection files") + " (*." + RsCollection::ExtensionString + ")", fileName))
- return ;
-
- std::cerr << "Got file name: " << fileName.toStdString() << std::endl;
-
- RsCollection::RsCollectionErrorCode err;
- RsCollection collection(fileName,err);
-
- if(err == RsCollection::RsCollectionErrorCode::COLLECTION_NO_ERROR)
- RsCollectionDialog::downloadFiles(collection);
+ RsCollection collection;
+ if (collection.load(this)) {
+ collection.downloadFiles();
+ }
}
void LocalSharedFilesDialog::playselectedfiles()
@@ -1166,14 +1145,12 @@ void LocalSharedFilesDialog::spawnCustomPopupMenu( QPoint point )
collViewAct->setEnabled(bIsRsColl);
collOpenAct->setEnabled(true);
- QMenu collectionMenu(tr("Retroshare Collection"), this);
+ QMenu collectionMenu(tr("Collection"), this);
collectionMenu.setIcon(QIcon(IMAGE_LIBRARY));
collectionMenu.addAction(collCreateAct);
-
- if(bIsRsColl)
- collectionMenu.addAction(collModifAct);
- //collectionMenu.addAction(collViewAct);
- //collectionMenu.addAction(collOpenAct);
+ collectionMenu.addAction(collModifAct);
+ collectionMenu.addAction(collViewAct);
+ collectionMenu.addAction(collOpenAct);
switch (type) {
case DIR_TYPE_DIR :
@@ -1619,7 +1596,7 @@ void SharedFilesDialog::FilterItems()
return ;
//FileSearchFlags flags = isRemote()?RS_FILE_HINTS_REMOTE:RS_FILE_HINTS_LOCAL;
- QStringList lst = text.split(" ",QtSkipEmptyParts) ;
+ QStringList lst = text.split(" ",QString::SkipEmptyParts) ;
std::list keywords ;
for(auto it(lst.begin());it!=lst.end();++it)
@@ -1711,16 +1688,12 @@ bool SharedFilesDialog::tree_FilterItem(const QModelIndex &index, const QString
void SharedFilesDialog::updateFontSize()
{
-#if defined(Q_OS_DARWIN)
- int customFontSize = Settings->valueFromGroup("File", "MinimumFontSize", 13).toInt();
-#else
int customFontSize = Settings->valueFromGroup("File", "MinimumFontSize", 11).toInt();
-#endif
QFont newFont = ui.dirTreeView->font();
if (newFont.pointSize() != customFontSize) {
newFont.setPointSize(customFontSize);
QFontMetricsF fontMetrics(newFont);
- int iconHeight = fontMetrics.height()*1.5;
+ int iconHeight = fontMetrics.height();
ui.dirTreeView->setFont(newFont);
ui.dirTreeView->setIconSize(QSize(iconHeight, iconHeight));
}
diff --git a/retroshare-gui/src/gui/FileTransfer/SharedFilesDialog.ui b/retroshare-gui/src/gui/FileTransfer/SharedFilesDialog.ui
index 4c8f8c38b..cd79340dd 100644
--- a/retroshare-gui/src/gui/FileTransfer/SharedFilesDialog.ui
+++ b/retroshare-gui/src/gui/FileTransfer/SharedFilesDialog.ui
@@ -23,10 +23,10 @@
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
@@ -399,8 +399,8 @@ border-image: url(:/images/closepressed.png)
-
+
diff --git a/retroshare-gui/src/gui/FileTransfer/TransfersDialog.cpp b/retroshare-gui/src/gui/FileTransfer/TransfersDialog.cpp
index 3ee120162..6fc45a070 100644
--- a/retroshare-gui/src/gui/FileTransfer/TransfersDialog.cpp
+++ b/retroshare-gui/src/gui/FileTransfer/TransfersDialog.cpp
@@ -24,7 +24,7 @@
#include "gui/SoundManager.h"
#include "gui/RetroShareLink.h"
#include "gui/common/FilesDefs.h"
-#include "gui/common/RsCollectionDialog.h"
+#include "gui/common/RsCollection.h"
#include "gui/common/RSTreeView.h"
#include "gui/common/RsUrlHandler.h"
#include "gui/FileTransfer/DetailsDialog.h"
@@ -1975,7 +1975,7 @@ void TransfersDialog::pasteLink()
for(auto &it : links)
col.merge_in(it.name(),it.size(),RsFileHash(it.hash().toStdString())) ;
- RsCollectionDialog::downloadFiles(col);
+ col.downloadFiles();
}
void TransfersDialog::getDLSelectedItems(std::set *ids, std::set *rows)
@@ -2466,17 +2466,21 @@ void TransfersDialog::collCreate()
std::set::iterator it ;
getDLSelectedItems(&items, NULL);
- RsFileTree tree;
-
for (it = items.begin(); it != items.end(); ++it)
{
FileInfo info;
if (!rsFiles->FileDetails(*it, RS_FILE_HINTS_DOWNLOAD, info)) continue;
- tree.addFile(tree.root(),info.fname,info.hash,info.size);
+ DirDetails details;
+ details.name = info.fname;
+ details.hash = info.hash;
+ details.size = info.size;
+ details.type = DIR_TYPE_FILE;
+
+ dirVec.push_back(details);
}
- RsCollectionDialog::openNewCollection(tree);
+ RsCollection(dirVec,RS_FILE_HINTS_LOCAL).openNewColl(this);
}
void TransfersDialog::collModif()
@@ -2500,8 +2504,12 @@ void TransfersDialog::collModif()
/* open collection */
QFileInfo qinfo;
qinfo.setFile(QString::fromUtf8(path.c_str()));
- if (qinfo.exists() && qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString))
- RsCollectionDialog::openExistingCollection(qinfo.absoluteFilePath());
+ if (qinfo.exists()) {
+ if (qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString)) {
+ RsCollection collection;
+ collection.openColl(qinfo.absoluteFilePath());
+ }
+ }
}
}
@@ -2526,8 +2534,12 @@ void TransfersDialog::collView()
/* open collection */
QFileInfo qinfo;
qinfo.setFile(QString::fromUtf8(path.c_str()));
- if (qinfo.exists() && qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString))
- RsCollectionDialog::openExistingCollection(qinfo.absoluteFilePath(), true);
+ if (qinfo.exists()) {
+ if (qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString)) {
+ RsCollection collection;
+ collection.openColl(qinfo.absoluteFilePath(), true);
+ }
+ }
}
}
@@ -2552,29 +2564,23 @@ void TransfersDialog::collOpen()
/* open file with a suitable application */
QFileInfo qinfo;
qinfo.setFile(QString::fromUtf8(path.c_str()));
- if (qinfo.exists() && qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString))
- {
- RsCollection::RsCollectionErrorCode code;
- RsCollectionDialog::downloadFiles(RsCollection(qinfo.absoluteFilePath(),code));
- return;
- }
+ if (qinfo.exists()) {
+ if (qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString)) {
+ RsCollection collection;
+ if (collection.load(qinfo.absoluteFilePath())) {
+ collection.downloadFiles();
+ return;
+ }
+ }
+ }
}
}
}
- QString fileName;
- if (!misc::getOpenFileName(nullptr, RshareSettings::LASTDIR_EXTRAFILE, QApplication::translate("RsCollectionFile", "Open collection file"), QApplication::translate("RsCollectionFile", "Collection files") + " (*." + RsCollection::ExtensionString + ")", fileName))
- return ;
-
- std::cerr << "Got file name: " << fileName.toStdString() << std::endl;
-
- RsCollection::RsCollectionErrorCode code;
- RsCollection collection(fileName,code);
-
- if(code == RsCollection::RsCollectionErrorCode::COLLECTION_NO_ERROR)
- RsCollectionDialog::downloadFiles(collection);
- else
- QMessageBox::information(nullptr,tr("Error openning collection file"),RsCollection::errorString(code));
+ RsCollection collection;
+ if (collection.load(this)) {
+ collection.downloadFiles();
+ }
}
void TransfersDialog::collAutoOpen(const QString &fileHash)
@@ -2586,18 +2592,21 @@ void TransfersDialog::collAutoOpen(const QString &fileHash)
if (rsFiles->FileDetails(hash, RS_FILE_HINTS_DOWNLOAD, info)) {
/* make path for downloaded files */
- if (info.downloadStatus == FT_STATE_COMPLETE)
- {
+ if (info.downloadStatus == FT_STATE_COMPLETE) {
std::string path;
path = info.path + "/" + info.fname;
/* open file with a suitable application */
QFileInfo qinfo;
qinfo.setFile(QString::fromUtf8(path.c_str()));
- RsCollection::RsCollectionErrorCode err;
-
- if (qinfo.exists() && qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString))
- RsCollectionDialog::downloadFiles(RsCollection(qinfo.absoluteFilePath(),err));
+ if (qinfo.exists()) {
+ if (qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString)) {
+ RsCollection collection;
+ if (collection.load(qinfo.absoluteFilePath(), false)) {
+ collection.autoDownloadFiles();
+ }
+ }
+ }
}
}
}
diff --git a/retroshare-gui/src/gui/FileTransfer/ULListDelegate.cpp b/retroshare-gui/src/gui/FileTransfer/ULListDelegate.cpp
old mode 100755
new mode 100644
index 8bddc5017..6bad045e0
--- a/retroshare-gui/src/gui/FileTransfer/ULListDelegate.cpp
+++ b/retroshare-gui/src/gui/FileTransfer/ULListDelegate.cpp
@@ -101,7 +101,7 @@ void ULListDelegate::paint(QPainter * painter, const QStyleOptionViewItem & opti
multi *= 1024.0;
}
}
- painter->drawText(option.rect, Qt::AlignRight | Qt::AlignVCenter, temp);
+ painter->drawText(option.rect, Qt::AlignRight, temp);
break;
case COLUMN_UTRANSFERRED:
transferred = index.data().toLongLong();
@@ -120,7 +120,7 @@ void ULListDelegate::paint(QPainter * painter, const QStyleOptionViewItem & opti
multi *= 1024.0;
}
}
- painter->drawText(option.rect, Qt::AlignRight | Qt::AlignVCenter, temp);
+ painter->drawText(option.rect, Qt::AlignRight, temp);
break;
case COLUMN_ULSPEED:
ulspeed = index.data().toDouble();
@@ -131,7 +131,7 @@ void ULListDelegate::paint(QPainter * painter, const QStyleOptionViewItem & opti
temp.sprintf("%.2f", ulspeed/1024.);
temp += " KB/s";
}
- painter->drawText(option.rect, Qt::AlignRight | Qt::AlignVCenter, temp);
+ painter->drawText(option.rect, Qt::AlignRight, temp);
break;
case COLUMN_UPROGRESS:
{
@@ -164,10 +164,10 @@ void ULListDelegate::paint(QPainter * painter, const QStyleOptionViewItem & opti
pixmap = qvariant_cast(value).pixmap(option.decorationSize, option.state & QStyle::State_Enabled ? QIcon::Normal : QIcon::Disabled, option.state & QStyle::State_Open ? QIcon::On : QIcon::Off);
pixmapRect = (pixmap.isNull() ? QRect(0, 0, 0, 0): QRect(QPoint(0, 0), option.decorationSize));
if (pixmapRect.isValid()){
- QPoint p = QStyle::alignedRect(option.direction, Qt::AlignLeft | Qt::AlignVCenter, pixmap.size(), option.rect).topLeft();
+ QPoint p = QStyle::alignedRect(option.direction, Qt::AlignLeft, pixmap.size(), option.rect).topLeft();
painter->drawPixmap(p, pixmap);
}
- painter->drawText(option.rect.translated(pixmap.size().width(), 0), Qt::AlignLeft | Qt::AlignVCenter, index.data().toString());
+ painter->drawText(option.rect.translated(pixmap.size().width(), 0), Qt::AlignLeft, index.data().toString());
break;
default:
painter->drawText(option.rect, Qt::AlignCenter, index.data().toString());
@@ -181,7 +181,7 @@ QSize ULListDelegate::sizeHint(const QStyleOptionViewItem & option, const QModel
{
float w = QFontMetricsF(option.font).width(index.data(Qt::DisplayRole).toString());
- int S = QFontMetricsF(option.font).height()*1.5 ;
+ int S = QFontMetricsF(option.font).height() ;
return QSize(w,S);
}
diff --git a/retroshare-gui/src/gui/FriendsDialog.ui b/retroshare-gui/src/gui/FriendsDialog.ui
index a8e8217fc..02408e382 100644
--- a/retroshare-gui/src/gui/FriendsDialog.ui
+++ b/retroshare-gui/src/gui/FriendsDialog.ui
@@ -102,7 +102,7 @@
Qt::NoFocus
-
+
:/icons/help_64.png :/icons/help_64.png
@@ -132,10 +132,10 @@
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
@@ -401,8 +401,8 @@
-
+
diff --git a/retroshare-gui/src/gui/GenCertDialog.cpp b/retroshare-gui/src/gui/GenCertDialog.cpp
index 0f318049d..d3b755f0d 100644
--- a/retroshare-gui/src/gui/GenCertDialog.cpp
+++ b/retroshare-gui/src/gui/GenCertDialog.cpp
@@ -251,7 +251,7 @@ void GenCertDialog::initKeyList()
void GenCertDialog::mouseMoveEvent(QMouseEvent *e)
{
- //std::cerr << "Mouse : " << e->x() << ", " << e->y() << std::endl;
+ std::cerr << "Mouse : " << e->x() << ", " << e->y() << std::endl;
QDialog::mouseMoveEvent(e) ;
}
@@ -649,7 +649,7 @@ void GenCertDialog::genPerson()
{
/* complete the process */
RsInit::LoadPassword(sslPasswd);
- if (RsApplication::loadCertificate(sslId, false)) {
+ if (Rshare::loadCertificate(sslId, false)) {
// Normally we should clear the cached passphrase as soon as possible. However,some other GUI components may still need it at start.
// (csoler) This is really bad: we have to guess that 30 secs will be enough. I have no better way to do this.
diff --git a/retroshare-gui/src/gui/GetStartedDialog.cpp b/retroshare-gui/src/gui/GetStartedDialog.cpp
index 399cc36d7..e3bbd7170 100644
--- a/retroshare-gui/src/gui/GetStartedDialog.cpp
+++ b/retroshare-gui/src/gui/GetStartedDialog.cpp
@@ -421,7 +421,7 @@ void GetStartedDialog::emailSupport()
sysVersion = "Linux";
#endif
#endif
- text += QString("My RetroShare Configuration is: (%1, %2, %3)").arg(RsApplication::retroshareVersion(true)
+ text += QString("My RetroShare Configuration is: (%1, %2, %3)").arg(Rshare::retroshareVersion(true)
, sysVersion
).arg(static_cast::type>(userLevel)) + "\n";
text += "\n";
diff --git a/retroshare-gui/src/gui/HelpDialog.cpp b/retroshare-gui/src/gui/HelpDialog.cpp
index ddaf925d4..cc3f1d407 100644
--- a/retroshare-gui/src/gui/HelpDialog.cpp
+++ b/retroshare-gui/src/gui/HelpDialog.cpp
@@ -80,7 +80,7 @@ HelpDialog::HelpDialog(QWidget *parent) :
ui->thanks->setHtml(in.readAll());
}
- ui->version->setText(RsApplication::retroshareVersion(true));
+ ui->version->setText(Rshare::retroshareVersion(true));
/* Add version numbers of libretroshare */
std::list libraries;
diff --git a/retroshare-gui/src/gui/HomePage.cpp b/retroshare-gui/src/gui/HomePage.cpp
index 9b8213646..ff7622b4b 100644
--- a/retroshare-gui/src/gui/HomePage.cpp
+++ b/retroshare-gui/src/gui/HomePage.cpp
@@ -27,13 +27,11 @@
#include "util/misc.h"
#include "gui/notifyqt.h"
-#include "gui/common/FilesDefs.h"
#include "gui/msgs/MessageComposer.h"
#include "gui/connect/ConnectFriendWizard.h"
#include "gui/connect/ConfCertDialog.h"
#include
#include "gui/connect/FriendRecommendDialog.h"
-#include "settings/rsharesettings.h"
#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
#include
@@ -65,9 +63,6 @@ HomePage::HomePage(QWidget *parent) :
QAction *RecAction = new QAction(QIcon(),tr("Recommend friends to each others"), this);
connect(RecAction, SIGNAL(triggered()), this, SLOT(recommendFriends()));
- QAction *SaveAction = new QAction(QIcon(),tr("Save to File"), this);
- connect(SaveAction, SIGNAL(triggered()), this, SLOT(saveCert()));
-
QAction *SendAction = new QAction(QIcon(),tr("Send via Email"), this);
connect(SendAction, SIGNAL(triggered()), this, SLOT(runEmailClient()));
@@ -78,7 +73,6 @@ HomePage::HomePage(QWidget *parent) :
menu->addAction(CopyIdAction);
menu->addSeparator();
- menu->addAction(SaveAction);
menu->addAction(SendAction);
menu->addAction(WebMailAction);
menu->addAction(RecAction);
@@ -141,8 +135,6 @@ HomePage::HomePage(QWidget *parent) :
rsEvents->registerEventsHandler( [this](std::shared_ptr event) { handleEvent(event); }, mEventHandlerId, RsEventType::NETWORK );
updateOwnCert();
-
- updateHomeLogo();
}
void HomePage::handleEvent(std::shared_ptr e)
@@ -385,18 +377,3 @@ void HomePage::openWebHelp()
{
QDesktopServices::openUrl(QUrl(QString("https://retrosharedocs.readthedocs.io/en/latest/")));
}
-
-void HomePage::showEvent(QShowEvent *event)
-{
- if (!event->spontaneous()) {
- updateHomeLogo();
- }
-}
-
-void HomePage::updateHomeLogo()
-{
- if (Settings->getSheetName() == ":Standard_Dark")
- ui->label->setPixmap(FilesDefs::getPixmapFromQtResourcePath(":images/logo/logo_web_nobackground_black.png"));
- else
- ui->label->setPixmap(FilesDefs::getPixmapFromQtResourcePath(":images/logo/logo_web_nobackground.png"));
-}
diff --git a/retroshare-gui/src/gui/HomePage.h b/retroshare-gui/src/gui/HomePage.h
index 2dfc62f82..aa77ed1a3 100644
--- a/retroshare-gui/src/gui/HomePage.h
+++ b/retroshare-gui/src/gui/HomePage.h
@@ -51,8 +51,6 @@ public:
void getOwnCert(QString& invite,QString& description) const;
RetroshareInviteFlags currentInviteFlags() const ;
- virtual void showEvent(QShowEvent *) override;
-
private slots:
#ifdef DEAD_CODE
void certContextMenu(QPoint);
@@ -65,8 +63,7 @@ private slots:
void addFriend();
void webMail();
void openWebHelp() ;
- void recommendFriends();
- void updateHomeLogo();
+ void recommendFriends();
private:
Ui::HomePage *ui;
diff --git a/retroshare-gui/src/gui/HomePage.ui b/retroshare-gui/src/gui/HomePage.ui
index e716577b8..5de0fa6fe 100644
--- a/retroshare-gui/src/gui/HomePage.ui
+++ b/retroshare-gui/src/gui/HomePage.ui
@@ -43,6 +43,7 @@
Courier New
+ 10
75
true
@@ -87,6 +88,7 @@
+ 11
75
true
@@ -105,7 +107,7 @@
...
-
+
:/icons/help_64.png :/icons/help_64.png
@@ -231,6 +233,11 @@
-
+
+
+ 12
+
+
Open Source cross-platform,
private and secure decentralized communication platform.
@@ -310,6 +317,11 @@ private and secure decentralized communication platform.
-
+
+
+ 11
+
+
@@ -393,6 +405,11 @@ private and secure decentralized communication platform.
-
+
+
+ 11
+
+
Do you need help with Retroshare?
@@ -407,8 +424,8 @@ private and secure decentralized communication platform.
-
+
diff --git a/retroshare-gui/src/gui/Identity/IdDialog.cpp b/retroshare-gui/src/gui/Identity/IdDialog.cpp
index a2d588d3e..5397f6300 100644
--- a/retroshare-gui/src/gui/Identity/IdDialog.cpp
+++ b/retroshare-gui/src/gui/Identity/IdDialog.cpp
@@ -31,8 +31,6 @@
#include "IdDialog.h"
#include "ui_IdDialog.h"
#include "IdEditDialog.h"
-#include "IdentityListModel.h"
-
#include "gui/RetroShareLink.h"
#include "gui/chat/ChatDialog.h"
#include "gui/Circles/CreateCircleDialog.h"
@@ -52,7 +50,7 @@
#include "util/rsdebug.h"
#include "retroshare/rsgxsflags.h"
-#include "retroshare/rsmsgs.h"
+#include "retroshare/rsmsgs.h"
#include "retroshare/rspeers.h"
#include "retroshare/rsservicecontrol.h"
@@ -94,6 +92,11 @@
/****************************************************************
*/
+#define RSID_COL_NICKNAME 0
+#define RSID_COL_KEYID 1
+#define RSID_COL_IDTYPE 2
+#define RSID_COL_VOTES 3
+
#define RSIDREP_COL_NAME 0
#define RSIDREP_COL_OPINION 1
#define RSIDREP_COL_COMMENT 2
@@ -120,7 +123,6 @@
static const uint32_t SortRole = Qt::UserRole+1 ;
-#ifdef TO_REMOVE
// quick solution for RSID_COL_VOTES sorting
class TreeWidgetItem : public QTreeWidgetItem
{
@@ -144,60 +146,6 @@ class TreeWidgetItem : public QTreeWidgetItem
return data(column,Qt::DisplayRole).toString().toUpper() < other.data(column,Qt::DisplayRole).toString().toUpper();
}
};
-#endif
-
-std::ostream& operator<<(std::ostream& o, const QModelIndex& i);// defined elsewhere
-
-class IdListSortFilterProxyModel: public QSortFilterProxyModel
-{
-public:
- explicit IdListSortFilterProxyModel(const QHeaderView *header,QObject *parent = NULL)
- : QSortFilterProxyModel(parent)
- , m_header(header)
- , m_sortingEnabled(false), m_sortByState(false)
- {
- setDynamicSortFilter(false); // causes crashes when true.
- }
-
- bool lessThan(const QModelIndex& left, const QModelIndex& right) const override
- {
-// bool online1 = (left .data(RsFriendListModel::OnlineRole).toInt() != RS_STATUS_OFFLINE);
-// bool online2 = (right.data(RsFriendListModel::OnlineRole).toInt() != RS_STATUS_OFFLINE);
-//
-// if((online1 != online2) && m_sortByState)
-// return (m_header->sortIndicatorOrder()==Qt::AscendingOrder)?online1:online2 ; // always put online nodes first
-
-#ifdef DEBUG_NEW_FRIEND_LIST
- std::cerr << "Comparing index " << left << " with index " << right << std::endl;
-#endif
- return QSortFilterProxyModel::lessThan(left,right);
- }
-
- bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) const override
- {
- // do not show empty groups
-
- QModelIndex index = sourceModel()->index(source_row,0,source_parent);
-
- return index.data(RsIdentityListModel::FilterRole).toString() == RsIdentityListModel::FilterString ;
- }
-
- void sort( int column, Qt::SortOrder order = Qt::AscendingOrder ) override
- {
- if(m_sortingEnabled)
- return QSortFilterProxyModel::sort(column,order) ;
- }
-
- void setSortingEnabled(bool b) { m_sortingEnabled = b ; }
- void setSortByState(bool b) { m_sortByState = b ; }
- bool sortByState() const { return m_sortByState ; }
-
-private:
- const QHeaderView *m_header ;
- bool m_sortingEnabled;
- bool m_sortByState;
-};
-
/** Constructor */
IdDialog::IdDialog(QWidget *parent)
@@ -205,8 +153,6 @@ IdDialog::IdDialog(QWidget *parent)
, mExternalBelongingCircleItem(NULL)
, mExternalOtherCircleItem(NULL )
, mMyCircleItem(NULL)
- , mLastSortColumn(RsIdentityListModel::COLUMN_THREAD_NAME)
- , mLastSortOrder(Qt::SortOrder::AscendingOrder)
, needUpdateIdsOnNextShow(true), needUpdateCirclesOnNextShow(true) // Update Ids and Circles on first show
, ui(new Ui::IdDialog)
{
@@ -221,29 +167,38 @@ IdDialog::IdDialog(QWidget *parent)
// This is used to grab the broadcast of changes from p3GxsCircles, which is discarded by the current dialog, since it expects data for p3Identity only.
//mCirclesBroadcastBase = new RsGxsUpdateBroadcastBase(rsGxsCircles, this);
//connect(mCirclesBroadcastBase, SIGNAL(fillDisplay(bool)), this, SLOT(updateCirclesDisplay(bool)));
+
+ ownItem = new QTreeWidgetItem();
+ ownItem->setText(RSID_COL_NICKNAME, tr("My own identities"));
+ ownItem->setFont(RSID_COL_NICKNAME, ui->idTreeWidget->font());
+ ownItem->setData(RSID_COL_VOTES, Qt::DecorationRole,0xff); // this is in order to prevent displaying a reputaiton icon next to these items.
- mIdListModel = new RsIdentityListModel(this);
+ allItem = new QTreeWidgetItem();
+ allItem->setText(RSID_COL_NICKNAME, tr("All"));
+ allItem->setFont(RSID_COL_NICKNAME, ui->idTreeWidget->font());
+ allItem->setData(RSID_COL_VOTES, Qt::DecorationRole,0xff);
- mProxyModel = new IdListSortFilterProxyModel(ui->idTreeWidget->header(),this);
+ contactsItem = new QTreeWidgetItem();
+ contactsItem->setText(RSID_COL_NICKNAME, tr("My contacts"));
+ contactsItem->setFont(RSID_COL_NICKNAME, ui->idTreeWidget->font());
+ contactsItem->setData(RSID_COL_VOTES, Qt::DecorationRole,0xff);
- mProxyModel->setSourceModel(mIdListModel);
- mProxyModel->setSortRole(RsIdentityListModel::SortRole);
- mProxyModel->setSortCaseSensitivity(Qt::CaseInsensitive);
- mProxyModel->setFilterRole(RsIdentityListModel::FilterRole);
- mProxyModel->setFilterRegExp(QRegExp(RsIdentityListModel::FilterString));
- ui->idTreeWidget->setModel(mProxyModel);
- //ui->idTreeWidget->setSelectionModel(new QItemSelectionModel(mProxyModel));// useless in Qt5.
+ ui->idTreeWidget->insertTopLevelItem(0, ownItem);
+ ui->idTreeWidget->insertTopLevelItem(0, allItem);
+ ui->idTreeWidget->insertTopLevelItem(0, contactsItem );
ui->treeWidget_membership->clear();
ui->treeWidget_membership->setItemDelegateForColumn(CIRCLEGROUP_CIRCLE_COL_GROUPNAME,new GxsIdTreeItemDelegate());
+
/* Setup UI helper */
mStateHelper = new UIStateHelper(this);
+// mStateHelper->addWidget(IDDIALOG_IDLIST, ui->idTreeWidget);
+ mStateHelper->addLoadPlaceholder(IDDIALOG_IDLIST, ui->idTreeWidget, false);
+ mStateHelper->addClear(IDDIALOG_IDLIST, ui->idTreeWidget);
- connect(ui->idTreeWidget,SIGNAL(expanded(const QModelIndex&)),this,SLOT(trace_expanded(const QModelIndex&)),Qt::DirectConnection);
- connect(ui->idTreeWidget,SIGNAL(collapsed(const QModelIndex&)),this,SLOT(trace_collapsed(const QModelIndex&)),Qt::DirectConnection);
-
+ mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->lineEdit_Nickname);
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->lineEdit_PublishTS);
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->lineEdit_KeyId);
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->lineEdit_Type);
@@ -259,7 +214,7 @@ IdDialog::IdDialog(QWidget *parent)
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->label_positive);
mStateHelper->addWidget(IDDIALOG_IDDETAILS, ui->label_negative);
- //mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->lineEdit_Nickname);
+ mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->lineEdit_Nickname);
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->lineEdit_PublishTS);
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->lineEdit_KeyId);
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->lineEdit_Type);
@@ -270,7 +225,7 @@ IdDialog::IdDialog(QWidget *parent)
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->overallOpinion_TF);
mStateHelper->addLoadPlaceholder(IDDIALOG_IDDETAILS, ui->usageStatistics_TB);
- //mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->lineEdit_Nickname);
+ mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->lineEdit_Nickname);
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->lineEdit_PublishTS);
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->lineEdit_KeyId);
mStateHelper->addClear(IDDIALOG_IDDETAILS, ui->lineEdit_Type);
@@ -293,20 +248,17 @@ IdDialog::IdDialog(QWidget *parent)
connect(ui->editIdentity, SIGNAL(triggered()), this, SLOT(editIdentity()));
connect(ui->chatIdentity, SIGNAL(triggered()), this, SLOT(chatIdentity()));
- connect(ui->idTreeWidget->selectionModel(),SIGNAL(selectionChanged(const QItemSelection&,const QItemSelection&)),this,SLOT(updateSelection(const QItemSelection&,const QItemSelection&)));
- connect(ui->idTreeWidget, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(IdListCustomPopupMenu(QPoint)));
-
- ui->idTreeWidget->header()->setContextMenuPolicy(Qt::CustomContextMenu);
- connect(ui->idTreeWidget->header(), SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(headerContextMenuRequested(QPoint)));
+ connect(ui->idTreeWidget, SIGNAL(itemSelectionChanged()), this, SLOT(updateSelection()));
+ connect(ui->idTreeWidget, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(IdListCustomPopupMenu(QPoint)));
connect(ui->filterLineEdit, SIGNAL(textChanged(QString)), this, SLOT(filterChanged(QString)));
- connect(ui->ownOpinion_CB, SIGNAL(currentIndexChanged(int)), this, SLOT(modifyReputation()));
-
+ connect(ui->ownOpinion_CB, SIGNAL(currentIndexChanged(int)), this, SLOT(modifyReputation()));
+
connect(ui->inviteButton, SIGNAL(clicked()), this, SLOT(sendInvite()));
connect(ui->editButton, SIGNAL(clicked()), this, SLOT(editIdentity()));
- connect(ui->idTreeWidget, SIGNAL(doubleClicked(const QModelIndex&)), this, SLOT(chatIdentityItem(QModelIndex&)) );
- connect(ui->idTreeWidget->header(),SIGNAL(sortIndicatorChanged(int,Qt::SortOrder)), this, SLOT(sortColumn(int,Qt::SortOrder)));
+ connect( ui->idTreeWidget, &RSTreeWidget::itemDoubleClicked,
+ this, &IdDialog::chatIdentityItem );
ui->editButton->hide();
@@ -317,13 +269,12 @@ IdDialog::IdDialog(QWidget *parent)
/* Initialize splitter */
ui->mainSplitter->setStretchFactor(0, 0);
ui->mainSplitter->setStretchFactor(1, 1);
-
+
clearPerson();
-#ifdef TODO
/* Add filter types */
- QMenu *idTWHMenu = new QMenu(tr("Show Items"), this);
- ui->idTreeWidget->addContextMenuMenu(idTWHMenu);
+ QMenu *idTWHMenu = new QMenu(tr("Show Items"), this);
+ ui->idTreeWidget->addContextMenuMenu(idTWHMenu);
QActionGroup *idTWHActionGroup = new QActionGroup(this);
QAction *idTWHAction = new QAction(QIcon(),tr("All"), this);
@@ -376,51 +327,66 @@ IdDialog::IdDialog(QWidget *parent)
idTWHAction->setData(RSID_FILTER_BANNED);
connect(idTWHAction, SIGNAL(toggled(bool)), this, SLOT(filterToggled(bool)));
idTWHMenu->addAction(idTWHAction);
-#endif
-
+
QAction *CreateIDAction = new QAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/person.png"),tr("Create new Identity"), this);
connect(CreateIDAction, SIGNAL(triggered()), this, SLOT(addIdentity()));
-
+
QAction *CreateCircleAction = new QAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/circles.png"),tr("Create new circle"), this);
connect(CreateCircleAction, SIGNAL(triggered()), this, SLOT(createExternalCircle()));
-
+
QMenu *menu = new QMenu();
menu->addAction(CreateIDAction);
menu->addAction(CreateCircleAction);
ui->toolButton_New->setMenu(menu);
+
+ /* Add filter actions */
+ QTreeWidgetItem *headerItem = ui->idTreeWidget->headerItem();
+ QString headerText = headerItem->text(RSID_COL_NICKNAME);
+ ui->filterLineEdit->addFilter(QIcon(), headerText, RSID_COL_NICKNAME, QString("%1 %2").arg(tr("Search"), headerText));
- QFontMetricsF fm(ui->idTreeWidget->font()) ;
+ headerItem->setData(RSID_COL_VOTES,Qt::UserRole,tr("Reputation"));
/* Set initial section sizes */
- QHeaderView * circlesheader = ui->treeWidget_membership->header () ;
- circlesheader->resizeSection (CIRCLEGROUP_CIRCLE_COL_GROUPNAME, fm.width("Circle name")*1.5) ;
- ui->treeWidget_membership->setColumnWidth(CIRCLEGROUP_CIRCLE_COL_GROUPNAME, 270);
+ QHeaderView * circlesheader = ui->treeWidget_membership->header () ;
+ circlesheader->resizeSection (CIRCLEGROUP_CIRCLE_COL_GROUPNAME, QFontMetricsF(ui->idTreeWidget->font()).width("Circle name")*1.5) ;
+ ui->treeWidget_membership->setColumnWidth(CIRCLEGROUP_CIRCLE_COL_GROUPNAME, 270);
+
+ ui->filterLineEdit->addFilter(QIcon(), tr("ID"), RSID_COL_KEYID, tr("Search ID"));
/* Setup tree */
- //ui->idTreeWidget->sortByColumn(RsIdentityListModel::COLUMN_THREAD_NAME, Qt::AscendingOrder);
+ ui->idTreeWidget->sortByColumn(RSID_COL_NICKNAME, Qt::AscendingOrder);
- ui->idTreeWidget->setColumnHidden(RsIdentityListModel::COLUMN_THREAD_OWNER_ID, true);
- ui->idTreeWidget->setColumnHidden(RsIdentityListModel::COLUMN_THREAD_OWNER_NAME, true);
- ui->idTreeWidget->setColumnHidden(RsIdentityListModel::COLUMN_THREAD_ID, true);
+ ui->idTreeWidget->enableColumnCustomize(true);
+ ui->idTreeWidget->setColumnCustomizable(RSID_COL_NICKNAME, false);
+ ui->idTreeWidget->setColumnHidden(RSID_COL_IDTYPE, true);
+ ui->idTreeWidget->setColumnHidden(RSID_COL_KEYID, true);
+
+ /* Set initial column width */
+ int fontWidth = QFontMetricsF(ui->idTreeWidget->font()).width("W");
+ ui->idTreeWidget->setColumnWidth(RSID_COL_NICKNAME, 14 * fontWidth);
+ ui->idTreeWidget->setColumnWidth(RSID_COL_KEYID, 20 * fontWidth);
+ ui->idTreeWidget->setColumnWidth(RSID_COL_IDTYPE, 18 * fontWidth);
+ ui->idTreeWidget->setColumnWidth(RSID_COL_VOTES, 2 * fontWidth);
+
ui->idTreeWidget->setItemDelegate(new RSElidedItemDelegate());
- ui->idTreeWidget->setItemDelegateForColumn( RsIdentityListModel::COLUMN_THREAD_REPUTATION, new ReputationItemDelegate(RsReputationLevel(0xff)));
+ ui->idTreeWidget->setItemDelegateForColumn(
+ RSID_COL_NICKNAME,
+ new GxsIdTreeItemDelegate());
+ ui->idTreeWidget->setItemDelegateForColumn(
+ RSID_COL_VOTES,
+ new ReputationItemDelegate(RsReputationLevel(0xff)));
/* Set header resize modes and initial section sizes */
QHeaderView * idheader = ui->idTreeWidget->header();
- QHeaderView_setSectionResizeModeColumn(idheader, RsIdentityListModel::COLUMN_THREAD_NAME, QHeaderView::Stretch);
- QHeaderView_setSectionResizeModeColumn(idheader, RsIdentityListModel::COLUMN_THREAD_ID, QHeaderView::Stretch);
- QHeaderView_setSectionResizeModeColumn(idheader, RsIdentityListModel::COLUMN_THREAD_OWNER_ID, QHeaderView::Stretch);
- QHeaderView_setSectionResizeModeColumn(idheader, RsIdentityListModel::COLUMN_THREAD_OWNER_NAME, QHeaderView::Stretch);
- QHeaderView_setSectionResizeModeColumn(idheader, RsIdentityListModel::COLUMN_THREAD_REPUTATION, QHeaderView::Fixed);
- ui->idTreeWidget->setColumnWidth(RsIdentityListModel::COLUMN_THREAD_REPUTATION,fm.height());
- idheader->setStretchLastSection(false);
+ QHeaderView_setSectionResizeModeColumn(idheader, RSID_COL_VOTES, QHeaderView::ResizeToContents);
+ idheader->setStretchLastSection(true);
- mStateHelper->setActive(IDDIALOG_IDDETAILS, false);
+ mStateHelper->setActive(IDDIALOG_IDDETAILS, false);
mStateHelper->setActive(IDDIALOG_REPLIST, false);
int H = misc::getFontSizeFactor("HelpButton").height();
- QString hlp_str = tr(
+ QString hlp_str = tr(
"
Identities "
"In this tab you can create/edit pseudo-anonymous identities , and circles .
"
"Identities are used to securely identify your data: sign messages in chat lobbies, forum and channel posts,"
@@ -442,42 +408,13 @@ IdDialog::IdDialog(QWidget *parent)
processSettings(true);
// circles stuff
-
+
//connect(ui->treeWidget_membership, SIGNAL(itemSelectionChanged()), this, SLOT(circle_selected()));
connect(ui->treeWidget_membership, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(CircleListCustomPopupMenu(QPoint)));
connect(ui->autoBanIdentities_CB, SIGNAL(toggled(bool)), this, SLOT(toggleAutoBanIdentities(bool)));
- updateIdTimer.setSingleShot(true);
+ updateIdTimer.setSingleShot(true);
connect(&updateIdTimer, SIGNAL(timeout()), this, SLOT(updateIdList()));
-
- mFontSizeHandler.registerFontSize(ui->idTreeWidget, 0, [this] (QAbstractItemView*, int fontSize) {
- // Set new font size on all items
-
- mIdListModel->setFontSize(fontSize);
- });
-
- mFontSizeHandler.registerFontSize(ui->treeWidget_membership, 0, [this] (QAbstractItemView*, int fontSize) {
- // Set new font size on all items
- QTreeWidgetItemIterator it(ui->treeWidget_membership);
- while (*it) {
- QTreeWidgetItem *item = *it;
-#ifdef CIRCLE_MEMBERSHIP_CATEGORIES
- if (item->parent())
- {
-#endif
- QFont font = item->font(CIRCLEGROUP_CIRCLE_COL_GROUPNAME);
- font.setPointSize(fontSize);
-
- item->setFont(CIRCLEGROUP_CIRCLE_COL_GROUPNAME, font);
- item->setFont(CIRCLEGROUP_CIRCLE_COL_GROUPID, font);
- item->setFont(CIRCLEGROUP_CIRCLE_COL_GROUPFLAGS, font);
-
-#ifdef CIRCLE_MEMBERSHIP_CATEGORIES
- }
-#endif
- ++it;
- }
- });
}
void IdDialog::handleEvent_main_thread(std::shared_ptr event)
@@ -492,19 +429,17 @@ void IdDialog::handleEvent_main_thread(std::shared_ptr event)
switch(e->mIdentityEventCode)
{
case RsGxsIdentityEventCode::DELETED_IDENTITY:
- if(mId == e->mIdentityId)
- {
- mId.clear();
- updateIdentity();
- }
- updateIdListRequest();
- break;
-
- case RsGxsIdentityEventCode::NEW_IDENTITY:
+ case RsGxsIdentityEventCode::NEW_IDENTITY:
case RsGxsIdentityEventCode::UPDATED_IDENTITY:
if (isVisible())
- updateIdListRequest(); // use a timer for events not generated by local changes which generally
- // come in large herds. Allows to group multiple changes into a single UI update.
+ {
+ if(rsIdentity->isOwnId(RsGxsId(e->mIdentityId)))
+ updateIdList();
+ else
+ updateIdTimer.start(3000); // use a timer for events not generated by local changes
+ }
+ else
+ needUpdateIdsOnNextShow = true;
if(!mId.isNull() && mId == e->mIdentityId)
updateIdentity();
@@ -544,13 +479,13 @@ void IdDialog::handleEvent_main_thread(std::shared_ptr event)
void IdDialog::clearPerson()
{
- //QFontMetricsF f(ui->avLabel_Person->font()) ;
+ QFontMetricsF f(ui->avLabel_Person->font()) ;
+ ui->avLabel_Person->setPixmap(FilesDefs::getPixmapFromQtResourcePath(":/icons/png/people.png").scaled(f.height()*4,f.height()*4,Qt::KeepAspectRatio,Qt::SmoothTransformation));
ui->headerTextLabel_Person->setText(tr("People"));
ui->info_Frame_Invite->hide();
ui->avatarLabel->clear();
- ui->avatarLabel->setPixmap(FilesDefs::getPixmapFromQtResourcePath(":/icons/png/people.png"));
whileBlocking(ui->ownOpinion_CB)->setCurrentIndex(1);
whileBlocking(ui->autoBanIdentities_CB)->setChecked(false);
@@ -564,7 +499,7 @@ void IdDialog::toggleAutoBanIdentities(bool b)
if(!id.isNull())
{
rsReputations->banNode(id,b) ;
- updateIdListRequest();
+ updateIdList();
}
}
@@ -572,10 +507,10 @@ void IdDialog::updateCirclesDisplay()
{
if(RsAutoUpdatePage::eventsLocked())
return ;
-
+
if(!isVisible())
return ;
-
+
#ifdef ID_DEBUG
std::cerr << "!!Updating circles display!" << std::endl;
#endif
@@ -720,6 +655,7 @@ void IdDialog::loadCircles(const std::list& groupInfo)
{
mExternalOtherCircleItem = new QTreeWidgetItem();
mExternalOtherCircleItem->setText(CIRCLEGROUP_CIRCLE_COL_GROUPNAME, tr("Other circles"));
+ mExternalOtherCircleItem->setFont(CIRCLEGROUP_CIRCLE_COL_GROUPNAME, ui->treeWidget_membership->font());
ui->treeWidget_membership->addTopLevelItem(mExternalOtherCircleItem);
}
@@ -727,6 +663,7 @@ void IdDialog::loadCircles(const std::list& groupInfo)
{
mExternalBelongingCircleItem = new QTreeWidgetItem();
mExternalBelongingCircleItem->setText(CIRCLEGROUP_CIRCLE_COL_GROUPNAME, tr("Circles I belong to"));
+ mExternalBelongingCircleItem->setFont(CIRCLEGROUP_CIRCLE_COL_GROUPNAME, ui->treeWidget_membership->font());
ui->treeWidget_membership->addTopLevelItem(mExternalBelongingCircleItem);
}
#endif
@@ -983,16 +920,16 @@ void IdDialog::loadCircles(const std::list& groupInfo)
bool IdDialog::getItemCircleId(QTreeWidgetItem *item,RsGxsCircleId& id)
{
-#ifdef CIRCLE_MEMBERSHIP_CATEGORIES
+#ifdef CIRCLE_MEMBERSHIP_CATEGORIES
if ((!item) || (!item->parent()))
return false;
-
+
QString coltext = (item->parent()->parent())? (item->parent()->data(CIRCLEGROUP_CIRCLE_COL_GROUPID,Qt::UserRole).toString()) : (item->data(CIRCLEGROUP_CIRCLE_COL_GROUPID,Qt::UserRole).toString());
id = RsGxsCircleId( coltext.toStdString()) ;
#else
if(!item)
return false;
-
+
QString coltext = (item->parent())? (item->parent()->data(CIRCLEGROUP_CIRCLE_COL_GROUPID,Qt::UserRole).toString()) : (item->data(CIRCLEGROUP_CIRCLE_COL_GROUPID,Qt::UserRole).toString());
id = RsGxsCircleId( coltext.toStdString()) ;
#endif
@@ -1002,7 +939,7 @@ bool IdDialog::getItemCircleId(QTreeWidgetItem *item,RsGxsCircleId& id)
void IdDialog::showEvent(QShowEvent *s)
{
if (needUpdateIdsOnNextShow)
- updateIdListRequest();
+ updateIdList();
if (needUpdateCirclesOnNextShow)
updateCircles();
@@ -1021,19 +958,19 @@ void IdDialog::createExternalCircle()
void IdDialog::showEditExistingCircle()
{
RsGxsCircleId id ;
-
+
if(!getItemCircleId(ui->treeWidget_membership->currentItem(),id))
return ;
-
+
uint32_t subscribe_flags = ui->treeWidget_membership->currentItem()->data(CIRCLEGROUP_CIRCLE_COL_GROUPFLAGS, Qt::UserRole).toUInt();
-
+
CreateCircleDialog dlg;
-
+
dlg.editExistingId(RsGxsGroupId(id),true,!(subscribe_flags & GXS_SERV::GROUP_SUBSCRIBE_ADMIN)) ;
dlg.exec();
}
-void IdDialog::grantCircleMembership()
+void IdDialog::grantCircleMembership()
{
RsGxsCircleId circle_id ;
@@ -1050,7 +987,7 @@ void IdDialog::grantCircleMembership()
});
}
-void IdDialog::revokeCircleMembership()
+void IdDialog::revokeCircleMembership()
{
RsGxsCircleId circle_id ;
@@ -1079,22 +1016,22 @@ void IdDialog::revokeCircleMembership()
});
}
-void IdDialog::acceptCircleSubscription()
+void IdDialog::acceptCircleSubscription()
{
RsGxsCircleId circle_id ;
-
+
if(!getItemCircleId(ui->treeWidget_membership->currentItem(),circle_id))
return;
RsGxsId own_id(qobject_cast(sender())->data().toString().toStdString());
-
+
rsGxsCircles->requestCircleMembership(own_id,circle_id) ;
}
-void IdDialog::cancelCircleSubscription()
-{
+void IdDialog::cancelCircleSubscription()
+{
RsGxsCircleId circle_id ;
-
+
if(!getItemCircleId(ui->treeWidget_membership->currentItem(),circle_id))
return;
@@ -1102,14 +1039,14 @@ void IdDialog::cancelCircleSubscription()
rsGxsCircles->cancelCircleMembership(own_id,circle_id) ;
}
-
+
void IdDialog::CircleListCustomPopupMenu( QPoint )
{
QMenu contextMnu( this );
RsGxsCircleId circle_id ;
QTreeWidgetItem *item = ui->treeWidget_membership->currentItem();
-
+
if(!getItemCircleId(item,circle_id))
return ;
@@ -1117,7 +1054,7 @@ void IdDialog::CircleListCustomPopupMenu( QPoint )
RsGxsId item_id(item->data(CIRCLEGROUP_CIRCLE_COL_GROUPID,Qt::UserRole).toString().toStdString());
bool is_circle ;
bool am_I_circle_admin = false ;
-
+
if(item_id == RsGxsId(circle_id)) // is it a circle?
{
uint32_t group_flags = item->data(CIRCLEGROUP_CIRCLE_COL_GROUPFLAGS, Qt::UserRole).toUInt();
@@ -1136,7 +1073,7 @@ void IdDialog::CircleListCustomPopupMenu( QPoint )
#ifdef CIRCLE_MEMBERSHIP_CATEGORIES
}
#endif
-
+
#ifdef ID_DEBUG
std::cerr << " Item is a circle item. Adding Edit/Details menu entry." << std::endl;
#endif
@@ -1144,7 +1081,7 @@ void IdDialog::CircleListCustomPopupMenu( QPoint )
contextMnu.addSeparator() ;
}
- else
+ else
{
current_gxs_id = RsGxsId(item_id);
is_circle =false ;
@@ -1159,9 +1096,9 @@ void IdDialog::CircleListCustomPopupMenu( QPoint )
std::cerr << " Item is a GxsId item. Requesting flags/group id from parent: " << circle_id << std::endl;
#endif
}
-
+
RsGxsCircleDetails details ;
-
+
if(!rsGxsCircles->getCircleDetails(circle_id,details))// grab real circle ID from parent. Make sure circle id is used correctly afterwards!
{
std::cerr << " (EE) cannot get circle info for ID " << circle_id << ". Not in cache?" << std::endl;
@@ -1198,7 +1135,7 @@ void IdDialog::CircleListCustomPopupMenu( QPoint )
ids[REMOVE].push_back(*it) ;
else
ids[CANCEL].push_back(*it) ;
- else
+ else
if(subscribe_flags & GXS_EXTERNAL_CIRCLE_FLAGS_IN_ADMIN_LIST)
ids[ACCEPT].push_back(*it) ;
else
@@ -1259,17 +1196,17 @@ void IdDialog::CircleListCustomPopupMenu( QPoint )
contextMnu.addMenu(menu) ;
}
}
-
+
if(!is_circle && am_I_circle_admin) // I am circle admin. I can therefore revoke/accept membership
{
std::map::const_iterator it = details.mSubscriptionFlags.find(current_gxs_id) ;
-
+
if(!current_gxs_id.isNull() && it != details.mSubscriptionFlags.end())
{
contextMnu.addSeparator() ;
if(it->second & GXS_EXTERNAL_CIRCLE_FLAGS_IN_ADMIN_LIST)
- {
+ {
QAction *action = new QAction(tr("Revoke this member"),this) ;
action->setData(QString::fromStdString(current_gxs_id.toStdString()));
QObject::connect(action,SIGNAL(triggered()), this, SLOT(revokeCircleMembership()));
@@ -1297,8 +1234,6 @@ IdDialog::~IdDialog()
// save settings
processSettings(false);
- delete mIdListModel;
- delete mProxyModel;
delete(ui);
}
@@ -1316,65 +1251,46 @@ static QString getHumanReadableDuration(uint32_t seconds)
return QString(QObject::tr("%1 hours ago")).arg(seconds/3600) ;
else if(seconds < 2*24*3600)
return QString(QObject::tr("%1 day ago")).arg(seconds/86400) ;
- else
+ else
return QString(QObject::tr("%1 days ago")).arg(seconds/86400) ;
}
void IdDialog::processSettings(bool load)
{
- Settings->beginGroup("IdDialog");
+ Settings->beginGroup("IdDialog");
- if (load) {
- // load settings
+ // state of peer tree
+ ui->idTreeWidget->processSettings(load);
- ui->idTreeWidget->header()->restoreState(Settings->value(objectName()).toByteArray());
- ui->idTreeWidget->header()->setHidden(Settings->value(objectName()+"HiddenHeader", false).toBool());
+ if (load) {
+ // load settings
- // filterColumn
- //ui->filterLineEdit->setCurrentFilter(Settings->value("filterColumn", RsIdentityListModel::COLUMN_THREAD_NAME).toInt());
+ // filterColumn
+ ui->filterLineEdit->setCurrentFilter(Settings->value("filterColumn", RSID_COL_NICKNAME).toInt());
- // state of splitter
- ui->mainSplitter->restoreState(Settings->value("splitter").toByteArray());
+ // state of splitter
+ ui->mainSplitter->restoreState(Settings->value("splitter").toByteArray());
- //Restore expanding
- ui->idTreeWidget->setExpanded(mProxyModel->mapFromSource(mIdListModel->getIndexOfCategory(RsIdentityListModel::CATEGORY_ALL)),Settings->value("ExpandAll", QVariant(true)).toBool());
- ui->idTreeWidget->setExpanded(mProxyModel->mapFromSource(mIdListModel->getIndexOfCategory(RsIdentityListModel::CATEGORY_OWN)),Settings->value("ExpandOwn", QVariant(true)).toBool());
- ui->idTreeWidget->setExpanded(mProxyModel->mapFromSource(mIdListModel->getIndexOfCategory(RsIdentityListModel::CATEGORY_CTS)),Settings->value("ExpandContacts", QVariant(true)).toBool());
+ //Restore expanding
+ allItem->setExpanded(Settings->value("ExpandAll", QVariant(true)).toBool());
+ ownItem->setExpanded(Settings->value("ExpandOwn", QVariant(true)).toBool());
+ contactsItem->setExpanded(Settings->value("ExpandContacts", QVariant(true)).toBool());
+ } else {
+ // save settings
- // visible columns
+ // filterColumn
+ Settings->setValue("filterColumn", ui->filterLineEdit->currentFilter());
- int v = Settings->value("columnVisibility",(1 << RsIdentityListModel::COLUMN_THREAD_NAME)+(1 << RsIdentityListModel::COLUMN_THREAD_REPUTATION)).toInt();
+ // state of splitter
+ Settings->setValue("splitter", ui->mainSplitter->saveState());
+
+ //save expanding
+ Settings->setValue("ExpandAll", allItem->isExpanded());
+ Settings->setValue("ExpandContacts", contactsItem->isExpanded());
+ Settings->setValue("ExpandOwn", ownItem->isExpanded());
+ }
- for(int i=0;icolumnCount();++i)
- ui->idTreeWidget->setColumnHidden(i,!(v & (1<setValue(objectName(), ui->idTreeWidget->header()->saveState());
- Settings->setValue(objectName()+"HiddenHeader", ui->idTreeWidget->header()->isHidden());
-
- // filterColumn
- //Settings->setValue("filterColumn", ui->filterLineEdit->currentFilter());
-
- // state of splitter
- Settings->setValue("splitter", ui->mainSplitter->saveState());
-
- //save expanding
- Settings->setValue("ExpandAll", ui->idTreeWidget->isExpanded(mProxyModel->mapFromSource(mIdListModel->getIndexOfCategory(RsIdentityListModel::CATEGORY_ALL))));
- Settings->setValue("ExpandContacts", ui->idTreeWidget->isExpanded(mProxyModel->mapFromSource(mIdListModel->getIndexOfCategory(RsIdentityListModel::CATEGORY_CTS))));
- Settings->setValue("ExpandOwn", ui->idTreeWidget->isExpanded(mProxyModel->mapFromSource(mIdListModel->getIndexOfCategory(RsIdentityListModel::CATEGORY_OWN))));
-
- int v = 0;
- for(int i=0;icolumnCount();++i)
- if(!ui->idTreeWidget->isColumnHidden(i))
- v += (1 << i);
-
- Settings->setValue("columnVisibility",v);
- }
-
- Settings->endGroup();
+ Settings->endGroup();
}
void IdDialog::filterChanged(const QString& /*text*/)
@@ -1388,79 +1304,79 @@ void IdDialog::filterToggled(const bool &value)
QAction *source = qobject_cast(QObject::sender());
if (source) {
filter = source->data().toInt();
- updateIdListRequest();
+ updateIdList();
}
}
}
-void IdDialog::updateSelection(const QItemSelection& /* new_sel */,const QItemSelection& /* old_sel */)
+void IdDialog::updateSelection()
{
-#ifdef DEBUG_ID_DIALOG
- std::cerr << "Got selectionChanged signal. Old selection is: " << std::endl;
- for(auto i:old_sel.indexes()) std::cerr << " " << i << std::endl;
- std::cerr << "Got selectionChanged signal. New selection is: " << std::endl;
- for(auto i:new_sel.indexes()) std::cerr << " " << i << std::endl;
-#endif
+ QTreeWidgetItem *item = ui->idTreeWidget->currentItem();
+ RsGxsGroupId id;
- auto id = RsGxsGroupId(getSelectedIdentity());
+ if (item) {
+ id = RsGxsGroupId(item->text(RSID_COL_KEYID).toStdString());
+ }
-#ifdef DEBUG_ID_DIALOG
- std::cerr << "updating selection to id " << id << std::endl;
-#endif
- if(id != mId)
- {
+ if (id != mId) {
mId = id;
updateIdentity();
+ //updateRepList();
}
}
-void IdDialog::updateIdListRequest()
-{
- if(updateIdTimer.isActive())
- {
- std::cerr << "updateIdListRequest(): restarting timer"<< std::endl;
- updateIdTimer.stop();
- updateIdTimer.start(1000);
- }
- else
- {
- std::cerr << "updateIdListRequest(): starting timer"<< std::endl;
- updateIdTimer.start(1000);
- }
-}
+
void IdDialog::updateIdList()
{
- //print_stacktrace();
+ //int accept = filter;
- RsThread::async([this]()
- {
- std::list *ids = new std::list();
+ RsThread::async([this]()
+ {
+ // 1 - get message data from p3GxsForums
- if(!rsIdentity->getIdentitiesSummaries(*ids))
- {
- std::cerr << __PRETTY_FUNCTION__ << " failed to retrieve identity metadata." << std::endl;
- return;
- }
+#ifdef DEBUG_FORUMS
+ std::cerr << "Retrieving post data for post " << mThreadId << std::endl;
+#endif
- RsQThreadUtils::postToObject( [ids,this]()
- {
+ std::list identity_metas ;
- std::cerr << "Updating identity list in widget." << std::endl;
+ if (!rsIdentity->getIdentitiesSummaries(identity_metas))
+ {
+ std::cerr << "IdDialog::insertIdList() Error getting GroupData" << std::endl;
+ return;
+ }
- applyWhileKeepingTree( [ids,this]()
- {
- std::cerr << "setting new identity in model." << std::endl;
- mIdListModel->setIdentities(*ids) ;
- delete ids;
+ std::set ids;
+ for(auto it(identity_metas.begin());it!=identity_metas.end();++it)
+ ids.insert(RsGxsId((*it).mGroupId));
+
+ std::vector groups;
+
+ if(!rsIdentity->getIdentitiesInfo(ids,groups))
+ {
+ std::cerr << "IdDialog::insertIdList() Error getting identities info" << std::endl;
+ return;
+ }
+
+ auto ids_set = new std::map();
+
+ for(auto it(groups.begin()); it!=groups.end(); ++it)
+ (*ids_set)[(*it).mMeta.mGroupId] = *it;
+
+ RsQThreadUtils::postToObject( [ids_set, this] ()
+ {
+ /* Here it goes any code you want to be executed on the Qt Gui
+ * thread, for example to update the data model with new information
+ * after a blocking call to RetroShare API complete */
+ loadIdentities(*ids_set);
+ delete ids_set;
+
+ }, this );
- ui->label_count->setText("("+QString::number(mIdListModel->count())+")");
- });
- });
});
}
-#ifdef TO_REMOVE
bool IdDialog::fillIdListItem(const RsGxsIdGroup& data, QTreeWidgetItem *&item, const RsPgpId &ownPgpId, int accept)
{
bool isLinkedToOwnNode = (data.mPgpKnown && (data.mPgpId == ownPgpId)) ;
@@ -1560,13 +1476,13 @@ bool IdDialog::fillIdListItem(const RsGxsIdGroup& data, QTreeWidgetItem *&item,
rsPeers->getGPGDetails(data.mPgpId, details);
item->setText(RSID_COL_IDTYPE, QString::fromUtf8(details.name.c_str()));
item->setToolTip(RSID_COL_IDTYPE,"Verified signature from node "+QString::fromStdString(data.mPgpId.toStdString())) ;
-
-
+
+
QString tooltip = tr("Node name:")+" " + QString::fromUtf8(details.name.c_str()) + "\n";
tooltip += tr("Node Id :")+" " + QString::fromStdString(data.mPgpId.toStdString()) ;
item->setToolTip(RSID_COL_KEYID,tooltip) ;
}
- else
+ else
{
QString txt = tr("[Unknown node]");
item->setText(RSID_COL_IDTYPE, txt);
@@ -1592,7 +1508,112 @@ bool IdDialog::fillIdListItem(const RsGxsIdGroup& data, QTreeWidgetItem *&item,
return true;
}
-#endif
+void IdDialog::loadIdentities(const std::map& ids_set_const)
+{
+ auto ids_set(ids_set_const);
+
+ //First: Get current item to restore after
+ RsGxsGroupId oldCurrentId = mIdToNavigate;
+ {
+ QTreeWidgetItem *oldCurrent = ui->idTreeWidget->currentItem();
+ if (oldCurrent) {
+ oldCurrentId = RsGxsGroupId(oldCurrent->text(RSID_COL_KEYID).toStdString());
+ }
+ }
+
+ //Save expanding
+ Settings->beginGroup("IdDialog");
+ Settings->setValue("ExpandAll", allItem->isExpanded());
+ Settings->setValue("ExpandContacts", contactsItem->isExpanded());
+ Settings->setValue("ExpandOwn", ownItem->isExpanded());
+ Settings->endGroup();
+
+
+ int accept = filter;
+
+ mStateHelper->setActive(IDDIALOG_IDLIST, true);
+
+ RsPgpId ownPgpId = rsPeers->getGPGOwnId();
+
+ // Update existing and remove not existing items
+ // Also remove items that do not have the correct parent
+
+ QTreeWidgetItemIterator itemIterator(ui->idTreeWidget);
+ QTreeWidgetItem *item = NULL;
+
+ while ((item = *itemIterator) != NULL)
+ {
+ ++itemIterator;
+ auto it = ids_set.find(RsGxsGroupId(item->text(RSID_COL_KEYID).toStdString())) ;
+
+ if(it == ids_set.end())
+ {
+ if(item != allItem && item != contactsItem && item != ownItem)
+ delete(item);
+
+ continue ;
+ }
+
+ QTreeWidgetItem *parent_item = item->parent() ;
+
+// if(it->second.mMeta.mPublishTs > time(NULL) - 20 || it->second.mMeta.mGroupId == RsGxsGroupId("3de2172503675206b3a23c997e5ee688"))
+// std::cerr << "Captured ID " <second.mMeta.mGroupId << std::endl;
+
+ if( (parent_item == allItem && it->second.mIsAContact) || (parent_item == contactsItem && !it->second.mIsAContact))
+ {
+ delete item ; // do not remove from the list, so that it is added again in the correct place.
+ continue ;
+ }
+
+ if (!fillIdListItem(it->second, item, ownPgpId, accept))
+ delete(item);
+
+ ids_set.erase(it); // erase, so it is not considered to be a new item
+ }
+
+ /* Insert new items */
+ for (std::map::const_iterator vit = ids_set.begin(); vit != ids_set.end(); ++vit)
+ {
+ RsGxsIdGroup data = vit->second ;
+
+ item = NULL;
+
+ if (fillIdListItem(data, item, ownPgpId, accept))
+ {
+ if(data.mMeta.mSubscribeFlags & GXS_SERV::GROUP_SUBSCRIBE_ADMIN)
+ ownItem->addChild(item);
+ else if(data.mIsAContact)
+ contactsItem->addChild(item);
+ else
+ allItem->addChild(item);
+
+ }
+ }
+
+ /* count items */
+ int itemCount = contactsItem->childCount() + allItem->childCount() + ownItem->childCount();
+ ui->label_count->setText( "(" + QString::number( itemCount ) + ")" );
+
+ int contactsCount = contactsItem->childCount() ;
+ int allCount = allItem->childCount() ;
+ int ownCount = ownItem->childCount();
+
+ contactsItem->setText(0, tr("My contacts") + " (" + QString::number( contactsCount ) + ")" );
+ allItem->setText(0, tr("All") + " (" + QString::number( allCount ) + ")" );
+ ownItem->setText(0, tr("My own identities") + " (" + QString::number( ownCount ) + ")" );
+
+
+ //Restore expanding
+ Settings->beginGroup("IdDialog");
+ allItem->setExpanded(Settings->value("ExpandAll", QVariant(true)).toBool());
+ ownItem->setExpanded(Settings->value("ExpandOwn", QVariant(true)).toBool());
+ contactsItem->setExpanded(Settings->value("ExpandContacts", QVariant(true)).toBool());
+ Settings->endGroup();
+
+ navigate(RsGxsId(oldCurrentId));
+ filterIds();
+ updateSelection();
+}
void IdDialog::updateIdentity()
{
@@ -1638,7 +1659,7 @@ void IdDialog::updateIdentity()
loadIdentity(group);
- }, this );
+ }, this );
});
}
@@ -1654,7 +1675,7 @@ void IdDialog::loadIdentity(RsGxsIdGroup data)
RsPgpId ownPgpId = rsPeers->getGPGOwnId();
ui->lineEdit_PublishTS->setText(QDateTime::fromMSecsSinceEpoch(qint64(1000)*data.mMeta.mPublishTs).toString(Qt::SystemLocaleShortDate));
- //ui->lineEdit_Nickname->setText(QString::fromUtf8(data.mMeta.mGroupName.c_str()).left(RSID_MAXIMUM_NICKNAME_SIZE));
+ ui->lineEdit_Nickname->setText(QString::fromUtf8(data.mMeta.mGroupName.c_str()).left(RSID_MAXIMUM_NICKNAME_SIZE));
ui->lineEdit_KeyId->setText(QString::fromStdString(data.mMeta.mGroupId.toStdString()));
//ui->lineEdit_GpgHash->setText(QString::fromStdString(data.mPgpIdHash.toStdString()));
if(data.mPgpKnown)
@@ -1680,8 +1701,8 @@ void IdDialog::loadIdentity(RsGxsIdGroup data)
//ui->avLabel_Person->setPixmap(pixmap);
//ui->avatarLabel->setPixmap(pixmap);
- //QFontMetricsF f(ui->avLabel_Person->font()) ;
- //ui->avLabel_Person->setPixmap(pixmap.scaled(f.height()*4,f.height()*4,Qt::KeepAspectRatio,Qt::SmoothTransformation));
+ QFontMetricsF f(ui->avLabel_Person->font()) ;
+ ui->avLabel_Person->setPixmap(pixmap.scaled(f.height()*4,f.height()*4,Qt::KeepAspectRatio,Qt::SmoothTransformation));
ui->avatarLabel->setPixmap(pixmap.scaled(ui->inviteButton->width(),ui->inviteButton->width(),Qt::IgnoreAspectRatio,Qt::SmoothTransformation));
ui->avatarLabel->setScaledContents(true);
@@ -1710,7 +1731,7 @@ void IdDialog::loadIdentity(RsGxsIdGroup data)
ui->lineEdit_GpgId->show() ;
ui->label_GpgId->show() ;
}
-
+
if(data.mPgpKnown)
{
ui->lineEdit_GpgName->show() ;
@@ -1750,6 +1771,7 @@ void IdDialog::loadIdentity(RsGxsIdGroup data)
if (isOwnId)
{
+ mStateHelper->setWidgetEnabled(ui->ownOpinion_CB, false);
mStateHelper->setWidgetEnabled(ui->autoBanIdentities_CB, false);
// ui->editIdentity->setEnabled(true);
// ui->removeIdentity->setEnabled(true);
@@ -1759,6 +1781,8 @@ void IdDialog::loadIdentity(RsGxsIdGroup data)
}
else
{
+ // No Reputation yet!
+ mStateHelper->setWidgetEnabled(ui->ownOpinion_CB, true);
mStateHelper->setWidgetEnabled(ui->autoBanIdentities_CB, true);
// ui->editIdentity->setEnabled(false);
// ui->removeIdentity->setEnabled(false);
@@ -1802,7 +1826,7 @@ void IdDialog::loadIdentity(RsGxsIdGroup data)
frep_string = tr("No votes from friends") ;
ui->neighborNodesOpinion_TF->setText(frep_string) ;
-
+
ui->label_positive->setText(QString::number(info.mFriendsPositiveVotes));
ui->label_negative->setText(QString::number(info.mFriendsNegativeVotes));
@@ -1825,9 +1849,9 @@ void IdDialog::loadIdentity(RsGxsIdGroup data)
switch(info.mOwnOpinion)
{
- case RsOpinion::NEGATIVE: whileBlocking(ui->ownOpinion_CB)->setCurrentIndex(0); break;
- case RsOpinion::NEUTRAL : whileBlocking(ui->ownOpinion_CB)->setCurrentIndex(1); break;
- case RsOpinion::POSITIVE: whileBlocking(ui->ownOpinion_CB)->setCurrentIndex(2); break;
+ case RsOpinion::NEGATIVE: ui->ownOpinion_CB->setCurrentIndex(0); break;
+ case RsOpinion::NEUTRAL : ui->ownOpinion_CB->setCurrentIndex(1); break;
+ case RsOpinion::POSITIVE: ui->ownOpinion_CB->setCurrentIndex(2); break;
default:
std::cerr << "Unexpected value in own opinion: "
<< static_cast(info.mOwnOpinion) << std::endl;
@@ -1999,62 +2023,33 @@ void IdDialog::modifyReputation()
// trigger refresh when finished.
// basic / anstype are not needed.
- //updateIdentity();
- //updateIdList();
+ updateIdentity();
+ updateIdList();
return;
}
-
+
void IdDialog::navigate(const RsGxsId& gxs_id)
{
- mIdListModel->debug_dump();
-#ifndef ID_DEBUG
+#ifdef ID_DEBUG
std::cerr << "IdDialog::navigate to " << gxs_id.toStdString() << std::endl;
#endif
- if(gxs_id.isNull())
- return;
-
- auto indx = mIdListModel->getIndexOfIdentity(gxs_id);
-
- if(!indx.isValid())
- {
- RsErr() << "Invalid index found for identity " << gxs_id << std::endl;
- return;
- }
- std::cerr << "Obtained index " << indx << ": id of that index is " << mIdListModel->getIdentity(indx) << std::endl;
-
- QModelIndex proxy_indx = mProxyModel->mapFromSource(indx);
-
- std::cerr << "Obtained proxy index " << proxy_indx << std::endl;
-
// in order to do this, we just select the correct ID in the ID list
- Q_ASSERT(ui->idTreeWidget->model() == mProxyModel);
+ if (!gxs_id.isNull())
+ {
+ QList select = ui->idTreeWidget->findItems(QString::fromStdString(gxs_id.toStdString()),Qt::MatchExactly | Qt::MatchRecursive | Qt::MatchWrap,RSID_COL_KEYID) ;
- if(!proxy_indx.isValid())
- {
- std::cerr << "Cannot find item with ID " << gxs_id << " in ID list." << std::endl;
- return;
- }
- std::cerr << "Row hidden? " << ui->idTreeWidget->isRowHidden(proxy_indx.row(),proxy_indx.parent()) << std::endl;
+ if(select.empty())
+ {
+ mIdToNavigate = RsGxsGroupId(gxs_id);
+ std::cerr << "Cannot find item with ID " << gxs_id << " in ID list." << std::endl;
+ return;
+ }
+ ui->idTreeWidget->setCurrentItem(*select.begin(),true);
+ }
- {
- auto ii = mProxyModel->mapToSource(proxy_indx);
- std::cerr << "Remapping index to source: " << ii << std::endl;
- }
- ui->idTreeWidget->selectionModel()->select(proxy_indx,QItemSelectionModel::Current|QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
- {
- auto lst = ui->idTreeWidget->selectionModel()->selectedIndexes();
- std::cerr << "Just after calling select(), the selected index list has size " << lst.size() << std::endl;
- }
- ui->idTreeWidget->scrollTo(proxy_indx);//May change if model reloaded
- ui->idTreeWidget->setFocus();
-
- // This has to be done manually because for some reason the proxy model doesn't work with the selection model
- // No signal is emitted when calling setCurrentIndex() above.
-
- //mId = RsGxsGroupId(gxs_id);
- //updateIdentity();
+ mIdToNavigate = RsGxsGroupId();
}
void IdDialog::updateDisplay(bool complete)
@@ -2072,49 +2067,6 @@ void IdDialog::updateDisplay(bool complete)
}
}
-std::list IdDialog::getSelectedIdentities() const
-{
- QModelIndexList selectedIndexes_proxy = ui->idTreeWidget->selectionModel()->selectedIndexes();
- std::list res;
-
-#ifdef DEBUG_ID_DIALOG
- std::cerr << "Parsing selected index list: " << std::endl;
-#endif
- for(auto indx_proxy:selectedIndexes_proxy)
- {
- RsGxsId id;
-
- if(indx_proxy.column() == RsIdentityListModel::COLUMN_THREAD_ID) // this removes duplicates
- {
- auto indx = mProxyModel->mapToSource(indx_proxy);
- auto id = mIdListModel->getIdentity(indx);
-
-#ifdef DEBUG_ID_DIALOG
- std::cerr << " indx: " << indx_proxy << " original indx: " << indx << " identity: " << id << std::endl;
-#endif
-
- if( !id.isNull() )
- res.push_back(id);
- }
- }
-
- return res;
-}
-
-RsGxsId IdDialog::getSelectedIdentity() const
-{
- auto lst = getSelectedIdentities();
-
-#ifdef DEBUG_ID_DIALOG
- std::cerr << "Selected identities has size " << lst.size() << std::endl;
-#endif
-
- if(lst.size() != 1)
- return RsGxsId();
- else
- return lst.front();
-}
-
void IdDialog::addIdentity()
{
IdEditDialog dlg(this);
@@ -2124,248 +2076,240 @@ void IdDialog::addIdentity()
void IdDialog::removeIdentity()
{
- RsGxsId id = getSelectedIdentity();
+ QTreeWidgetItem *item = ui->idTreeWidget->currentItem();
+ if (!item)
+ {
+#ifdef ID_DEBUG
+ std::cerr << "IdDialog::editIdentity() Invalid item";
+ std::cerr << std::endl;
+#endif
+ return;
+ }
- if(id.isNull())
- return;
+ if ((QMessageBox::question(this, tr("Really delete?"), tr("Do you really want to delete this identity?"), QMessageBox::Yes|QMessageBox::No, QMessageBox::No))== QMessageBox::Yes)
+ {
+ std::string keyId = item->text(RSID_COL_KEYID).toStdString();
- if ((QMessageBox::question(this, tr("Really delete?"), tr("Do you really want to delete this identity?\nThis cannot be undone."), QMessageBox::Yes|QMessageBox::No, QMessageBox::No))== QMessageBox::Yes)
- rsIdentity->deleteIdentity(id);
+ uint32_t dummyToken = 0;
+ RsGxsIdGroup group;
+ group.mMeta.mGroupId=RsGxsGroupId(keyId);
+ rsIdentity->deleteIdentity(dummyToken, group);
+ }
}
void IdDialog::editIdentity()
{
- RsGxsId id = getSelectedIdentity();
+ QTreeWidgetItem *item = ui->idTreeWidget->currentItem();
+ if (!item)
+ {
+#ifdef ID_DEBUG
+ std::cerr << "IdDialog::editIdentity() Invalid item";
+ std::cerr << std::endl;
+#endif
+ return;
+ }
- if(id.isNull())
- return;
+ RsGxsGroupId keyId = RsGxsGroupId(item->text(RSID_COL_KEYID).toStdString());
+ if (keyId.isNull()) {
+ return;
+ }
- IdEditDialog dlg(this);
- dlg.setupExistingId(RsGxsGroupId(id));
- dlg.exec();
+ IdEditDialog dlg(this);
+ dlg.setupExistingId(keyId);
+ dlg.exec();
}
void IdDialog::filterIds()
{
+ int filterColumn = ui->filterLineEdit->currentFilter();
QString text = ui->filterLineEdit->text();
- int8_t ft=0;
-
- if(!ui->idTreeWidget->isColumnHidden(RsIdentityListModel::COLUMN_THREAD_ID)) ft |= RsIdentityListModel::FILTER_TYPE_ID;
- if(!ui->idTreeWidget->isColumnHidden(RsIdentityListModel::COLUMN_THREAD_NAME)) ft |= RsIdentityListModel::FILTER_TYPE_NAME;
- if(!ui->idTreeWidget->isColumnHidden(RsIdentityListModel::COLUMN_THREAD_OWNER_NAME)) ft |= RsIdentityListModel::FILTER_TYPE_OWNER_NAME;
- if(!ui->idTreeWidget->isColumnHidden(RsIdentityListModel::COLUMN_THREAD_OWNER_ID)) ft |= RsIdentityListModel::FILTER_TYPE_OWNER_ID;
-
- mIdListModel->setFilter(ft,{ text });
+ ui->idTreeWidget->filterItems(filterColumn, text);
}
-void IdDialog::headerContextMenuRequested(QPoint)
-{
- QMenu displayMenu(this);
-
- // create menu header
- //QHBoxLayout *hbox = new QHBoxLayout(widget);
- //hbox->setMargin(0);
- //hbox->setSpacing(6);
-
- auto addEntry = [&](const QString& name,RsIdentityListModel::Columns col)
- {
- QAction *action = displayMenu.addAction(QIcon(), name, this, SLOT(toggleColumnVisible()));
- action->setCheckable(true);
- action->setData(static_cast(col));
- action->setChecked(!ui->idTreeWidget->header()->isSectionHidden(col));
- };
-
- addEntry(tr("Id"),RsIdentityListModel::COLUMN_THREAD_ID);
- addEntry(tr("Owner Id"),RsIdentityListModel::COLUMN_THREAD_OWNER_ID);
- addEntry(tr("Owner Name"),RsIdentityListModel::COLUMN_THREAD_OWNER_NAME);
- addEntry(tr("Reputation"),RsIdentityListModel::COLUMN_THREAD_REPUTATION);
-
- //addEntry(tr("Name"),RsIdentityListModel::COLUMN_THREAD_NAME);
-
- displayMenu.exec(QCursor::pos());
-}
-
-void IdDialog::toggleColumnVisible()
-{
- QAction *action = dynamic_cast(sender());
-
- std::cerr << "Aciton = " << (void*)action << std::endl;
- if (!action)
- return;
-
- int column = action->data().toInt();
- bool visible = action->isChecked();
-
- ui->idTreeWidget->setColumnHidden(column, !visible);
-}
void IdDialog::IdListCustomPopupMenu( QPoint )
{
- QMenu contextMenu(this);
+ QMenu *contextMenu = new QMenu(this);
- std::list own_identities;
- rsIdentity->getOwnIds(own_identities);
- // make some stats about what's selected. If the same value is used for all selected items, it can be switched.
+ std::list own_identities;
+ rsIdentity->getOwnIds(own_identities);
- auto lst = getSelectedIdentities();
+ // make some stats about what's selected. If the same value is used for all selected items, it can be switched.
- if(lst.empty())
- return ;
+ QList selected_items = ui->idTreeWidget->selectedItems();
- //bool root_node_present = false ;
- bool one_item_owned_by_you = false ;
- uint32_t n_positive_reputations = 0 ;
- uint32_t n_negative_reputations = 0 ;
- uint32_t n_neutral_reputations = 0 ;
- uint32_t n_is_a_contact = 0 ;
- uint32_t n_is_not_a_contact = 0 ;
- uint32_t n_selected_items =0 ;
+ bool root_node_present = false ;
+ bool one_item_owned_by_you = false ;
+ uint32_t n_positive_reputations = 0 ;
+ uint32_t n_negative_reputations = 0 ;
+ uint32_t n_neutral_reputations = 0 ;
+ uint32_t n_is_a_contact = 0 ;
+ uint32_t n_is_not_a_contact = 0 ;
+ uint32_t n_selected_items =0 ;
- for(auto& keyId :lst)
- {
- //if(it == allItem || it == contactsItem || it == ownItem)
- //{
- // root_node_present = true ;
- // continue ;
- //}
+ for(auto& it :selected_items)
+ {
+ if(it == allItem || it == contactsItem || it == ownItem)
+ {
+ root_node_present = true ;
+ continue ;
+ }
- //uint32_t item_flags = mIdListModel->data(RSID_COL_KEYID,Qt::UserRole).toUInt() ;
+ uint32_t item_flags = it->data(RSID_COL_KEYID,Qt::UserRole).toUInt() ;
- if(rsIdentity->isOwnId(keyId))
- one_item_owned_by_you = true ;
+ if(item_flags & RSID_FILTER_OWNED_BY_YOU)
+ one_item_owned_by_you = true ;
#ifdef ID_DEBUG
- std::cerr << " item flags = " << item_flags << std::endl;
+ std::cerr << " item flags = " << item_flags << std::endl;
#endif
- RsIdentityDetails det ;
- rsIdentity->getIdDetails(keyId,det) ;
+ RsGxsId keyId(it->text(RSID_COL_KEYID).toStdString());
- switch(det.mReputation.mOwnOpinion)
- {
- case RsOpinion::NEGATIVE: ++n_negative_reputations; break;
- case RsOpinion::POSITIVE: ++n_positive_reputations; break;
- case RsOpinion::NEUTRAL: ++n_neutral_reputations; break;
- }
+ RsIdentityDetails det ;
+ rsIdentity->getIdDetails(keyId,det) ;
- ++n_selected_items;
+ switch(det.mReputation.mOwnOpinion)
+ {
+ case RsOpinion::NEGATIVE: ++n_negative_reputations; break;
+ case RsOpinion::POSITIVE: ++n_positive_reputations; break;
+ case RsOpinion::NEUTRAL: ++n_neutral_reputations; break;
+ }
- if(rsIdentity->isARegularContact(keyId))
- ++n_is_a_contact ;
- else
- ++n_is_not_a_contact ;
- }
+ ++n_selected_items;
- if(!one_item_owned_by_you)
- {
- QFrame *widget = new QFrame(&contextMenu);
- widget->setObjectName("gradFrame"); //Use qss
- //widget->setStyleSheet( ".QWidget{background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0 #FEFEFE, stop:1 #E8E8E8); border: 1px solid #CCCCCC;}");
+ if(rsIdentity->isARegularContact(keyId))
+ ++n_is_a_contact ;
+ else
+ ++n_is_not_a_contact ;
+ }
- // create menu header
- QHBoxLayout *hbox = new QHBoxLayout(widget);
- hbox->setMargin(0);
- hbox->setSpacing(6);
+ if(!root_node_present) // don't show menu if some of the root nodes are present
+ {
- QLabel *iconLabel = new QLabel(widget);
- iconLabel->setObjectName("trans_Icon");
- QPixmap pix = FilesDefs::getPixmapFromQtResourcePath(":/images/user/friends24.png").scaledToHeight(QFontMetricsF(iconLabel->font()).height()*1.5);
- iconLabel->setPixmap(pix);
- iconLabel->setMaximumSize(iconLabel->frameSize().height() + pix.height(), pix.width());
- hbox->addWidget(iconLabel);
+ if(!one_item_owned_by_you)
+ {
+ QFrame *widget = new QFrame(contextMenu);
+ widget->setObjectName("gradFrame"); //Use qss
+ //widget->setStyleSheet( ".QWidget{background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0 #FEFEFE, stop:1 #E8E8E8); border: 1px solid #CCCCCC;}");
- QLabel *textLabel = new QLabel("" + ui->titleBarLabel->text() + " ", widget);
- textLabel->setObjectName("trans_Text");
- hbox->addWidget(textLabel);
+ // create menu header
+ QHBoxLayout *hbox = new QHBoxLayout(widget);
+ hbox->setMargin(0);
+ hbox->setSpacing(6);
- QSpacerItem *spacerItem = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
- hbox->addItem(spacerItem);
+ QLabel *iconLabel = new QLabel(widget);
+ iconLabel->setObjectName("trans_Icon");
+ QPixmap pix = FilesDefs::getPixmapFromQtResourcePath(":/images/user/friends24.png").scaledToHeight(QFontMetricsF(iconLabel->font()).height()*1.5);
+ iconLabel->setPixmap(pix);
+ iconLabel->setMaximumSize(iconLabel->frameSize().height() + pix.height(), pix.width());
+ hbox->addWidget(iconLabel);
- widget->setLayout(hbox);
+ QLabel *textLabel = new QLabel("" + ui->titleBarLabel->text() + " ", widget);
+ textLabel->setObjectName("trans_Text");
+ hbox->addWidget(textLabel);
- QWidgetAction *widgetAction = new QWidgetAction(this);
- widgetAction->setDefaultWidget(widget);
- contextMenu.addAction(widgetAction);
+ QSpacerItem *spacerItem = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+ hbox->addItem(spacerItem);
- if(n_selected_items == 1) // if only one item is selected, allow to chat with this item
- {
- if(own_identities.size() <= 1)
- {
- QAction *action = contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/chats.png"), tr("Chat with this person"), this, SLOT(chatIdentity()));
+ widget->setLayout(hbox);
- if(own_identities.empty())
- action->setEnabled(false) ;
- else
- action->setData(QString::fromStdString((own_identities.front()).toStdString())) ;
- }
- else
- {
- QMenu *mnu = contextMenu.addMenu(FilesDefs::getIconFromQtResourcePath(":/icons/png/chats.png"),tr("Chat with this person as...")) ;
+ QWidgetAction *widgetAction = new QWidgetAction(this);
+ widgetAction->setDefaultWidget(widget);
+ contextMenu->addAction(widgetAction);
- for(std::list::const_iterator it=own_identities.begin();it!=own_identities.end();++it)
- {
- RsIdentityDetails idd ;
- rsIdentity->getIdDetails(*it,idd) ;
+ if(n_selected_items == 1) // if only one item is selected, allow to chat with this item
+ {
+ if(own_identities.size() <= 1)
+ {
+ QAction *action = contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/chats.png"), tr("Chat with this person"), this, SLOT(chatIdentity()));
- QPixmap pixmap ;
+ if(own_identities.empty())
+ action->setEnabled(false) ;
+ else
+ action->setData(QString::fromStdString((own_identities.front()).toStdString())) ;
+ }
+ else
+ {
+ QMenu *mnu = contextMenu->addMenu(FilesDefs::getIconFromQtResourcePath(":/icons/png/chats.png"),tr("Chat with this person as...")) ;
- if(idd.mAvatar.mSize == 0 || !GxsIdDetails::loadPixmapFromData(idd.mAvatar.mData, idd.mAvatar.mSize, pixmap,GxsIdDetails::SMALL))
- pixmap = GxsIdDetails::makeDefaultIcon(*it,GxsIdDetails::SMALL) ;
+ for(std::list::const_iterator it=own_identities.begin();it!=own_identities.end();++it)
+ {
+ RsIdentityDetails idd ;
+ rsIdentity->getIdDetails(*it,idd) ;
- QAction *action = mnu->addAction(QIcon(pixmap), QString("%1 (%2)").arg(QString::fromUtf8(idd.mNickname.c_str()), QString::fromStdString((*it).toStdString())), this, SLOT(chatIdentity()));
- action->setData(QString::fromStdString((*it).toStdString())) ;
- }
- }
- }
- // always allow to send messages
- contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(":/icons/mail/write-mail.png"), tr("Send message"), this, SLOT(sendMsg()));
+ QPixmap pixmap ;
- contextMenu.addSeparator();
+ if(idd.mAvatar.mSize == 0 || !GxsIdDetails::loadPixmapFromData(idd.mAvatar.mData, idd.mAvatar.mSize, pixmap,GxsIdDetails::SMALL))
+ pixmap = GxsIdDetails::makeDefaultIcon(*it,GxsIdDetails::SMALL) ;
- if(n_is_a_contact == 0)
- contextMenu.addAction(QIcon(), tr("Add to Contacts"), this, SLOT(addtoContacts()));
+ QAction *action = mnu->addAction(QIcon(pixmap), QString("%1 (%2)").arg(QString::fromUtf8(idd.mNickname.c_str()), QString::fromStdString((*it).toStdString())), this, SLOT(chatIdentity()));
+ action->setData(QString::fromStdString((*it).toStdString())) ;
+ }
+ }
+ }
+ // always allow to send messages
+ contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(":/icons/mail/write-mail.png"), tr("Send message"), this, SLOT(sendMsg()));
- if(n_is_not_a_contact == 0)
- contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(":/icons/cancel.svg"), tr("Remove from Contacts"), this, SLOT(removefromContacts()));
- }
- if (n_selected_items==1)
- contextMenu.addAction(QIcon(""),tr("Copy identity to clipboard"),this,SLOT(copyRetroshareLink())) ;
+ contextMenu->addSeparator();
- contextMenu.addSeparator();
+ if(n_is_a_contact == 0)
+ contextMenu->addAction(QIcon(), tr("Add to Contacts"), this, SLOT(addtoContacts()));
- if(n_positive_reputations == 0) // only unban when all items are banned
- contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/thumbs-up.png"), tr("Set positive opinion"), this, SLOT(positivePerson()));
+ if (n_selected_items==1)
+ contextMenu->addAction(QIcon(""),tr("Copy identity to clipboard"),this,SLOT(copyRetroshareLink())) ;
- if(n_neutral_reputations == 0) // only unban when all items are banned
- contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/thumbs-neutral.png"), tr("Set neutral opinion"), this, SLOT(neutralPerson()));
+ if(n_is_not_a_contact == 0)
+ contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(":/icons/cancel.svg"), tr("Remove from Contacts"), this, SLOT(removefromContacts()));
- if(n_negative_reputations == 0)
- contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/thumbs-down.png"), tr("Set negative opinion"), this, SLOT(negativePerson()));
+ contextMenu->addSeparator();
- if(one_item_owned_by_you && n_selected_items==1)
- {
- contextMenu.addSeparator();
+ if(n_positive_reputations == 0) // only unban when all items are banned
+ contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/thumbs-up.png"), tr("Set positive opinion"), this, SLOT(positivePerson()));
- contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_EDIT),tr("Edit identity"),this,SLOT(editIdentity())) ;
- contextMenu.addAction(FilesDefs::getIconFromQtResourcePath(":/icons/cancel.svg"),tr("Delete identity"),this,SLOT(removeIdentity())) ;
- }
+ if(n_neutral_reputations == 0) // only unban when all items are banned
+ contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/thumbs-neutral.png"), tr("Set neutral opinion"), this, SLOT(neutralPerson()));
- //contextMenu = ui->idTreeWidget->createStandardContextMenu(contextMenu);
+ if(n_negative_reputations == 0)
+ contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(":/icons/png/thumbs-down.png"), tr("Set negative opinion"), this, SLOT(negativePerson()));
+ }
- contextMenu.exec(QCursor::pos());
+ if(one_item_owned_by_you && n_selected_items==1)
+ {
+ contextMenu->addSeparator();
+
+ contextMenu->addAction(QIcon(""),tr("Copy identity to clipboard"),this,SLOT(copyRetroshareLink())) ;
+ contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_EDIT),tr("Edit identity"),this,SLOT(editIdentity())) ;
+ contextMenu->addAction(FilesDefs::getIconFromQtResourcePath(":/icons/cancel.svg"),tr("Delete identity"),this,SLOT(removeIdentity())) ;
+ }
+
+ }
+
+ contextMenu = ui->idTreeWidget->createStandardContextMenu(contextMenu);
+
+ contextMenu->exec(QCursor::pos());
+ delete contextMenu;
}
void IdDialog::copyRetroshareLink()
{
- auto gxs_id = getSelectedIdentity();
+ QTreeWidgetItem *item = ui->idTreeWidget->currentItem();
- if (gxs_id.isNull())
+ if (!item)
{
std::cerr << "IdDialog::editIdentity() Invalid item";
std::cerr << std::endl;
return;
}
+ RsGxsId gxs_id(item->text(RSID_COL_KEYID).toStdString());
+
+ if(gxs_id.isNull())
+ {
+ std::cerr << "Null GXS id. Something went wrong." << std::endl;
+ return ;
+ }
+
RsIdentityDetails details ;
if(! rsIdentity->getIdDetails(gxs_id,details))
@@ -2403,33 +2347,35 @@ void IdDialog::copyRetroshareLink()
});
}
-void IdDialog::chatIdentityItem(const QModelIndex& indx)
+void IdDialog::chatIdentity()
{
- auto toGxsId = mIdListModel->getIdentity(indx);
+ QTreeWidgetItem* item = ui->idTreeWidget->currentItem();
+ if (!item)
+ {
+ std::cerr << __PRETTY_FUNCTION__ << " Error. Invalid item!" << std::endl;
+ return;
+ }
- if(toGxsId.isNull())
+ chatIdentityItem(item);
+}
+
+void IdDialog::chatIdentityItem(QTreeWidgetItem* item)
+{
+ if(!item)
{
std::cerr << __PRETTY_FUNCTION__ << " Error. Invalid item." << std::endl;
return;
}
- chatIdentity(toGxsId);
-}
-void IdDialog::chatIdentity()
-{
- auto id = getSelectedIdentity();
+ std::string&& toIdString(item->text(RSID_COL_KEYID).toStdString());
+ RsGxsId toGxsId(toIdString);
+ if(toGxsId.isNull())
+ {
+ std::cerr << __PRETTY_FUNCTION__ << " Error. Invalid destination id: "
+ << toIdString << std::endl;
+ return;
+ }
- if(id.isNull())
- {
- std::cerr << __PRETTY_FUNCTION__ << " Error. Invalid item!" << std::endl;
- return;
- }
-
- chatIdentity(id);
-}
-
-void IdDialog::chatIdentity(const RsGxsId& toGxsId)
-{
RsGxsId fromGxsId;
QAction* action = qobject_cast(QObject::sender());
if(!action)
@@ -2448,7 +2394,8 @@ void IdDialog::chatIdentity(const RsGxsId& toGxsId)
if(fromGxsId.isNull())
{
- std::cerr << __PRETTY_FUNCTION__ << " Error. Could not determine sender identity to open chat toward: " << toGxsId << std::endl;
+ std::cerr << __PRETTY_FUNCTION__ << " Error. Could not determine sender"
+ << " identity to open chat toward: " << toIdString << std::endl;
return;
}
@@ -2465,12 +2412,12 @@ void IdDialog::chatIdentity(const RsGxsId& toGxsId)
void IdDialog::sendMsg()
{
- auto lst = getSelectedIdentities();
+ QList selected_items = ui->idTreeWidget->selectedItems();
- if(lst.empty())
+ if(selected_items.empty())
return ;
- if(lst.size() > 20)
+ if(selected_items.size() > 20)
if(QMessageBox::warning(nullptr,tr("Too many identities"),tr("It is not recommended to send a message to more than 20 persons at once. Large scale diffusion of data (including friend invitations) are much more efficiently handled by forums. Click ok to proceed anyway.
"),QMessageBox::Ok|QMessageBox::Cancel,QMessageBox::Cancel)==QMessageBox::Cancel)
return;
@@ -2478,10 +2425,15 @@ void IdDialog::sendMsg()
if (nMsgDialog == NULL)
return;
- for(const auto& id : lst)
- nMsgDialog->addRecipient(MessageComposer::TO, id);
+ for(auto& it : selected_items)
+ {
+ QTreeWidgetItem *item = it ;
- nMsgDialog->show();
+ std::string keyId = item->text(RSID_COL_KEYID).toStdString();
+
+ nMsgDialog->addRecipient(MessageComposer::TO, RsGxsId(keyId));
+ }
+ nMsgDialog->show();
nMsgDialog->activateWindow();
/* window will destroy itself! */
@@ -2494,11 +2446,14 @@ QString IdDialog::inviteMessage()
void IdDialog::sendInvite()
{
- auto id = getSelectedIdentity();
-
- if(id.isNull())
+ QTreeWidgetItem *item = ui->idTreeWidget->currentItem();
+ if (!item)
+ {
return;
+ }
+ RsGxsId id(ui->lineEdit_KeyId->text().toStdString());
+
//if ((QMessageBox::question(this, tr("Send invite?"),tr("Do you really want send a invite with your Certificate?"),QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes))== QMessageBox::Yes)
{
MessageComposer::sendInvite(id,false);
@@ -2506,60 +2461,83 @@ void IdDialog::sendInvite()
ui->info_Frame_Invite->show();
ui->inviteButton->setEnabled(false);
}
-
+
}
void IdDialog::negativePerson()
{
- auto lst = getSelectedIdentities();
+ QList selected_items = ui->idTreeWidget->selectedItems();
+ for(auto& it : selected_items)
+ {
+ QTreeWidgetItem *item = it ;
- for(const auto& id : lst)
- rsReputations->setOwnOpinion(id, RsOpinion::NEGATIVE);
+ std::string Id = item->text(RSID_COL_KEYID).toStdString();
- updateIdentity();
- updateIdListRequest();
+ rsReputations->setOwnOpinion(RsGxsId(Id), RsOpinion::NEGATIVE);
+ }
+
+ updateIdentity();
+ updateIdList();
}
void IdDialog::neutralPerson()
{
- auto lst = getSelectedIdentities();
+ QList selected_items = ui->idTreeWidget->selectedItems();
+ for(auto& it : selected_items)
+ {
+ QTreeWidgetItem *item = it ;
- for(const auto& id : lst)
- rsReputations->setOwnOpinion(id, RsOpinion::NEUTRAL);
+ std::string Id = item->text(RSID_COL_KEYID).toStdString();
- updateIdentity();
- updateIdListRequest();
+ rsReputations->setOwnOpinion(RsGxsId(Id), RsOpinion::NEUTRAL);
+ }
+
+ updateIdentity();
+ updateIdList();
}
void IdDialog::positivePerson()
{
- auto lst = getSelectedIdentities();
+ QList selected_items = ui->idTreeWidget->selectedItems();
+ for(auto& it : selected_items)
+ {
+ QTreeWidgetItem *item = it ;
- for(const auto& id : lst)
- rsReputations->setOwnOpinion(id, RsOpinion::POSITIVE);
+ std::string Id = item->text(RSID_COL_KEYID).toStdString();
- updateIdentity();
- updateIdListRequest();
+ rsReputations->setOwnOpinion(RsGxsId(Id), RsOpinion::POSITIVE);
+ }
+
+ updateIdentity();
+ updateIdList();
}
void IdDialog::addtoContacts()
{
- auto lst = getSelectedIdentities();
+ QList selected_items = ui->idTreeWidget->selectedItems();
+ for(auto& it : selected_items)
+ {
+ QTreeWidgetItem *item = it ;
+ std::string Id = item->text(RSID_COL_KEYID).toStdString();
- for(const auto& id : lst)
- rsIdentity->setAsRegularContact(id,true);
+ rsIdentity->setAsRegularContact(RsGxsId(Id),true);
+ }
- updateIdListRequest();
+ updateIdList();
}
void IdDialog::removefromContacts()
{
- auto lst = getSelectedIdentities();
+ QList selected_items = ui->idTreeWidget->selectedItems();
+ for(auto& it : selected_items)
+ {
+ QTreeWidgetItem *item = it ;
+ std::string Id = item->text(RSID_COL_KEYID).toStdString();
- for(const auto& id : lst)
- rsIdentity->setAsRegularContact(id,false);
+ rsIdentity->setAsRegularContact(RsGxsId(Id),false);
+ }
- updateIdListRequest();
+ updateIdList();
}
void IdDialog::on_closeInfoFrameButton_Invite_clicked()
@@ -2615,174 +2593,3 @@ void IdDialog::restoreExpandedCircleItems(const std::vector& expanded_root
restoreTopLevel(mMyCircleItem,2);
}
-void IdDialog::applyWhileKeepingTree(std::function predicate)
-{
- std::set expanded,selected;
-
- saveExpandedPathsAndSelection_idTreeView(expanded, selected);
-#ifdef DEBUG_NEW_FRIEND_LIST
- std::cerr << "After collecting selection, selected paths is: \"" << selected.toStdString() << "\", " ;
- std::cerr << "expanded paths are: " << std::endl;
- for(auto path:expanded)
- std::cerr << " \"" << path.toStdString() << "\"" << std::endl;
- std::cerr << "Current sort column is: " << mLastSortColumn << " and order is " << mLastSortOrder << std::endl;
-#endif
-
- // This is a hack to avoid crashes on windows while calling endInsertRows(). I'm not sure wether these crashes are
- // due to a Qt bug, or a misuse of the proxy model on my side. Anyway, this solves them for good.
- // As a side effect we need to save/restore hidden columns because setSourceModel() resets this setting.
-
- // save hidden columns and sizes
- std::vector col_visible(RsIdentityListModel::COLUMN_THREAD_NB_COLUMNS);
- std::vector col_sizes(RsIdentityListModel::COLUMN_THREAD_NB_COLUMNS);
-
- for(int i=0;iidTreeWidget->isColumnHidden(i);
- col_sizes[i] = ui->idTreeWidget->columnWidth(i);
- }
-
-#ifdef SUSPENDED
-#ifdef DEBUG_NEW_FRIEND_LIST
- std::cerr << "Applying predicate..." << std::endl;
-#endif
-#endif
- mProxyModel->setSourceModel(nullptr);
- predicate();
- mProxyModel->setSourceModel(mIdListModel);
-
- restoreExpandedPathsAndSelection_idTreeView(expanded,selected);
- // restore hidden columns
- for(uint32_t i=0;iidTreeWidget->setColumnHidden(i,!col_visible[i]);
- ui->idTreeWidget->setColumnWidth(i,col_sizes[i]);
- }
-
- mProxyModel->setSortingEnabled(true);
- mProxyModel->sort(mLastSortColumn,mLastSortOrder);
- mProxyModel->setSortingEnabled(false);
-#ifdef SUSPENDED
- // restore sorting
- // sortColumn(mLastSortColumn,mLastSortOrder);
-#ifdef DEBUG_NEW_FRIEND_LIST
- std::cerr << "Sorting again with sort column: " << mLastSortColumn << " and order " << mLastSortOrder << std::endl;
-#endif
-
-// if(selected_index.isValid())
-// ui->idTreeWidget->scrollTo(selected_index);
-#endif
-}
-
-void IdDialog::saveExpandedPathsAndSelection_idTreeView(std::set& expanded, std::set& selected)
-{
-#ifdef DEBUG_ID_DIALOG
- std::cerr << "Saving expended paths and selection..." << std::endl;
-#endif
-
- for(int row = 0; row < mProxyModel->rowCount(); ++row)
- recursSaveExpandedItems_idTreeView(mProxyModel->index(row,0),QStringList(),expanded,selected);
-}
-
-void IdDialog::restoreExpandedPathsAndSelection_idTreeView(const std::set& expanded, const std::set& selected)
-{
-#ifdef DEBUG_ID_DIALOG
- std::cerr << "Restoring expanded paths and selection..." << std::endl;
- std::cerr << " expanded: " << expanded.size() << " items" << std::endl;
- std::cerr << " selected: " << selected.size() << " items" << std::endl;
-#endif
- ui->idTreeWidget->blockSignals(true) ;
- ui->idTreeWidget->selectionModel()->blockSignals(true) ;
-
- ui->idTreeWidget->clearSelection();
-
- for(int row = 0; row < mProxyModel->rowCount(); ++row)
- recursRestoreExpandedItems_idTreeView(mProxyModel->index(row,0),QStringList(),expanded,selected);
-
- ui->idTreeWidget->selectionModel()->blockSignals(false) ;
- ui->idTreeWidget->blockSignals(false) ;
-}
-
-void IdDialog::recursSaveExpandedItems_idTreeView(const QModelIndex& proxy_index,const QStringList& parent_path,std::set& expanded,std::set& selected)
-{
- QStringList local_path = parent_path;
-
- local_path.push_back(mIdListModel->indexIdentifier(mProxyModel->mapToSource(proxy_index)));
-
- if(ui->idTreeWidget->isExpanded(proxy_index))
- {
-#ifdef DEBUG_ID_DIALOG
- std::cerr << "Adding expanded path ";
- for(auto L:local_path) std::cerr << "\"" << L.toStdString() << "\" " ; std::cerr << std::endl;
-#endif
- if(proxy_index.isValid())
- expanded.insert(local_path) ;
-
- for(int row=0;rowrowCount(proxy_index);++row)
- recursSaveExpandedItems_idTreeView(proxy_index.child(row,0),local_path,expanded,selected) ;
- }
-
- if(ui->idTreeWidget->selectionModel()->isSelected(proxy_index))
- {
-#ifdef DEBUG_ID_DIALOG
- std::cerr << "Adding selected path ";
- for(auto L:local_path) std::cerr << "\"" << L.toStdString() << "\" " ; std::cerr << std::endl;
-#endif
- selected.insert(local_path);
- }
-}
-
-void IdDialog::recursRestoreExpandedItems_idTreeView(const QModelIndex& proxy_index,const QStringList& parent_path,const std::set& expanded,const std::set& selected)
-{
- QStringList local_path = parent_path;
- local_path.push_back(mIdListModel->indexIdentifier(mProxyModel->mapToSource(proxy_index)));
-
-#ifdef DEBUG_ID_DIALOG
- std::cerr << "Local path = " ; for(auto L:local_path) std::cerr << "\"" << L.toStdString() << "\" " ; std::cerr << std::endl;
-#endif
-
- if(expanded.find(local_path) != expanded.end())
- {
-#ifdef DEBUG_ID_DIALOG
- std::cerr << " re expanding " ;
- for(auto L:local_path) std::cerr << "\"" << L.toStdString() << "\" " ; std::cerr << std::endl;
-#endif
-
- ui->idTreeWidget->setExpanded(proxy_index,true) ;
-
- for(int row=0;rowrowCount(proxy_index);++row)
- recursRestoreExpandedItems_idTreeView(proxy_index.child(row,0),local_path,expanded,selected) ;
- }
-
- if(selected.find(local_path) != selected.end())
- {
-#ifdef DEBUG_ID_DIALOG
- std::cerr << "Restoring selected path ";
- for(auto L:local_path) std::cerr << "\"" << L.toStdString() << "\" " ; std::cerr << std::endl;
-#endif
- ui->idTreeWidget->selectionModel()->select(proxy_index, QItemSelectionModel::Current|QItemSelectionModel::Select | QItemSelectionModel::Rows);
- }
-}
-
-void IdDialog::sortColumn(int col,Qt::SortOrder so)
-{
-#ifdef DEBUG_NEW_FRIEND_LIST
- std::cerr << "Sorting with column=" << col << " and order=" << so << std::endl;
-#endif
- std::set expanded_indexes,selected_indexes;
-
- saveExpandedPathsAndSelection_idTreeView(expanded_indexes, selected_indexes);
- whileBlocking(ui->idTreeWidget)->clearSelection();
-
- mProxyModel->setSortingEnabled(true);
- mProxyModel->sort(col,so);
- mProxyModel->setSortingEnabled(false);
-
- restoreExpandedPathsAndSelection_idTreeView(expanded_indexes,selected_indexes);
-
- //if(selected_index.isValid())
- // ui->peerTreeWidget->scrollTo(selected_index);
-
- mLastSortColumn = col;
- mLastSortOrder = so;
-}
diff --git a/retroshare-gui/src/gui/Identity/IdDialog.h b/retroshare-gui/src/gui/Identity/IdDialog.h
index d4629a5af..403b3a437 100644
--- a/retroshare-gui/src/gui/Identity/IdDialog.h
+++ b/retroshare-gui/src/gui/Identity/IdDialog.h
@@ -22,10 +22,8 @@
#define IDENTITYDIALOG_H
#include "gui/gxs/RsGxsUpdateBroadcastPage.h"
-#include "util/FontSizeHandler.h"
-#include "retroshare/rsidentity.h"
-#include "IdentityListModel.h"
+#include
#include
@@ -36,11 +34,7 @@ class IdDialog;
}
class UIStateHelper;
-class QStyledItemDelegate;
class QTreeWidgetItem;
-class RsIdentityListModel;
-class IdListSortFilterProxyModel;
-class QItemSelection;
class IdDialog : public MainPage
{
@@ -64,7 +58,6 @@ protected:
void loadIdentity(RsGxsIdGroup id_data);
void loadCircles(const std::list& circle_metas);
- void updateIdListRequest();
//void requestCircleGroupData(const RsGxsCircleId& circle_id);
bool getItemCircleId(QTreeWidgetItem *item,RsGxsCircleId& id) ;
@@ -73,13 +66,13 @@ protected:
private slots:
- void updateIdList();
- void updateCircles();
- void createExternalCircle();
+ void updateIdList();
+ void updateCircles();
+
+ void createExternalCircle();
void showEditExistingCircle();
void updateCirclesDisplay();
void toggleAutoBanIdentities(bool b);
- void sortColumn(int col,Qt::SortOrder so);
void acceptCircleSubscription() ;
void cancelCircleSubscription() ;
@@ -93,20 +86,17 @@ private slots:
void removeIdentity();
void editIdentity();
void chatIdentity();
- void chatIdentityItem(const QModelIndex &indx);
- void chatIdentity(const RsGxsId& toGxsId);
- void sendMsg();
+ void chatIdentityItem(QTreeWidgetItem* item);
+ void sendMsg();
void copyRetroshareLink();
void on_closeInfoFrameButton_Invite_clicked();
- void updateSelection(const QItemSelection &new_sel, const QItemSelection &old_sel);
+ void updateSelection();
void modifyReputation();
/** Create the context popup menu and it's submenus */
void IdListCustomPopupMenu( QPoint point );
- void headerContextMenuRequested(QPoint);
- void toggleColumnVisible();
void CircleListCustomPopupMenu(QPoint point) ;
#ifdef SUSPENDED
@@ -127,12 +117,7 @@ private:
void processSettings(bool load);
QString createUsageString(const RsIdentityUsage& u) const;
- void saveExpandedPathsAndSelection_idTreeView(std::set &expanded, std::set &selected);
- void restoreExpandedPathsAndSelection_idTreeView(const std::set& expanded, const std::set& selelected);
- void recursSaveExpandedItems_idTreeView(const QModelIndex& index, const QStringList& parent_path, std::set& expanded, std::set& selected);
- void recursRestoreExpandedItems_idTreeView(const QModelIndex& index,const QStringList& parent_path,const std::set& expanded,const std::set& selected);
-
- void requestIdData(std::list &ids);
+ void requestIdData(std::list &ids);
bool fillIdListItem(const RsGxsIdGroup& data, QTreeWidgetItem *&item, const RsPgpId &ownPgpId, int accept);
void insertIdList(uint32_t token);
void filterIds();
@@ -149,32 +134,20 @@ private:
private:
UIStateHelper *mStateHelper;
+ QTreeWidgetItem *contactsItem;
+ QTreeWidgetItem *allItem;
+ QTreeWidgetItem *ownItem;
QTreeWidgetItem *mExternalBelongingCircleItem;
QTreeWidgetItem *mExternalOtherCircleItem;
QTreeWidgetItem *mMyCircleItem;
RsGxsUpdateBroadcastBase *mCirclesBroadcastBase ;
- int mLastSortColumn;
- Qt::SortOrder mLastSortOrder;
-
- void saveExpandedCircleItems(std::vector &expanded_root_items, std::set& expanded_circle_items) const;
+ void saveExpandedCircleItems(std::vector &expanded_root_items, std::set& expanded_circle_items) const;
void restoreExpandedCircleItems(const std::vector& expanded_root_items,const std::set& expanded_circle_items);
- void applyWhileKeepingTree(std::function predicate);
-
- RsGxsId getSelectedIdentity() const;
- std::list getSelectedIdentities() const;
-
- RsGxsGroupId mId;
+ RsGxsGroupId mId;
RsGxsGroupId mIdToNavigate;
int filter;
- bool mColumnSizeAlreadySet; // remembers if we already did some size set. If not, automatically stretch to content.
-
- QStyledItemDelegate *mElidedLabelDelegate;
- QStyledItemDelegate *mReputationDelegate;
-
- RsIdentityListModel *mIdListModel;
- IdListSortFilterProxyModel *mProxyModel;
void handleEvent_main_thread(std::shared_ptr event);
RsEventsHandlerId_t mEventHandlerId_identity;
@@ -184,8 +157,6 @@ private:
bool needUpdateIdsOnNextShow;
bool needUpdateCirclesOnNextShow;
- FontSizeHandler mFontSizeHandler;
-
/* UI - Designer */
Ui::IdDialog *ui;
};
diff --git a/retroshare-gui/src/gui/Identity/IdDialog.ui b/retroshare-gui/src/gui/Identity/IdDialog.ui
index 37522524e..7687c321d 100644
--- a/retroshare-gui/src/gui/Identity/IdDialog.ui
+++ b/retroshare-gui/src/gui/Identity/IdDialog.ui
@@ -6,7 +6,7 @@
0
0
- 878
+ 800
584
@@ -127,7 +127,7 @@
Qt::NoFocus
-
+
:/icons/help_64.png :/icons/help_64.png
@@ -154,10 +154,10 @@
-
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
@@ -173,11 +173,7 @@
1
-
-
-
- Search...
-
-
+
-
@@ -215,13 +211,18 @@
-
-
+
0
0
+
+
+ 11
+
+
Qt::CustomContextMenu
@@ -240,9 +241,39 @@
true
-
- true
+
+ false
+
+
+ Persons
+
+
+
+
+ Identity ID
+
+
+
+
+ Owned by
+
+
+
+
+
+
+
+ Votes
+
+
+ AlignLeading|AlignVCenter
+
+
+
+ :/icons/flag-green.png :/icons/flag-green.png
+
+
@@ -270,206 +301,268 @@
0
0
- 535
- 784
+ 466
+ 738
-
- -
-
-
- 3
-
- -
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 128
- 128
-
-
-
-
- 128
- 128
-
-
-
- QFrame::StyledPanel
-
-
- QFrame::Raised
-
-
- Your Avatar
-
-
- true
-
-
- Qt::AlignCenter
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- Edit Identity
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- Send Invite
-
-
-
-
-
- -
-
-
- 6
-
-
- 2
-
- -
-
-
-
- 34
- 34
-
-
-
-
-
-
- :/icons/png/thumbs-up.png
-
-
- true
-
-
-
- -
-
-
-
- 16
-
-
-
- Positive votes
-
-
- 0
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- -
-
-
-
- 34
- 34
-
-
-
-
-
-
- :/icons/png/thumbs-down.png
-
-
- true
-
-
-
- -
-
-
-
- 16
-
-
-
- Negative votes
-
-
- 0
-
-
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 118
- 17
-
-
-
-
-
-
- -
-
-
-
- 22
-
-
-
- People
-
-
- Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse
-
-
-
- -
-
+
+ -
+
-
+
0
0
+
+ QFrame::StyledPanel
+
+
+ QFrame::Raised
+
+
+
+ 12
+
+ -
+
+ -
+
+
+
+ 22
+
+
+
+ People
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 255
+ 255
+ 255
+
+
+
+
+
+
+ 255
+ 255
+ 178
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 255
+ 255
+ 255
+
+
+
+
+
+
+ 255
+ 255
+ 178
+
+
+
+
+
+
+
+
+ 154
+ 154
+ 154
+
+
+
+
+
+
+ 255
+ 255
+ 178
+
+
+
+
+
+
+ 255
+ 255
+ 178
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+ QFrame::Box
+
+
+
+ 6
+
+
+ 6
+
+
+ 6
+
+
+ 6
+
+ -
+
+
+
+ 16
+ 16
+
+
+
+
+
+
+ :/images/info16.png
+
+
+ Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
+
+
+
+ -
+
+
+ Invite messages stay into your Outbox until an acknowledgement of receipt has been received.
+
+
+ true
+
+
+
+ -
+
+
+
+ 16
+ 16
+
+
+
+ Qt::NoFocus
+
+
+ Close
+
+
+ QToolButton
+{
+ border-image: url(:/images/closenormal.png)
+}
+
+QToolButton:hover
+{
+border-image: url(:/images/closehover.png)
+}
+
+QToolButton:pressed {
+border-image: url(:/images/closepressed.png)
+}
+
+
+ true
+
+
+
+
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 64
+ 64
+
+
+
+
+ 1000
+ 1000
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+ -
+
0
@@ -477,106 +570,34 @@
-
+ Identity info
-
- 9
-
- -
-
-
- Auto-Ban all identities signed by the same node
-
+ -
+
- Auto-Ban profile
+ Friend votes:
- -
-
-
- <html><head/><body><p>Average opinion of neighbor nodes about this identity. Negative is bad,</p><p>positive is good. Zero is neutral.</p></body></html>
-
-
- true
-
-
-
- -
-
-
- Ban-option:
-
-
-
- -
-
-
- true
-
-
-
- -
-
-
- true
-
-
-
- -
-
-
- Identity ID :
-
-
-
- -
-
-
- Last used:
-
-
-
- -
+
-
Qt::Horizontal
- -
-
-
- Owner node ID :
+ -
+
+
+ true
-
-
- -
-
-
- Created on :
-
-
-
- -
-
-
- Friend votes:
-
-
+
true
- -
-
-
- Type:
-
-
-
- -
+
-
true
@@ -586,14 +607,133 @@
- -
+
-
+
+
+ Last used:
+
+
+
+ -
+
+
+ Auto-Ban all identities signed by the same node
+
+
+ Auto-Ban profile
+
+
+
+ -
+
+
+ true
+
+
+
+ -
+
+
+ true
+
+
+ true
+
+
+
+ -
+
+
+ true
+
+
+ true
+
+
+
+ -
+
+
+ <html><head/><body><p>Overall reputation score, accounting for yours and your friends'.</p><p>Negative is bad, positive is good. Zero is neutral. If the score is too low,</p><p>the identity is flagged as bad, and will be filtered out in forums, chat lobbies,</p><p>channels, etc.</p></body></html>
+
+
+ true
+
+
+
+ -
Your opinion:
- -
+
-
+
+
+
+ 75
+ true
+
+
+
+ Overall:
+
+
+
+ -
+
+
+ Created on :
+
+
+
+ -
+
+
+ Identity name :
+
+
+
+ -
+
+
+ Identity ID :
+
+
+
+ -
+
+
+ <html><head/><body><p>Average opinion of neighbor nodes about this identity. Negative is bad,</p><p>positive is good. Zero is neutral.</p></body></html>
+
+
+ true
+
+
+
+ -
+
+
+ true
+
+
+
+ -
+
+
+ Type:
+
+
+
+ -
+
+
+ true
+
+
+
+ -
Qt::Vertical
@@ -606,17 +746,28 @@
- -
-
-
- true
-
-
- true
+ -
+
+
+ Owner node ID :
- -
+
-
+
+
+ Owner node name :
+
+
+
+ -
+
+
+ Ban-option:
+
+
+
+ -
<html><head/><body><p><span style=" font-family:'Sans'; font-size:9pt;">Your own opinion about an identity rules the visibility of that identity for yourself and your friend nodes. Your own opinion is shared among friends and used to compute a reputation score: If your opinion about an identity is neutral, the reputation score is the difference between friend's positive and negative opinions. If not, your own opinion gives the score.</span></p><p><span style=" font-family:'Sans'; font-size:9pt;">The overall score is used in chat lobbies, forums and channels to decide on the actions to take for each specific identity. When the overall score is lower than -1, the identity is banned, which prevents all messages and forums/channels authored by this identity to be forwarded, both ways. Some forums also have special anti-spam flags that require a non negative reputation level, making them more sensitive to bad opinions. Banned identities gradually lose their activity and eventually disappear (after 5 days).</span></p><p><span style=" font-family:'Sans'; font-size:9pt;">You can change the thresholds and the time of inactivity to delete identities in preferences -> people. </span></p></body></html>
@@ -656,244 +807,202 @@
- -
-
-
- <html><head/><body><p>Overall reputation score, accounting for yours and your friends'.</p><p>Negative is bad, positive is good. Zero is neutral. If the score is too low,</p><p>the identity is flagged as bad, and will be filtered out in forums, chat lobbies,</p><p>channels, etc.</p></body></html>
+ -
+
+
+ 0
-
- true
-
-
-
- -
-
-
- Owner node name :
-
-
-
- -
-
-
- true
-
-
- true
-
-
-
- -
-
-
- true
-
-
-
- -
-
-
-
- 75
- true
-
-
-
- Overall:
-
-
+ -
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 128
+ 128
+
+
+
+
+ 128
+ 128
+
+
+
+ QFrame::Box
+
+
+ QFrame::Sunken
+
+
+ Your Avatar
+
+
+ true
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ Edit Identity
+
+
+
+ -
+
+
+ Send Invite
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Minimum
+
+
+
+ 6
+ 128
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Minimum
+
+
+
+ 6
+ 128
+
+
+
+
+
+
+ -
+
+
+ 6
+
+
+ 2
+
+ -
+
+
+
+ 34
+ 34
+
+
+
+
+
+
+ :/icons/png/thumbs-up.png
+
+
+ true
+
+
+
+ -
+
+
+
+ 16
+
+
+
+ Positive votes
+
+
+ 0
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ -
+
+
+
+ 34
+ 34
+
+
+
+
+
+
+ :/icons/png/thumbs-down.png
+
+
+ true
+
+
+
+ -
+
+
+
+ 16
+
+
+
+ Negative votes
+
+
+ 0
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 118
+ 17
+
+
+
+
+
- -
-
-
-
- 0
- 0
-
-
-
-
-
-
-
-
- 0
- 0
- 0
-
-
-
-
-
-
- 255
- 255
- 255
-
-
-
-
-
-
- 255
- 255
- 178
-
-
-
-
-
-
-
-
- 0
- 0
- 0
-
-
-
-
-
-
- 255
- 255
- 255
-
-
-
-
-
-
- 255
- 255
- 178
-
-
-
-
-
-
-
-
- 154
- 154
- 154
-
-
-
-
-
-
- 255
- 255
- 178
-
-
-
-
-
-
- 255
- 255
- 178
-
-
-
-
-
-
-
- true
-
-
-
-
-
- QFrame::Box
-
-
-
- 6
-
-
- 6
-
-
- 6
-
-
- 6
-
- -
-
-
-
- 16
- 16
-
-
-
-
-
-
- :/images/info16.png
-
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
-
-
-
- -
-
-
- Invite messages stay into your Outbox until an acknowledgement of receipt has been received.
-
-
- true
-
-
-
- -
-
-
-
- 16
- 16
-
-
-
- Qt::NoFocus
-
-
- Close
-
-
- QToolButton
-{
- border-image: url(:/images/closenormal.png)
-}
-
-QToolButton:hover
-{
-border-image: url(:/images/closehover.png)
-}
-
-QToolButton:pressed {
-border-image: url(:/images/closepressed.png)
-}
-
-
- true
-
-
-
-
-
-
- -
+
-
Usage statistics
@@ -905,7 +1014,7 @@ border-image: url(:/images/closepressed.png)
- -
+
-
Qt::Vertical
@@ -919,6 +1028,9 @@ border-image: url(:/images/closepressed.png)
+ detailsGroupBox
+ usageStatisticsGBox
+ headerBFramePerson
@@ -987,6 +1099,11 @@ border-image: url(:/images/closepressed.png)
-
+
+
+ 11
+
+
Qt::CustomContextMenu
@@ -1047,18 +1164,22 @@ border-image: url(:/images/closepressed.png)
LineEditClear
QLineEdit
- gui/common/LineEditClear.h
+ gui/common/LineEditClear.h
- RSComboBox
- QComboBox
-
+ RSTreeWidget
+ QTreeWidget
+ gui/common/RSTreeWidget.h
ElidedLabel
QLabel
- 1
+
+
+ RSComboBox
+ QComboBox
+
RSTextBrowser
@@ -1070,8 +1191,8 @@ border-image: url(:/images/closepressed.png)
idTreeWidget
-
+
diff --git a/retroshare-gui/src/gui/Identity/IdEditDialog.cpp b/retroshare-gui/src/gui/Identity/IdEditDialog.cpp
index add0de131..ac9965d2a 100644
--- a/retroshare-gui/src/gui/Identity/IdEditDialog.cpp
+++ b/retroshare-gui/src/gui/Identity/IdEditDialog.cpp
@@ -700,10 +700,10 @@ void IdEditDialog::removeAvatar()
void IdEditDialog::updateInterface()
{
- QPixmap pixmap = ui->avatarLabel->pixmap(Qt::ReturnByValue);
- if (!pixmap.isNull()) {
+ const QPixmap *pixmap = ui->avatarLabel->pixmap();
+ if (pixmap && !pixmap->isNull()) {
ui->removeButton->setEnabled(true);
- } else if (mEditGroup.mImage.mSize > 0) {
+ } else if (mEditGroup.mImage.mSize != NULL) {
ui->removeButton->setEnabled(true);
} else {
ui->removeButton->setEnabled(false);
diff --git a/retroshare-gui/src/gui/Identity/IdentityListModel.cpp b/retroshare-gui/src/gui/Identity/IdentityListModel.cpp
deleted file mode 100644
index b55d9c160..000000000
--- a/retroshare-gui/src/gui/Identity/IdentityListModel.cpp
+++ /dev/null
@@ -1,968 +0,0 @@
-/*******************************************************************************
- * retroshare-gui/src/gui/msgs/RsFriendListModel.cpp *
- * *
- * Copyright 2019 by Cyril Soler *
- * *
- * This program is free software: you can redistribute it and/or modify *
- * it under the terms of the GNU Affero General Public License as *
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details. *
- * *
- * You should have received a copy of the GNU Affero General Public License *
- * along with this program. If not, see . *
- * *
- *******************************************************************************/
-
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include "gui/common/AvatarDefs.h"
-#include "util/qtthreadsutils.h"
-#include "util/HandleRichText.h"
-#include "util/DateTime.h"
-#include "gui/gxs/GxsIdDetails.h"
-#include "retroshare/rsexpr.h"
-
-#include "IdentityListModel.h"
-
-//#define DEBUG_MODEL
-//#define DEBUG_MODEL_INDEX
-
-std::ostream& operator<<(std::ostream& o, const QModelIndex& i);// defined elsewhere
-
-const QString RsIdentityListModel::FilterString("filtered");
-
-const uint32_t MAX_INTERNAL_DATA_UPDATE_DELAY = 300 ; // re-update the internal data every 5 mins. Should properly cover sleep/wake-up changes.
-const uint32_t MAX_NODE_UPDATE_DELAY = 10 ; // re-update the internal data every 5 mins. Should properly cover sleep/wake-up changes.
-
-static const uint32_t ID_DETAILS_UPDATE_DELAY = 5; // update each node every 5 secs.
-
-RsIdentityListModel::RsIdentityListModel(QObject *parent)
- : QAbstractItemModel(parent)
- , mLastInternalDataUpdate(0), mLastNodeUpdate(0)
-{
- mFontSize = QApplication::font().pointSize();
-
- mFilterStrings.clear();
- mIdentityUpdateTimer = new QTimer();
- connect(mIdentityUpdateTimer,SIGNAL(timeout()),this,SLOT(timerUpdate()));
-}
-
-void RsIdentityListModel::timerUpdate()
-{
- emit dataChanged(index(0,0,QModelIndex()),index(2,0,QModelIndex()));
-}
-RsIdentityListModel::EntryIndex::EntryIndex()
- : type(ENTRY_TYPE_INVALID),category_index(0),identity_index(0)
-{
-}
-
-// The index encodes the whole hierarchy of parents. This allows to very efficiently compute indices of the parent of an index.
-//
-// On 32 bits and 64 bits architectures the format is the following:
-//
-// 0x [2 bits] 00000 [24 bits] [2 bits]
-// | | |
-// | | +-------------- type (0=top level, 1=category, 2=identity)
-// | +----------------------- identity index
-// +-------------------------------------- category index
-//
-
-bool RsIdentityListModel::convertIndexToInternalId(const EntryIndex& e,quintptr& id)
-{
- // the internal id is set to the place in the table of items. We simply shift to allow 0 to mean something special.
-
- if(e.type == ENTRY_TYPE_INVALID)
- {
- RsErr() << "ERROR: asked for the internal id of an invalid EntryIndex" ;
- id = 0;
- return true;
- }
- if(bool(e.identity_index >> 24))
- {
- RsErr() << "Cannot encode more than 2^24 identities. Somthing's wrong. e.identity_index = " << std::hex << e.identity_index << std::dec ;
- id = 0;
- return false;
- }
-
- id = ((0x3 & (uint32_t)e.category_index) << 30) + ((uint32_t)e.identity_index << 2) + (0x3 & (uint32_t)e.type);
-
- return true;
-}
-bool RsIdentityListModel::convertInternalIdToIndex(quintptr ref,EntryIndex& e)
-{
- // Compatible with ref=0 since it will cause type=TOP_LEVEL
-
- e.type = static_cast((ref >> 0) & 0x3) ;// 2 bits
- e.identity_index = (ref >> 2) & 0xffffff;// 24 bits
- e.category_index = (ref >> 30) & 0x3 ;// 2 bits
-
- return true;
-}
-
-static QIcon createAvatar(const QPixmap &avatar, const QPixmap &overlay)
-{
- int avatarWidth = avatar.width();
- int avatarHeight = avatar.height();
-
- QPixmap pixmap(avatar);
-
- int overlaySize = (avatarWidth > avatarHeight) ? (avatarWidth/2.5) : (avatarHeight/2.5);
- int overlayX = avatarWidth - overlaySize;
- int overlayY = avatarHeight - overlaySize;
-
- QPainter painter(&pixmap);
- painter.drawPixmap(overlayX, overlayY, overlaySize, overlaySize, overlay);
-
- QIcon icon;
- icon.addPixmap(pixmap);
- return icon;
-}
-
-void RsIdentityListModel::preMods()
-{
- emit layoutAboutToBeChanged();
-}
-void RsIdentityListModel::postMods()
-{
- emit dataChanged(createIndex(0,0,(void*)NULL), createIndex(rowCount()-1,columnCount()-1,(void*)NULL));
- emit layoutChanged();
-}
-
-int RsIdentityListModel::rowCount(const QModelIndex& parent) const
-{
- if(parent.column() >= COLUMN_THREAD_NB_COLUMNS)
- return 0;
-
- EntryIndex index;
-
- if(!parent.isValid() || !convertInternalIdToIndex(parent.internalId(),index))
- return mCategories.size();
-
- switch(index.type)
- {
- case ENTRY_TYPE_CATEGORY: return mCategories[index.category_index].child_identity_indices.size();
- case ENTRY_TYPE_TOP_LEVEL: return mCategories.size();
- default:
- return 0;
- }
-}
-
-int RsIdentityListModel::columnCount(const QModelIndex &/*parent*/) const
-{
- return COLUMN_THREAD_NB_COLUMNS ;
-}
-
-bool RsIdentityListModel::hasChildren(const QModelIndex &parent) const
-{
- if(!parent.isValid())
- return true;
-
- EntryIndex parent_index ;
- convertInternalIdToIndex(parent.internalId(),parent_index);
-
- if(parent_index.type == ENTRY_TYPE_TOP_LEVEL)
- return true;
-
- if(parent_index.type == ENTRY_TYPE_IDENTITY)
- return false;
-
- if(parent_index.type == ENTRY_TYPE_CATEGORY)
- return !mCategories[parent_index.category_index].child_identity_indices.empty();
-
- return false;
-}
-
-RsIdentityListModel::EntryIndex RsIdentityListModel::EntryIndex::parent() const
-{
- EntryIndex i(*this);
-
- switch(type)
- {
- case ENTRY_TYPE_CATEGORY: i.type = ENTRY_TYPE_TOP_LEVEL;
- i.category_index = 0;
- i.identity_index = 0;
- break;
-
- case ENTRY_TYPE_IDENTITY: i.type = ENTRY_TYPE_CATEGORY;
- i.identity_index = 0;
- break;
- case ENTRY_TYPE_TOP_LEVEL:
- std::cerr << "ERROR: calling parent() on entryindex with no parent!" << std::endl;
-
- default:
- //Can be when request root index.
- break;
- }
-
- return i;
-}
-
-RsIdentityListModel::EntryIndex RsIdentityListModel::EntryIndex::child(int row) const
-{
- EntryIndex i;
-
- switch(type)
- {
- case ENTRY_TYPE_TOP_LEVEL:
- i.type = ENTRY_TYPE_CATEGORY;
- i.category_index = row;
- i.identity_index = 0;
-
- break;
-
- case ENTRY_TYPE_CATEGORY: i.type = ENTRY_TYPE_IDENTITY;
- i.category_index = category_index;
- i.identity_index = row;
- break;
-
- case ENTRY_TYPE_IDENTITY: i = EntryIndex();
- std::cerr << "ERROR: calling child() on entryindex with no children!" << std::endl;
- default:
- break;
- }
-
- return i;
-
-}
-uint32_t RsIdentityListModel::EntryIndex::parentRow() const
-{
- switch(type)
- {
- default:
- case ENTRY_TYPE_TOP_LEVEL: return -1;
- case ENTRY_TYPE_CATEGORY : return -1;
- case ENTRY_TYPE_IDENTITY : return category_index;
- }
-}
-
-QModelIndex RsIdentityListModel::index(int row, int column, const QModelIndex& parent) const
-{
- if(row < 0 || column < 0 || column >= columnCount(parent) || row >= rowCount(parent))
- return QModelIndex();
-
- EntryIndex parent_index ;
- convertInternalIdToIndex(parent.internalId(),parent_index);
-#ifdef DEBUG_MODEL_INDEX
- RsDbg() << "Index row=" << row << " col=" << column << " parent=" << parent << std::endl;
-#endif
-
- quintptr ref;
- EntryIndex new_index = parent_index.child(row);
- convertIndexToInternalId(new_index,ref);
-
-#ifdef DEBUG_MODEL_INDEX
- RsDbg() << " returning " << createIndex(row,column,ref) << std::endl;
-#endif
-
- return createIndex(row,column,ref);
-}
-
-QModelIndex RsIdentityListModel::parent(const QModelIndex& index) const
-{
- if(!index.isValid())
- return QModelIndex();
-
- EntryIndex I ;
- convertInternalIdToIndex(index.internalId(),I);
-
- EntryIndex p = I.parent();
-
- if(p.type == ENTRY_TYPE_TOP_LEVEL)
- return QModelIndex();
-
- quintptr i;
- convertIndexToInternalId(p,i);
-
- return createIndex(I.parentRow(),0,i);
-}
-
-Qt::ItemFlags RsIdentityListModel::flags(const QModelIndex& index) const
-{
- if (!index.isValid())
- return Qt::ItemFlags();
-
- return QAbstractItemModel::flags(index);
-}
-
-QVariant RsIdentityListModel::headerData(int section, Qt::Orientation /*orientation*/, int role) const
-{
- if(role == Qt::DisplayRole)
- switch(section)
- {
- case COLUMN_THREAD_NAME: return tr("Name");
- case COLUMN_THREAD_ID: return tr("Id");
- case COLUMN_THREAD_REPUTATION: return QVariant();
- case COLUMN_THREAD_OWNER_ID: return tr("Owner Id");
- case COLUMN_THREAD_OWNER_NAME: return tr("Owner");
- default:
- return QVariant();
- }
- if(role == Qt::DecorationRole && section == COLUMN_THREAD_REPUTATION)
- return QIcon(":/icons/flag-green.png");
-
- return QVariant();
-}
-
-QVariant RsIdentityListModel::data(const QModelIndex &index, int role) const
-{
-#ifdef DEBUG_MESSAGE_MODEL
- std::cerr << "calling data(" << index << ") role=" << role << std::endl;
-#endif
-
- if(!index.isValid())
- return QVariant();
-
- quintptr ref = (index.isValid())?index.internalId():0 ;
-
-#ifdef DEBUG_MESSAGE_MODEL
- std::cerr << "data(" << index << ")" ;
-#endif
-
- if(!ref)
- {
-#ifdef DEBUG_MESSAGE_MODEL
- std::cerr << " [empty]" << std::endl;
-#endif
- return QVariant() ;
- }
-
- EntryIndex entry;
-
- if(!convertInternalIdToIndex(ref,entry))
- {
-#ifdef DEBUG_MESSAGE_MODEL
- std::cerr << "Bad pointer: " << (void*)ref << std::endl;
-#endif
- return QVariant() ;
- }
-
- switch(role)
- {
- case Qt::SizeHintRole: return sizeHintRole(entry,index.column()) ;
- case Qt::DisplayRole: return displayRole(entry,index.column()) ;
- case Qt::FontRole: return fontRole(entry,index.column()) ;
- case Qt::ForegroundRole: return foregroundRole(entry,index.column()) ;
- case Qt::DecorationRole: return decorationRole(entry,index.column()) ;
-
- case FilterRole: return filterRole(entry,index.column()) ;
- case SortRole: return sortRole(entry,index.column()) ;
- case TreePathRole: return treePathRole(entry,index.column()) ;
-
- default:
- return QVariant();
- }
-}
-
-bool RsIdentityListModel::passesFilter(const EntryIndex& e,int /*column*/) const
-{
- QString s ;
-
- if(mFilterStrings.empty() || e.type != ENTRY_TYPE_IDENTITY)
- return true;
-
- auto passes_strings = [&](const QString& s) -> bool {
- bool res = true;
-
- for(auto iter(mFilterStrings.begin()); iter != mFilterStrings.end(); ++iter)
- res = res && s.contains(*iter,Qt::CaseInsensitive);
-
- return res;
- };
-
- if((mFilterType & FilterType::FILTER_TYPE_ID) && passes_strings(displayRole(e,COLUMN_THREAD_ID ).toString())) return true;
- if((mFilterType & FilterType::FILTER_TYPE_NAME) && passes_strings(displayRole(e,COLUMN_THREAD_NAME ).toString())) return true;
- if((mFilterType & FilterType::FILTER_TYPE_OWNER_ID) && passes_strings(displayRole(e,COLUMN_THREAD_OWNER_ID ).toString())) return true;
- if((mFilterType & FilterType::FILTER_TYPE_OWNER_NAME) && passes_strings(displayRole(e,COLUMN_THREAD_OWNER_NAME).toString())) return true;
-
- return false;
-}
-
-QVariant RsIdentityListModel::filterRole(const EntryIndex& e,int column) const
-{
- if(passesFilter(e,column))
- return QVariant(FilterString);
-
- return QVariant(QString());
-}
-
-uint32_t RsIdentityListModel::updateFilterStatus(ForumModelIndex /*i*/,int /*column*/,const QStringList& /*strings*/)
-{
- return 0;
-}
-
-
-void RsIdentityListModel::setFilter(uint8_t filter_type, const QStringList& strings)
-{
-#ifdef DEBUG_MODEL
- std::cerr << "Setting filter to filter_type=" << int(filter_type) << " and strings to " ;
- foreach(const QString& str,strings)
- std::cerr << "\"" << str.toStdString() << "\" " ;
- std::cerr << std::endl;
-#endif
-
- preMods();
-
- mFilterType = filter_type;
- mFilterStrings = strings;
-
- postMods();
-}
-
-QVariant RsIdentityListModel::toolTipRole(const EntryIndex& fmpe,int /*column*/) const
-{
- switch(fmpe.type)
- {
- case ENTRY_TYPE_IDENTITY:
- {
- auto id_info = getIdentityInfo(fmpe);
-
- if(!id_info)
- return QVariant();
-
- if(id_info->flags & RS_IDENTITY_FLAGS_IS_DEPRECATED)
- return QVariant( tr("\nThis identity has a insecure fingerprint (It's probably quite old).\nYou should get rid of it now and use a new one.\nThese identities are not supported anymore.") ) ;
-
- if(rsIdentity->isOwnId(id_info->id))
- return QVariant(tr("This identity is owned by you"));
-
- if(id_info->owner.isNull())
- return QVariant("Anonymous identity");
- else
- {
- RsPeerDetails dd;
- if(rsPeers->getGPGDetails(id_info->owner,dd))
- return QVariant(tr("Identity owned by profile")+" \""+ QString::fromUtf8(dd.name.c_str()) +"\" ("+QString::fromStdString(id_info->owner.toStdString()));
- else
- return QVariant(tr("Identity possibly owned by unknown profile")+" \""+ QString::fromUtf8(dd.name.c_str()) +"\" ("+QString::fromStdString(id_info->owner.toStdString()));
- }
- }
-
- break;
- case ENTRY_TYPE_CATEGORY: ; // fallthrough
- default:
- return QVariant();
- }
-}
-
-QVariant RsIdentityListModel::sizeHintRole(const EntryIndex& e,int col) const
-{
- float x_factor = QFontMetricsF(QApplication::font()).height()/14.0f ;
- float y_factor = QFontMetricsF(QApplication::font()).height()/14.0f ;
-
- if(e.type == ENTRY_TYPE_IDENTITY)
- y_factor *= 1.0;
-
- if(e.type == ENTRY_TYPE_CATEGORY)
- y_factor *= 1.5;
-
- std::cerr << "sizeHintRole()" << std::endl;
- switch(col)
- {
- default:
- case COLUMN_THREAD_REPUTATION: return QVariant( QSize(x_factor * 14 , y_factor*14*1.1f ));
-
- case COLUMN_THREAD_NAME:
- case COLUMN_THREAD_ID:
- case COLUMN_THREAD_OWNER_NAME:
- case COLUMN_THREAD_OWNER_ID: return QFontMetricsF(QApplication::font()).boundingRect(displayRole(e,col).toString()).size();
- }
-}
-
-QString RsIdentityListModel::indexIdentifier(QModelIndex index)
-{
- quintptr ref = (index.isValid())?index.internalId():0 ;
-
-#ifdef DEBUG_MESSAGE_MODEL
- std::cerr << "data(" << index << ")" ;
-#endif
-
- if(!ref)
- {
-#ifdef DEBUG_MESSAGE_MODEL
- std::cerr << " [empty]" << std::endl;
-#endif
- return QString();
- }
-
- EntryIndex entry;
- if(!convertInternalIdToIndex(ref,entry))
- return QString();
-
- return treePathRole(entry,0).toString();
-}
-QVariant RsIdentityListModel::treePathRole(const EntryIndex& entry,int /*column*/) const
-{
- if(entry.type == ENTRY_TYPE_CATEGORY)
- return QString::number((int)entry.category_index);
- else
- return QString::fromStdString(mIdentities[mCategories[entry.category_index].child_identity_indices[entry.identity_index]].id.toStdString());
-}
-QVariant RsIdentityListModel::sortRole(const EntryIndex& entry,int column) const
-{
- switch(column)
- {
- case COLUMN_THREAD_REPUTATION: return decorationRole(entry,column);
-
- case COLUMN_THREAD_ID:
- case COLUMN_THREAD_OWNER_ID:
- case COLUMN_THREAD_OWNER_NAME:
- case COLUMN_THREAD_NAME: [[__fallthrough__]];
- default:
- return displayRole(entry,column);
- }
-}
-
-QModelIndex RsIdentityListModel::getIndexOfIdentity(const RsGxsId& id) const
-{
- for(uint i=0;iflags & RS_IDENTITY_FLAGS_IS_DEPRECATED)
- return QVariant(QColor(Qt::red));
-
- return QVariant();
-}
-QVariant RsIdentityListModel::fontRole(const EntryIndex& e, int /*col*/) const
-{
- QFont f;
- f.setPointSize(mFontSize);
-
- auto it = getIdentityInfo(e);
-
- if(it)
- {
- RsGxsId id(it->id);
-
- if(rsIdentity->isOwnId(id))
- f.setBold(true);
- }
-
- return QVariant(f);
-}
-void RsIdentityListModel::setFontSize(int s)
-{
- if(s != mFontSize)
- {
- mFontSize = s;
- emit dataChanged(createIndex(0,0,(void*)NULL), createIndex(mCategories.size()-1,columnCount()-1,(void*)NULL));
- }
-}
-
-#ifdef DEBUG_MODEL_INDEX
- std::cerr << " font role " << e.type << ", (" << (int)e.group_index << ","<< (int)e.profile_index << ","<< (int)e.node_index << ") col="<< col<<": " << std::endl;
-#endif
-
-#ifdef TODO
- int status = onlineRole(e,col).toInt();
-
- switch (status)
- {
- case RS_STATUS_INACTIVE:
- {
- QFont font ;
- QTreeView* myParent = dynamic_cast(QAbstractItemModel::parent());
- if (myParent)
- font = myParent->font();
-
- font.setBold(true);
-
- return QVariant(font);
- }
- default:
- return QVariant();
- }
-#endif
-
-QVariant RsIdentityListModel::displayRole(const EntryIndex& e, int col) const
-{
-#ifdef DEBUG_MODEL_INDEX
- std::cerr << " Display role " << e.type << ", (" << (int)e.group_index << ","<< (int)e.profile_index << ","<< (int)e.node_index << ") col="<< col<<": ";
-#endif
-
- switch(e.type)
- {
- case ENTRY_TYPE_CATEGORY:
- {
- const HierarchicalCategoryInformation *cat = getCategoryInfo(e);
-
- if(!cat)
- return QVariant();
-
- switch(col)
- {
- case COLUMN_THREAD_NAME:
-#ifdef DEBUG_MODEL_INDEX
- std::cerr << group->group_info.name.c_str() ;
-#endif
-
- if(!cat->child_identity_indices.empty())
- return QVariant(cat->category_name+" (" + QString::number(cat->child_identity_indices.size()) + ")");
- else
- return QVariant(cat->category_name);
-
- default:
- return QVariant();
- }
- }
- break;
-
- case ENTRY_TYPE_IDENTITY:
- {
- const HierarchicalIdentityInformation *idinfo = getIdentityInfo(e);
- const QString loading_string = "["+tr("Loading...")+"]";
-
-#ifdef DEBUG_MODEL_INDEX
- std::cerr << profile->profile_info.name.c_str() ;
-#endif
- if(col == COLUMN_THREAD_ID) return QVariant(QString::fromStdString(idinfo->id.toStdString()) );
- if(col == COLUMN_THREAD_REPUTATION) return QVariant();
-
- if(idinfo->nickname.empty())
- return loading_string;
-
- switch(col)
- {
- case COLUMN_THREAD_NAME: return QVariant(QString::fromUtf8(idinfo->nickname.c_str()));
- case COLUMN_THREAD_OWNER_NAME: if(idinfo->owner.isNull())
- return QVariant();
- else
- return QVariant(QString::fromStdString(rsPeers->getGPGName(idinfo->owner)) );
-
- case COLUMN_THREAD_OWNER_ID: if(idinfo->owner.isNull())
- return QVariant();
- else
- return QVariant(QString::fromStdString(idinfo->owner.toStdString()) );
- default:
- return QVariant();
- }
- }
- break;
-
- default: //ENTRY_TYPE
- return QVariant();
- }
-}
-
-// This function makes sure that the internal data gets updated. They are situations where the notification system cannot
-// send the information about changes, such as when the computer is put on sleep.
-
-void RsIdentityListModel::checkInternalData(bool force)
-{
- rstime_t now = time(NULL);
-
- if( (mLastInternalDataUpdate + MAX_INTERNAL_DATA_UPDATE_DELAY < now) || force)
- updateIdentityList();
-}
-
-const RsIdentityListModel::HierarchicalCategoryInformation *RsIdentityListModel::getCategoryInfo(const EntryIndex& e) const
-{
- if(e.category_index >= mCategories.size())
- return NULL ;
- else
- return &mCategories[e.category_index];
-}
-
-const RsIdentityListModel::HierarchicalIdentityInformation *RsIdentityListModel::getIdentityInfo(const EntryIndex& e) const
-{
- // First look into the relevant group, then for the correct profile in this group.
-
- if(e.type != ENTRY_TYPE_IDENTITY)
- return nullptr ;
-
- if(e.category_index >= mCategories.size())
- return nullptr ;
-
- if(e.identity_index < mCategories[e.category_index].child_identity_indices.size())
- {
- auto& it(mIdentities[mCategories[e.category_index].child_identity_indices[e.identity_index]]);
- rstime_t now = time(nullptr);
-
- if(now > it.last_update_TS + ID_DETAILS_UPDATE_DELAY)
- {
- RsIdentityDetails det;
- if(rsIdentity->getIdDetails(it.id,det))
- {
- it.nickname = det.mNickname;
- it.owner = det.mPgpId;
- it.flags = det.mFlags;
- it.last_update_TS = now;
- }
- }
- return ⁢
- }
- else
- {
- RsErr() << "Inconsistent identity index!" ;
- return nullptr;
- }
-}
-
-QVariant RsIdentityListModel::decorationRole(const EntryIndex& entry,int col) const
-{
- switch(entry.type)
- {
- case ENTRY_TYPE_CATEGORY:
- return QVariant();
-
- case ENTRY_TYPE_IDENTITY:
- {
- const HierarchicalIdentityInformation *hn = getIdentityInfo(entry);
-
- if(!hn)
- return QVariant();
-
- if(col == COLUMN_THREAD_REPUTATION)
- return QVariant( static_cast(rsReputations->overallReputationLevel(hn->id)) );
- else if(col == COLUMN_THREAD_NAME)
- {
- QPixmap sslAvatar;
- RsIdentityDetails details ;
-
- if(!rsIdentity->getIdDetails(hn->id, details))
- {
- mIdentityUpdateTimer->stop();
- mIdentityUpdateTimer->setSingleShot(true);
- mIdentityUpdateTimer->start(500);
- return QVariant();
- }
- else if(details.mAvatar.mSize == 0 || !GxsIdDetails::loadPixmapFromData(details.mAvatar.mData, details.mAvatar.mSize, sslAvatar,GxsIdDetails::LARGE))
- return QVariant(QIcon(GxsIdDetails::makeDefaultIcon(hn->id,GxsIdDetails::SMALL)));
- else
- return QVariant(QIcon(sslAvatar));
- }
- else
- return QVariant();
- }
- break;
-
- default:
- return QVariant();
- }
-}
-
-void RsIdentityListModel::clear()
-{
- preMods();
-
- mIdentities.clear();
- mCategories.clear();
-
- mCategories.resize(3);
- mCategories[0].category_name = tr("My own identities");
- mCategories[1].category_name = tr("My contacts");
- mCategories[2].category_name = tr("All");
-
- postMods();
-
- emit friendListChanged();
-}
-
-
-void RsIdentityListModel::debug_dump() const
-{
- std::cerr << "==== IdentityListModel Debug dump ====" << std::endl;
-
- std::cerr << "Invalid index : " << QModelIndex() << std::endl;
-
- EntryIndex top_level;
- top_level.type = ENTRY_TYPE_TOP_LEVEL;
- quintptr id;
- convertIndexToInternalId(top_level,id);
-
- std::cerr << "Top level index: " << createIndex(0,0,id) << std::endl;
- EntryIndex tei;
- convertInternalIdToIndex(0,tei);
- std::cerr << "Top level entry index: " << tei << std::endl;
-
- for(uint32_t j=0;jid;
- else
- return RsGxsId();
-}
-
-RsIdentityListModel::EntryType RsIdentityListModel::getType(const QModelIndex& i) const
-{
- if(!i.isValid())
- return ENTRY_TYPE_TOP_LEVEL;
-
- EntryIndex e;
- if(!convertInternalIdToIndex(i.internalId(),e))
- return ENTRY_TYPE_TOP_LEVEL;
-
- return e.type;
-}
-
-int RsIdentityListModel::getCategory(const QModelIndex& i) const
-{
- if(!i.isValid())
- return CATEGORY_ALL;
-
- EntryIndex e;
- if(!convertInternalIdToIndex(i.internalId(),e))
- return CATEGORY_ALL;
-
- return e.category_index;
-}
-void RsIdentityListModel::setIdentities(const std::list& identities_meta)
-{
- preMods();
- beginResetModel();
- clear();
-
- for(auto id:identities_meta)
- {
- HierarchicalIdentityInformation idinfo;
- idinfo.id = RsGxsId(id.mGroupId);
- idinfo.last_update_TS = 0;// forces update
-
- if(rsIdentity->isOwnId(idinfo.id))
- mCategories[CATEGORY_OWN].child_identity_indices.push_back(mIdentities.size());
- else if(rsIdentity->isARegularContact(RsGxsId(id.mGroupId)))
- mCategories[CATEGORY_CTS].child_identity_indices.push_back(mIdentities.size());
- else
- mCategories[CATEGORY_ALL].child_identity_indices.push_back(mIdentities.size());
-
- mIdentities.push_back(idinfo);
- }
-
- if (mCategories.size()>0)
- {
- beginInsertRows(QModelIndex(),0,mCategories.size()-1);
- endInsertRows();
- }
-
- endResetModel();
- postMods();
-
- mLastInternalDataUpdate = time(NULL);
-
-}
-
-void RsIdentityListModel::updateIdentityList()
-{
- std::cerr << "Updating identity list" << std::endl;
-
- std::list ids ;
-
- if(!rsIdentity->getIdentitiesSummaries(ids))
- {
- std::cerr << __PRETTY_FUNCTION__ << " failed to retrieve identity metadata." << std::endl;
- return;
- }
-
- setIdentities(ids) ;
-
- debug_dump();
-}
-
-
-
-void RsIdentityListModel::collapseItem(const QModelIndex& index)
-{
- if(getType(index) != ENTRY_TYPE_CATEGORY)
- return;
-
- EntryIndex entry;
-
- if(!convertInternalIdToIndex(index.internalId(),entry))
- return;
-
- mExpandedCategories[entry.category_index] = false;
-
- // apparently we cannot be subtle here.
- emit dataChanged(createIndex(0,0,(void*)NULL), createIndex(mCategories.size()-1,columnCount()-1,(void*)NULL));
-}
-
-void RsIdentityListModel::expandItem(const QModelIndex& index)
-{
- if(getType(index) != ENTRY_TYPE_CATEGORY)
- return;
-
- EntryIndex entry;
-
- if(!convertInternalIdToIndex(index.internalId(),entry))
- return;
-
- mExpandedCategories[entry.category_index] = true;
-
- // apparently we cannot be subtle here.
- emit dataChanged(createIndex(0,0,(void*)NULL), createIndex(mCategories.size()-1,columnCount()-1,(void*)NULL));
-}
-
-
-
diff --git a/retroshare-gui/src/gui/Identity/IdentityListModel.h b/retroshare-gui/src/gui/Identity/IdentityListModel.h
deleted file mode 100644
index 4c3cb43e2..000000000
--- a/retroshare-gui/src/gui/Identity/IdentityListModel.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/*******************************************************************************
- * retroshare-gui/src/gui/msgs/RsFriendListModel.h *
- * *
- * Copyright 2019 by Cyril Soler *
- * *
- * This program is free software: you can redistribute it and/or modify *
- * it under the terms of the GNU Affero General Public License as *
- * published by the Free Software Foundation, either version 3 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 Affero General Public License for more details. *
- * *
- * You should have received a copy of the GNU Affero General Public License *
- * along with this program. If not, see . *
- * *
- *******************************************************************************/
-
-#pragma once
-
-#include
-#include
-
-#include "retroshare/rsstatus.h"
-#include "retroshare/rsmsgs.h"
-#include "retroshare/rspeers.h"
-#include "retroshare/rsidentity.h"
-
-typedef uint32_t ForumModelIndex;
-
-// This class is the item model used by Qt to display the information
-
-class QTimer;
-
-class RsIdentityListModel : public QAbstractItemModel
-{
- Q_OBJECT
-
-public:
- explicit RsIdentityListModel(QObject *parent = NULL);
- ~RsIdentityListModel(){}
-
- enum Columns {
- COLUMN_THREAD_NAME = 0x00,
- COLUMN_THREAD_ID = 0x01,
- COLUMN_THREAD_OWNER_NAME = 0x02,
- COLUMN_THREAD_OWNER_ID = 0x03,
- COLUMN_THREAD_REPUTATION = 0x04,
- COLUMN_THREAD_NB_COLUMNS = 0x05
- };
-
- enum Roles{ SortRole = Qt::UserRole+1,
- StatusRole = Qt::UserRole+2,
- UnreadRole = Qt::UserRole+3,
- FilterRole = Qt::UserRole+4,
- TreePathRole = Qt::UserRole+5,
- };
-
- enum FilterType{ FILTER_TYPE_NONE = 0x00,
- FILTER_TYPE_ID = 0x01,
- FILTER_TYPE_NAME = 0x02,
- FILTER_TYPE_OWNER_NAME = 0x04,
- FILTER_TYPE_OWNER_ID = 0x08
- };
-
- enum EntryType{ ENTRY_TYPE_TOP_LEVEL = 0x00,
- ENTRY_TYPE_CATEGORY = 0x01,
- ENTRY_TYPE_IDENTITY = 0x02,
- ENTRY_TYPE_INVALID = 0x03
- };
-
- enum Category{ CATEGORY_OWN = 0x00,
- CATEGORY_CTS = 0x01,
- CATEGORY_ALL = 0x02
- };
-
- struct HierarchicalCategoryInformation
- {
- QString category_name;
- std::vector child_identity_indices; // index in the array of hierarchical profiles
- };
-
- // This stores all the info that is useful avoiding a call to the more expensive getIdDetails()
- //
- struct HierarchicalIdentityInformation
- {
- rstime_t last_update_TS;
- RsGxsId id;
- RsPgpId owner;
- uint32_t flags;
- std::string nickname;
- };
-
- // This structure encodes the position of a node in the hierarchy. The type tells which of the index fields are valid.
-
- struct EntryIndex
- {
- public:
- EntryIndex();
-
- EntryType type; // type of the entry (group,profile,location)
-
- friend std::ostream& operator<<(std::ostream& o, const EntryIndex& e)
- {
- o << "[" ;
- switch(e.type)
- {
- case RsIdentityListModel::ENTRY_TYPE_INVALID: o << "Invalid," ; break;
- case RsIdentityListModel::ENTRY_TYPE_CATEGORY: o << "Category," ; break;
- case RsIdentityListModel::ENTRY_TYPE_IDENTITY: o << "Identity," ; break;
- case RsIdentityListModel::ENTRY_TYPE_TOP_LEVEL: o << "Toplevel," ; break;
- }
- o << " CI: " << e.category_index << ", ";
- o << " II: " << e.identity_index << "]";
- return o;
- }
-
- // Indices w.r.t. parent. The set of indices entirely determines the position of the entry in the hierarchy.
- // An index of 0xff means "undefined"
-
- uint16_t category_index; // index of the category in the mCategory array
- uint16_t identity_index; // index of the identity in its own category
-
- EntryIndex parent() const;
- EntryIndex child(int row) const;
- uint32_t parentRow() const;
- };
-
- QModelIndex root() const{ return createIndex(0,0,(void*)NULL) ;}
- QModelIndex getIndexOfIdentity(const RsGxsId& id) const;
- QModelIndex getIndexOfCategory(Category id) const;
-
- void updateIdentityList();
-
- int count() const { return mIdentities.size() ; } // total number of identities
-
- static const QString FilterString ;
-
- // This method will asynchroneously update the data
-
- EntryType getType(const QModelIndex&) const;
- RsGxsId getIdentity(const QModelIndex&) const;
- int getCategory(const QModelIndex&) const;
- void setFontSize(int s);
-
- void setFilter(uint8_t filter_type, const QStringList& strings) ;
-
- void expandItem(const QModelIndex&) ;
- void collapseItem(const QModelIndex&) ;
-
- // Overloaded methods from QAbstractItemModel
-
- int rowCount(const QModelIndex& parent = QModelIndex()) const override;
- int columnCount(const QModelIndex &parent = QModelIndex()) const override;
- bool hasChildren(const QModelIndex &parent = QModelIndex()) const override;
-
- QModelIndex index(int row, int column, const QModelIndex & parent = QModelIndex()) const override;
- QModelIndex parent(const QModelIndex& child) const override;
- Qt::ItemFlags flags(const QModelIndex& index) const override;
-
- QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
- QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
-
- void clear() ;
- QString indexIdentifier(QModelIndex i);
-
- /* Color definitions (for standard see default.qss) */
- QColor mTextColorGroup;
- QColor mTextColorStatus[RS_STATUS_COUNT];
-
- void setIdentities(const std::list& identities_meta);
-
-private:
- const HierarchicalCategoryInformation *getCategoryInfo (const EntryIndex&) const;
- const HierarchicalIdentityInformation *getIdentityInfo(const EntryIndex&) const;
-
- void checkIdentity(HierarchicalIdentityInformation& node);
-
- QVariant sizeHintRole (const EntryIndex& e, int col) const;
- QVariant displayRole (const EntryIndex& e, int col) const;
- QVariant decorationRole(const EntryIndex& e, int col) const;
- QVariant toolTipRole (const EntryIndex& e, int col) const;
- QVariant statusRole (const EntryIndex& e, int col) const;
- QVariant sortRole (const EntryIndex& e, int col) const;
- QVariant fontRole (const EntryIndex& e, int col) const;
- QVariant foregroundRole(const EntryIndex& e, int col) const;
- QVariant textColorRole (const EntryIndex& e, int col) const;
- QVariant filterRole (const EntryIndex& e, int col) const;
- QVariant treePathRole (const EntryIndex& entry,int column) const;
-
- /*!
- * \brief debug_dump
- * Dumps the hierarchy of posts in the terminal, to allow checking whether the internal representation is correct.
- */
-
-public slots:
- void checkInternalData(bool force);
- void debug_dump() const;
- void timerUpdate();
-
-signals:
- void dataLoaded(); // emitted after the messages have been set. Can be used to updated the UI.
- void friendListChanged(); // emitted after the messages have been set. Can be used to updated the UI.
- void dataAboutToLoad();
-
-private:
- bool passesFilter(const EntryIndex &e, int column) const;
-
- void preMods() ;
- void postMods() ;
-
- void *getParentRef(void *ref,int& row) const;
- void *getChildRef(void *ref,int row) const;
- int getChildrenCount(void *ref) const;
-
- static bool convertIndexToInternalId(const EntryIndex& e,quintptr& ref);
- static bool convertInternalIdToIndex(quintptr ref, EntryIndex& e);
-
- uint32_t updateFilterStatus(ForumModelIndex i,int column,const QStringList& strings);
-
- QStringList mFilterStrings;
- uint8_t mFilterType;
- int mFontSize;
-
- rstime_t mLastInternalDataUpdate;
- rstime_t mLastNodeUpdate;;
-
- // The 3 vectors below store thehierarchical information for groups, profiles and locations,
- // meaning which is the child/parent of which. The actual group/profile/node data are also stored in the
- // structure.
-
- mutable std::vector mCategories;
- mutable std::vector mIdentities;
-
- // The top level list contains all nodes to display, which type depends on the option to display groups or not.
- // Idices in the list may be profile indices or group indices. In the former case the profile child index refers to
- // the inde in the mProfiles tab, whereas in the the later case, the child index refers to the index of the profile in the
- // group it belows to.
-
- std::vector mTopLevel;
-
- // keeps track of expanded/collapsed items, so as to only show icon for collapsed profiles
-
- std::vector mExpandedCategories;
-
- // List of identities for which getIdDetails() failed, to be requested again.
- mutable QTimer *mIdentityUpdateTimer;
-};
-
-
diff --git a/retroshare-gui/src/gui/MainWindow.cpp b/retroshare-gui/src/gui/MainWindow.cpp
index 5ba8f1ddd..a59d76dfb 100644
--- a/retroshare-gui/src/gui/MainWindow.cpp
+++ b/retroshare-gui/src/gui/MainWindow.cpp
@@ -28,16 +28,9 @@
#include
#include
#include
-#include
-#include
#include
#include
-#include
-
-#if defined(Q_OS_DARWIN)
-#include "gui/common/MacDockIconHandler.h"
-#endif
#ifdef MESSENGER_WINDOW
#include "MessengerWindow.h"
@@ -121,7 +114,7 @@
#include "gui/statistics/StatisticsWindow.h"
#include "gui/connect/ConnectFriendWizard.h"
-#include "gui/common/RsCollectionDialog.h"
+#include "gui/common/RsCollection.h"
#include "settings/rsettingswin.h"
#include "settings/rsharesettings.h"
#include "common/StatusDefs.h"
@@ -213,7 +206,7 @@ MainWindow::MainWindow(QWidget* parent, Qt::WindowFlags flags)
hiddenmode = true;
}
- setWindowTitle(tr("RetroShare %1 a secure decentralized communication platform").arg(RsApplication::retroshareVersion(true)) + " - " + nameAndLocation);
+ setWindowTitle(tr("RetroShare %1 a secure decentralized communication platform").arg(Rshare::retroshareVersion(true)) + " - " + nameAndLocation);
connect(rApp, SIGNAL(newArgsReceived(QStringList)), this, SLOT(receiveNewArgs(QStringList)));
/* add url handler for RetroShare links */
@@ -361,8 +354,6 @@ MainWindow::MainWindow(QWidget* parent, Qt::WindowFlags flags)
connect(NotifyQt::getInstance(), SIGNAL(settingsChanged()), this, SLOT(settingsChanged()));
settingsChanged();
-
- mFontSizeHandler.registerFontSize(ui->listWidget, 1.5f);
}
/** Destructor. */
@@ -386,11 +377,6 @@ MainWindow::~MainWindow()
delete sysTrayStatus;
delete trayIcon;
delete trayMenu;
-#if defined(Q_OS_DARWIN)
- delete menuBar;
- delete dockMenu;
- MacDockIconHandler::cleanup();
-#endif
// delete notifyMenu; // already deleted by the deletion of trayMenu
StatisticsWindow::releaseInstance();
@@ -567,11 +553,6 @@ void MainWindow::addPage(MainPage *page, QActionGroup *grp, QListiconPixmap()),page->pageName()) ;
ui->listWidget->addItem(item) ;
-#if defined(Q_OS_DARWIN)
- QFont f = ui->toolBarPage->font();
- action->setFont(f);
-#endif
-
if (notify)
{
QPair pair = QPair( action, item);
@@ -670,75 +651,10 @@ void MainWindow::createTrayIcon()
trayIcon->setContextMenu(trayMenu);
trayIcon->setIcon(QIcon(IMAGE_NOONLINE));
-#if defined(Q_OS_DARWIN)
- // Note: On macOS, the Dock icon is used to provide the tray's functionality.
- MacDockIconHandler* dockIconHandler = MacDockIconHandler::instance();
- connect(dockIconHandler, &MacDockIconHandler::dockIconClicked, [this] {
- show();
- activateWindow();
- });
-#endif
-
-#if defined(Q_OS_DARWIN)
- createMenuBar();
-#endif
-
connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(toggleVisibility(QSystemTrayIcon::ActivationReason)));
trayIcon->show();
}
-#if defined(Q_OS_DARWIN)
-/** Creates a new menubar for macOS */
-void MainWindow::createMenuBar()
-{
- /* Mac users sure like their shortcuts. */
- actionMinimize = new QAction(tr("Minimize"),this);
- actionMinimize->setShortcutContext(Qt::ApplicationShortcut);
- actionMinimize->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_M));
- actionMinimize->setShortcutVisibleInContextMenu(true);
- connect(actionMinimize,SIGNAL(triggered()),this,SLOT(minimizeWindow())) ;
-
- actionCloseWindow = new QAction(tr("Close window"),this);
- actionCloseWindow->setShortcutContext(Qt::ApplicationShortcut);
- actionCloseWindow->setShortcut(QKeySequence::Close);
- actionCloseWindow->setShortcutVisibleInContextMenu(true);
- connect(actionCloseWindow,SIGNAL(triggered()),this,SLOT(closeWindow())) ;
-
- menuBar = new QMenuBar(this);
- QMenu *fileMenu = menuBar->addMenu("");
- fileMenu->addAction(actionMinimize);
- fileMenu->addAction(actionCloseWindow);
-
- dockMenu = new QMenu(this);
- dockMenu->setAsDockMenu();
- dockMenu->addAction(tr("Open Messages"), this, SLOT(showMess()));
- dockMenu->addAction(tr("Bandwidth Graph"), this, SLOT(showBandwidthGraph()));
- dockMenu->addAction(tr("Statistics"), this, SLOT(showStatisticsWindow()));
- dockMenu->addAction(tr("Options"), this, SLOT(showSettings()));
- dockMenu->addAction(tr("Help"), this, SLOT(showHelpDialog()));
-
- dockMenu->addSeparator();
- QMenu *statusMenu = dockMenu->addMenu(tr("Status"));
- initializeStatusObject(statusMenu, true);
-
-}
-#endif
-
-#if defined(Q_OS_DARWIN)
-void MainWindow::minimizeWindow()
-{
- setWindowState(windowState() | Qt::WindowMinimized);
-}
-#endif
-
-#if defined(Q_OS_DARWIN)
-void MainWindow::closeWindow()
-{
- // On macOS window close is basically equivalent to window hide.
- close();
-}
-#endif
-
void MainWindow::showBandwidthGraph()
{
if(_bandwidthGraph == NULL)
@@ -1030,7 +946,6 @@ void SetForegroundWindowInternal(HWND hWnd)
/* Show the dialog. */
raiseWindow();
-
/* Set the focus to the specified page. */
_instance->ui->stackPages->setCurrentPage(page);
}
@@ -1263,91 +1178,10 @@ void MainWindow::doQuit()
rApp->quit();
}
-// This method parses arguments passed by the operating system. All arguments
-// except -r, -f, -o and lists of rscollection files and rslinks are discarded.
-//
void MainWindow::receiveNewArgs(QStringList args)
{
- RsInfo() << "Received new arguments from operating system call.";
-
- std::string argstring = RsApplication::applicationFilePath().toStdString() ;
-
- for(auto l:args)
- argstring += " " + l.toStdString();
-
- // This class does all the job at once: validate arguments, and parses them.
-
- std::vector links_and_files;
-
- argstream as(argstring.c_str());
-
- QString omValues = QString(";full;noturtle;gaming;minimal;");
- std::string opModeStr;
- std::string retroshare_link_url;
- std::string rscollection_file;
-
- as >> parameter('r',"rslink",retroshare_link_url,"Retroshare:// link","Retroshare link to open in Downloads " ,false)
- >> parameter('f',"rsfile",rscollection_file,"file","File to open " ,false)
- >> parameter('o',"opmode",opModeStr,"opmode","Set mode (Full, NoTurtle, Gaming, Minimal) " ,false)
- >> values(back_inserter(links_and_files),"links and files");
-
- if(!as.isOk())
- {
- RsErr() << "Error while parsing arguments:" ;
- RsErr() << as.errorLog() ;
- return;
- }
- if(!opModeStr.empty() && omValues.contains(";"+QString::fromStdString(opModeStr).toLower()+";"))
- {
- QString opmode = QString::fromStdString(opModeStr).toLower();
- //RsApplication::setOpMode(opModeStr.toLower()); // Do we need this??
-
- RsInfo() << "Setting new operating mode to \"" << opmode.toStdString() << "\"";
-
- if (opmode == "noturtle")
- opModeStatus->setCurrentIndex(static_cast::type>(RsOpMode::NOTURTLE) - 1);
- else if (opmode == "gaming")
- opModeStatus->setCurrentIndex(static_cast::type>(RsOpMode::GAMING) - 1);
- else if (opmode == "minimal")
- opModeStatus->setCurrentIndex(static_cast::type>(RsOpMode::MINIMAL) - 1);
- else if (opmode != "")
- opModeStatus->setCurrentIndex(static_cast::type>(RsOpMode::FULL) - 1);
-
- opModeStatus->setOpMode();
- }
-
- // Sort all collected arguments into rscollection files and retroshare links, accordingly
-
- QStringList rscollection_files;
- QList rslinks;
-
- auto sort = [&](const QString s) {
-
- if(QFile(s).exists() && s.endsWith(".rscollection"))
- rscollection_files.append(QString::fromUtf8(rscollection_file.c_str()));
- else if(s.startsWith("retroshare://"))
- {
- RetroShareLink link(s);
-
- if(link.valid())
- rslinks.push_back(link);
- }
- };
-
- sort(QString::fromUtf8(rscollection_file.c_str()));
- sort(QString::fromUtf8(retroshare_link_url.c_str()));
-
- for(auto s:links_and_files)
- sort(QString::fromUtf8(s.c_str()));
-
- // Now handle links and rscollection files.
-
- for(auto file:rscollection_files)
- if(file.endsWith(".rscollection"))
- openRsCollection(file);
-
- for(auto link:rslinks)
- retroshareLinkActivated(link.toUrl());
+ Rshare::parseArguments(args, false);
+ processLastArgs();
}
void MainWindow::displayErrorMessage(int /*a*/,int /*b*/,const QString& error_msg)
@@ -1386,11 +1220,7 @@ void MainWindow::updateMenu()
void MainWindow::toggleVisibility(QSystemTrayIcon::ActivationReason e)
{
-#if defined(Q_OS_DARWIN)
- if (e == QSystemTrayIcon::DoubleClick) {
-#else
if (e == QSystemTrayIcon::Trigger || e == QSystemTrayIcon::DoubleClick) {
-#endif
if (isHidden() || isMinimized()) {
show();
if (isMinimized()) {
@@ -1714,9 +1544,45 @@ void MainWindow::retroshareLinkActivated(const QUrl &url)
void MainWindow::openRsCollection(const QString &filename)
{
QFileInfo qinfo(filename);
+ if (qinfo.exists()) {
+ if (qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString)) {
+ RsCollection collection;
+ collection.openColl(qinfo.absoluteFilePath());
+ }
+ }
+}
+
+void MainWindow::processLastArgs()
+{
+ while (!Rshare::links()->isEmpty()) {
+ std::cerr << "MainWindow::processLastArgs() : " << Rshare::links()->count() << std::endl;
+ /* Now use links from the command line, because no RetroShare was running */
+ RetroShareLink link(Rshare::links()->takeFirst());
+ if (link.valid()) {
+ retroshareLinkActivated(link.toUrl());
+ }
+ }
+ while (!Rshare::files()->isEmpty()) {
+ /* Now use files from the command line, because no RetroShare was running */
+ openRsCollection(Rshare::files()->takeFirst());
+ }
+ /* Handle the -opmode options. */
+ if (opModeStatus) {
+ QString opmode = Rshare::opmode().toLower();
+ if (opmode == "noturtle") {
+ opModeStatus->setCurrentIndex(static_cast::type>(RsOpMode::NOTURTLE) - 1);
+ } else if (opmode == "gaming") {
+ opModeStatus->setCurrentIndex(static_cast::type>(RsOpMode::GAMING) - 1);
+ } else if (opmode == "minimal") {
+ opModeStatus->setCurrentIndex(static_cast::type>(RsOpMode::MINIMAL) - 1);
+ } else if (opmode != "") {
+ opModeStatus->setCurrentIndex(static_cast::type>(RsOpMode::FULL) - 1);
+ }
+ opModeStatus->setOpMode();
+ } else {
+ std::cerr << "ERR: MainWindow::processLastArgs opModeStatus is not initialized.";
+ }
- if (qinfo.exists() && qinfo.absoluteFilePath().endsWith(RsCollection::ExtensionString))
- RsCollectionDialog::openExistingCollection(qinfo.absoluteFilePath());
}
void MainWindow::switchVisibilityStatus(StatusElement e,bool b)
diff --git a/retroshare-gui/src/gui/MainWindow.h b/retroshare-gui/src/gui/MainWindow.h
index b435524f0..bac210f2c 100644
--- a/retroshare-gui/src/gui/MainWindow.h
+++ b/retroshare-gui/src/gui/MainWindow.h
@@ -27,7 +27,6 @@
#include "gui/common/rwindow.h"
#include "gui/common/RSComboBox.h"
-#include "util/FontSizeHandler.h"
namespace Ui {
class MainWindow;
@@ -215,6 +214,7 @@ public slots:
void externalLinkActivated(const QUrl &url);
void retroshareLinkActivated(const QUrl &url);
void openRsCollection(const QString &filename);
+ void processLastArgs();
//! Go to a specific part of the control panel.
void setNewPage(int page);
void setCompactStatusMode(bool compact);
@@ -265,11 +265,6 @@ private slots:
void toggleVisibility(QSystemTrayIcon::ActivationReason e);
void toggleVisibilitycontextmenu();
-#if defined(Q_OS_DARWIN)
- void minimizeWindow();
- void closeWindow();
-#endif
-
/** Toolbar fns. */
void addFriend();
//void newRsCollection();
@@ -313,10 +308,6 @@ private:
void initStackedPage();
void addPage(MainPage *page, QActionGroup *grp, QList > > *notify);
void createTrayIcon();
-#if defined(Q_OS_DARWIN)
- /** Creates a default menubar on Mac */
- void createMenuBar();
-#endif
void createNotifyIcons();
static MainWindow *_instance;
@@ -333,14 +324,6 @@ private:
QString nameAndLocation;
-#if defined(Q_OS_DARWIN)
- /** The menubar (Mac OS X only). */
- QMenuBar *menuBar;
- QMenu *dockMenu;
- QAction* actionMinimize;
- QAction* actionCloseWindow;
-#endif
-
QSystemTrayIcon *trayIcon;
QMenu *notifyMenu;
QMenu *trayMenu;
@@ -372,8 +355,6 @@ private:
void setIdle(bool Idle);
bool isIdle;
- FontSizeHandler mFontSizeHandler;
-
Ui::MainWindow *ui ;
};
diff --git a/retroshare-gui/src/gui/MainWindow.ui b/retroshare-gui/src/gui/MainWindow.ui
index 796593dfd..55a7145e0 100644
--- a/retroshare-gui/src/gui/MainWindow.ui
+++ b/retroshare-gui/src/gui/MainWindow.ui
@@ -33,6 +33,11 @@
0
+
+
+ 12
+
+
QFrame::NoFrame
@@ -152,7 +157,7 @@
-
+
:/images/kcmsystem24.png :/images/kcmsystem24.png
diff --git a/retroshare-gui/src/gui/NewsFeed.ui b/retroshare-gui/src/gui/NewsFeed.ui
index ff8c17f5e..32a679a74 100644
--- a/retroshare-gui/src/gui/NewsFeed.ui
+++ b/retroshare-gui/src/gui/NewsFeed.ui
@@ -70,8 +70,8 @@
- 12
- 75
+ 12
+ 75
true
diff --git a/retroshare-gui/src/gui/PluginManager.cpp b/retroshare-gui/src/gui/PluginManager.cpp
index e5ac7f7d5..2b6fa01a6 100644
--- a/retroshare-gui/src/gui/PluginManager.cpp
+++ b/retroshare-gui/src/gui/PluginManager.cpp
@@ -41,7 +41,7 @@
PluginManager::PluginManager()
{
baseFolder = //qApp->applicationDirPath()+"///plugins" ;
-RsApplication::dataDirectory() + "/plugins" ;
+Rshare::dataDirectory() + "/plugins" ;
lastError = "No error.";
viewWidget = 0;
diff --git a/retroshare-gui/src/gui/Posted/PhotoView.ui b/retroshare-gui/src/gui/Posted/PhotoView.ui
index 31db767c9..e1e7a21e5 100644
--- a/retroshare-gui/src/gui/Posted/PhotoView.ui
+++ b/retroshare-gui/src/gui/Posted/PhotoView.ui
@@ -22,6 +22,7 @@
MS Sans Serif
+ 11
75
true
true
@@ -102,6 +103,7 @@
MS Sans Serif
+ 9
50
false
@@ -112,7 +114,7 @@
-
-
+
24
@@ -132,6 +134,7 @@
MS Sans Serif
+ 11
75
true
true
@@ -147,6 +150,7 @@
MS Sans Serif
+ 9
@@ -159,6 +163,7 @@
MS Sans Serif
+ 9
@@ -204,17 +209,17 @@
-
- AvatarWidget
- QLabel
- gui/common/AvatarWidget.h
- 1
-
GxsIdLabel
QLabel
+
+ AvatarWidget
+ QWidget
+ gui/common/AvatarWidget.h
+ 1
+
AspectRatioPixmapLabel
QLabel
diff --git a/retroshare-gui/src/gui/Posted/PostedItem.ui b/retroshare-gui/src/gui/Posted/PostedItem.ui
index ad37a936c..24d570b16 100644
--- a/retroshare-gui/src/gui/Posted/PostedItem.ui
+++ b/retroshare-gui/src/gui/Posted/PostedItem.ui
@@ -44,10 +44,10 @@
false
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
@@ -262,6 +262,7 @@
+ 11
75
true
true
diff --git a/retroshare-gui/src/gui/Posted/PostedListWidgetWithModel.cpp b/retroshare-gui/src/gui/Posted/PostedListWidgetWithModel.cpp
index ebc0aca2b..1798bb4bc 100644
--- a/retroshare-gui/src/gui/Posted/PostedListWidgetWithModel.cpp
+++ b/retroshare-gui/src/gui/Posted/PostedListWidgetWithModel.cpp
@@ -45,7 +45,6 @@
#include "util/DateTime.h"
#include "util/qtthreadsutils.h"
#include "gui/common/FilesDefs.h"
-#include "util/QtVersion.h"
#include "gui/MainWindow.h"
@@ -418,7 +417,7 @@ void PostedListWidgetWithModel::updateShowLabel()
void PostedListWidgetWithModel::filterItems(QString text)
{
- QStringList lst = text.split(" ",QtSkipEmptyParts) ;
+ QStringList lst = text.split(" ",QString::SkipEmptyParts) ;
uint32_t count;
mPostedPostsModel->setFilter(lst,count) ;
@@ -620,13 +619,12 @@ void PostedListWidgetWithModel::updateGroupData()
void PostedListWidgetWithModel::postPostLoad()
{
-#ifdef DEBUG_POSTED
std::cerr << "Post channel load..." << std::endl;
-#endif
whileBlocking(ui->filter_LE)->setText(QString()); //Clear it before navigate, as it will update it.
if (!mNavigatePendingMsgId.isNull())
navigate(mNavigatePendingMsgId);
+
#ifdef TO_REMOVE
else if( (mLastSelectedPosts.count(groupId()) > 0)
&& !mLastSelectedPosts[groupId()].isNull())
@@ -641,10 +639,8 @@ void PostedListWidgetWithModel::postPostLoad()
ui->postsTree->setFocus();
}
#endif
-#ifdef DEBUG_POSTED
else
std::cerr << "No pre-selected channel post." << std::endl;
-#endif
updateShowLabel();
}
diff --git a/retroshare-gui/src/gui/Posted/PostedListWidgetWithModel.ui b/retroshare-gui/src/gui/Posted/PostedListWidgetWithModel.ui
index 734c4a233..8074388dc 100644
--- a/retroshare-gui/src/gui/Posted/PostedListWidgetWithModel.ui
+++ b/retroshare-gui/src/gui/Posted/PostedListWidgetWithModel.ui
@@ -54,7 +54,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'.AppleSystemUIFont'; font-size:13pt; font-weight:400; font-style:normal;">
+</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Description</span></p></body></html>
@@ -355,10 +355,10 @@ p, li { white-space: pre-wrap; }
-
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
@@ -576,10 +576,37 @@ p, li { white-space: pre-wrap; }
+
+ ElidedLabel
+ QLabel
+
+ 1
+
+
+ GxsIdChooser
+ QComboBox
+
+
+
+ GxsIdLabel
+ QLabel
+
+
LineEditClear
QLineEdit
- gui/common/LineEditClear.h
+ gui/common/LineEditClear.h
+
+
+ RSComboBox
+ QComboBox
+
+
+
+ RSTabWidget
+ QTabWidget
+
+ 1
RSTreeView
@@ -587,42 +614,15 @@ p, li { white-space: pre-wrap; }
1
-
- GxsIdLabel
- QLabel
-
-
-
- ElidedLabel
- QLabel
-
- 1
-
SubscribeToolButton
QToolButton
gui/common/SubscribeToolButton.h
-
- RSComboBox
- QComboBox
-
-
-
- GxsIdChooser
- QComboBox
-
-
-
- RSTabWidget
- QTabWidget
-
- 1
-
-
+
diff --git a/retroshare-gui/src/gui/RSHumanReadableDelegate.h b/retroshare-gui/src/gui/RSHumanReadableDelegate.h
index 1b3995cd7..18943c1dc 100644
--- a/retroshare-gui/src/gui/RSHumanReadableDelegate.h
+++ b/retroshare-gui/src/gui/RSHumanReadableDelegate.h
@@ -88,16 +88,11 @@ class RSHumanReadableAgeDelegate: public RSHumanReadableDelegate
public:
virtual void paint(QPainter *painter,const QStyleOptionViewItem & option, const QModelIndex & index) const
{
- painter->save();
QStyleOptionViewItem opt(option) ;
setPainterOptions(painter,opt,index) ;
- if(index.data().toLongLong() > 0) { // no date is present.
- painter->setFont(opt.font);
- painter->drawText(opt.rect, opt.displayAlignment, misc::timeRelativeToNow(index.data().toLongLong())) ;
- }
-
- painter->restore();
+ if(index.data().toLongLong() > 0) // no date is present.
+ painter->drawText(opt.rect, Qt::AlignCenter, misc::timeRelativeToNow(index.data().toLongLong())) ;
}
};
@@ -106,14 +101,10 @@ class RSHumanReadableSizeDelegate: public RSHumanReadableDelegate
public:
virtual void paint(QPainter *painter,const QStyleOptionViewItem & option, const QModelIndex & index) const
{
- painter->save();
QStyleOptionViewItem opt(option) ;
setPainterOptions(painter,opt,index) ;
- painter->setFont(opt.font);
- painter->drawText(opt.rect, opt.displayAlignment, misc::friendlyUnit(index.data().toULongLong()));
-
- painter->restore();
+ painter->drawText(opt.rect, Qt::AlignRight, misc::friendlyUnit(index.data().toULongLong()));
}
};
diff --git a/retroshare-gui/src/gui/RemoteDirModel.cpp b/retroshare-gui/src/gui/RemoteDirModel.cpp
index 962001a76..05e19857f 100644
--- a/retroshare-gui/src/gui/RemoteDirModel.cpp
+++ b/retroshare-gui/src/gui/RemoteDirModel.cpp
@@ -24,7 +24,7 @@
#include "gui/common/FilesDefs.h"
#include "gui/common/GroupDefs.h"
-#include "gui/common/RsCollectionDialog.h"
+#include "gui/common/RsCollection.h"
#include "gui/common/RsUrlHandler.h"
#include "gui/gxs/GxsIdDetails.h"
#include "retroshare/rsfiles.h"
@@ -1233,6 +1233,31 @@ bool RetroshareDirModel::requestDirDetails(void *ref, bool remote,DirDetails& d)
return false ;
}
+void RetroshareDirModel::createCollectionFile(QWidget *parent, const QModelIndexList &list)
+{
+/* if(RemoteMode)
+ {
+ std::cerr << "Cannot create a collection file from remote" << std::endl;
+ return ;
+ }*/
+
+ std::vector dirVec;
+ getDirDetailsFromSelect(list, dirVec);
+
+ FileSearchFlags f = RemoteMode?RS_FILE_HINTS_REMOTE:RS_FILE_HINTS_LOCAL ;
+
+ QString dir_name;
+ if(!RemoteMode)
+ {
+ if(!dirVec.empty())
+ {
+ const DirDetails& details = dirVec[0];
+ dir_name = QDir(QString::fromUtf8(details.name.c_str())).dirName();
+ }
+ }
+ RsCollection(dirVec,f).openNewColl(parent,dir_name);
+}
+
void RetroshareDirModel::downloadSelected(const QModelIndexList &list,bool interactive)
{
if (!RemoteMode)
@@ -1253,7 +1278,7 @@ void RetroshareDirModel::downloadSelected(const QModelIndexList &list,bool inter
FileSearchFlags f = RemoteMode?RS_FILE_HINTS_REMOTE:RS_FILE_HINTS_LOCAL ;
if(interactive)
- RsCollectionDialog::downloadFiles(RsCollection(dirVec,f)) ;
+ RsCollection(dirVec,f).downloadFiles() ;
else /* Fire off requests */
for (int i = 0, n = dirVec.size(); i < n; ++i)
{
diff --git a/retroshare-gui/src/gui/RemoteDirModel.h b/retroshare-gui/src/gui/RemoteDirModel.h
index b7811533e..83028dd48 100644
--- a/retroshare-gui/src/gui/RemoteDirModel.h
+++ b/retroshare-gui/src/gui/RemoteDirModel.h
@@ -68,6 +68,8 @@ class RetroshareDirModel : public QAbstractItemModel
/* Callback from GUI */
void downloadSelected(const QModelIndexList &list, bool interactive);
+ void createCollectionFile(QWidget *parent, const QModelIndexList &list);
+
void getDirDetailsFromSelect (const QModelIndexList &list, std::vector & dirVec);
int getType ( const QModelIndex & index ) const ;
diff --git a/retroshare-gui/src/gui/RetroShareLink.cpp b/retroshare-gui/src/gui/RetroShareLink.cpp
index 0001cd9bc..6e377f70e 100644
--- a/retroshare-gui/src/gui/RetroShareLink.cpp
+++ b/retroshare-gui/src/gui/RetroShareLink.cpp
@@ -25,7 +25,7 @@
#include "HomePage.h"
#include "chat/ChatDialog.h"
#include "common/PeerDefs.h"
-#include "common/RsCollectionDialog.h"
+#include "common/RsCollection.h"
#include "common/RsUrlHandler.h"
#include "connect/ConfCertDialog.h"
#include "connect/ConnectFriendWizard.h"
@@ -1143,13 +1143,11 @@ QString RetroShareLink::toHtmlSize() const
if (type() == TYPE_FILE && RsCollection::isCollectionFile(name())) {
FileInfo finfo;
- if (rsFiles->FileDetails(RsFileHash(hash().toStdString()), RS_FILE_HINTS_EXTRA | RS_FILE_HINTS_LOCAL, finfo))
- {
- RsCollection::RsCollectionErrorCode code;
- RsCollection collection(QString::fromUtf8(finfo.path.c_str()), code) ;
-
- if(code == RsCollection::RsCollectionErrorCode::COLLECTION_NO_ERROR)
+ if (rsFiles->FileDetails(RsFileHash(hash().toStdString()), RS_FILE_HINTS_EXTRA | RS_FILE_HINTS_LOCAL, finfo)) {
+ RsCollection collection;
+ if (collection.load(QString::fromUtf8(finfo.path.c_str()), false)) {
size += QString(" [%1]").arg(misc::friendlyUnit(collection.size()));
+ }
}
}
QString link = QString("%2 %3 ").arg(toString()).arg(name()).arg(size);
@@ -1724,9 +1722,10 @@ static void processList(const QStringList &list, const QString &textSingular, co
case TYPE_FILE_TREE:
{
- auto ft = RsFileTree::fromRadix64(link.radix().toStdString() );
- RsCollectionDialog::downloadFiles(RsCollection(*ft));
- break;
+ auto ft = RsFileTree::fromRadix64(
+ link.radix().toStdString() );
+ RsCollection(*ft).downloadFiles();
+ break;
}
case TYPE_CHAT_ROOM:
@@ -1777,7 +1776,7 @@ static void processList(const QStringList &list, const QString &textSingular, co
// were single file links found?
if (fileLinkFound)
- RsCollectionDialog::downloadFiles(col);
+ col.downloadFiles();
int countProcessed = 0;
int countError = 0;
@@ -1920,9 +1919,7 @@ static void processList(const QStringList &list, const QString &textSingular, co
void RSLinkClipboard::copyLinks(const QList& links)
{
QString res ;
- if(links.size() == 1)
- res += links[0].toString();
- else for(int i = 0; i < links.size(); ++i)
+ for (int i = 0; i < links.size(); ++i)
res += links[i].toString() + "\n" ;
QApplication::clipboard()->setText(res) ;
@@ -2038,3 +2035,4 @@ void RSLinkClipboard::parseText(QString text, QList &links,Retro
pos += rx.matchedLength();
}
}
+
diff --git a/retroshare-gui/src/gui/StartDialog.cpp b/retroshare-gui/src/gui/StartDialog.cpp
index 237d1bb83..d6f9f707d 100644
--- a/retroshare-gui/src/gui/StartDialog.cpp
+++ b/retroshare-gui/src/gui/StartDialog.cpp
@@ -123,7 +123,7 @@ void StartDialog::loadPerson()
rsNotify->cachePgpPassphrase(ui.password_input->text().toUtf8().constData()) ;
rsNotify->setDisableAskPassword(true);
- bool res = RsApplication::loadCertificate(accountId, ui.autologin_checkbox->isChecked()) ;
+ bool res = Rshare::loadCertificate(accountId, ui.autologin_checkbox->isChecked()) ;
rsNotify->setDisableAskPassword(false);
rsNotify->clearPgpPassphrase();
@@ -161,7 +161,7 @@ void StartDialog::notSecureWarning()
QMessageBox::warning ( this, tr("Warning"), tr("The password to your SSL certificate (your node) will be stored encrypted in your Keychain. \n\n Your PGP passwd will not be stored.\n\nThis choice can be reverted in settings."), QMessageBox::Ok);
#else
// this handles all linux systems at once.
- QMessageBox::warning ( this, tr("Warning"), tr("The password to your SSL certificate (your node) will be stored encrypted in your desktop's keyring. \n\n Your PGP passwd will not be stored.\n\nThis choice can be reverted in settings."), QMessageBox::Ok);
+ QMessageBox::warning ( this, tr("Warning"), tr("The password to your SSL certificate (your node) will be stored encrypted in your Gnome Keyring. \n\n Your PGP passwd will not be stored.\n\nThis choice can be reverted in settings."), QMessageBox::Ok);
#endif
#endif
}
diff --git a/retroshare-gui/src/gui/StartDialog.ui b/retroshare-gui/src/gui/StartDialog.ui
index 39287a797..8c491caeb 100644
--- a/retroshare-gui/src/gui/StartDialog.ui
+++ b/retroshare-gui/src/gui/StartDialog.ui
@@ -345,8 +345,8 @@ The current identities/locations will not be affected.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans'; font-size:13pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="Create new Profile..."><span style=" font-family:'MS Shell Dlg 2'; font-size:14pt; text-decoration: underline; color:#366fe0;">New Profile/Node</span></a></p></body></html>
+</style></head><body style=" font-family:'Sans'; font-size:10pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="Create new Profile..."><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; text-decoration: underline; color:#0000ff;">New Profile/Node</span></a></p></body></html>
@@ -370,8 +370,8 @@ p, li { white-space: pre-wrap; }
-
+
diff --git a/retroshare-gui/src/gui/TheWire/PulseAddDialog.cpp b/retroshare-gui/src/gui/TheWire/PulseAddDialog.cpp
index d3b666a7e..8877d5cf6 100644
--- a/retroshare-gui/src/gui/TheWire/PulseAddDialog.cpp
+++ b/retroshare-gui/src/gui/TheWire/PulseAddDialog.cpp
@@ -25,7 +25,6 @@
#include "gui/gxs/GxsIdDetails.h"
#include "gui/common/FilesDefs.h"
#include "util/misc.h"
-#include "util/qtthreadsutils.h"
#include "PulseAddDialog.h"
@@ -99,31 +98,11 @@ void PulseAddDialog::setGroup(RsWireGroup &group)
// set ReplyWith Group.
void PulseAddDialog::setGroup(const RsGxsGroupId &grpId)
{
- if(grpId.isNull()){
- return;
- }
+ /* fetch in the background */
+ RsWireGroupSPtr pGroup;
+ rsWire->getWireGroup(grpId, pGroup);
- RsThread::async([this,grpId](){
-
- RsWireGroupSPtr pGroup;
- if(!rsWire->getWireGroup(grpId,pGroup))
- {
- std::cerr << __PRETTY_FUNCTION__ << " failed to retrieve wire group info for wire id: " << grpId << std::endl;
- return;
- }
-
- RsQThreadUtils::postToObject( [pGroup,this]()
- {
- /* Here it goes any code you want to be executed on the Qt Gui
- * thread, for example to update the data model with new information
- * after a blocking call to RetroShare API complete, note that
- * Qt::QueuedConnection is important!
- */
-
- setGroup(*pGroup);
- }, this );
-
- });
+ setGroup(*pGroup);
}
void PulseAddDialog::cleanup()
@@ -215,7 +194,7 @@ void PulseAddDialog::setReplyTo(const RsWirePulse &pulse, RsWirePulseSPtr pPulse
mReplyToPulse = pulse;
mReplyType = replyType;
ui.frame_reply->setVisible(true);
- ui.pushButton_picture->hide();
+ ui.pushButton_picture->show();
ui.topheadshot->hide();
{
@@ -244,12 +223,10 @@ void PulseAddDialog::setReplyTo(const RsWirePulse &pulse, RsWirePulseSPtr pPulse
if (mReplyType & WIRE_PULSE_TYPE_REPUBLISH) {
ui.postButton->setText(tr("Republish Pulse"));
ui.pushButton_picture->hide();
- ui.pushButton_Browse->hide();
}
else if (mReplyType & WIRE_PULSE_TYPE_LIKE) {
ui.postButton->setText(tr("Like Pulse"));
ui.pushButton_picture->hide();
- ui.pushButton_Browse->hide();
}
}
@@ -257,46 +234,30 @@ void PulseAddDialog::setReplyTo(const RsWirePulse &pulse, RsWirePulseSPtr pPulse
void PulseAddDialog::setReplyTo(const RsGxsGroupId &grpId, const RsGxsMessageId &msgId, uint32_t replyType)
{
- if(grpId.isNull()){
- return;
- }
/* fetch in the background */
+ RsWireGroupSPtr pGroup;
+ if (!rsWire->getWireGroup(grpId, pGroup))
+ {
+ std::cerr << "PulseAddDialog::setRplyTo() failed to fetch group";
+ std::cerr << std::endl;
+ return;
+ }
- RsThread::async([this,grpId,msgId,replyType](){
+ RsWirePulseSPtr pPulse;
+ if (!rsWire->getWirePulse(grpId, msgId, pPulse))
+ {
+ std::cerr << "PulseAddDialog::setRplyTo() failed to fetch pulse";
+ std::cerr << std::endl;
+ return;
+ }
- RsWireGroupSPtr pGroup;
- RsWirePulseSPtr pPulse;
- if(!rsWire->getWireGroup(grpId,pGroup))
- {
- std::cerr << __PRETTY_FUNCTION__ << "PulseAddDialog::setRplyTo() failed to fetch group id: " << grpId << std::endl;
- return;
- }
-
- if (!rsWire->getWirePulse(grpId, msgId, pPulse))
- {
- std::cerr << "PulseAddDialog::setRplyTo() failed to fetch pulse of group id: " << grpId << std::endl;
- return;
- }
-
- // update GroupPtr
- // TODO - this should be handled in libretroshare if possible.
- if (pPulse->mGroupPtr == NULL) {
- pPulse->mGroupPtr = pGroup;
- }
-
- RsQThreadUtils::postToObject( [pGroup,this,pPulse,replyType]()
- {
- /* Here it goes any code you want to be executed on the Qt Gui
- * thread, for example to update the data model with new information
- * after a blocking call to RetroShare API complete, note that
- * Qt::QueuedConnection is important!
- */
-
- setReplyTo(*pPulse, pPulse, pGroup->mMeta.mGroupName, replyType);
- }, this );
-
- });
+ // update GroupPtr
+ // TODO - this should be handled in libretroshare if possible.
+ if (pPulse->mGroupPtr == NULL) {
+ pPulse->mGroupPtr = pGroup;
+ }
+ setReplyTo(*pPulse, pPulse, pGroup->mMeta.mGroupName, replyType);
}
void PulseAddDialog::addURL()
@@ -346,39 +307,26 @@ void PulseAddDialog::postOriginalPulse()
std::cerr << "PulseAddDialog::postOriginalPulse()";
std::cerr << std::endl;
- RsWirePulseSPtr pPulse(new RsWirePulse());
+ RsWirePulseSPtr pPulse(new RsWirePulse());
- pPulse->mSentiment = WIRE_PULSE_SENTIMENT_NO_SENTIMENT;
- pPulse->mPulseText = ui.textEdit_Pulse->toPlainText().toStdString();
- // set images here too.
- pPulse->mImage1 = mImage1;
- pPulse->mImage2 = mImage2;
- pPulse->mImage3 = mImage3;
- pPulse->mImage4 = mImage4;
+ pPulse->mSentiment = WIRE_PULSE_SENTIMENT_NO_SENTIMENT;
+ pPulse->mPulseText = ui.textEdit_Pulse->toPlainText().toStdString();
+ // set images here too.
+ pPulse->mImage1 = mImage1;
+ pPulse->mImage2 = mImage2;
+ pPulse->mImage3 = mImage3;
+ pPulse->mImage4 = mImage4;
- RsThread::async([this,pPulse](){
-
- if (!rsWire->createOriginalPulse(mGroup.mMeta.mGroupId, pPulse))
- {
- std::cerr << "PulseAddDialog::postOriginalPulse() FAILED";
- std::cerr << std::endl;
- return;
- }
-
- RsQThreadUtils::postToObject( [this]()
- {
- /* Here it goes any code you want to be executed on the Qt Gui
- * thread, for example to update the data model with new information
- * after a blocking call to RetroShare API complete, note that
- * Qt::QueuedConnection is important!
- */
-
- clearDialog();
- hide();
- }, this );
-
- });
+ // this should be in async thread, so doesn't block UI thread.
+ if (!rsWire->createOriginalPulse(mGroup.mMeta.mGroupId, pPulse))
+ {
+ std::cerr << "PulseAddDialog::postOriginalPulse() FAILED";
+ std::cerr << std::endl;
+ return;
+ }
+ clearDialog();
+ hide();
}
uint32_t PulseAddDialog::toPulseSentiment(int index)
@@ -408,15 +356,15 @@ void PulseAddDialog::postReplyPulse()
std::cerr << "PulseAddDialog::postReplyPulse()";
std::cerr << std::endl;
- RsWirePulseSPtr pPulse(new RsWirePulse());
+ RsWirePulseSPtr pPulse(new RsWirePulse());
- pPulse->mSentiment = toPulseSentiment(ui.comboBox_sentiment->currentIndex());
- pPulse->mPulseText = ui.textEdit_Pulse->toPlainText().toStdString();
- // set images here too.
- pPulse->mImage1 = mImage1;
- pPulse->mImage2 = mImage2;
- pPulse->mImage3 = mImage3;
- pPulse->mImage4 = mImage4;
+ pPulse->mSentiment = toPulseSentiment(ui.comboBox_sentiment->currentIndex());
+ pPulse->mPulseText = ui.textEdit_Pulse->toPlainText().toStdString();
+ // set images here too.
+ pPulse->mImage1 = mImage1;
+ pPulse->mImage2 = mImage2;
+ pPulse->mImage3 = mImage3;
+ pPulse->mImage4 = mImage4;
if (mReplyType & WIRE_PULSE_TYPE_REPUBLISH) {
// Copy details from parent, and override
@@ -430,33 +378,20 @@ void PulseAddDialog::postReplyPulse()
pPulse->mImage4 = mReplyToPulse.mImage4;
}
- RsThread::async([this, pPulse](){
-
- if (!rsWire->createReplyPulse(mReplyToPulse.mMeta.mGroupId,
- mReplyToPulse.mMeta.mOrigMsgId,
- mGroup.mMeta.mGroupId,
- mReplyType,
- pPulse))
- {
- std::cerr << "PulseAddDialog::postReplyPulse() FAILED";
- std::cerr << std::endl;
- return;
- }
-
- RsQThreadUtils::postToObject( [this]()
- {
- /* Here it goes any code you want to be executed on the Qt Gui
- * thread, for example to update the data model with new information
- * after a blocking call to RetroShare API complete, note that
- * Qt::QueuedConnection is important!
- */
-
- clearDialog();
- hide();
- }, this );
-
- });
+ // this should be in async thread, so doesn't block UI thread.
+ if (!rsWire->createReplyPulse(mReplyToPulse.mMeta.mGroupId,
+ mReplyToPulse.mMeta.mOrigMsgId,
+ mGroup.mMeta.mGroupId,
+ mReplyType,
+ pPulse))
+ {
+ std::cerr << "PulseAddDialog::postReplyPulse() FAILED";
+ std::cerr << std::endl;
+ return;
+ }
+ clearDialog();
+ hide();
}
void PulseAddDialog::clearDialog()
diff --git a/retroshare-gui/src/gui/TheWire/PulseAddDialog.ui b/retroshare-gui/src/gui/TheWire/PulseAddDialog.ui
index bdfda3cc5..c09119a40 100644
--- a/retroshare-gui/src/gui/TheWire/PulseAddDialog.ui
+++ b/retroshare-gui/src/gui/TheWire/PulseAddDialog.ui
@@ -140,7 +140,7 @@
- 9
+ 20
0
diff --git a/retroshare-gui/src/gui/TheWire/PulseReplySeperator.ui b/retroshare-gui/src/gui/TheWire/PulseReplySeperator.ui
index 6564fe5e3..4a605a219 100644
--- a/retroshare-gui/src/gui/TheWire/PulseReplySeperator.ui
+++ b/retroshare-gui/src/gui/TheWire/PulseReplySeperator.ui
@@ -40,7 +40,10 @@
-
+ QFrame#frame{border: 2px solid #CCCCCC;
+background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
+ stop: 0 #EEEEEE, stop: 1 #CCCCCC);
+border-radius: 10px}
QFrame::StyledPanel
diff --git a/retroshare-gui/src/gui/TheWire/WireDialog.cpp b/retroshare-gui/src/gui/TheWire/WireDialog.cpp
index 36a201a7f..38ea1b398 100644
--- a/retroshare-gui/src/gui/TheWire/WireDialog.cpp
+++ b/retroshare-gui/src/gui/TheWire/WireDialog.cpp
@@ -140,7 +140,6 @@ WireDialog::~WireDialog()
processSettings(false);
clearTwitterView();
- std::cerr << "WireDialog::~WireDialog()" << std::endl;
delete(mWireQueue);
rsEvents->unregisterEventsHandler(mEventHandlerId);
@@ -155,16 +154,9 @@ void WireDialog::processSettings(bool load)
// state of splitter
ui.splitter->restoreState(Settings->value("SplitterWire").toByteArray());
-
- // state of filter combobox
- int index = Settings->value("ShowGroup", 0).toInt();
- ui.comboBox_groupSet->setCurrentIndex(index);
} else {
// save settings
- // state of filter combobox
- Settings->setValue("ShowGroup", ui.comboBox_groupSet->currentIndex());
-
// state of splitter
Settings->setValue("SplitterWire", ui.splitter->saveState());
}
@@ -475,13 +467,13 @@ bool WireDialog::loadGroupData(const uint32_t &token)
std::cerr << "WireDialog::loadGroupData()";
std::cerr << std::endl;
- std::vector groups;
- rsWire->getGroupData(token, groups);
+ std::vector groups;
+ rsWire->getGroupData(token, groups);
- // save list of groups.
- updateGroups(groups);
- showGroups();
- return true;
+ // save list of groups.
+ updateGroups(groups);
+ showGroups();
+ return true;
}
rstime_t WireDialog::getFilterTimestamp()
@@ -689,7 +681,6 @@ void WireDialog::PVHrate(const RsGxsId &authorId)
void WireDialog::postTestTwitterView()
{
clearTwitterView();
- std::cerr << "WireDialog::postTestTwitterView()" << std::endl;
addTwitterView(new PulseTopLevel(NULL,RsWirePulseSPtr()));
addTwitterView(new PulseReply(NULL,RsWirePulseSPtr()));
@@ -846,7 +837,6 @@ void WireDialog::requestPulseFocus(const RsGxsGroupId groupId, const RsGxsMessag
void WireDialog::showPulseFocus(const RsGxsGroupId groupId, const RsGxsMessageId msgId)
{
clearTwitterView();
- std::cerr << "WireDialog::showPulseFocus()" << std::endl;
// background thread for loading.
RsThread::async([this, groupId, msgId]()
@@ -876,8 +866,6 @@ void WireDialog::showPulseFocus(const RsGxsGroupId groupId, const RsGxsMessageId
void WireDialog::postPulseFocus(RsWirePulseSPtr pPulse)
{
clearTwitterView();
- std::cerr << "WireDialog::postPulseFocus()" << std::endl;
-
if (!pPulse)
{
std::cerr << "WireDialog::postPulseFocus() Invalid pulse";
@@ -950,7 +938,7 @@ void WireDialog::requestGroupFocus(const RsGxsGroupId groupId)
void WireDialog::showGroupFocus(const RsGxsGroupId groupId)
{
clearTwitterView();
- std::cerr << "WireDialog::showGroupFocus()" << std::endl;
+
// background thread for loading.
RsThread::async([this, groupId]()
{
@@ -1027,7 +1015,6 @@ void WireDialog::requestGroupsPulses(const std::list& groupIds)
void WireDialog::showGroupsPulses(const std::list& groupIds)
{
clearTwitterView();
- std::cerr << "WireDialog::showGroupPulses()" << std::endl;
// background thread for loading.
RsThread::async([this, groupIds]()
@@ -1077,3 +1064,4 @@ void WireDialog::postGroupsPulses(std::list pulses)
}
}
+
diff --git a/retroshare-gui/src/gui/TheWire/WireDialog.h b/retroshare-gui/src/gui/TheWire/WireDialog.h
index fcd33ad37..a55369fc0 100644
--- a/retroshare-gui/src/gui/TheWire/WireDialog.h
+++ b/retroshare-gui/src/gui/TheWire/WireDialog.h
@@ -150,7 +150,7 @@ private:
// Loading Data.
void requestGroupData();
- bool loadGroupData(const uint32_t &token);
+ bool loadGroupData(const uint32_t &token);
void acknowledgeGroup(const uint32_t &token, const uint32_t &userType);
virtual void loadRequest(const TokenQueue *queue, const TokenRequest &req) override;
diff --git a/retroshare-gui/src/gui/TheWire/WireGroupItem.cpp b/retroshare-gui/src/gui/TheWire/WireGroupItem.cpp
index 1759103f6..199800581 100644
--- a/retroshare-gui/src/gui/TheWire/WireGroupItem.cpp
+++ b/retroshare-gui/src/gui/TheWire/WireGroupItem.cpp
@@ -123,21 +123,21 @@ void WireGroupItem::setup()
void WireGroupItem::setGroupSet()
{
if (mGroup.mMeta.mSubscribeFlags & GXS_SERV::GROUP_SUBSCRIBE_ADMIN) {
- toolButton_type->setText(tr("Own"));
- toolButton_subscribe->setText(tr("N/A"));
+ toolButton_type->setText("Own");
+ toolButton_subscribe->setText("N/A");
toolButton_subscribe->setEnabled(false);
editButton->show();
}
else if (mGroup.mMeta.mSubscribeFlags & GXS_SERV::GROUP_SUBSCRIBE_SUBSCRIBED)
{
- toolButton_type->setText(tr("Following"));
- toolButton_subscribe->setText(tr("Unfollow"));
+ toolButton_type->setText("Following");
+ toolButton_subscribe->setText("Unfollow");
editButton->hide();
}
else
{
- toolButton_type->setText(tr("Other"));
- toolButton_subscribe->setText(tr("Follow"));
+ toolButton_type->setText("Other");
+ toolButton_subscribe->setText("Follow");
editButton->hide();
}
}
diff --git a/retroshare-gui/src/gui/advsearch/expressionwidget.cpp b/retroshare-gui/src/gui/advsearch/expressionwidget.cpp
index 9387f951e..f6b150065 100644
--- a/retroshare-gui/src/gui/advsearch/expressionwidget.cpp
+++ b/retroshare-gui/src/gui/advsearch/expressionwidget.cpp
@@ -20,7 +20,6 @@
* *
*******************************************************************************/
#include "expressionwidget.h"
-#include "util/QtVersion.h"
ExpressionWidget::ExpressionWidget(QWidget * parent, bool initial)
: QWidget(parent)
@@ -110,7 +109,11 @@ RsRegularExpression::Expression* ExpressionWidget::getRsExpression()
if (isStringSearchExpression())
{
QString txt = exprParamElem->getStrSearchValue();
- QStringList words = txt.split(" ", QtSkipEmptyParts);
+#if QT_VERSION < QT_VERSION_CHECK(5,15,0)
+ QStringList words = txt.split(" ", QString::SkipEmptyParts);
+#else
+ QStringList words = txt.split(" ", Qt::SkipEmptyParts);
+#endif
for (int i = 0; i < words.size(); ++i)
wordList.push_back(words.at(i).toUtf8().constData());
} else if (inRangedConfig){
diff --git a/retroshare-gui/src/gui/chat/ChatLobbyDialog.cpp b/retroshare-gui/src/gui/chat/ChatLobbyDialog.cpp
index fbc35d2cf..3b92883e8 100644
--- a/retroshare-gui/src/gui/chat/ChatLobbyDialog.cpp
+++ b/retroshare-gui/src/gui/chat/ChatLobbyDialog.cpp
@@ -23,7 +23,6 @@
#include
#include
#include
-#include
#include "ChatLobbyDialog.h"
@@ -209,8 +208,6 @@ ChatLobbyDialog::ChatLobbyDialog(const ChatLobbyId& lid, QWidget *parent, Qt::Wi
connect(unsubscribeButton, SIGNAL(clicked()), this , SLOT(leaveLobby()));
getChatWidget()->addTitleBarWidget(unsubscribeButton) ;
-
- mFontSizeHandler.registerFontSize(ui.participantsList);
}
void ChatLobbyDialog::leaveLobby()
diff --git a/retroshare-gui/src/gui/chat/ChatLobbyDialog.h b/retroshare-gui/src/gui/chat/ChatLobbyDialog.h
index c3572cc4b..065abacee 100644
--- a/retroshare-gui/src/gui/chat/ChatLobbyDialog.h
+++ b/retroshare-gui/src/gui/chat/ChatLobbyDialog.h
@@ -26,7 +26,6 @@
#include "gui/common/RSTreeWidgetItem.h"
#include "ChatDialog.h"
#include "PopupChatWindow.h"
-#include "util/FontSizeHandler.h"
// Q_DECLARE_METATYPE(RsGxsId)
// Q_DECLARE_METATYPE(QList)
@@ -116,8 +115,6 @@ private:
bool mWindowedSetted;
PopupChatWindow* mPCWindow;
- FontSizeHandler mFontSizeHandler;
-
/** Qt Designer generated object */
Ui::ChatLobbyDialog ui;
diff --git a/retroshare-gui/src/gui/chat/ChatLobbyDialog.ui b/retroshare-gui/src/gui/chat/ChatLobbyDialog.ui
index e00790f83..0851eba15 100644
--- a/retroshare-gui/src/gui/chat/ChatLobbyDialog.ui
+++ b/retroshare-gui/src/gui/chat/ChatLobbyDialog.ui
@@ -80,10 +80,10 @@
-
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
diff --git a/retroshare-gui/src/gui/chat/ChatLobbyUserNotify.cpp b/retroshare-gui/src/gui/chat/ChatLobbyUserNotify.cpp
index 719ad7d2d..4407cc73c 100644
--- a/retroshare-gui/src/gui/chat/ChatLobbyUserNotify.cpp
+++ b/retroshare-gui/src/gui/chat/ChatLobbyUserNotify.cpp
@@ -146,48 +146,8 @@ QString ChatLobbyUserNotify::getNotifyMessage(bool plural)
void ChatLobbyUserNotify::iconClicked()
{
- #if defined(Q_OS_DARWIN)
- std::list lobbies;
- rsMsgs->getChatLobbyList(lobbies);
- bool doUpdate=false;
-
- for (lobby_map::iterator itCL=_listMsg.begin(); itCL!=_listMsg.end();)
- {
- bool bFound=false;
- QString strLobbyName=tr("Unknown Lobby");
- QIcon icoLobby=QIcon();
- std::list::const_iterator lobbyIt;
- for (lobbyIt = lobbies.begin(); lobbyIt != lobbies.end(); ++lobbyIt) {
- ChatLobbyId clId = *lobbyIt;
- if (clId==itCL->first) {
- ChatLobbyInfo clInfo;
- if (rsMsgs->getChatLobbyInfo(clId,clInfo))
- strLobbyName=QString::fromUtf8(clInfo.lobby_name.c_str()) ;
- bFound=true;
- break;
- }
- }
-
- if (bFound)
- {
- MainWindow::showWindow(MainWindow::ChatLobby);
- ChatLobbyWidget *chatLobbyWidget = dynamic_cast(MainWindow::getPage(MainWindow::ChatLobby));
- if (chatLobbyWidget) chatLobbyWidget->showLobbyAnchor(itCL->first,strLobbyName);
- ++itCL ;
- }
- else
- {
- lobby_map::iterator ittmp(itCL);
- ++ittmp ;
- _listMsg.erase(itCL);
- itCL=ittmp ;
- doUpdate=true;
- }
- }
- #else
-
/// Tray icon Menu ///
- QMenu* trayMenu = createMenu();
+ QMenu* trayMenu = new QMenu(MainWindow::getInstance());
std::list lobbies;
rsMsgs->getChatLobbyList(lobbies);
bool doUpdate=false;
@@ -226,25 +186,27 @@ void ChatLobbyUserNotify::iconClicked()
}
}
+ if (notifyCombined()) {
+ QSystemTrayIcon* trayIcon=getTrayIcon();
+ if (trayIcon!=NULL) trayIcon->setContextMenu(trayMenu);
+ } else {
+ QAction* action=getNotifyIcon();
+ if (action!=NULL) {
+ action->setMenu(trayMenu);
+ }
+ }
+
QString strName=tr("Remove All");
QAction *pAction = new QAction( QIcon(), strName, trayMenu);
ActionTag actionTag={0x0, "", true};
pAction->setData(qVariantFromValue(actionTag));
+ connect(trayMenu, SIGNAL(triggered(QAction*)), this, SLOT(subMenuClicked(QAction*)));
+ connect(trayMenu, SIGNAL(hovered(QAction*)), this, SLOT(subMenuHovered(QAction*)));
trayMenu->addAction(pAction);
trayMenu->exec(QCursor::pos());
- delete(trayMenu);
if (doUpdate) updateIcon();
- #endif
-}
-
-QMenu* ChatLobbyUserNotify::createMenu()
-{
- QMenu* menu = new QMenu(MainWindow::getInstance());
- connect(menu, SIGNAL(triggered(QAction*)), this, SLOT(subMenuClicked(QAction*)));
- connect(menu, SIGNAL(hovered(QAction*)), this, SLOT(subMenuHovered(QAction*)));
- return menu;
}
void ChatLobbyUserNotify::makeSubMenu(QMenu* parentMenu, QIcon icoLobby, QString strLobbyName, ChatLobbyId id)
@@ -255,7 +217,11 @@ void ChatLobbyUserNotify::makeSubMenu(QMenu* parentMenu, QIcon icoLobby, QString
unsigned int msgCount=msgMap.size();
+ if(!parentMenu) parentMenu = new QMenu(MainWindow::getInstance());
QMenu *lobbyMenu = parentMenu->addMenu(icoLobby, strLobbyName);
+ connect(lobbyMenu, SIGNAL(triggered(QAction*)), this, SLOT(subMenuClicked(QAction*)));
+ connect(lobbyMenu, SIGNAL(hovered(QAction*)), this, SLOT(subMenuHovered(QAction*)));
+
lobbyMenu->setToolTip(getNotifyMessage(msgCount>1).arg(msgCount));
for (msg_map::iterator itMsg=msgMap.begin(); itMsg!=msgMap.end(); ++itMsg) {
@@ -277,6 +243,7 @@ void ChatLobbyUserNotify::makeSubMenu(QMenu* parentMenu, QIcon icoLobby, QString
ActionTag actionTag={itCL->first, "", true};
pAction->setData(qVariantFromValue(actionTag));
lobbyMenu->addAction(pAction);
+
}
void ChatLobbyUserNotify::iconHovered()
@@ -284,6 +251,7 @@ void ChatLobbyUserNotify::iconHovered()
iconClicked();
}
+
void ChatLobbyUserNotify::chatLobbyNewMessage(ChatLobbyId lobby_id, QDateTime time, QString senderName, QString msg)
{
diff --git a/retroshare-gui/src/gui/chat/ChatLobbyUserNotify.h b/retroshare-gui/src/gui/chat/ChatLobbyUserNotify.h
index 2e49f450f..fd95511b4 100644
--- a/retroshare-gui/src/gui/chat/ChatLobbyUserNotify.h
+++ b/retroshare-gui/src/gui/chat/ChatLobbyUserNotify.h
@@ -49,7 +49,6 @@ public:
ChatLobbyUserNotify(QObject *parent = 0);
virtual bool hasSetting(QString *name, QString *group);
- QMenu* createMenu();
void makeSubMenu(QMenu* parentMenu, QIcon icoLobby, QString strLobbyName, ChatLobbyId id);
void chatLobbyNewMessage(ChatLobbyId lobby_id, QDateTime time, QString senderName, QString msg);
void chatLobbyCleared(ChatLobbyId lobby_id, QString anchor, bool onlyUnread=false);
diff --git a/retroshare-gui/src/gui/chat/ChatUserNotify.cpp b/retroshare-gui/src/gui/chat/ChatUserNotify.cpp
index dcafae59a..5f78739c3 100644
--- a/retroshare-gui/src/gui/chat/ChatUserNotify.cpp
+++ b/retroshare-gui/src/gui/chat/ChatUserNotify.cpp
@@ -76,7 +76,7 @@ bool ChatUserNotify::hasSetting(QString *name, QString *group)
QIcon ChatUserNotify::getIcon()
{
- return FilesDefs::getIconFromQtResourcePath(":/images/orange-bubble-64.png");
+ return FilesDefs::getIconFromQtResourcePath(":/images/chat.png");
}
QIcon ChatUserNotify::getMainIcon(bool hasNew)
diff --git a/retroshare-gui/src/gui/chat/ChatWidget.cpp b/retroshare-gui/src/gui/chat/ChatWidget.cpp
index abab8336a..03f954964 100644
--- a/retroshare-gui/src/gui/chat/ChatWidget.cpp
+++ b/retroshare-gui/src/gui/chat/ChatWidget.cpp
@@ -982,12 +982,11 @@ void ChatWidget::on_notifyButton_clicked()
if(!notify) return;
if (chatType() != CHATTYPE_LOBBY) return;
- QMenu* menu = notify->createMenu();
+ QMenu* menu = new QMenu(MainWindow::getInstance());
QIcon icoLobby=(ui->notifyButton->icon());
notify->makeSubMenu(menu, icoLobby, title, chatId.toLobbyId());
menu->exec(ui->notifyButton->mapToGlobal(QPoint(0,ui->notifyButton->geometry().height())));
- delete(menu);
}
diff --git a/retroshare-gui/src/gui/common/AvatarDefs.cpp b/retroshare-gui/src/gui/common/AvatarDefs.cpp
index 3255501aa..ccca08707 100644
--- a/retroshare-gui/src/gui/common/AvatarDefs.cpp
+++ b/retroshare-gui/src/gui/common/AvatarDefs.cpp
@@ -54,9 +54,7 @@ bool AvatarDefs::getAvatarFromSslId(const RsPeerId& sslId, QPixmap &avatar, cons
/* get avatar */
rsMsgs->getAvatarData(RsPeerId(sslId), data, size);
if (size == 0) {
- if (!defaultImage.isEmpty()) {
- avatar = FilesDefs::getPixmapFromQtResourcePath(defaultImage);
- }
+ avatar = FilesDefs::getPixmapFromQtResourcePath(defaultImage);
return false;
}
diff --git a/retroshare-gui/src/gui/common/AvatarDialog.cpp b/retroshare-gui/src/gui/common/AvatarDialog.cpp
index a5e8d15d4..dd302b570 100644
--- a/retroshare-gui/src/gui/common/AvatarDialog.cpp
+++ b/retroshare-gui/src/gui/common/AvatarDialog.cpp
@@ -30,7 +30,6 @@
#include
#include
#include
-#include
#include
#include
@@ -107,8 +106,8 @@ void AvatarDialog::removeAvatar()
void AvatarDialog::updateInterface()
{
- QPixmap pixmap = ui->avatarLabel->pixmap(Qt::ReturnByValue);
- if (!pixmap.isNull()) {
+ const QPixmap *pixmap = ui->avatarLabel->pixmap();
+ if (pixmap && !pixmap->isNull()) {
ui->removeButton->setEnabled(true);
} else {
ui->removeButton->setEnabled(false);
@@ -123,7 +122,13 @@ void AvatarDialog::setAvatar(const QPixmap &avatar)
void AvatarDialog::getAvatar(QPixmap &avatar)
{
- avatar = ui->avatarLabel->pixmap(Qt::ReturnByValue);
+ const QPixmap *pixmap = ui->avatarLabel->pixmap();
+ if (!pixmap) {
+ avatar = QPixmap();
+ return;
+ }
+
+ avatar = *pixmap;
}
void AvatarDialog::getAvatar(QByteArray &avatar)
diff --git a/retroshare-gui/src/gui/common/AvatarWidget.cpp b/retroshare-gui/src/gui/common/AvatarWidget.cpp
index 02151730a..e6d6d03d9 100644
--- a/retroshare-gui/src/gui/common/AvatarWidget.cpp
+++ b/retroshare-gui/src/gui/common/AvatarWidget.cpp
@@ -121,7 +121,7 @@ void AvatarWidget::setFrameType(FrameType type)
//refreshAvatarImage();
refreshStatus();
- RsApplication::refreshStyleSheet(this, false);
+ Rshare::refreshStyleSheet(this, false);
}
void AvatarWidget::setId(const ChatId &id)
{
@@ -174,7 +174,7 @@ void AvatarWidget::refreshStatus()
case NO_FRAME:
case NORMAL_FRAME:
{
- RsApplication::refreshStyleSheet(this, false);
+ Rshare::refreshStyleSheet(this, false);
break;
}
case STATUS_FRAME:
@@ -252,7 +252,7 @@ void AvatarWidget::updateStatus(int status)
mPeerState = status;
setEnabled(((uint32_t) status == RS_STATUS_OFFLINE) ? false : true);
- RsApplication::refreshStyleSheet(this, false);
+ Rshare::refreshStyleSheet(this, false);
}
void AvatarWidget::updateAvatar(const QString &peerId)
diff --git a/retroshare-gui/src/gui/common/FriendListModel.cpp b/retroshare-gui/src/gui/common/FriendListModel.cpp
index 45c054698..622ae3930 100644
--- a/retroshare-gui/src/gui/common/FriendListModel.cpp
+++ b/retroshare-gui/src/gui/common/FriendListModel.cpp
@@ -65,7 +65,7 @@ static const uint32_t NODE_DETAILS_UPDATE_DELAY = 5; // update each node every 5
RsFriendListModel::RsFriendListModel(QObject *parent)
: QAbstractItemModel(parent)
- , mDisplayGroups(true), mDisplayStatusString(true), mDisplayStatusIcon (false)
+ , mDisplayGroups(true), mDisplayStatusString(true)
, mLastInternalDataUpdate(0), mLastNodeUpdate(0)
{
mFilterStrings.clear();
@@ -141,39 +141,13 @@ template<> bool RsFriendListModel::convertInternalIdToIndex<8>(quintptr ref,Entr
return true;
}
-static QIcon createAvatar(const QPixmap &avatar, const QPixmap &overlay)
-{
- int avatarWidth = avatar.width();
- int avatarHeight = avatar.height();
-
- QPixmap pixmap(avatar);
-
- int overlaySize = (avatarWidth > avatarHeight) ? (avatarWidth/2.5) : (avatarHeight/2.5);
- int overlayX = avatarWidth - overlaySize;
- int overlayY = avatarHeight - overlaySize;
-
- QPainter painter(&pixmap);
- painter.drawPixmap(overlayX, overlayY, overlaySize, overlaySize, overlay);
-
- QIcon icon;
- icon.addPixmap(pixmap);
- return icon;
-}
void RsFriendListModel::setDisplayStatusString(bool b)
{
- preMods();
mDisplayStatusString = b;
postMods();
}
-void RsFriendListModel::setDisplayStatusIcon(bool b)
-{
- preMods();
- mDisplayStatusIcon = b;
- postMods();
-}
-
void RsFriendListModel::setDisplayGroups(bool b)
{
mDisplayGroups = b;
@@ -304,16 +278,16 @@ uint32_t RsFriendListModel::EntryIndex::parentRow(uint32_t nb_groups) const
switch(type)
{
default:
- case ENTRY_TYPE_UNKNOWN : return -1;
- case ENTRY_TYPE_GROUP : return -1;
- case ENTRY_TYPE_PROFILE : return (group_index==UNDEFINED_GROUP_INDEX_VALUE)?(-1):group_index;
- case ENTRY_TYPE_NODE : return (group_index==UNDEFINED_GROUP_INDEX_VALUE)?(profile_index+nb_groups):profile_index;
+ case ENTRY_TYPE_UNKNOWN : return 0;
+ case ENTRY_TYPE_GROUP : return group_index;
+ case ENTRY_TYPE_PROFILE : return (group_index==UNDEFINED_GROUP_INDEX_VALUE)?(profile_index+nb_groups):profile_index;
+ case ENTRY_TYPE_NODE : return node_index;
}
}
QModelIndex RsFriendListModel::index(int row, int column, const QModelIndex& parent) const
{
- if(row < 0 || column < 0 || column >= columnCount(parent) || row >= rowCount(parent))
+ if(row < 0 || column < 0 || column >= COLUMN_THREAD_NB_COLUMNS)
return QModelIndex();
if(parent.internalId() == 0)
@@ -439,28 +413,17 @@ QVariant RsFriendListModel::textColorRole(const EntryIndex& fmpe,int column) con
{
switch(fmpe.type)
{
- case ENTRY_TYPE_GROUP: return QVariant(QBrush(mTextColorGroup));
- case ENTRY_TYPE_PROFILE: return QVariant(QBrush(mTextColorStatus[onlineRole(fmpe,column).toInt()]));
- case ENTRY_TYPE_NODE: return QVariant(QBrush(mTextColorStatus[statusRole(fmpe,column).toInt()]));
+ case ENTRY_TYPE_GROUP: return QVariant(QBrush(mTextColorGroup));
+ case ENTRY_TYPE_PROFILE:
+ case ENTRY_TYPE_NODE: return QVariant(QBrush(mTextColorStatus[onlineRole(fmpe,column).toInt()]));
default:
return QVariant();
}
}
-// statusRole returns the status (e.g. RS_STATUS_BUSY). It is used only to change the font color
-
-QVariant RsFriendListModel::statusRole(const EntryIndex& fmpe,int /*column*/) const
+QVariant RsFriendListModel::statusRole(const EntryIndex& /*fmpe*/,int /*column*/) const
{
- const HierarchicalNodeInformation *node = getNodeInfo(fmpe);
-
- if(node)
- {
- StatusInfo status;
- rsStatus->getStatus(node->node_info.id, status);
-
- return QVariant(status.status);
- }
- return QVariant();
+ return QVariant();//fmpe.mMsgStatus);
}
bool RsFriendListModel::passesFilter(const EntryIndex& e,int /*column*/) const
@@ -585,9 +548,6 @@ QVariant RsFriendListModel::sortRole(const EntryIndex& entry,int column) const
}
}
-// Only returns two values: RS_STATUS_ONLINE, or RS_STATUS_OFFLINE. This is used to decide on text font (bold)
-// and whether profiles have children or not when offline nodes are shown.
-
QVariant RsFriendListModel::onlineRole(const EntryIndex& e, int /*col*/) const
{
switch(e.type)
@@ -625,10 +585,13 @@ QVariant RsFriendListModel::onlineRole(const EntryIndex& e, int /*col*/) const
{
const HierarchicalNodeInformation *node = getNodeInfo(e);
- if(node && bool(node->node_info.state & RS_PEER_STATE_CONNECTED))
- return QVariant(RS_STATUS_ONLINE);
- else
- return QVariant(RS_STATUS_OFFLINE);
+ if(node)
+ {
+ StatusInfo status;
+ rsStatus->getStatus(node->node_info.id, status);
+
+ return QVariant(status.status);
+ }
}
}
return QVariant(RS_STATUS_OFFLINE);
@@ -663,6 +626,12 @@ QVariant RsFriendListModel::fontRole(const EntryIndex& e, int col) const
}
}
+class AutoEndel
+{
+public:
+ ~AutoEndel() { std::cerr << std::endl;}
+};
+
QVariant RsFriendListModel::displayRole(const EntryIndex& e, int col) const
{
#ifdef DEBUG_MODEL_INDEX
@@ -781,7 +750,7 @@ QVariant RsFriendListModel::displayRole(const EntryIndex& e, int col) const
else
{
return QVariant(QString::fromUtf8(node->node_info.location.c_str())+"\n"
- + "(" + StatusDefs::name(statusRole(e,col).toInt()) + ")");
+ + "(" + StatusDefs::name(onlineRole(e,col).toInt()) + ")");
}
else
return QVariant(QString::fromUtf8(node->node_info.location.c_str()));
@@ -900,69 +869,6 @@ bool RsFriendListModel::getPeerOnlineStatus(const EntryIndex& e) const
return (noded && (noded->node_info.state & RS_PEER_STATE_CONNECTED));
}
-const RsFriendListModel::HierarchicalNodeInformation *RsFriendListModel::getBestNodeInformation(const HierarchicalProfileInformation *profileInfo, uint32_t *status) const
-{
- if (status) {
- *status = RS_STATUS_OFFLINE;
- }
-
- if (!profileInfo) {
- return NULL;
- }
-
- const RsFriendListModel::HierarchicalNodeInformation *bestNodeInformation = NULL;
- int bestStatusIndex = 0;
-
- /* Find the best status */
- for (uint32_t i = 0; i < profileInfo->child_node_indices.size(); ++i) {
- const RsFriendListModel::HierarchicalNodeInformation &nodeInformation = mLocations[profileInfo->child_node_indices[i]];
- StatusInfo statusInfo;
- rsStatus->getStatus(nodeInformation.node_info.id, statusInfo);
-
- int statusIndex = 0;
- switch (statusInfo.status) {
- case RS_STATUS_OFFLINE:
- statusIndex = 1;
- break;
-
- case RS_STATUS_INACTIVE:
- statusIndex = 2;
- break;
-
- case RS_STATUS_AWAY:
- statusIndex = 3;
- break;
-
- case RS_STATUS_BUSY:
- statusIndex = 4;
- break;
-
- case RS_STATUS_ONLINE:
- statusIndex = 5;
- break;
-
- default:
- std::cerr << "FriendListModel: Unknown status " << statusInfo.status << std::endl;
- }
-
- if (bestStatusIndex == 0 || statusIndex > bestStatusIndex) {
- /* first status or better status */
- bestStatusIndex = statusIndex;
- bestNodeInformation = &nodeInformation;
-
- if (status) {
- *status = statusInfo.status;
- }
- }
- }
-
- if (bestStatusIndex == 0) {
- return NULL;
- }
-
- return bestNodeInformation;
-}
-
QVariant RsFriendListModel::decorationRole(const EntryIndex& entry,int col) const
{
if(col > 0)
@@ -996,42 +902,13 @@ QVariant RsFriendListModel::decorationRole(const EntryIndex& entry,int col) cons
{
if(!isProfileExpanded(entry))
{
- QPixmap sslAvatar;
- bool foundAvatar = false;
+ QPixmap sslAvatar = FilesDefs::getPixmapFromQtResourcePath(AVATAR_DEFAULT_IMAGE);
+
const HierarchicalProfileInformation *hn = getProfileInfo(entry);
- uint32_t status = RS_STATUS_OFFLINE;
- const HierarchicalNodeInformation *bestNodeInformation = NULL;
- if (mDisplayStatusIcon) {
- bestNodeInformation = getBestNodeInformation(hn, &status);
- if (bestNodeInformation) {
- if (AvatarDefs::getAvatarFromSslId(RsPeerId(bestNodeInformation->node_info.id.toStdString()), sslAvatar, "")) {
- /* Use avatar from best node */
- foundAvatar = true;
- }
- }
- }
-
- if (!foundAvatar) {
- /* Use first available avatar */
- for(uint32_t i=0;ichild_node_indices.size();++i) {
- if(AvatarDefs::getAvatarFromSslId(RsPeerId(mLocations[hn->child_node_indices[i]].node_info.id.toStdString()), sslAvatar, "")) {
- foundAvatar = true;
- break;
- }
- }
- }
-
- if (!foundAvatar || sslAvatar.isNull()) {
- sslAvatar = FilesDefs::getPixmapFromQtResourcePath(AVATAR_DEFAULT_IMAGE);
- }
-
- if (mDisplayStatusIcon) {
- if (bestNodeInformation) {
- QPixmap sslOverlayIcon = FilesDefs::getPixmapFromQtResourcePath(StatusDefs::imageStatus(status));
- return QVariant(QIcon(createAvatar(sslAvatar, sslOverlayIcon)));
- }
- }
+ for(uint32_t i=0;ichild_node_indices.size();++i)
+ if(AvatarDefs::getAvatarFromSslId(RsPeerId(mLocations[hn->child_node_indices[i]].node_info.id.toStdString()), sslAvatar))
+ return QVariant(QIcon(sslAvatar));
return QVariant(QIcon(sslAvatar));
}
@@ -1048,10 +925,6 @@ QVariant RsFriendListModel::decorationRole(const EntryIndex& entry,int col) cons
QPixmap sslAvatar;
AvatarDefs::getAvatarFromSslId(RsPeerId(hn->node_info.id.toStdString()), sslAvatar);
- if (mDisplayStatusIcon) {
- QPixmap sslOverlayIcon = FilesDefs::getPixmapFromQtResourcePath(StatusDefs::imageStatus(statusRole(entry, col).toInt()));
- return QVariant(QIcon(createAvatar(sslAvatar, sslOverlayIcon)));
- }
return QVariant(QIcon(sslAvatar));
}
diff --git a/retroshare-gui/src/gui/common/FriendListModel.h b/retroshare-gui/src/gui/common/FriendListModel.h
index e19a84f04..646159377 100644
--- a/retroshare-gui/src/gui/common/FriendListModel.h
+++ b/retroshare-gui/src/gui/common/FriendListModel.h
@@ -129,10 +129,6 @@ public:
void setDisplayStatusString(bool b);
bool getDisplayStatusString() const { return mDisplayStatusString; }
- void setDisplayStatusIcon(bool b);
- bool getDisplayStatusIcon() const { return mDisplayStatusIcon; }
-
-
EntryType getType(const QModelIndex&) const;
@@ -223,14 +219,11 @@ private:
uint32_t updateFilterStatus(ForumModelIndex i,int column,const QStringList& strings);
- const HierarchicalNodeInformation *getBestNodeInformation(const HierarchicalProfileInformation *profileInfo, uint32_t *status = NULL) const;
-
QStringList mFilterStrings;
FilterType mFilterType;
bool mDisplayGroups ;
bool mDisplayStatusString ;
- bool mDisplayStatusIcon ;
rstime_t mLastInternalDataUpdate;
rstime_t mLastNodeUpdate;;
diff --git a/retroshare-gui/src/gui/common/FriendSelectionWidget.cpp b/retroshare-gui/src/gui/common/FriendSelectionWidget.cpp
index d9fc4b8dc..2e91ded27 100644
--- a/retroshare-gui/src/gui/common/FriendSelectionWidget.cpp
+++ b/retroshare-gui/src/gui/common/FriendSelectionWidget.cpp
@@ -127,7 +127,7 @@ FriendSelectionWidget::FriendSelectionWidget(QWidget *parent)
ui->filterLineEdit->showFilterIcon();
/* Refresh style to have the correct text color */
- RsApplication::refreshStyleSheet(this, false);
+ Rshare::refreshStyleSheet(this, false);
mEventHandlerId_identities = 0;
rsEvents->registerEventsHandler( [this](std::shared_ptr event) {
@@ -135,8 +135,6 @@ FriendSelectionWidget::FriendSelectionWidget(QWidget *parent)
mEventHandlerId_peers = 0;
rsEvents->registerEventsHandler( [this](std::shared_ptr event) {
RsQThreadUtils::postToObject( [this,event]() { handleEvent_main_thread(event); }) ;}, mEventHandlerId_peers, RsEventType::PEER_CONNECTION );
-
- mFontSizeHandler.registerFontSize(ui->friendList);
}
void FriendSelectionWidget::handleEvent_main_thread(std::shared_ptr event)
@@ -1227,7 +1225,7 @@ std::string FriendSelectionWidget::idFromItem(QTreeWidgetItem *item)
return item->data(COLUMN_DATA, ROLE_ID).toString().toStdString();
}
-void FriendSelectionWidget::sortByChecked(bool)
+void FriendSelectionWidget::sortByChecked(bool sort)
{
mCompareRole->clear();
mCompareRole->setRole(COLUMN_NAME,ROLE_SORT_SELECTED);
diff --git a/retroshare-gui/src/gui/common/FriendSelectionWidget.h b/retroshare-gui/src/gui/common/FriendSelectionWidget.h
index 425e16774..f10a748fc 100644
--- a/retroshare-gui/src/gui/common/FriendSelectionWidget.h
+++ b/retroshare-gui/src/gui/common/FriendSelectionWidget.h
@@ -26,7 +26,6 @@
#include "retroshare/rsevents.h"
#include
-#include "util/FontSizeHandler.h"
namespace Ui {
class FriendSelectionWidget;
@@ -179,8 +178,6 @@ private:
std::set mPreSelectedIds; // because loading of GxsIds is asynchroneous we keep selected Ids from the client in a list here and use it to initialize after loading them.
- FontSizeHandler mFontSizeHandler;
-
RsEventsHandlerId_t mEventHandlerId_identities;
RsEventsHandlerId_t mEventHandlerId_peers;
};
diff --git a/retroshare-gui/src/gui/common/FriendSelectionWidget.ui b/retroshare-gui/src/gui/common/FriendSelectionWidget.ui
index a9bc8b407..065c9013b 100644
--- a/retroshare-gui/src/gui/common/FriendSelectionWidget.ui
+++ b/retroshare-gui/src/gui/common/FriendSelectionWidget.ui
@@ -38,6 +38,11 @@
0
+
+
+ 11
+
+
Qt::CustomContextMenu
@@ -66,7 +71,7 @@
LineEditClear
QLineEdit
- gui/common/LineEditClear.h
+ gui/common/LineEditClear.h
RSTreeWidget
diff --git a/retroshare-gui/src/gui/common/GroupTreeWidget.cpp b/retroshare-gui/src/gui/common/GroupTreeWidget.cpp
index 43861c4c6..0597a652c 100644
--- a/retroshare-gui/src/gui/common/GroupTreeWidget.cpp
+++ b/retroshare-gui/src/gui/common/GroupTreeWidget.cpp
@@ -148,19 +148,7 @@ GroupTreeWidget::GroupTreeWidget(QWidget *parent) :
connect(ui->distantSearchLineEdit,SIGNAL(returnPressed()),this,SLOT(distantSearch())) ;
- mFontSizeHandler.registerFontSize(ui->treeWidget, 1.8f, [this] (QAbstractItemView*, int fontSize) {
- // Set new font size on all items
- QTreeWidgetItemIterator it(ui->treeWidget);
- while (*it) {
- QTreeWidgetItem *item = *it;
-
- QFont font = item->font(GTW_COLUMN_NAME);
- font.setPointSize(fontSize);
- item->setFont(GTW_COLUMN_NAME, font);
-
- ++it;
- }
- });
+ ui->treeWidget->setIconSize(QSize(H*1.8,H*1.8));
}
GroupTreeWidget::~GroupTreeWidget()
@@ -266,8 +254,8 @@ QTreeWidgetItem *GroupTreeWidget::addCategoryItem(const QString &name, const QIc
RSTreeWidgetItem *item = new RSTreeWidgetItem();
ui->treeWidget->addTopLevelItem(item);
// To get StyleSheet for Items
-// ui->treeWidget->style()->unpolish(ui->treeWidget);
-// ui->treeWidget->style()->polish(ui->treeWidget);
+ ui->treeWidget->style()->unpolish(ui->treeWidget);
+ ui->treeWidget->style()->polish(ui->treeWidget);
item->setText(GTW_COLUMN_NAME, name);
item->setData(GTW_COLUMN_DATA, ROLE_NAME, name);
@@ -402,7 +390,7 @@ void GroupTreeWidget::fillGroupItems(QTreeWidgetItem *categoryItem, const QList<
if (item == NULL) {
item = new RSTreeWidgetItem(compareRole);
item->setData(GTW_COLUMN_DATA, ROLE_ID, itemInfo.id);
- item->setFont(GTW_COLUMN_NAME, ui->treeWidget->font());
+ item->setFont(GTW_COLUMN_DATA, ui->treeWidget->font());
//static_cast(item)->setNoDataAsLast(true); //Uncomment this to sort data with QVariant() always at end.
categoryItem->addChild(item);
}
diff --git a/retroshare-gui/src/gui/common/GroupTreeWidget.h b/retroshare-gui/src/gui/common/GroupTreeWidget.h
index 4aadb1c51..b27c37014 100644
--- a/retroshare-gui/src/gui/common/GroupTreeWidget.h
+++ b/retroshare-gui/src/gui/common/GroupTreeWidget.h
@@ -25,7 +25,6 @@
#include
#include
-#include "util/FontSizeHandler.h"
class QToolButton;
class RshareSettings;
@@ -164,7 +163,6 @@ private:
// Compare role used for each column
RSTreeWidgetItemCompareRole *compareRole;
- FontSizeHandler mFontSizeHandler;
Ui::GroupTreeWidget *ui;
};
diff --git a/retroshare-gui/src/gui/common/GroupTreeWidget.ui b/retroshare-gui/src/gui/common/GroupTreeWidget.ui
index 10b5eb48b..d3e0a14a5 100644
--- a/retroshare-gui/src/gui/common/GroupTreeWidget.ui
+++ b/retroshare-gui/src/gui/common/GroupTreeWidget.ui
@@ -35,10 +35,10 @@
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
@@ -70,6 +70,11 @@
0
+
+
+ 11
+
+
Qt::CustomContextMenu
diff --git a/retroshare-gui/src/gui/common/LineEditClear.cpp b/retroshare-gui/src/gui/common/LineEditClear.cpp
index cf45bc75b..c3d68b512 100644
--- a/retroshare-gui/src/gui/common/LineEditClear.cpp
+++ b/retroshare-gui/src/gui/common/LineEditClear.cpp
@@ -24,7 +24,6 @@
#include
#include
#include
-#include
//#if QT_VERSION < 0x040700
#if QT_VERSION < 0x050000//PlaceHolder text only shown when not have focus in Qt4
#include
@@ -235,10 +234,8 @@ void LineEditClear::setFilterButtonIcon(const QIcon &icon)
mFilterButton->setIcon(icon);
ensurePolished();
-#if !defined(Q_OS_DARWIN)
QFontMetrics fm(this->font());
QSize size(fm.width("___"), fm.height());
mFilterButton->setFixedSize(size);
mFilterButton->setIconSize(size);
-#endif
}
diff --git a/retroshare-gui/src/gui/common/MacDockIconHandler.h b/retroshare-gui/src/gui/common/MacDockIconHandler.h
deleted file mode 100644
index d9d4d41f5..000000000
--- a/retroshare-gui/src/gui/common/MacDockIconHandler.h
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (c) 2011-2018 The Bitcoin Core developers
-// Distributed under the MIT software license, see the accompanying
-// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-
-#ifndef MACDOCKICONHANDLER_H
-#define MACDOCKICONHANDLER_H
-
-#include
-
-/** macOS-specific Dock icon handler.
- */
-class MacDockIconHandler : public QObject
-{
- Q_OBJECT
-
-public:
- static MacDockIconHandler *instance();
- static void cleanup();
-
-Q_SIGNALS:
- void dockIconClicked();
-
-private:
- MacDockIconHandler();
-};
-
-#endif // MACDOCKICONHANDLER_H
diff --git a/retroshare-gui/src/gui/common/MacDockIconHandler.mm b/retroshare-gui/src/gui/common/MacDockIconHandler.mm
deleted file mode 100644
index 51a26135d..000000000
--- a/retroshare-gui/src/gui/common/MacDockIconHandler.mm
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright (c) 2011-2019 The Bitcoin Core developers
-// Distributed under the MIT software license, see the accompanying
-// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-
-#include "MacDockIconHandler.h"
-
-#include
-#include
-
-static MacDockIconHandler *s_instance = nullptr;
-
-bool dockClickHandler(id self, SEL _cmd, ...) {
- Q_UNUSED(self)
- Q_UNUSED(_cmd)
-
- Q_EMIT s_instance->dockIconClicked();
-
- // Return NO (false) to suppress the default macOS actions
- return false;
-}
-
-void setupDockClickHandler() {
- Class delClass = (Class)[[[NSApplication sharedApplication] delegate] class];
- SEL shouldHandle = sel_registerName("applicationShouldHandleReopen:hasVisibleWindows:");
- class_replaceMethod(delClass, shouldHandle, (IMP)dockClickHandler, "B@:");
-}
-
-MacDockIconHandler::MacDockIconHandler() : QObject()
-{
- setupDockClickHandler();
-}
-
-MacDockIconHandler *MacDockIconHandler::instance()
-{
- if (!s_instance)
- s_instance = new MacDockIconHandler();
- return s_instance;
-}
-
-void MacDockIconHandler::cleanup()
-{
- delete s_instance;
-}
-
-/**
- * Force application activation on macOS. With Qt 5.5.1 this is required when
- * an action in the Dock menu is triggered.
- * TODO: Define a Qt version where it's no-longer necessary.
- */
-void ForceActivation()
-{
- [[NSApplication sharedApplication] activateIgnoringOtherApps:YES];
-}
diff --git a/retroshare-gui/src/gui/common/NewFriendList.cpp b/retroshare-gui/src/gui/common/NewFriendList.cpp
index 4ed25d951..bd6faec41 100644
--- a/retroshare-gui/src/gui/common/NewFriendList.cpp
+++ b/retroshare-gui/src/gui/common/NewFriendList.cpp
@@ -54,7 +54,6 @@
#include "gui/chat/ChatUserNotify.h"
#include "gui/connect/ConnectProgressDialog.h"
#include "gui/common/ElidedLabel.h"
-#include "gui/notifyqt.h"
#include "NewFriendList.h"
#include "ui_NewFriendList.h"
@@ -203,9 +202,6 @@ NewFriendList::NewFriendList(QWidget */*parent*/) : /* RsAutoUpdatePage(5000,par
rsEvents->registerEventsHandler( [this](std::shared_ptr e) { handleEvent(e); }, mEventHandlerId_peer, RsEventType::PEER_CONNECTION );
rsEvents->registerEventsHandler( [this](std::shared_ptr e) { handleEvent(e); }, mEventHandlerId_gssp, RsEventType::GOSSIP_DISCOVERY );
- connect(NotifyQt::getInstance(), SIGNAL(peerHasNewAvatar(QString)), this, SLOT(forceUpdateDisplay()));
- connect(NotifyQt::getInstance(), SIGNAL(peerStatusChanged(QString,int)), this, SLOT(forceUpdateDisplay()));
-
mModel = new RsFriendListModel(ui->peerTreeWidget);
mProxyModel = new FriendListSortFilterProxyModel(ui->peerTreeWidget->header(),this);
@@ -265,7 +261,6 @@ NewFriendList::NewFriendList(QWidget */*parent*/) : /* RsAutoUpdatePage(5000,par
connect(ui->actionShowOfflineFriends, SIGNAL(triggered(bool)), this, SLOT(setShowUnconnected(bool)));
connect(ui->actionShowState, SIGNAL(triggered(bool)), this, SLOT(setShowState(bool)) );
- connect(ui->actionShowStateIcon, SIGNAL(triggered(bool)), this, SLOT(setShowStateIcon(bool)) );
connect(ui->actionShowGroups, SIGNAL(triggered(bool)), this, SLOT(setShowGroups(bool)) );
connect(ui->actionExportFriendlist, SIGNAL(triggered()) , this, SLOT(exportFriendlistClicked()));
connect(ui->actionImportFriendlist, SIGNAL(triggered()) , this, SLOT(importFriendlistClicked()));
@@ -273,8 +268,6 @@ NewFriendList::NewFriendList(QWidget */*parent*/) : /* RsAutoUpdatePage(5000,par
connect(ui->filterLineEdit, SIGNAL(textChanged(QString)), this, SLOT(filterItems(QString)),Qt::QueuedConnection);
connect(h, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(headerContextMenuRequested(QPoint)));
- mFontSizeHandler.registerFontSize(ui->peerTreeWidget,1.5f);
-
// #ifdef RS_DIRECT_CHAT
// connect(ui->peerTreeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), this, SLOT(chatNode()));
// #endif
@@ -348,12 +341,10 @@ void NewFriendList::headerContextMenuRequested(QPoint /*p*/)
displayMenu.addAction(ui->actionShowOfflineFriends);
displayMenu.addAction(ui->actionShowState);
- displayMenu.addAction(ui->actionShowStateIcon);
displayMenu.addAction(ui->actionShowGroups);
ui->actionShowOfflineFriends->setChecked(mProxyModel->showOfflineNodes());
ui->actionShowState->setChecked(mModel->getDisplayStatusString());
- ui->actionShowStateIcon->setChecked(mModel->getDisplayStatusIcon());
ui->actionShowGroups->setChecked(mModel->getDisplayGroups());
QHeaderView *header = ui->peerTreeWidget->header();
@@ -514,8 +505,6 @@ void NewFriendList::processSettings(bool load)
mModel->setDisplayStatusString(Settings->value("showState", mModel->getDisplayStatusString()).toBool());
mModel->setDisplayGroups(Settings->value("showGroups", mModel->getDisplayGroups()).toBool());
- mModel->setDisplayStatusIcon(Settings->value("showStateIcon", mModel->getDisplayStatusIcon()).toBool());
-
setColumnVisible(RsFriendListModel::COLUMN_THREAD_IP,Settings->value("showIP", isColumnVisible(RsFriendListModel::COLUMN_THREAD_IP)).toBool());
setColumnVisible(RsFriendListModel::COLUMN_THREAD_ID,Settings->value("showID", isColumnVisible(RsFriendListModel::COLUMN_THREAD_ID)).toBool());
@@ -539,8 +528,6 @@ void NewFriendList::processSettings(bool load)
Settings->setValue("hideUnconnected", !mProxyModel->showOfflineNodes());
Settings->setValue("showState", mModel->getDisplayStatusString());
Settings->setValue("showGroups", mModel->getDisplayGroups());
- Settings->setValue("showStateIcon", mModel->getDisplayStatusIcon());
-
Settings->setValue("showIP",isColumnVisible(RsFriendListModel::COLUMN_THREAD_IP));
Settings->setValue("showID",isColumnVisible(RsFriendListModel::COLUMN_THREAD_ID));
@@ -1656,12 +1643,6 @@ void NewFriendList::setShowState(bool show)
processSettings(false);
}
-void NewFriendList::setShowStateIcon(bool show)
-{
- applyWhileKeepingTree([show,this]() { mModel->setDisplayStatusIcon(show) ; });
- processSettings(false);
-}
-
void NewFriendList::setShowGroups(bool show)
{
applyWhileKeepingTree([show,this]() { mModel->setDisplayGroups(show) ; });
@@ -1673,7 +1654,7 @@ void NewFriendList::setShowGroups(bool show)
*/
void NewFriendList::filterItems(const QString &text)
{
- QStringList lst = text.split(' ',QtSkipEmptyParts);
+ QStringList lst = text.split(' ',QString::SkipEmptyParts);
int filterColumn = ui->filterLineEdit->currentFilter();
if(filterColumn == 0)
diff --git a/retroshare-gui/src/gui/common/NewFriendList.h b/retroshare-gui/src/gui/common/NewFriendList.h
index cf4c68e6f..cf2e892b3 100644
--- a/retroshare-gui/src/gui/common/NewFriendList.h
+++ b/retroshare-gui/src/gui/common/NewFriendList.h
@@ -29,7 +29,6 @@
#include "FriendListModel.h"
#include "retroshare/rsstatus.h"
-#include "util/FontSizeHandler.h"
namespace Ui {
class NewFriendList;
@@ -88,9 +87,7 @@ public slots:
void setShowGroups(bool show);
void setShowUnconnected(bool hidden);
void setShowState(bool show);
- void setShowStateIcon(bool show);
- void headerContextMenuRequested(QPoint);
- void exportFriendlistClicked();
+ void headerContextMenuRequested(QPoint);
private slots:
void sortColumn(int col,Qt::SortOrder so);
@@ -105,7 +102,6 @@ private:
Ui::NewFriendList *ui;
RsFriendListModel *mModel;
QAction *mActionSortByState;
- FontSizeHandler mFontSizeHandler;
void applyWhileKeepingTree(std::function predicate);
@@ -168,5 +164,6 @@ private slots:
void editGroup();
void removeGroup();
+ void exportFriendlistClicked();
void importFriendlistClicked();
};
diff --git a/retroshare-gui/src/gui/common/NewFriendList.ui b/retroshare-gui/src/gui/common/NewFriendList.ui
index 286cf4304..20ae02eb2 100644
--- a/retroshare-gui/src/gui/common/NewFriendList.ui
+++ b/retroshare-gui/src/gui/common/NewFriendList.ui
@@ -29,10 +29,10 @@
-
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
@@ -58,6 +58,11 @@
-
+
+
+ 12
+
+
Qt::CustomContextMenu
@@ -119,17 +124,6 @@
import your friendlist including groups
-
-
- true
-
-
- Status icons
-
-
- Show status icons
-
-
diff --git a/retroshare-gui/src/gui/common/RSTreeWidget.cpp b/retroshare-gui/src/gui/common/RSTreeWidget.cpp
index 8ecdfde3f..7e3a8b216 100644
--- a/retroshare-gui/src/gui/common/RSTreeWidget.cpp
+++ b/retroshare-gui/src/gui/common/RSTreeWidget.cpp
@@ -27,7 +27,6 @@
#include
#include
#include
-#include
#include "gui/settings/rsharesettings.h"
#include "gui/common/FilesDefs.h"
diff --git a/retroshare-gui/src/gui/common/RsButtonOnText.cpp b/retroshare-gui/src/gui/common/RsButtonOnText.cpp
index 8774f84bd..95466c9d4 100644
--- a/retroshare-gui/src/gui/common/RsButtonOnText.cpp
+++ b/retroshare-gui/src/gui/common/RsButtonOnText.cpp
@@ -107,7 +107,7 @@ bool RSButtonOnText::eventFilter(QObject *obj, QEvent *event)
}
if (event->type() == QEvent::MouseButtonPress) {
QMouseEvent* mouseEvent = new QMouseEvent(QEvent::MouseButtonPress
- ,QPoint(1,1),Qt::LeftButton,Qt::LeftButton,Qt::KeyboardModifier::NoModifier);
+ ,QPoint(1,1),Qt::LeftButton,Qt::LeftButton,0);
QPushButton::mousePressEvent(mouseEvent);
delete mouseEvent;
if (guard) _pressed = true;
@@ -116,7 +116,7 @@ bool RSButtonOnText::eventFilter(QObject *obj, QEvent *event)
}
if (event->type() == QEvent::MouseButtonRelease) {
QMouseEvent* mouseEvent = new QMouseEvent(QEvent::MouseButtonPress
- ,QPoint(1,1),Qt::LeftButton,Qt::LeftButton,Qt::KeyboardModifier::NoModifier);
+ ,QPoint(1,1),Qt::LeftButton,Qt::LeftButton,0);
QPushButton::mouseReleaseEvent(mouseEvent);
delete mouseEvent;
if (guard) _pressed = false;
@@ -152,7 +152,7 @@ bool RSButtonOnText::eventFilter(QObject *obj, QEvent *event)
}
if (_pressed){
QMouseEvent* mouseEvent = new QMouseEvent(QEvent::MouseButtonPress
- ,QPoint(1,1),Qt::LeftButton,Qt::LeftButton,Qt::KeyboardModifier::NoModifier);
+ ,QPoint(1,1),Qt::LeftButton,Qt::LeftButton,0);
QPushButton::mouseReleaseEvent(mouseEvent);
delete mouseEvent;
//if (guard) emit released();
diff --git a/retroshare-gui/src/gui/common/RsCollection.cpp b/retroshare-gui/src/gui/common/RsCollection.cpp
index e13452038..c49296503 100644
--- a/retroshare-gui/src/gui/common/RsCollection.cpp
+++ b/retroshare-gui/src/gui/common/RsCollection.cpp
@@ -37,411 +37,534 @@
const QString RsCollection::ExtensionString = QString("rscollection") ;
-RsCollection::RsCollection()
+RsCollection::RsCollection(QObject *parent)
+ : QObject(parent), _xml_doc("RsCollection")
{
- mFileTree = std::unique_ptr(new RsFileTree());
-}
-RsCollection::RsCollection(const RsFileTree& ft)
-{
- mFileTree = std::unique_ptr(new RsFileTree(ft));
-
- for(uint64_t i=0;inumFiles();++i)
- mHashes.insert(std::make_pair(mFileTree->fileData(i).hash,i ));
+ _root = _xml_doc.createElement("RsCollection");
+ _xml_doc.appendChild(_root);
}
-RsCollection::RsCollection(const std::vector& file_infos,FileSearchFlags flags)
- : mFileTree(new RsFileTree)
+RsCollection::RsCollection(const RsFileTree& fr)
+ : _xml_doc("RsCollection")
{
- if(! ( (flags & RS_FILE_HINTS_LOCAL) || (flags & RS_FILE_HINTS_REMOTE)))
- {
- std::cerr << "(EE) Wrong flags passed to RsCollection constructor. Please fix the code!" << std::endl;
- return ;
- }
+ _root = _xml_doc.createElement("RsCollection");
+ _xml_doc.appendChild(_root);
- for(uint32_t i = 0;iroot(),file_infos[i],flags) ;
+ recursAddElements(_xml_doc,fr,0,_root) ;
+}
- for(uint64_t i=0;inumFiles();++i)
- mHashes.insert(std::make_pair(mFileTree->fileData(i).hash,i ));
+RsCollection::RsCollection(const std::vector& file_infos,FileSearchFlags flags, QObject *parent)
+ : QObject(parent), _xml_doc("RsCollection")
+{
+ _root = _xml_doc.createElement("RsCollection");
+ _xml_doc.appendChild(_root);
+
+ if(! ( (flags & RS_FILE_HINTS_LOCAL) || (flags & RS_FILE_HINTS_REMOTE)))
+ {
+ std::cerr << "(EE) Wrong flags passed to RsCollection constructor. Please fix the code!" << std::endl;
+ return ;
+ }
+
+ for(uint32_t i = 0;i colFileInfos ;
+
+ recursCollectColFileInfos(docElem,colFileInfos,QString(),false) ;
+
+ RsCollectionDialog(_fileName, colFileInfos, false).exec() ;
+}
+
+void RsCollection::autoDownloadFiles() const
+{
+ QDomElement docElem = _xml_doc.documentElement();
+
+ std::vector colFileInfos;
+
+ recursCollectColFileInfos(docElem,colFileInfos,QString(),false);
+
+ QString dlDir = QString::fromUtf8(rsFiles->getDownloadDirectory().c_str());
+
+ foreach(ColFileInfo colFileInfo, colFileInfos)
+ {
+ autoDownloadFiles(colFileInfo, dlDir);
+ }
+}
+
void RsCollection::autoDownloadFiles(ColFileInfo colFileInfo, QString dlDir) const
{
- if (!colFileInfo.filename_has_wrong_characters)
- {
- QString cleanPath = dlDir + colFileInfo.path ;
- std::cout << "making directory " << cleanPath.toStdString() << std::endl;
+ if (!colFileInfo.filename_has_wrong_characters)
+ {
+ QString cleanPath = dlDir + colFileInfo.path ;
+ std::cout << "making directory " << cleanPath.toStdString() << std::endl;
- if(!QDir(QApplication::applicationDirPath()).mkpath(cleanPath))
- std::cerr << "Unable to make path: " + cleanPath.toStdString() << std::endl;
+ if(!QDir(QApplication::applicationDirPath()).mkpath(cleanPath))
+ std::cerr << "Unable to make path: " + cleanPath.toStdString() << std::endl;
- if (colFileInfo.type==DIR_TYPE_FILE)
- rsFiles->FileRequest(colFileInfo.name.toUtf8().constData(),
- RsFileHash(colFileInfo.hash.toStdString()),
- colFileInfo.size,
- cleanPath.toUtf8().constData(),
- RS_FILE_REQ_ANONYMOUS_ROUTING,
- std::list());
- }
- foreach(ColFileInfo colFileInfoChild, colFileInfo.children)
- {
- autoDownloadFiles(colFileInfoChild, dlDir);
- }
+ if (colFileInfo.type==DIR_TYPE_FILE)
+ rsFiles->FileRequest(colFileInfo.name.toUtf8().constData(),
+ RsFileHash(colFileInfo.hash.toStdString()),
+ colFileInfo.size,
+ cleanPath.toUtf8().constData(),
+ RS_FILE_REQ_ANONYMOUS_ROUTING,
+ std::list());
+ }
+ foreach(ColFileInfo colFileInfoChild, colFileInfo.children)
+ {
+ autoDownloadFiles(colFileInfoChild, dlDir);
+ }
}
static QString purifyFileName(const QString& input,bool& bad)
{
- static const QString bad_chars = "/\\\"*:?<>|" ;
- bad = false ;
- QString output = input ;
+ static const QString bad_chars = "/\\\"*:?<>|" ;
+ bad = false ;
+ QString output = input ;
- for(int i=0;iaddFile(parent_index,fname.toStdString(),hash,size);
+ ColFileInfo info ;
+ info.type = DIR_TYPE_FILE ;
+ info.name = fname ;
+ info.size = size ;
+ info.hash = QString::fromStdString(hash.toStdString()) ;
+
+ recursAddElements(_xml_doc,info,_root) ;
}
-void RsCollection::merge_in(const RsFileTree& tree, RsFileTree::DirIndex parent_index)
+void RsCollection::merge_in(const RsFileTree& tree)
{
- recursMergeTree(mFileTree->root(),tree,tree.directoryData(parent_index)) ;
+ recursAddElements(_xml_doc,tree,0,_root) ;
}
-void RsCollection::recursMergeTree(RsFileTree::DirIndex parent,const RsFileTree& tree,const RsFileTree::DirData& dd)
+void RsCollection::recursCollectColFileInfos(const QDomElement& e,std::vector& colFileInfos,const QString& current_path, bool bad_chars_in_parent) const
{
- for(uint32_t i=0;iaddFile(parent,fd.name,fd.hash,fd.size);
- }
- for(uint32_t i=0;iaddDirectory(parent,ld.name);
- recursMergeTree(new_dir_index,tree,ld);
- }
+ while(!n.isNull())
+ {
+ QDomElement ee = n.toElement(); // try to convert the node to an element.
+
+#ifdef COLLECTION_DEBUG
+ std::cerr << " Seeing child " << ee.tagName().toStdString() << std::endl;
+#endif
+
+ if(ee.tagName() == QString("File"))
+ {
+ ColFileInfo newChild ;
+ newChild.hash = ee.attribute(QString("sha1")) ;
+ bool bad_chars_detected = false ;
+ newChild.name = purifyFileName(ee.attribute(QString("name")), bad_chars_detected) ;
+ newChild.filename_has_wrong_characters = bad_chars_detected || bad_chars_in_parent ;
+ newChild.size = ee.attribute(QString("size")).toULongLong() ;
+ newChild.path = current_path ;
+ newChild.type = DIR_TYPE_FILE ;
+
+ colFileInfos.push_back(newChild) ;
+ }
+ else if(ee.tagName() == QString("Directory"))
+ {
+ ColFileInfo newParent ;
+ bool bad_chars_detected = false ;
+ QString cleanDirName = purifyFileName(ee.attribute(QString("name")),bad_chars_detected) ;
+ newParent.name=cleanDirName;
+ newParent.filename_has_wrong_characters = bad_chars_detected || bad_chars_in_parent ;
+ newParent.size = 0;
+ newParent.path = current_path ;
+ newParent.type = DIR_TYPE_DIR ;
+
+ recursCollectColFileInfos(ee,newParent.children,current_path + "/" + cleanDirName, bad_chars_in_parent || bad_chars_detected) ;
+ uint32_t size = newParent.children.size();
+ for(uint32_t i=0;iaddFile(parent,dd.name,dd.hash,dd.size);
- else if (dd.type == DIR_TYPE_DIR)
- {
- RsFileTree::DirIndex new_dir_index = mFileTree->addDirectory(parent,dd.name);
+ if (details.type == DIR_TYPE_FILE)
+ {
+ QDomElement f = doc.createElement("File") ;
- for(uint32_t i=0;iRequestDirDetails(dd.children[i].ref, subDirDetails, flags))
- continue;
+ d.setAttribute(QString("name"),QString::fromUtf8(details.name.c_str())) ;
- recursAddElements(new_dir_index,subDirDetails,flags) ;
- }
- }
+ for(uint32_t i=0;iRequestDirDetails(details.children[i].ref, subDirDetails, flags))
+ continue;
+
+ recursAddElements(doc,subDirDetails,d,flags) ;
+ }
+
+ e.appendChild(d) ;
+ }
}
-QString RsCollection::errorString(RsCollectionErrorCode code)
+void RsCollection::recursAddElements(QDomDocument& doc,const ColFileInfo& colFileInfo,QDomElement& e) const
{
- switch(code)
- {
- default: [[fallthrough]] ;
- case RsCollectionErrorCode::UNKNOWN_ERROR: return QObject::tr("Unknown error");
- case RsCollectionErrorCode::COLLECTION_NO_ERROR: return QObject::tr("No error");
- case RsCollectionErrorCode::FILE_READ_ERROR: return QObject::tr("Error while openning file");
- case RsCollectionErrorCode::FILE_CONTAINS_HARMFUL_STRINGS: return QObject::tr("Collection file contains potentially harmful code");
- case RsCollectionErrorCode::INVALID_ROOT_NODE: return QObject::tr("Invalid root node. RsCollection node was expected.");
- case RsCollectionErrorCode::XML_PARSING_ERROR: return QObject::tr("XML parsing error in collection file");
- }
+ if (colFileInfo.type == DIR_TYPE_FILE)
+ {
+ QDomElement f = doc.createElement("File") ;
+
+ f.setAttribute(QString("name"),colFileInfo.name) ;
+ f.setAttribute(QString("sha1"),colFileInfo.hash) ;
+ f.setAttribute(QString("size"),QString::number(colFileInfo.size)) ;
+
+ e.appendChild(f) ;
+ }
+ else if (colFileInfo.type == DIR_TYPE_DIR)
+ {
+ QDomElement d = doc.createElement("Directory") ;
+
+ d.setAttribute(QString("name"),colFileInfo.name) ;
+
+ for (std::vector::const_iterator it = colFileInfo.children.begin(); it != colFileInfo.children.end(); ++it)
+ recursAddElements(doc,(*it),d) ;
+
+ e.appendChild(d) ;
+ }
}
-RsCollection::RsCollection(const RsCollection& col)
- : mFileTree(new RsFileTree(*col.mFileTree)),mHashes(col.mHashes)
+void RsCollection::recursAddElements(
+ QDomDocument& doc, const RsFileTree& ft, uint32_t index,
+ QDomElement& e ) const
{
+ std::vector subdirs;
+ std::vector subfiles ;
+ std::string name;
+ if(!ft.getDirectoryContent(name, subdirs, subfiles, index)) return;
+
+ QDomElement d = doc.createElement("Directory") ;
+ d.setAttribute(QString("name"),QString::fromUtf8(name.c_str())) ;
+ e.appendChild(d) ;
+
+ for (uint32_t i=0;i bad_strings ;
- bad_strings.push_back(std::string("= 0)
- {
- if (!file.atEnd())
- file.getChar(&c);
- else
- c=0;
+ if (ok) {
+ _fileName = fileName;
+ } else {
+ if (showError) {
+ showErrorBox(fileName, QApplication::translate("RsCollectionFile", "Error parsing xml file"));
+ }
+ }
- if(c == '\t' || c == '\n' || c == '\b' || c == '\r')
- continue ;
+ return ok;
+}
- if (n == max_size || file.atEnd())
- for(int i=0;i= 'A' && c <= 'Z') c += 'a' - 'A' ;
+ std::vector bad_strings ;
+ bad_strings.push_back(std::string("= 0)
+ {
+ if (!file.atEnd())
+ file.getChar(&c);
+ else
+ c=0;
- //std::cerr << "n==" << n <<" Checking string " << std::string(current,n+1) << " c = " << std::hex << (int)c << std::dec << std::endl;
+ if(c == '\t' || c == '\n' || c == '\b' || c == '\r')
+ continue ;
- for(uint i=0;i= 'A' && c <= 'Z') c += 'a' - 'A' ;
+
+ if(!file.atEnd())
+ current[n] = c ;
+ else
+ current[n] = 0 ;
+
+ //std::cerr << "n==" << n <<" Checking string " << std::string(current,n+1) << " c = " << std::hex << (int)c << std::dec << std::endl;
+
+ for(uint i=0;idirectoryData(mFileTree->root()));
+ stream << _xml_doc.toString() ;
- if(!recursExportToXml(xml_doc,root,root_data))
- return false;
+ file.close();
- xml_doc.appendChild(root);
-
- QTextStream stream(&file) ;
- stream.setCodec("UTF-8") ;
-
- stream << xml_doc.toString() ;
- file.close();
-
- return true;
+ return true;
}
-bool RsCollection::recursParseXml(QDomDocument& doc,const QDomNode& e,const RsFileTree::DirIndex parent)
+bool RsCollection::save(QWidget *parent) const
{
- mHashes.clear();
- QDomNode n = e.firstChild() ;
-#ifdef COLLECTION_DEBUG
- std::cerr << "Parsing element " << e.tagName().toStdString() << std::endl;
-#endif
+ QString fileName;
+ if(!misc::getSaveFileName(parent, RshareSettings::LASTDIR_EXTRAFILE, QApplication::translate("RsCollectionFile", "Create collection file"), QApplication::translate("RsCollectionFile", "Collection files") + " (*." + RsCollection::ExtensionString + ")", fileName))
+ return false;
- while(!n.isNull())
- {
- QDomElement ee = n.toElement(); // try to convert the node to an element.
+ if (!fileName.endsWith("." + RsCollection::ExtensionString))
+ fileName += "." + RsCollection::ExtensionString ;
-#ifdef COLLECTION_DEBUG
- std::cerr << " Seeing child " << ee.tagName().toStdString() << std::endl;
-#endif
+ std::cerr << "Got file name: " << fileName.toStdString() << std::endl;
- if(ee.tagName() == QString("File"))
- {
- RsFileHash hash(ee.attribute(QString("sha1")).toStdString()) ;
-
- bool bad_chars_detected = false;
- std::string name = purifyFileName(ee.attribute(QString("name")), bad_chars_detected).toUtf8().constData() ;
- uint64_t size = ee.attribute(QString("size")).toULongLong() ;
-
- mHashes[hash] = mFileTree->addFile(parent,name,hash,size);
- }
- else if(ee.tagName() == QString("Directory"))
- {
- bool bad_chars_detected = false ;
- std::string cleanDirName = purifyFileName(ee.attribute(QString("name")),bad_chars_detected).toUtf8().constData() ;
-
- RsFileTree::DirIndex new_dir_index = mFileTree->addDirectory(parent,cleanDirName);
-
- recursParseXml(doc,ee,new_dir_index);
- }
-
- n = n.nextSibling() ;
- }
- return true;
+ return save(fileName);
}
-bool RsCollection::recursExportToXml(QDomDocument& doc,QDomElement& e,const RsFileTree::DirData& dd) const
+
+
+bool RsCollection::openNewColl(QWidget *parent, QString fileName)
{
- for(uint32_t i=0;ifileData(dd.subfiles[i]));
+ if (!fileName.endsWith("." + RsCollection::ExtensionString))
+ fileName += "." + RsCollection::ExtensionString ;
- f.setAttribute(QString("name"),QString::fromUtf8(fd.name.c_str())) ;
- f.setAttribute(QString("sha1"),QString::fromStdString(fd.hash.toStdString())) ;
- f.setAttribute(QString("size"),QString::number(fd.size)) ;
+ std::cerr << "Got file name: " << fileName.toStdString() << std::endl;
- e.appendChild(f) ;
- }
+ QFile file(fileName) ;
- for(uint32_t i=0;idirectoryData(dd.subdirs[i]));
+ if(file.exists())
+ {
+ if (!checkFile(fileName,true)) return false;
- QDomElement d = doc.createElement("Directory") ;
- d.setAttribute(QString("name"),QString::fromUtf8(di.name.c_str())) ;
+ QMessageBox mb;
+ mb.setText(tr("Save Collection File."));
+ mb.setInformativeText(tr("File already exists.")+"\n"+tr("What do you want to do?"));
+ QAbstractButton *btnOwerWrite = mb.addButton(tr("Overwrite"), QMessageBox::YesRole);
+ QAbstractButton *btnMerge = mb.addButton(tr("Merge"), QMessageBox::NoRole);
+ QAbstractButton *btnCancel = mb.addButton(tr("Cancel"), QMessageBox::ResetRole);
+ mb.setIcon(QMessageBox::Question);
+ mb.exec();
- if(!recursExportToXml(doc,d,di))
- return false;
+ if (mb.clickedButton()==btnOwerWrite) {
+ //Nothing to do _xml_doc already up to date
+ } else if (mb.clickedButton()==btnMerge) {
+ //Open old file to merge it with _xml_doc
+ QDomDocument qddOldFile("RsCollection");
+ if (qddOldFile.setContent(&file)) {
+ QDomElement docOldElem = qddOldFile.elementsByTagName("RsCollection").at(0).toElement();
+ std::vector colOldFileInfos;
+ recursCollectColFileInfos(docOldElem,colOldFileInfos,QString(),false);
- e.appendChild(d) ;
- }
+ QDomElement root = _xml_doc.elementsByTagName("RsCollection").at(0).toElement();
+ for(uint32_t i = 0;i colFileInfos ;
+
+ recursCollectColFileInfos(_xml_doc.documentElement(),colFileInfos,QString(),false) ;
+
+ RsCollectionDialog* rcd = new RsCollectionDialog(fileName, colFileInfos,true);
+ connect(rcd,SIGNAL(saveColl(std::vector, QString)),this,SLOT(saveColl(std::vector, QString))) ;
+ _saved=false;
+ rcd->exec() ;
+ delete rcd;
+
+ return _saved;
}
-qulonglong RsCollection::count() const
+bool RsCollection::openColl(const QString& fileName, bool readOnly /* = false */, bool showError /* = true*/)
{
- return mFileTree->numFiles();
+ if (load(fileName, showError)) {
+ std::vector colFileInfos ;
+
+ recursCollectColFileInfos(_xml_doc.documentElement(),colFileInfos,QString(),false) ;
+
+ RsCollectionDialog* rcd = new RsCollectionDialog(fileName, colFileInfos, true, readOnly);
+ connect(rcd,SIGNAL(saveColl(std::vector, QString)),this,SLOT(saveColl(std::vector, QString))) ;
+ _saved=false;
+ rcd->exec() ;
+ delete rcd;
+
+ return _saved;
+ }
+ return false;
}
+
qulonglong RsCollection::size()
{
- return mFileTree->totalFileSize();
+ QDomElement docElem = _xml_doc.documentElement();
+
+ std::vector colFileInfos;
+ recursCollectColFileInfos(docElem, colFileInfos, QString(),false);
+
+ uint64_t size = 0;
+
+ for (uint32_t i = 0; i < colFileInfos.size(); ++i) {
+ size += colFileInfos[i].size;
+ }
+
+ return size;
}
bool RsCollection::isCollectionFile(const QString &fileName)
{
- QString ext = QFileInfo(fileName).suffix().toLower();
+ QString ext = QFileInfo(fileName).suffix().toLower();
- return (ext == RsCollection::ExtensionString);
+ return (ext == RsCollection::ExtensionString);
}
-void RsCollection::updateHashes(const std::map& old_to_new_hashes)
+void RsCollection::saveColl(std::vector colFileInfos, const QString &fileName)
{
- for(auto it:old_to_new_hashes)
- {
- auto fit = mHashes.find(it.first);
- if(fit == mHashes.end())
- {
- RsErr() << "Could not find hash " << it.first << " in RsCollection list of hashes. This is a bug." ;
- return ;
- }
- const auto& fd(mFileTree->fileData(fit->second));
+ QDomElement root = _xml_doc.elementsByTagName("RsCollection").at(0).toElement();
+ while (root.childNodes().count()>0) root.removeChild(root.firstChild());
+ for(uint32_t i = 0;iupdateFile(fit->second,fd.name,it.second,fd.size);
- }
-}
-
-bool RsCollection::removeFile(RsFileTree::FileIndex index_to_remove,RsFileTree::DirIndex parent_index)
-{
- return mFileTree->removeFile(index_to_remove,parent_index);
-}
-bool RsCollection::removeDirectory(RsFileTree::DirIndex index_to_remove,RsFileTree::DirIndex parent_index)
-{
- return mFileTree->removeDirectory(index_to_remove,parent_index);
-}
-
-void RsCollection::cleanup()
-{
- RsDbg() << "Cleaning up RsCollection with " << mFileTree->numDirs() << " dirs and " << mFileTree->numFiles() << " files." ;
-
- mFileTree = RsFileTree::fromTreeCleaned(*mFileTree);
-
- RsDbg() << "Simplified to " << mFileTree->numDirs() << " dirs and " << mFileTree->numFiles() << " files.";
}
diff --git a/retroshare-gui/src/gui/common/RsCollection.h b/retroshare-gui/src/gui/common/RsCollection.h
index f68423f85..492d407d8 100644
--- a/retroshare-gui/src/gui/common/RsCollection.h
+++ b/retroshare-gui/src/gui/common/RsCollection.h
@@ -26,6 +26,7 @@
#pragma once
+#include
#include
#include
#include
@@ -52,70 +53,66 @@ public:
};
Q_DECLARE_METATYPE(ColFileInfo)
-class RsCollection
+class RsCollection : public QObject
{
+ Q_OBJECT
+
public:
- enum class RsCollectionErrorCode:uint8_t {
- COLLECTION_NO_ERROR = 0x00,
- UNKNOWN_ERROR = 0x01,
- FILE_READ_ERROR = 0x02,
- FILE_CONTAINS_HARMFUL_STRINGS = 0x03,
- INVALID_ROOT_NODE = 0x04,
- XML_PARSING_ERROR = 0x05
- };
- RsCollection();
- RsCollection(const RsCollection&);
- RsCollection(const std::vector& file_entries, FileSearchFlags flags) ;
- RsCollection(const RsFileTree& ft);
- RsCollection(const QString& filename,RsCollectionErrorCode& error_code);
+ RsCollection(QObject *parent = 0) ;
+ // create from list of files and directories
+ RsCollection(const std::vector& file_entries, FileSearchFlags flags, QObject *parent = 0) ;
+ RsCollection(const RsFileTree& fr);
+ virtual ~RsCollection() ;
- static QString errorString(RsCollectionErrorCode code);
-
- virtual ~RsCollection() ;
-
- void merge_in(const QString& fname,uint64_t size,const RsFileHash& hash,RsFileTree::DirIndex parent_index=0) ;
- void merge_in(const RsFileTree& tree,RsFileTree::DirIndex parent_index=0) ;
-
- bool removeFile(RsFileTree::FileIndex index_to_remove,RsFileTree::DirIndex parent_index);
- bool removeDirectory(RsFileTree::DirIndex index_to_remove,RsFileTree::DirIndex parent_index);
-
- void cleanup(); // cleans up the collection, which may contain unreferenced files/dirs after lazy editing.
+ void merge_in(const QString& fname,uint64_t size,const RsFileHash& hash) ;
+ void merge_in(const RsFileTree& tree) ;
static const QString ExtensionString ;
+ // Loads file from disk.
+ bool load(QWidget *parent);
+ bool load(const QString& fileName, bool showError = true);
+
// Save to disk
+ bool save(QWidget *parent) const ;
bool save(const QString& fileName) const ;
- // returns the file tree
- const RsFileTree& fileTree() const { return *mFileTree; }
- // total size of files in the collection
- qulonglong size();
- // total number of files in the collection
- qulonglong count() const;
+ // Open new collection
+ bool openNewColl(QWidget *parent, QString fileName = "");
+ // Open existing collection
+ bool openColl(const QString& fileName, bool readOnly = false, bool showError = true);
+
+ // Download the content.
+ void downloadFiles() const ;
+ // Auto Download all the content.
+ void autoDownloadFiles() const ;
+
+ qulonglong size();
static bool isCollectionFile(const QString& fileName);
- void updateHashes(const std::map& old_to_new_hashes);
+private slots:
+ void saveColl(std::vector colFileInfos, const QString& fileName);
+
private:
- bool recursExportToXml(QDomDocument& doc,QDomElement& e,const RsFileTree::DirData& dd) const;
- bool recursParseXml(QDomDocument& doc, const QDomNode &e, RsFileTree::DirIndex dd) ;
-
- // This function is used to populate a RsCollection from locally or remotly shared files.
- void recursAddElements(RsFileTree::DirIndex parent, const DirDetails& dd, FileSearchFlags flags) ;
-
- // This function is used to merge an existing RsFileTree into the RsCollection
- void recursMergeTree(RsFileTree::DirIndex parent, const RsFileTree& tree, const RsFileTree::DirData &dd);
-
- // check that the file is a valid rscollection file, and not a lol bomb or some shit like this
- static bool checkFile(const QString &fileName, RsCollectionErrorCode &error);
+ void recursAddElements(QDomDocument&, const DirDetails&, QDomElement&, FileSearchFlags flags) const ;
+ void recursAddElements(QDomDocument&,const ColFileInfo&,QDomElement&) const;
+ void recursAddElements(
+ QDomDocument& doc, const RsFileTree& ft, uint32_t index,
+ QDomElement& e ) const;
+ void recursCollectColFileInfos(const QDomElement&,std::vector& colFileInfos,const QString& current_dir,bool bad_chars_in_parent) const ;
+ // check that the file is a valid rscollection file, and not a lol bomb or some shit like this
+ static bool checkFile(const QString &fileName, bool showError);
// Auto Download recursively.
void autoDownloadFiles(ColFileInfo colFileInfo, QString dlDir) const ;
- std::unique_ptr mFileTree;
- std::map mHashes; // used to efficiently update files being hashed
+ QDomDocument _xml_doc ;
+ QString _fileName ;
+ bool _saved;
+ QDomElement _root ;
friend class RsCollectionDialog ;
};
diff --git a/retroshare-gui/src/gui/common/RsCollectionDialog.cpp b/retroshare-gui/src/gui/common/RsCollectionDialog.cpp
index 5eb56506d..417af69bc 100644
--- a/retroshare-gui/src/gui/common/RsCollectionDialog.cpp
+++ b/retroshare-gui/src/gui/common/RsCollectionDialog.cpp
@@ -23,7 +23,6 @@
#include "RsCollection.h"
#include "util/misc.h"
-#include "util/rsdir.h"
#include
#include
@@ -121,93 +120,80 @@ protected:
/**
* @brief RsCollectionDialog::RsCollectionDialog
* @param collectionFileName: Filename of RSCollection saved
+ * @param colFileInfos: Vector of ColFileInfo to be add in intialization
* @param creation: Open dialog as RsColl Creation or RsColl DownLoad
* @param readOnly: Open dialog for RsColl as ReadOnly
*/
-RsCollectionDialog::RsCollectionDialog(const QString& collectionFileName, RsCollectionDialogMode mode)
- : _mode(mode)
-{
- RsCollection::RsCollectionErrorCode err_code;
- mCollection = new RsCollection(collectionFileName,err_code);
-
- if(err_code != RsCollection::RsCollectionErrorCode::COLLECTION_NO_ERROR)
- {
- QMessageBox::information(nullptr,tr("Could not load collection file"),tr("Could not load collection file"));
- close();
- }
-
- init(collectionFileName);
-}
-
-RsCollectionDialog::RsCollectionDialog(const RsCollection& coll, RsCollectionDialogMode mode)
- : _mode(mode)
-{
- mCollection = new RsCollection(coll);
- init(QString());
-}
-void RsCollectionDialog::init(const QString& collectionFileName)
+RsCollectionDialog::RsCollectionDialog(const QString& collectionFileName
+ , const std::vector& colFileInfos
+ , const bool& creation /* = false*/
+ , const bool& readOnly)
+ : _fileName(collectionFileName), _creationMode(creation) ,_readOnly(readOnly)
{
ui.setupUi(this) ;
- ui._filename_TL->setText(collectionFileName);
-// uint32_t size = colFileInfos.size();
-// for(uint32_t i=0;isetHeaderImage(FilesDefs::getPixmapFromQtResourcePath(":/icons/collections.png"));
- if(_mode == DOWNLOAD)
+ if(creation)
+ {
+ ui.headerFrame->setHeaderText(tr("Collection Editor"));
+ ui.downloadFolder_LE->hide();
+ ui.downloadFolder_LB->hide();
+ ui.destinationDir_TB->hide();
+ }
+ else
{
ui.headerFrame->setHeaderText(tr("Download files"));
ui.downloadFolder_LE->show();
ui.downloadFolder_LB->show();
- ui.label_filename->hide();
+ ui.label_filename->hide();
ui._filename_TL->hide();
ui.downloadFolder_LE->setText(QString::fromUtf8(rsFiles->getDownloadDirectory().c_str())) ;
QObject::connect(ui.downloadFolder_LE,SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(openDestinationDirectoryMenu()));
QObject::connect(ui.destinationDir_TB,SIGNAL(pressed()), this, SLOT(openDestinationDirectoryMenu()));
- }
- else
- {
- ui.headerFrame->setHeaderText(tr("Collection Editor"));
- ui.downloadFolder_LE->hide();
- ui.downloadFolder_LB->hide();
- ui.destinationDir_TB->hide();
- ui.label_filename->show();
- ui._filename_TL->show();
- }
-
+ }
// 1 - add all elements to the list.
- mCollectionModel = new RsCollectionModel(*mCollection);
- ui._fileEntriesTW->setModel(mCollectionModel);
+ ui._fileEntriesTW->setColumnCount(COLUMN_COUNT) ;
- connect(mCollectionModel,SIGNAL(sizesChanged()),this,SLOT(updateSizes()));
- updateSizes(); // forced because it's only called when the collection is changed, or when the model is created.
+ QTreeWidgetItem *headerItem = ui._fileEntriesTW->headerItem();
+ headerItem->setText(COLUMN_FILE, tr("File"));
+ headerItem->setText(COLUMN_FILEPATH, tr("File Path"));
+ headerItem->setText(COLUMN_SIZE, tr("Size"));
+ headerItem->setText(COLUMN_HASH, tr("Hash"));
+ headerItem->setText(COLUMN_FILEC, tr("File Count"));
+
+ bool wrong_chars = !updateList();
// 2 - connect necessary signals/slots
connect(ui._changeFile, SIGNAL(clicked()), this, SLOT(changeFileName()));
- connect(ui._add_PB, SIGNAL(clicked()), this, SLOT(addSelection()));
- connect(ui._addRecur_PB, SIGNAL(clicked()), this, SLOT(addSelectionRecursive()));
+ connect(ui._add_PB, SIGNAL(clicked()), this, SLOT(add()));
+ connect(ui._addRecur_PB, SIGNAL(clicked()), this, SLOT(addRecursive()));
connect(ui._remove_PB, SIGNAL(clicked()), this, SLOT(remove()));
connect(ui._makeDir_PB, SIGNAL(clicked()), this, SLOT(makeDir()));
+ connect(ui._removeDuplicate_CB, SIGNAL(clicked(bool)), this, SLOT(updateRemoveDuplicate(bool)));
connect(ui._cancel_PB, SIGNAL(clicked()), this, SLOT(cancel()));
connect(ui._save_PB, SIGNAL(clicked()), this, SLOT(save()));
connect(ui._download_PB, SIGNAL(clicked()), this, SLOT(download()));
connect(ui._hashBox, SIGNAL(fileHashingFinished(QList)), this, SLOT(fileHashingFinished(QList)));
+ connect(ui._fileEntriesTW, SIGNAL(itemChanged(QTreeWidgetItem*,int)), this, SLOT(itemChanged(QTreeWidgetItem*,int)));
// 3 Initialize List
_dirModel = new QFileSystemModel(this);
@@ -230,12 +216,14 @@ void RsCollectionDialog::init(const QString& collectionFileName)
processSettings(true);
// 5 Activate button follow creationMode
- ui._changeFile->setVisible(_mode == EDIT);
- ui._makeDir_PB->setVisible(_mode == EDIT);
- ui._save_PB->setVisible(_mode == EDIT);
- ui._treeViewFrame->setVisible(_mode == EDIT);
- ui._download_PB->setVisible(_mode == DOWNLOAD);
+ ui._changeFile->setVisible(_creationMode && !_readOnly);
+ ui._makeDir_PB->setVisible(_creationMode && !_readOnly);
+ ui._removeDuplicate_CB->setVisible(_creationMode && !_readOnly);
+ ui._save_PB->setVisible(_creationMode && !_readOnly);
+ ui._treeViewFrame->setVisible(_creationMode && !_readOnly);
+ ui._download_PB->setVisible(!_creationMode && !_readOnly);
+ ui._fileEntriesTW->installEventFilter(this);
ui._systemFileTW->installEventFilter(this);
// 6 Add HashBox
@@ -243,6 +231,9 @@ void RsCollectionDialog::init(const QString& collectionFileName)
ui._hashBox->setDropWidget(this);
ui._hashBox->setAutoHide(true);
ui._hashBox->setDefaultTransferRequestFlags(RS_FILE_REQ_ANONYMOUS_ROUTING) ;
+
+ if(wrong_chars)
+ QMessageBox::warning(NULL,tr("Bad filenames have been cleaned"),tr("Some filenames or directory names contained forbidden characters.\nCharacters \",|,/,\\,<,>,*,? will be replaced by '_'.\n Concerned files are listed in red.")) ;
}
void RsCollectionDialog::openDestinationDirectoryMenu()
@@ -294,18 +285,85 @@ RsCollectionDialog::~RsCollectionDialog()
processSettings(false);
}
+/**
+ * @brief RsCollectionDialog::eventFilter: Proccess event in object
+ * @param obj: object where event occured
+ * @param event: event occured
+ * @return If we don't have to process event in parent.
+ */
+bool RsCollectionDialog::eventFilter(QObject *obj, QEvent *event)
+{
+ if (obj == ui._fileEntriesTW) {
+ if (event->type() == QEvent::KeyPress) {
+ QKeyEvent *keyEvent = static_cast(event);
+ if (keyEvent && (keyEvent->key() == Qt::Key_Space)) {
+ // Space pressed
+
+ // get state of current item
+ QTreeWidgetItem *item = ui._fileEntriesTW->currentItem();
+ if (item) {
+ Qt::CheckState checkState = (item->checkState(COLUMN_FILE) == Qt::Checked) ? Qt::Unchecked : Qt::Checked;
+
+ // set state of all selected items
+ QList selectedItems = ui._fileEntriesTW->selectedItems();
+ QList::iterator it;
+ for (it = selectedItems.begin(); it != selectedItems.end(); ++it) {
+ if ((*it)->checkState(COLUMN_FILE) != checkState)
+ (*it)->setCheckState(COLUMN_FILE, checkState);
+ }
+ }
+
+ return true; // eat event
+ }
+
+ if (keyEvent && (keyEvent->key() == Qt::Key_Delete)) {
+ // Delete pressed
+ remove();
+ return true; // eat event
+ }
+
+ if (keyEvent && (keyEvent->key() == Qt::Key_Plus)) {
+ // Plus pressed
+ makeDir();
+ return true; // eat event
+ }
+
+ }
+ }
+
+ if (obj == ui._systemFileTW) {
+ if (event->type() == QEvent::KeyPress) {
+ QKeyEvent *keyEvent = static_cast(event);
+ if (keyEvent && ((keyEvent->key() == Qt::Key_Enter)
+ || keyEvent->key() == Qt::Key_Return)) {
+ // Enter pressed
+ if (keyEvent->modifiers() == Qt::ShiftModifier)
+ addRecursive();
+ else if(keyEvent->modifiers() == Qt::NoModifier) {
+ add();
+ }
+
+ return true; // eat event
+ }
+ }
+ }
+
+ // pass the event on to the parent class
+ return QDialog::eventFilter(obj, event);
+}
+
/**
* @brief RsCollectionDialog::processSettings
* @param bLoad: Load or Save dialog's settings
*/
void RsCollectionDialog::processSettings(bool bLoad)
{
- Settings->beginGroup("RsCollectionDialogV2");
+ Settings->beginGroup("RsCollectionDialog");
if (bLoad) {
// load settings
- if(_mode == EDIT){
+ if(_creationMode && !_readOnly){
// Load windows geometrie
restoreGeometry(Settings->value("WindowGeometrie_CM").toByteArray());
// Load splitters state
@@ -327,7 +385,7 @@ void RsCollectionDialog::processSettings(bool bLoad)
ui._fileEntriesTW->header()->restoreState(Settings->value("FileEntriesHeader").toByteArray());
}
} else {
- if(_mode == EDIT){
+ if(_creationMode && !_readOnly){
// Save windows geometrie
Settings->setValue("WindowGeometrie_CM",saveGeometry());
// Save splitters state
@@ -353,6 +411,182 @@ void RsCollectionDialog::processSettings(bool bLoad)
Settings->endGroup();
}
+/**
+ * @brief RsCollectionDialog::getRootItem: Create the root Item if not existing
+ * @return: the root item
+ */
+QTreeWidgetItem* RsCollectionDialog::getRootItem()
+{
+ return ui._fileEntriesTW->invisibleRootItem();
+
+// (csoler) I removed this code because it does the job of the invisibleRootItem() method.
+//
+// QTreeWidgetItem* root= ui._fileEntriesTW->topLevelItem(0);
+// if (!root) {
+// root= new QTreeWidgetItem;
+// root->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable | Qt::ItemIsTristate);
+// root->setText(COLUMN_FILE, "/");
+// root->setToolTip(COLUMN_FILE,tr("This is the root directory."));
+// root->setText(COLUMN_FILEPATH, "/");
+// root->setText(COLUMN_HASH, "");
+// root->setData(COLUMN_HASH, ROLE_NAME, "");
+// root->setData(COLUMN_HASH, ROLE_PATH, "");
+// root->setData(COLUMN_HASH, ROLE_TYPE, DIR_TYPE_DIR);
+// root->setText(COLUMN_SIZE, misc::friendlyUnit(0));
+// root->setToolTip(COLUMN_SIZE, tr("Real Size: Waiting child..."));
+// root->setData(COLUMN_SIZE, ROLE_SIZE, 0);
+// root->setData(COLUMN_SIZE, ROLE_SELSIZE, 0);
+// root->setText(COLUMN_FILEC, "0");
+// root->setToolTip(COLUMN_FILEC, tr("Real File Count: Waiting child..."));
+// root->setData(COLUMN_FILEC, ROLE_FILEC, 0);
+// root->setData(COLUMN_FILEC, ROLE_SELFILEC, 0);
+// ui._fileEntriesTW->addTopLevelItem(root);
+// }
+// root->setExpanded(true);
+//
+// return root;
+}
+
+/**
+ * @brief RsCollectionDialog::updateList: Update list of item in RsCollection
+ * @return If at least one item have a Wrong Char
+ */
+bool RsCollectionDialog::updateList()
+{
+ bool wrong_chars = false ;
+ wrong_chars = addChild(getRootItem(), _newColFileInfos);
+
+ _newColFileInfos.clear();
+
+ ui._filename_TL->setText(_fileName) ;
+ for (int column = 0; column < ui._fileEntriesTW->columnCount(); ++column) {
+ ui._fileEntriesTW->resizeColumnToContents(column);
+ }
+
+ updateSizes() ;
+
+ return !wrong_chars;
+}
+
+/**
+ * @brief RsCollectionDialog::addChild: Add Child Item in list
+ * @param parent: Parent Item
+ * @param child: Child ColFileInfo item to add
+ * @param total_size: Saved total size of children to save in parent
+ * @param total_files: Saved total file of children to save in parent
+ * @return If at least one item have a Wrong Char
+ */
+bool RsCollectionDialog::addChild(QTreeWidgetItem* parent, const std::vector& child)
+{
+ bool wrong_chars = false ;
+
+ uint32_t childCount = child.size();
+ for(uint32_t i=0; i founds;
+ QList parentsFounds;
+ parentsFounds = ui._fileEntriesTW->findItems(colFileInfo.path , Qt::MatchExactly | Qt::MatchRecursive, COLUMN_FILEPATH);
+ if (colFileInfo.type == DIR_TYPE_DIR){
+ founds = ui._fileEntriesTW->findItems(colFileInfo.path + "/" +colFileInfo.name, Qt::MatchExactly | Qt::MatchRecursive, COLUMN_FILEPATH);
+ } else {
+ founds = ui._fileEntriesTW->findItems(colFileInfo.path + "/" +colFileInfo.name, Qt::MatchExactly | Qt::MatchRecursive, COLUMN_FILEPATH);
+ if (ui._removeDuplicate_CB->isChecked()) {
+ founds << ui._fileEntriesTW->findItems(colFileInfo.hash, Qt::MatchExactly | Qt::MatchRecursive, COLUMN_HASH);
+ }
+ }
+ if (founds.empty()) {
+ QTreeWidgetItem *item = new QTreeWidgetItem;
+
+ //item->setFlags(Qt::ItemIsUserCheckable | item->flags());
+ item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable | Qt::ItemIsTristate);
+ item->setCheckState(COLUMN_FILE, Qt::Checked);
+ item->setText(COLUMN_FILE, colFileInfo.name);
+ item->setText(COLUMN_FILEPATH, colFileInfo.path + "/" + colFileInfo.name);
+ item->setText(COLUMN_HASH, colFileInfo.hash);
+ item->setData(COLUMN_HASH, ROLE_NAME, colFileInfo.name);
+ item->setData(COLUMN_HASH, ROLE_PATH, colFileInfo.path);
+ item->setData(COLUMN_HASH, ROLE_TYPE, colFileInfo.type);
+ QFont font = item->font(COLUMN_FILE);
+ if (colFileInfo.type==DIR_TYPE_DIR) {
+ item->setToolTip(COLUMN_FILE,tr("This is a directory. Double-click to expand it."));
+ font.setBold(true);
+ //Size calculated after for added child after init
+ item->setText(COLUMN_SIZE, misc::friendlyUnit(0));
+ item->setToolTip(COLUMN_SIZE,tr("Real Size: Waiting child..."));
+ item->setData(COLUMN_SIZE, ROLE_SIZE, 0);
+ item->setData(COLUMN_SIZE, ROLE_SELSIZE, 0);
+
+ item->setText(COLUMN_FILEC, "");
+ item->setToolTip(COLUMN_FILEC, tr("Real File Count: Waiting child..."));
+ item->setData(COLUMN_FILEC, ROLE_FILEC, 0);
+ item->setData(COLUMN_FILEC, ROLE_SELFILEC, 0);
+ } else {
+ font.setBold(false);
+ item->setText(COLUMN_SIZE, misc::friendlyUnit(colFileInfo.size));
+ item->setToolTip(COLUMN_SIZE, tr("Real Size=%1").arg(misc::friendlyUnit(colFileInfo.size)));
+ item->setData(COLUMN_SIZE, ROLE_SIZE, colFileInfo.size);
+ item->setData(COLUMN_SIZE, ROLE_SELSIZE, colFileInfo.size);
+
+ item->setText(COLUMN_FILEC, "1");
+ item->setToolTip(COLUMN_FILEC, tr("Real File Count=%1").arg(1));
+ item->setData(COLUMN_FILEC, ROLE_FILEC, 1);
+ item->setData(COLUMN_FILEC, ROLE_SELFILEC, 1);
+ }
+ item->setFont(COLUMN_FILE, font);
+ item->setChildIndicatorPolicy(QTreeWidgetItem::DontShowIndicatorWhenChildless);
+
+ if (colFileInfo.filename_has_wrong_characters)
+ {
+ //TODO (Phenom): Add qproperty for these text colors in stylesheets
+ wrong_chars = true ;
+ item->setData(COLUMN_FILE, Qt::ForegroundRole, QColor(255,80,120)) ;
+ }
+
+ if (parentsFounds.empty()) {
+ parent->addChild(item);
+ } else {
+ parentsFounds.at(0)->addChild(item);
+ }
+
+ if (colFileInfo.type == DIR_TYPE_FILE) {
+ //update parents size only for file children
+ QTreeWidgetItem *itemParent = item->parent();
+ if (itemParent) {
+ while (itemParent) {
+ qulonglong parentSize = itemParent->data(COLUMN_SIZE, ROLE_SIZE).toULongLong() + colFileInfo.size;
+ itemParent->setData(COLUMN_SIZE, ROLE_SIZE, parentSize);
+ itemParent->setToolTip(COLUMN_SIZE, tr("Real Size=%1").arg(misc::friendlyUnit(parentSize)));
+ qulonglong parentSelSize = itemParent->data(COLUMN_SIZE, ROLE_SELSIZE).toULongLong() + colFileInfo.size;
+ itemParent->setData(COLUMN_SIZE, ROLE_SELSIZE, parentSelSize);
+ itemParent->setText(COLUMN_SIZE, misc::friendlyUnit(parentSelSize));
+
+ qulonglong parentFileCount = itemParent->data(COLUMN_FILEC, ROLE_FILEC).toULongLong() + 1;
+ itemParent->setData(COLUMN_FILEC, ROLE_FILEC, parentFileCount);
+ itemParent->setToolTip(COLUMN_FILEC, tr("Real File Count=%1").arg(parentFileCount));
+ qulonglong parentSelFileCount = itemParent->data(COLUMN_FILEC, ROLE_SELFILEC).toULongLong() + 1;
+ itemParent->setData(COLUMN_FILEC, ROLE_SELFILEC, parentSelFileCount);
+ itemParent->setText(COLUMN_FILEC, QString("%1").arg(parentSelFileCount));
+
+ itemParent = itemParent->parent();
+ }
+ }
+ }
+
+ founds.push_back(item);
+ }
+
+ if (!founds.empty()) {
+
+ if (colFileInfo.type == DIR_TYPE_DIR) {
+ wrong_chars |= addChild(founds.at(0), colFileInfo.children);
+ }
+ }
+ }
+ return wrong_chars;
+}
+
/**
* @brief RsCollectionDialog::directoryLoaded: called when ui._treeView have load an directory as QFileSystemModel don't load all in one time
* @param dirLoaded: Name of directory just loaded
@@ -362,7 +596,7 @@ void RsCollectionDialog::directoryLoaded(QString dirLoaded)
if(!_dirLoaded)
{
- QFileInfo lastDir = QFileInfo(Settings->getLastDir(RshareSettings::LASTDIR_EXTRAFILE));
+ QFileInfo lastDir = Settings->getLastDir(RshareSettings::LASTDIR_EXTRAFILE);
if (lastDir.absoluteFilePath() == "") return;
if (lastDir.absoluteFilePath() == dirLoaded) _dirLoaded = true;
@@ -405,8 +639,17 @@ void RsCollectionDialog::directoryLoaded(QString dirLoaded)
*/
void RsCollectionDialog::updateSizes()
{
- ui._selectedFiles_TL->setText(QString::number(mCollectionModel->totalSelected()));
- ui._totalSize_TL->setText(misc::friendlyUnit(mCollectionModel->totalSize()));
+ uint64_t total_size = 0 ;
+ uint32_t total_count = 0 ;
+
+ for(int i=0;itopLevelItemCount();++i)
+ {
+ total_size += ui._fileEntriesTW->topLevelItem(i)->data(COLUMN_SIZE ,ROLE_SELSIZE ).toULongLong();
+ total_count += ui._fileEntriesTW->topLevelItem(i)->data(COLUMN_FILEC,ROLE_SELFILEC).toULongLong();
+ }
+
+ ui._selectedFiles_TL->setText(QString::number(total_count));
+ ui._totalSize_TL->setText(misc::friendlyUnit(total_size));
}
/**
@@ -415,21 +658,21 @@ void RsCollectionDialog::updateSizes()
* @param bad
* @return
*/
-static bool checkFileName(const std::string& input, std::string& corrected)
+static QString purifyFileName(const QString& input, bool& bad)
{
- static const std::string bad_chars ( "/\\\"*:?<>|" );
- bool ok = true ;
- corrected = input ;
+ static const QString bad_chars = "/\\\"*:?<>|" ;
+ bad = false ;
+ QString output = input ;
- for(uint32_t i=0;ipreMods();
- mCollection->merge_in(qddOldFileCollection.fileTree());
- mCollectionModel->postMods();
- }
- }
- else if(mb.clickedButton()==btnCancel)
+ } else if (mb.clickedButton()==btnCancel) {
return;
- else
+ } else {
return;
+ }
- }
- else
- {
+ } else {//if(file.exists())
//create a new empty file to check if name if good.
- if (!file.open(QFile::WriteOnly))
- return;
+ if (!file.open(QFile::WriteOnly)) return;
file.remove();
}
- ui._filename_TL->setText(fileName);
+ _fileName = fileName;
+
+ updateList();
}
/**
* @brief RsCollectionDialog::add: */
-void RsCollectionDialog::addSelection()
+void RsCollectionDialog::add()
{
- addSelection(false);
+ addRecursive(false);
}
/**
* @brief RsCollectionDialog::addRecursive:
*/
-void RsCollectionDialog::addSelectionRecursive()
+void RsCollectionDialog::addRecursive()
{
- addSelection(true);
+ addRecursive(true);
}
-static void recursBuildFileTree(const QString& path,RsFileTree& tree,RsFileTree::DirIndex dir_index,bool recursive,std::map& paths_to_hash)
-{
- QFileInfo fileInfo = QFileInfo(path);
-
- if (fileInfo.isDir())
- {
- auto di = tree.addDirectory(dir_index,fileInfo.fileName().toUtf8().constData());
-
- if(recursive)
- {
- QDir dirParent = fileInfo.absoluteFilePath();
- dirParent.setFilter(QDir::AllEntries | QDir::NoSymLinks | QDir::NoDotAndDotDot);
- QFileInfoList childrenList = dirParent.entryInfoList();
-
- for(QFileInfo f:childrenList)
- recursBuildFileTree(f.absoluteFilePath(),tree,di,recursive,paths_to_hash);
- }
- }
- else
- {
- // Here we use a temporary hash that serves two purposes:
- // 1 - identify the file in the RsFileTree of the collection so that we can update its hash when calculated
- // 2 - mark the file as being processed
- // The hash s is computed to be the hash of the path of the file. The collection must take care of multiple instances.
-
- Sha1CheckSum s = RsDirUtil::sha1sum((uint8_t*)(fileInfo.filePath().toUtf8().constData()),fileInfo.filePath().toUtf8().size());
-
- tree.addFile(dir_index,fileInfo.fileName().toUtf8().constData(),s,fileInfo.size());
-
- paths_to_hash.insert(std::make_pair(fileInfo.filePath(),s));
- }
-}
/**
* @brief RsCollectionDialog::addRecursive: Add Selected item to RSCollection
* -Add File seperatly if parent folder not selected
@@ -550,47 +757,139 @@ static void recursBuildFileTree(const QString& path,RsFileTree& tree,RsFileTree:
* -Get root folder the selected one
* @param recursive: If true, add all selected directory childrens
*/
-void RsCollectionDialog::addSelection(bool recursive)
+void RsCollectionDialog::addRecursive(bool recursive)
{
+ QStringList fileToHash;
QMap dirToAdd;
+ int count=0;//to not scan all items on list .count()
+
QModelIndexList milSelectionList = ui._systemFileTW->selectionModel()->selectedIndexes();
-
- mCollectionModel->preMods();
-
- std::map paths_to_hash; // sha1sum of the paths to hash.
-
foreach (QModelIndex index, milSelectionList)
- if(index.column()==0) //Get only FileName
- {
- RsFileTree tree;
- recursBuildFileTree(_dirModel->filePath(_tree_proxyModel->mapToSource(index)),tree,tree.root(),recursive,paths_to_hash);
+ {
- mCollection->merge_in(tree);
+ if (index.column()==0){//Get only FileName
+ QString filePath = _dirModel->filePath(_tree_proxyModel->mapToSource(index));
+ QFileInfo fileInfo = filePath;
+ if (fileInfo.isDir()) {
+ dirToAdd.insert(fileInfo.absoluteFilePath(),fileInfo.absolutePath());
+ ++count;
+ if (recursive) {
+ if (!addAllChild(fileInfo, dirToAdd, fileToHash, count)) return;
+ } else {
+ continue;
+ }
+ }
+ if (fileInfo.isFile()){
+ fileToHash.append(fileInfo.absoluteFilePath());
+ ++count;
+ if (dirToAdd.contains(fileInfo.absolutePath()))
+ _listOfFilesAddedInDir.insert(fileInfo.absoluteFilePath(),fileInfo.absolutePath());
+ else
+ _listOfFilesAddedInDir.insert(fileInfo.absoluteFilePath(),"");
+ }
}
+ }
- mFilesBeingHashed.insert(paths_to_hash.begin(),paths_to_hash.end());
+ // Process Dirs
+ QTreeWidgetItem *item = NULL;
+ if (!ui._fileEntriesTW->selectedItems().empty())
+ item= ui._fileEntriesTW->selectedItems().at(0);
+ if (item) {
+ while (item->data(COLUMN_HASH, ROLE_TYPE).toUInt() != DIR_TYPE_DIR) {
+ item = item->parent();//Only Dir as Parent
+ }
+ }
- QStringList paths;
- std::list hashes;
+ int index = 0;
+ while (index < dirToAdd.count())
+ {
+ ColFileInfo root;
+ if (item && (item != getRootItem())) {
+ root.name = "";
+ root.path = item->text(COLUMN_FILEPATH);
+ } else {
+ root.name = "";
+ root.path = "";
+ }
+ //QMap is ordered, so we get parent before child
+ //Iterator is moved inside this function
+ processItem(dirToAdd, index, root);
+ }
- for(auto it:paths_to_hash)
- {
- paths.push_back(it.first);
- hashes.push_back(it.second);
+ //Update liste before attach files to be sure when file is hashed, parent directory exists.
+ updateList();
- std::cerr << "Setting file has being hased: ID=" << it.second << " - " << it.first.toUtf8().constData() << std::endl;
- }
+ for (QHash::Iterator it = _listOfFilesAddedInDir.begin(); it != _listOfFilesAddedInDir.end() ; ++it)
+ {
+ QString path = it.value();
+ //it.value() = "";//Don't reset value, could be an older attachment not terminated.
+ if (dirToAdd.contains(path)){
+ it.value() = dirToAdd.value(path);
+ } else if(item) {
+ if (item->data(COLUMN_HASH, ROLE_NAME) != "") {
+ it.value() = item->text(COLUMN_FILEPATH);
+ }
+ }
+ }
- mCollectionModel->notifyFilesBeingHashed(hashes);
- mCollectionModel->postMods();
+ // Process Files once all done
+ ui._hashBox->addAttachments(fileToHash,RS_FILE_REQ_ANONYMOUS_ROUTING /*, 0*/);
+}
- ui._hashBox->addAttachments(paths,RS_FILE_REQ_ANONYMOUS_ROUTING /*, 0*/);
-
- if(!mFilesBeingHashed.empty())
- {
- ui._save_PB->setToolTip(tr("Please wait for all files to be properly processed before saving."));
- ui._save_PB->setEnabled(false);
- }
+/**
+ * @brief RsCollectionDialog::addAllChild: Add children to RsCollection
+ * @param fileInfoParent: Parent's QFileInfo to scan
+ * @param dirToAdd: QMap where directories are added
+ * @param fileToHash: QStringList where files are added
+ * @return false if too many items is selected and aborted
+ */
+bool RsCollectionDialog::addAllChild(QFileInfo &fileInfoParent
+ , QMap &dirToAdd
+ , QStringList &fileToHash
+ , int &count)
+{
+ //Save count only first time to not scan all items on list .count()
+ if (count == 0) count = (dirToAdd.count() + fileToHash.count());
+ QDir dirParent = fileInfoParent.absoluteFilePath();
+ dirParent.setFilter(QDir::AllEntries | QDir::NoSymLinks | QDir::NoDotAndDotDot);
+ QFileInfoList childrenList = dirParent.entryInfoList();
+ foreach (QFileInfo fileInfo, childrenList)
+ {
+ if (count == MAX_FILE_ADDED_BEFORE_ASK)
+ {
+ QMessageBox msgBox;
+ msgBox.setText(tr("Warning, selection contains more than %1 items.").arg(MAX_FILE_ADDED_BEFORE_ASK));
+ msgBox.setInformativeText("Do you want to continue?");
+ msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
+ msgBox.setDefaultButton(QMessageBox::No);
+ int ret = msgBox.exec();
+ switch (ret) {
+ case QMessageBox::Yes:
+ break;
+ case QMessageBox::No:
+ return false;
+ break;
+ break;
+ default:
+ // should never be reached
+ break;
+ }
+ }
+ if (fileInfo.isDir()) {
+ dirToAdd.insert(fileInfo.absoluteFilePath(),fileInfo.absolutePath());
+ ++count;
+ if (!addAllChild(fileInfo, dirToAdd, fileToHash, count)) return false;
+ }
+ if (fileInfo.isFile()){
+ fileToHash.append(fileInfo.absoluteFilePath());
+ ++count;
+ if (dirToAdd.contains(fileInfo.absolutePath()))
+ _listOfFilesAddedInDir.insert(fileInfo.absoluteFilePath(),fileInfo.absolutePath());
+ else
+ _listOfFilesAddedInDir.insert(fileInfo.absoluteFilePath(),"");
+ }
+ }
+ return true;
}
/**
@@ -598,26 +897,172 @@ void RsCollectionDialog::addSelection(bool recursive)
*/
void RsCollectionDialog::remove()
{
- QMap dirToRemove;
- int count=0;//to not scan all items on list .count()
+ bool removeOnlyFile=false;
+ QString listDir;
+ // First, check if selection contains directories
+ for (int curs = 0; curs < ui._fileEntriesTW->selectedItems().count(); ++curs)
+ {// Have to call ui._fileEntriesTW->selectedItems().count() each time as selected could change
+ QTreeWidgetItem *item = NULL;
+ item= ui._fileEntriesTW->selectedItems().at(curs);
- QModelIndexList milSelectionList = ui._fileEntriesTW->selectionModel()->selectedIndexes();
+ //Uncheck child directory item if parent is checked
+ if (item != getRootItem()){
+ if (item->data(COLUMN_HASH, ROLE_TYPE).toUInt() == DIR_TYPE_DIR) {
+ QString path = item->data(COLUMN_HASH, ROLE_PATH).toString();
+ if (listDir.contains(path) && !path.isEmpty()) {
+ item->setSelected(false);
+ } else {
+ listDir += item->data(COLUMN_HASH, ROLE_NAME).toString() +" ";
+ }
+ }
+ }
+ }
- mCollectionModel->preMods();
+ //If directories, ask to remove them or not
+ if (!listDir.isEmpty()){
+ QMessageBox* msgBox = new QMessageBox(QMessageBox::Information, "", "");
+ msgBox->setText("Warning, selection contains directories.");
+ //msgBox->setInformativeText(); If text too long, no scroll, so I add an text edit
+ QGridLayout* layout = qobject_cast(msgBox->layout());
+ if (layout) {
+ int newRow = 1;
+ for (int row = layout->count()-1; row >= 0; --row) {
+ for (int col = layout->columnCount()-1; col >= 0; --col) {
+ QLayoutItem *item = layout->itemAtPosition(row, col);
+ if (item) {
+ int index = layout->indexOf(item->widget());
+ int r=0, c=0, rSpan=0, cSpan=0;
+ layout->getItemPosition(index, &r, &c, &rSpan, &cSpan);
+ if (r>0) {
+ layout->removeItem(item);
+ layout->addItem(item, r+3, c, rSpan, cSpan);
+ } else if (rSpan>1) {
+ newRow = rSpan + 1;
+ }
+ }
+ }
+ }
+ QLabel *label = new QLabel(tr("Do you want to remove them and all their children, too?"));
+ layout->addWidget(label,newRow, 0, 1, layout->columnCount(), Qt::AlignHCenter );
+ QTextEdit *edit = new QTextEdit(listDir);
+ edit->setReadOnly(true);
+ edit->setWordWrapMode(QTextOption::NoWrap);
+ layout->addWidget(edit,newRow+1, 0, 1, layout->columnCount(), Qt::AlignHCenter );
+ }
- foreach (QModelIndex index, milSelectionList)
- if(index.column()==0) //Get only FileName
- {
- auto indx = mCollectionModel->getIndex(index);
- auto parent_indx = mCollectionModel->getIndex(index.parent());
+ msgBox->setStandardButtons(QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel);
+ msgBox->setDefaultButton(QMessageBox::Yes);
+ int ret = msgBox->exec();
+ switch (ret) {
+ case QMessageBox::Yes:
+ break;
+ case QMessageBox::No:
+ removeOnlyFile = true;
+ break;
+ case QMessageBox::Cancel: {
+ delete msgBox;
+ return;
+ }
+ break;
+ default:
+ // should never be reached
+ break;
+ }
+ delete msgBox;
+ }
- if(indx.is_file)
- mCollection->removeFile(indx.index,parent_indx.index);
- else
- mCollection->removeDirectory(indx.index,parent_indx.index);
- }
+ //Remove wanted items
+ int leftItem = 0;
+ // Have to call ui._fileEntriesTW->selectedItems().count() each time as selected change
+ while (ui._fileEntriesTW->selectedItems().count() > leftItem) {
+ QTreeWidgetItem *item = ui._fileEntriesTW->selectedItems().at(leftItem);
- mCollectionModel->postMods();
+ if (item != getRootItem()){
+ if (!removeItem(item, removeOnlyFile)) {
+ ++leftItem;
+ }
+ } else {
+ //Get Root change index
+ ++leftItem;
+ }
+ }
+
+ updateSizes() ;
+
+}
+
+bool RsCollectionDialog::removeItem(QTreeWidgetItem *item, bool &removeOnlyFile)
+{
+ if (item){
+ if ((item->data(COLUMN_HASH, ROLE_TYPE).toUInt() != DIR_TYPE_DIR) || !removeOnlyFile) {
+ int leftItem = 0;
+ while (item->childCount() > leftItem) {
+ if (!removeItem(item->child(0), removeOnlyFile)) {
+ ++leftItem;
+ }
+ }
+ if (leftItem == 0) {
+ //First uncheck item to update parent informations
+ item->setCheckState(COLUMN_FILE,Qt::Unchecked);
+ QTreeWidgetItem *parent = item->parent();
+ if (parent) {
+ parent->removeChild(item);
+ } else {
+ getRootItem()->removeChild(item);
+ }
+ return true;
+ } else {
+ if (!removeOnlyFile) {
+ std::cerr << "(EE) RsCollectionDialog::removeItem This could never happen." << std::endl;
+ }
+ }
+ }
+ }
+ return false;
+}
+
+/** Process each item to make a new RsCollection item */
+void RsCollectionDialog::processItem(QMap &dirToAdd
+ , int &index
+ , ColFileInfo &parent
+ )
+{
+ ColFileInfo newChild;
+ int count = dirToAdd.count();
+ if (index < count) {
+ QString key=dirToAdd.keys().at(index);
+ bool bad_chars_detected = false;
+ QFileInfo fileInfo=key;
+ QString cleanDirName = purifyFileName(fileInfo.fileName(),bad_chars_detected);
+ newChild.name = cleanDirName;
+ newChild.filename_has_wrong_characters = bad_chars_detected;
+ newChild.size = fileInfo.isDir()? 0: fileInfo.size();
+ newChild.type = fileInfo.isDir()? DIR_TYPE_DIR: DIR_TYPE_FILE ;
+ if (parent.name != "") {
+ newChild.path = parent.path + "/" + parent.name;
+ } else {
+ newChild.path = parent.path;
+ }
+ dirToAdd[key] = newChild.path + "/" + newChild.name;
+ //Move to next item
+ ++index;
+ if (index < count){
+ QString newKey = dirToAdd.keys().at(index);
+ while ((dirToAdd.value(newKey) == key)
+ && (index < count)) {
+ processItem(dirToAdd, index, newChild);
+ if (index < count)newKey = dirToAdd.keys().at(index);
+ }
+ }
+
+ //Save parent when child are processed
+ if (parent.name != "") {
+ parent.children.push_back(newChild);
+ parent.size += newChild.size;
+ } else {
+ _newColFileInfos.push_back(newChild);
+ }
+ }
}
/**
@@ -625,31 +1070,119 @@ void RsCollectionDialog::remove()
*/
void RsCollectionDialog::makeDir()
{
- QModelIndexList selected_indices = ui._fileEntriesTW->selectionModel()->selectedIndexes();
+ QString childName="";
+ bool ok, badChar, nameOK = false;
+ // Ask for name
+ while (!nameOK)
+ {
+ childName = QInputDialog::getText(this, tr("New Directory")
+ , tr("Enter the new directory's name")
+ , QLineEdit::Normal, childName, &ok);
+ if (ok && !childName.isEmpty())
+ {
+ childName = purifyFileName(childName, badChar);
+ nameOK = !badChar;
+ if (badChar)
+ {
+ QMessageBox msgBox;
+ msgBox.setText("The name contains bad characters.");
+ msgBox.setInformativeText("Do you want to use the corrected one?\n" + childName);
+ msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Retry | QMessageBox::Cancel);
+ msgBox.setDefaultButton(QMessageBox::Ok);
+ int ret = msgBox.exec();
+ switch (ret) {
+ case QMessageBox::Ok:
+ nameOK = true;
+ break;
+ case QMessageBox::Retry:
+ break;
+ case QMessageBox::Cancel:
+ return;
+ break;
+ default:
+ // should never be reached
+ break;
+ }
+ }
+ } else {//if (ok && !childName.isEmpty())
+ return;
+ }
- if(selected_indices.size() > 1)
- {
- QMessageBox::information(nullptr,tr("Too many places selected"),tr("Please select at most one directory where to create the new folder"));
- return;
- }
+ }
- QModelIndex place_index;
- if(!selected_indices.empty())
- place_index = selected_indices.first();
+ QList selected = ui._fileEntriesTW->selectedItems();
- RsCollectionModel::EntryIndex e = mCollectionModel->getIndex(place_index);
+ if(selected.empty())
+ {
+ QTreeWidgetItem *item = getRootItem();
- if(e.is_file)
- {
- QMessageBox::information(nullptr,tr("Selected place cannot be a file"),tr("Please select at most one directory where to create the new folder"));
- return;
- }
- QString childName = QInputDialog::getText(this, tr("New Directory"), tr("Enter the new directory's name"), QLineEdit::Normal);
+ ColFileInfo newChild;
+ newChild.name = childName;
+ newChild.filename_has_wrong_characters = false;
+ newChild.size = 0;
+ newChild.type = DIR_TYPE_DIR;
+ newChild.path = item->data(COLUMN_HASH, ROLE_PATH).toString()
+ + "/" + item->data(COLUMN_HASH, ROLE_NAME).toString();
+ if (item == getRootItem()) newChild.path = "";
- mCollectionModel->preMods();
- mCollection->merge_in(*RsFileTree::fromDirectory(childName.toUtf8().constData()),e.index);
- mCollectionModel->postMods();
+ _newColFileInfos.push_back(newChild);
+ }
+ else
+ for(auto it(selected.begin());it!=selected.end();++it)
+ {
+ QTreeWidgetItem *item = *it;
+
+ while(item->data(COLUMN_HASH, ROLE_TYPE).toUInt() != DIR_TYPE_DIR)
+ item = item->parent();//Only Dir as Parent
+
+ ColFileInfo newChild;
+ newChild.name = childName;
+ newChild.filename_has_wrong_characters = false;
+ newChild.size = 0;
+ newChild.type = DIR_TYPE_DIR;
+
+ if (item == getRootItem())
+ newChild.path = "";
+ else
+ newChild.path = item->data(COLUMN_HASH, ROLE_PATH).toString() + "/" + item->data(COLUMN_HASH, ROLE_NAME).toString();
+
+ _newColFileInfos.push_back(newChild);
+ }
+
+
+// // Process all selected items
+// int count = ui._fileEntriesTW->selectedItems().count();
+// int curs = 0;
+// if (count == 0) curs = -1;
+//
+// for (; curs < count; ++curs)
+// {
+// QTreeWidgetItem *item = NULL;
+// if (curs >= 0) {
+// item= ui._fileEntriesTW->selectedItems().at(curs);
+// } else {
+// item = getRootItem();
+// }
+// if (item) {
+// while (item->parent() != NULL && item->data(COLUMN_HASH, ROLE_TYPE).toUInt() != DIR_TYPE_DIR) {
+// item = item->parent();//Only Dir as Parent
+// }
+// ColFileInfo newChild;
+// newChild.name = childName;
+// newChild.filename_has_wrong_characters = false;
+// newChild.size = 0;
+// newChild.type = DIR_TYPE_DIR;
+// newChild.path = item->data(COLUMN_HASH, ROLE_PATH).toString()
+// + "/" + item->data(COLUMN_HASH, ROLE_NAME).toString();
+// if (item == getRootItem()) newChild.path = "";
+//
+// _newColFileInfos.push_back(newChild);
+// }
+// }
+
+
+ updateList();
}
/**
@@ -659,34 +1192,156 @@ void RsCollectionDialog::makeDir()
*/
void RsCollectionDialog::fileHashingFinished(QList hashedFiles)
{
- // build a map of old-hash to new-hash for the hashed files, so that it can be passed to the mCollection for update
+ std::cerr << "RsCollectionDialog::fileHashingFinished() started." << std::endl;
- mCollectionModel->preMods();
- std::map old_to_new_hashes;
+ QString message;
- for(auto f:hashedFiles)
- {
- auto it = mFilesBeingHashed.find(f.filepath);
+ QList::iterator it;
+ for (it = hashedFiles.begin(); it != hashedFiles.end(); ++it) {
+ HashedFile& hashedFile = *it;
- if(it == mFilesBeingHashed.end())
- {
- RsErr() << "Could not find hash-ID correspondence for path " << f.filepath.toUtf8().constData() << ". This is a bug." << std::endl;
- continue;
- }
- std::cerr << "Will update old hash " << it->second << " to new hash " << f.hash << std::endl;
+ ColFileInfo colFileInfo;
+ colFileInfo.name=hashedFile.filename;
+ colFileInfo.path="";
+ colFileInfo.size=hashedFile.size;
+ colFileInfo.hash=QString::fromStdString(hashedFile.hash.toStdString());
+ colFileInfo.filename_has_wrong_characters=false;
+ colFileInfo.type=DIR_TYPE_FILE;
- old_to_new_hashes.insert(std::make_pair(it->second,f.hash));
- mFilesBeingHashed.erase(it);
- mCollectionModel->fileHashingFinished(it->second);
- }
- mCollection->updateHashes(old_to_new_hashes);
- mCollectionModel->postMods();
+ if(_listOfFilesAddedInDir.value(hashedFile.filepath,"")!="") {
+ //File Added in directory, find its parent
+ colFileInfo.path = _listOfFilesAddedInDir.value(hashedFile.filepath,"");
+ _listOfFilesAddedInDir.remove(hashedFile.filepath);
+ }
- if(mFilesBeingHashed.empty())
- {
- ui._save_PB->setToolTip(tr(""));
- ui._save_PB->setEnabled(true);
- }
+ _newColFileInfos.push_back(colFileInfo);
+
+ }
+
+ std::cerr << "RsCollectionDialog::fileHashingFinished message : " << message.toStdString() << std::endl;
+
+ updateList();
+}
+
+void RsCollectionDialog::itemChanged(QTreeWidgetItem *item, int col)
+{
+ if (col != COLUMN_FILE) return;
+
+ if (item->data(COLUMN_HASH, ROLE_TYPE).toUInt() != DIR_TYPE_FILE) return;
+
+ //In COLUMN_FILE, normaly, only checkState could change...
+ qulonglong size = item->data(COLUMN_SIZE, ROLE_SIZE).toULongLong();
+ bool unchecked = (item->checkState(COLUMN_FILE) == Qt::Unchecked);
+ item->setData(COLUMN_SIZE, ROLE_SELSIZE, unchecked?0:size);
+ item->setText(COLUMN_SIZE, misc::friendlyUnit(unchecked?0:size));
+ item->setData(COLUMN_FILEC, ROLE_SELFILEC, unchecked?0:1);
+ item->setText(COLUMN_FILEC, QString("%1").arg(unchecked?0:1));
+
+ //update parents size
+ QTreeWidgetItem *itemParent = item->parent();
+ while (itemParent) {
+ //When unchecked only remove selected size
+ qulonglong parentSize = itemParent->data(COLUMN_SIZE, ROLE_SELSIZE).toULongLong() + (unchecked?0-size:size);
+ itemParent->setData(COLUMN_SIZE, ROLE_SELSIZE, parentSize);
+ itemParent->setText(COLUMN_SIZE, misc::friendlyUnit(parentSize));
+
+ qulonglong parentFileCount = itemParent->data(COLUMN_FILEC, ROLE_SELFILEC).toULongLong() + (unchecked?0-1:1);
+ itemParent->setData(COLUMN_FILEC, ROLE_SELFILEC, parentFileCount);
+ itemParent->setText(COLUMN_FILEC, QString("%1").arg(parentFileCount));
+
+ itemParent = itemParent->parent();
+ }
+
+ updateSizes() ;
+
+}
+
+/**
+ * @brief RsCollectionDialog::updateRemoveDuplicate Remove all duplicate file when checked.
+ * @param checked
+ */
+void RsCollectionDialog::updateRemoveDuplicate(bool checked)
+{
+ if (checked) {
+ bool bRemoveAll = false;
+ QTreeWidgetItemIterator it(ui._fileEntriesTW);
+ QTreeWidgetItem *item;
+ while ((item = *it) != NULL) {
+ ++it;
+ if (item->data(COLUMN_HASH, ROLE_TYPE).toUInt() != DIR_TYPE_DIR) {
+ QList founds;
+ founds << ui._fileEntriesTW->findItems(item->text(COLUMN_HASH), Qt::MatchExactly | Qt::MatchRecursive, COLUMN_HASH);
+ if (founds.count() > 1) {
+ bool bRemove = false;
+ if (!bRemoveAll) {
+ QMessageBox* msgBox = new QMessageBox(QMessageBox::Information, "", "");
+ msgBox->setText("Warning, duplicate file found.");
+ //msgBox->setInformativeText(); If text too long, no scroll, so I add an text edit
+ msgBox->setStandardButtons(QMessageBox::YesToAll | QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel);
+ msgBox->setDefaultButton(QMessageBox::Yes);
+
+ QGridLayout* layout = qobject_cast(msgBox->layout());
+ if (layout) {
+ int newRow = 1;
+ for (int row = layout->count()-1; row >= 0; --row) {
+ for (int col = layout->columnCount()-1; col >= 0; --col) {
+ QLayoutItem *item = layout->itemAtPosition(row, col);
+ if (item) {
+ int index = layout->indexOf(item->widget());
+ int r=0, c=0, rSpan=0, cSpan=0;
+ layout->getItemPosition(index, &r, &c, &rSpan, &cSpan);
+ if (r>0) {
+ layout->removeItem(item);
+ layout->addItem(item, r+3, c, rSpan, cSpan);
+ } else if (rSpan>1) {
+ newRow = rSpan + 1;
+ }
+ }
+ }
+ }
+ QLabel *label = new QLabel(tr("Do you want to remove this file from the list?"));
+ layout->addWidget(label,newRow, 0, 1, layout->columnCount(), Qt::AlignHCenter );
+ QTextEdit *edit = new QTextEdit(item->text(COLUMN_FILEPATH));
+ edit->setReadOnly(true);
+ edit->setWordWrapMode(QTextOption::NoWrap);
+ layout->addWidget(edit,newRow+1, 0, 1, layout->columnCount(), Qt::AlignHCenter );
+ }
+
+ int ret = msgBox->exec();
+ switch (ret) {
+ case QMessageBox::YesToAll: {
+ bRemoveAll = true;
+ }
+ break;
+ case QMessageBox::Yes: {
+ bRemove = true;
+ }
+ break;
+ case QMessageBox::No:
+ break;
+ case QMessageBox::Cancel: {
+ delete msgBox;
+ ui._removeDuplicate_CB->setChecked(false);
+ return;
+ }
+ break;
+ default:
+ // should never be reached
+ break;
+ }
+ delete msgBox;
+ }
+
+ if (bRemove || bRemoveAll) {
+ //First uncheck item to update parent informations
+ item->setCheckState(COLUMN_FILE,Qt::Unchecked);
+ item->parent()->removeChild(item);
+ }
+
+ }
+ }
+ }
+ }
}
/**
@@ -704,85 +1359,47 @@ void RsCollectionDialog::cancel()
void RsCollectionDialog::download()
{
std::cerr << "Downloading!" << std::endl;
- bool auto_correct = false;
- bool auto_skip = false;
QString dldir = ui.downloadFolder_LE->text();
std::cerr << "downloading all these files:" << std::endl;
- std::function recursDL = [&](RsFileTree::DirIndex index,const std::string& path)
- {
- const auto& dirdata(mCollection->fileTree().directoryData(index));
- RsCollectionModel::EntryIndex e;
+ QTreeWidgetItemIterator itemIterator(ui._fileEntriesTW);
+ QTreeWidgetItem *item;
+ while ((item = *itemIterator) != NULL) {
+ ++itemIterator;
- for(uint32_t i=0;icheckState(COLUMN_FILE) == Qt::Checked) {
+ std::cerr << item->data(COLUMN_HASH,ROLE_NAME).toString().toStdString()
+ << " " << item->text(COLUMN_HASH).toStdString()
+ << " " << item->text(COLUMN_SIZE).toStdString()
+ << " " << item->data(COLUMN_HASH,ROLE_PATH).toString().toStdString() << std::endl;
+ ColFileInfo colFileInfo;
+ colFileInfo.hash = item->text(COLUMN_HASH);
+ colFileInfo.name = item->data(COLUMN_HASH,ROLE_NAME).toString();
+ colFileInfo.path = item->data(COLUMN_HASH,ROLE_PATH).toString();
+ colFileInfo.type = item->data(COLUMN_HASH,ROLE_TYPE).toUInt();
+ colFileInfo.size = item->data(COLUMN_SIZE,ROLE_SELSIZE).toULongLong();
- if(!mCollectionModel->isChecked(e))
- continue;
+ QString cleanPath = dldir + colFileInfo.path ;
+ std::cerr << "making directory " << cleanPath.toStdString() << std::endl;
- const auto& sdd = mCollection->fileTree().directoryData(e.index);
- std::string subpath = RsDirUtil::makePath(path,sdd.name);
+ if(!QDir(QApplication::applicationDirPath()).mkpath(cleanPath))
+ QMessageBox::warning(NULL,QObject::tr("Unable to make path"),QObject::tr("Unable to make path:")+" "+cleanPath) ;
- std::cerr << "Creating subdir " << sdd.name << " to directory " << path << std::endl;
+ if (colFileInfo.type==DIR_TYPE_FILE)
+ rsFiles->FileRequest(colFileInfo.name.toUtf8().constData(),
+ RsFileHash(colFileInfo.hash.toStdString()),
+ colFileInfo.size,
+ cleanPath.toUtf8().constData(),
+ RS_FILE_REQ_ANONYMOUS_ROUTING,
+ std::list());
+ } else {//if (item->checkState(COLUMN_FILE) == Qt::Checked)
+ std::cerr<<"Skipping file : " << item->data(COLUMN_HASH,ROLE_NAME).toString().toStdString() << std::endl;
+ }
+ }
- if(!QDir(QApplication::applicationDirPath()).mkpath(QString::fromUtf8(subpath.c_str())))
- QMessageBox::warning(NULL,tr("Unable to make path"),tr("Unable to make path:")+" "+QString::fromUtf8(subpath.c_str())) ;
-
- recursDL(dirdata.subdirs[i],subpath);
- }
- for(uint32_t i=0;iisChecked(e))
- continue;
-
- std::string subpath = RsDirUtil::makePath(path,dirdata.name);
- const auto& f(mCollection->fileTree().fileData(dirdata.subfiles[i]));
-
- std::string corrected_name;
-
- if(!checkFileName(f.name,corrected_name) && !auto_correct)
- {
- if(auto_skip)
- continue;
-
- QMessageBox mb;
- mb.setText(tr("Incompatible filename."));
- mb.setInformativeText(tr("This filename is not usable on your system.")+"\n"+tr("Retroshare can replace every problematic chars by '_'.")
- +"\n"+tr("What do you want to do?"));
- QAbstractButton *btnCorrect = mb.addButton(tr("Correct filename"), QMessageBox::YesRole);
- QAbstractButton *btnCorrectAll = mb.addButton(tr("Correct all"), QMessageBox::AcceptRole);
- QAbstractButton *btnSkip = mb.addButton(tr("Skip this file"), QMessageBox::NoRole);
- QAbstractButton *btnSkipAll = mb.addButton(tr("Skip all"), QMessageBox::RejectRole);
- mb.setIcon(QMessageBox::Question);
- mb.exec();
-
- if(mb.clickedButton() == btnSkipAll)
- {
- auto_skip = true;
- continue;
- }
- if(mb.clickedButton() == btnSkip)
- continue;
-
- if(mb.clickedButton() == btnCorrectAll)
- auto_correct = true;
- }
-
- std::cerr << "Requesting file " << corrected_name << " to directory " << path << std::endl;
-
- rsFiles->FileRequest(corrected_name,f.hash,f.size,path,RS_FILE_REQ_ANONYMOUS_ROUTING,std::list());
- }
- };
-
- recursDL(mCollection->fileTree().root(),dldir.toUtf8().constData());
- close();
+ close();
}
/**
@@ -790,66 +1407,40 @@ void RsCollectionDialog::download()
*/
void RsCollectionDialog::save()
{
- if(ui._filename_TL->text().isNull())
- changeFileName();
- if(ui._filename_TL->text().isNull())
- return;
+ std::cerr << "Saving!" << std::endl;
+ _newColFileInfos.clear();
+ QTreeWidgetItem* root = getRootItem();
+ if (root) {
+ saveChild(root);
- mCollectionModel->preMods();
- mCollection->cleanup();
- mCollection->save(ui._filename_TL->text());
- close();
+ emit saveColl(_newColFileInfos, _fileName);
+ }
+ close();
}
-bool RsCollectionDialog::editExistingCollection(const QString& fileName, bool showError /* = true*/)
+/**
+ * @brief RsCollectionDialog::saveChild: Save each child in _newColFileInfos
+ * @param parent
+ */
+void RsCollectionDialog::saveChild(QTreeWidgetItem *parentItem, ColFileInfo *parentInfo)
{
- return RsCollectionDialog(fileName,EDIT).exec();
+ ColFileInfo parent;
+ if (!parentInfo) parentInfo = &parent;
+
+ parentInfo->checked = (parentItem->checkState(COLUMN_FILE)==Qt::Checked);
+ parentInfo->hash = parentItem->text(COLUMN_HASH);
+ parentInfo->name = parentItem->data(COLUMN_HASH,ROLE_NAME).toString();
+ parentInfo->path = parentItem->data(COLUMN_HASH,ROLE_PATH).toString();
+ parentInfo->type = parentItem->data(COLUMN_HASH,ROLE_TYPE).toUInt();
+ parentInfo->size = parentItem->data(COLUMN_SIZE,ROLE_SELSIZE).toULongLong();
+
+ for (int i=0; ichildCount(); ++i) {
+ ColFileInfo child;
+ saveChild(parentItem->child(i), &child);
+ if (parentInfo->name != "") {
+ parentInfo->children.push_back(child);
+ } else {
+ _newColFileInfos.push_back(child);
+ }
+ }
}
-
-bool RsCollectionDialog::openExistingCollection(const QString& fileName, bool showError /* = true*/)
-{
- return RsCollectionDialog(fileName,DOWNLOAD).exec();
-}
-
-bool RsCollectionDialog::downloadFiles(const RsCollection &collection)
-{
- return RsCollectionDialog(collection,DOWNLOAD).exec();
-}
-
-
-bool RsCollectionDialog::openNewCollection(const RsFileTree& tree)
-{
- RsCollection collection(tree);
- QString fileName;
-
- if(!misc::getSaveFileName(nullptr, RshareSettings::LASTDIR_EXTRAFILE
- , QApplication::translate("RsCollectionFile", "Create collection file")
- , QApplication::translate("RsCollectionFile", "Collection files") + " (*." + RsCollection::ExtensionString + ")"
- , fileName,0, QFileDialog::DontConfirmOverwrite))
- return false;
-
- if (!fileName.endsWith("." + RsCollection::ExtensionString))
- fileName += "." + RsCollection::ExtensionString ;
-
- std::cerr << "Got file name: " << fileName.toStdString() << std::endl;
-
- if(QFile(fileName).exists())
- {
- QMessageBox mb;
- mb.setText(tr("Save Collection File."));
- mb.setInformativeText(tr("File already exists.")+"\n"+tr("What do you want to do?"));
- QAbstractButton *btnOwerWrite = mb.addButton(tr("Overwrite"), QMessageBox::YesRole);
- QAbstractButton *btnCancel = mb.addButton(tr("Cancel"), QMessageBox::ResetRole);
- mb.setIcon(QMessageBox::Question);
- mb.exec();
-
- if (mb.clickedButton()==btnCancel)
- return false;
- }
-
- if(!collection.save(fileName))
- return false;
-
- return RsCollectionDialog(fileName,EDIT).exec();
-}
-
diff --git a/retroshare-gui/src/gui/common/RsCollectionDialog.h b/retroshare-gui/src/gui/common/RsCollectionDialog.h
index 3c1f5c29a..43c7dbdd7 100644
--- a/retroshare-gui/src/gui/common/RsCollectionDialog.h
+++ b/retroshare-gui/src/gui/common/RsCollectionDialog.h
@@ -18,10 +18,8 @@
* *
*******************************************************************************/
-#include
#include "ui_RsCollectionDialog.h"
#include "RsCollection.h"
-#include "RsCollectionModel.h"
#include
#include
@@ -32,45 +30,33 @@ class RsCollectionDialog: public QDialog
Q_OBJECT
public:
+ RsCollectionDialog(const QString& filename
+ , const std::vector &colFileInfos
+ , const bool& creation
+ , const bool& readOnly = false) ;
virtual ~RsCollectionDialog();
- // Open new collection
- static bool openNewCollection(const RsFileTree &tree = RsFileTree());
-
- // Edit existing collection
- static bool editExistingCollection(const QString& fileName, bool showError = true);
-
- // Open existing collection for download
- static bool openExistingCollection(const QString& fileName, bool showError = true);
-
- // Open existing collection for download
- static bool downloadFiles(const RsCollection& collection);
protected:
- static QString errorString(RsCollection::RsCollectionErrorCode code);
-
- void init(const QString& collectionFileName);
-
- enum RsCollectionDialogMode {
- UNKNOWN = 0x00,
- EDIT = 0x01,
- DOWNLOAD = 0x02,
- };
-
- RsCollectionDialog(const QString& filename, RsCollectionDialogMode mode) ;
- RsCollectionDialog(const RsCollection& coll, RsCollectionDialogMode mode) ;
+ bool eventFilter(QObject *obj, QEvent *ev);
private slots:
void directoryLoaded(QString dirLoaded);
void updateSizes() ;
void changeFileName() ;
- void addSelection() ;
- void addSelectionRecursive() ;
+ void add() ;
+ void addRecursive() ;
void remove() ;
void chooseDestinationDirectory();
void setDestinationDirectory();
void openDestinationDirectoryMenu();
+ void processItem(QMap &dirToAdd
+ , int &index
+ , ColFileInfo &parent
+ ) ;
void makeDir() ;
void fileHashingFinished(QList hashedFiles) ;
+ void itemChanged(QTreeWidgetItem* item,int col) ;
+ void updateRemoveDuplicate(bool checked);
void cancel() ;
void download() ;
void save() ;
@@ -80,20 +66,26 @@ signals:
private:
void processSettings(bool bLoad) ;
- void addSelection(bool recursive) ;
+ QTreeWidgetItem* getRootItem();
+ bool updateList();
+ bool addChild(QTreeWidgetItem *parent, const std::vector &child);
+ bool removeItem(QTreeWidgetItem *item, bool &removeOnlyFile) ;
+ void addRecursive(bool recursive) ;
+ bool addAllChild(QFileInfo &fileInfoParent
+ , QMap &dirToAdd
+ , QStringList &fileToHash
+ , int &count);
+ void saveChild(QTreeWidgetItem *parentItem, ColFileInfo *parentInfo = NULL);
Ui::RsCollectionDialog ui;
-
- RsCollectionDialogMode _mode;
+ QString _fileName ;
+ const bool _creationMode ;
+ const bool _readOnly;
+ std::vector _newColFileInfos ;
QFileSystemModel *_dirModel;
QSortFilterProxyModel *_tree_proxyModel;
QItemSelectionModel *_selectionProxy;
bool _dirLoaded;
QHash _listOfFilesAddedInDir;
-
- RsCollectionModel *mCollectionModel;
- RsCollection *mCollection;
-
- std::map mFilesBeingHashed; // map of file path vs. temporary ID used for the file while hashing
};
diff --git a/retroshare-gui/src/gui/common/RsCollectionDialog.ui b/retroshare-gui/src/gui/common/RsCollectionDialog.ui
index 5ceadb647..d8693ef0a 100644
--- a/retroshare-gui/src/gui/common/RsCollectionDialog.ui
+++ b/retroshare-gui/src/gui/common/RsCollectionDialog.ui
@@ -6,8 +6,8 @@
0
0
- 761
- 434
+ 600
+ 400
@@ -17,7 +17,7 @@
Collection
-
+
:/images/mimetypes/rscollection-16.png :/images/mimetypes/rscollection-16.png
@@ -157,7 +157,7 @@
-
-
+
21
@@ -170,10 +170,6 @@
...
-
-
- :/icons/browsable_blue_128.png :/icons/browsable_blue_128.png
-
@@ -287,7 +283,7 @@
- :/images/start.png :/images/start.png
+ :/images/feedback_arrow.png :/images/feedback_arrow.png
@@ -313,7 +309,7 @@
- :/images/startall.png :/images/startall.png
+ :/images/update.png :/images/update.png
@@ -338,8 +334,8 @@
-
- :/images/delete.png :/images/delete.png
+
+ :/images/deletemail24.png :/images/deletemail24.png
@@ -386,7 +382,7 @@
-
+
QAbstractItemView::NoEditTriggers
@@ -402,6 +398,11 @@
true
+
+
+ 1
+
+
@@ -410,6 +411,26 @@
-
+ -
+
+
+ Remove Duplicate
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
-
@@ -430,12 +451,6 @@
-
-
-
- 0
- 0
-
-
Qt::CustomContextMenu
@@ -447,19 +462,6 @@
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
@@ -515,7 +517,7 @@
-
+
diff --git a/retroshare-gui/src/gui/common/RsCollectionModel.cpp b/retroshare-gui/src/gui/common/RsCollectionModel.cpp
deleted file mode 100644
index 8c7fa9283..000000000
--- a/retroshare-gui/src/gui/common/RsCollectionModel.cpp
+++ /dev/null
@@ -1,616 +0,0 @@
-#include
-#include
-
-#include "RsCollectionModel.h"
-
-// #define DEBUG_COLLECTION_MODEL 1
-
-static const int COLLECTION_MODEL_FILENAME = 0;
-static const int COLLECTION_MODEL_SIZE = 1;
-static const int COLLECTION_MODEL_HASH = 2;
-static const int COLLECTION_MODEL_COUNT = 3;
-static const int COLLECTION_MODEL_NB_COLUMN = 4;
-
-RsCollectionModel::RsCollectionModel(const RsCollection& col, QObject *parent)
- : QAbstractItemModel(parent),mCollection(col)
-{
- postMods();
-}
-
-static std::ostream& operator<<(std::ostream& o,const RsCollectionModel::EntryIndex& i)
-{
- return o << ((i.is_file)?("File"):"Dir") << " with index " << (int)i.index ;
-}
-static std::ostream& operator<<(std::ostream& o,const QModelIndex& i)
-{
- return o << "QModelIndex (row " << i.row() << ", ref " << i.internalId() << ")" ;
-}
-#ifdef DEBUG_COLLECTION_MODEL
-#endif
-
-// Indernal Id is always a quintptr_t (basically a uint with the size of a pointer). Depending on the
-// Indernal Id is always a quintptr_t (basically a uint with the size of a pointer). Depending on the
-// architecture, the pointer may have 4 or 8 bytes. We use the low-level bit for type (0=dir, 1=file) and
-// the remaining bits for the index (which will be accordingly understood as a FileIndex or a DirIndex)
-// This way, index 0 is always the top dir.
-
-bool RsCollectionModel::convertIndexToInternalId(const EntryIndex& e,quintptr& ref)
-{
- ref = (e.index << 1) | e.is_file;
- return true;
-}
-
-bool RsCollectionModel::convertInternalIdToIndex(quintptr ref, EntryIndex& e)
-{
- e.is_file = (bool)(ref & 1);
- e.index = ref >> 1;
- return true;
-}
-
-int RsCollectionModel::rowCount(const QModelIndex& parent) const
-{
-#ifdef DEBUG_COLLECTION_MODEL
- std::cerr << "Asking rowCount of " << parent << std::endl;
-#endif
-
- if(parent.column() >= COLLECTION_MODEL_NB_COLUMN)
- return 0;
-
- if(!parent.isValid())
- {
-#ifdef DEBUG_COLLECTION_MODEL
- std::cerr << " root! returning " << mCollection.fileTree().directoryData(0).subdirs.size()
- + mCollection.fileTree().directoryData(0).subfiles.size() << std::endl;
-#endif
-
- return mCollection.fileTree().directoryData(0).subdirs.size()
- + mCollection.fileTree().directoryData(0).subfiles.size();
- }
-
- EntryIndex i;
- if(!convertInternalIdToIndex(parent.internalId(),i))
- return 0;
-
- if(i.is_file)
- {
-#ifdef DEBUG_COLLECTION_MODEL
- std::cerr << " file: returning 0" << std::endl;
-#endif
- return 0;
- }
- else
- {
-#ifdef DEBUG_COLLECTION_MODEL
- std::cerr << " dir: returning " << mCollection.fileTree().directoryData(i.index).subdirs.size() + mCollection.fileTree().directoryData(i.index).subfiles.size()
- << std::endl;
-#endif
- return mCollection.fileTree().directoryData(i.index).subdirs.size() + mCollection.fileTree().directoryData(i.index).subfiles.size();
- }
-}
-
-bool RsCollectionModel::hasChildren(const QModelIndex & parent) const
-{
- if(!parent.isValid())
- return true;
-
- EntryIndex i;
- if(!convertInternalIdToIndex(parent.internalId(),i))
- return false;
-
- if(i.is_file)
- return false;
- else if(mCollection.fileTree().directoryData(i.index).subdirs.size() + mCollection.fileTree().directoryData(i.index).subfiles.size() > 0)
- return true;
- else
- return false;
-}
-
-int RsCollectionModel::columnCount(const QModelIndex&) const
-{
- return COLLECTION_MODEL_NB_COLUMN;
-}
-
-QVariant RsCollectionModel::headerData(int section, Qt::Orientation,int role) const
-{
- if(role == Qt::DisplayRole)
- switch(section)
- {
- case 0: return tr("File");
- case 1: return tr("Size");
- case 2: return tr("Hash");
- case 3: return tr("Count");
- default:
- return QVariant();
- }
- return QVariant();
-}
-
-QModelIndex RsCollectionModel::index(int row, int column, const QModelIndex & parent) const
-{
- if(row < 0 || column < 0 || column >= columnCount(parent) || row >= rowCount(parent))
- return QModelIndex();
-
- EntryIndex parent_index;
-
- if(!parent.isValid()) // root
- {
- parent_index.is_file = false;
- parent_index.index = 0;
- }
- else if(!convertInternalIdToIndex(parent.internalId(),parent_index))
- return QModelIndex();
-
- if(parent_index.is_file || parent_index.index >= mCollection.fileTree().numDirs())
- return QModelIndex();
-
- const auto& parentData(mCollection.fileTree().directoryData(parent_index.index));
-
- if((size_t)row < parentData.subdirs.size())
- {
- EntryIndex e;
- e.is_file = false;
- e.index = parentData.subdirs[row];
-
- quintptr ref;
- convertIndexToInternalId(e,ref);
-
-#ifdef DEBUG_COLLECTION_MODEL
- std::cerr << "creating index for row " << row << " of parent " << parent << ". result is " << createIndex(row,column,ref) << std::endl;
-#endif
- return createIndex(row,column,ref);
- }
-
- if((size_t)row < parentData.subdirs.size() + parentData.subfiles.size())
- {
- EntryIndex e;
- e.is_file = true;
- e.index = parentData.subfiles[row - parentData.subdirs.size()];
-
- quintptr ref;
- convertIndexToInternalId(e,ref);
-#ifdef DEBUG_COLLECTION_MODEL
- std::cerr << "creating index for row " << row << " of parent " << parent << ". result is " << createIndex(row,column,ref) << std::endl;
-#endif
- return createIndex(row,column,ref);
- }
-
- return QModelIndex();
-}
-
-Qt::ItemFlags RsCollectionModel::flags ( const QModelIndex & index ) const
-{
- if(index.isValid() && index.column() == COLLECTION_MODEL_FILENAME)
- {
- EntryIndex e;
-
- if(!convertInternalIdToIndex(index.internalId(),e))
- return QAbstractItemModel::flags(index) ;
-
- if(e.is_file)
- return QAbstractItemModel::flags(index) | Qt::ItemIsUserCheckable;
- else
- return QAbstractItemModel::flags(index) | Qt::ItemIsAutoTristate | Qt::ItemIsUserCheckable;
- }
-
- return QAbstractItemModel::flags(index) ;
-}
-
-QModelIndex RsCollectionModel::parent(const QModelIndex & index) const
-{
- if(!index.isValid())
- return QModelIndex();
-
- EntryIndex i;
- if(index.internalId()==0 || !convertInternalIdToIndex(index.internalId(),i))
- return QModelIndex();
-
- EntryIndex p;
- p.is_file = false; // all parents are directories
- int row;
-
- if(i.is_file)
- {
- p.index = mFileInfos[i.index].parent_index;
- row = mFileInfos[i.index].parent_row;
- }
- else
- {
- p.index = mDirInfos[i.index].parent_index;
- row = mDirInfos[i.index].parent_row;
- }
-
- quintptr ref;
- convertIndexToInternalId(p,ref);
-
- return createIndex(row,0,ref);
-}
-
-QVariant RsCollectionModel::data(const QModelIndex& index, int role) const
-{
- EntryIndex i;
- if(!convertInternalIdToIndex(index.internalId(),i))
- return QVariant();
-
-#ifdef DEBUG_COLLECTION_MODEL
- std::cerr << "Asking data of " << i << std::endl;
-#endif
- switch(role)
- {
- case Qt::DisplayRole: return displayRole(i,index.column());
- case Qt::DecorationRole: return decorationRole(i,index.column());
- case Qt::CheckStateRole: return checkStateRole(i,index.column());
- case Qt::TextColorRole: return textColorRole(i,index.column());
- default:
- return QVariant();
- }
-}
-
-bool RsCollectionModel::setData(const QModelIndex& index,const QVariant& value,int role)
-{
- if(!index.isValid())
- return false;
-
- EntryIndex e;
-
- if(role==Qt::CheckStateRole && convertInternalIdToIndex(index.internalId(), e))
- {
-#ifdef DEBUG_COLLECTION_MODEL
- std::cerr << "Setting check state of item " << index << " to " << value.toBool() << std::endl;
-#endif
- RsFileTree::DirIndex dir_index ;
-
- if(e.is_file)
- {
- mFileInfos[e.index].is_checked = value.toBool();
- dir_index = mFileInfos[e.index].parent_index;
- }
- else
- {
- std::function recursSetCheckFlag = [&](RsFileTree::DirIndex index,bool s) -> void
- {
- mDirInfos[index].check_state = (s)?SELECTED:UNSELECTED;
- auto& dir_data(mCollection.fileTree().directoryData(index));
-
- mDirInfos[index].total_size = 0;
- mDirInfos[index].total_count = 0;
-
- for(uint32_t i=0;i& files)
-{
- mFilesBeingHashed.insert(files.begin(),files.end());
-}
-void RsCollectionModel::fileHashingFinished(const RsFileHash& hash)
-{
- mFilesBeingHashed.erase(hash);
-}
-
-void RsCollectionModel::preMods()
-{
- mUpdating = true;
- emit layoutAboutToBeChanged();
-}
-void RsCollectionModel::postMods()
-{
- // update all the local structures
-
- mDirInfos.clear();
- mFileInfos.clear();
-
- mDirInfos.resize(mCollection.fileTree().numDirs());
- mFileInfos.resize(mCollection.fileTree().numFiles());
-
- mDirInfos[0].parent_index = 0;
-
-#ifdef DEBUG_COLLECTION_MODEL
- std::cerr << "Updating from tree: " << std::endl;
-#endif
- recursUpdateLocalStructures(mCollection.fileTree().root(),0);
-
- mUpdating = false;
- emit layoutChanged();
- emit sizesChanged();
-
-// debugDump();
-}
-
-void RsCollectionModel::recursUpdateLocalStructures(RsFileTree::DirIndex dir_index,int depth)
-{
- uint64_t total_size = 0;
- uint64_t total_count = 0;
- bool all_checked = true;
- bool all_unchecked = false;
-
- const auto& dd(mCollection.fileTree().directoryData(dir_index));
-
- for(uint32_t i=0;i recursDump = [&](RsFileTree::DirIndex indx,int depth) {
- const auto& dir_data(mCollection.fileTree().directoryData(indx));
-
- for(int i=0;i recursDump2 = [&](QModelIndex indx,int depth) {
-
- for(int i=0;i
-
-#include "RsCollection.h"
-
-class RsCollectionModel: public QAbstractItemModel
-{
- Q_OBJECT
-
- public:
- enum Roles{ FileNameRole = Qt::UserRole+1, SortRole = Qt::UserRole+2, FilterRole = Qt::UserRole+3 };
-
- RsCollectionModel(const RsCollection& col, QObject *parent = 0);
- virtual ~RsCollectionModel() = default;
-
- /* Callback from Core */
- void preMods(); // always call this before updating the RsCollection!
- void postMods(); // always call this after updating the RsCollection!
-
- /* Callback from GUI */
-
- void update() ;
- void filterItems(const std::list& keywords, uint32_t& found) ;
-
- // Overloaded from QAbstractItemModel
- virtual QModelIndex index(int row, int column, const QModelIndex & parent = QModelIndex() ) const override;
- virtual QModelIndex parent ( const QModelIndex & index ) const override;
-
- virtual int rowCount(const QModelIndex &parent = QModelIndex()) const override;
- virtual int columnCount(const QModelIndex &parent = QModelIndex()) const override;
- virtual bool hasChildren(const QModelIndex & parent = QModelIndex()) const override;
-
- virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
- virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
- virtual bool setData(const QModelIndex& index,const QVariant& value,int role) override;
- virtual Qt::ItemFlags flags ( const QModelIndex & index ) const override;
-#ifdef TODO
- virtual QStringList mimeTypes () const override;
- virtual QMimeData * mimeData ( const QModelIndexList & indexes ) const override;
-#if QT_VERSION >= QT_VERSION_CHECK (5, 0, 0)
- virtual Qt::DropActions supportedDragActions() const override;
-#endif
-#endif
-
- struct EntryIndex {
- bool is_file; // false=dir, true=file
- uint64_t index;
- };
- uint64_t totalSize() const { return mDirInfos[0].total_size; }
- uint64_t totalSelected() const { return mDirInfos[0].total_count; }
-
- void notifyFilesBeingHashed(const std::list& files);
- void fileHashingFinished(const RsFileHash& hash);
- bool isChecked(EntryIndex);
-
- EntryIndex getIndex(const QModelIndex& i) const;
- signals:
- void sizesChanged(); // tells that the total size of the top level dir has changed (due to selection)
-
- private:
- static bool convertIndexToInternalId(const EntryIndex& e,quintptr& ref);
- static bool convertInternalIdToIndex(quintptr ref, EntryIndex& e);
-
- void recursUpdateLocalStructures(RsFileTree::DirIndex dir_index, int depth);
-
- QVariant displayRole(const EntryIndex&,int col) const ;
- QVariant sortRole(const EntryIndex&,int col) const ;
- QVariant decorationRole(const EntryIndex&,int col) const ;
- QVariant checkStateRole(const EntryIndex& i,int col) const;
- QVariant textColorRole(const EntryIndex& i,int col) const;
- //QVariant filterRole(const DirDetails& details,int coln) const;
-
- void debugDump();
-
- bool mUpdating ;
-
- const RsCollection& mCollection;
-
- enum DirCheckState: uint8_t {
- UNSELECTED = 0x00,
- PARTIALLY_SELECTED = 0x01,
- SELECTED = 0x02,
- };
-
- struct ModelDirInfo {
- ModelDirInfo() :parent_index(0),parent_row(0),check_state(SELECTED),total_size(0),total_count(0){}
-
- RsFileTree::DirIndex parent_index; // index of the parent
- RsFileTree::DirIndex parent_row; // row of that child, in this parent
- DirCheckState check_state;
- uint64_t total_size;
- uint64_t total_count;
- };
-
- struct ModelFileInfo {
- ModelFileInfo() :parent_index(0),parent_row(0),is_checked(true){}
-
- RsFileTree::DirIndex parent_index; // index of the parent
- RsFileTree::DirIndex parent_row; // row of that child, in this parent
- bool is_checked;
- };
-
- std::vector mFileInfos;
- std::vector mDirInfos;
-
- std::set mFilesBeingHashed;
-
- // std::set mFilteredPointers ;
-};
diff --git a/retroshare-gui/src/gui/common/RsUrlHandler.cpp b/retroshare-gui/src/gui/common/RsUrlHandler.cpp
index 94ec79753..6ac6310ac 100644
--- a/retroshare-gui/src/gui/common/RsUrlHandler.cpp
+++ b/retroshare-gui/src/gui/common/RsUrlHandler.cpp
@@ -21,13 +21,19 @@
#include
#include
#include
-#include "RsCollectionDialog.h"
+#include "RsCollection.h"
#include "RsUrlHandler.h"
bool RsUrlHandler::openUrl(const QUrl& url)
{
if(url.scheme() == QString("file") && url.toLocalFile().endsWith("."+RsCollection::ExtensionString))
- return RsCollectionDialog::openExistingCollection(url.toLocalFile());
-
+ {
+ RsCollection collection ;
+ if(collection.load(url.toLocalFile()))
+ {
+ collection.downloadFiles() ;
+ return true;
+ }
+ }
return QDesktopServices::openUrl(url) ;
}
diff --git a/retroshare-gui/src/gui/elastic/arrow.cpp b/retroshare-gui/src/gui/elastic/arrow.cpp
index 5698a3da6..6a95f2041 100644
--- a/retroshare-gui/src/gui/elastic/arrow.cpp
+++ b/retroshare-gui/src/gui/elastic/arrow.cpp
@@ -33,7 +33,7 @@ static double TwoPi = 2.0 * Pi;
Arrow::Arrow(Node *sourceNode, Node *destNode)
: arrowSize(10)
{
- setAcceptedMouseButtons(Qt::MouseButton::NoButton);
+ setAcceptedMouseButtons(0);
source = sourceNode;
dest = destNode;
#ifdef SUSP
diff --git a/retroshare-gui/src/gui/feeds/ChannelsCommentsItem.ui b/retroshare-gui/src/gui/feeds/ChannelsCommentsItem.ui
index db4ac6b1a..cd0265c1d 100644
--- a/retroshare-gui/src/gui/feeds/ChannelsCommentsItem.ui
+++ b/retroshare-gui/src/gui/feeds/ChannelsCommentsItem.ui
@@ -6,8 +6,8 @@
0
0
- 836
- 160
+ 755
+ 157
@@ -35,10 +35,10 @@
true
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
diff --git a/retroshare-gui/src/gui/feeds/GxsChannelGroupItem.ui b/retroshare-gui/src/gui/feeds/GxsChannelGroupItem.ui
index 43537d061..e17f53c48 100644
--- a/retroshare-gui/src/gui/feeds/GxsChannelGroupItem.ui
+++ b/retroshare-gui/src/gui/feeds/GxsChannelGroupItem.ui
@@ -7,7 +7,7 @@
0
0
618
- 189
+ 176
@@ -134,10 +134,10 @@
true
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
-
diff --git a/retroshare-gui/src/gui/feeds/GxsChannelPostItem.ui b/retroshare-gui/src/gui/feeds/GxsChannelPostItem.ui
index d4d41dc06..578fa1637 100644
--- a/retroshare-gui/src/gui/feeds/GxsChannelPostItem.ui
+++ b/retroshare-gui/src/gui/feeds/GxsChannelPostItem.ui
@@ -7,7 +7,7 @@
0
0
1092
- 255
+ 231
@@ -41,10 +41,10 @@
true
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
-
diff --git a/retroshare-gui/src/gui/feeds/GxsCircleItem.ui b/retroshare-gui/src/gui/feeds/GxsCircleItem.ui
index 374e8f84d..7a77f5bda 100644
--- a/retroshare-gui/src/gui/feeds/GxsCircleItem.ui
+++ b/retroshare-gui/src/gui/feeds/GxsCircleItem.ui
@@ -7,7 +7,7 @@
0
0
618
- 128
+ 108
@@ -126,10 +126,10 @@
true
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
-
@@ -317,7 +317,7 @@
Revoke
-
+
:/images/cancel.png :/images/cancel.png
diff --git a/retroshare-gui/src/gui/feeds/GxsForumGroupItem.ui b/retroshare-gui/src/gui/feeds/GxsForumGroupItem.ui
index aee325282..152d4951d 100644
--- a/retroshare-gui/src/gui/feeds/GxsForumGroupItem.ui
+++ b/retroshare-gui/src/gui/feeds/GxsForumGroupItem.ui
@@ -126,10 +126,10 @@
true
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
-
diff --git a/retroshare-gui/src/gui/feeds/GxsForumMsgItem.ui b/retroshare-gui/src/gui/feeds/GxsForumMsgItem.ui
index 4a080effb..89aec4e1b 100644
--- a/retroshare-gui/src/gui/feeds/GxsForumMsgItem.ui
+++ b/retroshare-gui/src/gui/feeds/GxsForumMsgItem.ui
@@ -99,10 +99,10 @@
true
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
-
diff --git a/retroshare-gui/src/gui/feeds/MsgItem.ui b/retroshare-gui/src/gui/feeds/MsgItem.ui
index cf0a3ac08..b195e80c6 100644
--- a/retroshare-gui/src/gui/feeds/MsgItem.ui
+++ b/retroshare-gui/src/gui/feeds/MsgItem.ui
@@ -6,8 +6,8 @@
0
0
- 777
- 234
+ 707
+ 180
@@ -35,10 +35,10 @@
true
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
-
diff --git a/retroshare-gui/src/gui/feeds/PeerItem.ui b/retroshare-gui/src/gui/feeds/PeerItem.ui
index 2433cdf09..603002f7f 100644
--- a/retroshare-gui/src/gui/feeds/PeerItem.ui
+++ b/retroshare-gui/src/gui/feeds/PeerItem.ui
@@ -7,7 +7,7 @@
0
0
476
- 328
+ 283
@@ -38,10 +38,10 @@
true
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
diff --git a/retroshare-gui/src/gui/feeds/PostedGroupItem.ui b/retroshare-gui/src/gui/feeds/PostedGroupItem.ui
index 6c043972f..b525facb9 100644
--- a/retroshare-gui/src/gui/feeds/PostedGroupItem.ui
+++ b/retroshare-gui/src/gui/feeds/PostedGroupItem.ui
@@ -7,7 +7,7 @@
0
0
618
- 195
+ 161
@@ -126,10 +126,10 @@
true
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
-
diff --git a/retroshare-gui/src/gui/feeds/SecurityIpItem.ui b/retroshare-gui/src/gui/feeds/SecurityIpItem.ui
index 53f4172b9..11a742880 100644
--- a/retroshare-gui/src/gui/feeds/SecurityIpItem.ui
+++ b/retroshare-gui/src/gui/feeds/SecurityIpItem.ui
@@ -7,7 +7,7 @@
0
0
763
- 205
+ 185
@@ -38,10 +38,10 @@
true
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
diff --git a/retroshare-gui/src/gui/feeds/SecurityItem.ui b/retroshare-gui/src/gui/feeds/SecurityItem.ui
index 585c18e00..bc0524d18 100644
--- a/retroshare-gui/src/gui/feeds/SecurityItem.ui
+++ b/retroshare-gui/src/gui/feeds/SecurityItem.ui
@@ -7,7 +7,7 @@
0
0
1015
- 326
+ 246
@@ -35,10 +35,10 @@
true
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
diff --git a/retroshare-gui/src/gui/feeds/SubFileItem.ui b/retroshare-gui/src/gui/feeds/SubFileItem.ui
index d869fc7b8..8fdd8230d 100644
--- a/retroshare-gui/src/gui/feeds/SubFileItem.ui
+++ b/retroshare-gui/src/gui/feeds/SubFileItem.ui
@@ -29,10 +29,10 @@
-
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
-
diff --git a/retroshare-gui/src/gui/gxs/GxsCommentDialog.cpp b/retroshare-gui/src/gui/gxs/GxsCommentDialog.cpp
index afc676bdd..1233b3100 100644
--- a/retroshare-gui/src/gui/gxs/GxsCommentDialog.cpp
+++ b/retroshare-gui/src/gui/gxs/GxsCommentDialog.cpp
@@ -131,19 +131,15 @@ void GxsCommentDialog::idChooserReady()
void GxsCommentDialog::voterSelectionChanged( int index )
{
-#ifdef DEBUG_COMMENT_DIALOG
std::cerr << "GxsCommentDialog::voterSelectionChanged(" << index << ")";
std::cerr << std::endl;
-#endif
RsGxsId voterId;
switch (ui->idChooser->getChosenId(voterId)) {
case GxsIdChooser::KnowId:
case GxsIdChooser::UnKnowId:
-#ifdef DEBUG_COMMENT_DIALOG
- std::cerr << "GxsCommentDialog::voterSelectionChanged() => " << voterId;
+ std::cerr << "GxsCommentDialog::voterSelectionChanged() => " << voterId;
std::cerr << std::endl;
-#endif
ui->treeWidget->setVoteId(voterId);
break;
@@ -164,10 +160,8 @@ void GxsCommentDialog::setCommentHeader(QWidget *header)
return;
}
-#ifdef DEBUG_COMMENT_DIALOG
- std::cerr << "GxsCommentDialog::setCommentHeader() Adding header to ui,postFrame";
+ std::cerr << "GxsCommentDialog::setCommentHeader() Adding header to ui,postFrame";
std::cerr << std::endl;
-#endif
//header->setParent(ui->postFrame);
//ui->postFrame->setVisible(true);
diff --git a/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.cpp b/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.cpp
index 277b11e4f..bd230fe9c 100644
--- a/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.cpp
+++ b/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.cpp
@@ -21,8 +21,6 @@
#include "GxsCommentTreeWidget.h"
#include "gui/common/FilesDefs.h"
-#include "gui/Identity/IdDialog.h"
-#include "gui/MainWindow.h"
#include "gui/common/RSElidedItemDelegate.h"
#include "gui/common/RSTreeWidgetItem.h"
#include "gui/gxs/GxsCreateCommentDialog.h"
@@ -348,10 +346,6 @@ void GxsCommentTreeWidget::customPopUpMenu(const QPoint& point)
action = contextMnu.addAction(FilesDefs::getIconFromQtResourcePath(IMAGE_VOTEDOWN), tr("Vote Down"), this, SLOT(voteDown()));
action->setDisabled(!item || mCurrentCommentMsgId.isNull() || mVoterId.isNull());
- contextMnu.addSeparator();
-
- action = contextMnu.addAction(tr("Show Author"), this, SLOT(showAuthor()));
- action->setDisabled(!item || mCurrentCommentMsgId.isNull() || mVoterId.isNull());
if (!mCurrentCommentMsgId.isNull())
{
@@ -470,19 +464,6 @@ void GxsCommentTreeWidget::replyToComment()
pcc.exec();
}
-
-void GxsCommentTreeWidget::showAuthor()
-{
- /* window will destroy itself! */
- IdDialog *idDialog = dynamic_cast
(MainWindow::getPage(MainWindow::People));
-
- if (!idDialog)
- return ;
-
- MainWindow::showWindow(MainWindow::People);
- idDialog->navigate(RsGxsId(mCurrentCommentAuthorId));
-}
-
void GxsCommentTreeWidget::copyComment()
{
QString txt = dynamic_cast(sender())->data().toString();
diff --git a/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.h b/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.h
index 5f52459a9..43a6f55a5 100644
--- a/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.h
+++ b/retroshare-gui/src/gui/gxs/GxsCommentTreeWidget.h
@@ -72,7 +72,6 @@ public slots:
void makeComment();
void replyToComment();
- void showAuthor();
void copyComment();
diff --git a/retroshare-gui/src/gui/gxs/GxsGroupFrameDialog.cpp b/retroshare-gui/src/gui/gxs/GxsGroupFrameDialog.cpp
index 069c51b79..9d8d66d61 100644
--- a/retroshare-gui/src/gui/gxs/GxsGroupFrameDialog.cpp
+++ b/retroshare-gui/src/gui/gxs/GxsGroupFrameDialog.cpp
@@ -466,9 +466,7 @@ void GxsGroupFrameDialog::groupTreeCustomPopupMenu(QPoint point)
uint32_t current_store_time = checkDelay(mInterface->getStoragePeriod(mGroupId))/86400 ;
uint32_t current_sync_time = checkDelay(mInterface->getSyncPeriod(mGroupId))/86400 ;
-#ifdef DEBUG_GROUPFRAMEDIALOG
std::cerr << "Got sync=" << current_sync_time << ". store=" << current_store_time << std::endl;
-#endif
QAction *actnn = NULL;
QMenu *ctxMenu2 = contextMnu.addMenu(tr("Synchronise posts of last...")) ;
diff --git a/retroshare-gui/src/gui/gxs/GxsIdDetails.cpp b/retroshare-gui/src/gui/gxs/GxsIdDetails.cpp
index 5c1c11b49..b1961a6e6 100644
--- a/retroshare-gui/src/gui/gxs/GxsIdDetails.cpp
+++ b/retroshare-gui/src/gui/gxs/GxsIdDetails.cpp
@@ -85,27 +85,23 @@ void ReputationItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem
{
Q_ASSERT(index.isValid());
- QStyleOptionViewItem opt(option);
+ QStyleOptionViewItemV4 opt = option;
initStyleOption(&opt, index);
// disable default icon
opt.icon = QIcon();
// draw default item
QApplication::style()->drawControl(QStyle::CE_ItemViewItem, &opt, painter, 0);
- const QRect r = option.rect;
+ const QRect r = option.rect;
// get pixmap
- auto v = index.data(Qt::DecorationRole);
-
- if(!v.canConvert(QVariant::Int))
- return;
-
- unsigned int icon_index = qvariant_cast(v);
+ unsigned int icon_index = qvariant_cast(index.data(Qt::DecorationRole));
if(icon_index > mMaxLevelToDisplay)
return ;
- QIcon icon = GxsIdDetails::getReputationIcon( RsReputationLevel(icon_index), 0xff );
+ QIcon icon = GxsIdDetails::getReputationIcon(
+ RsReputationLevel(icon_index), 0xff );
QPixmap pix = icon.pixmap(r.size());
@@ -114,12 +110,6 @@ void ReputationItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem
painter->drawPixmap(r.topLeft() + p, pix);
}
-QSize ReputationItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex & /*index*/) const
-{
- int s = 1.5*QFontMetricsF(option.font).height();
-
- return QSize(s,s);
-}
/* The global object */
GxsIdDetails *GxsIdDetails::mInstance = NULL ;
diff --git a/retroshare-gui/src/gui/gxs/GxsIdDetails.h b/retroshare-gui/src/gui/gxs/GxsIdDetails.h
index 122b5e089..05568aa3a 100644
--- a/retroshare-gui/src/gui/gxs/GxsIdDetails.h
+++ b/retroshare-gui/src/gui/gxs/GxsIdDetails.h
@@ -52,8 +52,7 @@ public:
ReputationItemDelegate(RsReputationLevel max_level_to_display) :
mMaxLevelToDisplay(static_cast(max_level_to_display)) {}
- virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
- virtual QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex & /*index*/) const override;
+ virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
private:
uint32_t mMaxLevelToDisplay ;
diff --git a/retroshare-gui/src/gui/gxs/GxsMessageFrameWidget.cpp b/retroshare-gui/src/gui/gxs/GxsMessageFrameWidget.cpp
index 8a42911ac..1f55f514f 100644
--- a/retroshare-gui/src/gui/gxs/GxsMessageFrameWidget.cpp
+++ b/retroshare-gui/src/gui/gxs/GxsMessageFrameWidget.cpp
@@ -35,7 +35,7 @@ GxsMessageFrameWidget::GxsMessageFrameWidget(RsGxsIfaceHelper *ifaceImpl, QWidge
mAcknowledgeReadStatusToken = 0;
/* Add dummy entry to store waiting status */
- mStateHelper->addWidget(mTokenTypeAcknowledgeReadStatus, NULL, UIStates());
+ mStateHelper->addWidget(mTokenTypeAcknowledgeReadStatus, NULL, 0);
}
GxsMessageFrameWidget::~GxsMessageFrameWidget()
diff --git a/retroshare-gui/src/gui/gxschannels/CreateGxsChannelMsg.ui b/retroshare-gui/src/gui/gxschannels/CreateGxsChannelMsg.ui
index 01e58118f..510da23a1 100644
--- a/retroshare-gui/src/gui/gxschannels/CreateGxsChannelMsg.ui
+++ b/retroshare-gui/src/gui/gxschannels/CreateGxsChannelMsg.ui
@@ -191,8 +191,8 @@
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt; font-weight:600;">Attachments:</span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/images/feedback_arrow.png" /><span style=" font-family:''; font-size:;"> Use Drag and Drop / Add Files button, to Hash new files.</span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/images/feedback_arrow.png" /><span style=" font-family:''; font-size:;"> Copy/Paste RetroShare links from your shares</span></p></body></html>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/images/feedback_arrow.png" /><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;"> Use Drag and Drop / Add Files button, to Hash new files.</span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/images/feedback_arrow.png" /><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;"> Copy/Paste RetroShare links from your shares</span></p></body></html>
Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
@@ -515,8 +515,8 @@ p, li { white-space: pre-wrap; }
0
0
- 98
- 30
+ 63
+ 24
@@ -611,11 +611,6 @@ p, li { white-space: pre-wrap; }
-
- RSComboBox
- QComboBox
-
-
ChannelPostThumbnailView
QWidget
@@ -634,10 +629,15 @@ p, li { white-space: pre-wrap; }
1
+
+ RSComboBox
+ QComboBox
+
+
-
+
diff --git a/retroshare-gui/src/gui/gxschannels/GxsChannelPostFilesModel.cpp b/retroshare-gui/src/gui/gxschannels/GxsChannelPostFilesModel.cpp
index 806fcaa69..0796b6ce1 100644
--- a/retroshare-gui/src/gui/gxschannels/GxsChannelPostFilesModel.cpp
+++ b/retroshare-gui/src/gui/gxschannels/GxsChannelPostFilesModel.cpp
@@ -499,9 +499,8 @@ void RsGxsChannelPostFilesModel::update_files(std::set& add
else
++afit;
}
-#ifdef DEBUG_CHANNEL_FILES_MODEL
+
RsDbg() << " Remains: " << added_files.size() << " added files and " << removed_files.size() << " removed files" ;
-#endif
// 2 - add whatever file remains,
diff --git a/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.cpp b/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.cpp
index 560c37577..16cf96195 100644
--- a/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.cpp
+++ b/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.cpp
@@ -309,24 +309,6 @@ void ZoomableLabel::wheelEvent(QWheelEvent *me)
updateView();
}
-#if QT_VERSION >= QT_VERSION_CHECK (6, 0, 0)
-void ZoomableLabel::enterEvent(QEnterEvent* /*event*/)
-#else
-void ZoomableLabel::enterEvent(QEvent* /*event*/)
-#endif
-{
- if (mUseStyleSheet) {
- setStyleSheet("QLabel { border: 2px solid #039bd5; }");
- }
-}
-
-void ZoomableLabel::ZoomableLabel::leaveEvent(QEvent* /*event*/)
-{
- if (mUseStyleSheet) {
- setStyleSheet("QLabel { border: 2px solid #CCCCCC; border-radius: 3px; }");
- }
-}
-
QPixmap ZoomableLabel::extractCroppedScaledPicture() const
{
QRect rect(mCenterX - 0.5 * width()*mZoomFactor, mCenterY - 0.5 * height()*mZoomFactor, width()*mZoomFactor, height()*mZoomFactor);
diff --git a/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.h b/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.h
index da30f2083..7ee928f9e 100644
--- a/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.h
+++ b/retroshare-gui/src/gui/gxschannels/GxsChannelPostThumbnail.h
@@ -64,12 +64,8 @@ protected:
void resizeEvent(QResizeEvent *ev) override;
void wheelEvent(QWheelEvent *me) override;
-#if QT_VERSION >= QT_VERSION_CHECK (6, 0, 0)
- void enterEvent(QEnterEvent *event) override;
-#else
- void enterEvent(QEvent *event) override;
-#endif
- void leaveEvent(QEvent *event) override;
+ void enterEvent(QEvent * /* ev */ ) override { if(mUseStyleSheet) setStyleSheet("QLabel { border: 2px solid #039bd5; }");}
+ void leaveEvent(QEvent * /* ev */ ) override { if(mUseStyleSheet) setStyleSheet("QLabel { border: 2px solid #CCCCCC; border-radius: 3px; }");}
bool mUseStyleSheet;
diff --git a/retroshare-gui/src/gui/gxschannels/GxsChannelPostsModel.cpp b/retroshare-gui/src/gui/gxschannels/GxsChannelPostsModel.cpp
index 8b5b7e707..a42587d85 100644
--- a/retroshare-gui/src/gui/gxschannels/GxsChannelPostsModel.cpp
+++ b/retroshare-gui/src/gui/gxschannels/GxsChannelPostsModel.cpp
@@ -38,7 +38,7 @@
#include "GxsChannelPostFilesModel.h"
//#define DEBUG_CHANNEL_MODEL_DATA
-//#define DEBUG_CHANNEL_MODEL
+#define DEBUG_CHANNEL_MODEL
Q_DECLARE_METATYPE(RsMsgMetaData)
Q_DECLARE_METATYPE(RsGxsChannelPost)
@@ -592,12 +592,10 @@ void RsGxsChannelPostsModel::update_posts(const RsGxsGroupId& group_id)
std::cerr << __PRETTY_FUNCTION__ << " failed to retrieve channel messages for channel " << group_id << std::endl;
return;
}
-#ifdef DEBUG_CHANNEL_MODEL
std::cerr << "Got channel all content for channel " << group_id << std::endl;
std::cerr << " posts : " << posts->size() << std::endl;
std::cerr << " comments: " << comments.size() << std::endl;
std::cerr << " votes : " << votes.size() << std::endl;
-#endif
// 2 - update the model in the UI thread.
diff --git a/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidgetWithModel.cpp b/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidgetWithModel.cpp
index c041e4369..2e292444e 100644
--- a/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidgetWithModel.cpp
+++ b/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidgetWithModel.cpp
@@ -41,7 +41,6 @@
#include "util/DateTime.h"
#include "util/qtthreadsutils.h"
#include "gui/common/FilesDefs.h"
-#include "util/QtVersion.h"
#include "GxsChannelPostsWidgetWithModel.h"
#include "GxsChannelPostsModel.h"
@@ -782,9 +781,7 @@ void GxsChannelPostsWidgetWithModel::handlePostsTreeSizeChange(QSize s,bool forc
return;
int n_columns = std::max(1,(int)floor(s.width() / (mChannelPostsDelegate->cellSize(0,font(),ui->postsTree->width()))));
-#ifdef DEBUG_CHANNEL_POSTS_WIDGET
RsDbg() << "nb columns: " << n_columns << " current count=" << mChannelPostsModel->columnCount() ;
-#endif
// save current post. The setNumColumns() indeed loses selection
@@ -828,9 +825,7 @@ void GxsChannelPostsWidgetWithModel::handleEvent_main_thread(std::shared_ptrmChannelGroupId == groupId())
{
-#ifdef DEBUG_CHANNEL_POSTS_WIDGET
RsDbg() << "Received new message in current channel, msgId=" << e->mChannelMsgId ;
-#endif
RsThread::async([this,E=*e]() // dereferencing to make a copy that will survive while e is deleted by the parent thread.
{
@@ -1047,9 +1042,7 @@ void GxsChannelPostsWidgetWithModel::updateData(bool update_group_data, bool upd
void GxsChannelPostsWidgetWithModel::postChannelPostLoad()
{
-#ifdef DEBUG_CHANNEL_POSTS_WIDGET
std::cerr << "Post channel load..." << std::endl;
-#endif
if (!mNavigatePendingMsgId.isNull())
navigate(mNavigatePendingMsgId);
@@ -1455,7 +1448,7 @@ void GxsChannelPostsWidgetWithModel::switchOnlyUnread(bool)
}
void GxsChannelPostsWidgetWithModel::filterChanged(QString s)
{
- QStringList ql = s.split(' ',QtSkipEmptyParts);
+ QStringList ql = s.split(' ',QString::SkipEmptyParts);
uint32_t count;
mChannelPostsModel->setFilter(ql,ui->showUnread_TB->isChecked(),count);
mChannelFilesModel->setFilter(ql,count);
diff --git a/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidgetWithModel.ui b/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidgetWithModel.ui
index 2740b4654..6bd0fb86b 100644
--- a/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidgetWithModel.ui
+++ b/retroshare-gui/src/gui/gxschannels/GxsChannelPostsWidgetWithModel.ui
@@ -29,10 +29,10 @@
-
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
@@ -402,7 +402,7 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'.AppleSystemUIFont'; font-size:13pt; font-weight:400; font-style:normal;">
+</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Description</span></p></body></html>
diff --git a/retroshare-gui/src/gui/gxsforums/CreateGxsForumMsg.cpp b/retroshare-gui/src/gui/gxsforums/CreateGxsForumMsg.cpp
index 3224b428f..4236b6f04 100644
--- a/retroshare-gui/src/gui/gxsforums/CreateGxsForumMsg.cpp
+++ b/retroshare-gui/src/gui/gxsforums/CreateGxsForumMsg.cpp
@@ -449,7 +449,7 @@ void CreateGxsForumMsg::createMsg()
default:
std::cerr << "CreateGxsForumMsg::createMsg() ERROR GETTING AuthorId!";
std::cerr << std::endl;
- QMessageBox::warning(this, tr("RetroShare"),tr("Congrats, you found a bug!")+" "+QString(__FILE__)+":"+QString::number(__LINE__), QMessageBox::Ok, QMessageBox::Ok);
+ QMessageBox::warning(this, tr("RetroShare"),tr("Congrats, you found a bug!")+" "+QString(__FILE__)+":"+QString(__LINE__), QMessageBox::Ok, QMessageBox::Ok);
return;
}//switch (ui->idChooser->getChosenId(authorId))
diff --git a/retroshare-gui/src/gui/gxsforums/CreateGxsForumMsg.ui b/retroshare-gui/src/gui/gxsforums/CreateGxsForumMsg.ui
index bae7223e3..10105a630 100644
--- a/retroshare-gui/src/gui/gxsforums/CreateGxsForumMsg.ui
+++ b/retroshare-gui/src/gui/gxsforums/CreateGxsForumMsg.ui
@@ -7,7 +7,7 @@
0
0
640
- 551
+ 465
@@ -34,14 +34,7 @@
0
-
-
+
-
@@ -139,12 +132,17 @@
-
+
+
+ MS Sans Serif
+
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:''; font-size:; font-weight:400; font-style:normal;">
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html>
+</style></head><body style=" font-family:'MS Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8.25pt;"><br /></p></body></html>
@@ -157,10 +155,10 @@ p, li { white-space: pre-wrap; }
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
@@ -384,11 +382,6 @@ p, li { white-space: pre-wrap; }
-
- MimeTextEdit
- QTextEdit
- gui/common/MimeTextEdit.h
-
GxsIdChooser
QComboBox
@@ -406,10 +399,15 @@ p, li { white-space: pre-wrap; }
1
+
+ MimeTextEdit
+ QTextEdit
+ gui/common/MimeTextEdit.h
+
-
+
diff --git a/retroshare-gui/src/gui/gxsforums/GxsForumModel.cpp b/retroshare-gui/src/gui/gxsforums/GxsForumModel.cpp
index 18f518749..b68a50173 100644
--- a/retroshare-gui/src/gui/gxsforums/GxsForumModel.cpp
+++ b/retroshare-gui/src/gui/gxsforums/GxsForumModel.cpp
@@ -46,7 +46,6 @@ RsGxsForumModel::RsGxsForumModel(QObject *parent)
: QAbstractItemModel(parent), mUseChildTS(false),mFilteringEnabled(false),mTreeMode(TREE_MODE_TREE)
{
initEmptyHierarchy(mPosts);
- mFont = QApplication::font();
}
void RsGxsForumModel::preMods()
@@ -400,7 +399,7 @@ QVariant RsGxsForumModel::data(const QModelIndex &index, int role) const
if(role == Qt::FontRole)
{
- QFont font = mFont;
+ QFont font ;
font.setBold( (fmpe.mPostFlags & ForumModelPostEntry::FLAG_POST_HAS_UNREAD_CHILDREN) || IS_MSG_UNREAD(fmpe.mMsgStatus));
return QVariant(font);
}
@@ -534,15 +533,6 @@ void RsGxsForumModel::setFilter(int column,const QStringList& strings,uint32_t&
postMods();
}
-void RsGxsForumModel::setFont(const QFont &font)
-{
- preMods();
-
- mFont = font;
-
- postMods();
-}
-
QVariant RsGxsForumModel::missingRole(const ForumModelPostEntry& fmpe,int /*column*/) const
{
if(fmpe.mPostFlags & ForumModelPostEntry::FLAG_POST_IS_MISSING)
@@ -572,7 +562,7 @@ QVariant RsGxsForumModel::toolTipRole(const ForumModelPostEntry& fmpe,int column
if(!GxsIdDetails::MakeIdDesc(fmpe.mAuthorId, true, str, icons, comment,GxsIdDetails::ICON_TYPE_AVATAR))
return QVariant();
- int S = QFontMetricsF(mFont).height();
+ int S = QFontMetricsF(QApplication::font()).height();
QImage pix( (*icons.begin()).pixmap(QSize(5*S,5*S)).toImage());
QString embeddedImage;
@@ -609,7 +599,7 @@ QVariant RsGxsForumModel::backgroundRole(const ForumModelPostEntry& fmpe,int /*c
QVariant RsGxsForumModel::sizeHintRole(int col) const
{
- float factor = QFontMetricsF(mFont).height()/14.0f ;
+ float factor = QFontMetricsF(QApplication::font()).height()/14.0f ;
switch(col)
{
@@ -660,7 +650,7 @@ QVariant RsGxsForumModel::displayRole(const ForumModelPostEntry& fmpe,int col) c
case COLUMN_THREAD_TITLE: if(fmpe.mPostFlags & ForumModelPostEntry::FLAG_POST_IS_REDACTED)
return QVariant(tr("[ ... Redacted message ... ]"));
// else if(fmpe.mPostFlags & ForumModelPostEntry::FLAG_POST_IS_PINNED)
-// return QVariant( QString(" ").arg(QFontMetricsF(mFont).height())
+// return QVariant( QString(" ").arg(QFontMetricsF(QFont()).height())
// + QString::fromUtf8(fmpe.mTitle.c_str()));
else
return QVariant(QString::fromUtf8(fmpe.mTitle.c_str()));
diff --git a/retroshare-gui/src/gui/gxsforums/GxsForumModel.h b/retroshare-gui/src/gui/gxsforums/GxsForumModel.h
index 10248101f..c69013c3e 100644
--- a/retroshare-gui/src/gui/gxsforums/GxsForumModel.h
+++ b/retroshare-gui/src/gui/gxsforums/GxsForumModel.h
@@ -22,7 +22,6 @@
#include "retroshare/rsgxsifacetypes.h"
#include
#include
-#include
struct ForumModelPostEntry: public ForumPostEntry
{
@@ -77,7 +76,6 @@ public:
QModelIndex getIndexOfMessage(const RsGxsMessageId& mid) const;
static const QString FilterString ;
- void setFont(const QFont &font);
std::vector > getPostVersions(const RsGxsMessageId& mid) const;
@@ -187,7 +185,6 @@ private:
QColor mBackgroundColorPinned;
QColor mBackgroundColorFiltered;
- QFont mFont;
friend class const_iterator;
};
diff --git a/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.cpp b/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.cpp
index 6c87e8a04..11d04fdd8 100644
--- a/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.cpp
+++ b/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.cpp
@@ -321,6 +321,10 @@ GxsForumThreadWidget::GxsForumThreadWidget(const RsGxsGroupId &forumId, QWidget
float f = QFontMetricsF(font()).height()/14.0f ;
+ QFontMetricsF fontMetrics(ui->threadTreeWidget->font());
+ int iconHeight = fontMetrics.height() * 1.4;
+ ui->threadTreeWidget->setIconSize(QSize(iconHeight, iconHeight));
+
/* Set header resize modes and initial section sizes */
QHeaderView * ttheader = ui->threadTreeWidget->header () ;
@@ -376,10 +380,6 @@ GxsForumThreadWidget::GxsForumThreadWidget(const RsGxsGroupId &forumId, QWidget
[this](std::shared_ptr event)
{ RsQThreadUtils::postToObject([=](){ handleEvent_main_thread(event); }, this ); },
mEventHandlerId, RsEventType::GXS_FORUMS );
-
- mFontSizeHandler.registerFontSize(ui->threadTreeWidget, 1.4f, [this](QAbstractItemView *view, int) {
- mThreadModel->setFont(view->font());
- });
}
void GxsForumThreadWidget::handleEvent_main_thread(std::shared_ptr event)
@@ -1846,7 +1846,7 @@ void GxsForumThreadWidget::filterColumnChanged(int column)
void GxsForumThreadWidget::filterItems(const QString& text)
{
- QStringList lst = text.split(" ",QtSkipEmptyParts) ;
+ QStringList lst = text.split(" ",QString::SkipEmptyParts) ;
int filterColumn = ui->filterLineEdit->currentFilter();
diff --git a/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.h b/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.h
index 8e6b1c01b..322c64fae 100644
--- a/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.h
+++ b/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.h
@@ -26,7 +26,6 @@
#include "gui/gxs/GxsMessageFrameWidget.h"
#include
#include "gui/gxs/GxsIdDetails.h"
-#include "util/FontSizeHandler.h"
class QSortFilterProxyModel;
class QTreeWidgetItem;
@@ -235,8 +234,6 @@ private:
QSortFilterProxyModel *mThreadProxyModel;
QList mSavedExpandedMessages;
- FontSizeHandler mFontSizeHandler;
-
Ui::GxsForumThreadWidget *ui;
RsEventsHandlerId_t mEventHandlerId;
};
diff --git a/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.ui b/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.ui
index 439234047..5a9c51e93 100644
--- a/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.ui
+++ b/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.ui
@@ -48,10 +48,10 @@
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
@@ -578,9 +578,10 @@
- LineEditClear
- QLineEdit
- gui/common/LineEditClear.h
+ ElidedLabel
+ QLabel
+
+ 1
GxsIdLabel
@@ -588,15 +589,9 @@
- ElidedLabel
- QLabel
-
- 1
-
-
- SubscribeToolButton
- QToolButton
- gui/common/SubscribeToolButton.h
+ LineEditClear
+ QLineEdit
+ gui/common/LineEditClear.h
RSImageBlockWidget
@@ -614,6 +609,11 @@
QComboBox
+
+ SubscribeToolButton
+ QToolButton
+ gui/common/SubscribeToolButton.h
+
diff --git a/retroshare-gui/src/gui/help/browser/helpbrowser.cpp b/retroshare-gui/src/gui/help/browser/helpbrowser.cpp
index 0da10e9d9..b21ba2cc5 100644
--- a/retroshare-gui/src/gui/help/browser/helpbrowser.cpp
+++ b/retroshare-gui/src/gui/help/browser/helpbrowser.cpp
@@ -117,7 +117,7 @@ HelpBrowser::~HelpBrowser()
QString
HelpBrowser::language()
{
- QString lang = RsApplication::language();
+ QString lang = Rshare::language();
if (!QDir(":/help/" + lang).exists())
lang = "en";
return lang;
@@ -348,7 +348,7 @@ HelpBrowser::find(bool forward)
return;
}
- QTextDocument::FindFlags flags = QTextDocument::FindFlags();
+ QTextDocument::FindFlags flags = 0;
QTextCursor cursor = ui.txtBrowser->textCursor();
QString searchPhrase = ui.lineFind->text();
diff --git a/retroshare-gui/src/gui/help/browser/helptextbrowser.cpp b/retroshare-gui/src/gui/help/browser/helptextbrowser.cpp
index d9b012775..a4b70058f 100644
--- a/retroshare-gui/src/gui/help/browser/helptextbrowser.cpp
+++ b/retroshare-gui/src/gui/help/browser/helptextbrowser.cpp
@@ -54,7 +54,7 @@ HelpTextBrowser::loadResource(int type, const QUrl &name)
/* Fall back to English if there is no translation of the specified help
* page in the current language. */
if (!name.path().contains("/")) {
- QString language = RsApplication::language();
+ QString language = Rshare::language();
if (!QDir(":/help/" + language).exists())
language = "en";
helpPath += language + "/";
diff --git a/retroshare-gui/src/gui/icons/invite64.png b/retroshare-gui/src/gui/icons/invite64.png
index f07e0fb4f..8ab342a7b 100644
Binary files a/retroshare-gui/src/gui/icons/invite64.png and b/retroshare-gui/src/gui/icons/invite64.png differ
diff --git a/retroshare-gui/src/gui/icons/png/invite.png b/retroshare-gui/src/gui/icons/png/invite.png
index 7f0baf91b..5fda4753e 100644
Binary files a/retroshare-gui/src/gui/icons/png/invite.png and b/retroshare-gui/src/gui/icons/png/invite.png differ
diff --git a/retroshare-gui/src/gui/icons/svg/invite.svg b/retroshare-gui/src/gui/icons/svg/invite.svg
index 8a25949a8..afcefbd72 100644
--- a/retroshare-gui/src/gui/icons/svg/invite.svg
+++ b/retroshare-gui/src/gui/icons/svg/invite.svg
@@ -2,28 +2,25 @@
image/svg+xml
+ d="M 64,32 C 64,14.327 49.673,0 32,0 14.327,0 0,14.327 0,32 0,49.673 14.327,64 32,64 49.673,64 64,49.673 64,32" />
\ No newline at end of file
diff --git a/retroshare-gui/src/gui/images.qrc b/retroshare-gui/src/gui/images.qrc
index 473fd4844..de468d270 100644
--- a/retroshare-gui/src/gui/images.qrc
+++ b/retroshare-gui/src/gui/images.qrc
@@ -208,7 +208,6 @@
images/logo/logo_info.png
images/logo/logo_splash.png
images/logo/logo_web_nobackground.png
- images/logo/logo_web_nobackground_black.png
images/mail-signed.png
images/mail-signature-unknown.png
images/mailforward24-hover.png
diff --git a/retroshare-gui/src/gui/images/logo/logo_web_nobackground_black.png b/retroshare-gui/src/gui/images/logo/logo_web_nobackground_black.png
deleted file mode 100644
index 1be6fbdc0..000000000
Binary files a/retroshare-gui/src/gui/images/logo/logo_web_nobackground_black.png and /dev/null differ
diff --git a/retroshare-gui/src/gui/msgs/MessageComposer.cpp b/retroshare-gui/src/gui/msgs/MessageComposer.cpp
index 47da8e913..4e0219b0c 100644
--- a/retroshare-gui/src/gui/msgs/MessageComposer.cpp
+++ b/retroshare-gui/src/gui/msgs/MessageComposer.cpp
@@ -36,7 +36,6 @@
#include
#include
#include
-#include
#include
@@ -300,7 +299,7 @@ MessageComposer::MessageComposer(QWidget *parent, Qt::WindowFlags flags)
QFontDatabase db;
foreach(int size, db.standardSizes())
- ui.comboSize->addItem(QString::number(size), size);
+ ui.comboSize->addItem(QString::number(size));
QStyleOptionComboBox opt; QSize sh;
opt.initFrom(ui.comboSize);
@@ -409,10 +408,6 @@ MessageComposer::MessageComposer(QWidget *parent, Qt::WindowFlags flags)
ui.hashBox->setDropWidget(this);
ui.hashBox->setAutoHide(true);
- mMessageFontSizeHandler.registerFontSize(ui.msgText, [this, db] (QWidget*, int fontSize) {
- ui.comboSize->setCurrentIndex(ui.comboSize->findData(fontSize));
- });
-
#if QT_VERSION < 0x040700
// embedded images are not supported before QT 4.7.0
ui.imagebtn->setVisible(false);
diff --git a/retroshare-gui/src/gui/msgs/MessageComposer.h b/retroshare-gui/src/gui/msgs/MessageComposer.h
index 27bf28458..040681095 100644
--- a/retroshare-gui/src/gui/msgs/MessageComposer.h
+++ b/retroshare-gui/src/gui/msgs/MessageComposer.h
@@ -28,7 +28,6 @@
#include "ui_MessageComposer.h"
#include "gui/msgs/MessageInterface.h"
-#include "util/FontSizeHandler.h"
class QAction;
struct RsIdentityDetails;
@@ -268,8 +267,6 @@ private:
bool has_gxs;
bool mAlreadySent; // prevents a Qt bug that calls the same action twice.
- MessageFontSizeHandler mMessageFontSizeHandler;
-
/** Qt Designer generated object */
Ui::MessageComposer ui;
diff --git a/retroshare-gui/src/gui/msgs/MessageComposer.ui b/retroshare-gui/src/gui/msgs/MessageComposer.ui
index a5ff266d4..9b5e8605c 100644
--- a/retroshare-gui/src/gui/msgs/MessageComposer.ui
+++ b/retroshare-gui/src/gui/msgs/MessageComposer.ui
@@ -349,10 +349,10 @@
- QFrame::StyledPanel
+ QFrame::Box
- QFrame::Raised
+ QFrame::Sunken
@@ -1400,11 +1400,6 @@ border-image: url(:/images/closepressed.png)
-
- RSComboBox
- QComboBox
-
-
FriendSelectionWidget
QWidget
@@ -1416,16 +1411,21 @@ border-image: url(:/images/closepressed.png)
QComboBox
+
+ HashBox
+ QScrollArea
+
+ 1
+
MimeTextEdit
QTextEdit
gui/common/MimeTextEdit.h
- HashBox
- QScrollArea
-
- 1
+ RSComboBox
+ QComboBox
+
diff --git a/retroshare-gui/src/gui/msgs/MessageModel.cpp b/retroshare-gui/src/gui/msgs/MessageModel.cpp
index dc2f16c7c..6116e42b4 100644
--- a/retroshare-gui/src/gui/msgs/MessageModel.cpp
+++ b/retroshare-gui/src/gui/msgs/MessageModel.cpp
@@ -57,7 +57,6 @@ RsMessageModel::RsMessageModel(QObject *parent)
mQuickViewFilter = QUICK_VIEW_ALL;
mFilterType = FILTER_TYPE_NONE;
mFilterStrings.clear();
- mFont = QApplication::font();
}
void RsMessageModel::preMods()
@@ -210,8 +209,6 @@ QVariant RsMessageModel::data(const QModelIndex &index, int role) const
std::cerr << "calling data(" << index << ") role=" << role << std::endl;
#endif
- int coln = index.column();
-
if(!index.isValid())
return QVariant();
@@ -249,19 +246,11 @@ QVariant RsMessageModel::data(const QModelIndex &index, int role) const
if(role == Qt::FontRole)
{
- QFont font = mFont;
+ QFont font ;
font.setBold(fmpe.msgflags & (RS_MSG_NEW | RS_MSG_UNREAD_BY_USER));
return QVariant(font);
}
-
- if (role == Qt::TextAlignmentRole)
- {
- if((coln == COLUMN_THREAD_ATTACHMENT))
- return int( Qt::AlignHCenter | Qt::AlignVCenter);
- else
- return QVariant();
- }
#ifdef DEBUG_MESSAGE_MODEL
std::cerr << " [ok]" << std::endl;
@@ -405,15 +394,6 @@ void RsMessageModel::setFilter(FilterType filter_type, const QStringList& string
emit dataChanged(createIndex(0,0),createIndex(rowCount()-1,RsMessageModel::columnCount()-1));
}
-void RsMessageModel::setFont(const QFont &font)
-{
- mFont = font;
-
- if (rowCount() > 0) {
- emit dataChanged(createIndex(0,0), createIndex(rowCount() - 1, RsMessageModel::columnCount() - 1));
- }
-}
-
QVariant RsMessageModel::toolTipRole(const Rs::Msgs::MsgInfoSummary& fmpe,int column) const
{
if(column == COLUMN_THREAD_AUTHOR || column == COLUMN_THREAD_TO)
@@ -450,7 +430,7 @@ QVariant RsMessageModel::backgroundRole(const Rs::Msgs::MsgInfoSummary &/*fmpe*/
QVariant RsMessageModel::sizeHintRole(int col) const
{
- float factor = QFontMetricsF(mFont).height()/14.0f ;
+ float factor = QFontMetricsF(QApplication::font()).height()/14.0f ;
switch(col)
{
diff --git a/retroshare-gui/src/gui/msgs/MessageModel.h b/retroshare-gui/src/gui/msgs/MessageModel.h
index 3bbd6ee31..d23b21f86 100644
--- a/retroshare-gui/src/gui/msgs/MessageModel.h
+++ b/retroshare-gui/src/gui/msgs/MessageModel.h
@@ -22,7 +22,6 @@
#include
#include
-#include
#include "retroshare/rsmsgs.h"
@@ -105,7 +104,6 @@ public:
void setQuickViewFilter(QuickViewFilter fn) ;
void setFilter(FilterType filter_type, const QStringList& strings) ;
- void setFont(const QFont &font);
int rowCount(const QModelIndex& parent = QModelIndex()) const override;
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
@@ -186,7 +184,6 @@ private:
QuickViewFilter mQuickViewFilter ;
QStringList mFilterStrings;
FilterType mFilterType;
- QFont mFont;
std::vector mMessages;
std::map mMessagesMap;
diff --git a/retroshare-gui/src/gui/msgs/MessageWidget.cpp b/retroshare-gui/src/gui/msgs/MessageWidget.cpp
index f4be23597..0d2e934f2 100644
--- a/retroshare-gui/src/gui/msgs/MessageWidget.cpp
+++ b/retroshare-gui/src/gui/msgs/MessageWidget.cpp
@@ -640,7 +640,7 @@ void MessageWidget::fill(const std::string &msgId)
ui.trans_ToText->setText(to_text);
- int recipientsCount = ui.trans_ToText->toPlainText().split(QRegExp("(\\s|\\n|\\r)+"), QtSkipEmptyParts).count();
+ int recipientsCount = ui.trans_ToText->toPlainText().split(QRegExp("(\\s|\\n|\\r)+"), QString::SkipEmptyParts).count();
ui.expandButton->setText( QString::number(recipientsCount)+ " " + tr("more"));
if (recipientsCount >=20) {
diff --git a/retroshare-gui/src/gui/msgs/MessageWidget.ui b/retroshare-gui/src/gui/msgs/MessageWidget.ui
index cd4a7c401..de580d7e5 100644
--- a/retroshare-gui/src/gui/msgs/MessageWidget.ui
+++ b/retroshare-gui/src/gui/msgs/MessageWidget.ui
@@ -6,7 +6,7 @@
0
0
- 738
+ 698
539
@@ -59,6 +59,11 @@
0
+
+
+ 9
+
+
Qt::LeftToRight
@@ -206,6 +211,11 @@
0
+
+
+ 9
+
+
Tags:
@@ -222,6 +232,11 @@
0
+
+
+ 9
+
+
Subject:
@@ -238,6 +253,11 @@
0
+
+
+ 9
+
+
Cc:
@@ -257,6 +277,11 @@
0
+
+
+ 9
+
+
Bcc:
@@ -273,6 +298,11 @@
0
+
+
+ 9
+
+
To:
@@ -291,6 +321,7 @@
+ 9
75
true
@@ -342,6 +373,11 @@
16777215
+
+
+ 9
+
+
true
@@ -380,6 +416,11 @@
0
+
+
+ 9
+
+
From:
@@ -819,8 +860,8 @@
-
+
diff --git a/retroshare-gui/src/gui/msgs/MessagesDialog.cpp b/retroshare-gui/src/gui/msgs/MessagesDialog.cpp
index 78493e5a7..be9eedf6b 100644
--- a/retroshare-gui/src/gui/msgs/MessagesDialog.cpp
+++ b/retroshare-gui/src/gui/msgs/MessagesDialog.cpp
@@ -306,23 +306,6 @@ MessagesDialog::MessagesDialog(QWidget *parent)
mTagEventHandlerId = 0;
rsEvents->registerEventsHandler( [this](std::shared_ptr event) { RsQThreadUtils::postToObject( [this,event]() { handleTagEvent_main_thread(event); }); }, mEventHandlerId, RsEventType::MAIL_TAG );
-
- mFontSizeHandler.registerFontSize(ui.listWidget, 1.5f, [this] (QAbstractItemView*, int fontSize) {
- // Set new font size on all items
- QList rows;
- rows << ROW_INBOX << ROW_OUTBOX << ROW_DRAFTBOX;
-
- foreach (int row, rows) {
- QListWidgetItem *item = ui.listWidget->item(row);
- QFont font = item->font();
- font.setPointSize(fontSize);
- item->setFont(font);
- }
- });
- mFontSizeHandler.registerFontSize(ui.quickViewWidget, 1.5f);
- mFontSizeHandler.registerFontSize(ui.messageTreeWidget, 1.5f, [this] (QAbstractItemView *view, int) {
- mMessageModel->setFont(view->font());
- });
}
void MessagesDialog::handleEvent_main_thread(std::shared_ptr event)
@@ -528,7 +511,7 @@ void MessagesDialog::fillQuickView()
ui.quickViewWidget->clear();
// add static items
- item = new QListWidgetItem(tr("Starred"), ui.quickViewWidget);
+ item = new QListWidgetItem(tr("Stared"), ui.quickViewWidget);
item->setIcon(FilesDefs::getIconFromQtResourcePath(IMAGE_STAR_ON));
item->setData(ROLE_QUICKVIEW_TYPE, QUICKVIEW_TYPE_STATIC);
item->setData(ROLE_QUICKVIEW_ID, QUICKVIEW_STATIC_ID_STARRED);
@@ -1246,7 +1229,7 @@ void MessagesDialog::undeletemessage()
void MessagesDialog::filterChanged(const QString& text)
{
- QStringList items = text.split(' ',QtSkipEmptyParts);
+ QStringList items = text.split(' ',QString::SkipEmptyParts);
RsMessageModel::FilterType f = RsMessageModel::FILTER_TYPE_NONE;
@@ -1287,7 +1270,7 @@ void MessagesDialog::filterColumnChanged(int column)
default:break;
}
- QStringList items = ui.filterLineEdit->text().split(' ',QtSkipEmptyParts);
+ QStringList items = ui.filterLineEdit->text().split(' ',QString::SkipEmptyParts);
mMessageModel->setFilter(f,items);
mMessageProxyModel->setFilterRegExp(QRegExp(RsMessageModel::FilterString)); // this triggers the update of the proxy model
@@ -1313,7 +1296,7 @@ void MessagesDialog::updateMessageSummaryList()
/* calculating the new messages */
std::list msgList;
- rsMail->getMessageSummaries(Rs::Msgs::BoxName::BOX_ALL,msgList);
+ rsMail->getMessageSummaries(mMessageModel->currentBox(),msgList);
QMap tagCount;
diff --git a/retroshare-gui/src/gui/msgs/MessagesDialog.h b/retroshare-gui/src/gui/msgs/MessagesDialog.h
index 7f9573f81..1d10137c2 100644
--- a/retroshare-gui/src/gui/msgs/MessagesDialog.h
+++ b/retroshare-gui/src/gui/msgs/MessagesDialog.h
@@ -25,7 +25,6 @@
#include
#include
-#include "util/FontSizeHandler.h"
#include "ui_MessagesDialog.h"
@@ -167,8 +166,6 @@ private:
RsEventsHandlerId_t mEventHandlerId;
RsEventsHandlerId_t mTagEventHandlerId;
-
- FontSizeHandler mFontSizeHandler;
};
#endif
diff --git a/retroshare-gui/src/gui/msgs/MessagesDialog.ui b/retroshare-gui/src/gui/msgs/MessagesDialog.ui
index 516511265..5f1d83eca 100644
--- a/retroshare-gui/src/gui/msgs/MessagesDialog.ui
+++ b/retroshare-gui/src/gui/msgs/MessagesDialog.ui
@@ -139,6 +139,11 @@
0
+
+
+ 11
+
+
Qt::CustomContextMenu
@@ -248,6 +253,11 @@
0
+
+
+ 11
+
+
@@ -365,6 +375,11 @@
Qt::Vertical
+
+
+ 10
+
+
Qt::CustomContextMenu
@@ -451,7 +466,7 @@
LineEditClear
QLineEdit
- gui/common/LineEditClear.h
+ gui/common/LineEditClear.h
RSTabWidget
diff --git a/retroshare-gui/src/gui/profile/ProfileWidget.cpp b/retroshare-gui/src/gui/profile/ProfileWidget.cpp
index 670bb86c7..cf823ab53 100644
--- a/retroshare-gui/src/gui/profile/ProfileWidget.cpp
+++ b/retroshare-gui/src/gui/profile/ProfileWidget.cpp
@@ -45,13 +45,13 @@ ProfileWidget::ProfileWidget(QWidget *parent, Qt::WindowFlags flags)
connect(ui.CopyCertButton,SIGNAL(clicked()), this, SLOT(copyCert()));
connect(ui.profile_Button,SIGNAL(clicked()), this, SLOT(profilemanager()));
- ui.onLineSince->setText(DateTime::formatLongDateTime(RsApplication::startupTime()));
+ ui.onLineSince->setText(DateTime::formatLongDateTime(Rshare::startupTime()));
}
void ProfileWidget::showEvent ( QShowEvent * /*event*/ )
{
/* set retroshare version */
- ui.version->setText(RsApplication::retroshareVersion(true));
+ ui.version->setText(Rshare::retroshareVersion(true));
RsPeerDetails detail;
if (rsPeers->getPeerDetails(rsPeers->getOwnId(),detail))
diff --git a/retroshare-gui/src/gui/qss/stylesheet/Standard_Dark.qss b/retroshare-gui/src/gui/qss/stylesheet/Standard_Dark.qss
index ffea0a4d8..7497440c5 100644
--- a/retroshare-gui/src/gui/qss/stylesheet/Standard_Dark.qss
+++ b/retroshare-gui/src/gui/qss/stylesheet/Standard_Dark.qss
@@ -2436,7 +2436,7 @@ WireGroupItem QFrame#wire_frame QLabel{
background: transparent;
}
WireGroupItem QFrame#wire_frame:hover {
- background-color: #346792;
+ background-color: #2e8bab;
}
PulseTopLevel QFrame#frame,
@@ -2446,6 +2446,13 @@ PulseReply QFrame#frame {
border-radius: 6px;
}
+PulseAddDialog QTextEdit#textEdit_Pulse {
+ border: 2px solid #c4cfd6;
+ border-radius: 6px;
+ background: white;
+ color: black;
+}
+
PulseReply #line_replyLine,
PulseMessage #line{
color: #c4cfd6;
@@ -2455,16 +2462,6 @@ PulseReply QLabel#label_groupName{
color: #5b7083;
}
-PulseReplySeperator QFrame#frame {
- background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #455364, stop: 0.5 #54687A,stop: 0.6 #44586A, stop:1 #455364);
- border-radius: 10px;
-}
-
-QLabel#label_masthead{
- border: 2px solid #CCCCCC;
- border-radius: 4px;
-}
-
/**** Color definitions ****/
ForumsDialog, GxsForumThreadWidget
@@ -2555,3 +2552,10 @@ OpModeStatus[opMode="Minimal"] {
[WrongValue="true"] {
background-color: #702020;
}
+
+/**** The Wire ****/
+
+QLabel#label_masthead{
+ border: 2px solid #CCCCCC;
+ border-radius: 4px;
+}
diff --git a/retroshare-gui/src/gui/qss/stylesheet/Standard_Light.qss b/retroshare-gui/src/gui/qss/stylesheet/Standard_Light.qss
index 40fe0b78c..061ca0518 100644
--- a/retroshare-gui/src/gui/qss/stylesheet/Standard_Light.qss
+++ b/retroshare-gui/src/gui/qss/stylesheet/Standard_Light.qss
@@ -231,7 +231,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox
--------------------------------------------------------------------------- */
QGroupBox {
font-weight: bold;
- border: 1px solid #C0C4C8;
+ border: 1px solid #C9CDD0;
border-radius: 4px;
padding: 2px;
margin-top: 6px;
@@ -1234,7 +1234,7 @@ https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox
--------------------------------------------------------------------------- */
QComboBox {
- border: 1px solid #C0C4C8;
+ border: 1px solid #C9CDD0;
border-radius: 4px;
selection-background-color: #9FCBFF;
padding-left: 4px;
@@ -1250,7 +1250,7 @@ QComboBox {
}
QComboBox QAbstractItemView {
- border: 1px solid #C0C4C8;
+ border: 1px solid #C9CDD0;
border-radius: 0;
background-color: #FAFAFA;
selection-background-color: #9FCBFF;
@@ -1263,7 +1263,7 @@ QComboBox QAbstractItemView:hover {
QComboBox QAbstractItemView:selected {
background: #9FCBFF;
- color: #C0C4C8;
+ color: #C9CDD0;
}
QComboBox QAbstractItemView:alternate {
@@ -1301,18 +1301,6 @@ QComboBox::indicator:alternate {
background: #FAFAFA;
}
-QComboBox::item {
- /* Remove to fix #282, #285 and MR #288*/
- /*&:checked {
- font-weight: bold;
- }
-
- &:selected {
- border: 0px solid transparent;
- }
- */
-}
-
QComboBox::item:alternate {
background: #FAFAFA;
}
@@ -1445,14 +1433,14 @@ QLineEdit {
padding-left: 4px;
padding-right: 4px;
border-style: solid;
- border: 1px solid #C0C4C8;
+ border: 1px solid #C9CDD0;
border-radius: 4px;
color: #19232D;
}
QLineEdit:disabled {
background-color: #FAFAFA;
- color: #9DA9B5;
+ color: #788D9C;
}
QLineEdit:hover {
@@ -2163,12 +2151,12 @@ QSplitter::handle:hover {
}
QSplitter::handle:horizontal {
- width: 2px;
+ width: 5px;
image: url(":/standard_light/rc/line_vertical.png");
}
QSplitter::handle:vertical {
- height: 2px;
+ height: 5px;
image: url(":/standard_light/rc/line_horizontal.png");
}
@@ -2362,6 +2350,51 @@ QFrame#titleBarFrame QTextEdit {
background: white;
}
+/**** Special Page tweak ****/
+
+
+/* ConnectFriendWizard */
+
+ConnectFriendWizard QPlainTextEdit#friendCertEdit {
+ border: none;
+ background: white;
+ color: black;
+}
+
+ConnectFriendWizard QFrame#friendFrame {
+ border: 2px solid #0099cc;
+ border-radius: 6px;
+ background: white;
+}
+
+ConnectFriendWizard QWizardPage#ConclusionPage > QGroupBox#peerDetailsFrame {
+ border: 2px solid #039bd5;
+ border-radius:6px;
+ background: white;
+ color: black;
+ padding: 12 12px;
+}
+
+ConnectFriendWizard QGroupBox::title#peerDetailsFrame
+{
+ padding: 4 12px;
+ background: transparent;
+ padding: 4 12px;
+ background: #039bd5;
+ color: white;
+}
+
+
+/* GetStartedDialog */
+
+GetStartedDialog QTextEdit {
+ border: 1px solid #B8B6B1;
+ border-radius: 6px;
+ background: white;
+ color: black;
+}
+
+
/* HomePage */
HomePage QLabel#userCertLabel {
@@ -2476,7 +2509,7 @@ GxsGroupDialog QLabel#groupLogo{
/* Settings */
-PluginItem QFrame#pluginFrame {
+PluginItem > QFrame#pluginFrame {
border: 2px solid #A8B8D1;
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #FCFDFE, stop: 1 #E2E8EF);
border-radius: 0px
@@ -2488,7 +2521,7 @@ PluginItem QLabel#infoLabel {
/* Feeds */
-AttachFileItem QFrame#frame {
+AttachFileItem > QFrame#frame {
border: 2px solid black;
background: white;
}
@@ -2594,78 +2627,82 @@ BoardPostDisplayWidget_card QLabel#siteBoldLabel {
color: #787c7e;
}
-/* GenCertDialog
- Change colors here because GUI is not started yet so no user StyleSheet loads */
-GenCertDialog QFrame#profileframe{
- border-image: url(:/images/logo/background.png) 0 0 0 0 stretch stretch;
- border-width: 0px;
+/* MessengerWindow */
+
+MessengerWindow QFrame#messengerframetop{
+ background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #9BDBF9, stop:1 #1592CD);
+ border: 0px;
}
-GenCertDialog QFrame#profileframe QCheckBox,
-GenCertDialog QFrame#profileframe QLabel {
+
+/*************** Optional ***************/
+
+/**** WikiPoos ****/
+WikiEditDialog QPushButton#pushButton_History {
+ color: white;
+ background: #5bb62b;
+ border-radius: 4px;
+ max-height: 20px;
+ min-width: 4em;
+ padding: 2px;
+ padding-left: 6px;
+ padding-right: 6px;
+}
+
+WikiEditDialog QPushButton#pushButton_History:hover {
+ background: #57af29;
+}
+
+
+/**** The Wire ****/
+
+WireGroupItem QFrame#wire_frame:hover {
+ background-color: #7ecbfb;
+}
+WireGroupItem QFrame#wire_frame > QLabel {
background: transparent;
}
-GenCertDialog QLabel#info_Label:enabled {
- color: black;
- border: 1px solid #DCDC41;
- border-radius: 6px;
- background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #FFFFD7, stop:1 #FFFFB2);
+PulseTopLevel QFrame#plainFrame,
+PulseViewGroup QFrame#plainFrame,
+PulseReply QFrame#plainFrame {
+ border: 2px solid #c4cfd6;
+ background: white;
}
-GenCertDialog QGroupBox#groupBox,
-GenCertDialog QGroupBox#profile_groupBox {
- background: rgba(0,0,0,10%);
-}
-GenCertDialog QGroupBox#profile_groupBox QComboBox,
-GenCertDialog QGroupBox#profile_groupBox QSpinBox,
-GenCertDialog QGroupBox#profile_groupBox QLineEdit,
-GenCertDialog QComboBox#genPGPuser {
- border: 2px solid #0099cc;
+PulseAddDialog QTextEdit#textEdit_Pulse {
+ border: 2px solid #c4cfd6;
border-radius: 6px;
background: white;
color: black;
}
-GenCertDialog QPushButton#genButton {
- border-image: url(:/images/btn_blue.png) 4;
- border-width: 4;
- color: white;
-}
-GenCertDialog QPushButton#genButton:hover {
- border-image: url(:/images/btn_blue_hover.png) 4;
-}
-GenCertDialog QPushButton#genButton:disabled {
- border-image: url(:/images/btn_27.png) 4;
- color: black;
+PulseReply #line_replyLine,
+PulseMessage #line{
+ color: #c4cfd6;
}
-/* StartDialog
- To get the same style for all user and not use last connected one. */
-
-StartDialog QFrame#loginframe{
- border-image: url(:/images/logo/background_lessblue.png) 0 0 0 0 stretch stretch;
- border-width: 0px;
+PulseReply QLabel#label_groupName{
+ color: #5b7083;
}
-StartDialog QFrame#loginframe QCheckBox,
-StartDialog QFrame#loginframe QLabel {
- background: transparent;
-}
-StartDialog QGroupBox#profilGBox {
- background: rgba(0,0,0,10%);
- border-radius: 3px;
- border-width: 0px;
+QLabel#label_masthead{
+ border: 2px solid #CCCCCC;
+ border-radius: 4px;
}
-StartDialog QPushButton#loadButton {
- background: transparent;
- border-image: url(:/images/btn_blue.png) 4;
- border-width: 4;
- color: white;
+/**** PhotoShare ****/
+AlbumItem QFrame#albumFrame {
+ border: 2px solid #CCCCCC;
+ border-radius: 10px
}
-StartDialog QPushButton#loadButton:hover {
- background: transparent;
- border-image: url(:/images/btn_blue_hover.png) 4;
+
+PhotoItem QFrame#photoFrame {
+ border: 2px solid #CCCCCC;
+ border-radius: 10px
+}
+
+PhotoItem QWidget:hover {
+ background-color: #7ecbfb;
}
diff --git a/retroshare-gui/src/gui/qss/stylesheet/default.qss b/retroshare-gui/src/gui/qss/stylesheet/default.qss
index 4b8d1645f..d1730bfef 100644
--- a/retroshare-gui/src/gui/qss/stylesheet/default.qss
+++ b/retroshare-gui/src/gui/qss/stylesheet/default.qss
@@ -141,6 +141,88 @@ QLabel#newLabel:enabled {
}
+/* StartDialog
+ To get the same style for all user and not use last connected one. */
+
+StartDialog QFrame#loginframe{
+ border-image: url(:/images/logo/background_lessblue.png) 0 0 0 0 stretch stretch;
+ border-width: 0px;
+}
+StartDialog QFrame#loginframe QCheckBox,
+StartDialog QFrame#loginframe QLabel {
+ background: transparent;
+}
+StartDialog QGroupBox#profilGBox {
+ background: rgba(0,0,0,10%);
+ border-radius: 3px;
+ border-width: 0px;
+}
+
+StartDialog QGroupBox#profilGBox * {
+ background-color: white;
+ color: black;
+}
+
+StartDialog QPushButton#loadButton {
+ background: transparent;
+ border-image: url(:/images/btn_blue.png) 4;
+ border-width: 4;
+ color: white;
+}
+StartDialog QPushButton#loadButton:hover {
+ background: transparent;
+ border-image: url(:/images/btn_blue_hover.png) 4;
+}
+
+
+
+/* GenCertDialog
+ Change colors here because GUI is not started yet so no user StyleSheet loads */
+
+GenCertDialog QFrame#profileframe{
+ border-image: url(:/images/logo/background.png) 0 0 0 0 stretch stretch;
+ border-width: 0px;
+}
+GenCertDialog QFrame#profileframe QCheckBox,
+GenCertDialog QFrame#profileframe QLabel {
+ background: transparent;
+}
+
+GenCertDialog QLabel#info_Label:enabled {
+ color: black;
+ border: 1px solid #DCDC41;
+ border-radius: 6px;
+ background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #FFFFD7, stop:1 #FFFFB2);
+}
+
+GenCertDialog QGroupBox#groupBox,
+GenCertDialog QGroupBox#profile_groupBox {
+ background: rgba(0,0,0,10%);
+}
+GenCertDialog QGroupBox#profile_groupBox QComboBox,
+GenCertDialog QGroupBox#profile_groupBox QSpinBox,
+GenCertDialog QGroupBox#profile_groupBox QLineEdit,
+GenCertDialog QComboBox#genPGPuser {
+ border: 2px solid #0099cc;
+ border-radius: 6px;
+ background: white;
+ color: black;
+}
+
+GenCertDialog QPushButton#genButton {
+ border-image: url(:/images/btn_blue.png) 4;
+ border-width: 4;
+ color: white;
+}
+GenCertDialog QPushButton#genButton:hover {
+ border-image: url(:/images/btn_blue_hover.png) 4;
+}
+GenCertDialog QPushButton#genButton:disabled {
+ border-image: url(:/images/btn_27.png) 4;
+ color: black;
+}
+
+
/* AvatarWidget */
AvatarWidget{border-width: 10px;}
@@ -270,9 +352,9 @@ NewFriendList
{
qproperty-textColorStatusOffline: black;
qproperty-textColorStatusAway: gray;
- qproperty-textColorStatusBusy: darkred;
+ qproperty-textColorStatusBusy: gray;
qproperty-textColorStatusOnline: darkGreen;
- qproperty-textColorStatusInactive: orange;
+ qproperty-textColorStatusInactive: gray;
qproperty-textColorGroup: rgb(123, 123, 123);
}
@@ -336,27 +418,3 @@ OpModeStatus[opMode="Minimal"] {
[WrongValue="true"] {
background-color: #FF8080;
}
-
-GenCertDialog QPushButton#genButton {
- border-image: url(:/images/btn_blue.png) 4;
- border-width: 4;
- color: white;
-}
-GenCertDialog QPushButton#genButton:hover {
- border-image: url(:/images/btn_blue_hover.png) 4;
-}
-GenCertDialog QPushButton#genButton:disabled {
- border-image: url(:/images/btn_27.png) 4;
- color: black;
-}
-
-StartDialog QPushButton#loadButton {
- background: transparent;
- border-image: url(:/images/btn_blue.png) 4;
- border-width: 4;
- color: white;
-}
-StartDialog QPushButton#loadButton:hover {
- background: transparent;
- border-image: url(:/images/btn_blue_hover.png) 4;
-}
diff --git a/retroshare-gui/src/gui/settings/AppearancePage.cpp b/retroshare-gui/src/gui/settings/AppearancePage.cpp
index 2aecd6024..8ad086ae9 100755
--- a/retroshare-gui/src/gui/settings/AppearancePage.cpp
+++ b/retroshare-gui/src/gui/settings/AppearancePage.cpp
@@ -84,7 +84,7 @@ AppearancePage::AppearancePage(QWidget * parent, Qt::WindowFlags flags)
}
QMap styleSheets;
- RsApplication::getAvailableStyleSheets(styleSheets);
+ Rshare::getAvailableStyleSheets(styleSheets);
foreach (QString name, styleSheets.keys()) {
ui.cmboStyleSheet->addItem(name, styleSheets[name]);
@@ -101,9 +101,6 @@ AppearancePage::AppearancePage(QWidget * parent, Qt::WindowFlags flags)
connect(ui.mainPageButtonType_CB, SIGNAL(currentIndexChanged(int)), this, SLOT(updateRbtPageOnToolBar() ));
// connect(ui.menuItemsButtonType_CB, SIGNAL(currentIndexChanged(int)), this, SLOT(updateActionButtonLoc() ));
-
- connect(ui.minimumFontSize_SB, SIGNAL(valueChanged(int)), this, SLOT(updateFontSize())) ;
-
}
void AppearancePage::switch_status_grpStatus(bool b) { switch_status(MainWindow::StatusGrpStatus ,"ShowStatusBar", b) ; }
@@ -139,7 +136,7 @@ void AppearancePage::updateInterfaceStyle()
#ifndef QT_NO_CURSOR
QApplication::setOverrideCursor(Qt::WaitCursor);
#endif
- RsApplication::setStyle(ui.cmboStyle->currentText());
+ Rshare::setStyle(ui.cmboStyle->currentText());
Settings->setInterfaceStyle(ui.cmboStyle->currentText());
#ifndef QT_NO_CURSOR
QApplication::restoreOverrideCursor();
@@ -155,7 +152,7 @@ void AppearancePage::loadStyleSheet(int index)
#ifndef QT_NO_CURSOR
QApplication::setOverrideCursor(Qt::WaitCursor);
#endif
- RsApplication::loadStyleSheet(ui.cmboStyleSheet->itemData(index).toString());
+ Rshare::loadStyleSheet(ui.cmboStyleSheet->itemData(index).toString());
#ifndef QT_NO_CURSOR
QApplication::restoreOverrideCursor();
#endif
@@ -254,7 +251,7 @@ void AppearancePage::updateCmboToolButtonSize()
// NotifyQt::getInstance()->notifySettingsChanged();
// }
-void AppearancePage::updateStyle() { RsApplication::setStyle(ui.cmboStyle->currentText()); }
+void AppearancePage::updateStyle() { Rshare::setStyle(ui.cmboStyle->currentText()); }
/** Loads the settings for this page */
void AppearancePage::load()
@@ -262,7 +259,7 @@ void AppearancePage::load()
int index = ui.cmboLanguage->findData(Settings->getLanguageCode());
whileBlocking(ui.cmboLanguage)->setCurrentIndex(index);
- index = ui.cmboStyle->findData(RsApplication::style().toLower());
+ index = ui.cmboStyle->findData(Rshare::style().toLower());
whileBlocking(ui.cmboStyle)->setCurrentIndex(index);
index = ui.cmboStyleSheet->findData(Settings->getSheetName());
@@ -362,12 +359,4 @@ void AppearancePage::load()
whileBlocking(ui.checkBoxShowToasterDisable)->setChecked(Settings->valueFromGroup("StatusBar", "ShowToaster", QVariant(true)).toBool());
whileBlocking(ui.checkBoxShowSystrayOnStatus)->setChecked(Settings->valueFromGroup("StatusBar", "ShowSysTrayOnStatusBar", QVariant(false)).toBool());
- whileBlocking(ui.minimumFontSize_SB)->setValue(Settings->getFontSize());
-}
-
-void AppearancePage::updateFontSize()
-{
- Settings->setFontSize(ui.minimumFontSize_SB->value());
-
- NotifyQt::getInstance()->notifySettingsChanged();
}
diff --git a/retroshare-gui/src/gui/settings/AppearancePage.h b/retroshare-gui/src/gui/settings/AppearancePage.h
index 741bd752e..897563753 100755
--- a/retroshare-gui/src/gui/settings/AppearancePage.h
+++ b/retroshare-gui/src/gui/settings/AppearancePage.h
@@ -71,8 +71,6 @@ private slots:
// void updateCmboListItemSize();
void updateStyle() ;
- void updateFontSize();
-
private:
void switch_status(MainWindow::StatusElement s,const QString& key,bool b);
diff --git a/retroshare-gui/src/gui/settings/AppearancePage.ui b/retroshare-gui/src/gui/settings/AppearancePage.ui
index 13dc7a48e..96e5effe8 100755
--- a/retroshare-gui/src/gui/settings/AppearancePage.ui
+++ b/retroshare-gui/src/gui/settings/AppearancePage.ui
@@ -14,7 +14,22 @@
Qt::NoContextMenu
- -
+
+ 6
+
+
+ 6
+
+
+ 6
+
+
+ 6
+
+
+ 0
+
+ -
@@ -71,12 +86,110 @@
- -
+
-
+
+
+
+ 0
+ 64
+
+
+
+ Qt::NoContextMenu
+
+
+
+
+
+ Style
+
+
+ -
+
+
+
+ 150
+ 0
+
+
+
+ Choose RetroShare's interface style
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 215
+ 20
+
+
+
+
+
+
+
+ -
+
+
+
+ 0
+ 64
+
+
+
+ Style Sheet
+
+
+ -
+
+
+
+ 150
+ 0
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 215
+ 20
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 361
+ 61
+
+
+
+
+ -
0
- 0
+ 228
@@ -85,8 +198,8 @@
Tool Bar
-
- -
+
+ -
-
@@ -124,7 +237,7 @@
- -
+
-
@@ -176,6 +289,19 @@
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
-
-
@@ -226,79 +352,10 @@
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
- -
-
-
- Fonts
-
-
- -
-
- -
-
-
- Minimum font size
-
-
-
- -
-
-
- 5
-
-
- 64
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 188
- 96
-
-
-
-
-
-
-
- -
+
-
Status Bar
@@ -407,104 +464,6 @@
- -
-
-
- Qt::Vertical
-
-
-
- 361
- 61
-
-
-
-
- -
-
-
-
- 0
- 64
-
-
-
- Qt::NoContextMenu
-
-
-
-
-
- Style
-
-
- -
-
-
-
- 150
- 0
-
-
-
- Choose RetroShare's interface style
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 215
- 20
-
-
-
-
-
-
-
- -
-
-
-
- 0
- 64
-
-
-
- Style Sheet
-
-
- -
-
-
-
- 150
- 0
-
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 215
- 20
-
-
-
-
-
-
-
diff --git a/retroshare-gui/src/gui/settings/CryptoPage.cpp b/retroshare-gui/src/gui/settings/CryptoPage.cpp
index 296f6aec3..6c171bb1a 100755
--- a/retroshare-gui/src/gui/settings/CryptoPage.cpp
+++ b/retroshare-gui/src/gui/settings/CryptoPage.cpp
@@ -34,7 +34,6 @@
#include
#include
#include
-#include
#include //for rsPeers variable
#include //for rsPeers variable
@@ -59,16 +58,15 @@ CryptoPage::CryptoPage(QWidget * parent, Qt::WindowFlags flags)
// hide profile manager as it causes bugs when generating a new profile.
//ui.profile_Button->hide() ;
- //connect(ui.exportprofile,SIGNAL(clicked()), this, SLOT(profilemanager()));
- connect(ui.exportprofile,SIGNAL(clicked()), this, SLOT(exportProfile()));
- connect(ui.exportfriendslist,SIGNAL(clicked()), this, SLOT(exportFriendsList()) );
+ //connect(ui.exportprofile,SIGNAL(clicked()), this, SLOT(profilemanager()));
+ connect(ui.exportprofile,SIGNAL(clicked()), this, SLOT(exportProfile()));
// Remove this because it duplicates functionality of the HomePage.
ui.retroshareId_LB->hide();
ui.retroshareId_content_LB->hide();
ui.stackPageCertificate->hide();
- ui.onlinesince->setText(DateTime::formatLongDateTime(RsApplication::startupTime()));
+ ui.onlinesince->setText(DateTime::formatLongDateTime(Rshare::startupTime()));
}
#ifdef UNUSED_CODE
@@ -113,7 +111,7 @@ void CryptoPage::showEvent ( QShowEvent * /*event*/ )
ui.retroshareId_content_LB->setText(QString::fromUtf8(invite.c_str()));
/* set retroshare version */
- ui.version->setText(RsApplication::retroshareVersion(true));
+ ui.version->setText(Rshare::retroshareVersion(true));
std::list ids;
ids.clear();
@@ -231,8 +229,3 @@ void CryptoPage::showStats()
{
StatisticsWindow::showYourself();
}
-
-void CryptoPage::exportFriendsList()
-{
- NewFriendList().exportFriendlistClicked();
-}
diff --git a/retroshare-gui/src/gui/settings/CryptoPage.h b/retroshare-gui/src/gui/settings/CryptoPage.h
index e10cbb97a..e595c63c4 100755
--- a/retroshare-gui/src/gui/settings/CryptoPage.h
+++ b/retroshare-gui/src/gui/settings/CryptoPage.h
@@ -51,7 +51,6 @@ class CryptoPage : public ConfigPage
bool fileSave();
bool fileSaveAs();
void showStats();
- void exportFriendsList();
private:
QString fileName;
diff --git a/retroshare-gui/src/gui/settings/CryptoPage.ui b/retroshare-gui/src/gui/settings/CryptoPage.ui
index c0d602368..29a336721 100755
--- a/retroshare-gui/src/gui/settings/CryptoPage.ui
+++ b/retroshare-gui/src/gui/settings/CryptoPage.ui
@@ -13,11 +13,25 @@
-
-
+
-
+ -
+
+
+ Retroshare ID:
+
+
+
+ -
+
+
+ Statistics:
+
+
+
-
@@ -37,6 +51,13 @@
+ -
+
+
+ PGP fingerprint:
+
+
+
-
@@ -56,6 +77,99 @@
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Expanding
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 75
+ true
+
+
+
+ TextLabel
+
+
+
+ -
+
+
+ Export Profile:
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ TextLabel
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 75
+ true
+
+
+
+ TextLabel
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 100
+ 0
+
+
+
+ Online since:
+
+
+
-
@@ -75,36 +189,23 @@
- -
-
-
- Retroshare ID:
-
-
-
- -
-
-
- 6
-
+ -
+
-
-
+
16
16
-
-
-
:/images/info16.png
-
-
+
12
@@ -113,7 +214,7 @@
- Profile
+ Public Information
@@ -138,10 +239,39 @@
- -
-
+ -
+
+
+ <html><head/><body><p>Use this button to export your profile key. You can then import it in a different computer and make a new node with the same profile. Doing so, existing friends that you also add to the new node will automatically recognise that new node as friend.</p></body></html>
+
- PGP fingerprint:
+ Export
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 100
+ 0
+
+
+
+ Software Version:
+
+
+
+ -
+
+
+ Show statistics
@@ -182,17 +312,117 @@
- -
-
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
- Show statistics
+ Profile path:
- -
-
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 100
+ 0
+
+
- Export Profile:
+ Friend nodes:
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 75
+ true
+
+
+
+ TextLabel
+
+
+
+ -
+
+
+ 6
+
+ -
+
+
+
+ 16
+ 16
+
+
+
+
+
+
+ :/images/info16.png
+
+
+
+ -
+
+
+
+ 12
+ 75
+ true
+
+
+
+ Profile
+
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 100
+ 0
+
+
+
+ Name:
@@ -218,8 +448,8 @@
- -
-
+ -
+
0
@@ -233,7 +463,23 @@
- Friend nodes:
+ PGP Id :
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ TextLabel
+
+
+ Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse
@@ -256,100 +502,6 @@
- -
-
-
-
- 0
- 0
-
-
-
-
- 100
- 0
-
-
-
- PGP Id :
-
-
-
- -
-
-
- <html><head/><body><p>Use this button to export your profile key. You can then import it in a different computer and make a new node with the same profile. Doing so, existing friends that you also add to the new node will automatically recognise that new node as friend.</p></body></html>
-
-
- Export profile
-
-
-
- -
-
-
- Statistics:
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 75
- true
-
-
-
- TextLabel
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 100
- 0
-
-
-
- Online since:
-
-
-
- -
-
-
- Profile path:
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
@@ -363,172 +515,6 @@
- -
-
-
-
- 0
- 0
-
-
-
-
- 75
- true
-
-
-
- TextLabel
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 100
- 0
-
-
-
- Software Version:
-
-
-
- -
-
-
-
- 75
- true
-
-
-
- TextLabel
-
-
- Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 75
- true
-
-
-
- TextLabel
-
-
-
- -
-
-
-
- 75
- true
-
-
-
- TextLabel
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 100
- 0
-
-
-
- Name:
-
-
-
- -
-
- -
-
-
-
- 16
- 16
-
-
-
- :/images/info16.png
-
-
-
- -
-
-
-
- 12
- 75
- true
-
-
-
- Public Information
-
-
-
-
-
- -
-
-
- Export Friendslist:
-
-
-
- -
-
-
- Export friends list
-
-
-
- -
-
-
- Qt::Horizontal
-
-
- QSizePolicy::Expanding
-
-
-
- 40
- 20
-
-
-
-
@@ -547,7 +533,7 @@
-
+
-
diff --git a/retroshare-gui/src/gui/settings/GeneralPage.ui b/retroshare-gui/src/gui/settings/GeneralPage.ui
index 3eea0544f..ab2863f1c 100755
--- a/retroshare-gui/src/gui/settings/GeneralPage.ui
+++ b/retroshare-gui/src/gui/settings/GeneralPage.ui
@@ -146,10 +146,10 @@
-
- <html><head/><body><p>When checked, this retroshare instance will accept calls by your operating system to open Retroshare collection files, and download links.</p></body></html>
+ When checked, this instance receives new parameters (like RsLink or RsFile) and avoid new one.
- Accept operating systems calls
+ Use Local Server to get new arguments.
true
diff --git a/retroshare-gui/src/gui/settings/JsonApiPage.cc b/retroshare-gui/src/gui/settings/JsonApiPage.cc
index ace092e0c..2b7f25d80 100644
--- a/retroshare-gui/src/gui/settings/JsonApiPage.cc
+++ b/retroshare-gui/src/gui/settings/JsonApiPage.cc
@@ -232,23 +232,23 @@ void JsonApiPage::addTokenClicked()
whileBlocking(ui.tokensListView)->setModel(new QStringListModel(newTk));
}
-void JsonApiPage::removeTokenClicked()
-{
- QString token(ui.tokenLineEdit->text());
- std::string tokenStr = token.toStdString();
- rsJsonApi->revokeAuthToken(tokenStr.substr(0, tokenStr.find_first_of(":")));
-
- QStringList newTk;
-
- for(const auto& it : rsJsonApi->getAuthorizedTokens())
- newTk.push_back(
- QString::fromStdString(it.first) + ":" +
- QString::fromStdString(it.second) );
-
- whileBlocking(ui.tokensListView)->setModel(new QStringListModel(Settings->getJsonApiAuthTokens()) );
-}
-
+void JsonApiPage::removeTokenClicked()
+{
+ QString token(ui.tokenLineEdit->text());
+ rsJsonApi->revokeAuthToken(token.toStdString());
+
+ QStringList newTk;
+
+ for(const auto& it : rsJsonApi->getAuthorizedTokens())
+ newTk.push_back(
+ QString::fromStdString(it.first) + ":" +
+ QString::fromStdString(it.second) );
+
+ whileBlocking(ui.tokensListView)->setModel(new QStringListModel(Settings->getJsonApiAuthTokens()) );
+}
+
void JsonApiPage::tokenClicked(const QModelIndex& index)
{
ui.tokenLineEdit->setText(ui.tokensListView->model()->data(index).toString());
}
+
diff --git a/retroshare-gui/src/gui/settings/MessagePage.cpp b/retroshare-gui/src/gui/settings/MessagePage.cpp
index be8b515ff..ff302317d 100644
--- a/retroshare-gui/src/gui/settings/MessagePage.cpp
+++ b/retroshare-gui/src/gui/settings/MessagePage.cpp
@@ -18,8 +18,6 @@
* *
*******************************************************************************/
-#include
-
#include "rshare.h"
#include "rsharesettings.h"
#include "retroshare/rsmsgs.h"
@@ -30,7 +28,6 @@
#include
#include "NewTag.h"
#include "util/qtthreadsutils.h"
-#include "gui/notifyqt.h"
MessagePage::MessagePage(QWidget * parent, Qt::WindowFlags flags)
: ConfigPage(parent, flags)
@@ -51,20 +48,13 @@ MessagePage::MessagePage(QWidget * parent, Qt::WindowFlags flags)
ui.openComboBox->addItem(tr("A new tab"), RshareSettings::MSG_OPEN_TAB);
ui.openComboBox->addItem(tr("A new window"), RshareSettings::MSG_OPEN_WINDOW);
-
- // Font size
- QFontDatabase db;
- foreach(int size, db.standardSizes()) {
- ui.minimumFontSize->addItem(QString::number(size), size);
- }
-
+
connect(ui.comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(distantMsgsComboBoxChanged(int)));
connect(ui.setMsgToReadOnActivate,SIGNAL(toggled(bool)), this,SLOT(updateMsgToReadOnActivate()));
connect(ui.loadEmbeddedImages, SIGNAL(toggled(bool)), this,SLOT(updateLoadEmbededImages() ));
connect(ui.openComboBox, SIGNAL(currentIndexChanged(int)),this,SLOT(updateMsgOpen() ));
connect(ui.emoticonscheckBox, SIGNAL(toggled(bool)), this,SLOT(updateLoadEmoticons() ));
- connect(ui.minimumFontSize, SIGNAL(activated(QString)), this, SLOT(updateFontSize())) ;
mTagEventHandlerId = 0;
rsEvents->registerEventsHandler( [this](std::shared_ptr event) { RsQThreadUtils::postToObject( [this,event]() { handleEvent_main_thread(event); }); }, mTagEventHandlerId, RsEventType::MAIL_TAG );
@@ -126,11 +116,12 @@ void MessagePage::updateMsgTags()
void
MessagePage::load()
{
+ Settings->beginGroup(QString("Messages"));
whileBlocking(ui.setMsgToReadOnActivate)->setChecked(Settings->getMsgSetToReadOnActivate());
whileBlocking(ui.loadEmbeddedImages)->setChecked(Settings->getMsgLoadEmbeddedImages());
whileBlocking(ui.openComboBox)->setCurrentIndex(ui.openComboBox->findData(Settings->getMsgOpen()));
whileBlocking(ui.emoticonscheckBox)->setChecked(Settings->value("Emoticons", true).toBool());
- whileBlocking(ui.minimumFontSize)->setCurrentIndex(ui.minimumFontSize->findData(Settings->getMessageFontSize()));
+ Settings->endGroup();
// state of filter combobox
@@ -307,9 +298,3 @@ void MessagePage::currentRowChangedTag(int row)
ui.deletepushButton->setEnabled(bDeleteEnable);
}
-void MessagePage::updateFontSize()
-{
- Settings->setMessageFontSize(ui.minimumFontSize->currentData().toInt());
-
- NotifyQt::getInstance()->notifySettingsChanged();
-}
diff --git a/retroshare-gui/src/gui/settings/MessagePage.h b/retroshare-gui/src/gui/settings/MessagePage.h
index c5b9f7544..774d31b95 100644
--- a/retroshare-gui/src/gui/settings/MessagePage.h
+++ b/retroshare-gui/src/gui/settings/MessagePage.h
@@ -60,7 +60,6 @@ private slots:
void updateDistantMsgs() ;
void updateMsgTags() ;
void updateLoadEmoticons();
- void updateFontSize();
private:
void handleEvent_main_thread(std::shared_ptr event);
diff --git a/retroshare-gui/src/gui/settings/MessagePage.ui b/retroshare-gui/src/gui/settings/MessagePage.ui
index 3e5ab3842..fd55218e8 100644
--- a/retroshare-gui/src/gui/settings/MessagePage.ui
+++ b/retroshare-gui/src/gui/settings/MessagePage.ui
@@ -16,15 +16,44 @@
0
-
- -
-
-
-
- 0
- 0
-
+
+ -
+
+
+ Distant messages:
+
+ -
+
+ -
+
+ Everyone
+
+
+ -
+
+ Contacts
+
+
+ -
+
+ Nobody
+
+
+
+
+ -
+
+
+ Accept encrypted distant messages from
+
+
+
+
+
+
+ -
+
Reading
@@ -36,6 +65,20 @@
+ -
+
+ -
+
+
+ Open messages in
+
+
+
+ -
+
+
+
+
-
@@ -50,24 +93,10 @@
- -
-
- -
-
-
- Open messages in
-
-
-
- -
-
-
-
-
- -
+
-
Tags
@@ -143,102 +172,6 @@
- -
-
-
- Distant messages:
-
-
- -
-
- -
-
- Everyone
-
-
- -
-
- Contacts
-
-
- -
-
- Nobody
-
-
-
-
- -
-
-
- Accept encrypted distant messages from
-
-
-
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- Fonts
-
-
- -
-
- -
-
-
- Qt::LeftToRight
-
-
- Minimum font size
-
-
-
- -
-
-
-
- MS Sans Serif
- 10
-
-
-
- Qt::ClickFocus
-
-
- Font size
-
-
- true
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
-
-
-
-
diff --git a/retroshare-gui/src/gui/settings/ServerPage.cpp b/retroshare-gui/src/gui/settings/ServerPage.cpp
index be2404bc8..adb1d655c 100755
--- a/retroshare-gui/src/gui/settings/ServerPage.cpp
+++ b/retroshare-gui/src/gui/settings/ServerPage.cpp
@@ -228,7 +228,6 @@ ServerPage::ServerPage(QWidget * parent, Qt::WindowFlags flags)
connect(ui.hiddenpage_proxyPort_tor, SIGNAL(editingFinished()),this,SLOT(saveAddresses()));
connect(ui.hiddenpage_proxyAddress_i2p, SIGNAL(editingFinished()),this,SLOT(saveAddresses()));
connect(ui.hiddenpage_proxyPort_i2p, SIGNAL(editingFinished()),this,SLOT(saveAddresses()));
- connect(ui.hiddenpage_localPort, SIGNAL(editingFinished()),this,SLOT(saveAddresses()));
connect(ui.totalDownloadRate,SIGNAL(valueChanged(int)),this,SLOT(saveRates()));
connect(ui.totalUploadRate, SIGNAL(valueChanged(int)),this,SLOT(saveRates()));
@@ -1140,18 +1139,18 @@ void ServerPage::loadHiddenNode()
ui.iconlabel_ext->hide();
ui.textlabel_ext->hide();
ui.extPortLabel->hide();
-
+
ui.ipAddressLabel->hide();
ui.cleanKnownIPs_PB->hide();
-
+
ui.ipAddressList->hide();
ui.allowIpDeterminationCB->hide();
ui.IPServersLV->hide();
-
+
ui.textlabel_hiddenMode->show();
ui.iconlabel_hiddenMode->show() ;
ui.iconlabel_hiddenMode->setPixmap(FilesDefs::getPixmapFromQtResourcePath(":/images/ledon1.png"));
-
+
// CHANGE OPTIONS ON
whileBlocking(ui.discComboBox)->removeItem(3);
whileBlocking(ui.discComboBox)->removeItem(2);
@@ -1732,9 +1731,8 @@ void ServerPage::saveSam()
new_proxyaddr = ui.hiddenpage_proxyAddress_i2p -> text().toStdString();
new_proxyport = ui.hiddenpage_proxyPort_i2p -> value();
- // SAMv3 has no proxy port, everything goes through the SAM port.
- // Still need to check the proxyport for manual i2p
- if ((new_proxyaddr != orig_proxyaddr) || (new_proxyport != orig_proxyport)) {
+ // SAMv3 has no proxy port, everything goes through the SAM port.
+ if ((new_proxyaddr != orig_proxyaddr) /* || (new_proxyport != orig_proxyport) */) {
rsPeers->setProxyServer(RS_HIDDEN_TYPE_I2P, new_proxyaddr, new_proxyport);
}
}
diff --git a/retroshare-gui/src/gui/settings/TransferPage.cpp b/retroshare-gui/src/gui/settings/TransferPage.cpp
index 5b3b49908..915eaa679 100644
--- a/retroshare-gui/src/gui/settings/TransferPage.cpp
+++ b/retroshare-gui/src/gui/settings/TransferPage.cpp
@@ -52,7 +52,7 @@ TransferPage::TransferPage(QWidget * parent, Qt::WindowFlags flags)
QObject::connect(ui._queueSize_SB,SIGNAL(valueChanged(int)),this,SLOT(updateQueueSize(int))) ;
QObject::connect(ui._max_up_SB,SIGNAL(valueChanged(int)),this,SLOT(updateMaxUploadSlots(int))) ;
QObject::connect(ui._defaultStrategy_CB,SIGNAL(activated(int)),this,SLOT(updateDefaultStrategy(int))) ;
- //QObject::connect(ui._e2e_encryption_CB,SIGNAL(activated(int)),this,SLOT(updateEncryptionPolicy(int))) ;
+ QObject::connect(ui._e2e_encryption_CB,SIGNAL(activated(int)),this,SLOT(updateEncryptionPolicy(int))) ;
QObject::connect(ui._diskSpaceLimit_SB,SIGNAL(valueChanged(int)),this,SLOT(updateDiskSizeLimit(int))) ;
QObject::connect(ui._max_tr_up_per_sec_SB, SIGNAL( valueChanged( int ) ), this, SLOT( updateMaxTRUpRate(int) ) );
QObject::connect(ui._filePermDirectDL_CB,SIGNAL(activated(int)),this,SLOT(updateFilePermDirectDL(int)));
@@ -112,7 +112,6 @@ void TransferPage::updateMaxUploadSlots(int b)
rsFiles->setMaxUploadSlotsPerFriend(b) ;
}
-#ifdef TO_REMOVE
void TransferPage::updateEncryptionPolicy(int b)
{
switch(b)
@@ -124,7 +123,6 @@ void TransferPage::updateEncryptionPolicy(int b)
break ;
}
}
-#endif
void TransferPage::updateFilePermDirectDL(int i)
{
@@ -162,13 +160,11 @@ void TransferPage::load()
case FileChunksInfo::CHUNK_STRATEGY_RANDOM: whileBlocking(ui._defaultStrategy_CB)->setCurrentIndex(2) ; break ;
}
-#ifdef TO_REMOVE
switch(rsFiles->defaultEncryptionPolicy())
{
case RS_FILE_CTRL_ENCRYPTION_POLICY_PERMISSIVE: whileBlocking(ui._e2e_encryption_CB)->setCurrentIndex(0) ; break ;
case RS_FILE_CTRL_ENCRYPTION_POLICY_STRICT : whileBlocking(ui._e2e_encryption_CB)->setCurrentIndex(1) ; break ;
}
-#endif
whileBlocking(ui._diskSpaceLimit_SB)->setValue(rsFiles->freeDiskSpaceLimit()) ;
whileBlocking(ui._max_tr_up_per_sec_SB)->setValue(rsTurtle->getMaxTRForwardRate()) ;
@@ -208,11 +204,7 @@ void TransferPage::load()
whileBlocking(ui.suffixesIgnoreList_LE)->setText( ignore_suffixes_string );
Settings->beginGroup(QString("File"));
-#if defined(Q_OS_DARWIN)
- whileBlocking(ui.minimumFontSize_SB)->setValue( Settings->value("MinimumFontSize", 13 ).toInt());
-#else
whileBlocking(ui.minimumFontSize_SB)->setValue( Settings->value("MinimumFontSize", 11 ).toInt());
-#endif
Settings->endGroup();
}
diff --git a/retroshare-gui/src/gui/settings/TransferPage.h b/retroshare-gui/src/gui/settings/TransferPage.h
index 077d5a6ec..a2a0a1061 100644
--- a/retroshare-gui/src/gui/settings/TransferPage.h
+++ b/retroshare-gui/src/gui/settings/TransferPage.h
@@ -47,6 +47,7 @@ class TransferPage: public ConfigPage
void updateDefaultStrategy(int) ;
void updateDiskSizeLimit(int) ;
void updateMaxTRUpRate(int);
+ void updateEncryptionPolicy(int);
void updateMaxUploadSlots(int);
void updateFilePermDirectDL(int);
void updateIgnoreLists();
diff --git a/retroshare-gui/src/gui/settings/TransferPage.ui b/retroshare-gui/src/gui/settings/TransferPage.ui
index 4b48be012..b6d8cd7ff 100644
--- a/retroshare-gui/src/gui/settings/TransferPage.ui
+++ b/retroshare-gui/src/gui/settings/TransferPage.ui
@@ -14,7 +14,7 @@
-
- 0
+ 1
@@ -400,6 +400,13 @@ p, li { white-space: pre-wrap; }
+ -
+
+
+ End-to-end encryption:
+
+
+
-
@@ -496,6 +503,23 @@ p, li { white-space: pre-wrap; }
+ -
+
+
+ <html><head/><body><p>Anonymous tunnels can be end-o-end encrypted. In order to maintain backward compatibility, this can be made optional (choosing "Accepted"), but in the end, all Retroshare nodes will be switched to "Enforced", meaning that all anonymous transfers will be end-to-end encrypted. With "Accepted", it is likely that you will transfer using twice as many tunnels, since there is no way to know that an encrypted and a clear tunnel actually transfer from the same source.</p></body></html>
+
+ -
+
+ Accepted
+
+
+ -
+
+ Enforced
+
+
+
+
-
diff --git a/retroshare-gui/src/gui/settings/rsettingswin.cpp b/retroshare-gui/src/gui/settings/rsettingswin.cpp
index a9fab8895..1d3d4ecc3 100644
--- a/retroshare-gui/src/gui/settings/rsettingswin.cpp
+++ b/retroshare-gui/src/gui/settings/rsettingswin.cpp
@@ -93,8 +93,6 @@ SettingsPage::SettingsPage(QWidget *parent)
connect(ui.listWidget, SIGNAL(currentRowChanged(int)), this, SLOT(setNewPage(int)));
connect(this, SIGNAL(finished(int)), this, SLOT(dialogFinished(int)));
-
- mFontSizeHandler.registerFontSize(ui.listWidget);
}
SettingsPage::~SettingsPage()
diff --git a/retroshare-gui/src/gui/settings/rsettingswin.h b/retroshare-gui/src/gui/settings/rsettingswin.h
index 47eb33e4b..74fb0d40c 100755
--- a/retroshare-gui/src/gui/settings/rsettingswin.h
+++ b/retroshare-gui/src/gui/settings/rsettingswin.h
@@ -27,7 +27,6 @@
#include
#include "ui_settingsw.h"
-#include "util/FontSizeHandler.h"
class FloatingHelpBrowser;
@@ -73,8 +72,6 @@ private:
FloatingHelpBrowser *mHelpBrowser;
static int lastPage;
- FontSizeHandler mFontSizeHandler;
-
/* UI - from Designer */
Ui::Settings ui;
};
diff --git a/retroshare-gui/src/gui/settings/rsharesettings.cpp b/retroshare-gui/src/gui/settings/rsharesettings.cpp
index d878d6c99..586d4df4f 100644
--- a/retroshare-gui/src/gui/settings/rsharesettings.cpp
+++ b/retroshare-gui/src/gui/settings/rsharesettings.cpp
@@ -109,7 +109,7 @@ void RshareSettings::initSettings()
setDefault(SETTING_STYLE, "GTK+");
#else
#if defined(Q_OS_MAC)
- setDefault(SETTING_STYLE, "Fusion");
+ setDefault(SETTING_STYLE, "macintosh (aqua)");
#else
static QStringList styles = QStyleFactory::keys();
#if defined(Q_OS_WIN)
@@ -910,7 +910,7 @@ void RshareSettings::setUseLocalServer(bool value)
{
if (value != getUseLocalServer()) {
setValue("UseLocalServer", value);
- RsApplication::updateLocalServer();
+ Rshare::updateLocalServer();
}
}
@@ -1190,38 +1190,6 @@ void RshareSettings::setPageAlreadyDisplayed(const QString& page_name,bool b)
return setValueToGroup("PageAlreadyDisplayed",page_name,b);
}
-int RshareSettings::getFontSize()
-{
-#if defined(Q_OS_DARWIN)
- int defaultFontSize = 13;
-#else
- int defaultFontSize = 11;
-#endif
-
- return value("FontSize", defaultFontSize).toInt();
-}
-
-void RshareSettings::setFontSize(int value)
-{
- setValue("FontSize", value);
-}
-
-int RshareSettings::getMessageFontSize()
-{
-#if defined(Q_OS_DARWIN)
- int defaultFontSize = 12;
-#else
- int defaultFontSize = 11;
-#endif
-
- return valueFromGroup("Message", "FontSize", defaultFontSize).toInt();
-}
-
-void RshareSettings::setMessageFontSize(int value)
-{
- setValueToGroup("Message", "FontSize", value);
-}
-
#ifdef RS_JSONAPI
bool RshareSettings::getJsonApiEnabled()
{
diff --git a/retroshare-gui/src/gui/settings/rsharesettings.h b/retroshare-gui/src/gui/settings/rsharesettings.h
index 317dedb56..362e52606 100644
--- a/retroshare-gui/src/gui/settings/rsharesettings.h
+++ b/retroshare-gui/src/gui/settings/rsharesettings.h
@@ -343,12 +343,6 @@ public:
bool getPageAlreadyDisplayed(const QString& page_code) ;
void setPageAlreadyDisplayed(const QString& page_code,bool b) ;
- int getFontSize();
- void setFontSize(int value);
-
- int getMessageFontSize();
- void setMessageFontSize(int value);
-
#ifdef RS_JSONAPI
bool getJsonApiEnabled();
void setJsonApiEnabled(bool enabled);
diff --git a/retroshare-gui/src/gui/settings/settingsw.ui b/retroshare-gui/src/gui/settings/settingsw.ui
index 605e8558e..d1cbd3caf 100644
--- a/retroshare-gui/src/gui/settings/settingsw.ui
+++ b/retroshare-gui/src/gui/settings/settingsw.ui
@@ -35,6 +35,11 @@
16777215
+
+
+ 11
+
+
Qt::IgnoreAction
@@ -95,6 +100,7 @@
+ 12
75
true
@@ -129,8 +135,8 @@
0
0
- 1264
- 845
+ 1313
+ 849
diff --git a/retroshare-gui/src/gui/statistics/StatisticsWindow.cpp b/retroshare-gui/src/gui/statistics/StatisticsWindow.cpp
index 684fdc69d..48b1462cc 100644
--- a/retroshare-gui/src/gui/statistics/StatisticsWindow.cpp
+++ b/retroshare-gui/src/gui/statistics/StatisticsWindow.cpp
@@ -22,7 +22,6 @@
#include "ui_StatisticsWindow.h"
#include
#include
-#include
#include
#include
diff --git a/retroshare-gui/src/lang/retroshare_bg.ts b/retroshare-gui/src/lang/retroshare_bg.ts
index c57ad6a7a..86615025a 100644
--- a/retroshare-gui/src/lang/retroshare_bg.ts
+++ b/retroshare-gui/src/lang/retroshare_bg.ts
@@ -84,6 +84,13 @@
+
+ AddCommentDialog
+
+ Add Comment
+ ŠŠ¾Š±Š°Š²Šø ŠŗŠ¾Š¼ŠµŠ½ŃŠ°Ń
+
+
AddFileAssociationDialog
@@ -121,12 +128,12 @@
-
+
Search Criteria
-
+
Add a further search criterion.
@@ -136,7 +143,7 @@
-
+
Cancels the search.
@@ -156,6 +163,17 @@
+
+ AlbumCreateDialog
+
+ Description:
+ ŠŠæŠøŃŠ°Š½ŠøŠµ:
+
+
+ Quality:
+ ŠŠ°ŃеŃŃŠ²Š¾:
+
+
AlbumDialog
@@ -184,6 +202,10 @@
Caption
+
+ Description:
+ ŠŠæŠøŃŠ°Š½ŠøŠµ:
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
@@ -540,7 +562,7 @@ p, li { white-space: pre-wrap; }
RetroShare
-
+
Warning: The services here are experimental. Please help us test them.
But Remember: Any data here *WILL* be lost when we upgrade the protocols.
@@ -566,23 +588,10 @@ p, li { white-space: pre-wrap; }
-
- AspectRatioPixmapLabel
-
-
- Save image
-
-
-
-
- Copy image
-
-
-
AttachFileItem
-
+
%p Kb
@@ -625,7 +634,7 @@ p, li { white-space: pre-wrap; }
ŠŃемаŃ
ване на
-
+
Set your Avatar picture
@@ -712,7 +721,7 @@ p, li { white-space: pre-wrap; }
ŠŃŃŃŠ°Š½Šµ
-
+
Always on Top
@@ -731,6 +740,14 @@ p, li { white-space: pre-wrap; }
% Opaque
+
+ Save
+ ŠŠ°ŠæŠ°Š·Š²Š°Š½Šµ
+
+
+ Cancel
+ ŠŃŠ¼ŃŠ½Š°
+
Since:
@@ -808,7 +825,7 @@ p, li { white-space: pre-wrap; }
BoardPostDisplayWidgetBase
-
+
Comment
@@ -838,12 +855,12 @@ p, li { white-space: pre-wrap; }
-
+
<p><font color="#ff0000"><b>The author of this message (with ID %1) is banned.</b>
-
+
ago
@@ -851,7 +868,7 @@ p, li { white-space: pre-wrap; }
BoardPostDisplayWidget_card
-
+
Vote up
@@ -871,7 +888,7 @@ p, li { white-space: pre-wrap; }
-
+
Posted by
@@ -909,7 +926,7 @@ p, li { white-space: pre-wrap; }
BoardPostDisplayWidget_compact
-
+
Vote up
@@ -929,7 +946,7 @@ p, li { white-space: pre-wrap; }
-
+
Click to view picture
@@ -959,7 +976,7 @@ p, li { white-space: pre-wrap; }
-
+
Toggle Message Read Status
@@ -969,7 +986,7 @@ p, li { white-space: pre-wrap; }
ŠŠ¾Š²
-
+
TextLabel
@@ -977,12 +994,12 @@ p, li { white-space: pre-wrap; }
BoardsCommentsItem
-
+
I like this
-
+
0
@@ -1002,18 +1019,18 @@ p, li { white-space: pre-wrap; }
-
+
New Comment
-
+
Copy RetroShare Link
-
+
Expand
Š Š°Š·ŃŠøŃŃŠ²Š°Š½Šµ
@@ -1028,12 +1045,12 @@ p, li { white-space: pre-wrap; }
ŠŃемаŃ
ни елеменŃ
-
+
Name
ŠŠ¼Šµ
-
+
Comm value
@@ -1202,17 +1219,17 @@ p, li { white-space: pre-wrap; }
ChannelPage
-
+
Channels
-
+
Tabs
-
+
General
@@ -1222,17 +1239,7 @@ p, li { white-space: pre-wrap; }
-
- Downloads
-
-
-
-
- Maximum Auto Download Size (in GBs)
-
-
-
-
+
Open each channel in a new tab
@@ -1240,7 +1247,7 @@ p, li { white-space: pre-wrap; }
ChannelPostDelegate
-
+
files
@@ -1263,7 +1270,7 @@ into the image, so as to
ChannelsCommentsItem
-
+
I like this
@@ -1288,18 +1295,18 @@ into the image, so as to
-
+
New Comment
-
+
Copy RetroShare Link
-
+
Expand
Š Š°Š·ŃŠøŃŃŠ²Š°Š½Šµ
@@ -1314,7 +1321,7 @@ into the image, so as to
ŠŃемаŃ
ни елеменŃ
-
+
Name
ŠŠ¼Šµ
@@ -1324,7 +1331,17 @@ into the image, so as to
-
+
+ Comment
+
+
+
+
+ Comments
+
+
+
+
Hide
Š”ŠŗŃŠøŠ¹
@@ -1332,7 +1349,7 @@ into the image, so as to
ChatLobbyDialog
-
+
Name
ŠŠ¼Šµ
@@ -1523,7 +1540,7 @@ into the image, so as to
ChatLobbyToaster
-
+
Show Chat Lobby
@@ -1556,14 +1573,13 @@ into the image, so as to
-
-
+
Unknown Lobby
-
-
+
+
Remove All
@@ -1571,13 +1587,13 @@ into the image, so as to
ChatLobbyWidget
-
-
+
+
Name
ŠŠ¼Šµ
-
+
Count
@@ -1587,7 +1603,29 @@ into the image, so as to
-
+
+ Private Subscribed chat rooms
+
+
+
+
+
+ Public Subscribed chat rooms
+
+
+
+
+ Private chat rooms
+
+
+
+
+
+ Public chat rooms
+
+
+
+
Create chat room
@@ -1597,7 +1635,7 @@ into the image, so as to
-
+
Create a non anonymous identity and enter this room
@@ -1654,12 +1692,12 @@ Double click a chat room to enter and chat.
-
+
%1 invites you to chat room named %2
-
+
Choose a non anonymous identity for this chat room:
@@ -1669,42 +1707,23 @@ Double click a chat room to enter and chat.
-
+
[No topic provided]
-
- Private Subscribed
-
-
-
-
-
- Public Subscribed
-
-
-
-
-
+
Private
-
-
-
+
Public
-
- <h1><img width="%1" src=":/icons/help_64.png"> Chat Rooms</h1><p>Chat rooms work pretty much like IRC. They allow you to talk anonymously with tons of people without the need to make friends.</p><p>A chat room can be public (your friends see it) or private (your friends can't see it, unless you invite them with <img src=":/icons/png/add.png" width=%2/>). Once you have been invited to a private room, you will be able to see it when your friends are using it.</p><p>The list at left shows chat lobbies your friends are participating in. You can either <ul> <li>Right click to create a new chat room</li> <li>Double click a chat room to enter, chat, and show it to your friends</li> </ul> Note: For the chat rooms to work properly, your computer needs be on time. So check your system clock!</p>
-
-
-
-
+
Anonymous IDs accepted
@@ -1714,22 +1733,27 @@ Double click a chat room to enter and chat.
-
+
+ <h1><img width="%1" src=":/icons/help_64.png"> Chat Rooms</h1> <p>Chat rooms work pretty much like IRC. They allow you to talk anonymously with tons of people without the need to make friends.</p> <p>A chat room can be public (your friends see it) or private (your friends can't see it, unless you invite them with <img src=":/icons/png/add.png" width=%2/>). Once you have been invited to a private room, you will be able to see it when your friends are using it.</p> <p>The list at left shows chat lobbies your friends are participating in. You can either <ul> <li>Right click to create a new chat room</li> <li>Double click a chat room to enter, chat, and show it to your friends</li> </ul> Note: For the chat rooms to work properly, your computer needs be on time. So check your system clock! </p>
+
+
+
+
Add Auto Subscribe
-
+
Search Chat lobbies
-
+
Search Name
-
+
Columns
@@ -1744,47 +1768,47 @@ Double click a chat room to enter and chat.
-
+
Chat Room info
-
+
Chat room Name:
-
+
Chat room Id:
-
+
Topic:
-
+
Type:
-
+
Security:
-
+
Peers:
-
-
-
-
-
-
+
+
+
+
+
+
TextLabel
@@ -1799,7 +1823,7 @@ Double click a chat room to enter and chat.
-
+
Show
ŠŠ¾ŠŗŠ°Š·Š²Š°Š½Šµ
@@ -1819,7 +1843,7 @@ Double click a chat room to enter and chat.
ChatMsgItem
-
+
Remove Item
ŠŃемаŃ
ни елеменŃ
@@ -1864,7 +1888,7 @@ Double click a chat room to enter and chat.
ChatPage
-
+
General
@@ -1879,7 +1903,7 @@ Double click a chat room to enter and chat.
-
+
Enable custom fonts
@@ -1899,7 +1923,7 @@ Double click a chat room to enter and chat.
-
+
General settings
@@ -1924,7 +1948,7 @@ Double click a chat room to enter and chat.
-
+
Blink tab icon
@@ -1954,7 +1978,7 @@ Double click a chat room to enter and chat.
-
+
Change Chat Font
@@ -1964,7 +1988,7 @@ Double click a chat room to enter and chat.
-
+
History
@@ -1988,7 +2012,7 @@ Double click a chat room to enter and chat.
-
+
Choose your default font for Chat.
@@ -2058,22 +2082,12 @@ Double click a chat room to enter and chat.
-
+
Search
-
- When focus on text browser after showing chat room
-
-
-
-
- Shrink text edit field when not needed
-
-
-
-
+
Fonts
@@ -2083,17 +2097,7 @@ Double click a chat room to enter and chat.
-
- If your system is set up correctly, this next square should measure 1 cm.
-
-
-
-
- This next square is scaled accordingly to your system font size.
-
-
-
-
+
Chat rooms
@@ -2190,7 +2194,7 @@ Double click a chat room to enter and chat.
-
+
Case sensitive
Š§ŃŠ²ŃŃŠ²ŠøŃелноŃŃ ŠŗŃŠ¼ ŃŠµŠ³ŠøŃŃŃŃŠ°
@@ -2296,7 +2300,7 @@ Double click a chat room to enter and chat.
ChatToaster
-
+
Show Chat
@@ -2332,7 +2336,7 @@ Double click a chat room to enter and chat.
ChatWidget
-
+
Close
@@ -2367,12 +2371,12 @@ Double click a chat room to enter and chat.
-
+
<html><head/><body><p>Chat menu</p></body></html>
-
+
Insert emoticon
@@ -2452,6 +2456,11 @@ Double click a chat room to enter and chat.
Insert horizontal rule
+
+
+ Save image
+
+
Import sticker
@@ -2489,7 +2498,7 @@ Double click a chat room to enter and chat.
-
+
is typing...
@@ -2511,7 +2520,7 @@ after HTML conversion.
-
+
Do you really want to physically delete the history?
@@ -2561,7 +2570,7 @@ after HTML conversion.
-
+
Find Case Sensitively
@@ -2583,7 +2592,7 @@ after HTML conversion.
-
+
<b>Find Previous </b><br/><i>Ctrl+Shift+G</i>
@@ -2598,12 +2607,12 @@ after HTML conversion.
-
+
(Status)
-
+
Attach a File
@@ -2619,12 +2628,12 @@ after HTML conversion.
-
+
<b>Mark this selected text</b><br><i>Ctrl+M</i>
-
+
Person id:
@@ -2635,12 +2644,12 @@ Double click on it to add his name on text writer.
-
+
Unsigned
-
+
items found.
@@ -2660,7 +2669,7 @@ Double click on it to add his name on text writer.
-
+
Don't stop to color after
@@ -2686,7 +2695,7 @@ Double click on it to add his name on text writer.
CirclesDialog
-
+
Showing details:
@@ -2708,7 +2717,7 @@ Double click on it to add his name on text writer.
-
+
Personal Circles
@@ -2734,7 +2743,7 @@ Double click on it to add his name on text writer.
-
+
Friends
@@ -2794,7 +2803,7 @@ Double click on it to add his name on text writer.
-
+
External Circles (Admin)
@@ -2810,7 +2819,7 @@ Double click on it to add his name on text writer.
-
+
Circles
@@ -2862,45 +2871,45 @@ Double click on it to add his name on text writer.
-
+
RetroShare
RetroShare
-
+
-
+
Error : cannot get peer details.
-
+
Retroshare ID
-
+
<p>This Retroshare ID contains:
-
+
<p>This certificate contains:
-
+
<li> <b>onion address</b> and <b>port</b>
-
+
<li><b>IP address</b> and <b>port</b>:
-
+
<b>IP address</b> and <b>port</b>:
@@ -2910,7 +2919,7 @@ Double click on it to add his name on text writer.
-
+
Not connected
@@ -2992,17 +3001,12 @@ Double click on it to add his name on text writer.
без
-
+
<li>a <b>node ID</b> and <b>name</b>
-
- <b>DNS:</b> :
-
-
-
-
+
<p>You can use this Retroshare ID to make new friends. Send it by email, or give it hand to hand.</p>
@@ -3022,7 +3026,7 @@ Double click on it to add his name on text writer.
-
+
with
@@ -3090,7 +3094,7 @@ Double click on it to add his name on text writer.
-
+
@@ -3106,12 +3110,12 @@ Double click on it to add his name on text writer.
-
+
Peer details
-
+
Name:
ŠŠ¼Šµ:
@@ -3121,17 +3125,17 @@ Double click on it to add his name on text writer.
-
+
Options
ŠŠ°ŃŃŃŠ¾Š¹ŠŗŠø
-
+
<html><head/><body><p>This box expects your friend's Retroshare certificate. WARNING: this is different from your friend's profile key. Do not paste your friend's profile key here (not even a part of it). It's not going to work.</p></body></html>
-
+
Add friend to group:
@@ -3141,7 +3145,7 @@ Double click on it to add his name on text writer.
-
+
Please paste below your friend's Retroshare ID
@@ -3166,22 +3170,12 @@ Double click on it to add his name on text writer.
-
- Signers:
-
-
-
-
- Known IP:
-
-
-
-
+
Add as friend to connect with
-
+
Sorry, some error appeared
@@ -3201,27 +3195,32 @@ Double click on it to add his name on text writer.
-
+
Key validity:
-
+
Profile ID:
-
+
+ Signers
+
+
+
+
<html><head/><body><p><span style=" font-size:10pt;">Signing a friend's key is a way to express your trust into this friend, to your other friends. The signatures below cryptographically attest that owners of the listed keys recognise the current PGP key as authentic.</span></p></body></html>
-
+
This peer is already on your friend list. Adding it might just set it's ip address.
-
+
To accept the Friend Request, click the Accept button.
@@ -3267,17 +3266,17 @@ Double click on it to add his name on text writer.
-
+
Certificate Load Failed
-
+
Not a valid Retroshare certificate!
-
+
RetroShare Invitation
@@ -3297,12 +3296,12 @@ Warning: In your File-Transfer option, you select allow direct download to No.
-
+
This is your own certificate! You would not want to make friend with yourself. Wouldn't you?
-
+
@@ -3310,7 +3309,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
-
+
This key is already on your trusted list
@@ -3350,7 +3349,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
-
+
Profile password needed.
@@ -3375,7 +3374,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
-
+
Valid Retroshare ID
@@ -3385,7 +3384,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
-
+
RetroShare Certificate (*.rsc );;All Files (*)
@@ -3424,7 +3423,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
-
+
IP-Addr:
@@ -3434,7 +3433,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
-
+
Show Advanced options
@@ -3459,7 +3458,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
-
+
This key is already in your keyring
@@ -3472,7 +3471,7 @@ even if you don't make friends.
-
+
Certificate has wrong version number. Remember that v0.6 and v0.5 networks are incompatible.
@@ -3507,7 +3506,7 @@ even if you don't make friends.
-
+
No IP in this certificate!
@@ -3517,7 +3516,12 @@ even if you don't make friends.
-
+
+ [Unknown]
+
+
+
+
Added with certificate from %1
@@ -3582,7 +3586,7 @@ even if you don't make friends.
-
+
UDP Setup
@@ -3610,7 +3614,7 @@ p, li { white-space: pre-wrap; }
-
+
Connection Assistant
@@ -3620,20 +3624,17 @@ p, li { white-space: pre-wrap; }
-
-
+
Unknown State
-
-
+
Offline
-
-
+
Behind Symmetric NAT
@@ -3643,14 +3644,12 @@ p, li { white-space: pre-wrap; }
-
-
+
NET Restart
-
-
+
Behind NAT
@@ -3660,8 +3659,7 @@ p, li { white-space: pre-wrap; }
-
-
+
NET STATE GOOD!
@@ -3686,7 +3684,7 @@ p, li { white-space: pre-wrap; }
-
+
Lookup requires DHT
@@ -3978,7 +3976,7 @@ p, li { white-space: pre-wrap; }
-
+
@@ -3986,8 +3984,7 @@ p, li { white-space: pre-wrap; }
-
-
+
UNVERIFIABLE FORWARD!
@@ -3997,7 +3994,7 @@ p, li { white-space: pre-wrap; }
-
+
Searching
@@ -4033,12 +4030,12 @@ p, li { white-space: pre-wrap; }
-
+
Name
ŠŠ¼Šµ
-
+
<html><head/><body><p>The circle name, contact author and invited member list will be visible to all invited members. If the circle is not private, it will also be visible to neighbor nodes of the nodes who host the invited members.</p></body></html>
@@ -4058,7 +4055,7 @@ p, li { white-space: pre-wrap; }
-
+
IDs
@@ -4078,18 +4075,18 @@ p, li { white-space: pre-wrap; }
-
+
Cancel
ŠŃŠ¼ŃŠ½Š°
-
+
Nickname
-
+
Invited Members
@@ -4104,7 +4101,11 @@ p, li { white-space: pre-wrap; }
-
+ Type
+ Тип
+
+
+
Name:
ŠŠ¼Šµ:
@@ -4144,19 +4145,19 @@ p, li { white-space: pre-wrap; }
-
-
+
+
RetroShare
RetroShare
-
+
Please set a name for your Circle
-
+
No Restriction Circle Selected
@@ -4166,24 +4167,12 @@ p, li { white-space: pre-wrap; }
-
- Circle created
-
-
-
-
- Your new circle has been created:
- Name: %1
- Id: %2.
-
-
-
-
+
[Unknown]
-
+
Add
ŠŠ¾Š±Š°Š²Ńне
@@ -4193,7 +4182,7 @@ p, li { white-space: pre-wrap; }
-
+
Search
@@ -4246,13 +4235,13 @@ p, li { white-space: pre-wrap; }
-
+
Create
-
+
Add Member
@@ -4271,7 +4260,7 @@ p, li { white-space: pre-wrap; }
-
+
Group Name:
@@ -4306,7 +4295,7 @@ p, li { white-space: pre-wrap; }
CreateGxsChannelMsg
-
+
New Channel Post
@@ -4316,7 +4305,7 @@ p, li { white-space: pre-wrap; }
-
+
Post
@@ -4461,17 +4450,17 @@ p, li { white-space: pre-wrap; }
-
+
RetroShare
RetroShare
-
+
This file already in this post:
-
+
Post refers to non shared files
@@ -4496,12 +4485,7 @@ p, li { white-space: pre-wrap; }
-
- Cannot publish post
-
-
-
-
+
Load thumbnail picture
@@ -4516,12 +4500,18 @@ p, li { white-space: pre-wrap; }
Š”ŠŗŃŠøŠ¹
-
+
+
Generate mass data
-
+
+ Do you really want to generate %1 messages ?
+
+
+
+
You are about to add files you're not actually sharing. Do you still want this to happen?
@@ -4555,7 +4545,7 @@ p, li { white-space: pre-wrap; }
CreateGxsForumMsg
-
+
Post Forum Message
@@ -4565,16 +4555,7 @@ p, li { white-space: pre-wrap; }
ФоŃŃŠ¼
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'MS Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8.25pt;"><br /></p></body></html>
-
-
-
-
+
Attach File
@@ -4589,7 +4570,16 @@ p, li { white-space: pre-wrap; }
-
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Sans Serif'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Sans Serif';"><br /></p></body></html>
+
+
+
+
Attach a Picture
@@ -4604,7 +4594,7 @@ p, li { white-space: pre-wrap; }
-
+
Post
@@ -4634,17 +4624,17 @@ p, li { white-space: pre-wrap; }
-
+
No Forum
-
+
In Reply to
-
+
Title
ŠŠ°Š³Š»Š°Š²ŠøŠµ
@@ -4697,7 +4687,7 @@ Do you want to discard this message?
-
+
No compatible ID for this forum
@@ -4707,8 +4697,8 @@ Do you want to discard this message?
-
-
+
+
Generate mass data
@@ -4731,7 +4721,7 @@ Do you want to discard this message?
CreateLobbyDialog
-
+
A chat room is a decentralized and anonymous chat group. All participants receive all messages. Once the room is created you can invite other friend nodes with invite button on top right.
@@ -4766,7 +4756,7 @@ Do you want to discard this message?
-
+
Create
@@ -4776,7 +4766,7 @@ Do you want to discard this message?
ŠŃŠ¼ŃŠ½Š°
-
+
require PGP-signed identities
@@ -4791,7 +4781,7 @@ Do you want to discard this message?
-
+
Create Chat Room
@@ -4812,7 +4802,7 @@ Do you want to discard this message?
-
+
Identity to use:
@@ -4820,17 +4810,17 @@ Do you want to discard this message?
CryptoPage
-
+
Public Information
-
+
Name:
ŠŠ¼Šµ:
-
+
Location:
@@ -4840,12 +4830,12 @@ Do you want to discard this message?
-
+
Software Version:
-
+
Online since:
@@ -4865,7 +4855,12 @@ Do you want to discard this message?
-
+
+ <html><head/><body><p>Use this to export your profile key. You can then import it in a different computer and make a new node with the same profile. Doing so, existing friends that you also add to the new node will automatically recognise that new node as friend.</p></body></html>
+
+
+
+
Export
@@ -4875,7 +4870,7 @@ Do you want to discard this message?
-
+
Other Information
@@ -4885,12 +4880,17 @@ Do you want to discard this message?
-
+
Profile
-
+
+ Certificate
+
+
+
+
<html><head/><body><p>This option includes all signatures of your profile key. Signatures are not mandatory, but only a way to express your trust in some particular profile.</p></body></html>
@@ -4900,7 +4900,7 @@ Do you want to discard this message?
-
+
Export Identity
@@ -4970,33 +4970,33 @@ and use the import button to load it
-
+
TextLabel
-
+
PGP fingerprint:
-
+
+ Node information
+
+
+
+
PGP Id :
-
+
Friend nodes:
-
- <html><head/><body><p>Use this button to export your profile key. You can then import it in a different computer and make a new node with the same profile. Doing so, existing friends that you also add to the new node will automatically recognise that new node as friend.</p></body></html>
-
-
-
-
+
<html><head/><body><p>The short format only contains the profile fingerprint, and authentication is based on the node ID (ID of the SSL key). If you choose the old (long) format, the certificate includes the full profile public key. There is no fundamental difference between making friends with either method, because the public profile keys will be exchanged and checked w.r.t. the fingerprint after connection.</p></body></html>
@@ -5086,7 +5086,7 @@ and use the import button to load it
DLListDelegate
-
+
B
@@ -5754,7 +5754,7 @@ and use the import button to load it
DownloadToaster
-
+
Start file
@@ -5762,38 +5762,38 @@ and use the import button to load it
ExprParamElement
-
+
-
+
to
-
+
ignore case
-
-
- yyyy-MM-dd
+
+
+ dd.MM.yyyy
-
-
+
+
KB
-
-
+
+
MB
-
-
+
+
GB
@@ -5801,12 +5801,12 @@ and use the import button to load it
ExpressionWidget
-
+
Expression Widget
-
+
Delete this expression
@@ -5968,7 +5968,7 @@ and use the import button to load it
FilesDefs
-
+
Picture
@@ -5978,7 +5978,7 @@ and use the import button to load it
-
+
Audio
@@ -6038,21 +6038,11 @@ and use the import button to load it
C
-
-
- APK
-
-
-
-
- DLL
-
-
FlatStyle_RDM
-
+
Friends Directories
@@ -6174,7 +6164,7 @@ and use the import button to load it
-
+
ID
@@ -6216,7 +6206,7 @@ and use the import button to load it
-
+
Group
@@ -6252,7 +6242,7 @@ and use the import button to load it
-
+
Search
@@ -6268,7 +6258,7 @@ and use the import button to load it
-
+
Profile details
@@ -6505,7 +6495,7 @@ at least one peer was not added to a group
FriendRequestToaster
-
+
Confirm Friend Request
@@ -6543,7 +6533,7 @@ at least one peer was not added to a group
-
+
Mark all
@@ -6554,132 +6544,16 @@ at least one peer was not added to a group
-
- FriendServerControl
-
-
- Server onion address:
-
-
-
-
- <html><head/><body><p>Enter here the onion address of the Friend Server that was given to you. The address will be automatically checked after you enter it and a green bullet will appear if the server is online.</p></body></html>
-
-
-
-
- Onion address of the friend server
-
-
-
-
- <html><head/><body><p>Communication port of the server. You usually get a server address as somestring.onion:port. The port is the number right after ":"</p></body></html>
-
-
-
-
- Retroshare passphrase:
-
-
-
-
- <html><head/><body><p>Your Retroshare login passphrase is needed to ensure the security of data exchange with the friend server.</p></body></html>
-
-
-
-
- Your retroshare passphrase
-
-
-
-
- On/Off
-
-
-
-
- Friends to request:
-
-
-
-
- Auto accept received certificates as friends
-
-
-
-
- Auto-accept
-
-
-
-
- Name
- ŠŠ¼Šµ
-
-
-
- Node ID
-
-
-
-
- Address
-
-
-
-
- Status
- Š”ŃŠ°ŃŃŃ
-
-
-
- <h1><img width="%1" src=":/icons/help_64.png"> Friend Server</h1> <p>This configuration panel allows you to specify the onion address of a friend server. Retroshare will talk to that server anonymously through Tor and use it to acquire a fixed number of friends.</p> <p>The friend server will continue supplying new friends until that number is reached in particular if you add your own friends manually, the friend server may become useless and you will save bandwidth disabling it. When disabling it, you will keep existing friends.</p> <p>The friend server only knows your peer ID and profile public key. It doesn't know your IP address.</p>
-
-
-
-
- Make friend
-
-
-
-
- Missing profile passphrase.
-
-
-
-
- Your profile passphrase is missing. Please enter is in the field below before enabling the friend server.
-
-
-
-
- Trying to contact friend server
-This may take up to 1 min.
-
-
-
-
- Friend server is currently reachable.
-
-
-
-
- The proxy is not enabled or broken.
-Are all services up and running fine??
-Also check your ports!
-
-
-
FriendsDialog
-
+
Edit status message
-
-
+
+
Broadcast
@@ -6762,38 +6636,33 @@ Also check your ports!
-
+
Keyring
-
+
+ <h1><img width="32" src=":/icons/help_64.png"> Network</h1> <p>The Network tab shows your friend Retroshare nodes: the neighbor Retroshare nodes that are connected to you. </p> <p>You can group nodes together to allow a finer level of information access, for instance to only allow some nodes to see some of your files.</p> <p>On the right, you will find 3 useful tabs: <ul> <li>Broadcast sends messages to all connected nodes at once</li> <li>Local network graph shows the network around you, based on discovery information</li> <li>Keyring contains node keys you collected, mostly forwarded to you by your friend nodes</li> </ul> </p>
+
+
+
+
Retroshare broadcast chat: messages are sent to all connected friends.
-
-
+
+
Network
-
- Friend Server
-
-
-
-
+
Network graph
-
- <h1><img width="%1" src=":/icons/help_64.png"> Network</h1><p>The Network tab shows your friend Retroshare nodes: the neighbor Retroshare nodes that are connected to you.</p><p>You can group nodes together to allow a finer level of information access, for instance to only allow some nodes to see some of your files.</p><p>On the right, you will find 3 useful tabs: <ul> <li>Broadcast sends messages to all connected nodes at once</li> <li>Local network graph shows the network around you, based on discovery information</li> <li>Keyring contains node keys you collected, mostly forwarded to you by your friend nodes</li> </ul> </p>
-
-
-
-
+
Set your status message here.
@@ -6811,17 +6680,7 @@ Also check your ports!
ŠŠ°Ńола
-
- SAMv3 support is not available
-
-
-
-
- I2P instance address with SAMv3 enabled
-
-
-
-
+
All fields are required with a minimum of 3 characters
@@ -6831,12 +6690,17 @@ Also check your ports!
-
+
Port
-
+
+ Use BOB
+
+
+
+
This password is for PGP
@@ -6857,38 +6721,38 @@ Also check your ports!
-
+
PGP Key Length
-
-
+
+
<html><head/><body><p>Put a strong password here. This password protects your private node key!</p></body></html>
-
+
<html><head/><body><p>Please move your mouse around in order to collect as much randomness as possible. A minimum of 20% is needed to create your node keys.</p></body></html>
-
+
Standard node
-
+
<html><head/><body><p>Your node name designates the Retroshare instance that</p><p>will run on this computer.</p></body></html>
-
+
Node name
-
+
Node type:
@@ -6908,12 +6772,12 @@ Also check your ports!
-
+
<html><head/><body><p>The profile name identifies you over the network.</p><p>It is used by your friends to accept connections from you.</p><p>You can create multiple Retroshare nodes with the</p><p>same profile on different computers.</p><p><br/></p></body></html>
-
+
Export this profle
@@ -6923,43 +6787,38 @@ Also check your ports!
-
+
<html><head/><body><p>This should be a Tor Onion address of the form: xa76giaf6ifda7ri63i263.onion <br/>or an I2P address in the form: [52 characters].b32.i2p </p><p>In order to get one, you must configure either Tor or I2P to create a new hidden service / server tunnel. </p><p>You can also leave this blank now, but your node will only work if you correctly set the Tor/I2P service address in Options->Network->Hidden Service configuration panel.</p></body></html>
-
- Use I2P
-
-
-
-
+
<html><head/><body><p>Identities are used when you write in chat rooms, forums and channel comments. </p><p>They also receive/send email over the Retroshare network. You can create</p><p>a signed identity now, or do it later on when you get to need it.</p></body></html>
-
+
Go!
-
-
+
+
TextLabel
-
+
hidden address
-
+
Your profile is associated with a PGP key pair. RetroShare currently ignores DSA keys.
-
+
<html><head/><body><p>This is your connection port.</p><p>Any value between 1024 and 65535 </p><p>should be ok. You can change it later.</p></body></html>
@@ -7003,13 +6862,13 @@ and use the import button to load it
-
+
Import profile
-
+
Create new profile and new Retroshare node
@@ -7019,7 +6878,7 @@ and use the import button to load it
-
+
Tor/I2P address
@@ -7054,7 +6913,7 @@ and use the import button to load it
-
+
<html><p>Put a strong password here. This password will be required to start your Retroshare node and protects all your data.</p></html>
@@ -7064,7 +6923,12 @@ and use the import button to load it
-
+
+ BOB support is not available
+
+
+
+
<p>Node creation is disabled until all fields correctly set.</p>
@@ -7074,7 +6938,12 @@ and use the import button to load it
-
+
+ I2P instance address with BOB enabled
+
+
+
+
I2P instance address
@@ -7300,13 +7169,27 @@ and use the import button to load it
-
+
Invite Friends
-
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">RetroShare is nothing without your Friends. Click on the Button to start the process.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Email an Invitation with your "ID Certificate" to your friends.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Be sure to get their invitation back as well... </span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">You can only connect with friends if you have both added each other.</span></p></body></html>
+
+
+
+
Add Your Friends to RetroShare
@@ -7316,57 +7199,39 @@ and use the import button to load it
-
- Connect To Friends
-
-
-
-
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">RetroShare is nothing without your Friends. Click on the Button to start the process.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Email an Invitation with your "ID Certificate" to your friends.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Be sure to get their invitation back as well... </span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">You can only connect with friends if you have both added each other.</span></p></body></html>
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Be Online at the same time as your friends, and RetroShare will automatically connect you!</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Your client needs to find the RetroShare Network before it can make connections.</span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">This takes 5-30 minutes the first time you start up RetroShare</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">The DHT indicator (in the Status Bar) turns Green when it can make connections.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">After a couple of minutes, the NAT indicator (also in the Status Bar) switch to Yellow or Green.</span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">If it remains Red, then you have a Nasty Firewall, that RetroShare struggles to connect through.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Look in the Further Help section for more advice about connecting.</span></p></body></html>
-
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">When your friends send you their invitations, click to open the Add Friends window.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Paste your Friends' "ID Certificates" into the window and add them as friends.</span></p></body></html>
-
-
-
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Be Online at the same time as your friends, and RetroShare will automatically connect you!</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Your client needs to find the RetroShare Network before it can make connections.</span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">This takes 5-30 minutes the first time you start up RetroShare</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">The DHT indicator (in the Status Bar) turns Green when it can make connections.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">After a couple of minutes, the NAT indicator (also in the Status Bar) switch to Yellow or Green.</span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">If it remains Red, then you have a Nasty Firewall, that RetroShare struggles to connect through.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Look in the Further Help section for more advice about connecting.</span></p></body></html>
-
-
-
-
- Advanced: Open Firewall Port
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">You can improve your Retroshare performance by opening an External Port. </span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">This will speed up connections and allow more people to connect with you. </span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">The easiest way to do this is by enabling UPnP on your Wireless Box or Router.</span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">As each router is different, you will need to find out your Router Model and search the Internet for instructions.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">If none of this makes sense to you, don't worry about it Retroshare will still work.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p></body></html>
@@ -7374,45 +7239,49 @@ p, li { white-space: pre-wrap; }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">You can improve your Retroshare performance by opening an External Port. </span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">This will speed up connections and allow more people to connect with you. </span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">The easiest way to do this is by enabling UPnP on your Wireless Box or Router.</span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">As each router is different, you will need to find out your Router Model and search the Internet for instructions.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">If none of this makes sense to you, don't worry about it Retroshare will still work.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p></body></html>
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Having trouble getting started with RetroShare?</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">1) Look at the FAQ Wiki. This is a bit old, we are trying to bring it up to date.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">2) Check out the Online Forums. Ask questions and discuss features.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">3) Try the Internal RetroShare Forums </span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;"> - These come online once you are connected to friends.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">4) If you are still stuck. Email us.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Enjoy Retrosharing</span></p></body></html>
-
+
+ Connect To Friends
+
+
+
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">When your friends send you their invitations, click to open the Add Friends window.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Paste your Friends' "ID Certificates" into the window and add them as friends.</span></p></body></html>
+
+
+
+
+ Advanced: Open Firewall Port
+
+
+
+
Further Help and Support
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Having trouble getting started with RetroShare?</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">1) Look at the FAQ Wiki. This is a bit old, we are trying to bring it up to date.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">2) Check out the Online Forums. Ask questions and discuss features.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">3) Try the Internal RetroShare Forums </span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;"> - These come online once you are connected to friends.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">4) If you are still stuck. Email us.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Enjoy Retrosharing</span></p></body></html>
-
-
-
-
+
Open RS Website
@@ -7437,7 +7306,7 @@ p, li { white-space: pre-wrap; }
-
+
RetroShare Invitation
@@ -7487,12 +7356,12 @@ p, li { white-space: pre-wrap; }
-
+
RetroShare Support
-
+
It has many features, including built-in chat, messaging,
@@ -7616,7 +7485,7 @@ p, li { white-space: pre-wrap; }
GroupChatToaster
-
+
Show Group Chat
@@ -7624,7 +7493,7 @@ p, li { white-space: pre-wrap; }
GroupChooser
-
+
[Unknown]
@@ -7794,7 +7663,7 @@ p, li { white-space: pre-wrap; }
GroupTreeWidget
-
+
Title
ŠŠ°Š³Š»Š°Š²ŠøŠµ
@@ -7807,12 +7676,12 @@ p, li { white-space: pre-wrap; }
-
+
Description
-
+
Number of Unread message
@@ -7837,7 +7706,7 @@ p, li { white-space: pre-wrap; }
-
+
You are admin (modify names and description using Edit menu)
@@ -7852,14 +7721,14 @@ p, li { white-space: pre-wrap; }
-
-
+
+
Last Post
-
+
Name
ŠŠ¼Šµ
@@ -7870,13 +7739,13 @@ p, li { white-space: pre-wrap; }
-
+
Never
-
+
<html><head/><body><p>Searches a single keyword into the reachable network.</p><p>Objects already provided by friend nodes are not reported.</p></body></html>
@@ -7889,7 +7758,7 @@ p, li { white-space: pre-wrap; }
GuiExprElement
-
+
and
@@ -8025,7 +7894,7 @@ p, li { white-space: pre-wrap; }
GxsChannelDialog
-
+
Channels
@@ -8036,22 +7905,22 @@ p, li { white-space: pre-wrap; }
-
+
Enable Auto-Download
-
+
My Channels
-
- <h1><img width="%1" src=":/icons/help_64.png"> Channels</h1><p>Channels allow you to post data (e.g. movies, music) that will spread in the network</p><p>You can see the channels your friends are subscribed to, and you automatically forward subscribed channels to your friends. This promotes good channels in the network.</p><p>Only the channel's creator can post on that channel. Other peers in the network can only read from it, unless the channel is private. You can however share the posting rights or the reading rights with friend Retroshare nodes.</p><p>Channels can be made anonymous, or attached to a Retroshare identity so that readers can contact you if needed. Enable "Allow Comments" if you want to let users comment on your posts.</p><p>Channel posts are kept for %2 days, and sync-ed over the last %3 days, unless you change this.</p><p>UI Tip: use Control + mouse wheel to control image size in the thumbnail view.</p>
+
+ <h1><img width="32" src=":/icons/help_64.png"> Channels</h1> <p>Channels allow you to post data (e.g. movies, music) that will spread in the network</p> <p>You can see the channels your friends are subscribed to, and you automatically forward subscribed channels to your friends. This promotes good channels in the network.</p> <p>Only the channel's creator can post on that channel. Other peers in the network can only read from it, unless the channel is private. You can however share the posting rights or the reading rights with friend Retroshare nodes.</p> <p>Channels can be made anonymous, or attached to a Retroshare identity so that readers can contact you if needed. Enable "Allow Comments" if you want to let users comment on your posts.</p> <p>Channel posts are kept for %1 days, and sync-ed over the last %2 days, unless you change this.</p> <p>UI Tip: use Control + mouse wheel to control image size in the thumbnail view.</p>
-
+
Subscribed Channels
@@ -8071,12 +7940,12 @@ p, li { white-space: pre-wrap; }
-
+
Disable Auto-Download
-
+
Set download directory
@@ -8111,22 +7980,22 @@ p, li { white-space: pre-wrap; }
-
+
Play
-
+
Open folder
-
+
Open file
-
+
Error
@@ -8146,17 +8015,17 @@ p, li { white-space: pre-wrap; }
-
+
Are you sure that you want to cancel and delete the file?
-
+
Can't open folder
-
+
Play File
@@ -8166,10 +8035,25 @@ p, li { white-space: pre-wrap; }
+
+ GxsChannelFilesWidget
+
+ Form
+ Š¤Š¾ŃŠ¼ŃŠ»ŃŃ
+
+
+ Title
+ ŠŠ°Š³Š»Š°Š²ŠøŠµ
+
+
+ Status
+ Š”ŃŠ°ŃŃŃ
+
+
GxsChannelGroupDialog
-
+
Create New Channel
@@ -8207,18 +8091,8 @@ p, li { white-space: pre-wrap; }
GxsChannelGroupItem
-
- Last activity
-
-
-
-
- TextLabel
-
-
-
-
- Subscribe this Channel
+
+ Subscribe to Channel
@@ -8233,7 +8107,7 @@ p, li { white-space: pre-wrap; }
-
+
Expand
Š Š°Š·ŃŠøŃŃŠ²Š°Š½Šµ
@@ -8248,7 +8122,7 @@ p, li { white-space: pre-wrap; }
-
+
Loading
@@ -8262,11 +8136,6 @@ p, li { white-space: pre-wrap; }
New Channel:
-
-
- Never
-
-
Hide
@@ -8276,7 +8145,7 @@ p, li { white-space: pre-wrap; }
GxsChannelPostItem
-
+
New Comment:
@@ -8297,7 +8166,7 @@ p, li { white-space: pre-wrap; }
-
+
Play
@@ -8359,18 +8228,18 @@ p, li { white-space: pre-wrap; }
Š”ŠŗŃŠøŠ¹
-
+
New
ŠŠ¾Š²
-
+
0
-
-
+
+
Comment
@@ -8385,17 +8254,17 @@ p, li { white-space: pre-wrap; }
-
+
Loading...
-
+
Comments
-
+
Post
@@ -8420,16 +8289,35 @@ p, li { white-space: pre-wrap; }
+
+ GxsChannelPostsWidget
+
+ Title
+ ŠŠ°Š³Š»Š°Š²ŠøŠµ
+
+
+ Search Title
+ Š¢ŃŃŃŠµŠ½Šµ в Š·Š°Š³Š»Š°Š²ŠøŠµŃо
+
+
+ Feeds
+ ŠŠ½ŃŠ¾ŃŠ¼Š°Ńионни канали
+
+
+ Description:
+ ŠŠæŠøŃŠ°Š½ŠøŠµ:
+
+
GxsChannelPostsWidgetWithModel
-
+
Post to Channel
-
+
Add new post
@@ -8499,7 +8387,7 @@ p, li { white-space: pre-wrap; }
- Items (locally / at friends):
+ Posts (locally / at friends):
@@ -8535,7 +8423,7 @@ p, li { white-space: pre-wrap; }
-
+
Comments
@@ -8550,13 +8438,13 @@ p, li { white-space: pre-wrap; }
ŠŠ½ŃŠ¾ŃŠ¼Š°Ńионни канали
-
-
+
+
Click to switch to list view
-
+
Show unread posts only
@@ -8571,7 +8459,7 @@ p, li { white-space: pre-wrap; }
-
+
No text to display
@@ -8586,7 +8474,7 @@ p, li { white-space: pre-wrap; }
-
+
Switch to list view
@@ -8646,22 +8534,12 @@ p, li { white-space: pre-wrap; }
-
+
Comments (%1)
-
- Loading...
-
-
-
-
- No posts available in this channel.
-
-
-
-
+
[No name]
@@ -8736,13 +8614,12 @@ p, li { white-space: pre-wrap; }
-
-
+
Copy Retroshare link
-
+
Subscribed
@@ -8793,17 +8670,17 @@ p, li { white-space: pre-wrap; }
GxsCircleItem
-
+
TextLabel
-
+
Circle name:
-
+
Accept
@@ -8918,7 +8795,7 @@ p, li { white-space: pre-wrap; }
GxsCommentContainer
-
+
Comment Container
@@ -8931,7 +8808,7 @@ p, li { white-space: pre-wrap; }
Š¤Š¾ŃŠ¼ŃŠ»ŃŃ
-
+
<html><head/><body><p><span style=" font-family:'-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol'; font-size:14px; color:#24292e; background-color:#ffffff;">sort by</span></p></body></html>
@@ -8961,7 +8838,7 @@ p, li { white-space: pre-wrap; }
-
+
Comment
@@ -9000,7 +8877,7 @@ p, li { white-space: pre-wrap; }
GxsCommentTreeWidget
-
+
Reply to Comment
@@ -9024,21 +8901,6 @@ p, li { white-space: pre-wrap; }
Vote Down
-
-
- Show Author
-
-
-
-
- Cannot vote
-
-
-
-
- Error while voting:
-
-
GxsCreateCommentDialog
@@ -9048,7 +8910,7 @@ p, li { white-space: pre-wrap; }
-
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
@@ -9077,7 +8939,7 @@ p, li { white-space: pre-wrap; }
-
+
Post
@@ -9108,7 +8970,7 @@ before you can comment
-
+
It remains %1 characters after HTML conversion.
@@ -9159,7 +9021,7 @@ before you can comment
GxsForumGroupItem
-
+
Subscribe to Forum
@@ -9175,7 +9037,7 @@ before you can comment
-
+
Expand
Š Š°Š·ŃŠøŃŃŠ²Š°Š½Šµ
@@ -9194,11 +9056,6 @@ before you can comment
Moderator list
-
-
- TextLabel
-
-
Loading...
@@ -9228,13 +9085,13 @@ before you can comment
GxsForumMsgItem
-
-
+
+
Subject:
-
+
Unsubscribe To Forum
@@ -9245,7 +9102,7 @@ before you can comment
-
+
Expand
Š Š°Š·ŃŠøŃŃŠ²Š°Š½Šµ
@@ -9265,17 +9122,17 @@ before you can comment
-
+
Loading...
-
+
Forum Feed
-
+
Hide
Š”ŠŗŃŠøŠ¹
@@ -9288,66 +9145,59 @@ before you can comment
Š¤Š¾ŃŠ¼ŃŠ»ŃŃ
-
+
Start new Thread for Selected Forum
-
- Threaded
-
-
-
-
-
-
- ...
- ...
-
-
-
- Flat
-
-
-
-
- Latest post in thread
-
-
-
-
+
Search forums
Š¢ŃŃŃŠµŠ½Šµ ФоŃŃŠ¼Šø
-
+
New Thread
+
+
+ Threaded View
+
+
+
+
+ Flat View
+
+
-
+
Title
ŠŠ°Š³Š»Š°Š²ŠøŠµ
-
-
+
+
Date
ŠŠ°Ńа
-
+
Author
ŠŠ²ŃоŃ
-
+
+ Save image
+
+
+
+
Loading
-
+
<html><head/><body><p>Click here to clear current selected thread and display more information about this forum.</p></body></html>
@@ -9357,7 +9207,12 @@ before you can comment
-
+
+ Lastest post in thread
+
+
+
+
Reply Message
@@ -9397,23 +9252,23 @@ before you can comment
Š¢ŃŃŃŠµŠ½Šµ на Š°Š²ŃоŃ
-
+
No name
ŠŃма име
-
-
+
+
Reply
-
+
<p>Subscribing to the forum will gather available posts from your subscribed friends, and make the forum visible to all other friends.</p><p>Afterwards you can unsubscribe from the context menu of the forum list at left.</p>
-
+
Loading...
@@ -9456,12 +9311,16 @@ before you can comment
-
+
Hide
Š”ŠŗŃŠøŠ¹
-
+ Expand
+ Š Š°Š·ŃŠøŃŃŠ²Š°Š½Šµ
+
+
+
[unknown]
@@ -9491,8 +9350,8 @@ before you can comment
-
-
+
+
Distribution
@@ -9506,6 +9365,10 @@ before you can comment
Anti-spam
+
+ none
+ без
+
<p><font color="#ff0000"><b>The author of this message (with ID %1) is banned.</b>
@@ -9575,12 +9438,12 @@ before you can comment
-
+
New thread
-
+
Edit
Š ŠµŠ“Š°ŠŗŃŠøŃане
@@ -9641,7 +9504,7 @@ before you can comment
-
+
Show column
@@ -9661,7 +9524,7 @@ before you can comment
-
+
Anonymous/unknown posts forwarded if reputation is positive
@@ -9713,7 +9576,7 @@ This message is missing. You should receive it later.
-
+
No result.
@@ -9723,7 +9586,7 @@ This message is missing. You should receive it later.
-
+
Failed to retrieve this message. Is the database currently overloaded?
@@ -9738,7 +9601,7 @@ This message is missing. You should receive it later.
-
+
(Latest)
@@ -9804,12 +9667,12 @@ This message is missing. You should receive it later.
GxsForumsDialog
-
- <h1><img width="%1" src=":/icons/help_64.png"> Forums</h1><p>Retroshare Forums look like internet forums, but they work in a decentralized way</p><p>You see forums your friends are subscribed to, and you forward subscribed forums to your friends. This automatically promotes interesting forums in the network.</p><p>Forum messages are kept for %2 days and sync-ed over the last %3 days, unless you configure it otherwise.</p>
+
+ <h1><img width="32" src=":/icons/help_64.png"> Forums</h1> <p>Retroshare Forums look like internet forums, but they work in a decentralized way</p> <p>You see forums your friends are subscribed to, and you forward subscribed forums to your friends. This automatically promotes interesting forums in the network.</p> <p>Forum messages are kept for %1 days and sync-ed over the last %2 days, unless you configure it otherwise.</p>
-
+
Forums
@@ -9844,12 +9707,12 @@ This message is missing. You should receive it later.
GxsGroupDialog
-
+
Name
ŠŠ¼Šµ
-
+
Key recipients can publish to restricted-type group and can view and publish for private-type channels
@@ -9860,12 +9723,12 @@ This message is missing. You should receive it later.
-
+
Description
-
+
Message Distribution
@@ -9873,7 +9736,7 @@ This message is missing. You should receive it later.
-
+
Public
@@ -9933,7 +9796,7 @@ This message is missing. You should receive it later.
-
+
Comments:
@@ -9956,7 +9819,7 @@ This message is missing. You should receive it later.
-
+
All People
@@ -9972,12 +9835,12 @@ This message is missing. You should receive it later.
-
+
Restricted to circle:
-
+
Limited to your friends
@@ -9994,23 +9857,23 @@ This message is missing. You should receive it later.
-
+
Message tracking
-
-
+
+
PGP signature required
-
+
Never
-
+
Only friends nodes in group
@@ -10026,28 +9889,22 @@ This message is missing. You should receive it later.
-
+
PGP signature from known ID required
-
-
- [None]
-
-
-
-
+
Load Group Logo
-
+
Submit Group Changes
-
+
Owner:
@@ -10057,12 +9914,12 @@ This message is missing. You should receive it later.
-
+
Info
-
+
ID
@@ -10072,7 +9929,7 @@ This message is missing. You should receive it later.
-
+
<html><head/><body><p>Messages will spread way beyond your friend nodes, as long as people subscribe to the channel/forum/posted you're creating.</p></body></html>
@@ -10147,12 +10004,7 @@ This message is missing. You should receive it later.
-
- Author:
-
-
-
-
+
Popularity
@@ -10168,22 +10020,27 @@ This message is missing. You should receive it later.
-
+
Created
-
+
Cancel
ŠŃŠ¼ŃŠ½Š°
-
+
Create
-
+
+ Author
+ ŠŠ²ŃоŃ
+
+
+
GxsIdLabel
@@ -10191,7 +10048,7 @@ This message is missing. You should receive it later.
GxsGroupFrameDialog
-
+
Loading
@@ -10251,7 +10108,7 @@ This message is missing. You should receive it later.
-
+
Synchronise posts of last...
@@ -10308,12 +10165,12 @@ This message is missing. You should receive it later.
-
+
Search for
-
+
Copy RetroShare Link
@@ -10336,7 +10193,7 @@ This message is missing. You should receive it later.
GxsIdChooser
-
+
No Signature
@@ -10349,14 +10206,14 @@ This message is missing. You should receive it later.
GxsIdDetails
-
+
Not found
-
-
+
+
[Banned]
@@ -10366,7 +10223,7 @@ This message is missing. You should receive it later.
-
+
Loading...
@@ -10376,12 +10233,7 @@ This message is missing. You should receive it later.
-
- [Nobody]
-
-
-
-
+
Identity name
@@ -10401,14 +10253,6 @@ This message is missing. You should receive it later.
-
- GxsIdLabel
-
-
- [Nobody]
-
-
-
GxsIdStatistics
@@ -10420,7 +10264,7 @@ This message is missing. You should receive it later.
GxsIdStatisticsWidget
-
+
Total identities:
@@ -10468,7 +10312,7 @@ This message is missing. You should receive it later.
GxsIdTreeItemDelegate
-
+
[Unknown]
@@ -10855,7 +10699,7 @@ This message is missing. You should receive it later.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:9pt; font-weight:400; font-style:normal;">
<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">RetroShare is an Open Source cross-platform, </span></p>
<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">private and secure decentralized communication platform. </span></p>
<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">It lets you share securely your friends, </span></p>
@@ -10871,7 +10715,7 @@ p, li { white-space: pre-wrap; }
-
+
Authors
@@ -10890,7 +10734,7 @@ p, li { white-space: pre-wrap; }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:9pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600;">RetroShare Translations:</span></p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://retroshare.sourceforge.net/wiki/index.php/Translation"><span style=" font-family:'MS Shell Dlg 2'; text-decoration: underline; color:#0000ff;">http://retroshare.sourceforge.net/wiki/index.php/Translation</span></a></p>
@@ -10964,7 +10808,7 @@ p, li { white-space: pre-wrap; }
Š¤Š¾ŃŠ¼ŃŠ»ŃŃ
-
+
Add friend
@@ -10974,7 +10818,7 @@ p, li { white-space: pre-wrap; }
-
+
<html><head/><body><p>Share your RetroShare ID</p></body></html>
@@ -11002,7 +10846,7 @@ private and secure decentralized communication platform.
-
+
Did you receive a Retroshare ID from a friend?
@@ -11012,7 +10856,7 @@ private and secure decentralized communication platform.
-
+
Copy your Cert to Clipboard
@@ -11022,7 +10866,7 @@ private and secure decentralized communication platform.
-
+
Send via Email
@@ -11042,37 +10886,13 @@ private and secure decentralized communication platform.
-
- Include current local IP
-
-
-
-
- Include current external IP
-
-
-
-
- Include my DNS
-
-
-
-
- Include all IPs history
-
-
-
-
- <h1><img width="%1" src=":/icons/help_64.png"> Welcome to Retroshare!</h1><p>You need to <b>make friends</b>! After you create a network of friends or join an existing network, you'll be able to exchange files, chat, talk in forums, etc. </p><div align="center"><IMG width="%2" height="%3" src=":/images/network_map.png" style="display: block; margin-left: auto; margin-right: auto; "/></div><p>To do so, copy your Retroshare ID on this page and send it to friends, and add your friends' Retroshare ID.</p><p>Another option is to search the internet for "Retroshare chat servers" (independently administrated). These servers allow you to exchange Retroshare ID with a dedicated Retroshare node, through which you will be able to anonymously meet other people.</p>
-
-
-
-
+
+
Include all your known IPs
-
+
Use old certificate format
@@ -11084,12 +10904,12 @@ new short format
-
+
Use new (short) certificate format
-
+
Your Retroshare certificate is copied to Clipboard, paste and send it to your friend via email or some other way
@@ -11104,7 +10924,12 @@ new short format
-
+
+ <h1><img width="%1" src=":/icons/help_64.png"> Welcome to Retroshare!</h1> <p>You need to <b>make friends</b>! After you create a network of friends or join an existing network, you'll be able to exchange files, chat, talk in forums, etc. </p> <div align=center> <IMG align="center" width="%2" src=":/images/network_map.png"/> </div> <p>To do so, copy your Retroshare ID on this page and send it to friends, and add your friends' Retroshare ID.</p> <p>Another option is to search the internet for "Retroshare chat servers" (independently administrated). These servers allow you to exchange Retroshare ID with a dedicated Retroshare node, through which you will be able to anonymously meet other people.</p>
+
+
+
+
Save as...
@@ -11369,14 +11194,14 @@ p, li { white-space: pre-wrap; }
IdDialog
-
-
-
+
+
+
All
-
+
Reputation
@@ -11386,12 +11211,12 @@ p, li { white-space: pre-wrap; }
-
+
Anonymous Id
-
+
Create new Identity
@@ -11401,7 +11226,7 @@ p, li { white-space: pre-wrap; }
-
+
Persons
@@ -11416,27 +11241,27 @@ p, li { white-space: pre-wrap; }
-
+
Close
-
+
Ban-option:
-
+
Auto-Ban all identities signed by the same node
-
+
Friend votes:
-
+
Positive votes
@@ -11452,39 +11277,29 @@ p, li { white-space: pre-wrap; }
-
+
Created on :
-
- Auto-Ban profile
-
-
-
-
+
<html><head/><body><p><span style=" font-family:'Sans'; font-size:9pt;">Your own opinion about an identity rules the visibility of that identity for yourself and your friend nodes. Your own opinion is shared among friends and used to compute a reputation score: If your opinion about an identity is neutral, the reputation score is the difference between friend's positive and negative opinions. If not, your own opinion gives the score.</span></p><p><span style=" font-family:'Sans'; font-size:9pt;">The overall score is used in chat lobbies, forums and channels to decide on the actions to take for each specific identity. When the overall score is lower than -1, the identity is banned, which prevents all messages and forums/channels authored by this identity to be forwarded, both ways. Some forums also have special anti-spam flags that require a non negative reputation level, making them more sensitive to bad opinions. Banned identities gradually lose their activity and eventually disappear (after 5 days).</span></p><p><span style=" font-family:'Sans'; font-size:9pt;">You can change the thresholds and the time of inactivity to delete identities in preferences -> people. </span></p></body></html>
-
- Edit Identity
-
-
-
-
+
Usage statistics
-
+
Circles
-
+
Circle name
@@ -11504,20 +11319,18 @@ p, li { white-space: pre-wrap; }
-
+
-
Edit identity
-
-
+
Delete identity
-
+
Chat with this peer
@@ -11527,78 +11340,78 @@ p, li { white-space: pre-wrap; }
-
+
Owner node ID :
-
+
Identity name :
-
+
()
-
+
Identity ID
-
+
Send message
-
+
Identity info
-
+
Identity ID :
-
+
Owner node name :
-
+
Create new...
-
+
Type:
-
+
Send Invite
-
+
<html><head/><body><p>Average opinion of neighbor nodes about this identity. Negative is bad,</p><p>positive is good. Zero is neutral.</p></body></html>
-
+
Your opinion:
-
+
Negative
-
+
Neutral
@@ -11609,17 +11422,17 @@ p, li { white-space: pre-wrap; }
-
+
<html><head/><body><p>Overall reputation score, accounting for yours and your friends'.</p><p>Negative is bad, positive is good. Zero is neutral. If the score is too low,</p><p>the identity is flagged as bad, and will be filtered out in forums, chat lobbies,</p><p>channels, etc.</p></body></html>
-
+
Overall:
-
+
Anonymous
@@ -11634,24 +11447,24 @@ p, li { white-space: pre-wrap; }
-
+
This identity is owned by you
-
-
+
+
My own identities
-
-
+
+
My contacts
-
+
Show Items
@@ -11666,12 +11479,7 @@ p, li { white-space: pre-wrap; }
-
- <h1><img width="%1" src=":/icons/help_64.png"> Identities</h1><p>In this tab you can create/edit <b>pseudo-anonymous identities</b>, and <b>circles</b>.</p><p><b>Identities</b> are used to securely identify your data: sign messages in chat lobbies, forum and channel posts, receive feedback using the Retroshare built-in email system, post comments after channel posts, chat using secured tunnels, etc.</p><p>Identities can optionally be <b>signed</b> by your Retroshare node's certificate. Signed identities are easier to trust but are easily linked to your node's IP address.</p><p><b>Anonymous identities</b> allow you to anonymously interact with other users. They cannot be spoofed, but noone can prove who really owns a given identity.</p><p><b>Circles</b> are groups of identities (anonymous or signed), that are shared at a distance over the network. They can be used to restrict the visibility to forums, channels, etc. </p><p>An <b>circle</b> can be restricted to another circle, thereby limiting its visibility to members of that circle or even self-restricted, meaning that it is only visible to invited members.</p>
-
-
-
-
+
Other circles
@@ -11681,7 +11489,7 @@ p, li { white-space: pre-wrap; }
-
+
Circle ID:
@@ -11756,7 +11564,7 @@ p, li { white-space: pre-wrap; }
-
+
Identity ID:
@@ -11786,7 +11594,7 @@ p, li { white-space: pre-wrap; }
непознаŃ
-
+
Invited
@@ -11801,7 +11609,7 @@ p, li { white-space: pre-wrap; }
-
+
Edit Circle
@@ -11849,7 +11657,7 @@ p, li { white-space: pre-wrap; }
-
+
This identity has a unsecure fingerprint (It's probably quite old).
You should get rid of it now and use a new one.
@@ -11857,7 +11665,7 @@ These identities will soon be not supported anymore.
-
+
[Unknown node]
@@ -11900,7 +11708,7 @@ These identities will soon be not supported anymore.
-
+
Boards
@@ -11980,7 +11788,7 @@ These identities will soon be not supported anymore.
-
+
information
@@ -11996,12 +11804,17 @@ These identities will soon be not supported anymore.
-
+
Banned
-
+
+ <h1><img width="32" src=":/icons/help_64.png"> Identities</h1> <p>In this tab you can create/edit <b>pseudo-anonymous identities</b>, and <b>circles</b>.</p> <p><b>Identities</b> are used to securely identify your data: sign messages in chat lobbies, forum and channel posts, receive feedback using the Retroshare built-in email system, post comments after channel posts, chat using secured tunnels, etc.</p> <p>Identities can optionally be <b>signed</b> by your Retroshare node's certificate. Signed identities are easier to trust but are easily linked to your node's IP address.</p> <p><b>Anonymous identities</b> allow you to anonymously interact with other users. They cannot be spoofed, but noone can prove who really owns a given identity.</p> <p><b>Circles</b> are groups of identities (anonymous or signed), that are shared at a distance over the network. They can be used to restrict the visibility to forums, channels, etc. </p> <p>An <b>circle</b> can be restricted to another circle, thereby limiting its visibility to members of that circle or even self-restricted, meaning that it is only visible to invited members.</p>
+
+
+
+
positive
@@ -12106,7 +11919,7 @@ These identities will soon be not supported anymore.
-
+
Add to Contacts
@@ -12156,21 +11969,21 @@ These identities will soon be not supported anymore.
-
-
-
+
+
+
People
-
+
Your Avatar
Click here to change your avatar
-
+
Linked to neighbor nodes
@@ -12180,7 +11993,7 @@ These identities will soon be not supported anymore.
-
+
Linked to a friend Retroshare node
@@ -12195,7 +12008,7 @@ These identities will soon be not supported anymore.
-
+
Chat with this person
@@ -12210,12 +12023,12 @@ These identities will soon be not supported anymore.
-
+
Last used:
-
+
+50 Known PGP
@@ -12235,12 +12048,12 @@ These identities will soon be not supported anymore.
-
+
Owned by
-
+
Node name:
@@ -12250,7 +12063,7 @@ These identities will soon be not supported anymore.
-
+
Really delete?
@@ -12258,7 +12071,7 @@ These identities will soon be not supported anymore.
IdEditDialog
-
+
Nickname
@@ -12288,13 +12101,7 @@ These identities will soon be not supported anymore.
-
-
- Use the mouse to zoom and adjust the image for your avatar. Hit Del to remove it.
-
-
-
-
+
New identity
@@ -12308,7 +12115,7 @@ These identities will soon be not supported anymore.
-
+
@@ -12318,12 +12125,7 @@ These identities will soon be not supported anymore.
-
- No avatar chosen
-
-
-
-
+
Edit identity
@@ -12334,27 +12136,27 @@ These identities will soon be not supported anymore.
-
-
+
+
Profile password needed.
-
+
-
+
Identity creation failed
-
-
+
+
Cannot create an identity linked to your profile without your profile password.
-
+
Identity creation success
@@ -12374,7 +12176,7 @@ These identities will soon be not supported anymore.
-
+
Identity update failed
@@ -12384,18 +12186,12 @@ These identities will soon be not supported anymore.
-
+
Error KeyID invalid
-
-
- No Avatar chosen. A default image will be automatically displayed from your new identity.
-
-
-
-
+
Import image
@@ -12405,7 +12201,12 @@ These identities will soon be not supported anymore.
-
+
+ Use the mouse to zoom and adjust the image for your avatar.
+
+
+
+
Unknown GpgId
@@ -12415,7 +12216,7 @@ These identities will soon be not supported anymore.
-
+
Create New Identity
@@ -12425,15 +12226,10 @@ These identities will soon be not supported anymore.
Тип
-
+
Choose image...
-
-
- Remove
- ŠŃемаŃ
ване на
-
@@ -12459,7 +12255,7 @@ These identities will soon be not supported anymore.
ŠŠ¾Š±Š°Š²Ńне
-
+
Create
@@ -12469,13 +12265,13 @@ These identities will soon be not supported anymore.
ŠŃŠ¼ŃŠ½Š°
-
+
Your Avatar
Click here to change your avatar
-
+
Linked to your profile
@@ -12485,7 +12281,7 @@ These identities will soon be not supported anymore.
-
+
The nickname is too short. Please input at least %1 characters.
@@ -12559,7 +12355,7 @@ These identities will soon be not supported anymore.
-
+
Copy
ŠŠ¾ŠæŠøŃане
@@ -12569,12 +12365,12 @@ These identities will soon be not supported anymore.
ŠŃемаŃ
ване на
-
+
%1 's Message History
-
+
Mark all
@@ -12597,34 +12393,18 @@ These identities will soon be not supported anymore.
ImageUtil
-
-
+
+
Save image
- Save Picture File
-
-
-
-
- Pictures (*.png *.xpm *.jpg)
-
-
-
-
Cannot save the image, invalid filename
-
- Copy image
-
-
-
-
-
+
Not an image
@@ -12642,32 +12422,27 @@ These identities will soon be not supported anymore.
-
+
Enable RetroShare JSON API Server
-
+
Port:
-
+
Listen Address:
-
- Status:
-
-
-
-
+
127.0.0.1
-
+
Token:
@@ -12688,12 +12463,7 @@ These identities will soon be not supported anymore.
- Authenticated Tokens:
-
-
-
-
- Registered services:
+ Authenticated Tokens
@@ -12702,31 +12472,26 @@ These identities will soon be not supported anymore.
-
+
JSON API
-
-
- <h1><img width="24" src=":/icons/help_64.png"> Webinterface</h1> <p>Retroshare provides a JSON API allowing other softwares to communicate with its core using token-controlled HTTP requests to http://localhost:[port]. Please refer to the Retroshare documentation for how to use this feature. </p> <p>Unless you know what you're doing, you shouldn't need to change anything in this page. The web interface for instance will automatically register its own token to the JSON API which will be visible in the list of authenticated tokens after you enable it.</p>
-
-
LocalSharedFilesDialog
-
-
+
+
Open File
-
+
Open Folder
-
+
Checking...
@@ -12736,7 +12501,7 @@ These identities will soon be not supported anymore.
-
+
Recommend in a message to...
@@ -12764,7 +12529,7 @@ These identities will soon be not supported anymore.
MainWindow
-
+
Add Friend
@@ -12780,8 +12545,7 @@ These identities will soon be not supported anymore.
-
-
+
Options
ŠŠ°ŃŃŃŠ¾Š¹ŠŗŠø
@@ -12802,7 +12566,7 @@ These identities will soon be not supported anymore.
-
+
Quit
@@ -12813,12 +12577,12 @@ These identities will soon be not supported anymore.
-
+
RetroShare %1 a secure decentralized communication platform
-
+
Unfinished
@@ -12843,12 +12607,11 @@ These identities will soon be not supported anymore.
-
Status
Š”ŃŠ°ŃŃŃ
-
+
Notify
@@ -12859,35 +12622,31 @@ These identities will soon be not supported anymore.
-
Open Messages
-
-
+
Bandwidth Graph
-
+
Applications
-
Help
ŠŠ¾Š¼Š¾Ń
-
-
+
Minimize
-
+
Maximize
@@ -12902,12 +12661,7 @@ These identities will soon be not supported anymore.
RetroShare
-
- Close window
-
-
-
-
+
%1 new message
@@ -12937,7 +12691,7 @@ These identities will soon be not supported anymore.
-
+
Do you really want to exit RetroShare ?
@@ -12957,7 +12711,7 @@ These identities will soon be not supported anymore.
ŠŠ¾ŠŗŠ°Š·Š²Š°Š½Šµ
-
+
Make sure this link has not been forged to drag you to a malicious website.
@@ -13002,13 +12756,12 @@ These identities will soon be not supported anymore.
-
-
+
Statistics
-
+
Show web interface
@@ -13023,7 +12776,7 @@ These identities will soon be not supported anymore.
-
+
Really quit ?
@@ -13032,17 +12785,17 @@ These identities will soon be not supported anymore.
MessageComposer
-
+
Compose
-
+
Contacts
-
+
Paragraph
@@ -13078,12 +12831,12 @@ These identities will soon be not supported anymore.
-
+
Font size
-
+
Increase font size
@@ -13098,32 +12851,32 @@ These identities will soon be not supported anymore.
-
+
Italic
-
+
Alignment
-
+
Add an Image
-
+
Sets text font to code style
-
+
Underline
-
+
Subject:
@@ -13134,32 +12887,32 @@ These identities will soon be not supported anymore.
-
+
Tags
-
+
Address list:
-
+
Recommend this friend
-
+
Set Text color
-
+
Set Text background color
-
+
Recommended Files
@@ -13229,7 +12982,7 @@ These identities will soon be not supported anymore.
-
+
Send To:
@@ -13269,7 +13022,7 @@ These identities will soon be not supported anymore.
-
+
Hello,<br>I recommend a good friend of mine; you can trust them too when you trust me. <br>
@@ -13289,18 +13042,18 @@ These identities will soon be not supported anymore.
-
+
Hi %1,<br><br>%2 wants to be friends with you on RetroShare.<br><br>Respond now:<br>%3<br><br>Thanks,<br>The RetroShare Team
-
-
+
+
Save Message
-
+
Message has not been Sent.
Do you want to save message to draft box?
@@ -13311,17 +13064,7 @@ Do you want to save message to draft box?
-
- Will not reply
-
-
-
-
- There is no point in replying to a notification message!
-
-
-
-
+
Add to "To"
@@ -13341,7 +13084,7 @@ Do you want to save message to draft box?
-
+
Original Message
@@ -13351,21 +13094,21 @@ Do you want to save message to draft box?
-
+
-
+
To
-
-
+
+
Cc
-
+
Sent
@@ -13380,7 +13123,7 @@ Do you want to save message to draft box?
-
+
Re:
@@ -13390,30 +13133,30 @@ Do you want to save message to draft box?
-
-
-
+
+
+
RetroShare
RetroShare
-
+
Do you want to send the message without a subject ?
-
+
Please insert at least one recipient.
-
+
Bcc
-
+
Unknown
ŠŠµŠøŠ·Š²ŠµŃŃŠµŠ½
@@ -13528,13 +13271,13 @@ Do you want to save message to draft box?
-
+
Open File...
-
+
HTML-Files (*.htm *.html);;All Files (*)
@@ -13554,7 +13297,7 @@ Do you want to save message to draft box?
-
+
Message has not been Sent.
Do you want to save message ?
@@ -13575,7 +13318,7 @@ Do you want to save message ?
-
+
Hi,<br>I want to be friends with you on RetroShare.<br>
@@ -13605,18 +13348,18 @@ Do you want to save message ?
-
-
+
+
Close
-
+
From:
ŠŃ:
-
+
Bullet list (disc)
@@ -13656,13 +13399,13 @@ Do you want to save message ?
-
-
+
+
Thanks, <br>
-
+
Distant identity:
@@ -13672,12 +13415,12 @@ Do you want to save message ?
-
+
Please create an identity to sign distant messages, or remove the distant peers from the destination list.
-
+
Node name & id:
@@ -13755,7 +13498,7 @@ Do you want to save message ?
ŠŠ¾ ŠæŠ¾Š“ŃŠ°Š·Š±ŠøŃане
-
+
A new tab
@@ -13765,7 +13508,7 @@ Do you want to save message ?
-
+
Edit Tag
@@ -13788,7 +13531,7 @@ Do you want to save message ?
MessageToaster
-
+
Sub:
@@ -13796,7 +13539,7 @@ Do you want to save message ?
MessageUserNotify
-
+
Message
@@ -13824,7 +13567,7 @@ Do you want to save message ?
MessageWidget
-
+
Recommended Files
@@ -13834,37 +13577,37 @@ Do you want to save message ?
-
+
Subject:
-
+
From:
ŠŃ:
-
+
To:
ŠŠ¾:
-
+
Cc:
-
+
Bcc:
-
+
Tags:
-
+
Reply
@@ -13904,7 +13647,7 @@ Do you want to save message ?
-
+
Send Invite
@@ -13956,7 +13699,7 @@ Do you want to save message ?
-
+
Confirm %1 as friend
@@ -13966,12 +13709,12 @@ Do you want to save message ?
-
+
View source
-
+
No subject
@@ -13981,22 +13724,17 @@ Do you want to save message ?
-
+
You got an invite to make friend! You may accept this request.
-
+
You got an invite to make friend! You may accept this request and send your own Certificate back
-
- more
-
-
-
-
+
Document source
@@ -14005,24 +13743,14 @@ Do you want to save message ?
%1 (%2)
-
-
- Show less
-
-
-
-
- Show more
-
-
-
+
Download all
-
+
Print Document
@@ -14037,12 +13765,12 @@ Do you want to save message ?
-
+
Load images always for this message
-
+
Hide the attachment pane
@@ -14064,6 +13792,10 @@ Do you want to save message ?
Compose
+
+ Delete
+ ŠŠ·ŃŃŠøŠ²Š°Š½Šµ
+
Print
@@ -14142,7 +13874,7 @@ Do you want to save message ?
MessagesDialog
-
+
New Message
@@ -14152,16 +13884,20 @@ Do you want to save message ?
-
+ Delete
+ ŠŠ·ŃŃŠøŠ²Š°Š½Šµ
+
+
+
-
-
+
+
Tags
-
-
+
+
Inbox
@@ -14191,17 +13927,17 @@ Do you want to save message ?
-
+
Total Inbox:
-
+
Quick View
-
+
Print...
@@ -14232,7 +13968,7 @@ Do you want to save message ?
-
+
Subject
@@ -14242,7 +13978,7 @@ Do you want to save message ?
-
+
Date
ŠŠ°Ńа
@@ -14252,7 +13988,7 @@ Do you want to save message ?
-
+
Search Subject
@@ -14261,16 +13997,6 @@ Do you want to save message ?
Search From
-
-
- To
-
-
-
-
- Search To
-
-
Search Date
@@ -14297,12 +14023,12 @@ Do you want to save message ?
-
- <h1><img width="%1" src=":/icons/help_64.png"> Messages</h1><p>Retroshare has its own internal email system. You can send/receive emails to/from connected friend nodes.</p><p>It is also possible to send messages to other people's Identities using the global routing system. These messages are always encrypted and signed, and are relayed by intermediate nodes until they reach their final destination. </p><p>Distant messages stay into your Outbox until an acknowledgement of receipt has been received.</p><p>Generally, you may use messages to recommend files to your friends by pasting file links, or recommend friend nodes to other friend nodes, in order to strengthen your network, or send feedback to a channel's owner.</p>
+
+ <h1><img width="%1" src=":/icons/help_64.png"> Messages</h1> <p>Retroshare has its own internal email system. You can send/receive emails to/from connected friend nodes.</p> <p>It is also possible to send messages to other people's Identities using the global routing system. These messages are always encrypted and signed, and are relayed by intermediate nodes until they reach their final destination. </p> <p>Distant messages stay into your Outbox until an acknowledgement of receipt has been received.</p> <p>Generally, you may use messages to recommend files to your friends by pasting file links, or recommend friend nodes to other friend nodes, in order to strengthen your network, or send feedback to a channel's owner.</p>
-
+
Starred
@@ -14378,7 +14104,7 @@ Do you want to save message ?
- Show in People
+ Show author in People
@@ -14392,7 +14118,7 @@ Do you want to save message ?
-
+
No message using %1 tag available.
@@ -14407,28 +14133,18 @@ Do you want to save message ?
-
- Deletion is not recommended
-
-
-
-
- Messages in this box are automatically deleted when received. Manually deleting a message does not guaranty that the message will not be delivered. Messages that cannot be delivered will however stay here indefinitly. Do you want to proceed and delete?
-
-
-
-
+
Drafts
-
+
No Box selected.
-
+
@@ -14463,17 +14179,7 @@ Do you want to save message ?
MimeTextEdit
-
- Save image
-
-
-
-
- Copy image
-
-
-
-
+
Paste as plain text
@@ -14527,7 +14233,7 @@ Do you want to save message ?
-
+
Expand
Š Š°Š·ŃŠøŃŃŠ²Š°Š½Šµ
@@ -14537,7 +14243,7 @@ Do you want to save message ?
ŠŃемаŃ
ни елеменŃ
-
+
from
@@ -14572,7 +14278,7 @@ Do you want to save message ?
-
+
Hide
Š”ŠŗŃŠøŠ¹
@@ -14713,7 +14419,7 @@ Do you want to save message ?
-
+
Remove unused keys...
@@ -14723,7 +14429,7 @@ Do you want to save message ?
-
+
Clean keyring
@@ -14737,13 +14443,7 @@ Notes: Your old keyring will be backed up.
-
- You have selected %1 accepted peers among others,
- Are you sure you want to un-friend them?
-
-
-
-
+
Keyring info
@@ -14776,13 +14476,18 @@ For security, your keyring was previously backed-up to file
Data inconsistency in the keyring. This is most probably a bug. Please contact the developers.
+
+
+ Export/create a new node
+
+
Trusted keys only
-
+
Search name
@@ -14792,12 +14497,12 @@ For security, your keyring was previously backed-up to file
-
+
Profile details...
-
+
Key removal has failed. Your keyring remains intact.
Reported error:
@@ -14830,7 +14535,7 @@ Reported error:
NewFriendList
-
+
Offline Friends
@@ -14851,7 +14556,7 @@ Reported error:
-
+
Groups
@@ -14881,19 +14586,19 @@ Reported error:
-
-
+
+
Search
-
+
ID
-
+
Search ID
@@ -14903,12 +14608,12 @@ Reported error:
-
+
Show Items
-
+
Last contact
@@ -14918,7 +14623,7 @@ Reported error:
-
+
Group
@@ -15033,7 +14738,7 @@ Reported error:
-
+
Do you want to remove this node?
@@ -15043,7 +14748,7 @@ Reported error:
-
+
Done!
@@ -15150,7 +14855,7 @@ at least one peer was not added to a group
NewsFeed
-
+
Activity Stream
@@ -15165,7 +14870,7 @@ at least one peer was not added to a group
-
+
Newest on top
@@ -15175,12 +14880,12 @@ at least one peer was not added to a group
-
- <h1><img width="%1" src=":/icons/help_64.png"> Activity Feed</h1><p>The Activity Feed displays the last events on your network, sorted by the time you received them. This gives you a summary of the activity of your friends. You can configure which events to show by pressing on <b>Options</b>. </p><p>The various events shown are: <ul> <li>Connection attempts (useful to make friends with new people and control who's trying to reach you)</li> <li>Channel, Forum and Board posts</li> <li>Circle membership requests and invites</li> <li>New Channels, Forums and Boards you can subscribe to</li> <li>Channel and Board comments</li> <li>New Mail messages</li> <li>Private messages from your friends</li> </ul> </p>
+
+ <h1><img width="32" src=":/icons/help_64.png"> Activity Feed</h1> <p>The Activity Feed displays the last events on your network, sorted by the time you received them. This gives you a summary of the activity of your friends. You can configure which events to show by pressing on <b>Options</b>. </p> <p>The various events shown are: <ul> <li>Connection attempts (useful to make friends with new people and control who's trying to reach you)</li> <li>Channel, Forum and Board posts</li> <li>Circle membership requests and invites</li> <li>New Channels, Forums and Boards you can subscribe to</li> <li>Channel and Board comments</li> <li>New Mail messages</li> <li>Private messages from your friends</li> </ul> </p>
-
+
Activity
@@ -15409,6 +15114,10 @@ at least one peer was not added to a group
Disable All Toaster temporarily
+
+ Feed
+ ŠŠ¼ŠøŃŠøŃ
+
Systray
@@ -15418,7 +15127,7 @@ at least one peer was not added to a group
NotifyQt
-
+
Passphrase required
@@ -15438,12 +15147,12 @@ at least one peer was not added to a group
-
+
Please enter your Retroshare passphrase
-
+
Unregistered plugin/executable
@@ -15458,7 +15167,7 @@ at least one peer was not added to a group
-
+
Test
ТеŃŃ
@@ -15469,19 +15178,17 @@ at least one peer was not added to a group
-
Unknown title
-
+
-
Encrypted message
-
+
For the chat lobbies to work properly, the time of your computer needs to be correct. Please check that this is the case (A possible time shift of several minutes was detected with your friends).
@@ -15489,7 +15196,7 @@ at least one peer was not added to a group
OnlineToaster
-
+
Friend Online
@@ -15628,12 +15335,7 @@ p, li { white-space: pre-wrap; }
-
- Friend options
-
-
-
-
+
These options apply to all nodes of the profile:
@@ -15678,7 +15380,12 @@ p, li { white-space: pre-wrap; }
-
+
+ Options
+ ŠŠ°ŃŃŃŠ¾Š¹ŠŗŠø
+
+
+
<html><head/><body><p align="justify">Retroshare periodically checks your friend lists for browsable files matching your transfers, to establish a direct transfer. In this case, your friend knows you're downloading the file.</p><p align="justify">To prevent this behavior for this friend only, uncheck this box. You can still perform a direct transfer if you explicitly ask for it, by e.g. downloading from your friend's file list. This setting is applied to all locations of the same node.</p></body></html>
@@ -15724,21 +15431,21 @@ p, li { white-space: pre-wrap; }
-
-
+
+
RetroShare
RetroShare
-
-
+
+
Error : cannot get peer details.
-
+
The supplied key algorithm is not supported by RetroShare
(Only RSA keys are supported at the moment)
@@ -15756,7 +15463,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
-
+
The trust level is a way to express your own trust in this key. It is not used by the software nor shared, but can be useful to you in order to remember good/bad keys.
@@ -15832,12 +15539,12 @@ Warning: In your File-Transfer option, you select allow direct download to No.
-
+
Retroshare profile
-
+
This is your own PGP key, and it is signed by :
@@ -15863,7 +15570,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
PeerItem
-
+
Chat
@@ -15884,7 +15591,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
ŠŃемаŃ
ни елеменŃ
-
+
Name:
ŠŠ¼Šµ:
@@ -15924,7 +15631,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
-
+
Write Message
@@ -15982,7 +15689,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
Š”ŠŗŃŠøŠ¹
-
+
Send Message
@@ -16149,6 +15856,13 @@ Warning: In your File-Transfer option, you select allow direct download to No.
+
+ PhotoCommentItem
+
+ Form
+ Š¤Š¾ŃŠ¼ŃŠ»ŃŃ
+
+
PhotoDialog
@@ -16221,6 +15935,10 @@ Warning: In your File-Transfer option, you select allow direct download to No.
...
...
+
+ Add Comment
+ ŠŠ¾Š±Š°Š²Šø ŠŗŠ¾Š¼ŠµŠ½ŃŠ°Ń
+
Album
@@ -16300,17 +16018,17 @@ p, li { white-space: pre-wrap; }
-
+
My Albums
-
+
Subscribed Albums
-
+
Shared Albums
@@ -16339,7 +16057,7 @@ requesting to edit it!
PhotoSlideShow
-
+
Album Name
@@ -16398,19 +16116,19 @@ requesting to edit it!
-
-
+
+
TextLabel
-
+
Posted by
-
+
ago
@@ -16446,12 +16164,12 @@ requesting to edit it!
PluginItem
-
+
TextLabel
-
+
Show more details about this plugin
@@ -16662,27 +16380,12 @@ p, li { white-space: pre-wrap; }
-
- Ban this person (Sets negative opinion)
-
-
-
-
- Give neutral opinion
-
-
-
-
- Give positive opinion
-
-
-
-
+
Choose window color...
-
+
Dock window
@@ -16735,7 +16438,7 @@ p, li { white-space: pre-wrap; }
ŠŠ¾Š²
-
+
Vote up
@@ -16755,8 +16458,8 @@ p, li { white-space: pre-wrap; }
-
-
+
+
Comments
@@ -16781,13 +16484,13 @@ p, li { white-space: pre-wrap; }
-
-
+
+
Comment
-
+
Comments
@@ -16815,12 +16518,12 @@ p, li { white-space: pre-wrap; }
PostedCreatePostDialog
-
+
Create a new Post
-
+
RetroShare
RetroShare
@@ -16835,22 +16538,12 @@ p, li { white-space: pre-wrap; }
-
- Error while creating post
-
-
-
-
- An error occurred while creating the post.
-
-
-
-
+
Load Picture File
-
+
Post image
@@ -16866,17 +16559,7 @@ p, li { white-space: pre-wrap; }
-
- No clipboard image found.
-
-
-
-
- There is no image data in the clipboard to paste
-
-
-
-
+
Close this window?
@@ -16886,7 +16569,7 @@ p, li { white-space: pre-wrap; }
-
+
Please add a Title
@@ -16906,22 +16589,12 @@ p, li { white-space: pre-wrap; }
-
+
Post size is limited to 32 KB, pictures will be downscaled.
-
- Paste image from clipboard
-
-
-
-
- Paste Picture
-
-
-
-
+
Remove image
@@ -16936,7 +16609,7 @@ p, li { white-space: pre-wrap; }
-
+
Post
@@ -16947,7 +16620,7 @@ p, li { white-space: pre-wrap; }
-
+
You are submitting a post. The key to a successful submission is interesting content and a descriptive title.
@@ -16957,7 +16630,7 @@ p, li { white-space: pre-wrap; }
ŠŠ°Š³Š»Š°Š²ŠøŠµ
-
+
Link
@@ -16965,12 +16638,12 @@ p, li { white-space: pre-wrap; }
PostedDialog
-
- <h1><img width="%1" src=":/icons/help_64.png"> Boards</h1><p>The Boards service allows you to share images, blog posts & internet links, that spread among Retroshare nodes like forums and channels</p><p>Posts can be commented by subscribed users. A promotion system also gives the opportunity to enlight important links.</p><p>There is no restriction on which links are shared. Be careful when clicking on them.</p><p>Boards are kept for %2 days, and sync-ed over the last %3 days, unless you change this.</p>
+
+ <h1><img width="32" src=":/icons/help_64.png"> Boards</h1> <p>The Boards service allows you to share images, blog posts & internet links, that spread among Retroshare nodes like forums and channels</p> <p>Posts can be commented by subscribed users. A promotion system also gives the opportunity to enlight important links.</p> <p>There is no restriction on which links are shared. Be careful when clicking on them.</p> <p>Boards are kept for %1 days, and sync-ed over the last %2 days, unless you change this.</p>
-
+
Boards
@@ -17004,7 +16677,7 @@ p, li { white-space: pre-wrap; }
PostedGroupDialog
-
+
Create New Board
@@ -17042,17 +16715,7 @@ p, li { white-space: pre-wrap; }
PostedGroupItem
-
- Last activity
-
-
-
-
- TextLabel
-
-
-
-
+
Subscribe to Posted
@@ -17068,7 +16731,7 @@ p, li { white-space: pre-wrap; }
-
+
Expand
Š Š°Š·ŃŠøŃŃŠ²Š°Š½Šµ
@@ -17083,17 +16746,12 @@ p, li { white-space: pre-wrap; }
-
+
Loading...
-
- Never
-
-
-
-
+
New Board
@@ -17106,18 +16764,18 @@ p, li { white-space: pre-wrap; }
PostedItem
-
+
0
-
-
+
+
Comments
-
+
Copy RetroShare Link
@@ -17128,12 +16786,12 @@ p, li { white-space: pre-wrap; }
-
+
Comment
-
+
Comments
@@ -17143,7 +16801,7 @@ p, li { white-space: pre-wrap; }
-
+
Click to view Picture
@@ -17153,17 +16811,17 @@ p, li { white-space: pre-wrap; }
Š”ŠŗŃŠøŠ¹
-
+
Vote up
-
+
Vote down
-
+
Set as read and remove item
ŠŠ°Š“ай ŠŗŠ°Ńо ŃŠµŃене Šø ŠæŃŠµŠ¼Š°Ń
ване на елеменŃ
@@ -17173,7 +16831,7 @@ p, li { white-space: pre-wrap; }
ŠŠ¾Š²
-
+
New Comment:
@@ -17183,7 +16841,7 @@ p, li { white-space: pre-wrap; }
-
+
Name
ŠŠ¼Šµ
@@ -17224,11 +16882,34 @@ p, li { white-space: pre-wrap; }
-
+
Loading
+
+ PostedListWidget
+
+ Form
+ Š¤Š¾ŃŠ¼ŃŠ»ŃŃ
+
+
+ New
+ ŠŠ¾Š²
+
+
+ Next
+ ДлеГваŃ
+
+
+ RetroShare
+ RetroShare
+
+
+ Previous
+ ŠŃŠµŠ“ŠøŃŠ½Š°
+
+
PostedListWidgetWithModel
@@ -17247,17 +16928,7 @@ p, li { white-space: pre-wrap; }
-
- <html><head/><body><p>Maximum number of data items (including posts, comments, votes) across friend nodes.</p></body></html>
-
-
-
-
- Items (at friends):
-
-
-
-
+
0
@@ -17267,15 +16938,15 @@ p, li { white-space: pre-wrap; }
-
+
-
+
unknown
непознаŃ
-
+
Distribution:
@@ -17285,42 +16956,42 @@ p, li { white-space: pre-wrap; }
-
+
Created
-
+
TextLabel
-
+
Popularity:
-
+
+ Contributions:
+
+
+
+
Sync period:
-
- Number of subscribed friend nodes
-
-
-
-
+
Posts
-
+
Create Post
-
+
<html><head/><body><p><span style=" font-family:'-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol'; font-size:14pt; color:#24292e; background-color:#ffffff;">Select sorting</span></p></body></html>
@@ -17340,7 +17011,7 @@ p, li { white-space: pre-wrap; }
-
+
Search
@@ -17370,17 +17041,17 @@ p, li { white-space: pre-wrap; }
-
+
No files in this post, or no post selected
-
+
No posts available in this board
-
+
Click to switch to card view
@@ -17395,17 +17066,12 @@ p, li { white-space: pre-wrap; }
-
+
Copy RetroShare Link
-
- Copy http Link
-
-
-
-
+
Show author in People tab
@@ -17415,31 +17081,27 @@ p, li { white-space: pre-wrap; }
Š ŠµŠ“Š°ŠŗŃŠøŃане
-
-
+
information
-
-
+
The Retrohare link was copied to your clipboard.
-
-
+
Link creation error
-
-
+
Link could not be created:
-
+
[No name]
@@ -17454,7 +17116,7 @@ p, li { white-space: pre-wrap; }
-
+
Never
@@ -17528,16 +17190,6 @@ p, li { white-space: pre-wrap; }
No Channel Selected
-
-
- Could not vote
-
-
-
-
- Error occured while voting:
-
-
PostedPage
@@ -17627,16 +17279,16 @@ p, li { white-space: pre-wrap; }
-
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:11pt;">Select a Retroshare node key from the list below to be used on another computer, and press "Export selected key."</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:11pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:11pt;">To create a new location on a different computer, select the identity manager in the login window. From there you can import the key file and create a new location for that key. </span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:11pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:11pt;">Creating a new node with the same key allows your friend nodes to accept you automatically.</span></p></body></html>
+</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Select a Retroshare node key from the list below to be used on another computer, and press "Export selected key."</p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">To create a new location on a different computer, select the identity manager in the login window. From there you can import the key file and create a new location for that key. </p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Creating a new node with the same key allows your friend nodes to accept you automatically.</p></body></html>
@@ -17744,7 +17396,7 @@ and use the import button to load it
ProfileWidget
-
+
Edit status message
@@ -17760,7 +17412,7 @@ and use the import button to load it
-
+
Public Information
@@ -17795,12 +17447,12 @@ and use the import button to load it
-
+
Other Information
-
+
My Address
@@ -17844,27 +17496,27 @@ and use the import button to load it
PulseAddDialog
-
+
Add to Pulse
-
+
Display As
-
+
URL
-
+
GroupLabel
-
+
IDLabel
@@ -17874,12 +17526,12 @@ and use the import button to load it
ŠŃ:
-
+
Head
-
+
Head Shot
@@ -17909,13 +17561,13 @@ and use the import button to load it
-
-
+
+
Whats happening?
-
+
@@ -17927,22 +17579,12 @@ and use the import button to load it
-
- Remove all images
-
-
-
-
+
Clear Display As
-
- Add Picture
-
-
-
-
+
Post
@@ -17957,7 +17599,7 @@ and use the import button to load it
-
+
Reply to Pulse
@@ -17972,24 +17614,30 @@ and use the import button to load it
-
+
Like Pulse
-
+
Hide Pictures
-
+
Add Pictures
+
+
+ PulseItem
-
- Load Picture File
-
+ Date
+ ŠŠ°Ńа
+
+
+ ...
+ ...
@@ -18000,7 +17648,7 @@ and use the import button to load it
Š¤Š¾ŃŠ¼ŃŠ»ŃŃ
-
+
@@ -18019,7 +17667,7 @@ and use the import button to load it
PulseReply
-
+
icn
@@ -18029,7 +17677,7 @@ and use the import button to load it
-
+
REPLY
@@ -18056,7 +17704,7 @@ and use the import button to load it
-
+
FOLLOW
@@ -18066,7 +17714,7 @@ and use the import button to load it
-
+
<html><head/><body><p><span style=" font-weight:600;">Sidler</span></p></body></html>
@@ -18086,7 +17734,7 @@ and use the import button to load it
-
+
<html><head/><body><p><span style=" color:#555753;">Replying to @sidler</span></p></body></html>
@@ -18202,7 +17850,7 @@ and use the import button to load it
-
+
FOLLOW
@@ -18210,42 +17858,37 @@ and use the import button to load it
PulseViewGroup
-
+
headshot
-
+
<html><head/><body><p><span style=" color:#555753;">@sidler_here</span></p></body></html>
-
+
<html><head/><body><p><span style=" font-weight:600;">Sidler</span></p></body></html>
-
+
<html><head/><body><p><span style=" color:#2e3436;">3:58 AM Ā· Apr 13, 2020 Ā·</span></p></body></html>
-
+
Location
-
- Edit profile
-
-
-
-
+
Tag Line
-
+
<html><head/><body><p><span style=" font-weight:600;">1.2K</span></p></body></html>
@@ -18277,7 +17920,7 @@ and use the import button to load it
-
+
FOLLOW
@@ -18285,8 +17928,8 @@ and use the import button to load it
QObject
-
-
+
+
Confirmation
@@ -18554,12 +18197,12 @@ Characters <b>",|,/,\,<,>,*,?</b> will be replace
-
+
File Request canceled
-
+
This version of RetroShare is using OpenPGP-SDK. As a side effect, it's not using the system shared PGP keyring, but has it's own keyring shared by all RetroShare instances. <br><br>You do not appear to have such a keyring, although PGP keys are mentioned by existing RetroShare accounts, probably because you just changed to this new version of the software.
@@ -18590,7 +18233,7 @@ Characters <b>",|,/,\,<,>,*,?</b> will be replace
-
+
Cannot start Tor Manager!
@@ -18624,7 +18267,7 @@ The error reported is:"
-
+
Multiple instances
@@ -18643,26 +18286,6 @@ The error reported is:"
-
-
- Old certificate
-
-
-
-
- This node uses old certificate settings that are considered too weak by your current OpenSSL library version. You need to create a new node possibly using the same profile.
-
-
-
-
- Tor error
-
-
-
-
- Cannot run/configure Tor. Make sure it is installed on your system.
-
-
Distant peer has closed the chat
@@ -18742,7 +18365,7 @@ Reported error is:
-
+
You appear to have nodes associated to DSA keys:
@@ -18752,7 +18375,7 @@ Reported error is:
-
+
enabled
@@ -18762,7 +18385,7 @@ Reported error is:
-
+
Move IP %1 to whitelist
@@ -18778,7 +18401,7 @@ Reported error is:
-
+
%1 seconds ago
@@ -18845,7 +18468,7 @@ Security: no anonymous IDs
-
+
Join chat room
@@ -18873,7 +18496,7 @@ Security: no anonymous IDs
-
+
Indefinitely
@@ -19053,29 +18676,13 @@ Security: no anonymous IDs
Ban list
-
-
- Name
- ŠŠ¼Šµ
-
- Node
-
-
-
-
- Address
-
-
-
-
-
Status
Š”ŃŠ°ŃŃŃ
-
+
NXS
@@ -19318,18 +18925,6 @@ Security: no anonymous IDs
Server
-
-
-
- Missing channel post
-
-
-
-
-
- [System]
-
-
QuickStartWizard
@@ -19469,7 +19064,7 @@ p, li { white-space: pre-wrap; }
-
+
Network Wide
@@ -19636,7 +19231,7 @@ p, li { white-space: pre-wrap; }
Š¤Š¾ŃŠ¼ŃŠ»ŃŃ
-
+
The loading of embedded images is blocked.
@@ -19649,7 +19244,7 @@ p, li { white-space: pre-wrap; }
RSPermissionMatrixWidget
-
+
Allowed by default
@@ -19822,22 +19417,12 @@ p, li { white-space: pre-wrap; }
RSTextBrowser
-
+
View &Source
-
- Save image
-
-
-
-
- Copy image
-
-
-
-
+
Document source
@@ -19845,12 +19430,12 @@ p, li { white-space: pre-wrap; }
RSTreeWidget
-
+
Tree View Options
-
+
Show Header
@@ -20538,7 +20123,7 @@ If you believe it is correct, remove the corresponding line from the file and re
RsDownloadListModel
-
+
Name
i.e: file name
ŠŠ¼Šµ
@@ -20659,7 +20244,7 @@ If you believe it is correct, remove the corresponding line from the file and re
RsFriendListModel
-
+
Name
ŠŠ¼Šµ
@@ -20679,7 +20264,7 @@ If you believe it is correct, remove the corresponding line from the file and re
-
+
Profile ID
@@ -20735,7 +20320,7 @@ prevents the message to be forwarded to your friends.
-
+
[ ... Redacted message ... ]
@@ -20749,6 +20334,11 @@ prevents the message to be forwarded to your friends.
[Unknown]
+
+
+ [ ... Missing Message ... ]
+
+
RsMessageModel
@@ -20762,11 +20352,6 @@ prevents the message to be forwarded to your friends.
From
-
-
- To
-
-
Subject
@@ -20789,17 +20374,12 @@ prevents the message to be forwarded to your friends.
- Click to sort by read status
+ Click to sort by read
- Click to sort by author
-
-
-
-
- Click to sort by destination
+ Click to sort by from
@@ -20823,9 +20403,7 @@ prevents the message to be forwarded to your friends.
-
-
-
+
[Notification]
@@ -20846,7 +20424,7 @@ prevents the message to be forwarded to your friends.
Rshare
-
+
Resets ALL stored RetroShare settings.
@@ -20907,7 +20485,7 @@ prevents the message to be forwarded to your friends.
-
+
Unable to open log file '%1': %2
@@ -20928,7 +20506,7 @@ prevents the message to be forwarded to your friends.
-
+
opmode
@@ -20958,7 +20536,7 @@ prevents the message to be forwarded to your friends.
-
+
Invalid language code specified:
@@ -20976,7 +20554,7 @@ prevents the message to be forwarded to your friends.
RshareSettings
-
+
Registry Access Error. Maybe you need Administrator right.
@@ -20993,12 +20571,12 @@ prevents the message to be forwarded to your friends.
SearchDialog
-
+
Enter a keyword here (at least 3 char long)
-
+
Start Search
@@ -21059,7 +20637,7 @@ prevents the message to be forwarded to your friends.
-
+
KeyWords
@@ -21074,7 +20652,7 @@ prevents the message to be forwarded to your friends.
-
+
Filename
@@ -21174,23 +20752,23 @@ prevents the message to be forwarded to your friends.
-
+
File Name
-
+
Download
-
+
Copy RetroShare Link
-
+
Send RetroShare Link
@@ -21200,7 +20778,7 @@ prevents the message to be forwarded to your friends.
-
+
Download Notice
@@ -21237,7 +20815,7 @@ prevents the message to be forwarded to your friends.
-
+
Folder
ŠŠ°ŠæŠŗŠ°
@@ -21248,17 +20826,17 @@ prevents the message to be forwarded to your friends.
-
+
New RetroShare Link(s)
-
+
Open Folder
-
+
Create Collection...
@@ -21278,7 +20856,7 @@ prevents the message to be forwarded to your friends.
-
+
Collection
@@ -21286,7 +20864,7 @@ prevents the message to be forwarded to your friends.
SecurityIpItem
-
+
Peer details
@@ -21302,22 +20880,22 @@ prevents the message to be forwarded to your friends.
ŠŃемаŃ
ни елеменŃ
-
+
IP address:
-
+
Peer ID:
-
+
Location:
-
+
Peer Name:
@@ -21334,7 +20912,7 @@ prevents the message to be forwarded to your friends.
Š”ŠŗŃŠøŠ¹
-
+
but reported:
@@ -21359,8 +20937,8 @@ prevents the message to be forwarded to your friends.
-
-
+
+
<html><head/><body><p>This warning is here to protect you against traffic forwarding attacks. In such a case, the friend you're connected to will not see your external IP, but the attacker's IP. </p><p><br/></p><p>However, if you just changed IPs for some reason (some ISPs regularly force change IPs) this warning just tells you that a friend connected to the new IP before Retroshare figured out the IP changed. Nothing's wrong in this case.</p><p><br/></p><p>You can easily suppress false warnings by white-listing your own IPs (e.g. the range of your ISP), or by completely disabling these warnings in Options->Notify->News Feed.</p></body></html>
@@ -21368,7 +20946,7 @@ prevents the message to be forwarded to your friends.
SecurityItem
-
+
wants to be friend with you on RetroShare
@@ -21399,7 +20977,7 @@ prevents the message to be forwarded to your friends.
-
+
Expand
Š Š°Š·ŃŠøŃŃŠ²Š°Š½Šµ
@@ -21444,12 +21022,12 @@ prevents the message to be forwarded to your friends.
-
+
Write Message
-
+
Connect Attempt
@@ -21469,12 +21047,17 @@ prevents the message to be forwarded to your friends.
-
+
Unknown Security Issue
-
+
+ A unknown peer
+
+
+
+
Unknown
ŠŠµŠøŠ·Š²ŠµŃŃŠµŠ½
@@ -21484,17 +21067,7 @@ prevents the message to be forwarded to your friends.
-
- SSL request
-
-
-
-
- An unknown peer
-
-
-
-
+
Hide
Š”ŠŗŃŠøŠ¹
@@ -21504,7 +21077,7 @@ prevents the message to be forwarded to your friends.
-
+
Certificate has wrong signature!! This peer is not who he claims to be.
@@ -21514,12 +21087,12 @@ prevents the message to be forwarded to your friends.
-
+
Certificate caused an internal error.
-
+
Peer/node not in friendlist (PGP id=
@@ -21578,12 +21151,12 @@ prevents the message to be forwarded to your friends.
-
+
Local Address
-
+
NAT
@@ -21604,22 +21177,22 @@ prevents the message to be forwarded to your friends.
-
+
Local network
-
+
External ip address finder
-
+
UPnP
-
+
Known / Previous IPs:
@@ -21632,16 +21205,21 @@ behind a firewall or a VPN.
-
-
-
+
+ Allow RetroShare to ask my ip to these websites:
+
+
+
+
+
+
kB/s
-
+
Acceptable ports range from 10 to 65535. Normally Ports below 1024 are reserved by your system.
@@ -21651,46 +21229,23 @@ behind a firewall or a VPN.
-
+
Onion Address
-
+
Discovery On (recommended)
-
+
Tor has been automatically configured by Retroshare. You shouldn't need to change anything here.
-
- sec
-
-
-
-
- local
-
-
-
-
- external
-
-
-
-
-
-
-List of found external IP:
-
-
-
-
-
+
Discovery Off
@@ -21700,7 +21255,7 @@ List of found external IP:
-
+
I2P Address
@@ -21725,95 +21280,37 @@ List of found external IP:
-
-
-
+
+
Proxy seems to work.
-
-
+
I2P proxy is not enabled
-
- SAMv3 is running and accessible
+
+ BOB is running and accessible
- SAMv3 is not accessible! Is i2p running and SAM enabled?
+ BOB is not accessible! Is it running?
-
- Your key uses the following algorithms: %1 and %2
-
-
-
-
-
- unkown key type
-
-
-
-
- RetroShare uses SAMv3 to set up a %1 tunnel at %2:%3
-(id: %4)
+
+ RetroShare uses BOB to set up a %1 tunnel at %2:%3 (named %4)
-When changing options use the buttons at the bottom to restart SAMv3.
+When changing options (e.g. port) use the buttons at the bottom to restart BOB.
-
- Offline, no SAM session is established yet.
-
-
-
-
-
- SAM is trying to establish a session ... this can take some time.
-
-
-
-
-
- SAM session established! Now setting up a forward session ...
-
-
-
-
-
- Online, SAM is working as exptected
-
-
-
-
-
- You key uses %1 for signing and %2 for crypto
-
-
-
-
- stop SAM tunnel first to generate a new key
-
-
-
-
- stop SAM tunnel first to load a key
-
-
-
-
- stop SAM tunnel first to disable SAM
-
-
-
-
+
client
@@ -21828,7 +21325,71 @@ When changing options use the buttons at the bottom to restart SAMv3.
непознаŃ
-
+
+
+
+ BOB is processing a request
+
+
+
+
+ connectivity check
+
+
+
+
+ generating key
+
+
+
+
+ starting up
+
+
+
+
+ shuting down
+
+
+
+
+ BOB is processing a request: %1
+
+
+
+
+ BOB is broken
+
+
+
+
+
+ BOB encountered an error:
+
+
+
+
+
+ BOB tunnel is running
+
+
+
+
+ BOB is working fine: tunnel established
+
+
+
+
+ BOB tunnel is not running
+
+
+
+
+ BOB is inactive: tunnel closed
+
+
+
+
request a new server key
@@ -21838,7 +21399,22 @@ When changing options use the buttons at the bottom to restart SAMv3.
-
+
+ stop BOB tunnel first to generate a new key
+
+
+
+
+ stop BOB tunnel first to load a key
+
+
+
+
+ stop BOB tunnel first to disable BOB
+
+
+
+
You are reachable through the hidden service.
@@ -21850,12 +21426,12 @@ Also check your ports!
-
+
[Hidden mode]
-
+
<html><head/><body><p>This clears the list of known addresses. This action is useful if for some reason your address list contains an invalid/irrelevant/expired address that you want to avoid passing to your friends as a contact address.</p></body></html>
@@ -21865,7 +21441,7 @@ Also check your ports!
-
+
Download limit (KB/s)
@@ -21880,23 +21456,23 @@ Also check your ports!
-
+
<html><head/><body><p>The upload limit covers the entire software. Too small an upload limit might eventually block low priority services (forums, channels). A minimum recommended value is 50KB/s. </p></body></html>
-
+
WARNING:
These values don't take into account the Relays.
-
+
<html><head/><body><p>Configure your Tor and I2P SOCKS proxy here. It will allow you to also connect </p><p>to hidden nodes.</p></body></html>
-
+
Tor Socks Proxy default: 127.0.0.1:9050. Set in torrc config and update here.
I2P Socks Proxy: see http://127.0.0.1:7657/i2ptunnelmgr for setting up a client tunnel:
@@ -21907,7 +21483,17 @@ You can connect to Hidden Nodes, even if you are running a standard Node, so why
-
+
+ Automatic I2P/BOB
+
+
+
+
+ Enable I2P BOB - changing this requires a restart to fully take effect
+
+
+
+
enableds advanced settings
@@ -21917,7 +21503,12 @@ You can connect to Hidden Nodes, even if you are running a standard Node, so why
-
+
+ I2P Basic Open Bridge
+
+
+
+
I2P Instance address
@@ -21927,7 +21518,17 @@ You can connect to Hidden Nodes, even if you are running a standard Node, so why
-
+
+ I2P proxy port
+
+
+
+
+ BOB accessible
+
+
+
+
Address
@@ -21967,7 +21568,7 @@ You can connect to Hidden Nodes, even if you are running a standard Node, so why
-
+
Start
@@ -21982,7 +21583,12 @@ You can connect to Hidden Nodes, even if you are running a standard Node, so why
-
+
+ BOB status
+
+
+
+
Incoming
@@ -22018,32 +21624,7 @@ If you have issues connecting over Tor check the Tor logs too.
-
- Automatic I2P
-
-
-
-
- Enable I2P SAMv3 - changing this requires a restart to fully take effect
-
-
-
-
- I2P Simple Anonymous Messaging
-
-
-
-
- SAM accessible
-
-
-
-
- SAM status
-
-
-
-
+
Relay
@@ -22098,7 +21679,7 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
Warning: This bandwidth adds up to the max bandwidth.
@@ -22123,7 +21704,7 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
<p>By activating relays, you allow your Retroshare node to act as a bridge between Retroshare users who cannot connect directly, e.g. because they're firewalled.</p>
<p>You may choose to act as a relay by checking <i>enable relay connections</i>, or simply benefit from other peers acting as relay, by checking <i>use relay servers</i>. For the former, you may specify the bandwidth allocated when acting as a relay for friends of you, for friends of your friends, or anyone in the Retroshare network.</p>
<p>In any case, a Retroshare node acting as a relay cannot see the relayed traffic, since it is encrypted and authenticated by the two relayed nodes.</p>
@@ -22135,7 +21716,7 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
IP Filters
@@ -22158,7 +21739,7 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
Status
Š”ŃŠ°ŃŃŃ
@@ -22218,28 +21799,17 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
Hidden Service Configuration
-
- Allow RetroShare to ask my ip to these DNS servers:
-
-
-
-
-
- List of OpenDns servers used.
-
-
-
-
+
<html><head/><body><p>This is the port of the Tor Socks proxy. Your Retroshare node can use this port to connect to</p><p>Hidden nodes. The led at right turns green when this port is active on your computer. </p><p>This does not mean however that your Retroshare traffic transits though Tor. It does only if </p><p>you connect to Hidden nodes, or if you are running a Hidden node yourself.</p></body></html>
-
+
<html><head/><body><p>This led is green when the port listen on the left is active on your computer. It does not</p><p>mean that your Retroshare traffic transits though Tor. It will do so only if </p><p>you connect to Hidden nodes, or if you are running a Hidden node yourself.</p></body></html>
@@ -22255,18 +21825,18 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
<html><head/><body><p>This led is green when the port listen on the left is active on your computer. It does not</p><p>mean that your Retroshare traffic transits though I2P. It will do so only if </p><p>you connect to Hidden nodes, or if you are running a Hidden node yourself.</p></body></html>
-
+
I2P outgoing Okay
-
+
Service Address
@@ -22301,12 +21871,12 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
IP Range
-
+
Reported by DHT for IP masquerading
@@ -22329,22 +21899,22 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
<html><head/><body><p>White listed IPs are gathered from the following sources: IPs coming inside a manually exchanged certificate, IP ranges entered by you in this window, or in the security feed items.</p><p>The default behavior for Retroshare is to (1) always allow connection to peers with IP in the whitelist, even if that IP is also blacklisted; (2) optionally require IPs to be in the whitelist. You can change this behavior for each peer in the "Details" window of each Retroshare node. </p></body></html>
-
+
<html><head/><body><p>The DHT allows you to answer connection requests from your friends using BitTorrent's DHT. It greatly improves the connectivity. No information is actually stored in the DHT. It is only used as a proxy system to get in touch with other Retroshare nodes.</p><p>The Discovery service sends node name and ids of your trusted contacts to connected peers, to help them choose new friends. The friendship is never automatic however, and both peers still need to trust each other to allow connection. </p></body></html>
-
+
<html><head/><body><p>The bullet turns green as soon as Retroshare manages to get your own IP from the websites listed below, if you enabled that action. Retroshare will also use other means to find out your own IP.</p></body></html>
-
+
<html><head/><body><p>This list gets automatically filled with information gathered at multiple sources: masquerading peers reported by the DHT, IP ranges entered by you, and IP ranges reported by your friends. Default settings should protect you against large scale traffic relaying.</p><p>Automatically guessing masquerading IPs can put your friends IPs in the blacklist. In this case, use the context menu to whitelist them.</p></body></html>
@@ -22379,7 +21949,7 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
Outgoing Manual Tor/I2P
@@ -22389,12 +21959,12 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
Tor outgoing Okay
-
+
Tor proxy is not enabled
@@ -22474,7 +22044,7 @@ If you have issues connecting over Tor check the Tor logs too.
ShareKey
-
+
check peers you would like to share private publish key with
@@ -22484,12 +22054,12 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
Share
-
+
You can let your friends know about your Channel by sharing it with them.
Select the Friends with which you want to Share your Channel.
@@ -22508,7 +22078,7 @@ Select the Friends with which you want to Share your Channel.
-
+
Shared directory
@@ -22528,17 +22098,17 @@ Select the Friends with which you want to Share your Channel.
-
+
Add new
-
+
Cancel
ŠŃŠ¼ŃŠ½Š°
-
+
Add a Share Directory
@@ -22548,7 +22118,7 @@ Select the Friends with which you want to Share your Channel.
ŠŃемаŃ
ване на
-
+
Apply and close
@@ -22639,7 +22209,7 @@ Select the Friends with which you want to Share your Channel.
-
+
This is a list of shared folders. You can add and remove folders using the buttons at the bottom. When you add a new folder, intially all files in that folder are shared. You can separately setup share flags for each shared directory.
@@ -22647,7 +22217,7 @@ Select the Friends with which you want to Share your Channel.
SharedFilesDialog
-
+
Files
@@ -22698,16 +22268,11 @@ Select the Friends with which you want to Share your Channel.
- <html><head/><body><p>Forces the re-check of all shared directories. While automatic file checking only cares for new/removed files for efficiency reasons, this button will force the re-scan of all files, possibly re-hashing existing files that may have changed. </p></body></html>
-
-
-
-
check files
-
+
Download selected
@@ -22717,7 +22282,7 @@ Select the Friends with which you want to Share your Channel.
-
+
Copy retroshare Links to Clipboard
@@ -22732,7 +22297,7 @@ Select the Friends with which you want to Share your Channel.
-
+
Some files have been omitted
@@ -22748,7 +22313,7 @@ Select the Friends with which you want to Share your Channel.
-
+
Create Collection...
@@ -22773,7 +22338,7 @@ Select the Friends with which you want to Share your Channel.
-
+
Some files have been omitted because they have not been indexed yet.
@@ -22916,12 +22481,12 @@ Select the Friends with which you want to Share your Channel.
SplashScreen
-
+
Load configuration
-
+
Create interface
@@ -22945,7 +22510,7 @@ Select the Friends with which you want to Share your Channel.
-
+
Log In
@@ -23284,7 +22849,7 @@ This choice can be reverted in settings.
-
+
Message:
@@ -23521,7 +23086,7 @@ p, li { white-space: pre-wrap; }
TagsMenu
-
+
Remove All Tags
@@ -23557,15 +23122,12 @@ p, li { white-space: pre-wrap; }
-
-
+
Tor status:
-
-
-
+
Unknown
ŠŠµŠøŠ·Š²ŠµŃŃŠµŠ½
@@ -23575,13 +23137,18 @@ p, li { white-space: pre-wrap; }
-
- Hidden address:
+
+ Hidden service address:
-
-
+
+ Tor bootstrap status:
+
+
+
+
+
Not set
@@ -23591,57 +23158,12 @@ p, li { white-space: pre-wrap; }
-
- Error
-
-
-
-
- Not connected
-
-
-
-
- Connecting
-
-
-
-
- Socket connected
-
-
-
-
- Authenticating
-
-
-
-
- Authenticated
-
-
-
-
- Hidden service ready
-
-
-
-
- Tor offline
-
-
-
-
- Tor ready
-
-
-
-
+
Check that Tor is accessible in your executable path
-
+
[Waiting for Tor...]
@@ -23649,7 +23171,7 @@ p, li { white-space: pre-wrap; }
TorStatus
-
+
Tor
@@ -23659,7 +23181,7 @@ p, li { white-space: pre-wrap; }
-
+
Tor is currently offline
@@ -23670,12 +23192,11 @@ p, li { white-space: pre-wrap; }
-
No tor configuration
-
+
Tor proxy is OK
@@ -23703,7 +23224,7 @@ p, li { white-space: pre-wrap; }
TransferPage
-
+
Transfer options
@@ -23714,7 +23235,7 @@ p, li { white-space: pre-wrap; }
-
+
Shared Directories
@@ -23724,27 +23245,22 @@ p, li { white-space: pre-wrap; }
-
+
+ Edit Share
+
+
+
+
Directories
-
- Configure shared directories
-
-
-
-
+
Auto-check shared directories every
- <html><head/><body><p>Retroshare will quickly scan shared directories for new/removed files. It will not detect changes in existing files for efficiency reasons. It is however possible to force a full re-scan of the entire hierarchy including possibly modified files using the "check files" button in shared files tab.</p></body></html>
-
-
-
-
minute(s)
@@ -23829,7 +23345,7 @@ p, li { white-space: pre-wrap; }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;">
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:8pt; font-weight:600;">RetroShare</span><span style=" font-family:'Sans'; font-size:8pt;"> is capable of transferring data and search requests between peers that are not necessarily friends. This traffic however only transits through a connected list of friends and is anonymous.</span></p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans'; font-size:8pt;"><br /></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:8pt;">You can separately setup share flags for each shared directory in the shared files dialog to be:</span></p>
@@ -23838,12 +23354,7 @@ p, li { white-space: pre-wrap; }
-
- Minimum font size for Shared Files
-
-
-
-
+
Maximum uploads per friend (0 = no limit)
@@ -23868,12 +23379,7 @@ p, li { white-space: pre-wrap; }
-
- <html><head/><body><p><span style=" font-weight:600;">Streaming </span>causes the transfer to request 1MB file chunks in increasing order, facilitating preview while downloading. <span style=" font-weight:600;">Random</span> is purely random and favors swarming behavior (although not recommended on Windows systems). <span style=" font-weight:600;">Progressive</span> is a good compromise, selecting the next chunk at random within less than 50MB after the end of the partial file. That allows some randomness while preventing large empty file initialization times.</p></body></html>
-
-
-
-
+
Streaming
@@ -23938,7 +23444,12 @@ p, li { white-space: pre-wrap; }
-
+
+ <html><head/><body><p><span style=" font-weight:600;">Streaming </span>causes the transfer to request 1MB file chunks in increasing order, facilitating preview while downloading. <span style=" font-weight:600;">Random</span> is purely random and favors swarming behavior. <span style=" font-weight:600;">Progressive</span> is a compromise, selecting the next chunk at random within less than 50MB after the end of the partial file. That allows some randomness while preventing large empty file initialization times.</p></body></html>
+
+
+
+
<html><head/><body><p>Retroshare will suspend all transfers and config file saving if the disk space goes below this limit. That prevents loss of information on some systems. A popup window will warn you when that happens.</p></body></html>
@@ -23948,17 +23459,7 @@ p, li { white-space: pre-wrap; }
-
- Warning
-
-
-
-
- On Windows systems, randomly writing in the middle of large empty files may hang the software for several seconds. Do you want to use this option anyway (otherwise use "progressive")?
-
-
-
-
+
Set Incoming Directory
@@ -23986,7 +23487,7 @@ p, li { white-space: pre-wrap; }
TransferUserNotify
-
+
Download completed
@@ -24014,19 +23515,19 @@ p, li { white-space: pre-wrap; }
TransfersDialog
-
-
+
+
Downloads
-
+
Uploads
-
+
Name
i.e: file name
ŠŠ¼Šµ
@@ -24233,12 +23734,7 @@ p, li { white-space: pre-wrap; }
-
- <h1><img width="%1" src=":/icons/help_64.png"> File Transfer</h1><p>Retroshare brings two ways of transferring files: direct transfers from your friends, and distant anonymous tunnelled transfers. In addition, file transfer is multi-source and allows swarming (you can be a source while downloading)</p><p>You can share files using the <img src=":/images/directoryadd_24x24_shadow.png" width=%2 /> icon from the left side bar. These files will be listed in the My Files tab. You can decide for each friend group whether they can or not see these files in their Friends Files tab</p><p>The search tab reports files from your friends' file lists, and distant files that can be reached anonymously using the multi-hop tunnelling system.</p>
-
-
-
-
+
Move in Queue...
@@ -24263,7 +23759,7 @@ p, li { white-space: pre-wrap; }
-
+
Anonymous end-to-end encrypted tunnel 0x
@@ -24284,7 +23780,7 @@ p, li { white-space: pre-wrap; }
RetroShare
-
+
@@ -24317,17 +23813,7 @@ p, li { white-space: pre-wrap; }
-
- Warning
-
-
-
-
- On Windows systems, writing in the middle of large empty files may hang the software for several seconds. Do you want to use this option anyway?
-
-
-
-
+
Change file name
@@ -24342,7 +23828,7 @@ p, li { white-space: pre-wrap; }
-
+
Expand all
@@ -24469,18 +23955,23 @@ p, li { white-space: pre-wrap; }
-
+
+ <h1><img width="%1" src=":/icons/help_64.png"> File Transfer</h1><p>Retroshare brings two ways of transferring files: direct transfers from your friends, and distant anonymous tunnelled transfers. In addition, file transfer is multi-source and allows swarming (you can be a source while downloading)</p><p>You can share files using the <img src=":/images/directoryadd_24x24_shadow.png" width=%2 /> icon from the left side bar. These files will be listed in the My Files tab. You can decide for each friend group whether they can or not see these files in their Friends Files tab</p><p>The search tab reports files from your friends' file lists, and distant files that can be reached anonymously using the multi-hop tunnelling system.</p>
+
+
+
+
Columns
-
+
File Transfers
-
+
Path
ŠŃŃŠµŠŗŠ°
@@ -24490,7 +23981,7 @@ p, li { white-space: pre-wrap; }
-
+
Could not delete preview file
@@ -24500,7 +23991,7 @@ p, li { white-space: pre-wrap; }
-
+
Create Collection...
@@ -24515,7 +24006,7 @@ p, li { white-space: pre-wrap; }
-
+
Collection
@@ -24525,7 +24016,7 @@ p, li { white-space: pre-wrap; }
-
+
Anonymous tunnel 0x
@@ -24939,17 +24430,12 @@ p, li { white-space: pre-wrap; }
Š¤Š¾ŃŠ¼ŃŠ»ŃŃ
-
+
Enable Retroshare WEB Interface
-
- Status:
-
-
-
-
+
Web parameters
@@ -24989,27 +24475,17 @@ p, li { white-space: pre-wrap; }
-
+
Please select the directory were to find retroshare webinterface files
-
- Missing passphrase
-
-
-
-
- Please set a passphrase to proect the access to the WEB interface.
-
-
-
-
+
<h1><img width="24" src=":/icons/help_64.png"> Webinterface</h1> <p>The webinterface allows you to control Retroshare from the browser. Multiple devices can share control over one Retroshare instance. So you could start a conversation on a tablet computer and later use a desktop computer to continue it.</p> <p>Warning: don't expose the webinterface to the internet, because there is no access control and no encryption. If you want to use the webinterface over the internet, use a SSH tunnel or a proxy to secure the connection.</p>
-
+
Webinterface not enabled
@@ -25019,12 +24495,12 @@ p, li { white-space: pre-wrap; }
-
+
failed to start Webinterface
-
+
Webinterface
@@ -25161,7 +24637,7 @@ p, li { white-space: pre-wrap; }
-
+
Page Name
@@ -25176,7 +24652,7 @@ p, li { white-space: pre-wrap; }
-
+
<<
@@ -25264,7 +24740,7 @@ p, li { white-space: pre-wrap; }
WikiEditDialog
-
+
Page Edit History
@@ -25299,7 +24775,7 @@ p, li { white-space: pre-wrap; }
-
+
\/
@@ -25329,18 +24805,14 @@ p, li { white-space: pre-wrap; }
-
- History
-
-
-
-
+
+
Show Edit History
-
+
Status
Š”ŃŠ°ŃŃŃ
@@ -25361,7 +24833,7 @@ p, li { white-space: pre-wrap; }
-
+
Submit
@@ -25444,7 +24916,16 @@ p, li { white-space: pre-wrap; }
-
+ ...
+ ...
+
+
+
+ Refresh
+
+
+
+
Settings
@@ -25459,7 +24940,7 @@ p, li { white-space: pre-wrap; }
-
+
Who to Follow
@@ -25479,7 +24960,7 @@ p, li { white-space: pre-wrap; }
-
+
Most Recent
@@ -25509,7 +24990,11 @@ p, li { white-space: pre-wrap; }
-
+ New
+ ŠŠ¾Š²
+
+
+
Yourself
@@ -25519,7 +25004,7 @@ p, li { white-space: pre-wrap; }
-
+
RetroShare
RetroShare
@@ -25582,42 +25067,35 @@ p, li { white-space: pre-wrap; }
Š¤Š¾ŃŠ¼ŃŠ»ŃŃ
-
-
+
+ Masthead
+
+
+
MastHead background Image
-
+
Select Image
-
+
Tagline:
- Remove
- ŠŃемаŃ
ване на
-
-
-
Location:
-
+
Load Masthead
-
-
- Use the mouse to zoom and adjust the image for your background.
-
-
WireGroupItem
@@ -25662,41 +25140,11 @@ p, li { white-space: pre-wrap; }
Edit Profile
-
-
- Own
-
-
-
-
- N/A
-
-
-
-
- Following
-
-
-
-
- Unfollow
-
-
-
-
- Other
-
-
-
-
- Follow
-
-
misc
-
+
Unknown
Unknown (size)
ŠŠµŠøŠ·Š²ŠµŃŃŠµŠ½
@@ -25774,7 +25222,7 @@ p, li { white-space: pre-wrap; }
-
+
k
e.g: 3.1 k
@@ -25811,7 +25259,7 @@ p, li { white-space: pre-wrap; }
pgpid_item_model
-
+
Do you accept connections signed by this profile?
diff --git a/retroshare-gui/src/lang/retroshare_ca_ES.ts b/retroshare-gui/src/lang/retroshare_ca_ES.ts
index 1e88b2136..fe57c6488 100644
--- a/retroshare-gui/src/lang/retroshare_ca_ES.ts
+++ b/retroshare-gui/src/lang/retroshare_ca_ES.ts
@@ -84,6 +84,13 @@
NomƩs node ocult
+
+ AddCommentDialog
+
+ Add Comment
+ Afegir comentari
+
+
AddFileAssociationDialog
@@ -121,12 +128,12 @@
RetroShare: Cerca AvanƧada
-
+
Search Criteria
Criteris de Cerca
-
+
Add a further search criterion.
Afegeix un altre criteri de cerca.
@@ -136,7 +143,7 @@
Reinicialitzar els criteris de cerca.
-
+
Cancels the search.
CancelĀ·la la cerca.
@@ -156,6 +163,177 @@
Cerca
+
+ AlbumCreateDialog
+
+ Create Album
+ Crear Ć lbum
+
+
+ Album Name:
+ Nom d'Ć lbum:
+
+
+ Category:
+ Categoria:
+
+
+ Animals
+ Animals
+
+
+ Family
+ FamĆlia
+
+
+ Friends
+ Amics
+
+
+ Flowers
+ Flors
+
+
+ Holiday
+ Vacances
+
+
+ Landscapes
+ Paisatges
+
+
+ Pets
+ Mascotes
+
+
+ Portraits
+ Retrats
+
+
+ Travel
+ Viatges
+
+
+ Work
+ Treball
+
+
+ Random
+ Aleatori
+
+
+ Caption:
+ Llegenda:
+
+
+ Where:
+ On:
+
+
+ Photographer:
+ Fotògraf:
+
+
+ Description:
+ Descripció:
+
+
+ Share Options
+ Opcions de compartició:
+
+
+ Policy:
+ PolĆtica:
+
+
+ Quality:
+ Qualitat:
+
+
+ Comments:
+ Comentari:
+
+
+ Identity:
+ Identitat:
+
+
+ Public
+ PĆŗblic
+
+
+ Restricted
+ Restringit
+
+
+ Resize Images (< 1Mb)
+ Redimensionar imatges (< 1Mb)
+
+
+ Resize Images (< 10Mb)
+ Redimensionar imatges (< 10Mb)
+
+
+ Send Original Images
+ Enviar imatges originals
+
+
+ No Comments Allowed
+ No es permeten els comentaris
+
+
+ Authenticated Comments
+ Comentaris autenticats
+
+
+ Any Comments Allowed
+ Qualsevol comentari permĆØs
+
+
+ Publish with Identity
+ Publicar amb identitat
+
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600;"> Drag & Drop to insert pictures. Click on a picture to edit details below.</span></p></body></html>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600;"> Arrosegar i deixar per inserir imatges. Clica en una imatge per editar-ne els detalls a sota.</span></p></body></html>
+
+
+ Back
+ Enrere
+
+
+ Add Photos
+ Afegir fotos.
+
+
+ Publish Album
+ Publicar Ć lbum
+
+
+ Untitle Album
+ Ćlbum sense tĆtol
+
+
+ Say something about this album...
+ Digues alguna cosa sobre aquest Ć lbum...
+
+
+ Where were these taken?
+ On ha anat a parar això?
+
+
+ Load Album Thumbnail
+ Carrega la miniatura de l'Ć lbum
+
+
AlbumDialog
@@ -164,11 +342,19 @@
Album
Ćlbum
+
+ Album Thumbnail
+ Miniatura de l'Ć lbum
+
TextLabel
EtiquetaTexte
+
+ Summary
+ Resum
+
Album Title:
@@ -184,6 +370,34 @@
Caption
Llegenda
+
+ Where:
+ On:
+
+
+ When
+ Quan
+
+
+ Description:
+ Descripció:
+
+
+ Share Options
+ Opcions de compartició:
+
+
+ Comments
+ Comentaris
+
+
+ Publish Identity
+ Publicar identitat
+
+
+ Visibility
+ Visibilitat
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
@@ -552,7 +766,7 @@ p, li { white-space: pre-wrap; }
RetroShare
-
+
Warning: The services here are experimental. Please help us test them.
But Remember: Any data here *WILL* be lost when we upgrade the protocols.
AvĆs: Els serveis aquĆ esmentat són experimentals. Si us plau, ajuda'ns a testejar-los.
@@ -568,6 +782,14 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
Circles
Cercles
+
+ GxsForums
+ FòrumsGxs
+
+
+ GxsChannels
+ CanalsGxs
+
The Wire
@@ -579,23 +801,10 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
Fotos
-
- AspectRatioPixmapLabel
-
-
- Save image
- Desar imatge
-
-
-
- Copy image
-
-
-
AttachFileItem
-
+
%p Kb
%p kb
@@ -632,13 +841,17 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
Browse...
+
+ Add Avatar
+ Afegir avatar
+
Remove
Treure
-
+
Set your Avatar picture
Tria la fotografia del teu avatar
@@ -657,6 +870,10 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
Use the mouse to zoom and adjust the image for your avatar.
+
+ Load Avatar
+ Carrega avatar
+
AvatarWidget
@@ -725,10 +942,22 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
Restablir
-
+ Receive Rate
+ Taxa de Recepció
+
+
+ Send Rate
+ Taxa d'enviament
+
+
+
Always on Top
Sempre per damunt
+
+ Style
+ Estil
+
Changes the transparency of the Bandwidth Graph
@@ -744,11 +973,23 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
% Opaque
% Opac
+
+ Save
+ Desa
+
+
+ Cancel
+ CancelĀ·la
+
Since:
Des de:
+
+ Hide Settings
+ Amagar opcions
+
BandwidthStatsWidget
@@ -821,7 +1062,7 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
BoardPostDisplayWidgetBase
-
+
Comment
Comentari
@@ -851,12 +1092,12 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
Copia l'enllaƧ RetroShare
-
+
<p><font color="#ff0000"><b>The author of this message (with ID %1) is banned.</b>
<p><font color="#ff0000"><b>L'autor d'aquest missatge (amb Id %1) estĆ expulsat.</b>
-
+
ago
@@ -864,7 +1105,7 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
BoardPostDisplayWidget_card
-
+
Vote up
Votar positiu
@@ -884,7 +1125,7 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
\/
-
+
Posted by
@@ -922,7 +1163,7 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
BoardPostDisplayWidget_compact
-
+
Vote up
Votar positiu
@@ -942,7 +1183,7 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
\/
-
+
Click to view picture
@@ -972,7 +1213,7 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
Compartir
-
+
Toggle Message Read Status
Canvia l'estat dels missatges llegits
@@ -982,7 +1223,7 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
Nou
-
+
TextLabel
@@ -990,12 +1231,12 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
BoardsCommentsItem
-
+
I like this
M'agrada
-
+
0
0
@@ -1015,18 +1256,18 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
Avatar
-
+
New Comment
-
+
Copy RetroShare Link
Copia l'enllaƧ RetroShare
-
+
Expand
Ampliar
@@ -1041,12 +1282,12 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
Eliminar l'element
-
+
Name
Nom
-
+
Comm value
@@ -1215,17 +1456,17 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
ChannelPage
-
+
Channels
Canals
-
+
Tabs
Pestanyes
-
+
General
General
@@ -1235,17 +1476,11 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
-
- Downloads
- Descarregues
+ Load posts in background (Thread)
+ Carrega les entrades en segon pla (Utilitza fils)
-
- Maximum Auto Download Size (in GBs)
-
-
-
-
+
Open each channel in a new tab
Obrir cada canal en una nova pestanya
@@ -1253,7 +1488,7 @@ Però recorda: Totes les dades generades aquà *SERAN* perdudes quan actualitzem
ChannelPostDelegate
-
+
files
@@ -1276,7 +1511,7 @@ into the image, so as to
ChannelsCommentsItem
-
+
I like this
M'agrada
@@ -1301,18 +1536,18 @@ into the image, so as to
Avatar
-
+
New Comment
-
+
Copy RetroShare Link
Copia l'enllaƧ RetroShare
-
+
Expand
Ampliar
@@ -1327,7 +1562,7 @@ into the image, so as to
Eliminar l'element
-
+
Name
Nom
@@ -1337,7 +1572,17 @@ into the image, so as to
-
+
+ Comment
+ Comentari
+
+
+
+ Comments
+ Comentaris
+
+
+
Hide
Amagar
@@ -1345,7 +1590,7 @@ into the image, so as to
ChatLobbyDialog
-
+
Name
Nom
@@ -1536,7 +1781,7 @@ into the image, so as to
ChatLobbyToaster
-
+
Show Chat Lobby
Mostra el xat de sala
@@ -1548,6 +1793,22 @@ into the image, so as to
Chats
Xats
+
+ You have %1 new messages
+ Tens %1 nous missatges
+
+
+ You have %1 new message
+ Tens %1 nou missatge
+
+
+ %1 new messages
+ %1 missatges nous
+
+
+ %1 new message
+ %1 missatges nous
+
You have %1 mentions
@@ -1569,14 +1830,13 @@ into the image, so as to
-
-
+
Unknown Lobby
Sala desconeguda
-
-
+
+
Remove All
Suprimeix-ho tot
@@ -1584,13 +1844,13 @@ into the image, so as to
ChatLobbyWidget
-
-
+
+
Name
Nom
-
+
Count
Comte
@@ -1600,7 +1860,33 @@ into the image, so as to
Tema
-
+
+ Private Subscribed chat rooms
+ Sales de xat privades subscrites
+
+
+
+
+ Public Subscribed chat rooms
+ Sales de xat pĆŗbliques subscrites
+
+
+
+ Private chat rooms
+ Sales de xat privades
+
+
+
+
+ Public chat rooms
+ Sales de xat pĆŗbliques
+
+
+ <h1><img width="%1" src=":/icons/help_64.png"> Chat Rooms</h1> <p>Chat rooms work pretty much like IRC. They allow you to talk anonymously with tons of people without the need to make friends.</p> <p>A chat room can be public (your friends see it) or private (your friends can't see it, unless you invite them with <img src=":/images/add_24x24.png" width=%2/>). Once you have been invited to a private room, you will be able to see it when your friends are using it.</p> <p>The list at left shows chat lobbies your friends are participating in. You can either <ul> <li>Right click to create a new chat room</li> <li>Double click a chat room to enter, chat, and show it to your friends</li> </ul> Note: For the chat rooms to work properly, your computer needs be on time. So check your system clock! </p>
+ <h1><img width="%1" src=":/icons/help_64.png"> Sales de xat</h1> <p>Les sales de xat són sales distribuĆÆdes que funcionen molt semblant a les de IRC. Et permeten parlar anònimament amb moltĆssima gent sense haver-los de fer amics.</p> <p>Una sala de xat pot ser pĆŗblica (els teus amics la veuen ) o privades (els teus amics no poden veure-la si no els invites amb <img src=":/images/add_24x24.png" width=%2/>). Un cop has sigut invitat a una sala privada podrĆ s veure quan els teus amics la estan usant.</p> <p>La llista de l'esquerra mostra sales de xat en que participen els teus amics. Pots o bĆ© <ul> <li>Fer clic dret per crear una sala de xat nova</li> <li>Fer doble clic per entrar a una sala, xatejar, i que els teus amics ho vegin</li> </ul> Nota: Per a que les sales de xat funcionin correctament el teu ordinador a d'anar a l'hora. Comprova-ho! </p>
+
+
+
Create chat room
Crear sala de xat
@@ -1610,7 +1896,7 @@ into the image, so as to
Abandonar sala
-
+
Create a non anonymous identity and enter this room
Crear una identitat no anònima i entrar a aquesta sala
@@ -1669,12 +1955,12 @@ Selecciona entre les sales de la esquerra per mostrar-ne els detalls.
Fes doble clic a les sales per entrar-hi i xatejar.
-
+
%1 invites you to chat room named %2
%1 t'invita a una sala de xat anomenada %2
-
+
Choose a non anonymous identity for this chat room:
Escull una identitat no anònima per aquesta sala:
@@ -1684,31 +1970,31 @@ Fes doble clic a les sales per entrar-hi i xatejar.
Escull una identitat per aquesta sala:
-
+ Create chat lobby
+ Crear sala de xat
+
+
+
[No topic provided]
[No s'ha proporcionat cap assumpte]
-
-
+ Selected lobby info
+ Informació de la sala seleccionada
+
+
+
Private
Privat
-
-
-
+
Public
PĆŗblic
-
- <h1><img width="%1" src=":/icons/help_64.png"> Chat Rooms</h1><p>Chat rooms work pretty much like IRC. They allow you to talk anonymously with tons of people without the need to make friends.</p><p>A chat room can be public (your friends see it) or private (your friends can't see it, unless you invite them with <img src=":/icons/png/add.png" width=%2/>). Once you have been invited to a private room, you will be able to see it when your friends are using it.</p><p>The list at left shows chat lobbies your friends are participating in. You can either <ul> <li>Right click to create a new chat room</li> <li>Double click a chat room to enter, chat, and show it to your friends</li> </ul> Note: For the chat rooms to work properly, your computer needs be on time. So check your system clock!</p>
-
-
-
-
+
Anonymous IDs accepted
IDs anònimes acceptades
@@ -1718,25 +2004,42 @@ Fes doble clic a les sales per entrar-hi i xatejar.
Eliminar auto-subscripció
-
+
+ <h1><img width="%1" src=":/icons/help_64.png"> Chat Rooms</h1> <p>Chat rooms work pretty much like IRC. They allow you to talk anonymously with tons of people without the need to make friends.</p> <p>A chat room can be public (your friends see it) or private (your friends can't see it, unless you invite them with <img src=":/icons/png/add.png" width=%2/>). Once you have been invited to a private room, you will be able to see it when your friends are using it.</p> <p>The list at left shows chat lobbies your friends are participating in. You can either <ul> <li>Right click to create a new chat room</li> <li>Double click a chat room to enter, chat, and show it to your friends</li> </ul> Note: For the chat rooms to work properly, your computer needs be on time. So check your system clock! </p>
+
+
+
+
Add Auto Subscribe
Afegir auto-subscripció
-
+
Search Chat lobbies
Cercar sales de xat
-
+
Search Name
Cercar nom
-
+ Subscribed
+ Subscrit
+
+
+
Columns
Columnes
+
+ Yes
+ SĆ
+
+
+ No
+ No
+
Chat rooms
@@ -1748,47 +2051,47 @@ Fes doble clic a les sales per entrar-hi i xatejar.
-
+
Chat Room info
-
+
Chat room Name:
Nom de la sala de xat:
-
+
Chat room Id:
Id de la sala de xat:
-
+
Topic:
Tema:
-
+
Type:
Tipus:
-
+
Security:
Seguretat:
-
+
Peers:
Contactes:
-
-
-
-
-
-
+
+
+
+
+
+
TextLabel
EtiquetaText
@@ -1803,24 +2106,13 @@ Fes doble clic a les sales per entrar-hi i xatejar.
Ids anònims prohibits
-
+
Show
Mostra
-
- Private Subscribed
-
-
-
-
-
- Public Subscribed
-
-
-
-
+
column
columna
@@ -1834,7 +2126,7 @@ Fes doble clic a les sales per entrar-hi i xatejar.
ChatMsgItem
-
+
Remove Item
Eliminar l'element
@@ -1879,22 +2171,46 @@ Fes doble clic a les sales per entrar-hi i xatejar.
ChatPage
-
+
General
General
+
+ Distant Chat
+ Xat distant
+
Everyone
Tothom
+
+ Contacts
+ Contactes
+
Nobody
NingĆŗ
-
+ Accept encrypted distant chat from
+ Acceptar xats distants encriptats de
+
+
+ Chat Settings
+ Configuració xat
+
+
+ Enable Emoticons Private Chat
+ Activa les emoticones al xat privat
+
+
+ Enable Emoticons Group Chat
+ Activa emoticones pels xats en grup
+
+
+
Enable custom fonts
Activa tipus de lletra personalitzats
@@ -1903,6 +2219,10 @@ Fes doble clic a les sales per entrar-hi i xatejar.
Enable custom font size
Activa mida de lletra personalitzat
+
+ Minimum font size
+ Mida de lletra mĆnima
+
Enable bold
@@ -1914,7 +2234,7 @@ Fes doble clic a les sales per entrar-hi i xatejar.
Activa cursiva
-
+
General settings
@@ -1939,7 +2259,11 @@ Fes doble clic a les sales per entrar-hi i xatejar.
Carrega imatges incrustades
-
+ Chat Lobby
+ Sala de xat
+
+
+
Blink tab icon
Icona de pestanya parpellejant
@@ -1948,6 +2272,10 @@ Fes doble clic a les sales per entrar-hi i xatejar.
Do not send typing notifications
No enviar avĆs d'estar escribint
+
+ Private Chat
+ Xat privat
+
Open Window for new chat
@@ -1969,7 +2297,11 @@ Fes doble clic a les sales per entrar-hi i xatejar.
Icona de pestanya/finestra parpellejant
-
+ Chat Font
+ Tipus de lletra pel xat
+
+
+
Change Chat Font
Canviar tipografia pel xat
@@ -1979,10 +2311,14 @@ Fes doble clic a les sales per entrar-hi i xatejar.
Tipus de lletra pel xat:
-
+
History
Històric
+
+ Style
+ Estil
+
@@ -1997,13 +2333,17 @@ Fes doble clic a les sales per entrar-hi i xatejar.
Variant:
Variant:
+
+ Group chat
+ Xat en grup
+
Private chat
Xat privat
-
+
Choose your default font for Chat.
Escull una tipografia pel Xat.
@@ -2067,28 +2407,22 @@ Fes doble clic a les sales per entrar-hi i xatejar.
<html><head/><body><p align="justify">In this tab you can setup how many chat messages Retroshare will keep saved on the disc and how much of the previous conversation it will display, for the different chat systems. The max storage period allows to discard old messages and prevents the chat history from filling up with volatile chat (e.g. chat lobbies and distant chat).</p></body></html>
<html><head/><body><p align="justify">En aquesta pestanya pots modificar quants missatges de xat el RetroShare mantindrĆ emmagatzemats en disc i quantes de les converses prĆØvies mostrarĆ pels diferents sistemes de xat. El perĆode mĆ xim d'emmagatzematge et permet descartar missatges vells i impedeix que l'historial de xat s'ompli amb xats esporĆ dics (per ex. sales de xat i xats distants).</p></body></html>
+
+ Chatlobbies
+ Salesxat
+
Enabled:
Activat:
-
+
Search
-
- When focus on text browser after showing chat room
-
-
-
-
- Shrink text edit field when not needed
-
-
-
-
+
Fonts
@@ -2098,17 +2432,7 @@ Fes doble clic a les sales per entrar-hi i xatejar.
-
- If your system is set up correctly, this next square should measure 1 cm.
-
-
-
-
- This next square is scaled accordingly to your system font size.
-
-
-
-
+
Chat rooms
Sales de xat
@@ -2205,7 +2529,11 @@ Fes doble clic a les sales per entrar-hi i xatejar.
PerĆode mĆ xim d'emmagatzemat, en dies (0=IlĀ·limitat):
-
+ Search by default
+ Cerca per defecte
+
+
+
Case sensitive
Diferenciar majĆŗscules/minĆŗscules
@@ -2244,6 +2572,10 @@ Fes doble clic a les sales per entrar-hi i xatejar.
Threshold for automatic search
LĆmit per fer una cerca automĆ tica
+
+ Default identity for chat lobbies:
+ Identitat per defecte per les sales de xat:
+
Show Bar by default
@@ -2311,7 +2643,7 @@ Fes doble clic a les sales per entrar-hi i xatejar.
ChatToaster
-
+
Show Chat
Mostra xat
@@ -2347,7 +2679,7 @@ Fes doble clic a les sales per entrar-hi i xatejar.
ChatWidget
-
+
Close
Tancar
@@ -2382,12 +2714,12 @@ Fes doble clic a les sales per entrar-hi i xatejar.
Cursiva
-
+
<html><head/><body><p>Chat menu</p></body></html>
-
+
Insert emoticon
Insertar emoticona
@@ -2396,6 +2728,10 @@ Fes doble clic a les sales per entrar-hi i xatejar.
Attach a Picture
Adjunta una imatge
+
+ <html><head/><body><p>QToolButton:disabled {</p><p> image: url(:/icons/png/send-message-blocked.png) ;</p><p>}</p><p><br/></p></body></html>
+ <html><head/><body><p>QToolButton:desactivat {</p><p> imatge: url(:/icons/png/send-message-blocked.png) ;}</p><p>}</p><p><br/></p></body></html>
+
Strike
@@ -2467,6 +2803,11 @@ Fes doble clic a les sales per entrar-hi i xatejar.
Insert horizontal rule
Inserir regla horitzontal
+
+
+ Save image
+ Desar imatge
+
Import sticker
@@ -2504,7 +2845,7 @@ Fes doble clic a les sales per entrar-hi i xatejar.
-
+
is typing...
estĆ escrivint...
@@ -2528,7 +2869,7 @@ desprƩs de convertir a HTML.
Escull el tipus de lletra
-
+
Do you really want to physically delete the history?
Segur que vols eliminar fĆsicament l'historial?
@@ -2578,7 +2919,7 @@ desprƩs de convertir a HTML.
estĆ ocupat i pot no respondre
-
+
Find Case Sensitively
Cercar diferenciant majĆŗscules i minĆŗscules
@@ -2600,7 +2941,7 @@ desprƩs de convertir a HTML.
No deixis de colorejar fins trobar X elements (Necessita mƩs UCP)
-
+
<b>Find Previous </b><br/><i>Ctrl+Shift+G</i>
<b>Trobar anterior </b><br/><i>Ctrl+Shift+G</i>
@@ -2615,12 +2956,16 @@ desprƩs de convertir a HTML.
<b>Trobar </b><br/><i>Ctrl+F</i>
-
+
(Status)
(Estat)
-
+ Set text font & color
+ Estableix tipus de lletra i color
+
+
+
Attach a File
Adjunta un arxiu
@@ -2636,12 +2981,12 @@ desprƩs de convertir a HTML.
-
+
<b>Mark this selected text</b><br><i>Ctrl+M</i>
<b>Marca el text seleccionat</b><br><i>Ctrl+M</i>
-
+
Person id:
Id de la persona:
@@ -2653,12 +2998,12 @@ Double click on it to add his name on text writer.
Doble clic per afegir el seu nom al text escrit.
-
+
Unsigned
No signat
-
+
items found.
Elements trobats.
@@ -2678,7 +3023,7 @@ Doble clic per afegir el seu nom al text escrit.
Escriu un missatge aquĆ
-
+
Don't stop to color after
No t'aturis a colorejar desprƩs de
@@ -2704,7 +3049,7 @@ Doble clic per afegir el seu nom al text escrit.
CirclesDialog
-
+
Showing details:
Mostrant detalls:
@@ -2726,7 +3071,7 @@ Doble clic per afegir el seu nom al text escrit.
-
+
Personal Circles
Cercles personals
@@ -2752,7 +3097,7 @@ Doble clic per afegir el seu nom al text escrit.
-
+
Friends
Amics
@@ -2812,7 +3157,7 @@ Doble clic per afegir el seu nom al text escrit.
Amics dels amics
-
+
External Circles (Admin)
Cercles externs (Admin)
@@ -2828,7 +3173,7 @@ Doble clic per afegir el seu nom al text escrit.
-
+
Circles
Cercles
@@ -2880,48 +3225,43 @@ Doble clic per afegir el seu nom al text escrit.
-
+
RetroShare
RetroShare
-
+
-
+
Error : cannot get peer details.
Error: no es poden obtenir detalls del contacte.
-
+
Retroshare ID
-
+
<p>This Retroshare ID contains:
-
+
<li> <b>onion address</b> and <b>port</b>
-
+
<li><b>IP address</b> and <b>port</b>:
-
+
<b>IP address</b> and <b>port</b>:
-
-
- <b>DNS:</b> :
-
-
<p>You can use this Retroshare ID to make new friends. Send it by email, or give it hand to hand.</p>
@@ -2933,7 +3273,7 @@ Doble clic per afegir el seu nom al text escrit.
Encriptació
-
+
Not connected
No connectat
@@ -3015,17 +3355,25 @@ Doble clic per afegir el seu nom al text escrit.
cap
-
+
<p>This certificate contains:
<p>Aquest certificat contƩ:
-
+
<li>a <b>node ID</b> and <b>name</b>
<li>un<b>ID de node</b> i <b>nom</b>
-
+ an <b>onion address</b> and <b>port</b>
+ una <b>adreƧa onion</b> i <b>port</b>
+
+
+ an <b>IP address</b> and <b>port</b>
+ una <b>adreƧa IP</b> i <b>port</b>
+
+
+
<p>You can use this certificate to make new friends. Send it by email, or give it hand to hand.</p>
<p>Pots utilitzar aquest certificat per fer nous amics. Envia'l per correu o entrega'l en ma.</p>
@@ -3040,7 +3388,7 @@ Doble clic per afegir el seu nom al text escrit.
<html><head/><body><p>Aquest és el mètode d'encriptat utilitzat per <span style=" font-weight:600;">OpenSSL</span>. La conexió cap a nodes amics</p><p>és sempre forta i si hi ha DHE disponible la conexió a més a més utilitza</p><p>"perfect forward secrecy".</p></body></html>
-
+
with
amb
@@ -3057,16 +3405,118 @@ Doble clic per afegir el seu nom al text escrit.
Connect Friend Wizard
Auxiliar de connexió amb amic
+
+ Add a new Friend
+ Afegir un nou amic
+
+
+ &You get a certificate file from your friend
+ &El teu amic et proporciona un arxiu de certificat
+
+
+ &Make friend with selected friends of my friends
+ &Fes-te amic dels amics seleccionats dels teus amics
+
+
+ &Send an Invitation by Email
+ (Your friend will receive an email with instructions how to download RetroShare)
+ &Envia una invitació per correu electrònic
+(El teu amic rebrà un correu electrònic amb instruccions sobre com descarregar el RetroShare)
+
+
+ Include signatures
+ Inclou les signatures
+
+
+ Copy your Cert to Clipboard
+ Copiar el teu certificat al porta-retalls
+
+
+ Save your Cert into a File
+ Desar el teu certificar en un arxiu
+
+
+ Run Email program
+ Executa el programa de correu electrònic
+
Open Cert of your friend from File
Obre el certificat d'un amic des d'un arxiu
+
+ Open certificate
+ Obre un certificat
+
+
+ Please, paste your friend's Retroshare certificate into the box below
+ Si us plau, enganxa el certificat de Retroshare dels teus amics a la caixa inferior
+
+
+ Certificate files
+ Arxiu de certificat
+
+
+ Use PGP certificates saved in files.
+ Utilitza certificats PGP desat en arxius.
+
+
+ Import friend's certificate...
+ Importa certificats d'amics...
+
+
+ You have to generate a file with your certificate and give it to your friend. Also, you can use a file generated before.
+ Has de generar un arxiu amb el teu certificat i donar-lo al teu amic. TambƩ pots utilitzar un arxiu generat anteriorment.
+
+
+ Export my certificate...
+ Exportar el meu certificat...
+
+
+ Drag and Drop your friends's certificate in this Window or specify path in the box below
+ Arrossega i deixa el certificat dels teus amics a aquesta finestra o especifica una ubicació a la part inferior
+
+
+ Browse
+ Navegar
+
+
+ Friends of friends
+ Amics d'amics
+
+
+ Select now who you want to make friends with.
+ Selecciona amb qui et vols fer amic ara.
+
+
+ Show me:
+ Mostra-m'ho:
+
+
+ Make friend with these peers
+ Fer-se amic amb aquests contactes
+
RetroShare ID
ID RetroShare
+
+ Use RetroShare ID for adding a Friend which is available in your network.
+ Utilitza la Id de RetroShare per afegir un amic que es troba disponible a la xarxa.
+
+
+ Add Friends RetroShare ID...
+ Afegir amics utilitzant la Id de RetroShare...
+
+
+ Paste Friends RetroShare ID in the box below
+ Enganxar Id de RetroShare de l'amic a la casella inferior
+
+
+ Enter the RetroShare ID of your Friend, e.g. Peer@BDE8D16A46D938CF
+ Introdueix el Id de RetroShare del teu amic, ex. Contacte@BDE8D16A46D938CF
+
RetroShare is better with Friends
@@ -3108,7 +3558,27 @@ Doble clic per afegir el seu nom al text escrit.
Correu electrònic
-
+ Invite Friends by Email
+ Convidar amics per correu electrònic
+
+
+ Enter your friends' email addresses (separate each one with a semicolon)
+ Introdueix l'adreça de correu electrònic dels teus amics (Separa-les amb un punt i coma)
+
+
+ Your friends' email addresses:
+ L'adreça de correu electrònic dels teus amics:
+
+
+ Enter Friends Email addresses
+ Introdueix les adreces de correu electrònic dels teus amics
+
+
+ Subject:
+ Assumpte:
+
+
+
@@ -3124,32 +3594,77 @@ Doble clic per afegir el seu nom al text escrit.
Detalls sobre la petició
-
+
Peer details
Detalls del contacte
-
+
Name:
Nom:
+
+ Email:
+ Correu electrònic:
+
+
+ Node:
+ Node:
+
+
+ Please note that RetroShare will require excessive amounts of bandwidth, memory and CPU if you add too many friends. You can add as many friends as you like, but more than 40 will probably require too much
+resources.
+ Si us plau, tingues en compte que RetroShare necessitarà una quantitat excessiva d'ample de banda, memòria i CPU si afegeixes masses amics. Pots afegir tants amics com vulguis, però més de 40 serà probablement excessiu.
+
Location:
Ubicació:
-
+
Options
Opcions
-
+ This wizard will help you to connect to your friend(s) to RetroShare network.<br>Select how you would like to add a friend:
+ Aquest assistent t'ajudarĆ a connectar amb el(s) teu(s) amic(s) de la xarxa RetroShare.<br>Escull com t'agradaria afegir un amic:
+
+
+ Enter the certificate manually
+ Introdueix el certificat manualment
+
+
+ Enter RetroShare ID manually
+ Introdueix la Id de RetroShare manualment
+
+
+ &Send an Invitation by Web Mail Providers
+ &Envia una Invitació utilitzant web mail
+
+
+ Recommend many friends to each other
+ Recomanar molts amics els uns als altres
+
+
+ RetroShare certificate
+ Certificat Retroshare
+
+
+ Please paste below your friend's Retroshare certificate
+ Si us plau, enganxa el certificat de Retroshare del teu amic aquĆ sota
+
+
+ Paste certificate
+ Enganxar certificat
+
+
+
<html><head/><body><p>This box expects your friend's Retroshare certificate. WARNING: this is different from your friend's profile key. Do not paste your friend's profile key here (not even a part of it). It's not going to work.</p></body></html>
<html><head/><body><p>Aquesta casella espera el certificat de Retroshare del teu amic. AVĆS: No Ć©s el mateix que la clau del perfil del teu amic. No enganxis la clau del perfil del teu amic aquĆ (Ni tan sols part d'ella). No funcionarĆ .</p></body></html>
-
+
Add friend to group:
Afegir amic al grup:
@@ -3159,7 +3674,7 @@ Doble clic per afegir el seu nom al text escrit.
Autentica amic (Signa clau PGP)
-
+
Please paste below your friend's Retroshare ID
@@ -3184,22 +3699,16 @@ Doble clic per afegir el seu nom al text escrit.
-
- Signers:
-
-
-
-
- Known IP:
-
-
-
-
+
Add as friend to connect with
Afegir com amic amb qui connectar
-
+ To accept the Friend Request, click the Finish button.
+ Per acceptar la petició de l'amic, clica al botó acabar.
+
+
+
Sorry, some error appeared
Ho sentim, ha aparegut algun error
@@ -3219,27 +3728,32 @@ Doble clic per afegir el seu nom al text escrit.
Detalls sobre el teu amic:
-
+
Key validity:
Validesa de la clau:
-
+
Profile ID:
-
+
+ Signers
+ Signants
+
+
+
<html><head/><body><p><span style=" font-size:10pt;">Signing a friend's key is a way to express your trust into this friend, to your other friends. The signatures below cryptographically attest that owners of the listed keys recognise the current PGP key as authentic.</span></p></body></html>
<html><head/><body><p><span style=" font-size:10pt;">Signar la clau d'un amic és una forma d'expressar la teva confiança en aquest amic als teus altres amics. Les signatures a sota testimonien criptogrà ficament que els propietaris de les claus llistades reconeixen la clau PGP com autèntica. </span></p></body></html>
-
+
This peer is already on your friend list. Adding it might just set it's ip address.
Aquest contacte ja Ʃs a la llista d'amics. Afegir-lo potser nomƩs actualitzi la seva adreƧa IP.
-
+
To accept the Friend Request, click the Accept button.
@@ -3285,17 +3799,49 @@ Doble clic per afegir el seu nom al text escrit.
-
+
Certificate Load Failed
CĆ rrega de certificat fallida
-
+ Cannot get peer details of PGP key %1
+ No es poden aconseguir els detalls del contacte de la clau PGP %1
+
+
+ Any peer I've not signed
+ Qualsevol contacte que no he signat
+
+
+ Friends of my friends who already trust me
+ Amics dels meus amics que ja confien en mi
+
+
+ Signed peers showing as denied
+ Contactes signats mostrats com denegats
+
+
+ Peer name
+ Nom del contacte
+
+
+ Also signed by
+ TambƩ signat per
+
+
+ Peer id
+ Id contacte
+
+
+ Certificate appears to be valid
+ El certificat sembla vĆ lid
+
+
+
Not a valid Retroshare certificate!
No és un certificat de Retroshare và lid!
-
+
RetroShare Invitation
Invitació al RetroShare
@@ -3317,12 +3863,12 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
-
+
This is your own certificate! You would not want to make friend with yourself. Wouldn't you?
Aquest Ʃs el teu certificat! No vols fer-te amic amb tu mateix, oi?
-
+
@@ -3330,7 +3876,7 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
-
+
This key is already on your trusted list
Aquesta clau ja Ʃs a la teva llista de confianƧa
@@ -3370,7 +3916,7 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
Tens una petició d'amic de
-
+
Profile password needed.
@@ -3395,7 +3941,7 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
-
+
Valid Retroshare ID
@@ -3405,7 +3951,47 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
-
+ Certificate Load Failed:file %1 not found
+ Carrega de certificat fallada: No es troba l'arxiu %1
+
+
+ This Peer %1 is not available in your Network
+ El contacte %1 no estĆ disponible a la teva xarxa
+
+
+ Use new certificate format (safer, more robust)
+ Utilitza el format nou de certificat (mƩs robust i segur)
+
+
+ Use old (backward compatible) certificate format
+ Utilitza el format de certificat antic (Compatible amb versions anteriors)
+
+
+ Remove signatures
+ Elimina signatures
+
+
+ RetroShare Invite
+ Invita al RetroShare
+
+
+ Connect Friend Help
+ Ajuda de connectar amic
+
+
+ You can copy this text and send it to your friend via email or some other way
+ Pots copiar aquest text i enviar-lo al teu amic per correu electrònic a un altre mètode
+
+
+ Your Cert is copied to Clipboard, paste and send it to your friend via email or some other way
+ S'ha copiat el teu certificat al porta-retalls, enganxa'l i envia'l al teu amic per correu
+
+
+ Save as...
+ Desa com...
+
+
+
RetroShare Certificate (*.rsc );;All Files (*)
@@ -3444,7 +4030,11 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
*** Cap ***
-
+ Use as direct source, when available
+ Utilitza com a font directa quan estigui disponible
+
+
+
IP-Addr:
AdreƧa IP:
@@ -3454,7 +4044,7 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
AdreƧa IP:
-
+
Show Advanced options
Mostrar opcions avanƧades
@@ -3463,6 +4053,10 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
<html><head/><body><p><span style=" font-size:10pt;">Signing a friend's key is a way to express your trust into this friend, to your other friends. It helps them to decide whether to allow connections from that key based on your own trust. Signing a key is absolutely optional and cannot be undone, so do it wisely.</span></p></body></html>
<html><head/><body><p><span style=" font-size:10pt;">Signar la clau d'un amic és una forma d'expressar la teva confiança en aquest amic als teus altres amics. Els ajudarà a decidir si volen acceptar o no connexions d'aquesta clau basant-se en la teva confiança. Signar una clau és completament opcional i no es pot desfer, fes-ho amb cura.</span></p></body></html>
+
+ <html><head/><body><p align="justify">Retroshare periodically checks your friend lists for browsable files matching your transfers, to establish a direct transfer. In this case, your friend knows you're downloading the file.</p><p align="justify">To prevent this behavior for this friend only, uncheck this box. You can still perform a direct transfer if you explicitly ask for it, by e.g. downloading from your friend's file list. This setting is applied to all locations of the same node.</p></body></html>
+ <html><head/><body><p align="justify">El Retroshare periòdicament comprova la teva llista d'amics per arxius navegables que coincideixin amb els mateixos que estĆ s descarregant, per establir una transferĆØncia directa. En aquest cas els teus amics sabran quĆØ descarregues.</p><p align="justify">Si no vols que això passi per algun amic en concret, desmarca aquesta casella. Encara podrĆ s realitzar transferĆØncies directes si ho demanes explĆcitament, per exemple descarregant de la llista del teu amic directament. Això s'aplicarĆ a totes les ubicacions del mateix node.</p></body></html>
+
<html><head/><body><p>This option allows you to automatically download a file that is recommended in an message coming from this node. This can be used for instance to send files between your own nodes. Applied to all locations of the same node.</p></body></html>
@@ -3473,13 +4067,45 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
<html><head/><body><p>Peers that have this option cannot connect if their connection address is not in the whitelist. This protects you from traffic forwarding attacks. When used, rejected peers will be reported by "security feed items" in the News Feed section. From there, you can whitelist/blacklist their IP. Applies to all locations of the same node.</p></body></html>
<html><head/><body><p>Els contactes que tenen aquesta opció no poden connectar-se si la seva adreça no és a la llista blanca. Això et protegeix d'atacs de reenviament. Quan s'usen, els contactes refusats són notificats a la secció de Novetats amb un tiquet de seguretat. Des d'allà es pot decidir que fer amb la IP. S'aplica a totes les ubicacions del mateix node.</p></body></html>
+
+ Recommend many friends to each others
+ Recomanar molts amics els uns als altres
+
+
+ Friend Recommendations
+ Recomanacions de l'amic
+
+
+ The text below is your Retroshare certificate. You have to provide it to your friend
+ El text a sota Ʃs el teu certificat de Retroshare. L'has de proporcionar al teu amic
+
+
+ Message:
+ Missatge:
+
+
+ Recommend friends
+ Recomanar amics
+
+
+ To
+ A
+
+
+ Please select at least one friend for recommendation.
+ Si us plau, escull almenys un amic per recomanació.
+
+
+ Please select at least one friend as recipient.
+ Si us plau, selecciona almenys un amic com a destinatari.
+
Add key to keyring
Afegeix clau al clauer
-
+
This key is already in your keyring
Aquesta claus ja Ʃs al clauer
@@ -3495,7 +4121,7 @@ missatges distants a aquest contacte
encara que no sigueu amics.
-
+
Certificate has wrong version number. Remember that v0.6 and v0.5 networks are incompatible.
El certificat té un nombre de versió erroni. Recorda que les xarxes v0.6 i v0.5 són incompatibles.
@@ -3530,7 +4156,7 @@ encara que no sigueu amics.
Afegir la IP a la llista blanca
-
+
No IP in this certificate!
Aquest certificat no tƩ IP!
@@ -3540,10 +4166,27 @@ encara que no sigueu amics.
<p>Aquest certificat no tĆ© IP. NomĆ©s podrĆ s utilitzar descobriment i DHT per trobar-lo. Com que Ć©s necessari que estigui a la llista blanca d'IPs el contacte provocarĆ un avĆs a la pestanya de Novetats. Des d'allĆ podrĆ s afegir la IP a la llista blanca.</p>
-
+
+ [Unknown]
+ [Desconegut]
+
+
+
Added with certificate from %1
Afegit amb el certificat de %1
+
+ Paste Cert of your friend from Clipboard
+ Enganxa el certificat del teu amic des del porta-retalls
+
+
+ Certificate Load Failed:can't read from file %1
+ Carrega de certificat fallada: no es pot llegir de l'arxiu %1
+
+
+ Certificate Load Failed:something is wrong with %1
+ Carrega de certificat fallada: Hi ha alguna cosa malament amb %1
+
ConnectProgressDialog
@@ -3605,7 +4248,7 @@ encara que no sigueu amics.
-
+
UDP Setup
Configuració UDP
@@ -3641,7 +4284,7 @@ p, li { white-space: pre-wrap; }
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Lucida Grande'; font-size:13pt;">pots tancar-lo.</span></p></body></html>
-
+
Connection Assistant
Auxiliar de connexió
@@ -3651,20 +4294,17 @@ p, li { white-space: pre-wrap; }
Id contacte invĆ lida
-
-
+
Unknown State
Estat desconegut
-
-
+
Offline
Fora de lĆnia
-
-
+
Behind Symmetric NAT
Darrera NAT simĆØtric
@@ -3674,14 +4314,12 @@ p, li { white-space: pre-wrap; }
Darrera NAT i sense DHT
-
-
+
NET Restart
Reiniciar xarxa
-
-
+
Behind NAT
Darrera NAT
@@ -3691,8 +4329,7 @@ p, li { white-space: pre-wrap; }
Sense DHT
-
-
+
NET STATE GOOD!
ESTAT DE LA XARXA BO!
@@ -3717,7 +4354,7 @@ p, li { white-space: pre-wrap; }
Trobant contactes RS
-
+
Lookup requires DHT
Descobriment requereix DHT
@@ -4009,7 +4646,7 @@ p, li { white-space: pre-wrap; }
Si us plau, intenta-ho important un certificat complet
-
+
@@ -4017,8 +4654,7 @@ p, li { white-space: pre-wrap; }
N/A
-
-
+
UNVERIFIABLE FORWARD!
REENVIAMENT NO VERIFICABLE!
@@ -4028,7 +4664,7 @@ p, li { white-space: pre-wrap; }
REENVIAMENT NO VERIFICABLE I SENSE DHT
-
+
Searching
Cercant
@@ -4064,12 +4700,12 @@ p, li { white-space: pre-wrap; }
Detalls del cercle
-
+
Name
Nom
-
+
<html><head/><body><p>The circle name, contact author and invited member list will be visible to all invited members. If the circle is not private, it will also be visible to neighbor nodes of the nodes who host the invited members.</p></body></html>
<html><head/><body><p>El nom del cercle, contacte de l'autor i la llista de membres invitats serà visible a tots els membres invitats. Si el cercle no és privat, també serà visible pels nodes veïns dels nodes que pertanyen als membres invitats.</p></body></html>
@@ -4089,7 +4725,7 @@ p, li { white-space: pre-wrap; }
-
+
IDs
Ids
@@ -4109,18 +4745,18 @@ p, li { white-space: pre-wrap; }
Filtre
-
+
Cancel
-
+
Nickname
Sobrenom
-
+
Invited Members
Membres convidats
@@ -4135,7 +4771,15 @@ p, li { white-space: pre-wrap; }
Gent Coneguda
-
+ ID
+ ID
+
+
+ Type
+ Tipus
+
+
+
Name:
Nom:
@@ -4175,19 +4819,23 @@ p, li { white-space: pre-wrap; }
<html><head/><body><p>Els cercles poden restringir-se a membres d'un altre cercle. NomƩs els membres d'aquest segon cercle podran veure el nou cercle i el contingut (llistat de membres, etc.).</p></body></html>
-
-
+ Only visible to members of:
+ NomƩs visible a membres de:
+
+
+
+
RetroShare
RetroShare
-
+
Please set a name for your Circle
Si us plau, introdueix un nom pel teu cercle
-
+
No Restriction Circle Selected
No s'ha seleccionat cap cercle de restricció
@@ -4197,24 +4845,12 @@ p, li { white-space: pre-wrap; }
No s'ha seleccionat cap cercle de limitacions
-
- Circle created
-
-
-
-
- Your new circle has been created:
- Name: %1
- Id: %2.
-
-
-
-
+
[Unknown]
[Desconegut]
-
+
Add
Afegir
@@ -4224,7 +4860,7 @@ p, li { white-space: pre-wrap; }
Treure
-
+
Search
Cercar
@@ -4239,6 +4875,10 @@ p, li { white-space: pre-wrap; }
Signed
Signat
+
+ Signed by known nodes
+ Signat per nodes coneguts
+
Edit Circle
@@ -4255,6 +4895,10 @@ p, li { white-space: pre-wrap; }
PGP Identity
Identitat PGP
+
+ Anon Id
+ Id anonima
+
Circle name
@@ -4277,13 +4921,17 @@ p, li { white-space: pre-wrap; }
Crear Nou Cercle
-
+
Create
Crear
-
+ PGP Linked Id
+ Id enllaƧ PGP
+
+
+
Add Member
Afegir Membre
@@ -4302,7 +4950,7 @@ p, li { white-space: pre-wrap; }
Crear grup
-
+
Group Name:
Nom del grup:
@@ -4337,7 +4985,7 @@ p, li { white-space: pre-wrap; }
CreateGxsChannelMsg
-
+
New Channel Post
Nova entrada al canal
@@ -4347,7 +4995,7 @@ p, li { white-space: pre-wrap; }
Entrada al canal
-
+
Post
@@ -4408,11 +5056,23 @@ p, li { white-space: pre-wrap; }
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/images/feedback_arrow.png" /><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;"> Fes arrossegar i deixar / Botó d'afegir arxius per calcular el número de hash d'arxius nous.</span></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/images/feedback_arrow.png" /><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;"> Copiar/Enganxar enllaƧos RetroShare dels teus compartits</span></p></body></html>
+
+ Add File to Attach
+ Afegir arxiu per adjuntar
+
Add Channel Thumbnail
Afegir miniatura del canal
+
+ Message
+ Missatge
+
+
+ Subject :
+ Assumpte:
+
@@ -4498,17 +5158,17 @@ p, li { white-space: pre-wrap; }
-
+
RetroShare
RetroShare
-
+
This file already in this post:
-
+
Post refers to non shared files
@@ -4527,18 +5187,17 @@ p, li { white-space: pre-wrap; }
The following files will only be shared for 30 days. Think about adding them to a shared directory.
+
+ File already Added and Hashed
+ Arxiu ja afegit i hash calculat
+
Please add a Subject
Si us plau, afegeix un assumpte
-
- Cannot publish post
-
-
-
-
+
Load thumbnail picture
Carrega miniatura
@@ -4553,12 +5212,18 @@ p, li { white-space: pre-wrap; }
Amagar
-
+
+
Generate mass data
Generar dades en massa
-
+
+ Do you really want to generate %1 messages ?
+ Segur que vols generar %1 missatges?
+
+
+
You are about to add files you're not actually sharing. Do you still want this to happen?
EstĆ s a punt d'afegir arxius que ara mateix no comparteixes. Segur que ho vols fer?
@@ -4592,7 +5257,7 @@ p, li { white-space: pre-wrap; }
CreateGxsForumMsg
-
+
Post Forum Message
Publica missatge al fòrum
@@ -4601,6 +5266,10 @@ p, li { white-space: pre-wrap; }
Forum
Fòrum
+
+ Subject
+ Assumpte
+
Attach File
@@ -4621,8 +5290,8 @@ p, li { white-space: pre-wrap; }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'MS Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8.25pt;"><br /></p></body></html>
+</style></head><body style=" font-family:'MS Sans Serif'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Sans Serif';"><br /></p></body></html>
@@ -4641,7 +5310,7 @@ p, li { white-space: pre-wrap; }
Podeu adjuntar arxius arrossegant i deixant anar en aquesta finestra
-
+
Post
@@ -4671,17 +5340,17 @@ p, li { white-space: pre-wrap; }
-
+
No Forum
Sense fòrum
-
+
In Reply to
En resposta a
-
+
Title
TĆtol
@@ -4735,7 +5404,7 @@ Vols descartar aquest missatge?
Carrega arxiu d'imatge
-
+
No compatible ID for this forum
No hi ha un ID compatible amb aquest fòrum
@@ -4745,8 +5414,8 @@ Vols descartar aquest missatge?
Cap de les teves identitats té permès publicar en aquest fòrum. Això pot deures a que el fòrum estigui limitat a un cercle que no té cap de les teves identitats, o a que el fòrum requereixi una identitat signada amb PGP.
-
-
+
+
Generate mass data
Generar dades en massa
@@ -4755,6 +5424,10 @@ Vols descartar aquest missatge?
Do you really want to generate %1 messages ?
Segur que vols generar %1 missatges?
+
+ Send
+ Enviar
+
Post as
@@ -4769,7 +5442,23 @@ Vols descartar aquest missatge?
CreateLobbyDialog
-
+ Create Chat Lobby
+ Crear sala de xat
+
+
+ A chat lobby is a decentralized and anonymous chat group. All participants receive all messages. Once the lobby is created you can invite other friends from the Friends tab.
+ Un sala de xat és un grup de xat descentralitzat i anònim. Tots els participants reben tots els missatges. Un cop la sala és creada pots invitar altres amics de la pestanya d'amics.
+
+
+ Lobby name:
+ Nom de la sala:
+
+
+ Lobby topic:
+ Assumpte de la sala:
+
+
+
A chat room is a decentralized and anonymous chat group. All participants receive all messages. Once the room is created you can invite other friend nodes with invite button on top right.
@@ -4804,7 +5493,7 @@ Vols descartar aquest missatge?
-
+
Create
Crear
@@ -4814,7 +5503,11 @@ Vols descartar aquest missatge?
-
+ <html><head/><body><p>If you check this, only PGP-signed ids can be used to join and talk in this lobby. This limitation prevents anonymous spamming as it becomes possible for at least some people in the lobby to locate the spammer's node.</p></body></html>
+ <html><head/><body><p>Si marques aquĆ nomĆ©s ids signades amb PGP podran ser utilitzades per accedir i parlar a la sala. Aquesta limitació evita l'spam anònim donat que esdevĆ© possible que, com a mĆnim algunes de les persones de la sala, puguin localitzar el node de l'spammer.</p></body></html>
+
+
+
require PGP-signed identities
requereix identitats signades amb PGP
@@ -4829,7 +5522,11 @@ Vols descartar aquest missatge?
Escull els amics amb qui vols fer un xat en grup.
-
+ Invited friends
+ Amics convidats
+
+
+
Create Chat Room
Crear sala de xat
@@ -4850,7 +5547,7 @@ Vols descartar aquest missatge?
Contactes:
-
+
Identity to use:
Identitat a utilitzar:
@@ -4858,17 +5555,17 @@ Vols descartar aquest missatge?
CryptoPage
-
+
Public Information
Informació pública
-
+
Name:
Nom:
-
+
Location:
Ubicació:
@@ -4878,12 +5575,12 @@ Vols descartar aquest missatge?
Id d'ubicació:
-
+
Software Version:
Versió de programari:
-
+
Online since:
En lĆnia des de:
@@ -4903,7 +5600,12 @@ Vols descartar aquest missatge?
-
+
+ <html><head/><body><p>Use this to export your profile key. You can then import it in a different computer and make a new node with the same profile. Doing so, existing friends that you also add to the new node will automatically recognise that new node as friend.</p></body></html>
+
+
+
+
Export
@@ -4913,7 +5615,7 @@ Vols descartar aquest missatge?
-
+
Other Information
Altra informació
@@ -4923,12 +5625,17 @@ Vols descartar aquest missatge?
-
+
Profile
Perfil
-
+
+ Certificate
+ Certificat
+
+
+
<html><head/><body><p>This option includes all signatures of your profile key. Signatures are not mandatory, but only a way to express your trust in some particular profile.</p></body></html>
@@ -4938,7 +5645,11 @@ Vols descartar aquest missatge?
Inclou les signatures
-
+ Save Key into a file
+ Desa la clau a un arxiu
+
+
+
Export Identity
Exportar identitat
@@ -5011,33 +5722,33 @@ i utilitzar el botó d'importació per carregar-lo
-
+
TextLabel
EtiquetaText
-
+
PGP fingerprint:
fingerprint PGP:
-
+
+ Node information
+ Informació de node
+
+
+
PGP Id :
Id PGP:
-
+
Friend nodes:
Nodes de l'amic:
-
- <html><head/><body><p>Use this button to export your profile key. You can then import it in a different computer and make a new node with the same profile. Doing so, existing friends that you also add to the new node will automatically recognise that new node as friend.</p></body></html>
-
-
-
-
+
<html><head/><body><p>The short format only contains the profile fingerprint, and authentication is based on the node ID (ID of the SSL key). If you choose the old (long) format, the certificate includes the full profile public key. There is no fundamental difference between making friends with either method, because the public profile keys will be exchanged and checked w.r.t. the fingerprint after connection.</p></body></html>
@@ -5076,6 +5787,14 @@ i utilitzar el botó d'importació per carregar-lo
Node
Node
+
+ Create new node...
+ Crear node nou...
+
+
+ show statistics window
+ mostra la finestra d'estadĆstiques
+
DHTGraphSource
@@ -5092,6 +5811,10 @@ i utilitzar el botó d'importació per carregar-lo
DHT
DHT
+
+ <p>Retroshare uses Bittorrent's DHT as a proxy for connexions. It does not "store" your IP in the DHT. Instead the DHT is used by your friends to reach you while processing standard DHT requests. The status bullet will turn green as soon as Retroshare gets a DHT response from one of your friends.</p>
+ <p>Retroshare utilitza el DHT de Bittorrent com a repetidor per les connexions. No emmagatzema la teva IP al DHT. ā„ā„ā„ā„ En lloc d'això el DHT Ć©s utilitzat pels teus contactes per contactar amb tu mentre es processen peticions DHT estĆ ndard. ā„ā„ā„ā„ā„ā„ā„ā„ā„ā„ā„ā„L'indicador d'estat es tornarĆ verd tan aviat com el Retroshare obtingui una resposta per DHT d'un dels teus amics.</p>
+
<p>Retroshare uses Bittorrent's DHT as a proxy for connexions. It does not "store" your IP in the DHT. Instead the DHT is used by your trusted nodes to reach you while processing standard DHT requests. The status bullet will turn green as soon as Retroshare gets a DHT response from one of your trusted nodes.</p>
@@ -5127,7 +5850,7 @@ i utilitzar el botó d'importació per carregar-lo
DLListDelegate
-
+
B
B
@@ -5795,7 +6518,7 @@ i utilitzar el botó d'importació per carregar-lo
DownloadToaster
-
+
Start file
Arxiu d'inici
@@ -5803,38 +6526,38 @@ i utilitzar el botó d'importació per carregar-lo
ExprParamElement
-
+
-
+
to
a
-
+
ignore case
ignora majĆŗscules/minĆŗscules
-
-
- yyyy-MM-dd
-
+
+
+ dd.MM.yyyy
+ dd.mm.aaaa
-
-
+
+
KB
kB
-
-
+
+
MB
MB
-
-
+
+
GB
GB
@@ -5842,12 +6565,12 @@ i utilitzar el botó d'importació per carregar-lo
ExpressionWidget
-
+
Expression Widget
Giny d'expressió
-
+
Delete this expression
Suprimir aquesta expressió
@@ -6009,7 +6732,7 @@ i utilitzar el botó d'importació per carregar-lo
FilesDefs
-
+
Picture
Imatge
@@ -6019,7 +6742,7 @@ i utilitzar el botó d'importació per carregar-lo
VĆdeo
-
+
Audio
Ćudio
@@ -6079,21 +6802,11 @@ i utilitzar el botó d'importació per carregar-lo
C
C
-
-
- APK
-
-
-
-
- DLL
-
-
FlatStyle_RDM
-
+
Friends Directories
Directoris dels amics
@@ -6215,7 +6928,7 @@ i utilitzar el botó d'importació per carregar-lo
-
+
ID
ID
@@ -6250,6 +6963,10 @@ i utilitzar el botó d'importació per carregar-lo
Show State
Mostrar Estat
+
+ Trusted nodes
+ Nodes de confianƧa
+
@@ -6257,7 +6974,7 @@ i utilitzar el botó d'importació per carregar-lo
Mostra grups
-
+
Group
Grup
@@ -6293,7 +7010,7 @@ i utilitzar el botó d'importació per carregar-lo
Afegir al grup
-
+
Search
Cerca
@@ -6309,7 +7026,7 @@ i utilitzar el botó d'importació per carregar-lo
Ordena per estat
-
+
Profile details
Detalls del perfil
@@ -6553,7 +7270,7 @@ com a mĆnim un dels contactes no s'ha afegit a un grup
FriendRequestToaster
-
+
Confirm Friend Request
Confirma la petició d'amic
@@ -6570,6 +7287,10 @@ com a mĆnim un dels contactes no s'ha afegit a un grup
FriendSelectionWidget
+
+ Search :
+ Cercar:
+
Sort by state
@@ -6591,7 +7312,7 @@ com a mĆnim un dels contactes no s'ha afegit a un grup
Busca als amics
-
+
Mark all
Marcar tots/es
@@ -6602,134 +7323,16 @@ com a mĆnim un dels contactes no s'ha afegit a un grup
Marcar cap
-
- FriendServerControl
-
-
- Server onion address:
-
-
-
-
- <html><head/><body><p>Enter here the onion address of the Friend Server that was given to you. The address will be automatically checked after you enter it and a green bullet will appear if the server is online.</p></body></html>
-
-
-
-
- Onion address of the friend server
-
-
-
-
- <html><head/><body><p>Communication port of the server. You usually get a server address as somestring.onion:port. The port is the number right after ":"</p></body></html>
-
-
-
-
- Retroshare passphrase:
-
-
-
-
- <html><head/><body><p>Your Retroshare login passphrase is needed to ensure the security of data exchange with the friend server.</p></body></html>
-
-
-
-
- Your retroshare passphrase
-
-
-
-
- On/Off
-
-
-
-
- Friends to request:
-
-
-
-
- Auto accept received certificates as friends
-
-
-
-
- Auto-accept
-
-
-
-
- Name
- Nom
-
-
-
- Node ID
-
-
-
-
- Address
- AdreƧa
-
-
-
- Status
- Estat
-
-
-
- <h1><img width="%1" src=":/icons/help_64.png"> Friend Server</h1> <p>This configuration panel allows you to specify the onion address of a friend server. Retroshare will talk to that server anonymously through Tor and use it to acquire a fixed number of friends.</p> <p>The friend server will continue supplying new friends until that number is reached in particular if you add your own friends manually, the friend server may become useless and you will save bandwidth disabling it. When disabling it, you will keep existing friends.</p> <p>The friend server only knows your peer ID and profile public key. It doesn't know your IP address.</p>
-
-
-
-
- Make friend
- Fer amic
-
-
-
- Missing profile passphrase.
-
-
-
-
- Your profile passphrase is missing. Please enter is in the field below before enabling the friend server.
-
-
-
-
- Trying to contact friend server
-This may take up to 1 min.
-
-
-
-
- Friend server is currently reachable.
-
-
-
-
- The proxy is not enabled or broken.
-Are all services up and running fine??
-Also check your ports!
- El repetidor no estĆ activat o estĆ trencat.
-Estan tots els serveis funcionant correctament??
-Comprova els teus ports!
-
-
FriendsDialog
-
+
Edit status message
Editar missatge d'estat
-
-
+
+
Broadcast
Difusió
@@ -6812,38 +7415,33 @@ Comprova els teus ports!
Restablir tipografia per defecte
-
+
Keyring
Clauer
-
+
+ <h1><img width="32" src=":/icons/help_64.png"> Network</h1> <p>The Network tab shows your friend Retroshare nodes: the neighbor Retroshare nodes that are connected to you. </p> <p>You can group nodes together to allow a finer level of information access, for instance to only allow some nodes to see some of your files.</p> <p>On the right, you will find 3 useful tabs: <ul> <li>Broadcast sends messages to all connected nodes at once</li> <li>Local network graph shows the network around you, based on discovery information</li> <li>Keyring contains node keys you collected, mostly forwarded to you by your friend nodes</li> </ul> </p>
+ <h1><img width="32" src=":/images/help_64.png"> Xarxa</h1> <p>La pestanya Xarxa mostra els nodes RertoShare dels teus amics: Els nodes de RetroShare veïns amb que està s.connectat. </p> <p>Pots agrupar els nodes en grups per millorar el control de l'accés a les dades, per permetre només a alguns nodes veure alguns arxius.</p> <p>A la dreta, trobaràs 3 útils pestanyes: <ul> <li>Difusió envia missatges a tots els nodes connectats a la vegada</li><li>El grà fic de xarxa propera mostra la xarxa al teu voltant, basant-se en la informació de descobriment</li> <li>Anell de claus conté les claus que tens, principalment les reenviades pels nodes dels teus amics cap a tu</li> </ul> </p>
+
+
+
Retroshare broadcast chat: messages are sent to all connected friends.
Xat de difusió del RetroShare: Els missatges són enviats a tots els amics connectats.
-
-
+
+
Network
Xarxa
-
- Friend Server
-
-
-
-
+
Network graph
GrĆ fic de xarxa
-
- <h1><img width="%1" src=":/icons/help_64.png"> Network</h1><p>The Network tab shows your friend Retroshare nodes: the neighbor Retroshare nodes that are connected to you.</p><p>You can group nodes together to allow a finer level of information access, for instance to only allow some nodes to see some of your files.</p><p>On the right, you will find 3 useful tabs: <ul> <li>Broadcast sends messages to all connected nodes at once</li> <li>Local network graph shows the network around you, based on discovery information</li> <li>Keyring contains node keys you collected, mostly forwarded to you by your friend nodes</li> </ul> </p>
-
-
-
-
+
Set your status message here.
Estableix aquĆ el teu missatge d'estat.
@@ -6861,17 +7459,7 @@ Comprova els teus ports!
Contrasenya
-
- SAMv3 support is not available
-
-
-
-
- I2P instance address with SAMv3 enabled
-
-
-
-
+
All fields are required with a minimum of 3 characters
Tots els camps són obligatoris amb un mĆnim de 3 carĆ cters
@@ -6881,12 +7469,17 @@ Comprova els teus ports!
Les contrasenyes no coincideixen
-
+
Port
Port
-
+
+ Use BOB
+ Utilitza BOB
+
+
+
This password is for PGP
Aquesta contrasenya Ʃs pel PGP
@@ -6907,38 +7500,50 @@ Comprova els teus ports!
Ha fallat la generació del teu nou certificat, potser la contrasenya PGP sigui incorrecta!
-
+ Options
+ Opcions
+
+
+
PGP Key Length
Longitud de clau PGP
-
-
+
+
<html><head/><body><p>Put a strong password here. This password protects your private node key!</p></body></html>
<html><head/><body><p>Utilitza una contrasenya complicada. Aquesta contrasenya protegeix la clau privada del teu node!</p></body></html>
-
+
<html><head/><body><p>Please move your mouse around in order to collect as much randomness as possible. A minimum of 20% is needed to create your node keys.</p></body></html>
<html><head/><body><p>Si us plau, mou el ratolĆ una mica per captar tanta aleatorietat com sigui possible. Ćs necessari arribar fins el 20% per crear la clau del teu node.</p></body></html>
-
+
Standard node
Node estĆ ndard
-
+ TOR/I2P Hidden node
+ Node ocult Tor/I2P
+
+
+
<html><head/><body><p>Your node name designates the Retroshare instance that</p><p>will run on this computer.</p></body></html>
<html><head/><body><p>El nom del teu node estableix la instancia de Retroshare que</p><p>s'executarĆ en el teu ordinador.</p></body></html>
-
+ Use existing profile
+ Tornar a utilitzar un perfil existent
+
+
+
Node name
Nom del node
-
+
Node type:
@@ -6958,12 +7563,12 @@ Comprova els teus ports!
-
+
<html><head/><body><p>The profile name identifies you over the network.</p><p>It is used by your friends to accept connections from you.</p><p>You can create multiple Retroshare nodes with the</p><p>same profile on different computers.</p><p><br/></p></body></html>
<html><head/><body><p>El nom del perfil t'identifica a tu a la xarxa.</p><p>Ćs l'utilitzat pels teus amics per acceptar les teves connexions.</p><p>Pots crear multiples nodes de Retroshare amb el</p><p>mateix perfil a ordinadors diferents.</p><p><br/></p></body></html>
-
+
Export this profle
Exportar aquest perfil
@@ -6973,43 +7578,42 @@ Comprova els teus ports!
-
+
<html><head/><body><p>This should be a Tor Onion address of the form: xa76giaf6ifda7ri63i263.onion <br/>or an I2P address in the form: [52 characters].b32.i2p </p><p>In order to get one, you must configure either Tor or I2P to create a new hidden service / server tunnel. </p><p>You can also leave this blank now, but your node will only work if you correctly set the Tor/I2P service address in Options->Network->Hidden Service configuration panel.</p></body></html>
<html><head/><body><p>Pot ser una adreça Tor Onion del tipus: xa76giaf6ifda7ri63i263.onion <br/>o una adreça I2P del tipus: [52 carà cters].b32.i2p </p>Per tal d'obtindre'n una has de configurar o Tor o I2P per crear un nou servei ocult/servidor de túnel. <p><p>Pots deixar-ho en blanc ara, però el teu node només funcionarà si poses una adreça Tor/I2P a les opcions del Retroshare a Opcions>Xarxa->Panell de configuració de servei ocult.</p></body></html>
-
- Use I2P
-
-
-
-
+
<html><head/><body><p>Identities are used when you write in chat rooms, forums and channel comments. </p><p>They also receive/send email over the Retroshare network. You can create</p><p>a signed identity now, or do it later on when you get to need it.</p></body></html>
<html><head/><body><p>Les identitats s'utilitzen quan escrius en sales de xat, fòrums i comentaris en canals. </p><p>També s'empren quan envies/reps correus electrònics per la xarxa de Retroshare. Pots crear </p><p>una identitat signada ara o deixar-ho per més tard, quan ho necessitis.</p></body></html>
-
+
Go!
Som-hi!
-
-
+
+
TextLabel
EtiquetaText
-
+ Advanced options
+ Opcions avanƧades
+
+
+
hidden address
adreƧa oculta
-
+
Your profile is associated with a PGP key pair. RetroShare currently ignores DSA keys.
El teu perfil estĆ associat a un parell de clau PGP. RetroShare ara mateix ignora les claus DSA.
-
+
<html><head/><body><p>This is your connection port.</p><p>Any value between 1024 and 65535 </p><p>should be ok. You can change it later.</p></body></html>
<html><head/><body><p>Aquest és el teu port de connexió.</p><p>Qualsevol valor entre 1024 i 65535 </p><p>serà và lid. Podràs canviar-ho més tard.</p></body></html>
@@ -7057,13 +7661,13 @@ i utilitzar el botó d'importació per carregar-lo
El teu perfil no s'ha desat. Hi ha hagut un error.
-
+
Import profile
Importar perfil
-
+
Create new profile and new Retroshare node
Crear un nou perfil i un node nou de Retroshare
@@ -7073,7 +7677,7 @@ i utilitzar el botó d'importació per carregar-lo
Crear un node nou de Retroshare
-
+
Tor/I2P address
AdreƧa Tor/I2P
@@ -7108,7 +7712,7 @@ i utilitzar el botó d'importació per carregar-lo
-
+
<html><p>Put a strong password here. This password will be required to start your Retroshare node and protects all your data.</p></html>
@@ -7118,7 +7722,12 @@ i utilitzar el botó d'importació per carregar-lo
-
+
+ BOB support is not available
+
+
+
+
<p>Node creation is disabled until all fields correctly set.</p>
<p>La creació de node està desactivada fins que els camps estiguin completats correctament.</p>
@@ -7128,7 +7737,12 @@ i utilitzar el botó d'importació per carregar-lo
<p>La creació de node estĆ desactivada fins que s'hagi acumulat suficient aleatorietat. Si us plau, mou el ratolĆ fins que arribis com a mĆnim al 20%.</p>
-
+
+ I2P instance address with BOB enabled
+ AdreƧa de la instancia I2P amb BOB activat.
+
+
+
I2P instance address
AdreƧa instancia I2P
@@ -7354,13 +7968,36 @@ i utilitzar el botó d'importació per carregar-lo
ComenƧant
-
+
Invite Friends
Convidar amics
-
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">RetroShare is nothing without your Friends. Click on the Button to start the process.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Email an Invitation with your "ID Certificate" to your friends.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Be sure to get their invitation back as well... </span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">You can only connect with friends if you have both added each other.</span></p></body></html>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">El RetroShare és res sense els teus amics. Clica en el botó per començar el procés.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Envia una invitació per correu electrònic amb el teu "Id de Certificat" al teus amics.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Assegurat de rebre la seva invitació també... </span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">NomƩs pots connectar-te amb els teus amics si tots dos us heu afegit com amics.</span></p></body></html>
+
+
+
Add Your Friends to RetroShare
Afegir els teus amics al RetroShare
@@ -7370,103 +8007,136 @@ i utilitzar el botó d'importació per carregar-lo
Afegir amics
-
- Connect To Friends
- Connectar-se als amics
-
-
-
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">RetroShare is nothing without your Friends. Click on the Button to start the process.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Email an Invitation with your "ID Certificate" to your friends.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Be sure to get their invitation back as well... </span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">You can only connect with friends if you have both added each other.</span></p></body></html>
-
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Be Online at the same time as your friends, and RetroShare will automatically connect you!</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Your client needs to find the RetroShare Network before it can make connections.</span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">This takes 5-30 minutes the first time you start up RetroShare</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">The DHT indicator (in the Status Bar) turns Green when it can make connections.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">After a couple of minutes, the NAT indicator (also in the Status Bar) switch to Yellow or Green.</span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">If it remains Red, then you have a Nasty Firewall, that RetroShare struggles to connect through.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Look in the Further Help section for more advice about connecting.</span></p></body></html>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+ p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Estigues en lĆnia a la vegada que els teus amics i el Retroshare automĆ ticament us connectarĆ !</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">El teu client necessita trobar la xarxa Retroshare abans de poder fer les connexions.</span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Això pot trigar entre 5-30 minuts la primera vegada que engegues el RetroShare</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">L'indicador de DHT (A la barra d'estat) es tornarĆ Verda quan pugui realitzar connexions.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Al cap d'un parell de minuts, l'indicador de NAT (També a la barra d'estat) canviarà a Groc o Verd.</span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Si continua Vermell, tens un Tallafocs Dolentot que el Retroshare tƩ problemes per travessar.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Busca a la secció d'Ajuda Extra per més consells sobre connectar-se.</span></p></body></html>
-
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">When your friends send you their invitations, click to open the Add Friends window.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Paste your Friends' "ID Certificates" into the window and add them as friends.</span></p></body></html>
-
-
-
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">You can improve your Retroshare performance by opening an External Port. </span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">This will speed up connections and allow more people to connect with you. </span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">The easiest way to do this is by enabling UPnP on your Wireless Box or Router.</span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">As each router is different, you will need to find out your Router Model and search the Internet for instructions.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">If none of this makes sense to you, don't worry about it Retroshare will still work.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p></body></html>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Be Online at the same time as your friends, and RetroShare will automatically connect you!</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Your client needs to find the RetroShare Network before it can make connections.</span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">This takes 5-30 minutes the first time you start up RetroShare</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">The DHT indicator (in the Status Bar) turns Green when it can make connections.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">After a couple of minutes, the NAT indicator (also in the Status Bar) switch to Yellow or Green.</span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">If it remains Red, then you have a Nasty Firewall, that RetroShare struggles to connect through.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Look in the Further Help section for more advice about connecting.</span></p></body></html>
-
-
-
-
- Advanced: Open Firewall Port
- AvanƧat: Obrir port del tallafocs
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Pots millorar el rendiment del Retroshare obrint un port extern. </span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Això accelerarà les connexions i permetrà que més gent connecti amb tu. </span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">La forma mƩs senzilla de fer-ho Ʃs activant el UPnP en el teu encaminador o aparell Wifi.</span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Com que cada encaminador és diferent hauràs de ser tu qui trobi les instruccions per com fer-ho.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Si no saps de que t'estem parlant no hi pensis més, el Retroshare continuarà funcionant.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p></body></html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">You can improve your Retroshare performance by opening an External Port. </span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">This will speed up connections and allow more people to connect with you. </span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">The easiest way to do this is by enabling UPnP on your Wireless Box or Router.</span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">As each router is different, you will need to find out your Router Model and search the Internet for instructions.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">If none of this makes sense to you, don't worry about it Retroshare will still work.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p></body></html>
-
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Having trouble getting started with RetroShare?</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">1) Look at the FAQ Wiki. This is a bit old, we are trying to bring it up to date.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">2) Check out the Online Forums. Ask questions and discuss features.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">3) Try the Internal RetroShare Forums </span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;"> - These come online once you are connected to friends.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">4) If you are still stuck. Email us.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Enjoy Retrosharing</span></p></body></html>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Tens problemes per iniciar-te amb el RetroShare?</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">1) Mira la PMF Viqui. Ćs una mica antiga, estem intentant posar-la al dia.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">2) Busca en els fòrums en lĆnia. Fes preguntes i parla sobre les possibilitats.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">3) Prova els fòrums interns de RetroShare </span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">ā„- Apareixeran com disponibles quan et connectis amb amics.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">4) Si tot i aixĆ estĆ s encallat. Envia'ns un correu.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Disfruta utilitzant el RetroShare</span></p></body></html>
-
+
+ Connect To Friends
+ Connectar-se als amics
+
+
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">When your friends send you their invitations, click to open the Add Friends window.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Paste your Friends' "ID Certificates" into the window and add them as friends.</span></p></body></html>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Quan els teus amics t'envien la seva invitació, clica per obrir la finestra Afegir amics..</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Enganxa el "Certificat ID" dels teus amics a la finestra i afegeix-los com amics.</span></p></body></html>
+
+
+
+ Advanced: Open Firewall Port
+ AvanƧat: Obrir port del tallafocs
+
+
+
Further Help and Support
MƩs ajuda i suport
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Having trouble getting started with RetroShare?</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">1) Look at the FAQ Wiki. This is a bit old, we are trying to bring it up to date.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">2) Check out the Online Forums. Ask questions and discuss features.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">3) Try the Internal RetroShare Forums </span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;"> - These come online once you are connected to friends.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">4) If you are still stuck. Email us.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Enjoy Retrosharing</span></p></body></html>
-
-
-
-
+
Open RS Website
Obrir lloc web del RS
@@ -7491,7 +8161,7 @@ p, li { white-space: pre-wrap; }
Resposta de correu electrònic
-
+
RetroShare Invitation
Invitació al RetroShare
@@ -7541,12 +8211,12 @@ p, li { white-space: pre-wrap; }
Resposta per RetroShare
-
+
RetroShare Support
Suport del RetroShare
-
+
It has many features, including built-in chat, messaging,
TĆ© mĆŗltiples utilitats, incloent-hi xat, missatgeria,
@@ -7670,7 +8340,7 @@ p, li { white-space: pre-wrap; }
GroupChatToaster
-
+
Show Group Chat
Mostra xat en grup
@@ -7678,7 +8348,7 @@ p, li { white-space: pre-wrap; }
GroupChooser
-
+
[Unknown]
[Desconegut]
@@ -7844,11 +8514,20 @@ p, li { white-space: pre-wrap; }
You can let your friends know about your forum by sharing it with them. Select the friends with which you want to share your forum.
Pots fer que els teus amics sà piguen del teu fòrum compartint-lo amb ells. Escull els amics amb qui vols compartir el teu fòrum.
+
+ Share topic admin permissions
+ Compartir els permisos d'administrador del tema
+
+
+ You can allow your friends to edit the topic. Select them in the list below. Note: it is not possible to revoke Posted admin permissions.
+ Pots permetre als teus amics editar el tema. Selecciona'ls a la llista inferior.
+Nota: No es poden revocar els permisos d'administrador publicats
+
GroupTreeWidget
-
+
Title
TĆtol
@@ -7861,12 +8540,12 @@ p, li { white-space: pre-wrap; }
-
+
Description
Descripció
-
+
Number of Unread message
@@ -7891,7 +8570,35 @@ p, li { white-space: pre-wrap; }
-
+ Sort Descending Order
+ Ordena en ordre descendent
+
+
+ Sort Ascending Order
+ Ordena en ordre ascendent
+
+
+ Sort by Name
+ Ordena per nom
+
+
+ Sort by Popularity
+ Ordena per popularitat
+
+
+ Sort by Last Post
+ Ordena per darrer missatge
+
+
+ Sort by Number of Posts
+ Ordenar per nombre de publicacións
+
+
+ Sort by Unread
+ Ordena per no llegit
+
+
+
You are admin (modify names and description using Edit menu)
Ets l'administrador (Modifica noms i descripció utilitzant el menú Editar)
@@ -7906,14 +8613,14 @@ p, li { white-space: pre-wrap; }
Id
-
-
+
+
Last Post
Darrera publicació
-
+
Name
Nom
@@ -7924,13 +8631,17 @@ p, li { white-space: pre-wrap; }
Popularitat
-
+
Never
Mai
-
+ Display
+ Mostra
+
+
+
<html><head/><body><p>Searches a single keyword into the reachable network.</p><p>Objects already provided by friend nodes are not reported.</p></body></html>
@@ -7943,7 +8654,7 @@ p, li { white-space: pre-wrap; }
GuiExprElement
-
+
and
i
@@ -8079,7 +8790,7 @@ p, li { white-space: pre-wrap; }
GxsChannelDialog
-
+
Channels
Canals
@@ -8090,22 +8801,26 @@ p, li { white-space: pre-wrap; }
Crear canal
-
+
Enable Auto-Download
Activa l'auto-descĆ rrega
-
+
My Channels
Els meus canals
-
- <h1><img width="%1" src=":/icons/help_64.png"> Channels</h1><p>Channels allow you to post data (e.g. movies, music) that will spread in the network</p><p>You can see the channels your friends are subscribed to, and you automatically forward subscribed channels to your friends. This promotes good channels in the network.</p><p>Only the channel's creator can post on that channel. Other peers in the network can only read from it, unless the channel is private. You can however share the posting rights or the reading rights with friend Retroshare nodes.</p><p>Channels can be made anonymous, or attached to a Retroshare identity so that readers can contact you if needed. Enable "Allow Comments" if you want to let users comment on your posts.</p><p>Channel posts are kept for %2 days, and sync-ed over the last %3 days, unless you change this.</p><p>UI Tip: use Control + mouse wheel to control image size in the thumbnail view.</p>
+ <h1><img width="32" src=":/icons/help_64.png"> Channels</h1> <p>Channels allow you to post data (e.g. movies, music) that will spread in the network</p> <p>You can see the channels your friends are subscribed to, and you automatically forward subscribed channels to your friends. This promotes good channels in the network.</p> <p>Only the channel's creator can post on that channel. Other peers in the network can only read from it, unless the channel is private. You can however share the posting rights or the reading rights with friend Retroshare nodes.</p> <p>Channels can be made anonymous, or attached to a Retroshare identity so that readers can contact you if needed. Enable "Allow Comments" if you want to let users comment on your posts.</p> <p>Channel posts are kept for %1 days, and sync-ed over the last %2 days, unless you change this.</p>
+ <h1><img width="32" src=":/icons/help_64.png"> Canals</h1> <p>Canals et permet publicar dades (Ex: pelĀ·lĆcules, mĆŗsica) que es propagaran per la xarxa</p> <p>Pots veure els canals als que tens amics subscrits i tu farĆ s el mateix amb els teus. Això promociona els canals populars dins la xarxa.</p> <p>NomĆ©s el creador del canal pot publicar en un canal. Els altres contactes a la xarxa nomĆ©s poden llegir el canal, a no ser que el canal sigui privat. No obstant, pots compartir els drets de publicació o lectura amb nodes de Retroshare amics.</p> <p>Els canals poden ser anònims o associats a una identitat de Retroshare per tal que els lectors puguin contactar amb tu si volen. Activa "Permetre comentaris" si vols permetre que els usuaris facin comentaris sobre el que publiques.</p><p>Les entrades publicades es mantenen durant %1 dies, i es sincronitzen pels Ćŗltims %2 dies, a no ser que ho canviĆÆs.</p>
+
+
+
+ <h1><img width="32" src=":/icons/help_64.png"> Channels</h1> <p>Channels allow you to post data (e.g. movies, music) that will spread in the network</p> <p>You can see the channels your friends are subscribed to, and you automatically forward subscribed channels to your friends. This promotes good channels in the network.</p> <p>Only the channel's creator can post on that channel. Other peers in the network can only read from it, unless the channel is private. You can however share the posting rights or the reading rights with friend Retroshare nodes.</p> <p>Channels can be made anonymous, or attached to a Retroshare identity so that readers can contact you if needed. Enable "Allow Comments" if you want to let users comment on your posts.</p> <p>Channel posts are kept for %1 days, and sync-ed over the last %2 days, unless you change this.</p> <p>UI Tip: use Control + mouse wheel to control image size in the thumbnail view.</p>
-
+
Subscribed Channels
Canals subscrits
@@ -8125,12 +8840,12 @@ p, li { white-space: pre-wrap; }
Seleccionar directori de descarrega del canal
-
+
Disable Auto-Download
Desactivar auto-descĆ rrega
-
+
Set download directory
Seleccionar directori de descarrega
@@ -8165,22 +8880,22 @@ p, li { white-space: pre-wrap; }
-
+
Play
Reproduir
-
+
Open folder
Obrir directori
-
+
Open file
-
+
Error
Error
@@ -8200,17 +8915,17 @@ p, li { white-space: pre-wrap; }
Comprovant
-
+
Are you sure that you want to cancel and delete the file?
Segur que vols cancelĀ·lar i esborrar aquest arxiu?
-
+
Can't open folder
No es pot obrir el directori
-
+
Play File
Reproduir arxiu
@@ -8220,10 +8935,37 @@ p, li { white-space: pre-wrap; }
L'arxiu %1 no existeix a la ruta.
+
+ GxsChannelFilesWidget
+
+ Form
+ Formulari
+
+
+ Filename
+ Nom d'arxiu
+
+
+ Size
+ Mida
+
+
+ Title
+ TĆtol
+
+
+ Published
+ Publicat
+
+
+ Status
+ Estat
+
+
GxsChannelGroupDialog
-
+
Create New Channel
Crear nou canal
@@ -8261,19 +9003,9 @@ p, li { white-space: pre-wrap; }
GxsChannelGroupItem
-
- Last activity
-
-
-
-
- TextLabel
-
-
-
-
- Subscribe this Channel
-
+
+ Subscribe to Channel
+ Subscriu-te al canal
@@ -8287,7 +9019,7 @@ p, li { white-space: pre-wrap; }
-
+
Expand
Ampliar
@@ -8302,7 +9034,7 @@ p, li { white-space: pre-wrap; }
Descripció del canal
-
+
Loading
Carregant
@@ -8317,9 +9049,8 @@ p, li { white-space: pre-wrap; }
-
- Never
- Mai
+ New Channel
+ Nou canal
@@ -8330,7 +9061,7 @@ p, li { white-space: pre-wrap; }
GxsChannelPostItem
-
+
New Comment:
Nou comentari:
@@ -8351,7 +9082,7 @@ p, li { white-space: pre-wrap; }
-
+
Play
Reproduir
@@ -8407,24 +9138,28 @@ p, li { white-space: pre-wrap; }
Files
Arxius
+
+ Warning! You have less than %1 hours and %2 minute before this file is deleted Consider saving it.
+ AvĆs! Tens menys de %1 hores i %2 minuts abans que aquest arxiu sigui esborrat. Considera desar-lo.
+
Hide
Amagar
-
+
New
Nou
-
+
0
0
-
-
+
+
Comment
Comentari
@@ -8439,17 +9174,21 @@ p, li { white-space: pre-wrap; }
No m'agrada
-
+ Loading
+ Carregant
+
+
+
Loading...
-
+
Comments
Comentaris
-
+
Post
@@ -8474,16 +9213,139 @@ p, li { white-space: pre-wrap; }
Reproduir Medi
+
+ GxsChannelPostsWidget
+
+ Post to Channel
+ Publica al canal
+
+
+ Add new post
+ Afegir nova publicació
+
+
+ Loading
+ Carregant
+
+
+ Search channels
+ Cercar canals
+
+
+ Title
+ TĆtol
+
+
+ Search Title
+ Cerca tĆtol
+
+
+ Message
+ Missatge
+
+
+ Search Message
+ Cercar missatge
+
+
+ Filename
+ Nom d'arxiu
+
+
+ Search Filename
+ Cercar arxiu
+
+
+ No Channel Selected
+ No hi ha canal seleccionat
+
+
+ Never
+ Mai
+
+
+ Public
+ PĆŗblic
+
+
+ Restricted to members of circle "
+ Restringit a membres del cercle "
+
+
+ Restricted to members of circle
+ Restringit a membres del cercle
+
+
+ Your eyes only
+ NomƩs per tu
+
+
+ You and your friend nodes
+ Per tu i pels nodes dels teus amics
+
+
+ Disable Auto-Download
+ Desactivar auto-descĆ rrega
+
+
+ Enable Auto-Download
+ Activar auto-descĆ rrega
+
+
+ Show feeds
+ Mostra fonts
+
+
+ Show files
+ Mostra arxius
+
+
+ Administrator:
+ Administrador:
+
+
+ Last Post:
+ Ćltima publicació:
+
+
+ unknown
+ desconegut
+
+
+ Distribution:
+ Distribució:
+
+
+ Feeds
+ Fonts
+
+
+ Files
+ Arxius
+
+
+ Subscribers
+ Subscriptors
+
+
+ Description:
+ Descripció:
+
+
+ Posts (at neighbor nodes):
+ Publicat (A nodes veĆÆns):
+
+
GxsChannelPostsWidgetWithModel
-
+
Post to Channel
Publica al canal
-
+
Add new post
Afegir nova publicació
@@ -8553,7 +9415,7 @@ p, li { white-space: pre-wrap; }
- Items (locally / at friends):
+ Posts (locally / at friends):
@@ -8579,7 +9441,7 @@ p, li { white-space: pre-wrap; }
Details
- Detalls
+
@@ -8589,7 +9451,7 @@ p, li { white-space: pre-wrap; }
-
+
Comments
Comentaris
@@ -8604,13 +9466,13 @@ p, li { white-space: pre-wrap; }
Fonts
-
-
+
+
Click to switch to list view
-
+
Show unread posts only
@@ -8625,7 +9487,7 @@ p, li { white-space: pre-wrap; }
-
+
No text to display
@@ -8640,7 +9502,7 @@ p, li { white-space: pre-wrap; }
-
+
Switch to list view
@@ -8700,22 +9562,12 @@ p, li { white-space: pre-wrap; }
-
+
Comments (%1)
-
- Loading...
-
-
-
-
- No posts available in this channel.
-
-
-
-
+
[No name]
@@ -8790,13 +9642,12 @@ p, li { white-space: pre-wrap; }
Per tu i pels nodes dels teus amics
-
-
+
Copy Retroshare link
-
+
Subscribed
Subscrit
@@ -8833,7 +9684,7 @@ p, li { white-space: pre-wrap; }
Enable Auto-Download
- Activa l'auto-descĆ rrega
+
@@ -8847,17 +9698,17 @@ p, li { white-space: pre-wrap; }
GxsCircleItem
-
+
TextLabel
-
+
Circle name:
-
+
Accept
@@ -8877,11 +9728,27 @@ p, li { white-space: pre-wrap; }
Remove Item
Eliminar l'element
+
+ for identity
+ per identitat
+
+
+ You received a membership request for circle:
+ Has rebut una petició de pertinença al cercle:
+
Grant membership request
Accepta la petició de pertinença
+
+ Revoke membership request
+ Rebutja la petició de pertinença
+
+
+ You received an invitation for circle:
+ Has rebut una invitació pel cercle:
+
@@ -8972,7 +9839,7 @@ p, li { white-space: pre-wrap; }
GxsCommentContainer
-
+
Comment Container
Contenidor de comentari
@@ -8985,7 +9852,7 @@ p, li { white-space: pre-wrap; }
Formulari
-
+
<html><head/><body><p><span style=" font-family:'-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol'; font-size:14px; color:#24292e; background-color:#ffffff;">sort by</span></p></body></html>
@@ -9015,7 +9882,7 @@ p, li { white-space: pre-wrap; }
Refrescar
-
+
Comment
Comentari
@@ -9054,7 +9921,7 @@ p, li { white-space: pre-wrap; }
GxsCommentTreeWidget
-
+
Reply to Comment
Resposta al comentari
@@ -9078,21 +9945,6 @@ p, li { white-space: pre-wrap; }
Vote Down
Votar negatiu
-
-
- Show Author
-
-
-
-
- Cannot vote
-
-
-
-
- Error while voting:
-
-
GxsCreateCommentDialog
@@ -9102,7 +9954,7 @@ p, li { white-space: pre-wrap; }
Fer comentari
-
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
@@ -9131,10 +9983,26 @@ p, li { white-space: pre-wrap; }
-
+
Post
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">Comment</span></p></body></html>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">Comentari</span></p></body></html>
+
+
+ Signed by
+ Signat per
+
Reply to Comment
@@ -9163,7 +10031,7 @@ before you can comment
abans de poder comentar
-
+
It remains %1 characters after HTML conversion.
@@ -9205,6 +10073,14 @@ abans de poder comentar
Forum moderators can edit/delete/pinup others posts
+
+ Add Forum Admins
+ Afegir administradors de fòrum
+
+
+ Select Forum Admins
+ Seleccionar administradors de fòrum
+
Create
@@ -9214,7 +10090,7 @@ abans de poder comentar
GxsForumGroupItem
-
+
Subscribe to Forum
Subscriure's al fòrum
@@ -9230,7 +10106,7 @@ abans de poder comentar
-
+
Expand
Ampliar
@@ -9250,9 +10126,8 @@ abans de poder comentar
-
- TextLabel
-
+ Loading
+ Carregant
@@ -9283,13 +10158,13 @@ abans de poder comentar
GxsForumMsgItem
-
-
+
+
Subject:
Assumpte:
-
+
Unsubscribe To Forum
Donar de baixa del fòrum
@@ -9300,7 +10175,7 @@ abans de poder comentar
-
+
Expand
Ampliar
@@ -9320,17 +10195,21 @@ abans de poder comentar
En resposta a:
-
+ Loading
+ Carregant
+
+
+
Loading...
-
+
Forum Feed
Font del fòrum
-
+
Hide
Amagar
@@ -9343,66 +10222,63 @@ abans de poder comentar
Formulari
-
+
Start new Thread for Selected Forum
Comença nova conversa al fòrum seleccionat
-
- Threaded
-
-
-
-
-
-
- ...
- ...
-
-
-
- Flat
-
-
-
-
- Latest post in thread
-
-
-
-
+
Search forums
Cercar fòrums
-
+ Last Post
+ Darrer missatge
+
+
+
New Thread
Nova conversa
+
+
+ Threaded View
+ Vista per conversa
+
+
+
+ Flat View
+ Vista plana
+
-
+
Title
TĆtol
-
-
+
+
Date
Data
-
+
Author
Autor
-
+
+ Save image
+ Desar imatge
+
+
+
Loading
Carregant
-
+
<html><head/><body><p>Click here to clear current selected thread and display more information about this forum.</p></body></html>
@@ -9412,7 +10288,12 @@ abans de poder comentar
-
+
+ Lastest post in thread
+
+
+
+
Reply Message
Respondre missatge
@@ -9436,6 +10317,10 @@ abans de poder comentar
Download all files
Descarregar tots els arxius
+
+ Next unread
+ Següent no llegit
+
Search Title
@@ -9452,23 +10337,35 @@ abans de poder comentar
Cerca autor
-
+ Content
+ Contingut
+
+
+ Search Content
+ Cerca contingut
+
+
+ <p>Subscribing to the forum will gather available posts from your subscribed friends, and make the forum visible to all other friends.</p><p>Afterwards you can unsubscribe from the context menu of the forum list at left.</p>
+ <p>Subscriure's al fòrum buscarà les entrades publicades disponibles dels teus amics subscrits, i farà el fòrum visible a tots els teus altres amics.</p><p>Després podràs des-subscriure't des del menú contextual de la llista de fòrums a l'esquerra.</p>
+
+
+
No name
Sense nom
-
-
+
+
Reply
Resposta
-
+
<p>Subscribing to the forum will gather available posts from your subscribed friends, and make the forum visible to all other friends.</p><p>Afterwards you can unsubscribe from the context menu of the forum list at left.</p>
-
+
Loading...
@@ -9511,12 +10408,20 @@ abans de poder comentar
Copia l'enllaƧ RetroShare
-
+
Hide
Amagar
-
+ Expand
+ Ampliar
+
+
+ [Banned]
+ [Expulsat]
+
+
+
[unknown]
[desconegut]
@@ -9546,8 +10451,8 @@ abans de poder comentar
NomƩs per tu
-
-
+
+
Distribution
Distribució
@@ -9561,6 +10466,26 @@ abans de poder comentar
Anti-spam
Anti-spam
+
+ [ ... Redacted message ... ]
+ [ ... Missatge modificat ... ]
+
+
+ Anonymous
+ Anònim
+
+
+ signed
+ signat
+
+
+ none
+ cap
+
+
+ [ ... Missing Message ... ]
+ [ ... Missatge perdut ... ]
+
<p><font color="#ff0000"><b>The author of this message (with ID %1) is banned.</b>
@@ -9630,12 +10555,16 @@ abans de poder comentar
Missatge original
-
+
New thread
Nova conversa
-
+ Read status
+ Estat de lectura
+
+
+
Edit
Editar
@@ -9696,7 +10625,7 @@ abans de poder comentar
Reputació de l'autor
-
+
Show column
@@ -9716,7 +10645,7 @@ abans de poder comentar
-
+
Anonymous/unknown posts forwarded if reputation is positive
Els missatges anònims/desconeguts es propagaran si la reputació és positiva
@@ -9768,7 +10697,7 @@ This message is missing. You should receive it later.
-
+
No result.
@@ -9778,7 +10707,7 @@ This message is missing. You should receive it later.
-
+
Failed to retrieve this message. Is the database currently overloaded?
@@ -9793,7 +10722,26 @@ This message is missing. You should receive it later.
-
+ Information for this identity is currently missing.
+ No hi ha informació per aquesta identitat
+
+
+ You have banned this ID. The message will not be
+displayed nor forwarded to your friends.
+ Has prohibit aquesta identitat. El missatge no es mostrarĆ ni propagarĆ als teus amics.
+
+
+ You have not set an opinion for this person,
+ and your friends do not vote positively: Spam regulation
+prevents the message to be forwarded to your friends.
+ No has establert una opinió per aquesta persona i els teus amics no opinien positivament: L'anti-spam evita que el missatge sigui propagat als teus amics.
+
+
+ Message will be forwarded to your friends.
+ El missatge es propagarĆ als teus amics.
+
+
+
(Latest)
(Nou)
@@ -9802,6 +10750,10 @@ This message is missing. You should receive it later.
(Old)
(Vell)
+
+ You cant act on the author to a non-existant Message
+ No pots fer res a l'autor d'un missatge que no existeix
+
From
@@ -9859,12 +10811,12 @@ This message is missing. You should receive it later.
GxsForumsDialog
-
- <h1><img width="%1" src=":/icons/help_64.png"> Forums</h1><p>Retroshare Forums look like internet forums, but they work in a decentralized way</p><p>You see forums your friends are subscribed to, and you forward subscribed forums to your friends. This automatically promotes interesting forums in the network.</p><p>Forum messages are kept for %2 days and sync-ed over the last %3 days, unless you configure it otherwise.</p>
-
+
+ <h1><img width="32" src=":/icons/help_64.png"> Forums</h1> <p>Retroshare Forums look like internet forums, but they work in a decentralized way</p> <p>You see forums your friends are subscribed to, and you forward subscribed forums to your friends. This automatically promotes interesting forums in the network.</p> <p>Forum messages are kept for %1 days and sync-ed over the last %2 days, unless you configure it otherwise.</p>
+ <h1><img width="32" src=":/icons/help_64.png"> Fòrums</h1> <p>Els fòrums de Retroshare es veuen com fòrums d'Internet, però funcionen de forma descentralitzada</p> <p>Tu veus els fòrums als que els teus amics estan subscrits i tu fas el mateix amb els teus pels teus amics. Això promociona automà ticament els fòrums interessants a la xarxa.</p> <p>Els missatges es mantenen durant %1 dies i es sincronitzen durant %2 dies, si no ho canvies.</p>
-
+
Forums
Fòrums
@@ -9895,16 +10847,35 @@ This message is missing. You should receive it later.
Altres fòrums
+
+ GxsForumsFillThread
+
+ Waiting
+ Esperant
+
+
+ Retrieving
+ Recuperant
+
+
+ Loading
+ Carregant
+
+
GxsGroupDialog
-
+
Name
Nom
-
+ Add Icon
+ Afegir icona
+
+
+
Key recipients can publish to restricted-type group and can view and publish for private-type channels
Els destinataris de les claus poden publicar en grups restringits, i poden veure i publicar en canals privats
@@ -9913,14 +10884,22 @@ This message is missing. You should receive it later.
Share Publish Key
Compartir clau pĆŗblica
+
+ check peers you would like to share private publish key with
+ comprovar els contactes amb qui t'agradaria compartir les claus de publicació
+
+
+ Share Key With
+ Compartir clau amb
+
-
+
Description
Descripció
-
+
Message Distribution
Distribució de missatge
@@ -9928,7 +10907,7 @@ This message is missing. You should receive it later.
-
+
Public
PĆŗblic
@@ -9947,6 +10926,14 @@ This message is missing. You should receive it later.
New Thread
Nova conversa
+
+ Required
+ Requerit
+
+
+ Encrypted Msgs
+ Encriptar missatge
+
Personal Signatures
@@ -9988,7 +10975,7 @@ This message is missing. You should receive it later.
Protecció-Spam
-
+
Comments:
Comentari:
@@ -10011,7 +10998,7 @@ This message is missing. You should receive it later.
Anti Spam:
-
+
All People
@@ -10027,12 +11014,12 @@ This message is missing. You should receive it later.
-
+
Restricted to circle:
Restringit al cercle:
-
+
Limited to your friends
Limitat als teus amics
@@ -10049,23 +11036,23 @@ This message is missing. You should receive it later.
-
+
Message tracking
Seguiment de missatges
-
-
+
+
PGP signature required
Signatura PGP requerida
-
+
Never
Mai
-
+
Only friends nodes in group
NomƩs els nodes d'amics al grup
@@ -10081,28 +11068,30 @@ This message is missing. You should receive it later.
Si us plau, afegeix un nom
-
+
PGP signature from known ID required
Signatura PGP de ID coneguda requerida
-
-
- [None]
-
-
-
-
+
Load Group Logo
Carrega logotip del grup
-
+
Submit Group Changes
Publicar canvis al grup
-
+ Failed to Prepare Group MetaData - please Review
+ Fallo al preparar les metadades del Grup - Revisa-les
+
+
+ Will be used to send feedback
+ S'utilitzarĆ per enviar resposta
+
+
+
Owner:
Propietari:
@@ -10112,12 +11101,12 @@ This message is missing. You should receive it later.
Estableix una descripció
-
+
Info
Informació
-
+
ID
ID
@@ -10127,7 +11116,7 @@ This message is missing. You should receive it later.
Darrer missatge
-
+
<html><head/><body><p>Messages will spread way beyond your friend nodes, as long as people subscribe to the channel/forum/posted you're creating.</p></body></html>
<html><head/><body><p>Els missatges es distribuiran més enllà dels nodes dels teus amics, sempre que la gent es subscrigui al canal/fòrum/publicació que creis.</p></body></html>
@@ -10202,12 +11191,7 @@ This message is missing. You should receive it later.
Defavorir IDs no signats i IDs de nodes desconeguts
-
- Author:
-
-
-
-
+
Popularity
Popularitat
@@ -10223,22 +11207,27 @@ This message is missing. You should receive it later.
-
+
Created
-
+
Cancel
-
+
Create
Crear
-
+
+ Author
+ Autor
+
+
+
GxsIdLabel
EtiquetaGxsId
@@ -10246,7 +11235,7 @@ This message is missing. You should receive it later.
GxsGroupFrameDialog
-
+
Loading
Carregant
@@ -10306,7 +11295,7 @@ This message is missing. You should receive it later.
Editar detalls
-
+
Synchronise posts of last...
Sincronitza els missatges dels/de les Ćŗltims/es...
@@ -10363,12 +11352,16 @@ This message is missing. You should receive it later.
-
+
Search for
-
+ Share publish permissions
+ Compartir permisos de publicació
+
+
+
Copy RetroShare Link
Copia l'enllaƧ RetroShare
@@ -10391,7 +11384,7 @@ This message is missing. You should receive it later.
GxsIdChooser
-
+
No Signature
Sense signatura
@@ -10404,24 +11397,40 @@ This message is missing. You should receive it later.
GxsIdDetails
-
+ Loading
+ Carregant
+
+
+
Not found
No trobat
+
+ No Signature
+ Sense signatura
+
-
-
+
+
[Banned]
[Expulsat]
+
+ Authentication
+ Autenticació
+
unknown Key
clau desconeguda
-
+ anonymous
+ anònim
+
+
+
Loading...
@@ -10431,12 +11440,7 @@ This message is missing. You should receive it later.
-
- [Nobody]
-
-
-
-
+
Identity name
Identitat nom
@@ -10450,20 +11454,16 @@ This message is missing. You should receive it later.
Node
Node
+
+ Signed by
+ Signat per
+
[Unknown]
[Desconegut]
-
- GxsIdLabel
-
-
- [Nobody]
-
-
-
GxsIdStatistics
@@ -10475,7 +11475,7 @@ This message is missing. You should receive it later.
GxsIdStatisticsWidget
-
+
Total identities:
@@ -10523,13 +11523,17 @@ This message is missing. You should receive it later.
GxsIdTreeItemDelegate
-
+
[Unknown]
[Desconegut]
GxsMessageFramePostWidget
+
+ Loading
+ Carregant
+
Loading...
@@ -10646,6 +11650,10 @@ This message is missing. You should receive it later.
Group ID / Author
ID Grup / Autor
+
+ Number of messages / Publish TS
+ Nombre de missatges / TS publicats
+
Local size of data
@@ -10661,6 +11669,10 @@ This message is missing. You should receive it later.
Popularity
Popularitat
+
+ Details
+ Dells
+
@@ -10693,6 +11705,41 @@ This message is missing. You should receive it later.
No
+
+ GxsTunnelsDialog
+
+ Authenticated tunnels:
+ TĆŗnels autenticats:
+
+
+ Tunnel ID: %1
+ ID tĆŗnel: %1
+
+
+ from: %1
+ de: %1
+
+
+ to: %1
+ a: %1
+
+
+ status: %1
+ estat: %1
+
+
+ total sent: %1 bytes
+ total enviat: %1 bytes
+
+
+ total recv: %1 bytes
+ Total rebut: %1 bytes
+
+
+ Unknown Peer
+ Contacte desconegut
+
+
HashBox
@@ -10905,12 +11952,48 @@ This message is missing. You should receive it later.
About
Sobre
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'Sans'; font-size:9pt; font-weight:400; font-style:normal;">
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">RetroShare is an Open Source cross-platform, </span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">private and secure decentralized communication platform. </span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">It lets you share securely your friends, </span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">using a web-of-trust to authenticate peers and OpenSSL to encrypt all communication. </span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">RetroShare provides file sharing, chat, messages and channels</span></p>
+<p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600;">Useful external links to more information:</span></p>
+<ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" font-family:'MS Shell Dlg 2'; font-size:8pt;" align="justify" style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://retroshare.sourceforge.net"><span style=" font-size:12pt; text-decoration: underline; color:#0000ff;">Retroshare Webpage</span></a></li>
+<li style=" font-family:'MS Shell Dlg 2'; font-size:12pt; text-decoration: underline; color:#0000ff;" align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://retroshare.sourceforge.net"><span style=" color:#007af4;">Retroshare Wiki</span></a></li>
+<li style=" font-family:'MS Shell Dlg 2'; font-size:12pt; text-decoration: underline; color:#0000ff;" align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://retroshare.sourceforge.net"><span style=" color:#007af4;">RetroShare's Forum</span></a></li>
+<li style=" font-family:'MS Shell Dlg 2'; font-size:12pt; text-decoration: underline; color:#0000ff;" align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://retroshare.sourceforge.net"><span style=" color:#007af4;">Retroshare Project Page</span></a></li>
+<li style=" font-family:'MS Shell Dlg 2'; font-size:12pt; text-decoration: underline; color:#0000ff;" align="justify" style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://retroshare.sourceforge.net"><span style=" color:#007af4;">RetroShare Team Blog</span></a></li>
+<li style=" font-family:'MS Shell Dlg 2'; font-size:12pt; text-decoration: underline; color:#0000ff;" align="justify" style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://retroshare.sourceforge.net"><span style=" color:#007af4;">RetroShare Dev Twitter</span></a></li></ul></body></html>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'Sans'; font-size:9pt; font-weight:400; font-style:normal;">
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">Retroshare Ʃs una plataforma descentralitzada</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">segura i privada de comunicacions, de codi obert i multi-plataforma. </span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">Permet compartir tot el que vulguis amb seguretat amb amics </span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;"> utilitzant certificats per autenticar els contactes i OpenSSL per encriptar les comunicacions.</span></p>
+<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">Retroshare proporciona compartició d'arxius, xat, missatgeria i canals.</span></p>
+<p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600;">Enllaços externs útils amb més informació:</span></p>
+<ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" font-family:'MS Shell Dlg 2'; font-size:8pt;" align="justify" style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://retroshare.sourceforge.net"><span style=" font-size:12pt; text-decoration: underline; color:#0000ff;">PĆ gina web del Retroshare</span></a></li>
+<li style=" font-family:'MS Shell Dlg 2'; font-size:12pt; text-decoration: underline; color:#0000ff;" align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://retroshare.sourceforge.net"><span style=" color:#007af4;">Viqui del Retroshare</span></a></li>
+<li style=" font-family:'MS Shell Dlg 2'; font-size:12pt; text-decoration: underline; color:#0000ff;" align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://retroshare.sourceforge.net"><span style=" color:#007af4;">Fòrum del Retroshare</span></a></li>
+<li style=" font-family:'MS Shell Dlg 2'; font-size:12pt; text-decoration: underline; color:#0000ff;" align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://retroshare.sourceforge.net"><span style=" color:#007af4;">Plana de projecte del Retroshare</span></a></li>
+<li style=" font-family:'MS Shell Dlg 2'; font-size:12pt; text-decoration: underline; color:#0000ff;" align="justify" style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://retroshare.sourceforge.net"><span style=" color:#007af4;">Bloc de l'equip del Retroshare</span></a></li>
+<li style=" font-family:'MS Shell Dlg 2'; font-size:12pt; text-decoration: underline; color:#0000ff;" align="justify" style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://retroshare.sourceforge.net"><span style=" color:#007af4;">Twitter Desenvolupament Retroshare</span></a></li></ul></body></html>
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:9pt; font-weight:400; font-style:normal;">
<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">RetroShare is an Open Source cross-platform, </span></p>
<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">private and secure decentralized communication platform. </span></p>
<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">It lets you share securely your friends, </span></p>
@@ -10926,7 +12009,7 @@ p, li { white-space: pre-wrap; }
-
+
Authors
Autors
@@ -10945,7 +12028,7 @@ p, li { white-space: pre-wrap; }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:9pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600;">RetroShare Translations:</span></p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://retroshare.sourceforge.net/wiki/index.php/Translation"><span style=" font-family:'MS Shell Dlg 2'; text-decoration: underline; color:#0000ff;">http://retroshare.sourceforge.net/wiki/index.php/Translation</span></a></p>
@@ -10958,6 +12041,38 @@ p, li { white-space: pre-wrap; }
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">Polish: </span><span style=" font-family:'MS Shell Dlg 2';">Maciej Mrug</span></p></body></html>
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'Sans'; font-size:9pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600;">RetroShare Translations:</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://retroshare.sourceforge.net/wiki/index.php/Translation"><span style=" font-family:'MS Shell Dlg 2'; text-decoration: underline; color:#0000ff;">http://retroshare.sourceforge.net/wiki/index.php/Translation</span></a></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; text-decoration: underline; color:#0000ff;"><br /></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600;">RetroShare Website Translators:</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600;"><br /></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600;">Swedish: </span><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;"> Daniel Wester</span><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600;"> <</span><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">wester@speedmail.se</span><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600;">></span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600;">German: </span><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Jan</span><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600;"> </span><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Keller</span><span style=" font-family:'MS Shell Dlg 2';"> <</span><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">trilarion@users.sourceforge.net</span><span style=" font-family:'MS Shell Dlg 2';">></span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">Polish: </span><span style=" font-family:'MS Shell Dlg 2';">Maciej Mrug</span></p></body></html>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'Sans'; font-size:9pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600;">Traducció Retroshare:</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://retroshare.sourceforge.net/wiki/index.php/Translation"><span style=" font-family:'MS Shell Dlg 2'; text-decoration: underline; color:#0000ff;">http://retroshare.sourceforge.net/wiki/index.php/Translation</span></a></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; text-decoration: underline; color:#0000ff;"><br /></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600;">Plana web traductors Retroshare:</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600;"><br /></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600;">Alemany: </span><span style=" font-size:8pt;">Jan</span><span style=" font-size:8pt; font-weight:600;"> </span><span style=" font-size:8pt;">Keller</span> <<span style=" font-size:8pt;">trilarion@users.sourceforge.net</span>></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600;">CatalĆ : </span><span style=" font-size:8pt;"> Josep Creus</span><span style=" font-size:8pt; font-weight:600;"> <</span><span style=" font-size:8pt;">creus.informatic@gmail.com</span><span style=" font-size:8pt; font-weight:600;">></span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Polac: </span>Maciej Mrug</p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600;">Suec: </span><span style=" font-size:8pt;"> Daniel Wester</span><span style=" font-size:8pt; font-weight:600;"> <</span><span style=" font-size:8pt;">wester@speedmail.se</span><span style=" font-size:8pt; font-weight:600;">></span></p>
+</body></html>
+
License Agreement
@@ -11023,12 +12138,12 @@ p, li { white-space: pre-wrap; }
Formulari
-
+
<html><head/><body><p>Copy your RetroShare ID to clipboard</p></body></html>
-
+
Add friend
@@ -11043,7 +12158,7 @@ p, li { white-space: pre-wrap; }
-
+
<html><head/><body><p>Share your RetroShare ID</p></body></html>
@@ -11052,12 +12167,32 @@ p, li { white-space: pre-wrap; }
This is your Retroshare ID. Copy and share with your friends!
+
+ Did you receive a certificate from a friend?
+ Has rebut un certificat de part d'un amic?
+
+
+ Add friends certificate
+ Afegir certificat d'un amic
+
+
+ Add certificate file
+ Afegir arxiu de certificat
+
+
+ Share your RetroShare Key
+ Comparteix la teva clau de Retroshare
+
...
...
+
+ The text below is your own Retroshare certificate. Send it to your friends
+ El text a sota Ʃs el teu certificat de Retroshare. Envia'l als teus amic
+
Open Source cross-platform,
@@ -11067,12 +12202,20 @@ private and secure decentralized communication platform.
-
+ Launch startup wizard
+ Executar assistent d'inici
+
+
+ Do you need help with RetroShare?
+ Necessites ajuda amb el RetroShare?
+
+
+
Open Web Help
Ajuda a la web oberta
-
+
Copy your Cert to Clipboard
Copiar el teu certificat al porta-retalls
@@ -11082,7 +12225,7 @@ private and secure decentralized communication platform.
Desar el teu certificar a un arxiu
-
+
Send via Email
Enviar per correu
@@ -11102,37 +12245,13 @@ private and secure decentralized communication platform.
-
- Include current local IP
-
-
-
-
- Include current external IP
-
-
-
-
- Include my DNS
-
-
-
-
- Include all IPs history
-
-
-
-
- <h1><img width="%1" src=":/icons/help_64.png"> Welcome to Retroshare!</h1><p>You need to <b>make friends</b>! After you create a network of friends or join an existing network, you'll be able to exchange files, chat, talk in forums, etc. </p><div align="center"><IMG width="%2" height="%3" src=":/images/network_map.png" style="display: block; margin-left: auto; margin-right: auto; "/></div><p>To do so, copy your Retroshare ID on this page and send it to friends, and add your friends' Retroshare ID.</p><p>Another option is to search the internet for "Retroshare chat servers" (independently administrated). These servers allow you to exchange Retroshare ID with a dedicated Retroshare node, through which you will be able to anonymously meet other people.</p>
-
-
-
-
+
+
Include all your known IPs
-
+
Use old certificate format
@@ -11144,12 +12263,17 @@ new short format
-
+
+ <h1><img width="%1" src=":/icons/help_64.png"> Welcome to Retroshare!</h1> <p>You need to <b>make friends</b>! After you create a network of friends or join an existing network, you'll be able to exchange files, chat, talk in forums, etc. </p> <div align=center> <IMG align="center" width="%2" src=":/images/network_map.png"/> </div> <p>To do so, copy your Retroshare ID on this page and send it to friends, and add your friends' Retroshare ID.</p> <p>Another option is to search the internet for "Retroshare chat servers" (independently administrated). These servers allow you to exchange Retroshare ID with a dedicated Retroshare node, through which you will be able to anonymously meet other people.</p>
+
+
+
+
Use new (short) certificate format
-
+
Your Retroshare certificate is copied to Clipboard, paste and send it to your friend via email or some other way
@@ -11158,11 +12282,19 @@ new short format
Your Retroshare ID is copied to Clipboard, paste and send it to your friend via email or some other way
+
+ <h1><img width="%1" src=":/icons/help_64.png"> Welcome to Retroshare!</h1> <p>You need to <b>make friends</b>! After you create a network of friends or join an existing network, you'll be able to exchange files, chat, talk in forums, etc. </p> <div align=center> <IMG align="center" width="%2" src=":/images/network_map.png"/> </div> <p>To do so, copy your certificate on this page and send it to friends, and add your friends' certificate.</p> <p>Another option is to search the internet for "Retroshare chat servers" (independently administrated). These servers allow you to exchange certificates with a dedicated Retroshare node, through which you will be able to anonymously meet other people.</p>
+ <h1><img width="%1" src=":/icons/help_64.png"> Benvingut a Retroshare!</h1> <p>Necessites <b>fer amics</b>! Un cop hagis creat una xarxa de nodes de Retroshare, o t'hagis unit a una xarxa existent, podràs intercanviar arxius, xatejar, parlar a fòrums, etc.</p><div align=center><IMG align="center" width="%2" src=":/images/network_map.png"/></div><p>Per fer-ho, copia el teu certificat d'aquesta pà gina i envia'l als teus amics, i afegeix aquà els certificats del teus amics.</p> <p>Una altra opció és cercar a internet per "servidors de xat de Retroshare" (administrats independentment). Els servidors et permeten intercanviar certificats amb un node de Retroshare dedicat, utilitzant-lo podràs trobar altres persones anònimament.</p>
+
RetroShare Invite
Invitació de RetroShare
+
+ Your Cert is copied to Clipboard, paste and send it to your friend via email or some other way
+ S'ha copiat el teu certificat al porta-retalls, enganxa'l i envia'l al teu amic per correu
+
Save as...
@@ -11434,14 +12566,14 @@ p, li { white-space: pre-wrap; }
IdDialog
-
-
-
+
+
+
All
Tot
-
+
Reputation
Reputació
@@ -11451,12 +12583,12 @@ p, li { white-space: pre-wrap; }
Cerca
-
+
Anonymous Id
Id anònim
-
+
Create new Identity
Crear nova identitat
@@ -11466,7 +12598,7 @@ p, li { white-space: pre-wrap; }
Crear nou cercle
-
+
Persons
Persones
@@ -11481,27 +12613,27 @@ p, li { white-space: pre-wrap; }
Persona
-
+
Close
Tancar
-
+
Ban-option:
Opció-expulsar:
-
+
Auto-Ban all identities signed by the same node
Expulsa automĆ ticament totes les identitats signades pel mateix node
-
+
Friend votes:
Vots de l'amic:
-
+
Positive votes
Vots positius
@@ -11517,39 +12649,29 @@ p, li { white-space: pre-wrap; }
Vots negatius
-
+
Created on :
-
- Auto-Ban profile
-
-
-
-
+
<html><head/><body><p><span style=" font-family:'Sans'; font-size:9pt;">Your own opinion about an identity rules the visibility of that identity for yourself and your friend nodes. Your own opinion is shared among friends and used to compute a reputation score: If your opinion about an identity is neutral, the reputation score is the difference between friend's positive and negative opinions. If not, your own opinion gives the score.</span></p><p><span style=" font-family:'Sans'; font-size:9pt;">The overall score is used in chat lobbies, forums and channels to decide on the actions to take for each specific identity. When the overall score is lower than -1, the identity is banned, which prevents all messages and forums/channels authored by this identity to be forwarded, both ways. Some forums also have special anti-spam flags that require a non negative reputation level, making them more sensitive to bad opinions. Banned identities gradually lose their activity and eventually disappear (after 5 days).</span></p><p><span style=" font-family:'Sans'; font-size:9pt;">You can change the thresholds and the time of inactivity to delete identities in preferences -> people. </span></p></body></html>
-
- Edit Identity
-
-
-
-
+
Usage statistics
EstadĆstiques d'Ćŗs
-
+
Circles
Cercles
-
+
Circle name
Nom del cercle
@@ -11569,20 +12691,18 @@ p, li { white-space: pre-wrap; }
Cercles personals
-
+
-
Edit identity
Editar identitat
-
-
+
Delete identity
Esborrar identitat
-
+
Chat with this peer
Xatejar amb aquest contacte
@@ -11592,78 +12712,98 @@ p, li { white-space: pre-wrap; }
ComenƧar un xat distant amb aquest contacte
-
+
Owner node ID :
Id del node propietari:
-
+
Identity name :
Nom de la identitat:
-
+
()
()
-
+
Identity ID
Id d'identitat
-
+
Send message
Enviar missatge
-
+
Identity info
Informació d'identitat
-
+
Identity ID :
Id d'identitat:
-
+
Owner node name :
Nom del node propietari:
-
+
Create new...
Crear nou...
-
+
Type:
Tipus:
-
+
Send Invite
Enviar invitació
-
+
<html><head/><body><p>Average opinion of neighbor nodes about this identity. Negative is bad,</p><p>positive is good. Zero is neutral.</p></body></html>
<html><head/><body><p>La opinió mitjana dels nodes veïns sobre aquesta identitat. Negativa és dolent,</p><p>positiva és bo. Zero és neutre.</p></body></html>
-
+
Your opinion:
La teva opinió:
-
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'Sans'; font-size:9pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Your own opinion about an identity rules the visibility of that identity for yourself and your friend nodes. Your own opinion is shared among friends and used to compute a reputation score: If your opinion about an identity is neutral, the reputation score is the difference between friend's positive and negative opinions. If not, your own opinion gives the score.</p>
+<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The overall score is used in chat lobbies, forums and channels to decide on the actions to take for each specific identity. When the overall score is lower than -1, the identity is banned, which prevents all messages and forums/channels authored by this identity to be forwarded, both ways. Some forums also have special anti-spam flags that require a non negative reputation level, making them more sensitive to bad opinions. Banned identities gradually lose their activity and eventually disappear (after 5 days).</p>
+<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">You can change the thresholds and the time of inactivity to delete identities in preferences -> people. </p>
+<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'Sans'; font-size:9pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">La teva opinió sobre una identitat controla la visibilitat d'aquesta per tu i els teus nodes amics. La teva opinió es comparteix amb els teus amics i s'utilitza per calcular una puntuació de reputació: Si la teva opinió sobre una identitat és neutre, la puntuació de reputació és la mitjana de l'opinió dels teus amics. Si no, la teva opinió estableix la puntuació.</p>
+<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">La puntuació total s'utilitza en les sales de xat, fòrums i canals per decidir que fer amb cada identitat. Quan la puntuació està per sota de -1 la identitat és expulsada, tots els missatges, fòrums i canals per dita identitat no es reenvien, en cap sentit. Alguns fòrums tenen una opció anti-SPAM que obliga a tindre un nivell de reputació no negatiu, fent que siguin més sensibles a males reputacions. Les identitats expulsades van perdent gradualment la seva activitat i finalment desapareixent (després de 5 dies). </p>
+<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Pots canviar aquests mĆnims i el temps d'inactivitat per esborrar una identitat a Preferencies -> Gent. </p>
+<p style="-qt-paragraph-type:empty; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html>
+
+
+
Negative
Negatiu
-
+
Neutral
Neutre
@@ -11674,17 +12814,17 @@ p, li { white-space: pre-wrap; }
Positiu
-
+
<html><head/><body><p>Overall reputation score, accounting for yours and your friends'.</p><p>Negative is bad, positive is good. Zero is neutral. If the score is too low,</p><p>the identity is flagged as bad, and will be filtered out in forums, chat lobbies,</p><p>channels, etc.</p></body></html>
<html><head/><body><p>La puntuació de reputació global, calculada amb les teves puntuacions i la dels teus amics.</p><p>Negativa és dolent, positiva és bo. Zero és neutre. Si la puntuació és massa baixa,</p><p>la identitat es marca com dolenta, i es filtrarà als fòrums, sales de xat,</p><p>canals, etc.</p></body></html>
-
+
Overall:
Global:
-
+
Anonymous
Anònim
@@ -11699,24 +12839,24 @@ p, li { white-space: pre-wrap; }
ID cerca
-
+
This identity is owned by you
Aquesta identitat Ʃs propietat teva
-
-
+
+
My own identities
Les meves identitats
-
-
+
+
My contacts
Els meus contactes
-
+
Show Items
Mostrar elements
@@ -11731,12 +12871,7 @@ p, li { white-space: pre-wrap; }
Associat al meu node
-
- <h1><img width="%1" src=":/icons/help_64.png"> Identities</h1><p>In this tab you can create/edit <b>pseudo-anonymous identities</b>, and <b>circles</b>.</p><p><b>Identities</b> are used to securely identify your data: sign messages in chat lobbies, forum and channel posts, receive feedback using the Retroshare built-in email system, post comments after channel posts, chat using secured tunnels, etc.</p><p>Identities can optionally be <b>signed</b> by your Retroshare node's certificate. Signed identities are easier to trust but are easily linked to your node's IP address.</p><p><b>Anonymous identities</b> allow you to anonymously interact with other users. They cannot be spoofed, but noone can prove who really owns a given identity.</p><p><b>Circles</b> are groups of identities (anonymous or signed), that are shared at a distance over the network. They can be used to restrict the visibility to forums, channels, etc. </p><p>An <b>circle</b> can be restricted to another circle, thereby limiting its visibility to members of that circle or even self-restricted, meaning that it is only visible to invited members.</p>
-
-
-
-
+
Other circles
Altres cercles
@@ -11746,7 +12881,7 @@ p, li { white-space: pre-wrap; }
Cercles als que pertanyo
-
+
Circle ID:
ID Cercle:
@@ -11821,7 +12956,7 @@ p, li { white-space: pre-wrap; }
No ets membre (No tens accƩs a dades limitades a aquest cercle)
-
+
Identity ID:
Id d'identitat:
@@ -11851,7 +12986,7 @@ p, li { white-space: pre-wrap; }
desconegut
-
+
Invited
Convidat
@@ -11866,7 +13001,7 @@ p, li { white-space: pre-wrap; }
Membre
-
+
Edit Circle
Editar cercle
@@ -11914,7 +13049,7 @@ p, li { white-space: pre-wrap; }
Permet pertinenƧa
-
+
This identity has a unsecure fingerprint (It's probably quite old).
You should get rid of it now and use a new one.
@@ -11925,7 +13060,7 @@ T'hauries de lliurar d'ella i utilitzar-ne una de nova.
Aquestes identitats deixaran de ser suportades en breu.
-
+
[Unknown node]
[Node desconegut]
@@ -11968,7 +13103,7 @@ Aquestes identitats deixaran de ser suportades en breu.
Identitat anònima
-
+
Boards
@@ -12048,7 +13183,7 @@ Aquestes identitats deixaran de ser suportades en breu.
-
+
information
informació
@@ -12064,12 +13199,29 @@ Aquestes identitats deixaran de ser suportades en breu.
Copiar identitat al porta-retalls
-
+ Send invite?
+ Enviar invitació?
+
+
+ Do you really want send a invite with your Certificate?
+ Estàs segur de voler enviar una invitació amb el teu certificat?
+
+
+
Banned
Expulsat
-
+
+ <h1><img width="32" src=":/icons/help_64.png"> Identities</h1> <p>In this tab you can create/edit <b>pseudo-anonymous identities</b>, and <b>circles</b>.</p> <p><b>Identities</b> are used to securely identify your data: sign messages in chat lobbies, forum and channel posts, receive feedback using the Retroshare built-in email system, post comments after channel posts, chat using secured tunnels, etc.</p> <p>Identities can optionally be <b>signed</b> by your Retroshare node's certificate. Signed identities are easier to trust but are easily linked to your node's IP address.</p> <p><b>Anonymous identities</b> allow you to anonymously interact with other users. They cannot be spoofed, but noone can prove who really owns a given identity.</p> <p><b>Circles</b> are groups of identities (anonymous or signed), that are shared at a distance over the network. They can be used to restrict the visibility to forums, channels, etc. </p> <p>An <b>circle</b> can be restricted to another circle, thereby limiting its visibility to members of that circle or even self-restricted, meaning that it is only visible to invited members.</p>
+ <h1><img width="32" src=":/icons/help_64.png"> Identitats</h1><p>En aquesta pestanya pots crear/editar identitats <b>pseudo-anònimes</b> i <b>cercles</b>.</p><p>Les <b>Identitats</b> s'utilitzen per identificar les teves dades: signar missatges publicats a les sales de xat, fòrums i canals, rebre comentaris utilitzant el sistema intern de correu electrònic o publicar-ne a entrades dels canals, xatejar utilitzant tĆŗnels segurs, etc.</p> <p>Les identitats poden estar <b>signades</b> pel certificat del seu node de Rertoshare. Ćs mĆ©s fĆ cil confiar en identitats signades però es poden seguir fĆ cilment fins a la IP del node al que pertanyen.</p> <p>Les <b>identitats anònimes</b> et permetran interactuar amb altres usuaris de forma anònima. No es poden falsificar, però ningĆŗ pot provar qui tĆ© en realitat una determinada identitat.</p> <p>Els <b>cercles</b> són grups d'identitats (anònimes o signades) que són compartides a certa distancia, salts entre nodes, per la xarxa. Es poden utilitzar per restringir la visibilitat de fòrums, canals, etc. </p> <p>Un <b>cercle</b> pot estar restringit a un altre cercle, limitant la visibilitat als membres d'aquest cercle o inclĆŗs es pot auto-restringir, que vol dir que nomĆ©s es visible a membres invitats.</p>
+
+
+ Unknown ID:
+ ID desconegut:
+
+
+
positive
positiu
@@ -12113,11 +13265,19 @@ Aquestes identitats deixaran de ser suportades en breu.
Forums
Fòrums
+
+ Posted
+ Enviat
+
Chat
Xat
+
+ Unknown
+ Desconegut
+
[Unknown]
@@ -12138,6 +13298,14 @@ Aquestes identitats deixaran de ser suportades en breu.
Creation of author signature in service %1
Creació de signatura d'autor al servei %1
+
+ Message/vote/comment
+ Missatge/vot/comentari
+
+
+ %1 in %2 tab
+ %1 a la pestanya %2
+
Distant message signature validation.
@@ -12158,11 +13326,19 @@ Aquestes identitats deixaran de ser suportades en breu.
Signature in distant tunnel system.
Signatura al sistema de tĆŗnel distant.
+
+ Update of identity data.
+ Actualització de dades d'identitat
+
Generic signature validation.
Comprovació de signatura genèrica
+
+ Generic signature.
+ Signatura genĆØrica
+
Generic encryption.
@@ -12174,7 +13350,11 @@ Aquestes identitats deixaran de ser suportades en breu.
Desencriptació genèrica
-
+ Membership verification in circle %1.
+ Comprovació de pertinença al cercle %1.
+
+
+
Add to Contacts
Afegir a contactes
@@ -12224,21 +13404,21 @@ Aquestes identitats deixaran de ser suportades en breu.
Hola,<br> vull ser amic amb tu en el RetroShare.<br>
-
-
-
+
+
+
People
Gent
-
+
Your Avatar
Click here to change your avatar
El teu avatar
-
+
Linked to neighbor nodes
Associat a nodes veĆÆns
@@ -12248,7 +13428,7 @@ Aquestes identitats deixaran de ser suportades en breu.
Associat a nodes distants
-
+
Linked to a friend Retroshare node
Associat a un node de RetroShare d'un amic
@@ -12263,7 +13443,7 @@ Aquestes identitats deixaran de ser suportades en breu.
Associat a un node de RetroShare desconegut
-
+
Chat with this person
Xat amb aquesta persona
@@ -12278,12 +13458,12 @@ Aquestes identitats deixaran de ser suportades en breu.
Xat distant rebutjat amb aquesta persona.
-
+
Last used:
Ćltim utilitzat:
-
+
+50 Known PGP
+50 PGP conegut
@@ -12303,12 +13483,12 @@ Aquestes identitats deixaran de ser suportades en breu.
EstĆ s segur de voler esborrar aquesta identitat?
-
+
Owned by
Propietat de
-
+
Node name:
Nom del node:
@@ -12318,7 +13498,7 @@ Aquestes identitats deixaran de ser suportades en breu.
ID node :
-
+
Really delete?
Segur que vols esborrar?
@@ -12326,7 +13506,7 @@ Aquestes identitats deixaran de ser suportades en breu.
IdEditDialog
-
+
Nickname
Sobrenom
@@ -12356,7 +13536,7 @@ Aquestes identitats deixaran de ser suportades en breu.
Pseudònim
-
+
Import image
@@ -12366,19 +13546,12 @@ Aquestes identitats deixaran de ser suportades en breu.
-
-
- No Avatar chosen. A default image will be automatically displayed from your new identity.
+
+ Use the mouse to zoom and adjust the image for your avatar.
-
-
- Use the mouse to zoom and adjust the image for your avatar. Hit Del to remove it.
-
-
-
-
+
New identity
Nova identitat
@@ -12392,7 +13565,7 @@ Aquestes identitats deixaran de ser suportades en breu.
-
+
@@ -12402,12 +13575,7 @@ Aquestes identitats deixaran de ser suportades en breu.
N/A
-
- No avatar chosen
-
-
-
-
+
Edit identity
Editar identitat
@@ -12418,27 +13586,27 @@ Aquestes identitats deixaran de ser suportades en breu.
Actualitza
-
-
+
+
Profile password needed.
-
+
-
+
Identity creation failed
-
-
+
+
Cannot create an identity linked to your profile without your profile password.
-
+
Identity creation success
@@ -12458,7 +13626,7 @@ Aquestes identitats deixaran de ser suportades en breu.
-
+
Identity update failed
@@ -12468,7 +13636,11 @@ Aquestes identitats deixaran de ser suportades en breu.
-
+ Error getting key!
+ Error obtenint clau!
+
+
+
Error KeyID invalid
Error de IDClau invĆ lida
@@ -12483,7 +13655,7 @@ Aquestes identitats deixaran de ser suportades en breu.
Nom real desconegut
-
+
Create New Identity
Crear nova identitat
@@ -12493,15 +13665,10 @@ Aquestes identitats deixaran de ser suportades en breu.
Tipus
-
+
Choose image...
-
-
- Remove
- Treure
-
@@ -12527,7 +13694,7 @@ Aquestes identitats deixaran de ser suportades en breu.
Afegir
-
+
Create
Crear
@@ -12537,13 +13704,17 @@ Aquestes identitats deixaran de ser suportades en breu.
-
+
Your Avatar
Click here to change your avatar
El teu avatar
-
+ Set Avatar
+ Escull avatar
+
+
+
Linked to your profile
Associat al teu perfil
@@ -12553,7 +13724,7 @@ Aquestes identitats deixaran de ser suportades en breu.
Pots tindre una o més identitats. S'utilitzen quan escrius en sales de xat, fòrums i comentes en canals. Funcionen també com a destinataris en xats distants i en el sistema de correu distant de RetroShare.
-
+
The nickname is too short. Please input at least %1 characters.
El sobrenom Ć©s massa curt. Si us plau, introdueix com a mĆnim %1 carĆ cters.
@@ -12612,6 +13783,10 @@ Aquestes identitats deixaran de ser suportades en breu.
PGP name:
Nom PGP:
+
+ GXS id:
+ id GXS:
+
PGP id:
@@ -12627,7 +13802,7 @@ Aquestes identitats deixaran de ser suportades en breu.
-
+
Copy
Copiar
@@ -12637,12 +13812,12 @@ Aquestes identitats deixaran de ser suportades en breu.
Treure
-
+
%1 's Message History
-
+
Mark all
Marcar totes
@@ -12661,38 +13836,26 @@ Aquestes identitats deixaran de ser suportades en breu.
Quote
Cita
+
+ Send
+ Enviar
+
ImageUtil
-
-
+
+
Save image
Desar imatge
- Save Picture File
-
-
-
-
- Pictures (*.png *.xpm *.jpg)
-
-
-
-
Cannot save the image, invalid filename
No es pot guardar la imatge, nom de l'arxiu invĆ lid
-
- Copy image
-
-
-
-
-
+
Not an image
No Ʃs una imatge
@@ -12710,32 +13873,27 @@ Aquestes identitats deixaran de ser suportades en breu.
-
+
Enable RetroShare JSON API Server
-
+
Port:
Port:
-
+
Listen Address:
-
- Status:
- Estat:
-
-
-
+
127.0.0.1
127.0.0.1
-
+
Token:
@@ -12756,12 +13914,7 @@ Aquestes identitats deixaran de ser suportades en breu.
- Authenticated Tokens:
-
-
-
-
- Registered services:
+ Authenticated Tokens
@@ -12770,31 +13923,26 @@ Aquestes identitats deixaran de ser suportades en breu.
-
+
JSON API
-
-
- <h1><img width="24" src=":/icons/help_64.png"> Webinterface</h1> <p>Retroshare provides a JSON API allowing other softwares to communicate with its core using token-controlled HTTP requests to http://localhost:[port]. Please refer to the Retroshare documentation for how to use this feature. </p> <p>Unless you know what you're doing, you shouldn't need to change anything in this page. The web interface for instance will automatically register its own token to the JSON API which will be visible in the list of authenticated tokens after you enable it.</p>
-
-
LocalSharedFilesDialog
-
-
+
+
Open File
Obrir arxiu
-
+
Open Folder
Obrir directori
-
+
Checking...
Comprovant...
@@ -12804,7 +13952,7 @@ Aquestes identitats deixaran de ser suportades en breu.
comprovar arxius
-
+
Recommend in a message to...
Recomanar en un missatge a...
@@ -12832,7 +13980,7 @@ Aquestes identitats deixaran de ser suportades en breu.
MainWindow
-
+
Add Friend
Afegeix amic
@@ -12848,8 +13996,7 @@ Aquestes identitats deixaran de ser suportades en breu.
-
-
+
Options
Opcions
@@ -12870,7 +14017,7 @@ Aquestes identitats deixaran de ser suportades en breu.
-
+
Quit
Sortir
@@ -12881,12 +14028,12 @@ Aquestes identitats deixaran de ser suportades en breu.
Auxiliar d'inici rĆ pid
-
+
RetroShare %1 a secure decentralized communication platform
RetroShare %1 és una plataforma de comunicació segura descentralitzada
-
+
Unfinished
Inacabat
@@ -12913,12 +14060,11 @@ Si us plau, allibera una mica d'espai i clica Ok.
-
Status
Estat
-
+
Notify
Notificar
@@ -12929,35 +14075,31 @@ Si us plau, allibera una mica d'espai i clica Ok.
-
Open Messages
Obrir Missatges
-
-
+
Bandwidth Graph
GrĆ fic d'ample de banda
-
+
Applications
Aplicacions
-
Help
Ajuda
-
-
+
Minimize
Minimitzar
-
+
Maximize
Maximitzar
@@ -12972,12 +14114,7 @@ Si us plau, allibera una mica d'espai i clica Ok.
RetroShare
-
- Close window
-
-
-
-
+
%1 new message
%1 missatges nous
@@ -13007,7 +14144,7 @@ Si us plau, allibera una mica d'espai i clica Ok.
%1 amics connectats
-
+
Do you really want to exit RetroShare ?
Segur que vols sortir del RetroShare?
@@ -13027,7 +14164,7 @@ Si us plau, allibera una mica d'espai i clica Ok.
Mostra
-
+
Make sure this link has not been forged to drag you to a malicious website.
Assegura't de que aquest enllaƧ no ha estat modificat per portar-te a un lloc web malicios.
@@ -13072,13 +14209,12 @@ Si us plau, allibera una mica d'espai i clica Ok.
Taula de permisos dels serveis
-
-
+
Statistics
EstadĆstiques
-
+
Show web interface
Mostrar interficie web
@@ -13093,7 +14229,7 @@ Si us plau, allibera una mica d'espai i clica Ok.
directori s'estĆ acabant (L'actual lĆmit Ć©s
-
+
Really quit ?
Segur que vols sortir ?
@@ -13102,17 +14238,17 @@ Si us plau, allibera una mica d'espai i clica Ok.
MessageComposer
-
+
Compose
Redacta
-
+
Contacts
Contactes
-
+
Paragraph
ParĆ graf
@@ -13148,12 +14284,12 @@ Si us plau, allibera una mica d'espai i clica Ok.
CapƧalera 6
-
+
Font size
Mida del tipus de lletra
-
+
Increase font size
Augmentar la mida del tipus de lletra
@@ -13168,32 +14304,32 @@ Si us plau, allibera una mica d'espai i clica Ok.
Negreta
-
+
Italic
Cursiva
-
+
Alignment
Alineació
-
+
Add an Image
Afegir una imatge
-
+
Sets text font to code style
Posa el tipus de lletra del text com si fos codi
-
+
Underline
Subratllat
-
+
Subject:
Assumpte:
@@ -13204,32 +14340,32 @@ Si us plau, allibera una mica d'espai i clica Ok.
-
+
Tags
Etiquetes
-
+
Address list:
Llista d'adreces:
-
+
Recommend this friend
Recomanar aquest amic
-
+
Set Text color
Estableix color de lletra
-
+
Set Text background color
Estableix color de fons de la lletra
-
+
Recommended Files
Arxius recomanats
@@ -13299,7 +14435,7 @@ Si us plau, allibera una mica d'espai i clica Ok.
Afegir citació
-
+
Send To:
Enviar a:
@@ -13323,6 +14459,10 @@ Si us plau, allibera una mica d'espai i clica Ok.
&Justify
&Justificat
+
+ All addresses (mixed)
+ Totes les adreces (mesclades)
+
All people
@@ -13334,7 +14474,7 @@ Si us plau, allibera una mica d'espai i clica Ok.
Els meus contactes
-
+
Hello,<br>I recommend a good friend of mine; you can trust them too when you trust me. <br>
Hola,<br>Et recomano un bon amic meu; pots confiar en ell si confies en mi. <br>
@@ -13354,18 +14494,18 @@ Si us plau, allibera una mica d'espai i clica Ok.
vol ser amic teu al RetroShare
-
+
Hi %1,<br><br>%2 wants to be friends with you on RetroShare.<br><br>Respond now:<br>%3<br><br>Thanks,<br>The RetroShare Team
Hola %1, <br><br>%2 vol ser amic teu al RetroShare.<br><br>Respondre ara:<br>%3 <br><br>GrĆ cies,<br>L'equip RetroShare
-
-
+
+
Save Message
Desar el missatge
-
+
Message has not been Sent.
Do you want to save message to draft box?
El missatge no s'ha enviat.
@@ -13377,17 +14517,7 @@ Vols desar el missatge a la bĆŗstia d'esborranys?
Enganxa l'enllaƧ RetroShare
-
- Will not reply
-
-
-
-
- There is no point in replying to a notification message!
-
-
-
-
+
Add to "To"
Afegir a "A"
@@ -13407,7 +14537,7 @@ Vols desar el missatge a la bĆŗstia d'esborranys?
Afegir com a recomanat
-
+
Original Message
Missatge original
@@ -13417,21 +14547,21 @@ Vols desar el missatge a la bĆŗstia d'esborranys?
Des de
-
+
-
+
To
A
-
-
+
+
Cc
CC
-
+
Sent
Enviat
@@ -13446,7 +14576,7 @@ Vols desar el missatge a la bĆŗstia d'esborranys?
A %1, %2 va escriure:
-
+
Re:
Re:
@@ -13456,30 +14586,30 @@ Vols desar el missatge a la bĆŗstia d'esborranys?
Reenvia:
-
-
-
+
+
+
RetroShare
RetroShare
-
+
Do you want to send the message without a subject ?
Vols enviar el missatge sense especificar un assumpte?
-
+
Please insert at least one recipient.
Si us plau, introdueix almenys un destinatari.
-
+
Bcc
C/o
-
+
Unknown
Desconegut
@@ -13594,13 +14724,13 @@ Vols desar el missatge a la bĆŗstia d'esborranys?
Detalls
-
+
Open File...
Obrir arxiu...
-
+
HTML-Files (*.htm *.html);;All Files (*)
Arxius HTML (*.htm *.html);;Tots els arxius (*)
@@ -13620,7 +14750,7 @@ Vols desar el missatge a la bĆŗstia d'esborranys?
Exportar a PDF
-
+
Message has not been Sent.
Do you want to save message ?
El missatge no s'ha enviat.
@@ -13642,7 +14772,7 @@ Voleu desar el missatge?
Afegir arxiu extra
-
+
Hi,<br>I want to be friends with you on RetroShare.<br>
Hola,<br> vull ser amic amb tu en el RetroShare.<br>
@@ -13666,24 +14796,28 @@ Voleu desar el missatge?
Warning: This message is too big of %1 characters after HTML conversion.
+
+ You have a friend invite
+ Tens una petició d'amistat
+
Respond now:
Respondre ara:
-
-
+
+
Close
Tancar
-
+
From:
De:
-
+
Friend Nodes
Nodes de l'amic
@@ -13728,13 +14862,13 @@ Voleu desar el missatge?
Llista ordenada (romanic ascendent)
-
-
+
+
Thanks, <br>
GrĆ cies, <br>
-
+
Distant identity:
Identitat distant:
@@ -13744,12 +14878,12 @@ Voleu desar el missatge?
[Falta]
-
+
Please create an identity to sign distant messages, or remove the distant peers from the destination list.
Si us plau, crea una identitat per signar missatges distants o treu els contactes distants de la llista de destinataris.
-
+
Node name & id:
Nom i Id del node:
@@ -13827,7 +14961,7 @@ Voleu desar el missatge?
Per defecte
-
+
A new tab
Una pestanya nova
@@ -13837,7 +14971,7 @@ Voleu desar el missatge?
Una finestra nova
-
+
Edit Tag
Editar etiqueta
@@ -13860,7 +14994,7 @@ Voleu desar el missatge?
MessageToaster
-
+
Sub:
Sub:
@@ -13868,7 +15002,7 @@ Voleu desar el missatge?
MessageUserNotify
-
+
Message
Missatge
@@ -13896,7 +15030,7 @@ Voleu desar el missatge?
MessageWidget
-
+
Recommended Files
Arxius recomanats
@@ -13906,37 +15040,37 @@ Voleu desar el missatge?
Descarregar tots els arxius recomanats
-
+
Subject:
Assumpte:
-
+
From:
De:
-
+
To:
A:
-
+
Cc:
CC:
-
+
Bcc:
C/o:
-
+
Tags:
Etiquetes:
-
+
Reply
Resposta
@@ -13976,7 +15110,7 @@ Voleu desar el missatge?
-
+
Send Invite
Envia invitació
@@ -14028,7 +15162,7 @@ Voleu desar el missatge?
-
+
Confirm %1 as friend
Confirma %1 com amic
@@ -14038,12 +15172,12 @@ Voleu desar el missatge?
Afegeix %1 com amic
-
+
View source
-
+
No subject
Sense assumpte
@@ -14053,22 +15187,17 @@ Voleu desar el missatge?
Descarregar
-
+
You got an invite to make friend! You may accept this request.
-
+
You got an invite to make friend! You may accept this request and send your own Certificate back
-
- more
-
-
-
-
+
Document source
@@ -14078,23 +15207,21 @@ Voleu desar el missatge?
-
- Show less
-
+ Send invite?
+ Enviar invitació?
-
- Show more
-
+ Do you really want send a invite with your Certificate?
+ Estàs segur de voler enviar una invitació amb el teu certificat?
-
+
Download all
Descarregar tot
-
+
Print Document
Imprimir document
@@ -14109,12 +15236,12 @@ Voleu desar el missatge?
Arxius-HTML (*.htm *.html);;Tots els arxius (*)
-
+
Load images always for this message
Carregar sempre les imatges per aquest missatge
-
+
Hide the attachment pane
Oculta el panell d'adjunció
@@ -14136,6 +15263,42 @@ Voleu desar el missatge?
Compose
Redacta
+
+ Reply to selected message
+ Respon al missatge seleccionat
+
+
+ Reply
+ Resposta
+
+
+ Reply all to selected message
+ Respondre a tothom del missatge seleccionat
+
+
+ Reply all
+ Respon a tothom
+
+
+ Forward selected message
+ Reenviar missatge seleccionat
+
+
+ Forward
+ Endavant
+
+
+ Remove selected message
+ Esborra el missatge seleccionat
+
+
+ Delete
+ Esborrar
+
+
+ Print selected message
+ Imprimir el missatge seleccionat
+
Print
@@ -14214,7 +15377,7 @@ Voleu desar el missatge?
MessagesDialog
-
+
New Message
Missatge nou
@@ -14224,16 +15387,60 @@ Voleu desar el missatge?
Redacta
-
+ Reply to selected message
+ Respon al missatge seleccionat
+
+
+ Reply
+ Resposta
+
+
+ Reply all to selected message
+ Respon a tothom del missatge seleccionat
+
+
+ Reply all
+ Respon a tothom
+
+
+ Forward selected message
+ Reenviar missatge seleccionat
+
+
+ Foward
+ Reenvia
+
+
+ Remove selected message
+ Esborra el missatge seleccionat
+
+
+ Delete
+ Esborrar
+
+
+ Print selected message
+ Imprimir el missatge seleccionat
+
+
+ Print
+ Impressió
+
+
+ Display
+ Mostra
+
+
+
-
-
+
+
Tags
Etiquetes
-
-
+
+
Inbox
Safata d'entrada
@@ -14263,17 +15470,21 @@ Voleu desar el missatge?
Paperera
-
+
Total Inbox:
Total safata d'entrada:
-
+ Folders
+ Carpetes
+
+
+
Quick View
Vista rĆ pida
-
+
Print...
Impressió...
@@ -14283,6 +15494,26 @@ Voleu desar el missatge?
Print Preview
Prèvia d'impressió
+
+ Buttons Icon Only
+ Botons: NomƩs icona
+
+
+ Buttons Text Beside Icon
+ Botons: Text al costat de la icona
+
+
+ Buttons with Text
+ Botons: amb text
+
+
+ Buttons Text Under Icon
+ Botons: Text sota la icona
+
+
+ Set Text Under Icon
+ Establir text sota la icona
+
Save As...
@@ -14304,7 +15535,7 @@ Voleu desar el missatge?
Reenviar missatge
-
+
Subject
Assumpte
@@ -14314,7 +15545,7 @@ Voleu desar el missatge?
Des de
-
+
Date
Data
@@ -14324,7 +15555,39 @@ Voleu desar el missatge?
Contingut
-
+ Click to sort by attachments
+ Clica per ordenar pels fitxers adjunts
+
+
+ Click to sort by subject
+ Clica per ordenar per assumptes
+
+
+ Click to sort by read
+ Clica per ordenar per llegits
+
+
+ Click to sort by from
+ Clica per ordenar pel remitent
+
+
+ Click to sort by date
+ Clica per ordenar per data
+
+
+ Click to sort by tags
+ Clica per ordenar per etiquetes
+
+
+ Click to sort by star
+ Clica per ordenar per marcats
+
+
+ Forward selected Message
+ Reenviar missatge seleccionat
+
+
+
Search Subject
Assumpte de la cerca
@@ -14333,11 +15596,6 @@ Voleu desar el missatge?
Search From
Cerca de
-
-
- Search To
-
-
Search Date
@@ -14364,14 +15622,14 @@ Voleu desar el missatge?
Cerca adjunts
-
- <h1><img width="%1" src=":/icons/help_64.png"> Messages</h1><p>Retroshare has its own internal email system. You can send/receive emails to/from connected friend nodes.</p><p>It is also possible to send messages to other people's Identities using the global routing system. These messages are always encrypted and signed, and are relayed by intermediate nodes until they reach their final destination. </p><p>Distant messages stay into your Outbox until an acknowledgement of receipt has been received.</p><p>Generally, you may use messages to recommend files to your friends by pasting file links, or recommend friend nodes to other friend nodes, in order to strengthen your network, or send feedback to a channel's owner.</p>
-
+
+ <h1><img width="%1" src=":/icons/help_64.png"> Messages</h1> <p>Retroshare has its own internal email system. You can send/receive emails to/from connected friend nodes.</p> <p>It is also possible to send messages to other people's Identities using the global routing system. These messages are always encrypted and signed, and are relayed by intermediate nodes until they reach their final destination. </p> <p>Distant messages stay into your Outbox until an acknowledgement of receipt has been received.</p> <p>Generally, you may use messages to recommend files to your friends by pasting file links, or recommend friend nodes to other friend nodes, in order to strengthen your network, or send feedback to a channel's owner.</p>
+ <h1><img width="32" src=":/images/help_64.png"> Missatges</h1> <p>Retroshare tĆ© el seu propi sistema de correu electrònic. Pots enviar/rebre correus de/a els nodes dels teus amics.</p> <p>TambĆ© Ć©s possible enviar missatges a identitats d'altra gent utilitzant el sistema de encaminament global. Aquests missatges són sempre encriptats i reenviats per nodes intermediaris fins que arriben al seu destĆ. </p> <p>Els missatges distants es queden a la teva bustia de sortints fins que no es rep confirmació d'entrega.</p> <p>Generalment s'envien missatges per recomanar arxius a amics enviant els enllaƧos, recomanar nodes d'amics a altres amics, per millorar la teva xarxa, o respostes a propietaris de canals.</p>
-
+
Starred
-
+ Marcat
@@ -14445,7 +15703,7 @@ Voleu desar el missatge?
- Show in People
+ Show author in People
@@ -14459,7 +15717,7 @@ Voleu desar el missatge?
-
+
No message using %1 tag available.
@@ -14474,33 +15732,38 @@ Voleu desar el missatge?
-
- Deletion is not recommended
-
-
-
-
- Messages in this box are automatically deleted when received. Manually deleting a message does not guaranty that the message will not be delivered. Messages that cannot be delivered will however stay here indefinitly. Do you want to proceed and delete?
-
-
-
-
+
Drafts
Esborranys
-
+
No Box selected.
-
- To
- A
+ No starred messages available. Stars let you give messages a special status to make them easier to find. To star a message, click on the light gray star beside any message.
+ No hi ha missatges marcats. Les marques et permeten donar als missatges un estat especial per trobar-los fĆ cilment. Per marcar un missatge clica a l'estrella gris al costat del missatge.
-
+ No system messages available.
+ No hi ha missatges de sistema disponibles.
+
+
+ To
+ A
+
+
+ Click to sort by to
+ Clica per ordenar per destinatari
+
+
+ This message goes to a distant person.
+ Aquest missatge va cap a una persona distant.
+
+
+
@@ -14508,6 +15771,26 @@ Voleu desar el missatge?
Total:
Total:
+
+ Messages
+ Missatges
+
+
+ Click to sort by signature
+ Clica per ordenar per signatura
+
+
+ This message was signed and the signature checks
+ Aquest missatge és firmat i la signatura và lida
+
+
+ This message was signed but the signature doesn't check
+ Aquest missatge està signat però la signatura no és và lida
+
+
+ This message comes from a distant person.
+ Aquest missatge provƩ d'una persona distant.
+
Mail
@@ -14535,17 +15818,7 @@ Voleu desar el missatge?
MimeTextEdit
-
- Save image
- Desar imatge
-
-
-
- Copy image
-
-
-
-
+
Paste as plain text
Enganxa com a text pla
@@ -14599,7 +15872,7 @@ Voleu desar el missatge?
-
+
Expand
Ampliar
@@ -14609,7 +15882,7 @@ Voleu desar el missatge?
Eliminar l'element
-
+
from
des de
@@ -14644,10 +15917,18 @@ Voleu desar el missatge?
Msg pendent
-
+
Hide
Amagar
+
+ Send invite?
+ Enviar invitació?
+
+
+ Do you really want send a invite with your Certificate?
+ Estàs segur de voler enviar una invitació amb el teu certificat?
+
NATStatus
@@ -14785,7 +16066,7 @@ Voleu desar el missatge?
ID del contacte
-
+
Remove unused keys...
Eliminar claus no utilitzades...
@@ -14795,7 +16076,7 @@ Voleu desar el missatge?
-
+
Clean keyring
Neteja el clauer
@@ -14812,13 +16093,7 @@ Notes: Es guardarĆ una copia de seguretat del teu clauer antic.
L'eliminació potser falli si tens múltiples instancies de RetroShare a la mateixa mà quina.
-
- You have selected %1 accepted peers among others,
- Are you sure you want to un-friend them?
-
-
-
-
+
Keyring info
Informació del clauer
@@ -14853,13 +16128,18 @@ Per seguretat, s'ha fet una copia de seguretat del teu clauer
Data inconsistency in the keyring. This is most probably a bug. Please contact the developers.
Inconsistència de dades al clauer. Això és probablement un "bug". Si us plau, contacta amb els desenvolupadors.
+
+
+ Export/create a new node
+ Exporta/Crea un node nou
+
Trusted keys only
NomƩs claus de confianƧa
-
+
Search name
Cercar nom
@@ -14869,12 +16149,12 @@ Per seguretat, s'ha fet una copia de seguretat del teu clauer
Cerca Id contacte
-
+
Profile details...
Detalls del perfil...
-
+
Key removal has failed. Your keyring remains intact.
Reported error:
@@ -14883,6 +16163,13 @@ Reported error:
Error reportat:
+
+ NetworkPage
+
+ Network
+ Xarxa
+
+
NetworkView
@@ -14909,7 +16196,7 @@ Error reportat:
NewFriendList
-
+
Offline Friends
@@ -14930,7 +16217,7 @@ Error reportat:
-
+
Groups
Grups
@@ -14960,19 +16247,19 @@ Error reportat:
importar la teva llista d'amics, incloent els grups
-
-
+
+
Search
-
+
ID
ID
-
+
Search ID
ID cerca
@@ -14982,12 +16269,12 @@ Error reportat:
-
+
Show Items
Mostrar elements
-
+
Last contact
@@ -14997,7 +16284,7 @@ Error reportat:
IP
-
+
Group
Grup
@@ -15112,7 +16399,7 @@ Error reportat:
Contreure tot
-
+
Do you want to remove this node?
Voleu suprimir aquest node?
@@ -15122,7 +16409,7 @@ Error reportat:
Voleu suprimir aquest amic?
-
+
Done!
Fet!
@@ -15236,7 +16523,11 @@ com a mĆnim un dels contactes no s'ha afegit a un grup
NewsFeed
-
+ Log entries
+ Entrades en el registre
+
+
+
Activity Stream
@@ -15251,7 +16542,11 @@ com a mĆnim un dels contactes no s'ha afegit a un grup
Suprimeix-ho tot
-
+ This is a test.
+ Això és un test.
+
+
+
Newest on top
El mƩs nou a dalt
@@ -15261,12 +16556,21 @@ com a mĆnim un dels contactes no s'ha afegit a un grup
El mƩs vell a dalt
-
- <h1><img width="%1" src=":/icons/help_64.png"> Activity Feed</h1><p>The Activity Feed displays the last events on your network, sorted by the time you received them. This gives you a summary of the activity of your friends. You can configure which events to show by pressing on <b>Options</b>. </p><p>The various events shown are: <ul> <li>Connection attempts (useful to make friends with new people and control who's trying to reach you)</li> <li>Channel, Forum and Board posts</li> <li>Circle membership requests and invites</li> <li>New Channels, Forums and Boards you can subscribe to</li> <li>Channel and Board comments</li> <li>New Mail messages</li> <li>Private messages from your friends</li> </ul> </p>
+
+ <h1><img width="32" src=":/icons/help_64.png"> Activity Feed</h1> <p>The Activity Feed displays the last events on your network, sorted by the time you received them. This gives you a summary of the activity of your friends. You can configure which events to show by pressing on <b>Options</b>. </p> <p>The various events shown are: <ul> <li>Connection attempts (useful to make friends with new people and control who's trying to reach you)</li> <li>Channel, Forum and Board posts</li> <li>Circle membership requests and invites</li> <li>New Channels, Forums and Boards you can subscribe to</li> <li>Channel and Board comments</li> <li>New Mail messages</li> <li>Private messages from your friends</li> </ul> </p>
-
+ <h1><img width="32" src=":/icons/help_64.png"> News Feed</h1> <p>The Log Feed displays the last events on your network, sorted by the time you received them. This gives you a summary of the activity of your friends. You can configure which events to show by pressing on <b>Options</b>. </p> <p>The various events shown are: <ul> <li>Connection attempts (useful to make friends with new people and control who's trying to reach you)</li> <li>Channel and Forum posts</li> <li>New Channels and Forums you can subscribe to</li> <li>Private messages from your friends</li> </ul> </p>
+ <h1><img width="32" src=":/icons/help_64.png"> Novetats</h1>
+<p>La font de noticies mostra els últims esdeveniments a la xarxa ordenats per hora de recepció. Això et proporciona un resum de l'activitat dels teus amics. Pots triar quins esdeveniments es mostren a <b>Opcions</b>. </p> <p>Els esdeveniments mostrats són: <ul> <li>Intents de connexió (útil per fer amics amb gent nova i controlar qui està intentant connectar-te)</li> <li>Publicacions a canals i fòrums</li> <li>Nous canals i fòrums als que et pots subscriure</li> <li>Missatges privats dels teus amics</li> </ul> </p>
+
+
+ Log
+ Registre
+
+
+
Activity
@@ -15321,6 +16625,10 @@ com a mĆnim un dels contactes no s'ha afegit a un grup
Blogs
Blocs
+
+ Security
+ Seguretat
+
@@ -15342,6 +16650,10 @@ com a mĆnim un dels contactes no s'ha afegit a un grup
Message
Missatge
+
+ Connect attempt
+ Intent de connexió
+
@@ -15358,6 +16670,10 @@ com a mĆnim un dels contactes no s'ha afegit a un grup
Ip security
Seguretat Ip
+
+ Log
+ Registre
+
Friend Connected
@@ -15368,6 +16684,10 @@ com a mĆnim un dels contactes no s'ha afegit a un grup
Circles
Cercles
+
+ Links
+ EnllaƧos
+
Activity
@@ -15420,6 +16740,26 @@ com a mĆnim un dels contactes no s'ha afegit a un grup
Chat rooms
Sales de xat
+
+ Chat Rooms
+ Sales de xat
+
+
+ Count occurrences of my current identity
+ Comptar quants cops hi ha la meva identitat actual
+
+
+ Count occurrences of any of the following texts (separate by newlines):
+ Comptar coincidĆØncies de qualsevol dels texts següents (un per lĆnia):
+
+
+ Checked, if the identity and the text above occurrences must be in the same case to trigger count.
+ Marca'l si identitats i texts a la part superior han de coincidir en majĆŗscules/minĆŗscules pel comptador.
+
+
+ Case sensitive
+ Diferenciar majĆŗscules/minĆŗscules
+
Position
@@ -15496,16 +16836,24 @@ com a mĆnim un dels contactes no s'ha afegit a un grup
Disable All Toaster temporarily
Deshabilitar notificacions temporalment
+
+ Feed
+ Font
+
Systray
Ćrea de notificació
+
+ Count all unread messages
+ Comptar tots els missatges no llegits
+
NotifyQt
-
+
Passphrase required
Es requereix contrasenya
@@ -15525,12 +16873,12 @@ com a mĆnim un dels contactes no s'ha afegit a un grup
Contrasenya incorrecta !
-
+
Please enter your Retroshare passphrase
Si us plau, introdueix la contrasenya del Retroshare
-
+
Unregistered plugin/executable
Complement/Executable no registrat
@@ -15545,7 +16893,19 @@ com a mĆnim un dels contactes no s'ha afegit a un grup
Si us plau, comprova l'hora del sistema.
-
+ Examining shared files...
+ Examinant arxius compartits...
+
+
+ Hashing file
+ Calculant nĆŗmero de hash
+
+
+ Saving file index...
+ Desant Ćndex de l'arxiu...
+
+
+
Test
Test
@@ -15556,19 +16916,17 @@ com a mĆnim un dels contactes no s'ha afegit a un grup
-
Unknown title
TĆtol desconegut
-
+
-
Encrypted message
Missatge encriptat
-
+
For the chat lobbies to work properly, the time of your computer needs to be correct. Please check that this is the case (A possible time shift of several minutes was detected with your friends).
PerquĆØ aquestes sales de xat funcionin l'hora en el teu ordinador ha de ser correcta. Si us plau, comprova que Ć©s el cas (Ćs possible que una variació de varis minuts s'hagi detectat respecte els teus amics).
@@ -15576,7 +16934,7 @@ com a mĆnim un dels contactes no s'ha afegit a un grup
OnlineToaster
-
+
Friend Online
Amic en lĆnia
@@ -15628,6 +16986,10 @@ TrĆ fic baix: 10 %s del trĆ fic estĆ ndard i PENDENT: posar en pausa totes les t
PGPKeyDialog
+
+ Dialog
+ DiĆ leg
+
Profile info
@@ -15693,6 +17055,10 @@ TrĆ fic baix: 10 %s del trĆ fic estĆ ndard i PENDENT: posar en pausa totes les t
This profile has signed your own profile key
Aquest perfil ha signat la clau del teu perfil
+
+ Key signatures :
+ Signatures de la clau :
+
<html><head/><body><p><span style=" font-size:10pt;">Signing a friend's key is a way to express your trust into this friend, to your other friends. The signatures below cryptographically attest that owners of the listed keys recognise the current PGP key as authentic.</span></p></body></html>
@@ -15722,20 +17088,23 @@ p, li { white-space: pre-wrap; }
Clau PGP
-
- Friend options
-
-
-
-
+
These options apply to all nodes of the profile:
Aquestes opcions s'apliquen a tots els nodes del perfil:
+
+ <html><head/><body><p><span style=" font-size:10pt;">Signing a friend's key is a way to express your trust into this friend, to your other friends. It helps them to decide whether to allow connections from that key based on your own trust. Signing a key is absolutely optional and cannot be undone, so do it wisely.</span></p></body></html>
+ <html><head/><body><p><span style=" font-size:10pt;">Signar la clau d'un amic és una forma d'expressar la teva confiança en aquest amic als teus altres amics. Els ajudarà a decidir si volen acceptar o no connexions d'aquesta clau basant-se en la teva confiança. Signar una clau és completament opcional i no es pot desfer, fes-ho amb cura.</span></p></body></html>
+
Keysigning:
+
+ Sign PGP key
+ Signa clau PGP
+
<html><head/><body><p>Click here if you want to refuse connections to nodes authenticated by this key.</p></body></html>
@@ -15772,7 +17141,12 @@ p, li { white-space: pre-wrap; }
Inclou les signatures
-
+
+ Options
+ Opcions
+
+
+
<html><head/><body><p align="justify">Retroshare periodically checks your friend lists for browsable files matching your transfers, to establish a direct transfer. In this case, your friend knows you're downloading the file.</p><p align="justify">To prevent this behavior for this friend only, uncheck this box. You can still perform a direct transfer if you explicitly ask for it, by e.g. downloading from your friend's file list. This setting is applied to all locations of the same node.</p></body></html>
<html><head/><body><p align="justify">El RetroShare periòdicament comprova la teva llista d'amics per arxius navegables que coincideixin amb els mateixos que estĆ s descarregant, per establir una transferĆØncia directa. En aquest cas els teus amics sabran quĆØ descarregues.</p><p align="justify">Si no vols que això passi per algun amic en concret, desmarca aquesta casella. Encara podrĆ s realitzar transferĆØncies directes si ho demanes explĆcitament, per exemple descarregant de la llista del teu amic directament. Això s'aplicarĆ a totes les ubicacions del mateix node.</p></body></html>
@@ -15786,6 +17160,10 @@ p, li { white-space: pre-wrap; }
<html><head/><body><p>This option allows you to automatically download a file that is recommended in an message coming from this profile (e.g. when the message author is a signed identity that belongs to this profile). This can be used for instance to send files between your own nodes.</p></body></html>
+
+ <html><head/><body><p>This option allows you to automatically download a file that is recommended in an message coming from this node. This can be used for instance to send files between your own nodes. Applied to all locations of the same node.</p></body></html>
+ <html><head/><body><p>Aquesta opció et permet descarregar automà ticament un arxiu recomanat en un missatge que provingui d'aquest node. Això es pot utilitzar per exemple per enviar arxius entre els teus nodes. S'aplica a totes les ubicacions del mateix node.</p></body></html>
+
Auto-download recommended files from this node
@@ -15818,21 +17196,21 @@ p, li { white-space: pre-wrap; }
kB/s
-
-
+
+
RetroShare
RetroShare
-
-
+
+
Error : cannot get peer details.
Error: no es poden obtenir detalls del contacte.
-
+
The supplied key algorithm is not supported by RetroShare
(Only RSA keys are supported at the moment)
L'algorisme de la clau proporcionada no Ʃs suportada pel RetroShare
@@ -15853,7 +17231,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega directa com No.
-
+
The trust level is a way to express your own trust in this key. It is not used by the software nor shared, but can be useful to you in order to remember good/bad keys.
El nivell de confiança és una forma d'expressar la teva confiança en aquesta clau. No s'utilitza pel programa ni es comparteix, però et pot ser útil per recordar claus bones/dolentes.
@@ -15922,6 +17300,10 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
Check the password!
+
+ Maybe password is wrong
+ Potser la contrasenya sigui incorrecta
+
You haven't set a trust level for this key.
@@ -15929,12 +17311,12 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
-
+
Retroshare profile
Perfil de Retroshare
-
+
This is your own PGP key, and it is signed by :
Aquesta és la teva clau PGP i està signada per :
@@ -15960,7 +17342,7 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
PeerItem
-
+
Chat
Xat
@@ -15981,7 +17363,7 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
Eliminar l'element
-
+
Name:
Nom:
@@ -16021,7 +17403,7 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
Diferencia de temps:
-
+
Write Message
Escriure missatge
@@ -16035,6 +17417,10 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
Friend Connected
Amic connectat
+
+ Connect Attempt
+ Intent de connexió
+
Connection refused by peer
@@ -16073,13 +17459,17 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
Unknown
Desconegut
+
+ Unknown Peer
+ Contacte desconegut
+
Hide
Amagar
-
+
Send Message
Enviar missatge
@@ -16131,6 +17521,10 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
Chat with this person as...
Xat amb aquesta persona com...
+
+ Send message to this person
+ Enviar un missatge a aquesta persona
+
Invite to Circle
@@ -16189,6 +17583,10 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
<html><head/><body><p>Anyone in your contact list will automatically have a positive opinion if not set. This allows to automatically raise reputations of used nodes. </p></body></html>
<html><head/><body><p>Qualsevol de la teva llista de contactes tindrà automà ticament una opinió positiva, si no ho canvies. Això permet que la reputació dels nodes en ús tinguin millor reputació.</p></body></html>
+
+ automatically give "Positive" opinion to my contacts
+ donar automà ticament una opinió "Positiva" als meus contactes
+
use "positive" as the default opinion for contacts (instead of neutral)
@@ -16246,6 +17644,13 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
<html><head/><body><p>Per tal d'evitar que identitats expulsades esborrades tornin perquè estan sent usades a fòrums o canals, se les manté en una llista durant un temps. Si després d'aquest temps, s'esborren de la llista però continuen sent usades, tornaran a propagar-se per fòrums, sales de xat, etc.</p></body></html>
+
+ PhotoCommentItem
+
+ Form
+ Formulari
+
+
PhotoDialog
@@ -16253,11 +17658,23 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
PhotoShare
PhotoShare
+
+ Photo
+ Foto
+
TextLabel
EtiquetaTexte
+
+ Comment
+ Comentari
+
+
+ Summary
+ Resum
+
Album / Photo Name
@@ -16266,7 +17683,7 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
Details
- Detalls
+
@@ -16318,6 +17735,14 @@ AvĆs: En les opcions de TransferĆØncia d'arxius, has marcat descarrega dir
...
...
+
+ Add Comment
+ Afegir comentari
+
+
+ Write a comment...
+ Escriure un comentari...
+
Album
@@ -16388,6 +17813,10 @@ p, li { white-space: pre-wrap; }
Create Album
Crear Ć lbum
+
+ View Album
+ Veure Ć lbum
+
Edit Album Details
@@ -16409,17 +17838,17 @@ p, li { white-space: pre-wrap; }
Presentació de diapositives
-
+
My Albums
Els meus Ć lbums
-
+
Subscribed Albums
Ćlbums subscrits
-
+
Shared Albums
Ćlbums compartits
@@ -16449,7 +17878,7 @@ abans de demanar editar-lo!
PhotoSlideShow
-
+
Album Name
Nom d'Ć lbum
@@ -16508,19 +17937,19 @@ abans de demanar editar-lo!
-
-
+
+
TextLabel
-
+
Posted by
-
+
ago
@@ -16556,12 +17985,12 @@ abans de demanar editar-lo!
PluginItem
-
+
TextLabel
EtiquetaTexte
-
+
Show more details about this plugin
Mostra mƩs detalls sobre aquest complement
@@ -16707,6 +18136,61 @@ p, li { white-space: pre-wrap; }
Plugin look-up directories
Directoris on buscar complements
+
+ Plugin disabled. Click the enable button and restart Retroshare
+ Complement deshabilitat. Clica el botó d'activació o reinicia el Retroshare
+
+
+ [disabled]
+ [desactivat]
+
+
+ No API number supplied. Please read plugin development manual.
+ No s'ha proporcionat nĆŗmero d'API. Si us plau, llegeix el manual de desenvolupament de complements.
+
+
+ [loading problem]
+ [problema de carrega]
+
+
+ No SVN number supplied. Please read plugin development manual.
+ No s'ha proporcionat nĆŗmero d'SVN. Si us plau, llegeix el manual de desenvolupament de complements.
+
+
+ Loading error.
+ Error carregant.
+
+
+ Missing symbol. Wrong version?
+ Falten sĆmbols. Versió equivocada?
+
+
+ No plugin object
+ Sense objecte del complement
+
+
+ Plugins is loaded.
+ Complement carregat.
+
+
+ Unknown status.
+ Estat desconegut.
+
+
+ Check this for developing plugins. They will not
+be checked for the hash. However, in normal
+times, checking the hash protects you from
+malicious behavior of crafted plugins.
+ Activa pels complements en desenvolupament.
+No se'ls comprovarĆ el hash. No obstant, en
+circumstancies normals, comprovar el hash et
+protegeix de l'acció maliciosa de complements
+modificats.
+
+
+ <h1><img width="24" src=":/icons/help_64.png"> Plugins</h1> <p>Plugins are loaded from the directories listed in the bottom list.</p> <p>For security reasons, accepted plugins load automatically until the main Retroshare executable or the plugin library changes. In such a case, the user needs to confirm them again. After the program is started, you can enable a plugin manually by clicking on the "Enable" button and then restart Retroshare.</p> <p>If you want to develop your own plugins, contact the developpers team they will be happy to help you out!</p>
+ <h1><img width="24" src=":/images/help_64.png"> Complements</h1> <p>Els complements es carreguen dels directoris del llistat inferior.</p> <p> Per raons de seguretat, els complements acceptats es carreguen automà ticament mentre l'executable principal del Retroshare o els complements no canviïn. En tal cas, l'usuari haurà de confirmar-ho altre cop. Un cop el programa s'ha iniciat, pots habilitar un complement manualment fent clic al botó "Activa" i després reiniciant el Retroshare.</p> <p>Si vols desenvolupar els teus propis complements contacta amb els desenvolupadors i estaran contents d'ajudar-te!</p>
+
Plugins
@@ -16776,27 +18260,12 @@ p, li { white-space: pre-wrap; }
Posar la finestra per damunt
-
- Ban this person (Sets negative opinion)
- Expulsa aquesta persona (Emet una opinió negativa)
-
-
-
- Give neutral opinion
- Opinió neutre
-
-
-
- Give positive opinion
- Opinió positiva
-
-
-
+
Choose window color...
-
+
Dock window
@@ -16830,6 +18299,22 @@ p, li { white-space: pre-wrap; }
Close conversation?
+
+ The person you are talking to has deleted the secured chat tunnel.
+ La persona amb qui estaves parlant ha esborrat el tĆŗnel de xat segur.
+
+
+ The chat partner deleted the secure tunnel, messages will be delivered as soon as possible
+ El company de xat ha esborrat el túnel segur, els missatges s'entregaran el més aviat possible.
+
+
+ Closing this window will end the conversation, notify the peer and remove the encrypted tunnel.
+ Tancar aquesta finestra finalitzarĆ la conversa, notifica-ho al contacte i esborra el tĆŗnel encriptat.
+
+
+ Kill the tunnel?
+ Matar el tĆŗnel?
+
PostedCardView
@@ -16849,7 +18334,7 @@ p, li { white-space: pre-wrap; }
Nou
-
+
Vote up
Votar positiu
@@ -16869,8 +18354,8 @@ p, li { white-space: pre-wrap; }
\/
-
-
+
+
Comments
Comentaris
@@ -16895,13 +18380,13 @@ p, li { white-space: pre-wrap; }
-
-
+
+
Comment
Comentari
-
+
Comments
Comentaris
@@ -16929,12 +18414,20 @@ p, li { white-space: pre-wrap; }
PostedCreatePostDialog
-
+ Signed by:
+ Signat per:
+
+
+ Notes
+ Notes
+
+
+
Create a new Post
-
+
RetroShare
RetroShare
@@ -16949,22 +18442,12 @@ p, li { white-space: pre-wrap; }
-
- Error while creating post
-
-
-
-
- An error occurred while creating the post.
-
-
-
-
+
Load Picture File
Carrega arxiu d'imatge
-
+
Post image
@@ -16980,17 +18463,7 @@ p, li { white-space: pre-wrap; }
-
- No clipboard image found.
-
-
-
-
- There is no image data in the clipboard to paste
-
-
-
-
+
Close this window?
@@ -17000,7 +18473,23 @@ p, li { white-space: pre-wrap; }
-
+ Submit Post
+ Publica entrada
+
+
+ You are submitting a link. The key to a successful submission is interesting content and a descriptive title.
+ EstĆ s enviant un enllaƧ. La clau per a que tingui ĆØxit Ć©s un contingut interessant i un tĆtol descriptiu.
+
+
+ Submit
+ Publica
+
+
+ Submit a new Post
+ Publica una entrada nova
+
+
+
Please add a Title
Si us plau, afegeix un tĆtol
@@ -17020,22 +18509,12 @@ p, li { white-space: pre-wrap; }
-
+
Post size is limited to 32 KB, pictures will be downscaled.
-
- Paste image from clipboard
-
-
-
-
- Paste Picture
-
-
-
-
+
Remove image
@@ -17050,7 +18529,7 @@ p, li { white-space: pre-wrap; }
Publica com
-
+
Post
@@ -17061,7 +18540,7 @@ p, li { white-space: pre-wrap; }
Imatge
-
+
You are submitting a post. The key to a successful submission is interesting content and a descriptive title.
@@ -17071,7 +18550,7 @@ p, li { white-space: pre-wrap; }
TĆtol
-
+
Link
EnllaƧ
@@ -17079,12 +18558,44 @@ p, li { white-space: pre-wrap; }
PostedDialog
-
- <h1><img width="%1" src=":/icons/help_64.png"> Boards</h1><p>The Boards service allows you to share images, blog posts & internet links, that spread among Retroshare nodes like forums and channels</p><p>Posts can be commented by subscribed users. A promotion system also gives the opportunity to enlight important links.</p><p>There is no restriction on which links are shared. Be careful when clicking on them.</p><p>Boards are kept for %2 days, and sync-ed over the last %3 days, unless you change this.</p>
+ Posted Links
+ EnllaƧos publicats
+
+
+ <h1><img width="32" src=":/icons/help_64.png"> Posted</h1> <p>The posted service allows you to share internet links, that spread among Retroshare nodes like forums and channels</p> <p>Links can be commented by subscribed users. A promotion system also gives the opportunity to enlight important links.</p> <p>There is no restriction on which links are shared. Be careful when clicking on them.</p> <p>Posted links are kept for %1 days, and sync-ed over the last %2 days, unless you change this.</p>
+ <h1><img width="32" src=":/images/help_64.png"> Publicacions</h1> <p>El servei de publicacions et permet compartir enllaços d'Internet que es distribueixen entre els nodes de Retroshare com si fos un fòrum o canal</p> <p>Els enllaços poden ser comentats pels usuaris subscrits. També hi ha un sistema de promoció que permet destacar enllaços importants.</p> <p>No hi ha cap restricció en quins enllaços es comparteixen. Sigues curós al fer clic en ells.</p> <p>Els enllaços publicats es mantenen durant %1 dies i es sincronitzen durant els últims %2 dies, a no ser que ho canviïs.</p>
+
+
+ Create Topic
+ Crear tema
+
+
+ My Topics
+ Els meus temes
+
+
+ Subscribed Topics
+ Temes subscrits
+
+
+ Popular Topics
+ Temes populars
+
+
+ Other Topics
+ Altres temes
+
+
+ Links
+ EnllaƧos
+
+
+
+ <h1><img width="32" src=":/icons/help_64.png"> Boards</h1> <p>The Boards service allows you to share images, blog posts & internet links, that spread among Retroshare nodes like forums and channels</p> <p>Posts can be commented by subscribed users. A promotion system also gives the opportunity to enlight important links.</p> <p>There is no restriction on which links are shared. Be careful when clicking on them.</p> <p>Boards are kept for %1 days, and sync-ed over the last %2 days, unless you change this.</p>
-
+
Boards
@@ -17118,7 +18629,31 @@ p, li { white-space: pre-wrap; }
PostedGroupDialog
-
+ Posted Topic
+ Tema publicat
+
+
+ Add Topic Admins
+ Afegir administradors de tema
+
+
+ Select Topic Admins
+ Seleccionar administradors de tema
+
+
+ Create New Topic
+ Crear nou tema
+
+
+ Edit Topic
+ Editar tema
+
+
+ Update Topic
+ Actualitzar tema
+
+
+
Create New Board
@@ -17156,17 +18691,7 @@ p, li { white-space: pre-wrap; }
PostedGroupItem
-
- Last activity
-
-
-
-
- TextLabel
-
-
-
-
+
Subscribe to Posted
Subscriure's als publicats
@@ -17182,7 +18707,7 @@ p, li { white-space: pre-wrap; }
-
+
Expand
Ampliar
@@ -17197,17 +18722,24 @@ p, li { white-space: pre-wrap; }
-
+ Posted Description
+ Descripció dels publicats
+
+
+ Loading
+ Carregant
+
+
+ New Posted
+ Publicats nous
+
+
+
Loading...
-
- Never
- Mai
-
-
-
+
New Board
@@ -17220,18 +18752,22 @@ p, li { white-space: pre-wrap; }
PostedItem
-
+
0
0
-
-
+ Site
+ Lloc
+
+
+
+
Comments
Comentaris
-
+
Copy RetroShare Link
Copia l'enllaƧ RetroShare
@@ -17242,12 +18778,12 @@ p, li { white-space: pre-wrap; }
-
+
Comment
Comentari
-
+
Comments
Comentaris
@@ -17257,7 +18793,7 @@ p, li { white-space: pre-wrap; }
<p><font color="#ff0000"><b>L'autor d'aquest missatge (amb Id %1) estĆ expulsat.</b>
-
+
Click to view Picture
@@ -17267,17 +18803,21 @@ p, li { white-space: pre-wrap; }
Amagar
-
+
Vote up
Votar positiu
-
+
Vote down
Votar negatiu
-
+ \/
+ \/
+
+
+
Set as read and remove item
Marcar com llegit i eliminar l'element
@@ -17287,7 +18827,7 @@ p, li { white-space: pre-wrap; }
Nou
-
+
New Comment:
Nou comentari:
@@ -17297,7 +18837,7 @@ p, li { white-space: pre-wrap; }
Valor del comentari
-
+
Name
Nom
@@ -17338,10 +18878,77 @@ p, li { white-space: pre-wrap; }
-
+
Loading
Carregant
+
+ By
+ Per
+
+
+
+ PostedListWidget
+
+ Form
+ Formulari
+
+
+ Hot
+ Calent
+
+
+ New
+ Nou
+
+
+ Top
+ Capdamunt
+
+
+ Today
+ Avui
+
+
+ Yesterday
+ Ahir
+
+
+ This Week
+ Aquesta setmana
+
+
+ This Month
+ Aquest mes
+
+
+ This Year
+ Aquest any
+
+
+ Submit a new Post
+ Publica una entrada nova
+
+
+ Next
+ Següent
+
+
+ RetroShare
+ RetroShare
+
+
+ Please create or choose a Signing Id before Voting
+ Si us plau, crea o escull una Id signant abans de votar
+
+
+ Previous
+ Previ
+
+
+ 1-10
+ 1-10
+
PostedListWidgetWithModel
@@ -17353,7 +18960,7 @@ p, li { white-space: pre-wrap; }
Details
- Detalls
+
@@ -17361,17 +18968,7 @@ p, li { white-space: pre-wrap; }
-
- <html><head/><body><p>Maximum number of data items (including posts, comments, votes) across friend nodes.</p></body></html>
-
-
-
-
- Items (at friends):
-
-
-
-
+
0
0
@@ -17381,15 +18978,15 @@ p, li { white-space: pre-wrap; }
Administrador:
-
+
-
+
unknown
desconegut
-
+
Distribution:
Distribució:
@@ -17399,42 +18996,42 @@ p, li { white-space: pre-wrap; }
-
+
Created
-
+
TextLabel
-
+
Popularity:
-
+
+ Contributions:
+
+
+
+
Sync period:
-
- Number of subscribed friend nodes
-
-
-
-
+
Posts
Publicacions
-
+
Create Post
-
+
<html><head/><body><p><span style=" font-family:'-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol'; font-size:14pt; color:#24292e; background-color:#ffffff;">Select sorting</span></p></body></html>
@@ -17454,7 +19051,7 @@ p, li { white-space: pre-wrap; }
Calent
-
+
Search
@@ -17484,17 +19081,17 @@ p, li { white-space: pre-wrap; }
-
+
No files in this post, or no post selected
-
+
No posts available in this board
-
+
Click to switch to card view
@@ -17509,17 +19106,12 @@ p, li { white-space: pre-wrap; }
Buit
-
+
Copy RetroShare Link
Copia l'enllaƧ RetroShare
-
- Copy http Link
-
-
-
-
+
Show author in People tab
@@ -17529,31 +19121,27 @@ p, li { white-space: pre-wrap; }
Editar
-
-
+
information
informació
-
-
+
The Retrohare link was copied to your clipboard.
-
-
+
Link creation error
-
-
+
Link could not be created:
-
+
[No name]
@@ -17568,7 +19156,7 @@ p, li { white-space: pre-wrap; }
Subscriure's
-
+
Never
Mai
@@ -17642,16 +19230,6 @@ p, li { white-space: pre-wrap; }
No Channel Selected
No hi ha canal seleccionat
-
-
- Could not vote
-
-
-
-
- Error occured while voting:
-
-
PostedPage
@@ -17660,6 +19238,14 @@ p, li { white-space: pre-wrap; }
Tabs
Pestanyes
+
+ Open each topic in a new tab
+ Obrir cada tema en una nova pestanya
+
+
+ Links
+ EnllaƧos
+
Open each board in a new tab
@@ -17673,6 +19259,10 @@ p, li { white-space: pre-wrap; }
PostedUserNotify
+
+ Posted
+ Enviat
+
Board Post
@@ -17741,17 +19331,25 @@ p, li { white-space: pre-wrap; }
Directori de perfils
-
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:11pt;">Select a Retroshare node key from the list below to be used on another computer, and press "Export selected key."</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:11pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:11pt;">To create a new location on a different computer, select the identity manager in the login window. From there you can import the key file and create a new location for that key. </span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:11pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:11pt;">Creating a new node with the same key allows your friend nodes to accept you automatically.</span></p></body></html>
-
+</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Select a Retroshare node key from the list below to be used on another computer, and press "Export selected key."</p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">To create a new location on a different computer, select the identity manager in the login window. From there you can import the key file and create a new location for that key. </p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Creating a new node with the same key allows your friend nodes to accept you automatically.</p></body></html>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Selecciona una clau de node de RetroShare de la llista inferior per ser utilitzada en un altre ordinador, i prem "Exportar clau seleccionada."</p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Per crear una nova ubicació en un altre ordinador, selecciona el gestor de identitats en el dià leg d'entrada. Des d'allà podràs importar l'arxiu de clau i crear una nova ubicació per aquella clau.</p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Crear un node nou amb la mateixa clau fa que els nodes dels teus amics acceptin el nou node automĆ ticament.</p></body></html>
@@ -17861,7 +19459,7 @@ i utilitzar el botó d'importació per carregar-lo
ProfileWidget
-
+
Edit status message
Editar missatge d'estat
@@ -17877,7 +19475,7 @@ i utilitzar el botó d'importació per carregar-lo
Directori de perfils
-
+
Public Information
Informació pública
@@ -17912,12 +19510,12 @@ i utilitzar el botó d'importació per carregar-lo
En lĆnia des de:
-
+
Other Information
Altra informació
-
+
My Address
La meva adreƧa
@@ -17961,27 +19559,51 @@ i utilitzar el botó d'importació per carregar-lo
PulseAddDialog
-
+ Post From:
+ Entrada de:
+
+
+ Account 1
+ Compte 1
+
+
+ Account 2
+ Compte 2
+
+
+ Account 3
+ Compte 3
+
+
+
Add to Pulse
Afegir al Pols
-
+ filter
+ filtre
+
+
+ URL Adder
+ Afegidor d'URL
+
+
+
Display As
Mostra com
-
+
URL
URL
-
+
GroupLabel
-
+
IDLabel
@@ -17991,12 +19613,12 @@ i utilitzar el botó d'importació per carregar-lo
De:
-
+
Head
-
+
Head Shot
@@ -18026,13 +19648,13 @@ i utilitzar el botó d'importació per carregar-lo
Negatiu
-
-
+
+
Whats happening?
-
+
@@ -18044,22 +19666,12 @@ i utilitzar el botó d'importació per carregar-lo
-
- Remove all images
-
-
-
-
+
Clear Display As
-
- Add Picture
-
-
-
-
+
Post
@@ -18068,13 +19680,17 @@ i utilitzar el botó d'importació per carregar-lo
Cancel
CancelĀ·la
+
+ Post Pulse to Wire
+ Publica Pols a Wire
+
Post
-
+
Reply to Pulse
@@ -18089,24 +19705,34 @@ i utilitzar el botó d'importació per carregar-lo
-
+
Like Pulse
-
+
Hide Pictures
-
+
Add Pictures
+
+
+ PulseItem
-
- Load Picture File
- Carrega arxiu d'imatge
+ From
+ Des de
+
+
+ Date
+ Data
+
+
+ ...
+ ...
@@ -18117,7 +19743,7 @@ i utilitzar el botó d'importació per carregar-lo
Formulari
-
+
@@ -18136,7 +19762,7 @@ i utilitzar el botó d'importació per carregar-lo
PulseReply
-
+
icn
@@ -18146,7 +19772,7 @@ i utilitzar el botó d'importació per carregar-lo
-
+
REPLY
@@ -18173,7 +19799,7 @@ i utilitzar el botó d'importació per carregar-lo
-
+
FOLLOW
@@ -18183,7 +19809,7 @@ i utilitzar el botó d'importació per carregar-lo
-
+
<html><head/><body><p><span style=" font-weight:600;">Sidler</span></p></body></html>
@@ -18203,7 +19829,7 @@ i utilitzar el botó d'importació per carregar-lo
-
+
<html><head/><body><p><span style=" color:#555753;">Replying to @sidler</span></p></body></html>
@@ -18319,7 +19945,7 @@ i utilitzar el botó d'importació per carregar-lo
-
+
FOLLOW
@@ -18327,42 +19953,37 @@ i utilitzar el botó d'importació per carregar-lo
PulseViewGroup
-
+
headshot
-
+
<html><head/><body><p><span style=" color:#555753;">@sidler_here</span></p></body></html>
-
+
<html><head/><body><p><span style=" font-weight:600;">Sidler</span></p></body></html>
-
+
<html><head/><body><p><span style=" color:#2e3436;">3:58 AM Ā· Apr 13, 2020 Ā·</span></p></body></html>
-
+
Location
-
- Edit profile
-
-
-
-
+
Tag Line
-
+
<html><head/><body><p><span style=" font-weight:600;">1.2K</span></p></body></html>
@@ -18394,7 +20015,7 @@ i utilitzar el botó d'importació per carregar-lo
-
+
FOLLOW
@@ -18402,8 +20023,8 @@ i utilitzar el botó d'importació per carregar-lo
QObject
-
-
+
+
Confirmation
Confirmació
@@ -18674,12 +20295,12 @@ Els carĆ cters <b>",|,/,\,<>,*,?</b> es substitui
Detalls del contacte
-
+
File Request canceled
Petició d'arxiu cancel·lada
-
+
This version of RetroShare is using OpenPGP-SDK. As a side effect, it's not using the system shared PGP keyring, but has it's own keyring shared by all RetroShare instances. <br><br>You do not appear to have such a keyring, although PGP keys are mentioned by existing RetroShare accounts, probably because you just changed to this new version of the software.
Aquesta versió de RetroShare utilitza l'OpenPGP-SDK. Com a efecte secundari no utilitza el clauer PGP del sistema, sinó un clauer compartit per totes les instancies de RetroShare. <br><br>No sembla que tinguis aquest clauer, tot i que tens claus PGP als comptes existents de RetroShare, probablement perquè acabes de canviar a aquesta nova versió del programa.
@@ -18710,7 +20331,7 @@ Els carĆ cters <b>",|,/,\,<>,*,?</b> es substitui
S'ha produĆÆt un error inesperat. Si us plau, informa 'RsInit::InitRetroShare unexpected return code %1'.
-
+
Cannot start Tor Manager!
No es pot iniciar "Tor Manager"!
@@ -18748,7 +20369,7 @@ L'error reportat Ʃs:"
No ha estat possible iniciar un servei ocult.
-
+
Multiple instances
MĆŗltiples instancies
@@ -18769,26 +20390,6 @@ Arxiu bloquejant:\n
Hi ha hagut un error inesperat quan el RetroShare intentava obtenir el bloqueig d'instĆ ncia Ćŗnica
Arxiu de bloqueig:\n
-
-
- Old certificate
-
-
-
-
- This node uses old certificate settings that are considered too weak by your current OpenSSL library version. You need to create a new node possibly using the same profile.
-
-
-
-
- Tor error
-
-
-
-
- Cannot run/configure Tor. Make sure it is installed on your system.
-
-
Distant peer has closed the chat
@@ -18809,6 +20410,14 @@ Arxiu de bloqueig:\n
End-to-end encrypted conversation established
+
+ Tunnel is pending... Messages will be delivered as soon as possible
+ Túnel pendent... Els missatges s'entregaran el més aviat possible
+
+
+ Secured tunnel is working. Messages are delivered immediately!
+ TĆŗnel segur establert. Els missatges s'entregaran immediatament!
+
The collection file %1 could not be opened.
@@ -18871,7 +20480,7 @@ L'error reportat Ʃs:
Dades reenviades
-
+
You appear to have nodes associated to DSA keys:
Sembla que tens nodes associats a claus DSA:
@@ -18881,7 +20490,7 @@ L'error reportat Ʃs:
Les claus DSA encara no són suportades en aquesta versió de RetroShare. Tots aquests nodes no es podran utilitzar. Ho sentim molt.
-
+
enabled
activat
@@ -18891,7 +20500,7 @@ L'error reportat Ʃs:
desactivat
-
+
Move IP %1 to whitelist
Mou la IP %1 a la llista blanca
@@ -18907,7 +20516,7 @@ L'error reportat Ʃs:
-
+
%1 seconds ago
fa %1 segons
@@ -18975,7 +20584,7 @@ Security: no anonymous IDs
Seguretat: IDs anònimes no
-
+
Join chat room
Afegeix-te a la sala de xat
@@ -19003,7 +20612,7 @@ Seguretat: IDs anònimes no
no s'ha pogut interpretar l'arxiu XML!
-
+
Indefinitely
Indefinidament
@@ -19183,29 +20792,13 @@ Seguretat: IDs anònimes no
Ban list
-
-
- Name
- Nom
-
- Node
- Node
-
-
-
- Address
- AdreƧa
-
-
-
-
Status
Estat
-
+
NXS
@@ -19398,6 +20991,10 @@ Seguretat: IDs anònimes no
Click to resume the hashing process
Clica per continuar amb el cĆ lcul de hash
+
+ <p>This certificate contains:
+ <p>Aquest certificat contƩ:
+
Idle
@@ -19448,18 +21045,6 @@ Seguretat: IDs anònimes no
Server
-
-
-
- Missing channel post
-
-
-
-
-
- [System]
-
-
QuickStartWizard
@@ -19622,7 +21207,7 @@ p, li { white-space: pre-wrap; }
-
+
Network Wide
Tota la xarxa
@@ -19805,7 +21390,7 @@ p, li { white-space: pre-wrap; }
Formulari
-
+
The loading of embedded images is blocked.
La cĆ rrega d'imatges incrustades estĆ bloquejada.
@@ -19818,7 +21403,7 @@ p, li { white-space: pre-wrap; }
RSPermissionMatrixWidget
-
+
Allowed by default
PermĆØs per defecte
@@ -19991,22 +21576,12 @@ p, li { white-space: pre-wrap; }
RSTextBrowser
-
+
View &Source
-
- Save image
- Desar imatge
-
-
-
- Copy image
-
-
-
-
+
Document source
@@ -20014,12 +21589,12 @@ p, li { white-space: pre-wrap; }
RSTreeWidget
-
+
Tree View Options
Opcions de la vista d'arbre
-
+
Show Header
@@ -20049,6 +21624,14 @@ p, li { white-space: pre-wrap; }
Show column ā¦
+
+ Show column...
+ Mostrar columna...
+
+
+ [no title]
+ [sense tĆtol]
+
RatesStatus
@@ -20711,7 +22294,7 @@ Si creus que Ć©s correcta, treu la lĆnia corresponent de l'arxiu i torna&a
RsDownloadListModel
-
+
Name
i.e: file name
Nom
@@ -20832,7 +22415,7 @@ Si creus que Ć©s correcta, treu la lĆnia corresponent de l'arxiu i torna&a
RsFriendListModel
-
+
Name
Nom
@@ -20852,7 +22435,7 @@ Si creus que Ć©s correcta, treu la lĆnia corresponent de l'arxiu i torna&a
IP
-
+
Profile ID
@@ -20908,7 +22491,7 @@ prevents the message to be forwarded to your friends.
El missatge es propagarĆ als teus amics.
-
+
[ ... Redacted message ... ]
[ ... Missatge modificat ... ]
@@ -20922,6 +22505,11 @@ prevents the message to be forwarded to your friends.
[Unknown]
[Desconegut]
+
+
+ [ ... Missing Message ... ]
+ [ ... Missatge perdut ... ]
+
RsMessageModel
@@ -20935,11 +22523,6 @@ prevents the message to be forwarded to your friends.
From
Des de
-
-
- To
- A
-
Subject
@@ -20962,18 +22545,13 @@ prevents the message to be forwarded to your friends.
- Click to sort by read status
-
+ Click to sort by read
+ Clica per ordenar per llegits
- Click to sort by author
-
-
-
-
- Click to sort by destination
-
+ Click to sort by from
+ Clica per ordenar pel remitent
@@ -20996,9 +22574,7 @@ prevents the message to be forwarded to your friends.
-
-
-
+
[Notification]
@@ -21019,7 +22595,7 @@ prevents the message to be forwarded to your friends.
Rshare
-
+
Resets ALL stored RetroShare settings.
Reinicialitza TOTS les valors de configuració del RetroShare.
@@ -21080,7 +22656,7 @@ prevents the message to be forwarded to your friends.
Defineix la llengua del RetroShare.
-
+
Unable to open log file '%1': %2
IncapaƧ d'obrir l'arxiu de registre '%1': %2
@@ -21101,7 +22677,11 @@ prevents the message to be forwarded to your friends.
No s'ha pogut crear el directori de dades: %1
-
+ Revision
+ Revisió
+
+
+
opmode
ModeOp
@@ -21131,7 +22711,7 @@ prevents the message to be forwarded to your friends.
Informació d'ús de la IGU de RetroShare
-
+
Invalid language code specified:
El codi d'idioma especificat no és và lid:
@@ -21149,7 +22729,7 @@ prevents the message to be forwarded to your friends.
RshareSettings
-
+
Registry Access Error. Maybe you need Administrator right.
Error d'accƩs al registre. Potser necessitis drets d'administrador.
@@ -21166,12 +22746,12 @@ prevents the message to be forwarded to your friends.
SearchDialog
-
+
Enter a keyword here (at least 3 char long)
Inserir una paraula clau aquĆ (com a mĆnim 3 carĆ cters de longitud)
-
+
Start Search
Iniciar cerca
@@ -21233,7 +22813,7 @@ prevents the message to be forwarded to your friends.
Neteja
-
+
KeyWords
Paraules Clau
@@ -21248,7 +22828,7 @@ prevents the message to be forwarded to your friends.
Id cerca
-
+
Filename
Nom d'arxiu
@@ -21348,23 +22928,23 @@ prevents the message to be forwarded to your friends.
Descarregar seleccionats
-
+
File Name
Nom d'arxiu
-
+
Download
Descarregar
-
+
Copy RetroShare Link
Copia l'enllaƧ RetroShare
-
+
Send RetroShare Link
Enviar enllaƧ RetroShare
@@ -21374,7 +22954,7 @@ prevents the message to be forwarded to your friends.
-
+
Download Notice
AvĆs de descarrega
@@ -21411,7 +22991,7 @@ prevents the message to be forwarded to your friends.
Suprimeix-ho tot
-
+
Folder
Directori
@@ -21422,17 +23002,17 @@ prevents the message to be forwarded to your friends.
-
+
New RetroShare Link(s)
EnllaƧ(os) RetroShare nou(s)
-
+
Open Folder
Obrir directori
-
+
Create Collection...
Crear col·lecció...
@@ -21452,7 +23032,7 @@ prevents the message to be forwarded to your friends.
Descarregar d'arxiu de col·lecció...
-
+
Collection
Col·lecció
@@ -21460,7 +23040,7 @@ prevents the message to be forwarded to your friends.
SecurityIpItem
-
+
Peer details
Detalls del contacte
@@ -21476,22 +23056,22 @@ prevents the message to be forwarded to your friends.
Eliminar l'element
-
+
IP address:
AdreƧa IP:
-
+
Peer ID:
ID del contacte:
-
+
Location:
Ubicació:
-
+
Peer Name:
Nom del contacte:
@@ -21508,7 +23088,7 @@ prevents the message to be forwarded to your friends.
Amagar
-
+
but reported:
però reportat:
@@ -21533,8 +23113,8 @@ prevents the message to be forwarded to your friends.
<p>Aquesta Ć©s la IP que el teu amic diu estar connectat. Si just has canviat d'IP això Ć©s un fals avĆs. Si no, significa que la teva connexió amb aquest amic estĆ sent encaminada per un contacte intermig, que seria sospitós.</p>
-
-
+
+
<html><head/><body><p>This warning is here to protect you against traffic forwarding attacks. In such a case, the friend you're connected to will not see your external IP, but the attacker's IP. </p><p><br/></p><p>However, if you just changed IPs for some reason (some ISPs regularly force change IPs) this warning just tells you that a friend connected to the new IP before Retroshare figured out the IP changed. Nothing's wrong in this case.</p><p><br/></p><p>You can easily suppress false warnings by white-listing your own IPs (e.g. the range of your ISP), or by completely disabling these warnings in Options->Notify->News Feed.</p></body></html>
<html><head/><body><p>Aquest avĆs apareix per protegir-te contra atacs de reenviament. En tal cas, l'amic amb qui estĆ s connectat veurĆ la IP de l'atacant, no la teva IP externa.</p><p><br/></p><p>No obstant, si acabes de canviar la teva IP per qualsevol motiu (alguns proveĆÆdors forcen el canvi d'IP regularment) aquest avĆs nomĆ©s t'indica que t'has connectat amb el teu amic abans que el RetroShare hagi notat el canvi d'IP. Res malament en tal cas.</p><p><br/></p><p>Pots evitar fĆ cilment els falsos avisos afegint a la llista blanca les teves IPs (Ex.:El rang d'IPs del teu proveĆÆdor) o deshabilitant completament aquests avisos a Opcions->Notificar->Novetats.</p></body></html>
@@ -21542,7 +23122,7 @@ prevents the message to be forwarded to your friends.
SecurityItem
-
+
wants to be friend with you on RetroShare
vol ser amic teu al RetroShare
@@ -21573,7 +23153,7 @@ prevents the message to be forwarded to your friends.
-
+
Expand
Ampliar
@@ -21618,12 +23198,12 @@ prevents the message to be forwarded to your friends.
Estat:
-
+
Write Message
Escriure missatge
-
+
Connect Attempt
Intent de connexió
@@ -21643,22 +23223,17 @@ prevents the message to be forwarded to your friends.
Intent de connexió (Sortint) desconegut
-
+
Unknown Security Issue
Problema de seguretat desconegut
-
- SSL request
+
+ A unknown peer
-
- An unknown peer
-
-
-
-
+
Unknown
Desconegut
@@ -21668,7 +23243,11 @@ prevents the message to be forwarded to your friends.
-
+ Unknown Peer
+ Contacte desconegut
+
+
+
Hide
Amagar
@@ -21678,7 +23257,7 @@ prevents the message to be forwarded to your friends.
Voleu suprimir aquest amic?
-
+
Certificate has wrong signature!! This peer is not who he claims to be.
El certificat tƩ una signatura incorrecta!! Aquest contacte no Ʃs qui diu ser.
@@ -21688,12 +23267,12 @@ prevents the message to be forwarded to your friends.
Certificat perdut/danyat. No Ʃs un usuari de RetroShare.
-
+
Certificate caused an internal error.
El certificat a provocat un error intern.
-
+
Peer/node not in friendlist (PGP id=
El contacte/node no Ʃs a la llista d'amics (Id PGP=
@@ -21752,12 +23331,12 @@ prevents the message to be forwarded to your friends.
-
+
Local Address
AdreƧa local
-
+
NAT
NAT
@@ -21778,22 +23357,22 @@ prevents the message to be forwarded to your friends.
Port:
-
+
Local network
Xarxa local
-
+
External ip address finder
Cercador d'adreƧa IP externa
-
+
UPnP
UPnP
-
+
Known / Previous IPs:
Conegudes / IPs previes:
@@ -21809,16 +23388,21 @@ connectar-te quan tens pocs amics. També ajuda si estàs darrera
d'un tallafocs o una VPN.
-
-
-
+
+ Allow RetroShare to ask my ip to these websites:
+ Permet que el RetroShare pregunti la meva IP a aquests llocs web:
+
+
+
+
+
kB/s
kB/s
-
+
Acceptable ports range from 10 to 65535. Normally Ports below 1024 are reserved by your system.
El rang de ports acceptats va de 10 fins 65535. Normalment els ports per sota 1024 estan reservats pel teu sistema.
@@ -21828,46 +23412,23 @@ d'un tallafocs o una VPN.
El rang de ports acceptables va de 1024 a 65535. Els ports per sota 1024 estan reservats pel teu sistema.
-
+
Onion Address
AdreƧa Onion
-
+
Discovery On (recommended)
Descobriment activat (Recomanat)
-
+
Tor has been automatically configured by Retroshare. You shouldn't need to change anything here.
S'ha configurat Tor automĆ ticament per part de Retroshare. No hauria de fer falta que canviessis res aquĆ.
-
- sec
-
-
-
-
- local
-
-
-
-
- external
-
-
-
-
-
-
-List of found external IP:
-
-
-
-
-
+
Discovery Off
Descobriment desactivat
@@ -21877,7 +23438,7 @@ List of found external IP:
Ocult - Mira la configuració
-
+
I2P Address
AdreƧa I2P
@@ -21902,95 +23463,41 @@ List of found external IP:
Entrants correctes
-
-
-
+
+
Proxy seems to work.
El repetidor sembla que funciona
-
-
+
I2P proxy is not enabled
El repetidor I2P no estĆ activat
-
- SAMv3 is running and accessible
-
+
+ BOB is running and accessible
+ BOB estĆ en funcionament i accessible
- SAMv3 is not accessible! Is i2p running and SAM enabled?
-
+ BOB is not accessible! Is it running?
+ No es pot accedir a BOB! EstĆ en funcionament?
-
- Your key uses the following algorithms: %1 and %2
-
-
-
-
-
- unkown key type
-
-
-
-
- RetroShare uses SAMv3 to set up a %1 tunnel at %2:%3
-(id: %4)
+
+ RetroShare uses BOB to set up a %1 tunnel at %2:%3 (named %4)
-When changing options use the buttons at the bottom to restart SAMv3.
+When changing options (e.g. port) use the buttons at the bottom to restart BOB.
-
+ RetroShare utilitza BOB per establir a %1 tĆŗnel a %2:%3 (anomenat %4)
+
+Quan es canvien opcions (per exemple el port) utilitza els botons inferiors per reiniciar BOB.
+
+
-
- Offline, no SAM session is established yet.
-
-
-
-
-
- SAM is trying to establish a session ... this can take some time.
-
-
-
-
-
- SAM session established! Now setting up a forward session ...
-
-
-
-
-
- Online, SAM is working as exptected
-
-
-
-
-
- You key uses %1 for signing and %2 for crypto
-
-
-
-
- stop SAM tunnel first to generate a new key
-
-
-
-
- stop SAM tunnel first to load a key
-
-
-
-
- stop SAM tunnel first to disable SAM
-
-
-
-
+
client
client
@@ -22005,7 +23512,73 @@ When changing options use the buttons at the bottom to restart SAMv3.
desconegut
-
+
+
+
+ BOB is processing a request
+ BOB està processant una petició
+
+
+
+ connectivity check
+ comprovació de connectivitat
+
+
+
+ generating key
+ generant clau
+
+
+
+ starting up
+ iniciant
+
+
+
+ shuting down
+ apagant
+
+
+
+ BOB is processing a request: %1
+ BOB està processant una petició: %1
+
+
+
+ BOB is broken
+
+ BOB estĆ trencat
+
+
+
+
+ BOB encountered an error:
+
+ BOB ha trobat un error:
+
+
+
+
+ BOB tunnel is running
+ El tĆŗnel BOB estĆ funcionant
+
+
+
+ BOB is working fine: tunnel established
+ BOB funciona correctament: tĆŗnel establert
+
+
+
+ BOB tunnel is not running
+ El tĆŗnel BOB no estĆ funcionant
+
+
+
+ BOB is inactive: tunnel closed
+ BOB és inactiu: túnel tancat
+
+
+
request a new server key
demana una clau nova de servidor
@@ -22015,7 +23588,22 @@ When changing options use the buttons at the bottom to restart SAMv3.
carrega una clau de servidor de base64
-
+
+ stop BOB tunnel first to generate a new key
+ para el tĆŗnel BOB per generar abans una clau nova
+
+
+
+ stop BOB tunnel first to load a key
+ Para tĆŗnel BOB abans per carregar una clau
+
+
+
+ stop BOB tunnel first to disable BOB
+ para el tĆŗnel BOB abans per desactivar BOB
+
+
+
You are reachable through the hidden service.
Se't pot contactar a travƩs d'un servei ocult.
@@ -22029,12 +23617,12 @@ Estan tots els serveis funcionant correctament??
Comprova els teus ports!
-
+
[Hidden mode]
[Node ocult]
-
+
<html><head/><body><p>This clears the list of known addresses. This action is useful if for some reason your address list contains an invalid/irrelevant/expired address that you want to avoid passing to your friends as a contact address.</p></body></html>
<html><head/><body><p>Això buida la llista d'adreces conegudes. Això és útil si per alguna rao la teva llista d'adreces conté una adreça invà lida/irrellevant/caducada que vols evitar passar als teus amics com una adreça de contacte.</p></body></html>
@@ -22044,7 +23632,7 @@ Comprova els teus ports!
Neteja
-
+
Download limit (KB/s)
LĆmit de baixada (KiB/s)
@@ -22059,24 +23647,24 @@ Comprova els teus ports!
LĆmit de pujada (KiB/s)
-
+
<html><head/><body><p>The upload limit covers the entire software. Too small an upload limit might eventually block low priority services (forums, channels). A minimum recommended value is 50KB/s. </p></body></html>
<html><head/><body><p>El lĆmit de pujada afecta a tota l'aplicació. Un lĆmit de pujada massa baix pot bloquejar eventualment serveis de baixa prioritat (Fòrums, canals). El valor mĆnim recomanat Ć©s de 50 KiB/s. </p></body></html>
-
+
WARNING:
These values don't take into account the Relays.
AVĆS:
Aquests valors no tenen en compte els Repetidors.
-
+
<html><head/><body><p>Configure your Tor and I2P SOCKS proxy here. It will allow you to also connect </p><p>to hidden nodes.</p></body></html>
-
+
Tor Socks Proxy default: 127.0.0.1:9050. Set in torrc config and update here.
I2P Socks Proxy: see http://127.0.0.1:7657/i2ptunnelmgr for setting up a client tunnel:
@@ -22093,7 +23681,17 @@ Ara introdueix l'adreƧa (e.g. 127.0.0.1) i el port que has escullit abans
Pots connectar-te a nodes ocults, encara que estiguis en un node estĆ ndard, aixĆ que perquĆØ no configurar Tor i/o I2P?
-
+
+ Automatic I2P/BOB
+ I2P/BOB automĆ tic
+
+
+
+ Enable I2P BOB - changing this requires a restart to fully take effect
+ Activa I2P BOB - canviar això necessita que reiniciïs per tindre efecte
+
+
+
enableds advanced settings
activar opcions avanƧades
@@ -22103,7 +23701,12 @@ Pots connectar-te a nodes ocults, encara que estiguis en un node estĆ ndard, aix
mode avanƧat
-
+
+ I2P Basic Open Bridge
+ Pont Obert I2P BĆ sic
+
+
+
I2P Instance address
AdreƧa instancia I2P
@@ -22113,7 +23716,17 @@ Pots connectar-te a nodes ocults, encara que estiguis en un node estĆ ndard, aix
127.0.0.1
-
+
+ I2P proxy port
+ Port del proxy I2P
+
+
+
+ BOB accessible
+ BOB accessible
+
+
+
Address
AdreƧa
@@ -22153,7 +23766,7 @@ Pots connectar-te a nodes ocults, encara que estiguis en un node estĆ ndard, aix
carrega clau
-
+
Start
ComenƧar
@@ -22168,7 +23781,12 @@ Pots connectar-te a nodes ocults, encara que estiguis en un node estĆ ndard, aix
Atura
-
+
+ BOB status
+ Estat del BOB
+
+
+
Incoming
Entrants
@@ -22216,32 +23834,7 @@ Finalment assegurat que els ports coincideixen amb la configuració.
Si tens problemes connectant-te sobre Tor comprova tambƩ els registres de Tor.
-
- Automatic I2P
-
-
-
-
- Enable I2P SAMv3 - changing this requires a restart to fully take effect
-
-
-
-
- I2P Simple Anonymous Messaging
-
-
-
-
- SAM accessible
-
-
-
-
- SAM status
-
-
-
-
+
Relay
Repetidor
@@ -22296,7 +23889,7 @@ Si tens problemes connectant-te sobre Tor comprova tambƩ els registres de Tor.<
Total:
-
+
Warning: This bandwidth adds up to the max bandwidth.
AvĆs: Aquest ample de banda es sumarĆ a l'ample de banda mĆ xim.
@@ -22321,7 +23914,7 @@ Si tens problemes connectant-te sobre Tor comprova tambƩ els registres de Tor.<
Eliminar servidor
-
+
<p>By activating relays, you allow your Retroshare node to act as a bridge between Retroshare users who cannot connect directly, e.g. because they're firewalled.</p>
<p>You may choose to act as a relay by checking <i>enable relay connections</i>, or simply benefit from other peers acting as relay, by checking <i>use relay servers</i>. For the former, you may specify the bandwidth allocated when acting as a relay for friends of you, for friends of your friends, or anyone in the Retroshare network.</p>
<p>In any case, a Retroshare node acting as a relay cannot see the relayed traffic, since it is encrypted and authenticated by the two relayed nodes.</p>
@@ -22335,7 +23928,7 @@ Si tens problemes connectant-te sobre Tor comprova tambƩ els registres de Tor.<
Xarxa
-
+
IP Filters
Filtres IP
@@ -22358,7 +23951,7 @@ Si tens problemes connectant-te sobre Tor comprova tambƩ els registres de Tor.<
-
+
Status
Estat
@@ -22418,28 +24011,17 @@ Si tens problemes connectant-te sobre Tor comprova tambƩ els registres de Tor.<
Afegir a la llista blanca
-
+
Hidden Service Configuration
Configuració dels serveis ocults
-
- Allow RetroShare to ask my ip to these DNS servers:
-
-
-
-
-
- List of OpenDns servers used.
-
-
-
-
+
<html><head/><body><p>This is the port of the Tor Socks proxy. Your Retroshare node can use this port to connect to</p><p>Hidden nodes. The led at right turns green when this port is active on your computer. </p><p>This does not mean however that your Retroshare traffic transits though Tor. It does only if </p><p>you connect to Hidden nodes, or if you are running a Hidden node yourself.</p></body></html>
<html><head/><body><p></p>Aquest és el port cap al repetidor Socks de Tor. El teu node de Retroshare pot utilitzar-lo per connectar a</p><p>nodes Ocults. El llum de la dreta es tornarà verd quan el port estigui actiu en el teu ordinador.</p><p>Això no significa que el transit del teu Retroshare vagi per Tor. Només ho farà si </p><p>connectes contra nodes Ocults o estàs corrent un node Ocult tu mateix.</body></html>
-
+
<html><head/><body><p>This led is green when the port listen on the left is active on your computer. It does not</p><p>mean that your Retroshare traffic transits though Tor. It will do so only if </p><p>you connect to Hidden nodes, or if you are running a Hidden node yourself.</p></body></html>
<html><head/><body><p>El llum de l'esquerra serà verd quan el port d'entrada estigui actiu en el teu ordinador. No indica</p><p>que el teu transit de Retroshare vagi per Tor. Només ho farà si</p><p>et connectes a nodes Ocults, o si estàs corrent un node ocult tu mateix.</p></body></html>
@@ -22455,18 +24037,18 @@ Si tens problemes connectant-te sobre Tor comprova tambƩ els registres de Tor.<
-
+
<html><head/><body><p>This led is green when the port listen on the left is active on your computer. It does not</p><p>mean that your Retroshare traffic transits though I2P. It will do so only if </p><p>you connect to Hidden nodes, or if you are running a Hidden node yourself.</p></body></html>
<html><head/><body><p>El llum de l'esquerra serà verd quan el port d'entrada estigui actiu en el teu ordinador. No indica</p><p>que el teu transit de Retroshare vagi per I2P. Només ho farà si</p><p>et connectes a nodes Ocults, o si estàs corrent un node ocult tu mateix.</p></body></html>
-
+
I2P outgoing Okay
Sortints I2P correctes
-
+
Service Address
AdreƧa del servei
@@ -22501,12 +24083,12 @@ Si tens problemes connectant-te sobre Tor comprova tambƩ els registres de Tor.<
Si us plau, escriu una adreƧa de servei
-
+
IP Range
Rang IP
-
+
Reported by DHT for IP masquerading
Anunciat per DHT per enmascarament IP
@@ -22529,12 +24111,12 @@ Si tens problemes connectant-te sobre Tor comprova tambƩ els registres de Tor.<
Afegit per tu
-
+
<html><head/><body><p>White listed IPs are gathered from the following sources: IPs coming inside a manually exchanged certificate, IP ranges entered by you in this window, or in the security feed items.</p><p>The default behavior for Retroshare is to (1) always allow connection to peers with IP in the whitelist, even if that IP is also blacklisted; (2) optionally require IPs to be in the whitelist. You can change this behavior for each peer in the "Details" window of each Retroshare node. </p></body></html>
<html><head/><body><p>Mentre que les IPs llistades s'obtenen de les fonts següents: IPs d'un certificat intercanviat manualment, rangs d'IPs introduïts per tu en aquesta finestra o en els elements de seguretat de novetats</p><p>El comportament per defecte del Retroshare és (1) sempre permetre connexions a contactes amb una IP a la llista blanca, encara que també apareguin a la llista negra; (2) opcionalment es pot forçar a que les IPs hagin d'estar a la llista blanca. Pots canviar aquest comportament per cada contacte a la finestra "Detalls" de cada node de Retroshare.</p></body></html>
-
+
<html><head/><body><p>The DHT allows you to answer connection requests from your friends using BitTorrent's DHT. It greatly improves the connectivity. No information is actually stored in the DHT. It is only used as a proxy system to get in touch with other Retroshare nodes.</p><p>The Discovery service sends node name and ids of your trusted contacts to connected peers, to help them choose new friends. The friendship is never automatic however, and both peers still need to trust each other to allow connection. </p></body></html>
<html><head/><body><p>La DHT et permet respondre les peticions
de connexió dels teus amics utilitzant el protocol
@@ -22542,12 +24124,12 @@ de connexió dels teus amics utilitzant el protocol
</p><p>El servei de descobriment envia els noms dels nodes i les identitats dels teus contactes de confiança als nodes contactats, per ajudar a que escullin amics nous. No obstant, l'amistat mai és automà tica i els dos contactes encara haurien de confiar entre ells per permetre la connexió.
-
+
<html><head/><body><p>The bullet turns green as soon as Retroshare manages to get your own IP from the websites listed below, if you enabled that action. Retroshare will also use other means to find out your own IP.</p></body></html>
<html><head/><body><p>L'indicador es torna verd quan el Retroshare aconsegueix obtindre la teva pròpia IP d'una de les webs llistades, si ho tens activat. El Retroshare intentarà també utilitzar altres mètodes per obtenir la teva IP.
-
+
<html><head/><body><p>This list gets automatically filled with information gathered at multiple sources: masquerading peers reported by the DHT, IP ranges entered by you, and IP ranges reported by your friends. Default settings should protect you against large scale traffic relaying.</p><p>Automatically guessing masquerading IPs can put your friends IPs in the blacklist. In this case, use the context menu to whitelist them.</p></body></html>
<html><head/><body><p>Aquesta llista s'omple automà ticament amb informació recopilada des de múltiples fonts: contactes que fan masquerading anunciats per DHT, rangs d'IP entrats per tu, i rangs d'IP anunciats pels teus amics. La configuració per defecte hauria de protegir-te contra repetidors de trà fic massius.</p><p>Detectar automà ticament IPs que fan masquerading pot acabar posant IPs amigues a la llista negra. En tal cas, utilitza el menú contextual per afegir-los a la llista blanca.</p></body></html>
@@ -22582,22 +24164,26 @@ de connexió dels teus amics utilitzant el protocol
Expulsa automà ticament els rangs d'IP fent reenviament DHT començant a
-
+
Outgoing Manual Tor/I2P
Tor/I2P sortint manual
+
+ <html><head/><body><p>Configure your Tor and I2P SOCKS proxy here. <br/>If you prefer to use BOB to automatically manage I2P check the other tab.</p></body></html>
+ <html><head/><body><p>Configura el teu proxy SOCKS per Tor i I2P aquĆ.<br/>Si prefereixes utilitzar BOB per controlar automĆ ticament l'I2P comprova l'altra pestanya.</p></body></html>
+
Tor Socks Proxy
Repetidor socks TOR
-
+
Tor outgoing Okay
Sortints Tor correcte
-
+
Tor proxy is not enabled
El repetidor Tor no estĆ activat
@@ -22677,7 +24263,7 @@ de connexió dels teus amics utilitzant el protocol
ShareKey
-
+
check peers you would like to share private publish key with
comprovar els contactes amb qui t'agradaria compartir les claus de publicació
@@ -22687,12 +24273,12 @@ de connexió dels teus amics utilitzant el protocol
Compartit amb els amics
-
+
Share
Compartir
-
+
You can let your friends know about your Channel by sharing it with them.
Select the Friends with which you want to Share your Channel.
Pots fer que els teus amics sĆ piguen del teu canal compartint-lo amb ells.
@@ -22713,7 +24299,7 @@ Escull els amics amb qui vols compartir el teu canal.
Directori de directoris compartits
-
+
Shared directory
Directori compartit
@@ -22733,17 +24319,17 @@ Escull els amics amb qui vols compartir el teu canal.
Visibilitat
-
+
Add new
Afegir nou
-
+
Cancel
CancelĀ·la
-
+
Add a Share Directory
Afegeix un directori compartit
@@ -22753,7 +24339,7 @@ Escull els amics amb qui vols compartir el teu canal.
Treure
-
+
Apply and close
Aplicar i tancar
@@ -22844,7 +24430,7 @@ Escull els amics amb qui vols compartir el teu canal.
Directori no trobat o nom del directori no acceptat.
-
+
This is a list of shared folders. You can add and remove folders using the buttons at the bottom. When you add a new folder, intially all files in that folder are shared. You can separately setup share flags for each shared directory.
Aquesta Ć©s una llista dels directoris compartits. Pots afegir-ne i treure'n utilitzant els botons a la part inferior. Quan afegeixes un nou directori inicialment tots els seus arxius es comparteixen. Pots especificar permisos especĆfics per cada directori.
@@ -22852,7 +24438,7 @@ Escull els amics amb qui vols compartir el teu canal.
SharedFilesDialog
-
+
Files
Arxius
@@ -22903,16 +24489,11 @@ Escull els amics amb qui vols compartir el teu canal.
- <html><head/><body><p>Forces the re-check of all shared directories. While automatic file checking only cares for new/removed files for efficiency reasons, this button will force the re-scan of all files, possibly re-hashing existing files that may have changed. </p></body></html>
-
-
-
-
check files
comprovar arxius
-
+
Download selected
Descarregar seleccionats
@@ -22922,7 +24503,7 @@ Escull els amics amb qui vols compartir el teu canal.
Descarregar
-
+
Copy retroshare Links to Clipboard
Copiar enllaƧ RetroShare al porta-retalls
@@ -22937,7 +24518,7 @@ Escull els amics amb qui vols compartir el teu canal.
Enviar enllaƧ RetroShare
-
+
Some files have been omitted
Alguns arxius s'han omĆØs
@@ -22953,7 +24534,7 @@ Escull els amics amb qui vols compartir el teu canal.
Consell(s)
-
+
Create Collection...
Crear col·lecció...
@@ -22978,7 +24559,7 @@ Escull els amics amb qui vols compartir el teu canal.
Descarregar d'arxiu de col·lecció...
-
+
Some files have been omitted because they have not been indexed yet.
Alguns arxius s'han omĆØs perquĆØ encara no han estat indexats.
@@ -23121,12 +24702,12 @@ Escull els amics amb qui vols compartir el teu canal.
SplashScreen
-
+
Load configuration
Carrega configuració
-
+
Create interface
Crear interfĆcie
@@ -23150,7 +24731,7 @@ Escull els amics amb qui vols compartir el teu canal.
Recordar contrasenya
-
+
Log In
Validar-se
@@ -23507,7 +25088,7 @@ Això es pot canviar a les opcions de configuració.
Missatge d'estat
-
+
Message:
Missatge:
@@ -23752,7 +25333,7 @@ p, li { white-space: pre-wrap; }
TagsMenu
-
+
Remove All Tags
Eliminar totes les etiquetes
@@ -23788,15 +25369,12 @@ p, li { white-space: pre-wrap; }
Configura Tor...
-
-
+
Tor status:
Estat Tor:
-
-
-
+
Unknown
Desconegut
@@ -23806,13 +25384,18 @@ p, li { white-space: pre-wrap; }
No iniciat
-
- Hidden address:
-
+
+ Hidden service address:
+ AdreƧa del servei ocult:
-
-
+
+ Tor bootstrap status:
+ Estat bootstrap de Tor:
+
+
+
+
Not set
No configurat
@@ -23822,57 +25405,12 @@ p, li { white-space: pre-wrap; }
AdreƧa Onion:
-
- Error
- Error
-
-
-
- Not connected
- No connectat
-
-
-
- Connecting
-
-
-
-
- Socket connected
-
-
-
-
- Authenticating
-
-
-
-
- Authenticated
-
-
-
-
- Hidden service ready
-
-
-
-
- Tor offline
-
-
-
-
- Tor ready
-
-
-
-
+
Check that Tor is accessible in your executable path
Comprova que Tor Ʃs accessible a les rutes d'executables
-
+
[Waiting for Tor...]
[Esperant al Tor...]
@@ -23880,17 +25418,21 @@ p, li { white-space: pre-wrap; }
TorStatus
-
+
Tor
Tor
+
+ <p>This version of Retroshare uses Tor to connect to your friends.</p>
+ <p>Aquesta versió de Retroshare utilitza Tor per connectar amb els teus amics.</p>
+
<p>This version of Retroshare uses Tor to connect to your trusted nodes.</p>
-
+
Tor is currently offline
Tor Ć©s fora de lĆnia
@@ -23901,12 +25443,11 @@ p, li { white-space: pre-wrap; }
-
No tor configuration
Sense configuració Tor
-
+
Tor proxy is OK
@@ -23934,7 +25475,7 @@ p, li { white-space: pre-wrap; }
TransferPage
-
+
Transfer options
Opcions de transferĆØncia
@@ -23945,7 +25486,7 @@ p, li { white-space: pre-wrap; }
MĆ xim de descarregues simultĆ nies:
-
+
Shared Directories
Directoris compartits
@@ -23955,27 +25496,22 @@ p, li { white-space: pre-wrap; }
Compartir automĆ ticament directori entrant (recomanat)
-
+
+ Edit Share
+ Editar compartits
+
+
+
Directories
-
- Configure shared directories
- Configura els directoris compartits
-
-
-
+
Auto-check shared directories every
Auto-comprova els directoris compartits cada
- <html><head/><body><p>Retroshare will quickly scan shared directories for new/removed files. It will not detect changes in existing files for efficiency reasons. It is however possible to force a full re-scan of the entire hierarchy including possibly modified files using the "check files" button in shared files tab.</p></body></html>
-
-
-
-
minute(s)
minut(s)
@@ -24060,7 +25596,7 @@ p, li { white-space: pre-wrap; }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;">
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:8pt; font-weight:600;">RetroShare</span><span style=" font-family:'Sans'; font-size:8pt;"> is capable of transferring data and search requests between peers that are not necessarily friends. This traffic however only transits through a connected list of friends and is anonymous.</span></p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans'; font-size:8pt;"><br /></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:8pt;">You can separately setup share flags for each shared directory in the shared files dialog to be:</span></p>
@@ -24069,12 +25605,7 @@ p, li { white-space: pre-wrap; }
-
- Minimum font size for Shared Files
-
-
-
-
+
Maximum uploads per friend (0 = no limit)
MĆ xim de pujades simultĆ nies per amic (0 = ilĀ·limitades)
@@ -24099,12 +25630,7 @@ p, li { white-space: pre-wrap; }
Permetre descarregues directes:
-
- <html><head/><body><p><span style=" font-weight:600;">Streaming </span>causes the transfer to request 1MB file chunks in increasing order, facilitating preview while downloading. <span style=" font-weight:600;">Random</span> is purely random and favors swarming behavior (although not recommended on Windows systems). <span style=" font-weight:600;">Progressive</span> is a good compromise, selecting the next chunk at random within less than 50MB after the end of the partial file. That allows some randomness while preventing large empty file initialization times.</p></body></html>
-
-
-
-
+
Streaming
En flux
@@ -24163,13 +25689,38 @@ p, li { white-space: pre-wrap; }
Trust friend nodes with banned files
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'Sans'; font-size:9pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600;">RetroShare</span><span style=" font-size:8pt;"> is capable of transferring data and search requests between peers that are not necessarily friends. This traffic however only transits through a connected list of friends and is anonymous.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">You can separately setup share flags for each shared directory in the shared files dialog to be:</span></p>
+<ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" font-size:8pt;" style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Browsable by friends</span>: files are seen by your friends.</li>
+<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Anonymously shared</span>: files are anonymously reachable through distant F2F tunnels.</li></ul></body></html>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'Sans'; font-size:9pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600;">Retroshare</span><span style=" font-size:8pt;"> és capaç de transferir dades i peticions de cerca entre contactes que no necessà riament siguin amics. No obstant, aquest trà fic només passa entre els amics connectats i és anònima.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Pots especificar per separat els permisos de compartició per cada directori compartit a la finestra d'arxius compartits:</span></p>
+<ul style="margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;"><li style=" font-size:8pt;" style=" margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Navegables pels amics:</span>: Els arxius són vistos pels teus amics.</li>
+<li style=" font-size:8pt;" style=" margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Compartits anònimament</span>: Els arxius es poden descarregar a través de túnels anònims distants.</li></ul></body></html>
+
Max. tunnel req. forwarded per second:
MĆ xim de peticions de tĆŗnels reenviades per segon:
-
+
+ <html><head/><body><p><span style=" font-weight:600;">Streaming </span>causes the transfer to request 1MB file chunks in increasing order, facilitating preview while downloading. <span style=" font-weight:600;">Random</span> is purely random and favors swarming behavior. <span style=" font-weight:600;">Progressive</span> is a compromise, selecting the next chunk at random within less than 50MB after the end of the partial file. That allows some randomness while preventing large empty file initialization times.</p></body></html>
+ <html><head/><body><p><span style=" font-weight:600;">En flux</span>fa que la transferĆØncia es faci en fragments de 1 MiB per ordre, facilitant la previsualització mentre es descarrega. <span style=" font-weight:600;">Aleatori</span>Ć©s completament aleatori i afavoreix el comportament en eixam. <span style=" font-weight:600;">Progressiu</span>Ć©s un compromĆs, solĀ·licitant el proper fragment aleatòriament dins dels propers 50 MiB següents al final de l'arxiu parcial. Això permet aleatorietat i a la vegada evita temps llargs d'inicialització amb els arxius grossos.</p></body></html>
+
+
+
<html><head/><body><p>Retroshare will suspend all transfers and config file saving if the disk space goes below this limit. That prevents loss of information on some systems. A popup window will warn you when that happens.</p></body></html>
<html><head/><body><p>El Retroshare pausarà totes les transferències i gravacions de configuració al disc si l'espai lliure queda per sota d'aquest llindar. Això evita la pèrdua d'informació en alguns sistemes. Una finestra de notificació t'avisarà quan això passi.</p></body></html>
@@ -24181,17 +25732,7 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
</p><p>El valor per defecte Ć©s 20. Si no n'estĆ s segur, deixa-ho aixĆ.</p></body></html>
-
- Warning
- AvĆs
-
-
-
- On Windows systems, randomly writing in the middle of large empty files may hang the software for several seconds. Do you want to use this option anyway (otherwise use "progressive")?
-
-
-
-
+
Set Incoming Directory
Establir el directori d'entrants
@@ -24219,7 +25760,7 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
TransferUserNotify
-
+
Download completed
Descarrega completa
@@ -24243,23 +25784,39 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
%1 completed transfer
+
+ You have %1 completed downloads
+ Tens %1 descarregues completes
+
+
+ You have %1 completed download
+ Tens %1 descarrega completa
+
+
+ %1 completed downloads
+ %1 descarregues completades
+
+
+ %1 completed download
+ %1 descarrega completada
+
TransfersDialog
-
-
+
+
Downloads
Descarregues
-
+
Uploads
Pujades
-
+
Name
i.e: file name
Nom
@@ -24466,7 +26023,11 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
Especificar...
-
+ <h1><img width="%1" src=":/icons/help_64.png"> File Transfer</h1> <p>Retroshare brings two ways of transferring files: direct transfers from your friends, and distant anonymous tunnelled transfers. In addition, file transfer is multi-source and allows swarming (you can be a source while downloading)</p> <p>You can share files using the <img src=":/images/directoryadd_24x24_shadow.png" width=%2 /> icon from the left side bar. These files will be listed in the My Files tab. You can decide for each friend group whether they can or not see these files in their Friends Files tab</p> <p>The search tab reports files from your friends' file lists, and distant files that can be reached anonymously using the multi-hop tunnelling system.</p>
+ <h1><img width="32" src=":/images/help_64.png"> Transferència d'arxiu</h1> <p>Retroshare contempla dues formes de fer això: transferències directes dels teus amics, i transferències distants amb túnels anònims. A més amés, les transferències d'arxius són multi-origen i permet fer-les en eixam (pots ser origen mentre descarregues)</p> <p>Pots compartir arxius amb <img src=":/images/directoryadd_24x24_shadow.png" width=%2 /> la icona de la barra lateral esquerra. Aquests arxius es llistaran a la pestanya els meus arxius. Pots triar per cada grup d'amics si poden o no veure'l a la pestanya arxius d'amics.</p> <p>La pestanya cerca dona resultats pels arxius del teus amics i arxius que es poden accedir distants anònimament utilitzant el sistema de túnels multi-salt.</p>
+
+
+
Move in Queue...
Moure a la cua...
@@ -24491,7 +26052,7 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
Escull directori
-
+
Anonymous end-to-end encrypted tunnel 0x
Túnel anònim encriptat d'extrem a extrem 0x
@@ -24512,7 +26073,7 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
RetroShare
-
+
@@ -24545,17 +26106,7 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
L'arxiu %1 no s'ha completat. Si es un fitxer multimĆØdia intenta una prĆØvia.
-
- Warning
- AvĆs
-
-
-
- On Windows systems, writing in the middle of large empty files may hang the software for several seconds. Do you want to use this option anyway?
-
-
-
-
+
Change file name
Canviar el nom de l'arxiu
@@ -24570,7 +26121,7 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
Si us plau, introdueix un nou--i vĆ lid--nom d'arxiu
-
+
Expand all
Expandeix tot
@@ -24697,18 +26248,23 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
-
+
+ <h1><img width="%1" src=":/icons/help_64.png"> File Transfer</h1><p>Retroshare brings two ways of transferring files: direct transfers from your friends, and distant anonymous tunnelled transfers. In addition, file transfer is multi-source and allows swarming (you can be a source while downloading)</p><p>You can share files using the <img src=":/images/directoryadd_24x24_shadow.png" width=%2 /> icon from the left side bar. These files will be listed in the My Files tab. You can decide for each friend group whether they can or not see these files in their Friends Files tab</p><p>The search tab reports files from your friends' file lists, and distant files that can be reached anonymously using the multi-hop tunnelling system.</p>
+
+
+
+
Columns
Columnes
-
+
File Transfers
TransferĆØncies d'arxius
-
+
Path
Ruta
@@ -24718,7 +26274,7 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
Mostra columna de ruta
-
+
Could not delete preview file
No s'ha pogut esborrar l'arxiu de previsualització
@@ -24728,7 +26284,7 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
Tornar-ho a intentar?
-
+
Create Collection...
Crear col·lecció...
@@ -24743,12 +26299,7 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
Veure col·lecció...
-
- <h1><img width="%1" src=":/icons/help_64.png"> File Transfer</h1><p>Retroshare brings two ways of transferring files: direct transfers from your friends, and distant anonymous tunnelled transfers. In addition, file transfer is multi-source and allows swarming (you can be a source while downloading)</p><p>You can share files using the <img src=":/images/directoryadd_24x24_shadow.png" width=%2 /> icon from the left side bar. These files will be listed in the My Files tab. You can decide for each friend group whether they can or not see these files in their Friends Files tab</p><p>The search tab reports files from your friends' file lists, and distant files that can be reached anonymously using the multi-hop tunnelling system.</p>
-
-
-
-
+
Collection
Col·lecció
@@ -24758,7 +26309,7 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
%1 tĆŗnels
-
+
Anonymous tunnel 0x
Túnel anònim 0x
@@ -24979,6 +26530,10 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
File transfer tunnels
+
+ Anonymous tunnels
+ Túnels anònims
+
Authenticated tunnels
@@ -25172,17 +26727,12 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
Formulari
-
+
Enable Retroshare WEB Interface
Habilita la interfĆcie WEB del RetroShare
-
- Status:
- Estat:
-
-
-
+
Web parameters
ParĆ metres web
@@ -25216,33 +26766,35 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
<html><head/><body><p>Note: these settings do not affect retroshare-service, which has a command line switch to activate the web interface and select the listening port.</p></body></html>
+
+ Port:
+ Port:
+
Allow access from all IP addresses (Default: localhost only)
Permetre accés des de qualsevol adreça IP (Per defecte: només connexió local)
-
+ Apply setting and start browser
+ Aplicar opcions i iniciar navegador
+
+
+ Note: these settings do not affect retroshare-nogui. Retroshare-nogui has a command line switch to activate the web interface.
+ Nota: Aquestes opcions no afecten al Retroshare-nogui. Retroshare-nogui tĆ© un parĆ metre en lĆnia de comanda per activar la interfĆcie web.
+
+
+
Please select the directory were to find retroshare webinterface files
-
- Missing passphrase
-
-
-
-
- Please set a passphrase to proect the access to the WEB interface.
-
-
-
-
+
<h1><img width="24" src=":/icons/help_64.png"> Webinterface</h1> <p>The webinterface allows you to control Retroshare from the browser. Multiple devices can share control over one Retroshare instance. So you could start a conversation on a tablet computer and later use a desktop computer to continue it.</p> <p>Warning: don't expose the webinterface to the internet, because there is no access control and no encryption. If you want to use the webinterface over the internet, use a SSH tunnel or a proxy to secure the connection.</p>
<h1><img width="24" src=":/icons/help_64.png"> InterfĆcie web</h1> <p>La interfĆcie web et permet controlar el Retroshare des del navegador. MĆŗltiples dispositius poden compartir el control sobre una instancia de Retroshare. Per tan pots comenƧar una conversa en una tauleta i mĆ©s tard utilitzar un ordinador d'escriptori per continuar-la.</p><p>AvĆs: no exposis la teva interfĆcie web a Internet, perquĆØ no hi ha control d'accĆ©s ni encriptació. Si vols utilitzar la interfĆcie web des d'Internet utilitza un tĆŗnel SSH o un repetidor per assegurar la connexió.</p>
-
+
Webinterface not enabled
InterfĆcie Web no habilitada
@@ -25252,12 +26804,12 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
La interfĆcie web no estĆ activada. Activa-la a Configuració -> InterfĆcie web.
-
+
failed to start Webinterface
Fallo al iniciar interfĆcie Web
-
+
Webinterface
InterfĆcie Web
@@ -25394,7 +26946,11 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
PĆ gines wiki
-
+ New Group
+ Nou grup
+
+
+
Page Name
Nom de pĆ gina
@@ -25409,7 +26965,7 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
Id d'origen
-
+
<<
<<
@@ -25497,7 +27053,7 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
WikiEditDialog
-
+
Page Edit History
Historial d'edició de la pà gina
@@ -25532,7 +27088,7 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
IdPĆ gina
-
+
\/
\/
@@ -25562,18 +27118,14 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
Etiquetes
-
- History
- Històric
-
-
-
+
+
Show Edit History
Mostra historial d'edició
-
+
Status
Estat
@@ -25594,7 +27146,7 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
DesfƩs
-
+
Submit
Publica
@@ -25666,6 +27218,10 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
WireDialog
+
+ TimeRange
+ Rang de temps
+
Create Account
@@ -25677,7 +27233,16 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
-
+ ...
+ ...
+
+
+
+ Refresh
+ Refrescar
+
+
+
Settings
@@ -25692,7 +27257,7 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
Altres
-
+
Who to Follow
@@ -25712,7 +27277,7 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
-
+
Most Recent
@@ -25742,17 +27307,85 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
-
+ Last Month
+ L'Ćŗltim mes
+
+
+ Last Week
+ L'ultima setmana
+
+
+ Today
+ Avui
+
+
+ New
+ Nou
+
+
+ from
+ des de
+
+
+ until
+ fins
+
+
+ Search/Filter
+ Cercar/Filtrar
+
+
+ Network Wide
+ Tota la xarxa
+
+
+ Manage Accounts
+ Controlar comptes
+
+
+ Showing:
+ Mostrant:
+
+
+
Yourself
Tu mateix
+
+ Friends
+ Amics
+
Following
Seguint
-
+ Custom
+ Personalitzat
+
+
+ Account 1
+ Compte 1
+
+
+ Account 2
+ Compte 2
+
+
+ Account 3
+ Compte 3
+
+
+ CheckBox
+ Casella de selecció
+
+
+ Post Pulse to Wire
+ Publica Pols a Wire
+
+
+
RetroShare
RetroShare
@@ -25815,42 +27448,35 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
Formulari
-
-
+
+ Masthead
+
+
+
MastHead background Image
-
+
Select Image
-
+
Tagline:
- Remove
- Treure
-
-
-
Location:
Ubicació:
-
+
Load Masthead
-
-
- Use the mouse to zoom and adjust the image for your background.
-
-
WireGroupItem
@@ -25895,41 +27521,11 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
Edit Profile
-
-
- Own
-
-
-
-
- N/A
- N/A
-
-
-
- Following
- Seguint
-
-
-
- Unfollow
-
-
-
-
- Other
-
-
-
-
- Follow
-
-
misc
-
+
Unknown
Unknown (size)
Desconegut
@@ -26007,7 +27603,7 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
%1y any %2d
-
+
k
e.g: 3.1 k
k
@@ -26040,11 +27636,15 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
Pictures (*.png *.jpeg *.xpm *.jpg *.tiff *.gif *.webp)
+
+ Pictures (*.png *.jpeg *.xpm *.jpg *.tiff *.gif)
+ Imatges (*.png *.jpeg *.xpm *.jpg *.tiff *.gif)
+
pgpid_item_model
-
+
Do you accept connections signed by this profile?
Acceptes connexions signades amb aquest perfil?
@@ -26053,6 +27653,10 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
Name of the profile
Nom del perfil
+
+ This column indicates trust level and whether you signed the profile PGP key
+ Aquesta columna indica el nivell de confianƧa i si has signat la clau de perfil PGP
+
This column indicates the trust level you indicated and whether you signed the profile PGP key
@@ -26163,6 +27767,10 @@ Si tens molt ample de banda pots augmentar-lo fins a 30-40, per permetre que tĆŗ
Denied
+
+ -
+ -
+
PGP key signed by you
diff --git a/retroshare-gui/src/lang/retroshare_cs.ts b/retroshare-gui/src/lang/retroshare_cs.ts
index 9ddff2a55..24f243cde 100644
--- a/retroshare-gui/src/lang/retroshare_cs.ts
+++ b/retroshare-gui/src/lang/retroshare_cs.ts
@@ -84,6 +84,13 @@
+
+ AddCommentDialog
+
+ Add Comment
+ PÅidat komentĆ”Å
+
+
AddFileAssociationDialog
@@ -122,12 +129,12 @@
RetroShare: rozÅ”ĆÅenĆ© hledĆ”nĆ
-
+
Search Criteria
KritĆ©ria pro vyhledĆ”vĆ”nĆ
-
+
Add a further search criterion.
PÅidat dalŔà kriterium pro vyhledĆ”vĆ”nĆ
@@ -137,7 +144,7 @@
Vymazat kritĆ©ria pro vyhledĆ”vĆ”nĆ
-
+
Cancels the search.
ZruÅ”it hledĆ”nĆ.
@@ -157,6 +164,177 @@
Hledat
+
+ AlbumCreateDialog
+
+ Create Album
+ VytvoÅit album
+
+
+ Album Name:
+ JmƩno alba:
+
+
+ Category:
+ Kategorie:
+
+
+ Animals
+ ZvĆÅata
+
+
+ Family
+ Rodina
+
+
+ Friends
+ Kontakty
+
+
+ Flowers
+ KvÄtiny
+
+
+ Holiday
+ PrƔzdniny
+
+
+ Landscapes
+ Krajiny
+
+
+ Pets
+ DomĆ”cĆ mazlĆÄci
+
+
+ Portraits
+ PortrƩty
+
+
+ Travel
+ CestovĆ”nĆ
+
+
+ Work
+ PrƔce
+
+
+ Random
+ NƔhodnƩ
+
+
+ Caption:
+ Nadpis:
+
+
+ Where:
+ Kde:
+
+
+ Photographer:
+ Fotograf:
+
+
+ Description:
+ Popis:
+
+
+ Share Options
+ SdĆlet nastavenĆ
+
+
+ Policy:
+ Pravidla
+
+
+ Quality:
+ Kvalita:
+
+
+ Comments:
+ KomentĆ”Åe:
+
+
+ Identity:
+ Identita:
+
+
+ Public
+ VeÅejnĆ©
+
+
+ Restricted
+ OmezenƩ
+
+
+ Resize Images (< 1Mb)
+ ZmenŔit obrÔzky (< 1Mb)
+
+
+ Resize Images (< 10Mb)
+ ZmenŔit obrÔzky (< 10Mb)
+
+
+ Send Original Images
+ Poslat původnà obrÔzky
+
+
+ No Comments Allowed
+ ZakĆ”zat komentĆ”Åe
+
+
+ Authenticated Comments
+ Pouze autentizovanĆ© komentĆ”Åe
+
+
+ Any Comments Allowed
+ Kdokoliv může komentovat
+
+
+ Publish with Identity
+ Publikovat pod identitou
+
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600;"> Drag & Drop to insert pictures. Click on a picture to edit details below.</span></p></body></html>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt; font-weight:600;"> TĆ”hni & PusÅ„ pro vloženĆ obrĆ”zku. Klikni na obrĆ”zek pro zmÄnu detailÅÆ.</span></p></body></html>
+
+
+ Back
+ ZpÄt
+
+
+ Add Photos
+ PÅidat fotografie
+
+
+ Publish Album
+ Publikovat album
+
+
+ Untitle Album
+ BezejmennƩ album
+
+
+ Say something about this album...
+ Ohodnotit toto album...
+
+
+ Where were these taken?
+ Kde byly vyfoceny?
+
+
+ Load Album Thumbnail
+ NahrƔd nƔhled alba
+
+
AlbumDialog
@@ -165,11 +343,19 @@
Album
Album
+
+ Album Thumbnail
+ NƔhled alba
+
TextLabel
Textový popisek
+
+ Summary
+ ShrnutĆ
+
Album Title:
@@ -185,6 +371,34 @@
Caption
legenda
+
+ Where:
+ Kde:
+
+
+ When
+ Kdy
+
+
+ Description:
+ Popis:
+
+
+ Share Options
+ Možnsti sdĆlenĆ
+
+
+ Comments
+ KomentĆ”Åe
+
+
+ Publish Identity
+ ZveÅejnit identitu
+
+
+ Visibility
+ Viditelnost
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
@@ -553,7 +767,7 @@ p, li { white-space: pre-wrap; }
RetroShare
-
+
Warning: The services here are experimental. Please help us test them.
But Remember: Any data here *WILL* be lost when we upgrade the protocols.
VarovĆ”nĆ: ZdejŔà služby jsou testovacĆ, pomožte nĆ”m je otestovat.
@@ -569,6 +783,14 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
Circles
Okruhy lidĆ
+
+ GxsForums
+ Fóra
+
+
+ GxsChannels
+ KanƔly
+
The Wire
@@ -580,23 +802,10 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
Fotografie
-
- AspectRatioPixmapLabel
-
-
- Save image
-
-
-
-
- Copy image
-
-
-
AttachFileItem
-
+
%p Kb
%p Kb
@@ -633,13 +842,17 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
Browse...
+
+ Add Avatar
+ PÅidat fotku
+
Remove
Odebrat
-
+
Set your Avatar picture
Zobrazit fotku
@@ -658,6 +871,10 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
Use the mouse to zoom and adjust the image for your avatar.
+
+ Load Avatar
+ NaÄĆst fotku
+
AvatarWidget
@@ -726,10 +943,22 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
Reset
-
+ Receive Rate
+ Rychlost stahovĆ”nĆ
+
+
+ Send Rate
+ Rychlost odesĆlĆ”nĆ
+
+
+
Always on Top
Podržet nad ostatnĆmi
+
+ Style
+ Styl
+
Changes the transparency of the Bandwidth Graph
@@ -745,11 +974,23 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
% Opaque
% Opaque
+
+ Save
+ Uložit
+
+
+ Cancel
+ ZruŔit
+
Since:
Od:
+
+ Hide Settings
+ Skrýt nastavenĆ
+
BandwidthStatsWidget
@@ -822,7 +1063,7 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
BoardPostDisplayWidgetBase
-
+
Comment
KomentĆ”Åe
@@ -852,12 +1093,12 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
KopĆrovat RetroShare odkaz
-
+
<p><font color="#ff0000"><b>The author of this message (with ID %1) is banned.</b>
-
+
ago
@@ -865,7 +1106,7 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
BoardPostDisplayWidget_card
-
+
Vote up
@@ -885,7 +1126,7 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
-
+
Posted by
@@ -923,7 +1164,7 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
BoardPostDisplayWidget_compact
-
+
Vote up
@@ -943,7 +1184,7 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
-
+
Click to view picture
@@ -973,7 +1214,7 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
-
+
Toggle Message Read Status
OznaÄit zprĆ”vu za pÅeÄtenou
@@ -983,7 +1224,7 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
Nový
-
+
TextLabel
Textový popisek
@@ -991,12 +1232,12 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
BoardsCommentsItem
-
+
I like this
-
+
0
0
@@ -1016,18 +1257,18 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
Avatar
-
+
New Comment
-
+
Copy RetroShare Link
KopĆrovat RetroShare odkaz
-
+
Expand
Rozbalit
@@ -1042,12 +1283,12 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
-
+
Name
-
+
Comm value
@@ -1216,17 +1457,17 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
ChannelPage
-
+
Channels
KanƔly
-
+
Tabs
ZÔložky
-
+
General
ObecnƩ
@@ -1236,17 +1477,11 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
-
- Downloads
- StahovĆ”nĆ
+ Load posts in background (Thread)
+ NaÄĆtat pÅĆspÄvky na pozadĆ
-
- Maximum Auto Download Size (in GBs)
-
-
-
-
+
Open each channel in a new tab
OtevÅĆt nový kanĆ”l v novĆ© zĆ”ložce
@@ -1254,7 +1489,7 @@ Ale mÄj na pamÄti, že veÅ”kerĆ” zdejŔà nastavenĆ se mohou zmÄnit s každo
ChannelPostDelegate
-
+
files
@@ -1277,7 +1512,7 @@ into the image, so as to
ChannelsCommentsItem
-
+
I like this
@@ -1302,18 +1537,18 @@ into the image, so as to
Avatar
-
+
New Comment
-
+
Copy RetroShare Link
KopĆrovat RetroShare odkaz
-
+
Expand
Rozbalit
@@ -1328,7 +1563,7 @@ into the image, so as to
-
+
Name
@@ -1338,7 +1573,17 @@ into the image, so as to
-
+
+ Comment
+ KomentĆ”Åe
+
+
+
+ Comments
+
+
+
+
Hide
Skrýt
@@ -1346,7 +1591,7 @@ into the image, so as to
ChatLobbyDialog
-
+
Name
@@ -1537,7 +1782,7 @@ into the image, so as to
ChatLobbyToaster
-
+
Show Chat Lobby
UkĆ”zat konverzaÄnĆ mĆstnost
@@ -1549,6 +1794,22 @@ into the image, so as to
Chats
+
+ You have %1 new messages
+ MÔte %1 nových zprÔv
+
+
+ You have %1 new message
+ MƔte %1 novou zprƔvu
+
+
+ %1 new messages
+ %1 nových zprÔv
+
+
+ %1 new message
+ %1 novƔ zprƔva
+
You have %1 mentions
@@ -1570,14 +1831,13 @@ into the image, so as to
-
-
+
Unknown Lobby
NeznĆ”mĆ” mĆstnost
-
-
+
+
Remove All
Smazat vŔe
@@ -1585,13 +1845,13 @@ into the image, so as to
ChatLobbyWidget
-
-
+
+
Name
JmƩno
-
+
Count
PoÄet
@@ -1601,7 +1861,29 @@ into the image, so as to
TƩma
-
+
+ Private Subscribed chat rooms
+
+
+
+
+
+ Public Subscribed chat rooms
+
+
+
+
+ Private chat rooms
+
+
+
+
+
+ Public chat rooms
+
+
+
+
Create chat room
@@ -1611,7 +1893,7 @@ into the image, so as to
-
+
Create a non anonymous identity and enter this room
@@ -1668,12 +1950,12 @@ Double click a chat room to enter and chat.
-
+
%1 invites you to chat room named %2
-
+
Choose a non anonymous identity for this chat room:
@@ -1683,31 +1965,31 @@ Double click a chat room to enter and chat.
-
+ Create chat lobby
+ VytvoÅit konverzaÄnĆ mĆstnost
+
+
+
[No topic provided]
[nebylo poskytnuto žÔdné téma]
-
-
+ Selected lobby info
+ Informace o mĆstnosti
+
+
+
Private
SoukromƩ
-
-
-
+
Public
VeÅejnĆ©
-
- <h1><img width="%1" src=":/icons/help_64.png"> Chat Rooms</h1><p>Chat rooms work pretty much like IRC. They allow you to talk anonymously with tons of people without the need to make friends.</p><p>A chat room can be public (your friends see it) or private (your friends can't see it, unless you invite them with <img src=":/icons/png/add.png" width=%2/>). Once you have been invited to a private room, you will be able to see it when your friends are using it.</p><p>The list at left shows chat lobbies your friends are participating in. You can either <ul> <li>Right click to create a new chat room</li> <li>Double click a chat room to enter, chat, and show it to your friends</li> </ul> Note: For the chat rooms to work properly, your computer needs be on time. So check your system clock!</p>
-
-
-
-
+
Anonymous IDs accepted
AnonymnĆ ID pÅijato
@@ -1717,25 +1999,42 @@ Double click a chat room to enter and chat.
Odstranit automatickĆ© pÅihlaÅ”ovĆ”nĆ
-
+
+ <h1><img width="%1" src=":/icons/help_64.png"> Chat Rooms</h1> <p>Chat rooms work pretty much like IRC. They allow you to talk anonymously with tons of people without the need to make friends.</p> <p>A chat room can be public (your friends see it) or private (your friends can't see it, unless you invite them with <img src=":/icons/png/add.png" width=%2/>). Once you have been invited to a private room, you will be able to see it when your friends are using it.</p> <p>The list at left shows chat lobbies your friends are participating in. You can either <ul> <li>Right click to create a new chat room</li> <li>Double click a chat room to enter, chat, and show it to your friends</li> </ul> Note: For the chat rooms to work properly, your computer needs be on time. So check your system clock! </p>
+
+
+
+
Add Auto Subscribe
Automaticky pÅihlĆ”sit
-
+
Search Chat lobbies
Hledat mĆstnost
-
+
Search Name
Hledat
-
+ Subscribed
+ PÅihlÔŔen
+
+
+
Columns
Sloupce
+
+ Yes
+ Ano
+
+
+ No
+ Ne
+
Chat rooms
@@ -1747,47 +2046,47 @@ Double click a chat room to enter and chat.
-
+
Chat Room info
-
+
Chat room Name:
-
+
Chat room Id:
-
+
Topic:
TƩma:
-
+
Type:
Typ:
-
+
Security:
BezpeÄnost:
-
+
Peers:
PoÄet uživatelÅÆ:
-
-
-
-
-
-
+
+
+
+
+
+
TextLabel
Textový popisek
@@ -1802,24 +2101,13 @@ Double click a chat room to enter and chat.
Bez anonymnĆch ID
-
+
Show
UkƔzat
-
- Private Subscribed
-
-
-
-
-
- Public Subscribed
-
-
-
-
+
column
sloupec
@@ -1833,7 +2121,7 @@ Double click a chat room to enter and chat.
ChatMsgItem
-
+
Remove Item
Odstranit pÅedmÄt
@@ -1878,22 +2166,46 @@ Double click a chat room to enter and chat.
ChatPage
-
+
General
ObecnƩ
+
+ Distant Chat
+ VzdÔlený chat
+
Everyone
VŔichni
+
+ Contacts
+ Kontakty
+
Nobody
Nikdo
-
+ Accept encrypted distant chat from
+ PÅijmout Å”ifrovaný vzdĆ”lený chat od
+
+
+ Chat Settings
+ NastavenĆ chatu
+
+
+ Enable Emoticons Private Chat
+ Povolit smajlĆky v soukromĆ©m chatu
+
+
+ Enable Emoticons Group Chat
+ PoužĆvat smajlĆky ve skupinovĆ©m chatu
+
+
+
Enable custom fonts
Povolit vlastnĆ fonty
@@ -1902,6 +2214,10 @@ Double click a chat room to enter and chat.
Enable custom font size
Povolit vlastnĆ velikost fontÅÆ
+
+ Minimum font size
+ MinimÔlnà velikost fontu
+
Enable bold
@@ -1913,7 +2229,7 @@ Double click a chat room to enter and chat.
Povolit latinku
-
+
General settings
@@ -1938,7 +2254,11 @@ Double click a chat room to enter and chat.
NaÄĆst vloženĆ© obrĆ”zky
-
+ Chat Lobby
+ Konverzace
+
+
+
Blink tab icon
Ikona upozornÄnĆ
@@ -1947,6 +2267,10 @@ Double click a chat room to enter and chat.
Do not send typing notifications
+
+ Private Chat
+ Soukromý chat
+
Open Window for new chat
@@ -1968,7 +2292,11 @@ Double click a chat room to enter and chat.
-
+ Chat Font
+ Font chatu
+
+
+
Change Chat Font
ZmÄnit font chatu
@@ -1978,10 +2306,14 @@ Double click a chat room to enter and chat.
Font chatu:
-
+
History
Historie
+
+ Style
+ Styl
+
@@ -1996,13 +2328,17 @@ Double click a chat room to enter and chat.
Variant:
+
+ Group chat
+ Skupinový chat
+
Private chat
Soukromý chat
-
+
Choose your default font for Chat.
@@ -2066,28 +2402,22 @@ Double click a chat room to enter and chat.
<html><head/><body><p align="justify">In this tab you can setup how many chat messages Retroshare will keep saved on the disc and how much of the previous conversation it will display, for the different chat systems. The max storage period allows to discard old messages and prevents the chat history from filling up with volatile chat (e.g. chat lobbies and distant chat).</p></body></html>
<html><head/><body><p align="justify">Zde se nastavuje uchovĆ”vĆ”nĆ historie na vaÅ”em HDD pro rÅÆznĆ© druhy chatu. ZprĆ”vy starÅ”Ćho data budou smazĆ”ny, aby nedoÅ”lo k pÅesycenĆ sĆtÄ (napÅ. pro konverzaÄnĆ mĆstnosti a vzdĆ”lený chat).</p></body></html>
+
+ Chatlobbies
+ KonverzaÄnĆ mĆstnosti
+
Enabled:
AktivovƔno:
-
+
Search
-
- When focus on text browser after showing chat room
-
-
-
-
- Shrink text edit field when not needed
-
-
-
-
+
Fonts
@@ -2097,17 +2427,7 @@ Double click a chat room to enter and chat.
-
- If your system is set up correctly, this next square should measure 1 cm.
-
-
-
-
- This next square is scaled accordingly to your system font size.
-
-
-
-
+
Chat rooms
@@ -2204,7 +2524,11 @@ Double click a chat room to enter and chat.
NeuklĆ”dat starŔà než...dnĆ (0 = bez omezenĆ)
-
+ Search by default
+ DefaultnĆ hledĆ”nĆ
+
+
+
Case sensitive
Citlivost velikost pĆsmen
@@ -2243,6 +2567,10 @@ Double click a chat room to enter and chat.
Threshold for automatic search
PrĆ”h automatickĆ©ho vyhledĆ”vĆ”nĆ
+
+ Default identity for chat lobbies:
+ VýchozĆ identita pro konverzaÄnĆ mĆstnost:
+
Show Bar by default
@@ -2310,7 +2638,7 @@ Double click a chat room to enter and chat.
ChatToaster
-
+
Show Chat
Zobrazit chat
@@ -2346,7 +2674,7 @@ Double click a chat room to enter and chat.
ChatWidget
-
+
Close
ZavÅĆt
@@ -2381,12 +2709,12 @@ Double click a chat room to enter and chat.
KurzĆva
-
+
<html><head/><body><p>Chat menu</p></body></html>
-
+
Insert emoticon
@@ -2466,6 +2794,11 @@ Double click a chat room to enter and chat.
Insert horizontal rule
+
+
+ Save image
+
+
Import sticker
@@ -2503,7 +2836,7 @@ Double click a chat room to enter and chat.
-
+
is typing...
pĆÅ”e...
@@ -2525,7 +2858,7 @@ after HTML conversion.
-
+
Do you really want to physically delete the history?
Chcete opravdu vymazati historii z poÄĆtaÄe?
@@ -2575,7 +2908,7 @@ after HTML conversion.
je zaneprĆ”zdnÄn a může se stĆ”t, že neodpovĆ
-
+
Find Case Sensitively
Hledat s rozliÅ”enĆm malých a velkých pĆsmen
@@ -2597,7 +2930,7 @@ after HTML conversion.
Nezastavovat vybarvovĆ”nĆ po X nĆ”lezech (vyŔŔà zĆ”tÄž CPU)
-
+
<b>Find Previous </b><br/><i>Ctrl+Shift+G</i>
<b>Hledat pÅedchozĆ </b><br/><i>Ctrl+Shift+G</i>
@@ -2612,12 +2945,16 @@ after HTML conversion.
<b>Hledat </b><br/><i>Ctrl+F</i>
-
+
(Status)
(Status)
-
+ Set text font & color
+ Nastav typ a barvu pĆsma
+
+
+
Attach a File
PÅiožit soubor
@@ -2633,12 +2970,12 @@ after HTML conversion.
-
+
<b>Mark this selected text</b><br><i>Ctrl+M</i>
<b>OznaÄ vybraný text</b><br><i>Ctrl+M</i>
-
+
Person id:
@@ -2649,12 +2986,12 @@ Double click on it to add his name on text writer.
-
+
Unsigned
-
+
items found.
Nalezeno.
@@ -2674,7 +3011,7 @@ Double click on it to add his name on text writer.
Zde napiŔ zprÔvu...
-
+
Don't stop to color after
Nezastavovat vybarvovÔnà po
@@ -2700,7 +3037,7 @@ Double click on it to add his name on text writer.
CirclesDialog
-
+
Showing details:
Ukazuji detaily:
@@ -2722,7 +3059,7 @@ Double click on it to add his name on text writer.
-
+
Personal Circles
OsobnĆ Kruhy
@@ -2748,7 +3085,7 @@ Double click on it to add his name on text writer.
-
+
Friends
Kontakty
@@ -2808,7 +3145,7 @@ Double click on it to add his name on text writer.
Kontakty kontaktÅÆ
-
+
External Circles (Admin)
ExternĆ Kruhy (Admin)
@@ -2824,7 +3161,7 @@ Double click on it to add his name on text writer.
-
+
Circles
Okruhy lidĆ
@@ -2876,48 +3213,43 @@ Double click on it to add his name on text writer.
-
+
RetroShare
RetroShare
-
+
-
+
Error : cannot get peer details.
Chyba : nemohu zĆskat Ćŗdaje kontaktu
-
+
Retroshare ID
-
+
<p>This Retroshare ID contains:
-
+
<li> <b>onion address</b> and <b>port</b>
-
+
<li><b>IP address</b> and <b>port</b>:
-
+
<b>IP address</b> and <b>port</b>:
-
-
- <b>DNS:</b> :
-
-
<p>You can use this Retroshare ID to make new friends. Send it by email, or give it hand to hand.</p>
@@ -2929,7 +3261,7 @@ Double click on it to add his name on text writer.
Å ifrovĆ”nĆ
-
+
Not connected
Nespojen
@@ -3011,17 +3343,25 @@ Double click on it to add his name on text writer.
žÔdný
-
+
<p>This certificate contains:
<p>Tento certifikƔt obsahuje
-
+
<li>a <b>node ID</b> and <b>name</b>
<li>a <b>ID uzlu</b> a <b>jmƩno</b>
-
+ an <b>onion address</b> and <b>port</b>
+ <b>onion (TOR) adresa</b> a <b>port</b>
+
+
+ an <b>IP address</b> and <b>port</b>
+ an <b>IP adresa</b> a <b>port</b>
+
+
+
<p>You can use this certificate to make new friends. Send it by email, or give it hand to hand.</p>
<p>Tento certifikĆ”t musĆÅ” pÅedat svým budoucĆm kontaktÅÆm. Použij emailu nebo jinĆ© komunikaÄnĆ platformy.</p>
@@ -3036,7 +3376,7 @@ Double click on it to add his name on text writer.
<html><head/><body><p>Å ifrovcĆ metoda použitĆ” <span style=" font-weight:600;">OpenSSL</span>. SpojenĆ s kontakty</p><p>je vždy silnÄ Å”ifrovĆ”no a pokud je použito DHE, spojenĆ navĆc využĆvĆ”</p><p>"zabezpeÄenĆ© pÅeposĆlĆ”nĆ".</p></body></html>
-
+
with
s
@@ -3053,16 +3393,104 @@ Double click on it to add his name on text writer.
Connect Friend Wizard
PrÅÆvodce pÅidĆ”nĆm kontaktu
+
+ Add a new Friend
+ PÅidat kontakt
+
+
+ &You get a certificate file from your friend
+ &NahrĆ”t soubor s certifikĆ”tem kontaktu (který vĆ”m napÅĆklad pÅiÅ”el emailem s pozvĆ”nkou).
+
+
+ &Make friend with selected friends of my friends
+ PÅidat vybranĆ© dÅÆvÄryhodnĆ© kontakty mých dÅÆveryhodných kontaktÅÆ
+
+
+ Include signatures
+ Zahrnout podpisy
+
+
+ Copy your Cert to Clipboard
+ KopĆrovat vÔŔ certifikĆ”t do schrĆ”nky
+
+
+ Save your Cert into a File
+ Uložit vÔŔ certifikÔt do souboru
+
+
+ Run Email program
+ Spustit emailový klient
+
Open Cert of your friend from File
+
+ Certificate files
+ Soubory certifikƔtu
+
+
+ Use PGP certificates saved in files.
+ NahrƔt PGP certifikƔty ze souboru.
+
+
+ Import friend's certificate...
+ Importovat certifikƔt kontaktu...
+
+
+ You have to generate a file with your certificate and give it to your friend. Also, you can use a file generated before.
+ MusĆte vygenerovat soubor s certifikĆ”tem a pÅedat jej vaÅ”emu kontaktu. Můžete takĆ© použĆt již existujĆcĆ dÅĆve vytvoÅený soubor.
+
+
+ Export my certificate...
+ Exportovat můj certifikÔt...
+
+
+ Drag and Drop your friends's certificate in this Window or specify path in the box below
+ PÅetĆ”hnÄte certifikĆ”t kontaktu do tohoto okna a nebo zadejte cestu k tomu souboru do pole nĆže
+
+
+ Browse
+ ProchƔzet
+
+
+ Friends of friends
+ Kontakty kontaktÅÆ
+
+
+ Select now who you want to make friends with.
+ Vyberte koho chcete pÅidat mezi svĆ© kontakty.
+
+
+ Show me:
+ Ukaž mi:
+
+
+ Make friend with these peers
+ PÅidat tyto protÄjÅ”ky do kontaktÅÆ
+
RetroShare ID
RetroShare ID
+
+ Use RetroShare ID for adding a Friend which is available in your network.
+ PoužĆt RetroShareID k pÅidĆ”nĆ kontaktu dostupnĆ©ho ve vaŔà sĆti.
+
+
+ Add Friends RetroShare ID...
+ PÅidat kontakty RetroShare ID...
+
+
+ Paste Friends RetroShare ID in the box below
+ Vložte RetroShare ID vaÅ”ich kontaktÅÆ do textovĆ©ho pole nĆže
+
+
+ Enter the RetroShare ID of your Friend, e.g. Peer@BDE8D16A46D938CF
+ Zadejte RetroShare ID vaÅ”eho kontaktu, napÅ. Franta@BDE8D16A46D938CF
+
RetroShare is better with Friends
@@ -3104,7 +3532,27 @@ Double click on it to add his name on text writer.
Email
-
+ Invite Friends by Email
+ PozvÄte kontakty emailem
+
+
+ Enter your friends' email addresses (separate each one with a semicolon)
+ Zadejte emailovĆ© adresy vaÅ”ich kontaktÅÆ oddÄlenĆ© stÅednĆkem.
+
+
+ Your friends' email addresses:
+ Emailové adresy vaŔich kontaktů:
+
+
+ Enter Friends Email addresses
+ Vložte emailové adresy vaŔich kontaktů
+
+
+ Subject:
+ PÅedmÄt:
+
+
+
@@ -3120,32 +3568,40 @@ Double click on it to add his name on text writer.
Podrobnosti požadavku
-
+
Peer details
Podrobnosti o kontaktu
-
+
Name:
JmƩno:
+
+ Email:
+ Email:
+
+
+ Node:
+ Uzel:
+
Location:
UmĆstÄnĆ:
-
+
Options
Možnosti
-
+
<html><head/><body><p>This box expects your friend's Retroshare certificate. WARNING: this is different from your friend's profile key. Do not paste your friend's profile key here (not even a part of it). It's not going to work.</p></body></html>
-
+
Add friend to group:
PÅidat do skupiny:
@@ -3155,7 +3611,7 @@ Double click on it to add his name on text writer.
Autentizovat kontakt (podepsat PGP klĆÄ), potvrzuje vaÅ”i plnou dÅÆvÄru,nelze vzĆt zpÄt!
-
+
Please paste below your friend's Retroshare ID
@@ -3180,22 +3636,16 @@ Double click on it to add his name on text writer.
-
- Signers:
-
-
-
-
- Known IP:
-
-
-
-
+
Add as friend to connect with
PÅidat jako kontakt pro pÅĆmĆ© spojenĆ
-
+ To accept the Friend Request, click the Finish button.
+ Klikni na "Finish" pro pÅidĆ”nĆ kontaktu
+
+
+
Sorry, some error appeared
Je to smutnĆ©, ale doÅ”lo k nÄjakĆ© chybÄ
@@ -3215,27 +3665,32 @@ Double click on it to add his name on text writer.
Detaily vaŔeho kontaktu:
-
+
Key validity:
Validita klĆÄe:
-
+
Profile ID:
-
+
+ Signers
+ Podepsali
+
+
+
<html><head/><body><p><span style=" font-size:10pt;">Signing a friend's key is a way to express your trust into this friend, to your other friends. The signatures below cryptographically attest that owners of the listed keys recognise the current PGP key as authentic.</span></p></body></html>
-
+
This peer is already on your friend list. Adding it might just set it's ip address.
Tento protÄjÅ”ek se již nachĆ”zĆ ve vaÅ”em seznamu kontaktÅÆ. Jeho opÄtovnĆ© pÅidĆ”nĆ může nanejvýŔ nastavit jeho novou IP adresu.
-
+
To accept the Friend Request, click the Accept button.
@@ -3281,17 +3736,45 @@ Double click on it to add his name on text writer.
-
+
Certificate Load Failed
NaÄĆtĆ”nĆ certifikĆ”tu selhalo
-
+ Cannot get peer details of PGP key %1
+ Nelze zĆskat podrobnost o PGP klĆÄi %1
+
+
+ Any peer I've not signed
+ NepodepsanƩ kontakty
+
+
+ Friends of my friends who already trust me
+ Kontakty kontaktÅÆ kterĆ© mi již dÅÆvÄÅujĆ
+
+
+ Signed peers showing as denied
+ PodepsanĆ© protÄjÅ”ky zobrazenĆ© jako odmĆtnutĆ©
+
+
+ Peer name
+ JmĆ©no protÄjÅ”ku
+
+
+ Also signed by
+ PodepsÔn také (kým):
+
+
+ Peer id
+ ID protÄjÅ”ku
+
+
+
Not a valid Retroshare certificate!
-
+
RetroShare Invitation
PozvĆ”nka do RetroShare - sociĆ”lnĆ P2P sĆtÄ zamÄÅenĆ© pÅedevÅ”Ćm na sdĆlenĆ souborÅÆ.
@@ -3311,12 +3794,12 @@ Warning: In your File-Transfer option, you select allow direct download to No.
-
+
This is your own certificate! You would not want to make friend with yourself. Wouldn't you?
-
+
@@ -3324,7 +3807,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
-
+
This key is already on your trusted list
@@ -3364,7 +3847,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
ŽÔdost o pÅidĆ”nĆ do kontaktu od:
-
+
Profile password needed.
@@ -3389,7 +3872,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
-
+
Valid Retroshare ID
@@ -3399,7 +3882,55 @@ Warning: In your File-Transfer option, you select allow direct download to No.
-
+ Certificate Load Failed:file %1 not found
+ NaÄtenĆ certifikĆ”tu selhalo: soubor %1 nebyl nalezen
+
+
+ This Peer %1 is not available in your Network
+ ProtÄjÅ”ek %1 nenĆ ve vaŔà sĆti dostupný.
+
+
+ Use new certificate format (safer, more robust)
+ NynĆ je použĆvĆ”n starý (zpÄtnÄ kompatibilnĆ) formĆ”t certifikĆ”tu (kliknutĆm pÅepnete na nový).
+
+
+ Use old (backward compatible) certificate format
+ NynĆ je použĆvĆ”n nový formĆ”t certifikĆ”tu (bezpeÄnÄjŔà a odolnÄjÅ”Ć).
+
+
+ Remove signatures
+ Odstranit podpisy
+
+
+ RetroShare Invite
+ PozvƔnka do RetroShare
+
+
+ Connect Friend Help
+ Informace
+
+
+ You can copy this text and send it to your friend via email or some other way
+ V hornĆ ÄĆ”sti okna prÅÆvodce se nachĆ”zĆ vÔŔ PGP certifikĆ”t, který musĆte nÄjakým zpÅÆsobem poslat vaÅ”emu kontaktu, napÅĆklad pomocĆ emailu, skypu, facebooku, výmÄnou na fóru nebo jakkoliv jinak, můžete použĆt cokoliv ÄĆm si posĆlĆ”te textovĆ© zprĆ”vy. VÔŔ kontakt vĆ”m rovnÄž musĆ zaslat svÅÆj certifikĆ”t, takže si je vlastnÄ vymÄnĆte. Vy zkopĆrujete a vložĆte jeho certifikĆ”t do textovĆ©ho pole v dolnĆ ÄĆ”sti obrazovky prÅÆvodce, a on udÄlĆ” to samĆ© s vÔŔĆm certifikĆ”tem. Pokud vÅ”e funguje jak mĆ”, mÄlo by se vĆ”m podaÅit navĆ”zat pÅĆmĆ© spojenĆ.
+
+O vaÅ”em PGP certifikĆ”tu: VÔŔ PGP který obsahuje jedineÄný veÅejný klĆÄ vaŔà identity, a ve spodnĆ ÄĆ”sti takĆ© vaŔà lokĆ”lnĆ a veÅejnou IP adresu a umĆstÄnĆ. Kontaktu jemuž tento certifikĆ”t poÅ”lete byste proto mÄli alespoÅ elementĆ”rnÄ dÅÆvÄÅovat. Podle ĆŗÄelu použitĆ tohoto programu se může jednat o Äleny vaŔà rodiny, pÅĆ”tele Äi obchodnĆ kontakty, ale takĆ© tÅeba lidi z druhĆ©ho konce svÄta, o kterých jedinĆ© co s jistotou vĆte je, že sdĆlĆte spoleÄnĆ© zĆ”jmy.
+
+SpojenĆ: Abyste se mohli spojit, musĆ alespoÅ jeden z vĆ”s mĆt veÅejnou IP adresu, pÅĆpadnÄ musĆte být napojeni na nÄkoho kdo ji mĆ” a posloužà jako prostÅednĆk (tzv. proxy) pro pÅeposĆlĆ”nĆ zprĆ”v, souborÅÆ a ostatnĆch typÅÆ dat.
+
+Program RetroShare vĆ”m umožÅuje vytvoÅit si vlastnĆ sociĆ”lnĆ sĆÅ„, kterĆ” vĆ”m zajistĆ lepŔà soukromĆ, protože vaÅ”e data nejsou uklĆ”dĆ”na v poÄĆtaÄĆch velkých firem, ale pouze u vĆ”s a vaÅ”ich kontaktÅÆ. Protože si ji ale musĆte vybudovat vy sami pÄknÄ od pĆky, je dobrĆ© k zĆskĆ”vĆ”nĆ nových kontaktÅÆ využĆt existujĆcĆch sociĆ”lnĆch a komunikaÄnĆch služeb kterĆ© již užĆvĆ”te.
+
+RetroShare neaspiruje na to být nejlepŔà sociĆ”lnĆ sĆtĆ, mĆ” svĆ© mouchy a problĆ©my, ale jeho hlavnĆ devizou je prĆ”vÄ možnost vytvoÅit ÄĆ”steÄnÄ anonymnĆ P2P sĆÅ„, v nĆž můžete relativnÄ bezpeÄnÄ sdĆlet soubory a diskutovat, pÅi vhodnĆ© volbÄ pÅezdĆvky a kontaktÅÆ dokonce zĆskĆ”te i jistou mĆru anonymity.
+
+
+ Your Cert is copied to Clipboard, paste and send it to your friend via email or some other way
+ VÔŔ certifikĆ”t byl zkopĆrovĆ”n do schrĆ”nky, vložte ho do zprĆ”vy kterou poÅ”lete vaÅ”emu kontaktu emailem Äi jiným zpÅÆsobem.
+
+
+ Save as...
+ Uložit jako...
+
+
+
RetroShare Certificate (*.rsc );;All Files (*)
@@ -3438,7 +3969,11 @@ Warning: In your File-Transfer option, you select allow direct download to No.
*** Nic ***
-
+ Use as direct source, when available
+ Stahovat pÅĆmo od pokud možno
+
+
+
IP-Addr:
@@ -3448,7 +3983,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
-
+
Show Advanced options
@@ -3467,13 +4002,41 @@ Warning: In your File-Transfer option, you select allow direct download to No.
<html><head/><body><p>Peers that have this option cannot connect if their connection address is not in the whitelist. This protects you from traffic forwarding attacks. When used, rejected peers will be reported by "security feed items" in the News Feed section. From there, you can whitelist/blacklist their IP. Applies to all locations of the same node.</p></body></html>
+
+ Recommend many friends to each others
+ DoporuÄit kontakty jiným kontaktÅÆm
+
+
+ Friend Recommendations
+ DoporuÄenĆ© kontakty
+
+
+ Message:
+ ZprƔva:
+
+
+ Recommend friends
+ DoporuÄit kontakty
+
+
+ To
+ Pro
+
+
+ Please select at least one friend for recommendation.
+ ProsĆm zvol alespoÅ jeden kontakt pro doporuÄenĆ
+
+
+ Please select at least one friend as recipient.
+ ProsĆm zvol alespoÅ jednoho pÅĆjemce
+
Add key to keyring
PÅidat klĆÄ do klĆÄenky
-
+
This key is already in your keyring
Tento klĆÄ je již v klĆÄence
@@ -3489,7 +4052,7 @@ pro posĆlĆ”nĆ napÅ. zprĆ”v uzlÅÆm,
kterĆ© nemĆ”te pÅĆmo v kontaktech.
-
+
Certificate has wrong version number. Remember that v0.6 and v0.5 networks are incompatible.
NesprĆ”vnĆ” verze certifikĆ”tu. RetroShare verze 0,6 a 0,5 jsou vzĆ”jemnÄ nekompatibilnĆ.
@@ -3524,7 +4087,7 @@ kterĆ© nemĆ”te pÅĆmo v kontaktech.
PÅidat IP do whitelist
-
+
No IP in this certificate!
V certifikÔtu nenà IP adresa!
@@ -3534,10 +4097,27 @@ kterĆ© nemĆ”te pÅĆmo v kontaktech.
<p>V certifikĆ”tu nenĆ IP adresa. Discovery a DHT se ji pokusĆ najĆt. Po jejĆm nalezenĆ se v UdĆ”lostech objevĆ bezpeÄnostnĆ upozornÄnĆ, pomocĆ kterĆ©ho můžete tuto adresu pÅidat do whitelist pro ĆŗspÄÅ”nĆ© spojenĆ.</p>
-
+
+ [Unknown]
+
+
+
+
Added with certificate from %1
PÅidĆ”n s certifikĆ”tem od %1
+
+ Paste Cert of your friend from Clipboard
+ Vložit certifikÔt vaŔeho kontaktu ze schrÔnky
+
+
+ Certificate Load Failed:can't read from file %1
+ NaÄtenĆ certifikĆ”tu selhalo: nemůžu pÅeÄĆst soubor %1
+
+
+ Certificate Load Failed:something is wrong with %1
+ NaÄtenĆ certifikĆ”tu selhalo: nÄco je Å”patnÄ s %1
+
ConnectProgressDialog
@@ -3599,7 +4179,7 @@ kterĆ© nemĆ”te pÅĆmo v kontaktech.
-
+
UDP Setup
ZkouÅ”Ćm UDP
@@ -3627,7 +4207,7 @@ p, li { white-space: pre-wrap; }
-
+
Connection Assistant
Pokus o spojenĆ - informace
@@ -3637,20 +4217,17 @@ p, li { white-space: pre-wrap; }
NeplatnƩ ID kontaktu
-
-
+
Unknown State
NeznÔmý stav
-
-
+
Offline
Odpojen
-
-
+
Behind Symmetric NAT
Za symetrickým NAT
@@ -3660,14 +4237,12 @@ p, li { white-space: pre-wrap; }
Za NAT & bez DHT
-
-
+
NET Restart
NET Restart
-
-
+
Behind NAT
Za NAT
@@ -3677,8 +4252,7 @@ p, li { white-space: pre-wrap; }
Bez DHT
-
-
+
NET STATE GOOD!
STAV SĆTÄ V POÅĆDKU
@@ -3703,7 +4277,7 @@ p, li { white-space: pre-wrap; }
HledƔm RS uzly
-
+
Lookup requires DHT
Vyžaduje zapnuté DHT
@@ -3995,7 +4569,7 @@ p, li { white-space: pre-wrap; }
ProsĆm zopakujte import kompletnĆho certifikĆ”tu
-
+
@@ -4003,8 +4577,7 @@ p, li { white-space: pre-wrap; }
nedostupnƩ
-
-
+
UNVERIFIABLE FORWARD!
NEOVÄÅITELNĆ FORWARD!
@@ -4014,7 +4587,7 @@ p, li { white-space: pre-wrap; }
NEOVÄÅITELNĆ FORWARD & BEZ DHT!
-
+
Searching
VyhledƔvƔm
@@ -4050,12 +4623,12 @@ p, li { white-space: pre-wrap; }
Detail Kruhu
-
+
Name
JmƩno
-
+
<html><head/><body><p>The circle name, contact author and invited member list will be visible to all invited members. If the circle is not private, it will also be visible to neighbor nodes of the nodes who host the invited members.</p></body></html>
@@ -4075,7 +4648,7 @@ p, li { white-space: pre-wrap; }
-
+
IDs
ID
@@ -4095,18 +4668,18 @@ p, li { white-space: pre-wrap; }
Filtr
-
+
Cancel
ZruŔit
-
+
Nickname
PÅezdĆvka
-
+
Invited Members
@@ -4121,7 +4694,15 @@ p, li { white-space: pre-wrap; }
-
+ ID
+ ID
+
+
+ Type
+ Typ
+
+
+
Name:
JmƩno:
@@ -4161,19 +4742,19 @@ p, li { white-space: pre-wrap; }
-
-
+
+
RetroShare
RetroShare
-
+
Please set a name for your Circle
Nastavte prosĆm jmĆ©no vaÅ”eho Kruhu
-
+
No Restriction Circle Selected
NevybrÔno žÔdné omezenà Kruhu
@@ -4183,24 +4764,12 @@ p, li { white-space: pre-wrap; }
NevybrÔny žÔdné limity Kruhu
-
- Circle created
-
-
-
-
- Your new circle has been created:
- Name: %1
- Id: %2.
-
-
-
-
+
[Unknown]
-
+
Add
PÅidat
@@ -4210,7 +4779,7 @@ p, li { white-space: pre-wrap; }
Odstranit
-
+
Search
Hledat
@@ -4225,6 +4794,10 @@ p, li { white-space: pre-wrap; }
Signed
PodepsƔno
+
+ Signed by known nodes
+ PodepsÔno znÔmými uzly
+
Edit Circle
@@ -4241,6 +4814,10 @@ p, li { white-space: pre-wrap; }
PGP Identity
PGP identita
+
+ Anon Id
+ AnonymnĆ ID
+
Circle name
@@ -4263,13 +4840,17 @@ p, li { white-space: pre-wrap; }
-
+
Create
VytvoÅit
-
+ PGP Linked Id
+ PGP link ID
+
+
+
Add Member
@@ -4288,7 +4869,7 @@ p, li { white-space: pre-wrap; }
VytvoÅit skupinu
-
+
Group Name:
JmƩno skupiny:
@@ -4323,7 +4904,7 @@ p, li { white-space: pre-wrap; }
CreateGxsChannelMsg
-
+
New Channel Post
PÅidat pÅĆspÄvek
@@ -4333,7 +4914,7 @@ p, li { white-space: pre-wrap; }
ZprƔva
-
+
Post
@@ -4394,11 +4975,23 @@ p, li { white-space: pre-wrap; }
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/images/feedback_arrow.png" /><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;"> PÅetĆ”hni soubory zde nebo klikni na PÅidat soubory.</span></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><img src=":/images/feedback_arrow.png" /><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;"> ZkopĆruj/Vlož RetroShare odkazy ze svých sdĆlenĆ</span></p></body></html>
+
+ Add File to Attach
+ PÅiložit soubor
+
Add Channel Thumbnail
Nastavit obrƔzek
+
+ Message
+ ZprƔva
+
+
+ Subject :
+ PÅedmÄt:
+
@@ -4484,17 +5077,17 @@ p, li { white-space: pre-wrap; }
-
+
RetroShare
RetroShare
-
+
This file already in this post:
-
+
Post refers to non shared files
@@ -4513,18 +5106,17 @@ p, li { white-space: pre-wrap; }
The following files will only be shared for 30 days. Think about adding them to a shared directory.
+
+ File already Added and Hashed
+ Soubor je již pÅidĆ”n a zatÅĆdÄn
+
Please add a Subject
ProsĆm zadejte pÅedmÄt
-
- Cannot publish post
-
-
-
-
+
Load thumbnail picture
NahrƔt miniaturu
@@ -4539,12 +5131,18 @@ p, li { white-space: pre-wrap; }
Skrýt
-
+
+
Generate mass data
Generovat hromadné údaje
-
+
+ Do you really want to generate %1 messages ?
+ Opravdu chcete vygenerovat %1 zprƔv?
+
+
+
You are about to add files you're not actually sharing. Do you still want this to happen?
Chcete pÅidat soubory, kterĆ© vÅ”ak pÅĆmo nesdĆlĆte. Opravdu?
@@ -4578,7 +5176,7 @@ p, li { white-space: pre-wrap; }
CreateGxsForumMsg
-
+
Post Forum Message
Odeslat pÅĆspÄvek na fórum
@@ -4587,6 +5185,10 @@ p, li { white-space: pre-wrap; }
Forum
Fórum
+
+ Subject
+ PÅedmÄt
+
Attach File
@@ -4607,8 +5209,8 @@ p, li { white-space: pre-wrap; }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'MS Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8.25pt;"><br /></p></body></html>
+</style></head><body style=" font-family:'MS Sans Serif'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Sans Serif';"><br /></p></body></html>
@@ -4627,7 +5229,7 @@ p, li { white-space: pre-wrap; }
PÅetĆ”hnutĆm do tohoto okna můžete pÅiložit soubory
-
+
Post
@@ -4657,17 +5259,17 @@ p, li { white-space: pre-wrap; }
-
+
No Forum
ŽÔdné fórum
-
+
In Reply to
Reakce na
-
+
Title
Nadpis
@@ -4720,7 +5322,7 @@ Do you want to discard this message?
NahrƔt soubor s obrƔzkem
-
+
No compatible ID for this forum
@@ -4730,8 +5332,8 @@ Do you want to discard this message?
-
-
+
+
Generate mass data
Generovat hromadné údaje
@@ -4740,6 +5342,10 @@ Do you want to discard this message?
Do you really want to generate %1 messages ?
Opravdu chcete vygenerovat %1 zprƔv?
+
+ Send
+ Odeslat
+
Post as
@@ -4754,7 +5360,23 @@ Do you want to discard this message?
CreateLobbyDialog
-
+ Create Chat Lobby
+ VytvoÅit konverzaÄnĆ mĆstnost
+
+
+ A chat lobby is a decentralized and anonymous chat group. All participants receive all messages. Once the lobby is created you can invite other friends from the Friends tab.
+ KonverzaÄnĆ mĆstnosti jsou decentralizovanĆ© a anonymnĆ konverzaÄnĆ skupiny (chat). VÅ”ichni ĆŗÄastnĆci obdržà vždy vÅ”echny zprĆ”vy. Jakmile je skupina vytvoÅena, můžete pozvat dalŔà kontakty (v zĆ”ložce Kontakty).
+
+
+ Lobby name:
+ JmĆ©no mĆstnosti:
+
+
+ Lobby topic:
+ TƩma konverzace:
+
+
+
A chat room is a decentralized and anonymous chat group. All participants receive all messages. Once the room is created you can invite other friend nodes with invite button on top right.
@@ -4789,7 +5411,7 @@ Do you want to discard this message?
-
+
Create
VytvoÅit
@@ -4799,7 +5421,7 @@ Do you want to discard this message?
ZruŔit
-
+
require PGP-signed identities
@@ -4814,7 +5436,11 @@ Do you want to discard this message?
Zvolte kontakty, s nimiž chcete uskuteÄnit skupinovou konverzaci
-
+ Invited friends
+ PozvanƩ kontakty
+
+
+
Create Chat Room
@@ -4835,7 +5461,7 @@ Do you want to discard this message?
Kontakty:
-
+
Identity to use:
PoužitÔ identita:
@@ -4843,17 +5469,17 @@ Do you want to discard this message?
CryptoPage
-
+
Public Information
VeÅejnĆ© informace
-
+
Name:
JmƩno:
-
+
Location:
UmĆstÄnĆ:
@@ -4863,12 +5489,12 @@ Do you want to discard this message?
ID lokace:
-
+
Software Version:
Verze RetroShare :
-
+
Online since:
PÅipojen od:
@@ -4888,7 +5514,12 @@ Do you want to discard this message?
-
+
+ <html><head/><body><p>Use this to export your profile key. You can then import it in a different computer and make a new node with the same profile. Doing so, existing friends that you also add to the new node will automatically recognise that new node as friend.</p></body></html>
+
+
+
+
Export
@@ -4898,7 +5529,7 @@ Do you want to discard this message?
-
+
Other Information
DalŔà informace
@@ -4908,12 +5539,17 @@ Do you want to discard this message?
-
+
Profile
-
+
+ Certificate
+ CertifikƔt
+
+
+
<html><head/><body><p>This option includes all signatures of your profile key. Signatures are not mandatory, but only a way to express your trust in some particular profile.</p></body></html>
@@ -4923,7 +5559,11 @@ Do you want to discard this message?
Zahrnout podpisy
-
+ Save Key into a file
+ Uložit klĆÄ do souboru
+
+
+
Export Identity
Exportovat identitu
@@ -4997,33 +5637,33 @@ tam ji importujte.
-
+
TextLabel
Textový popisek
-
+
PGP fingerprint:
PGP otisk:
-
+
+ Node information
+ Informace o uzlu
+
+
+
PGP Id :
PGP ID :
-
+
Friend nodes:
-
- <html><head/><body><p>Use this button to export your profile key. You can then import it in a different computer and make a new node with the same profile. Doing so, existing friends that you also add to the new node will automatically recognise that new node as friend.</p></body></html>
-
-
-
-
+
<html><head/><body><p>The short format only contains the profile fingerprint, and authentication is based on the node ID (ID of the SSL key). If you choose the old (long) format, the certificate includes the full profile public key. There is no fundamental difference between making friends with either method, because the public profile keys will be exchanged and checked w.r.t. the fingerprint after connection.</p></body></html>
@@ -5062,6 +5702,14 @@ tam ji importujte.
Node
Uzel
+
+ Create new node...
+ VytvoÅte nový uzel...
+
+
+ show statistics window
+ Zobrazit statistiky
+
DHTGraphSource
@@ -5113,7 +5761,7 @@ tam ji importujte.
DLListDelegate
-
+
B
B
@@ -5781,7 +6429,7 @@ tam ji importujte.
DownloadToaster
-
+
Start file
Spustit soubor
@@ -5789,38 +6437,38 @@ tam ji importujte.
ExprParamElement
-
+
-
+
to
pro
-
+
ignore case
ignorovat pÅĆpady
-
-
- yyyy-MM-dd
-
+
+
+ dd.MM.yyyy
+ dd.MM.yyyy
-
-
+
+
KB
KB
-
-
+
+
MB
MB
-
-
+
+
GB
GB
@@ -5828,12 +6476,12 @@ tam ji importujte.
ExpressionWidget
-
+
Expression Widget
Výrazný Widget
-
+
Delete this expression
Odstranit tento výraz
@@ -5995,7 +6643,7 @@ tam ji importujte.
FilesDefs
-
+
Picture
ObrƔzek
@@ -6005,7 +6653,7 @@ tam ji importujte.
Video
-
+
Audio
Audio
@@ -6065,21 +6713,11 @@ tam ji importujte.
C
C
-
-
- APK
-
-
-
-
- DLL
-
-
FlatStyle_RDM
-
+
Friends Directories
SdĆlenĆ© soubory a složky mých kontaktÅÆ
@@ -6201,7 +6839,7 @@ tam ji importujte.
-
+
ID
ID
@@ -6243,7 +6881,7 @@ tam ji importujte.
Zobrazit skupiny
-
+
Group
Skupina
@@ -6279,7 +6917,7 @@ tam ji importujte.
PÅidat do skupiny
-
+
Search
@@ -6295,7 +6933,7 @@ tam ji importujte.
-
+
Profile details
@@ -6532,7 +7170,7 @@ at least one peer was not added to a group
FriendRequestToaster
-
+
Confirm Friend Request
Potvrdit pÅidĆ”nĆ kontaktu
@@ -6549,6 +7187,10 @@ at least one peer was not added to a group
FriendSelectionWidget
+
+ Search :
+ Hledat :
+
Sort by state
@@ -6570,7 +7212,7 @@ at least one peer was not added to a group
Hledat kontakty
-
+
Mark all
OznaÄit vÅ”e
@@ -6581,132 +7223,16 @@ at least one peer was not added to a group
-
- FriendServerControl
-
-
- Server onion address:
-
-
-
-
- <html><head/><body><p>Enter here the onion address of the Friend Server that was given to you. The address will be automatically checked after you enter it and a green bullet will appear if the server is online.</p></body></html>
-
-
-
-
- Onion address of the friend server
-
-
-
-
- <html><head/><body><p>Communication port of the server. You usually get a server address as somestring.onion:port. The port is the number right after ":"</p></body></html>
-
-
-
-
- Retroshare passphrase:
-
-
-
-
- <html><head/><body><p>Your Retroshare login passphrase is needed to ensure the security of data exchange with the friend server.</p></body></html>
-
-
-
-
- Your retroshare passphrase
-
-
-
-
- On/Off
-
-
-
-
- Friends to request:
-
-
-
-
- Auto accept received certificates as friends
-
-
-
-
- Auto-accept
-
-
-
-
- Name
-
-
-
-
- Node ID
-
-
-
-
- Address
-
-
-
-
- Status
- Status
-
-
-
- <h1><img width="%1" src=":/icons/help_64.png"> Friend Server</h1> <p>This configuration panel allows you to specify the onion address of a friend server. Retroshare will talk to that server anonymously through Tor and use it to acquire a fixed number of friends.</p> <p>The friend server will continue supplying new friends until that number is reached in particular if you add your own friends manually, the friend server may become useless and you will save bandwidth disabling it. When disabling it, you will keep existing friends.</p> <p>The friend server only knows your peer ID and profile public key. It doesn't know your IP address.</p>
-
-
-
-
- Make friend
- PÅidat kontakt
-
-
-
- Missing profile passphrase.
-
-
-
-
- Your profile passphrase is missing. Please enter is in the field below before enabling the friend server.
-
-
-
-
- Trying to contact friend server
-This may take up to 1 min.
-
-
-
-
- Friend server is currently reachable.
-
-
-
-
- The proxy is not enabled or broken.
-Are all services up and running fine??
-Also check your ports!
-
-
-
FriendsDialog
-
+
Edit status message
Editovat status
-
-
+
+
Broadcast
Rozhlas
@@ -6789,38 +7315,33 @@ Also check your ports!
Nastavit výchozà font
-
+
Keyring
KlĆÄenka
-
+
+ <h1><img width="32" src=":/icons/help_64.png"> Network</h1> <p>The Network tab shows your friend Retroshare nodes: the neighbor Retroshare nodes that are connected to you. </p> <p>You can group nodes together to allow a finer level of information access, for instance to only allow some nodes to see some of your files.</p> <p>On the right, you will find 3 useful tabs: <ul> <li>Broadcast sends messages to all connected nodes at once</li> <li>Local network graph shows the network around you, based on discovery information</li> <li>Keyring contains node keys you collected, mostly forwarded to you by your friend nodes</li> </ul> </p>
+
+
+
+
Retroshare broadcast chat: messages are sent to all connected friends.
RetroShare rozhlas: zprĆ”va je odeslĆ”na vÅ”em pÅipojeným kontaktÅÆm.
-
-
+
+
Network
SĆÅ„
-
- Friend Server
-
-
-
-
+
Network graph
SĆÅ„ový graf
-
- <h1><img width="%1" src=":/icons/help_64.png"> Network</h1><p>The Network tab shows your friend Retroshare nodes: the neighbor Retroshare nodes that are connected to you.</p><p>You can group nodes together to allow a finer level of information access, for instance to only allow some nodes to see some of your files.</p><p>On the right, you will find 3 useful tabs: <ul> <li>Broadcast sends messages to all connected nodes at once</li> <li>Local network graph shows the network around you, based on discovery information</li> <li>Keyring contains node keys you collected, mostly forwarded to you by your friend nodes</li> </ul> </p>
-
-
-
-
+
Set your status message here.
Zde napiÅ” svÅÆj status.
@@ -6838,17 +7359,7 @@ Also check your ports!
Heslo
-
- SAMv3 support is not available
-
-
-
-
- I2P instance address with SAMv3 enabled
-
-
-
-
+
All fields are required with a minimum of 3 characters
VÅ”echny prvky vyžadujĆ zadĆ”nĆ alespoÅ tÅĆ znakÅÆ.
@@ -6858,12 +7369,17 @@ Also check your ports!
Hesla nejsou stejnĆ”
-
+
Port
Port
-
+
+ Use BOB
+
+
+
+
This password is for PGP
Heslo pro PGP
@@ -6884,38 +7400,38 @@ Also check your ports!
Nemůžu vygenerovat nový certifikĆ”t, možnĆ” jste Å”patnÄ napsali PGP heslo!
-
+
PGP Key Length
-
-
+
+
<html><head/><body><p>Put a strong password here. This password protects your private node key!</p></body></html>
-
+
<html><head/><body><p>Please move your mouse around in order to collect as much randomness as possible. A minimum of 20% is needed to create your node keys.</p></body></html>
-
+
Standard node
-
+
<html><head/><body><p>Your node name designates the Retroshare instance that</p><p>will run on this computer.</p></body></html>
-
+
Node name
-
+
Node type:
@@ -6935,12 +7451,12 @@ Also check your ports!
-
+
<html><head/><body><p>The profile name identifies you over the network.</p><p>It is used by your friends to accept connections from you.</p><p>You can create multiple Retroshare nodes with the</p><p>same profile on different computers.</p><p><br/></p></body></html>
-
+
Export this profle
@@ -6950,43 +7466,42 @@ Also check your ports!
-
+
<html><head/><body><p>This should be a Tor Onion address of the form: xa76giaf6ifda7ri63i263.onion <br/>or an I2P address in the form: [52 characters].b32.i2p </p><p>In order to get one, you must configure either Tor or I2P to create a new hidden service / server tunnel. </p><p>You can also leave this blank now, but your node will only work if you correctly set the Tor/I2P service address in Options->Network->Hidden Service configuration panel.</p></body></html>
-
- Use I2P
-
-
-
-
+
<html><head/><body><p>Identities are used when you write in chat rooms, forums and channel comments. </p><p>They also receive/send email over the Retroshare network. You can create</p><p>a signed identity now, or do it later on when you get to need it.</p></body></html>
-
+
Go!
-
-
+
+
TextLabel
Textový popisek
-
+ Advanced options
+ PokroÄilĆ© volby
+
+
+
hidden address
-
+
Your profile is associated with a PGP key pair. RetroShare currently ignores DSA keys.
VÔŔ profil je spojen s PGP pĆ”rem klĆÄÅÆ. V souÄasnĆ© dobÄ RetroShare ignoruje DSA klĆÄe.
-
+
<html><head/><body><p>This is your connection port.</p><p>Any value between 1024 and 65535 </p><p>should be ok. You can change it later.</p></body></html>
<html><head/><body><p>Port pro komunikaci.</p><p>Hodnota mezi 1024 a 65535 </p><p>by mÄla být OK. Můžete to zmÄnit pak pozdÄji.</p></body></html>
@@ -7034,13 +7549,13 @@ a vytvoÅit nový node využĆvajĆcĆ stejný profil.
Profil se nepodaÅilo uložit, protože nastala chyba.
-
+
Import profile
Importovat profil
-
+
Create new profile and new Retroshare node
@@ -7050,7 +7565,7 @@ a vytvoÅit nový node využĆvajĆcĆ stejný profil.
-
+
Tor/I2P address
@@ -7085,7 +7600,7 @@ a vytvoÅit nový node využĆvajĆcĆ stejný profil.
-
+
<html><p>Put a strong password here. This password will be required to start your Retroshare node and protects all your data.</p></html>
@@ -7095,7 +7610,12 @@ a vytvoÅit nový node využĆvajĆcĆ stejný profil.
-
+
+ BOB support is not available
+
+
+
+
<p>Node creation is disabled until all fields correctly set.</p>
@@ -7105,7 +7625,12 @@ a vytvoÅit nový node využĆvajĆcĆ stejný profil.
-
+
+ I2P instance address with BOB enabled
+
+
+
+
I2P instance address
@@ -7331,13 +7856,36 @@ a vytvoÅit nový node využĆvajĆcĆ stejný profil.
ZaÄĆnĆ”me
-
+
Invite Friends
Pozvat pÅĆ”telĆ©
-
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">RetroShare is nothing without your Friends. Click on the Button to start the process.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Email an Invitation with your "ID Certificate" to your friends.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Be sure to get their invitation back as well... </span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">You can only connect with friends if you have both added each other.</span></p></body></html>
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Bez kontaktÅÆ nestojĆ RetroShare za nic. KliknÄte na tlaÄĆtko a pozvÄte novĆ© lidi!</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">PoÅ”lete pozvĆ”nku s vaÅ”Ćm "certifikĆ”tem" vaÅ”im pÅĆ”telÅÆm.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">UjistÄte se, že vĆ”m takĆ© poÅ”lou pozvĆ”nku... </span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Můžete se spojit pouze tehdy, pokud jste se do kontaktÅÆ pÅidali navzĆ”jem.</span></p></body></html>
+
+
+
Add Your Friends to RetroShare
PÅidat tvoje pÅĆ”tele do Retroshare
@@ -7347,103 +7895,89 @@ a vytvoÅit nový node využĆvajĆcĆ stejný profil.
PÅidat pÅĆ”tele
-
- Connect To Friends
- PÅipojit k pÅĆ”telÅÆm
-
-
-
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">RetroShare is nothing without your Friends. Click on the Button to start the process.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Email an Invitation with your "ID Certificate" to your friends.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Be sure to get their invitation back as well... </span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">You can only connect with friends if you have both added each other.</span></p></body></html>
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Be Online at the same time as your friends, and RetroShare will automatically connect you!</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Your client needs to find the RetroShare Network before it can make connections.</span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">This takes 5-30 minutes the first time you start up RetroShare</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">The DHT indicator (in the Status Bar) turns Green when it can make connections.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">After a couple of minutes, the NAT indicator (also in the Status Bar) switch to Yellow or Green.</span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">If it remains Red, then you have a Nasty Firewall, that RetroShare struggles to connect through.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Look in the Further Help section for more advice about connecting.</span></p></body></html>
-
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">When your friends send you their invitations, click to open the Add Friends window.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Paste your Friends' "ID Certificates" into the window and add them as friends.</span></p></body></html>
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">You can improve your Retroshare performance by opening an External Port. </span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">This will speed up connections and allow more people to connect with you. </span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">The easiest way to do this is by enabling UPnP on your Wireless Box or Router.</span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">As each router is different, you will need to find out your Router Model and search the Internet for instructions.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">If none of this makes sense to you, don't worry about it Retroshare will still work.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"></p></body></html>
-
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Be Online at the same time as your friends, and RetroShare will automatically connect you!</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Your client needs to find the RetroShare Network before it can make connections.</span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">This takes 5-30 minutes the first time you start up RetroShare</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">The DHT indicator (in the Status Bar) turns Green when it can make connections.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">After a couple of minutes, the NAT indicator (also in the Status Bar) switch to Yellow or Green.</span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">If it remains Red, then you have a Nasty Firewall, that RetroShare struggles to connect through.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Look in the Further Help section for more advice about connecting.</span></p></body></html>
-
-
-
-
- Advanced: Open Firewall Port
- PokroÄĆlĆ©: OtevÅený Port Firewallu
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">You can improve your Retroshare performance by opening an External Port. </span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">This will speed up connections and allow more people to connect with you. </span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">The easiest way to do this is by enabling UPnP on your Wireless Box or Router.</span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">As each router is different, you will need to find out your Router Model and search the Internet for instructions.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">If none of this makes sense to you, don't worry about it Retroshare will still work.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p></body></html>
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Having trouble getting started with RetroShare?</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">1) Look at the FAQ Wiki. This is a bit old, we are trying to bring it up to date.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">2) Check out the Online Forums. Ask questions and discuss features.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">3) Try the Internal RetroShare Forums </span></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;"> - These come online once you are connected to friends.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">4) If you are still stuck. Email us.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Enjoy Retrosharing</span></p></body></html>
-
+
+ Connect To Friends
+ PÅipojit k pÅĆ”telÅÆm
+
+
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html><head><meta name="qrichtext" content="1" /><style type="text/css">
+p, li { white-space: pre-wrap; }
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">When your friends send you their invitations, click to open the Add Friends window.</span></p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:12pt;"></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Paste your Friends' "ID Certificates" into the window and add them as friends.</span></p></body></html>
+
+
+
+
+ Advanced: Open Firewall Port
+ PokroÄĆlĆ©: OtevÅený Port Firewallu
+
+
+
Further Help and Support
DalŔà pomoc a podpora
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
-<html><head><meta name="qrichtext" content="1" /><style type="text/css">
-p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Having trouble getting started with RetroShare?</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">1) Look at the FAQ Wiki. This is a bit old, we are trying to bring it up to date.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">2) Check out the Online Forums. Ask questions and discuss features.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">3) Try the Internal RetroShare Forums </span></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;"> - These come online once you are connected to friends.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">4) If you are still stuck. Email us.</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:12pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Enjoy Retrosharing</span></p></body></html>
-
-
-
-
+
Open RS Website
OtevÅĆt webovou strĆ”nku RetroShare
@@ -7468,7 +8002,7 @@ p, li { white-space: pre-wrap; }
EmailovĆ” zpÄtnĆ” vazba
-
+
RetroShare Invitation
PozvƔnka do RetroShare
@@ -7522,12 +8056,12 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
RetroShare zpÄtnĆ” vazba
-
+
RetroShare Support
RetroShare Podpora
-
+
It has many features, including built-in chat, messaging,
@@ -7651,7 +8185,7 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
GroupChatToaster
-
+
Show Group Chat
Zobrazit skupinovou konverzaci
@@ -7659,7 +8193,7 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
GroupChooser
-
+
[Unknown]
@@ -7829,7 +8363,7 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
GroupTreeWidget
-
+
Title
Nadpis
@@ -7842,12 +8376,12 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
-
+
Description
Popis
-
+
Number of Unread message
@@ -7872,7 +8406,19 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
-
+ Sort by Name
+ SeÅadit podle jmĆ©na
+
+
+ Sort by Popularity
+ SeÅadit podle oblĆbenosti
+
+
+ Sort by Last Post
+ SeÅadit podle poslednĆho pÅĆspÄvku
+
+
+
You are admin (modify names and description using Edit menu)
@@ -7887,14 +8433,14 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
-
-
+
+
Last Post
PoslednĆ pÅĆspÄvek
-
+
Name
@@ -7905,13 +8451,17 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
Popularita
-
+
Never
-
+ Display
+ Zobrazit
+
+
+
<html><head/><body><p>Searches a single keyword into the reachable network.</p><p>Objects already provided by friend nodes are not reported.</p></body></html>
@@ -7924,7 +8474,7 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
GuiExprElement
-
+
and
a
@@ -8060,7 +8610,7 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
GxsChannelDialog
-
+
Channels
KanƔly
@@ -8071,22 +8621,22 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
VytvoÅit kanĆ”l
-
+
Enable Auto-Download
Zapnout automatickĆ© stahovĆ”nĆ
-
+
My Channels
Moje kanƔly
-
- <h1><img width="%1" src=":/icons/help_64.png"> Channels</h1><p>Channels allow you to post data (e.g. movies, music) that will spread in the network</p><p>You can see the channels your friends are subscribed to, and you automatically forward subscribed channels to your friends. This promotes good channels in the network.</p><p>Only the channel's creator can post on that channel. Other peers in the network can only read from it, unless the channel is private. You can however share the posting rights or the reading rights with friend Retroshare nodes.</p><p>Channels can be made anonymous, or attached to a Retroshare identity so that readers can contact you if needed. Enable "Allow Comments" if you want to let users comment on your posts.</p><p>Channel posts are kept for %2 days, and sync-ed over the last %3 days, unless you change this.</p><p>UI Tip: use Control + mouse wheel to control image size in the thumbnail view.</p>
+
+ <h1><img width="32" src=":/icons/help_64.png"> Channels</h1> <p>Channels allow you to post data (e.g. movies, music) that will spread in the network</p> <p>You can see the channels your friends are subscribed to, and you automatically forward subscribed channels to your friends. This promotes good channels in the network.</p> <p>Only the channel's creator can post on that channel. Other peers in the network can only read from it, unless the channel is private. You can however share the posting rights or the reading rights with friend Retroshare nodes.</p> <p>Channels can be made anonymous, or attached to a Retroshare identity so that readers can contact you if needed. Enable "Allow Comments" if you want to let users comment on your posts.</p> <p>Channel posts are kept for %1 days, and sync-ed over the last %2 days, unless you change this.</p> <p>UI Tip: use Control + mouse wheel to control image size in the thumbnail view.</p>
-
+
Subscribed Channels
OdebĆranĆ© kanĆ”ly
@@ -8106,12 +8656,12 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
-
+
Disable Auto-Download
Vypnout automatickĆ© stahovĆ”nĆ
-
+
Set download directory
@@ -8146,22 +8696,22 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
-
+
Play
PÅehrĆ”t
-
+
Open folder
-
+
Open file
-
+
Error
Chyba
@@ -8181,17 +8731,17 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
-
+
Are you sure that you want to cancel and delete the file?
-
+
Can't open folder
-
+
Play File
PÅehrĆ”t soubor
@@ -8201,10 +8751,33 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
Soubor %1 neexistuje.
+
+ GxsChannelFilesWidget
+
+ Form
+ FormulĆ”Å
+
+
+ Filename
+ JmƩno souboru
+
+
+ Size
+ Velikost
+
+
+ Title
+ Nadpis
+
+
+ Status
+ Status
+
+
GxsChannelGroupDialog
-
+
Create New Channel
VytvoÅit nový kanĆ”l
@@ -8242,19 +8815,9 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
GxsChannelGroupItem
-
- Last activity
-
-
-
-
- TextLabel
- Textový popisek
-
-
-
- Subscribe this Channel
-
+
+ Subscribe to Channel
+ OdebĆrat kanĆ”l
@@ -8268,7 +8831,7 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
-
+
Expand
Rozbalit
@@ -8283,7 +8846,7 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
Popis kanƔlu
-
+
Loading
NahrƔvƔm
@@ -8298,9 +8861,8 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
-
- Never
-
+ New Channel
+ Nový kanÔl
@@ -8311,7 +8873,7 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
GxsChannelPostItem
-
+
New Comment:
@@ -8332,7 +8894,7 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
-
+
Play
PÅehrĆ”t
@@ -8394,18 +8956,18 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
Skrýt
-
+
New
Nový
-
+
0
0
-
-
+
+
Comment
KomentĆ”Åe
@@ -8420,17 +8982,21 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
-
+ Loading
+ NahrƔvƔm
+
+
+
Loading...
-
+
Comments
-
+
Post
@@ -8455,16 +9021,67 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
PÅehrĆ”t
+
+ GxsChannelPostsWidget
+
+ Post to Channel
+ PÅidat pÅĆspÄvek do kanĆ”lu
+
+
+ Loading
+ NahrƔvƔm
+
+
+ Title
+ Nadpis
+
+
+ Search Title
+ Hledat podle jména fóra
+
+
+ Message
+ Text pÅĆspÄvku
+
+
+ Filename
+ JmƩno souboru
+
+
+ No Channel Selected
+ Nenà vybrÔn žÔdný kanÔl
+
+
+ Disable Auto-Download
+ Vypnout automatickĆ© stahovĆ”nĆ
+
+
+ Enable Auto-Download
+ Zapnout automatickĆ© stahovĆ”nĆ
+
+
+ Feeds
+ KanƔly
+
+
+ Files
+ Soubory
+
+
+ Description:
+ Popis:
+
+
GxsChannelPostsWidgetWithModel
-
+
Post to Channel
PÅidat pÅĆspÄvek do kanĆ”lu
-
+
Add new post
@@ -8534,7 +9151,7 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
- Items (locally / at friends):
+ Posts (locally / at friends):
@@ -8570,7 +9187,7 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
-
+
Comments
KomentĆ”Åe
@@ -8585,13 +9202,13 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
KanƔly
-
-
+
+
Click to switch to list view
-
+
Show unread posts only
@@ -8606,7 +9223,7 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
-
+
No text to display
@@ -8621,7 +9238,7 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
-
+
Switch to list view
@@ -8681,22 +9298,12 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
-
+
Comments (%1)
-
- Loading...
-
-
-
-
- No posts available in this channel.
-
-
-
-
+
[No name]
@@ -8771,13 +9378,12 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
-
-
+
Copy Retroshare link
-
+
Subscribed
PÅihlÔŔen
@@ -8828,17 +9434,17 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
GxsCircleItem
-
+
TextLabel
Textový popisek
-
+
Circle name:
-
+
Accept
@@ -8953,7 +9559,7 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
GxsCommentContainer
-
+
Comment Container
@@ -8966,7 +9572,7 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
FormulĆ”Å
-
+
<html><head/><body><p><span style=" font-family:'-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol'; font-size:14px; color:#24292e; background-color:#ffffff;">sort by</span></p></body></html>
@@ -8996,7 +9602,7 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
-
+
Comment
KomentĆ”Åe
@@ -9035,7 +9641,7 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
GxsCommentTreeWidget
-
+
Reply to Comment
Reagovat na komentĆ”Å
@@ -9059,21 +9665,6 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
Vote Down
Palec dolu
-
-
- Show Author
-
-
-
-
- Cannot vote
-
-
-
-
- Error while voting:
-
-
GxsCreateCommentDialog
@@ -9083,7 +9674,7 @@ PÅi použĆvĆ”nĆ sĆtÄ proto pokud možno použĆvejte pouhou pÅezdĆvku, ne
-
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
@@ -9112,7 +9703,7 @@ p, li { white-space: pre-wrap; }
-
+
Post
@@ -9143,7 +9734,7 @@ before you can comment
-
+
It remains %1 characters after HTML conversion.
@@ -9194,7 +9785,7 @@ before you can comment
GxsForumGroupItem
-
+
Subscribe to Forum
OdebĆrat fórum
@@ -9210,7 +9801,7 @@ before you can comment
-
+
Expand
Rozbalit
@@ -9230,9 +9821,8 @@ before you can comment
-
- TextLabel
- Textový popisek
+ Loading
+ NahrƔvƔm
@@ -9263,13 +9853,13 @@ before you can comment
GxsForumMsgItem
-
-
+
+
Subject:
PÅedmÄt:
-
+
Unsubscribe To Forum
NeodebĆrat fórum
@@ -9280,7 +9870,7 @@ before you can comment
-
+
Expand
Rozbalit
@@ -9300,17 +9890,21 @@ before you can comment
-
+ Loading
+ NahrƔvƔm
+
+
+
Loading...
-
+
Forum Feed
-
+
Hide
Skrýt
@@ -9323,66 +9917,63 @@ before you can comment
FormulĆ”Å
-
+
Start new Thread for Selected Forum
Založit nové vlÔkno ve vybraném fóru
-
- Threaded
-
-
-
-
-
-
- ...
- ...
-
-
-
- Flat
-
-
-
-
- Latest post in thread
-
-
-
-
+
Search forums
Hledat ve fórech
-
+ Last Post
+ PoslednĆ pÅĆspÄvek
+
+
+
New Thread
+
+
+ Threaded View
+ podle vlƔken
+
+
+
+ Flat View
+ VŔe za sebou
+
-
+
Title
Nadpis
-
-
+
+
Date
Datum
-
+
Author
Autor
-
+
+ Save image
+
+
+
+
Loading
NaÄĆtĆ”m
-
+
<html><head/><body><p>Click here to clear current selected thread and display more information about this forum.</p></body></html>
@@ -9392,7 +9983,12 @@ before you can comment
-
+
+ Lastest post in thread
+
+
+
+
Reply Message
OdpovÄdÄt na pÅĆspÄvek
@@ -9416,6 +10012,10 @@ before you can comment
Download all files
StÔhnout vŔechny soubory
+
+ Next unread
+ DalŔà nepÅeÄtený
+
Search Title
@@ -9432,23 +10032,31 @@ before you can comment
Hledat podle autora
-
+ Content
+ Obsah
+
+
+ Search Content
+ Hledat v obsahu zprƔvy
+
+
+
No name
Bez jmƩna
-
-
+
+
Reply
OdpovÄdÄt
-
+
<p>Subscribing to the forum will gather available posts from your subscribed friends, and make the forum visible to all other friends.</p><p>Afterwards you can unsubscribe from the context menu of the forum list at left.</p>
-
+
Loading...
@@ -9491,12 +10099,16 @@ before you can comment
KopĆrovat RetroShare odkaz
-
+
Hide
Skrýt
-
+ Expand
+ Rozbalit
+
+
+
[unknown]
@@ -9526,8 +10138,8 @@ before you can comment
-
-
+
+
Distribution
@@ -9541,6 +10153,22 @@ before you can comment
Anti-spam
+
+ Anonymous
+ AnonymnĆ sdĆlenĆ
+
+
+ signed
+ podepsƔno
+
+
+ none
+ žÔdný
+
+
+ [ ... Missing Message ... ]
+ [ ... chybÄjĆcĆ zprĆ”va ... ]
+
<p><font color="#ff0000"><b>The author of this message (with ID %1) is banned.</b>
@@ -9610,12 +10238,12 @@ before you can comment
Původnà zprÔva
-
+
New thread
-
+
Edit
Editovat
@@ -9676,7 +10304,7 @@ before you can comment
-
+
Show column
@@ -9696,7 +10324,7 @@ before you can comment
-
+
Anonymous/unknown posts forwarded if reputation is positive
@@ -9748,7 +10376,7 @@ This message is missing. You should receive it later.
-
+
No result.
@@ -9758,7 +10386,7 @@ This message is missing. You should receive it later.
-
+
Failed to retrieve this message. Is the database currently overloaded?
@@ -9773,7 +10401,7 @@ This message is missing. You should receive it later.
-
+
(Latest)
@@ -9839,12 +10467,12 @@ This message is missing. You should receive it later.
GxsForumsDialog
-
- <h1><img width="%1" src=":/icons/help_64.png"> Forums</h1><p>Retroshare Forums look like internet forums, but they work in a decentralized way</p><p>You see forums your friends are subscribed to, and you forward subscribed forums to your friends. This automatically promotes interesting forums in the network.</p><p>Forum messages are kept for %2 days and sync-ed over the last %3 days, unless you configure it otherwise.</p>
+
+ <h1><img width="32" src=":/icons/help_64.png"> Forums</h1> <p>Retroshare Forums look like internet forums, but they work in a decentralized way</p> <p>You see forums your friends are subscribed to, and you forward subscribed forums to your friends. This automatically promotes interesting forums in the network.</p> <p>Forum messages are kept for %1 days and sync-ed over the last %2 days, unless you configure it otherwise.</p>
-
+
Forums
Fórum
@@ -9875,16 +10503,31 @@ This message is missing. You should receive it later.
Ostatnà fóra
+
+ GxsForumsFillThread
+
+ Waiting
+ ÄekĆ”m
+
+
+ Retrieving
+ Stahuji
+
+
+ Loading
+ NaÄĆtĆ”m
+
+
GxsGroupDialog
-
+
Name
Jméno uživatele
-
+
Key recipients can publish to restricted-type group and can view and publish for private-type channels
@@ -9893,14 +10536,22 @@ This message is missing. You should receive it later.
Share Publish Key
+
+ check peers you would like to share private publish key with
+ zaÅ”krtnÄte protÄjÅ”ky s nimiž chcete sdĆlet soukromý klĆÄ k publikaÄnĆmu prĆ”vu
+
+
+ Share Key With
+ SdĆlet klĆÄ s
+
-
+
Description
Popis
-
+
Message Distribution
@@ -9908,7 +10559,7 @@ This message is missing. You should receive it later.
-
+
Public
VeÅejnĆ©
@@ -9968,7 +10619,7 @@ This message is missing. You should receive it later.
-
+
Comments:
KomentĆ”Åe:
@@ -9991,7 +10642,7 @@ This message is missing. You should receive it later.
-
+
All People
@@ -10007,12 +10658,12 @@ This message is missing. You should receive it later.
-
+
Restricted to circle:
-
+
Limited to your friends
@@ -10029,23 +10680,23 @@ This message is missing. You should receive it later.
-
+
Message tracking
-
-
+
+
PGP signature required
-
+
Never
-
+
Only friends nodes in group
@@ -10061,28 +10712,22 @@ This message is missing. You should receive it later.
Detaily
-
+
PGP signature from known ID required
-
-
- [None]
-
-
-
-
+
Load Group Logo
-
+
Submit Group Changes
-
+
Owner:
@@ -10092,12 +10737,12 @@ This message is missing. You should receive it later.
-
+
Info
-
+
ID
ID
@@ -10107,7 +10752,7 @@ This message is missing. You should receive it later.
PoslednĆ pÅĆspÄvek
-
+
<html><head/><body><p>Messages will spread way beyond your friend nodes, as long as people subscribe to the channel/forum/posted you're creating.</p></body></html>
@@ -10182,12 +10827,7 @@ This message is missing. You should receive it later.
-
- Author:
-
-
-
-
+
Popularity
Popularita
@@ -10203,22 +10843,27 @@ This message is missing. You should receive it later.
-
+
Created
-
+
Cancel
ZruŔit
-
+
Create
VytvoÅit
-
+
+ Author
+ Autor
+
+
+
GxsIdLabel
@@ -10226,7 +10871,7 @@ This message is missing. You should receive it later.
GxsGroupFrameDialog
-
+
Loading
NahrƔvƔm
@@ -10286,7 +10931,7 @@ This message is missing. You should receive it later.
-
+
Synchronise posts of last...
@@ -10343,12 +10988,12 @@ This message is missing. You should receive it later.
-
+
Search for
-
+
Copy RetroShare Link
KopĆrovat RetroShare odkaz
@@ -10371,7 +11016,7 @@ This message is missing. You should receive it later.
GxsIdChooser
-
+
No Signature
@@ -10384,14 +11029,18 @@ This message is missing. You should receive it later.
GxsIdDetails
-
+ Loading
+ NahrƔvƔm
+
+
+
Not found
-
-
+
+
[Banned]
@@ -10401,7 +11050,7 @@ This message is missing. You should receive it later.
-
+
Loading...
@@ -10411,12 +11060,7 @@ This message is missing. You should receive it later.
-
- [Nobody]
-
-
-
-
+
Identity name
@@ -10436,14 +11080,6 @@ This message is missing. You should receive it later.
-
- GxsIdLabel
-
-
- [Nobody]
-
-
-
GxsIdStatistics
@@ -10455,7 +11091,7 @@ This message is missing. You should receive it later.
GxsIdStatisticsWidget
-
+
Total identities:
@@ -10503,13 +11139,17 @@ This message is missing. You should receive it later.
GxsIdTreeItemDelegate
-
+
[Unknown]
GxsMessageFramePostWidget
+
+ Loading
+ NahrƔvƔm
+
Loading...
@@ -10890,7 +11530,7 @@ This message is missing. You should receive it later.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:9pt; font-weight:400; font-style:normal;">
<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">RetroShare is an Open Source cross-platform, </span></p>
<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">private and secure decentralized communication platform. </span></p>
<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-weight:600;">It lets you share securely your friends, </span></p>
@@ -10906,7 +11546,7 @@ p, li { white-space: pre-wrap; }
-
+
Authors
AutoÅi
@@ -10925,7 +11565,7 @@ p, li { white-space: pre-wrap; }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:9pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600;">RetroShare Translations:</span></p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://retroshare.sourceforge.net/wiki/index.php/Translation"><span style=" font-family:'MS Shell Dlg 2'; text-decoration: underline; color:#0000ff;">http://retroshare.sourceforge.net/wiki/index.php/Translation</span></a></p>
@@ -10999,7 +11639,7 @@ p, li { white-space: pre-wrap; }
FormulĆ”Å
-
+
Add friend
@@ -11009,7 +11649,7 @@ p, li { white-space: pre-wrap; }
-
+
<html><head/><body><p>Share your RetroShare ID</p></body></html>
@@ -11037,7 +11677,7 @@ private and secure decentralized communication platform.
-
+
Did you receive a Retroshare ID from a friend?
@@ -11047,7 +11687,7 @@ private and secure decentralized communication platform.
-
+
Copy your Cert to Clipboard
KopĆrovat vÔŔ certifikĆ”t do schrĆ”nky
@@ -11057,7 +11697,7 @@ private and secure decentralized communication platform.
Uložit vÔŔ certifikÔt do souboru
-
+
Send via Email
@@ -11077,37 +11717,13 @@ private and secure decentralized communication platform.
-
- Include current local IP
-
-
-
-
- Include current external IP
-
-
-
-
- Include my DNS
-
-
-
-
- Include all IPs history
-
-
-
-
- <h1><img width="%1" src=":/icons/help_64.png"> Welcome to Retroshare!</h1><p>You need to <b>make friends</b>! After you create a network of friends or join an existing network, you'll be able to exchange files, chat, talk in forums, etc. </p><div align="center"><IMG width="%2" height="%3" src=":/images/network_map.png" style="display: block; margin-left: auto; margin-right: auto; "/></div><p>To do so, copy your Retroshare ID on this page and send it to friends, and add your friends' Retroshare ID.</p><p>Another option is to search the internet for "Retroshare chat servers" (independently administrated). These servers allow you to exchange Retroshare ID with a dedicated Retroshare node, through which you will be able to anonymously meet other people.</p>
-
-
-
-
+
+
Include all your known IPs
-
+
Use old certificate format
@@ -11119,12 +11735,12 @@ new short format
-
+
Use new (short) certificate format
-
+
Your Retroshare certificate is copied to Clipboard, paste and send it to your friend via email or some other way
@@ -11139,7 +11755,12 @@ new short format
PozvƔnka do RetroShare
-
+
+ <h1><img width="%1" src=":/icons/help_64.png"> Welcome to Retroshare!</h1> <p>You need to <b>make friends</b>! After you create a network of friends or join an existing network, you'll be able to exchange files, chat, talk in forums, etc. </p> <div align=center> <IMG align="center" width="%2" src=":/images/network_map.png"/> </div> <p>To do so, copy your Retroshare ID on this page and send it to friends, and add your friends' Retroshare ID.</p> <p>Another option is to search the internet for "Retroshare chat servers" (independently administrated). These servers allow you to exchange Retroshare ID with a dedicated Retroshare node, through which you will be able to anonymously meet other people.</p>
+
+
+
+
Save as...
Uložit jako...
@@ -11404,14 +12025,14 @@ p, li { white-space: pre-wrap; }
IdDialog
-
-
-
+
+
+
All
VŔe
-
+
Reputation
@@ -11421,12 +12042,12 @@ p, li { white-space: pre-wrap; }
Hledat
-
+
Anonymous Id
-
+
Create new Identity
VytvoÅit novou identitu
@@ -11436,7 +12057,7 @@ p, li { white-space: pre-wrap; }
-
+
Persons
@@ -11451,27 +12072,27 @@ p, li { white-space: pre-wrap; }
-
+
Close
ZavÅĆt
-
+
Ban-option:
-
+
Auto-Ban all identities signed by the same node
-
+
Friend votes:
-
+
Positive votes
@@ -11487,39 +12108,29 @@ p, li { white-space: pre-wrap; }
-
+
Created on :
-
- Auto-Ban profile
-
-
-
-
+
<html><head/><body><p><span style=" font-family:'Sans'; font-size:9pt;">Your own opinion about an identity rules the visibility of that identity for yourself and your friend nodes. Your own opinion is shared among friends and used to compute a reputation score: If your opinion about an identity is neutral, the reputation score is the difference between friend's positive and negative opinions. If not, your own opinion gives the score.</span></p><p><span style=" font-family:'Sans'; font-size:9pt;">The overall score is used in chat lobbies, forums and channels to decide on the actions to take for each specific identity. When the overall score is lower than -1, the identity is banned, which prevents all messages and forums/channels authored by this identity to be forwarded, both ways. Some forums also have special anti-spam flags that require a non negative reputation level, making them more sensitive to bad opinions. Banned identities gradually lose their activity and eventually disappear (after 5 days).</span></p><p><span style=" font-family:'Sans'; font-size:9pt;">You can change the thresholds and the time of inactivity to delete identities in preferences -> people. </span></p></body></html>
-
- Edit Identity
-
-
-
-
+
Usage statistics
-
+
Circles
Okruhy lidĆ
-
+
Circle name
@@ -11539,20 +12150,18 @@ p, li { white-space: pre-wrap; }
OsobnĆ Kruhy
-
+
-
Edit identity
-
-
+
Delete identity
-
+
Chat with this peer
@@ -11562,78 +12171,78 @@ p, li { white-space: pre-wrap; }
-
+
Owner node ID :
-
+
Identity name :
-
+
()
-
+
Identity ID
-
+
Send message
Odeslat zprƔvu
-
+
Identity info
-
+
Identity ID :
-
+
Owner node name :
-
+
Create new...
-
+
Type:
Typ:
-
+
Send Invite
-
+
<html><head/><body><p>Average opinion of neighbor nodes about this identity. Negative is bad,</p><p>positive is good. Zero is neutral.</p></body></html>
-
+
Your opinion:
-
+
Negative
-
+
Neutral
@@ -11644,17 +12253,17 @@ p, li { white-space: pre-wrap; }
-
+
<html><head/><body><p>Overall reputation score, accounting for yours and your friends'.</p><p>Negative is bad, positive is good. Zero is neutral. If the score is too low,</p><p>the identity is flagged as bad, and will be filtered out in forums, chat lobbies,</p><p>channels, etc.</p></body></html>
-
+
Overall:
-
+
Anonymous
AnonymnĆ sdĆlenĆ
@@ -11669,24 +12278,24 @@ p, li { white-space: pre-wrap; }
-
+
This identity is owned by you
-
-
+
+
My own identities
-
-
+
+
My contacts
-
+
Show Items
@@ -11701,12 +12310,7 @@ p, li { white-space: pre-wrap; }
-
- <h1><img width="%1" src=":/icons/help_64.png"> Identities</h1><p>In this tab you can create/edit <b>pseudo-anonymous identities</b>, and <b>circles</b>.</p><p><b>Identities</b> are used to securely identify your data: sign messages in chat lobbies, forum and channel posts, receive feedback using the Retroshare built-in email system, post comments after channel posts, chat using secured tunnels, etc.</p><p>Identities can optionally be <b>signed</b> by your Retroshare node's certificate. Signed identities are easier to trust but are easily linked to your node's IP address.</p><p><b>Anonymous identities</b> allow you to anonymously interact with other users. They cannot be spoofed, but noone can prove who really owns a given identity.</p><p><b>Circles</b> are groups of identities (anonymous or signed), that are shared at a distance over the network. They can be used to restrict the visibility to forums, channels, etc. </p><p>An <b>circle</b> can be restricted to another circle, thereby limiting its visibility to members of that circle or even self-restricted, meaning that it is only visible to invited members.</p>
-
-
-
-
+
Other circles
@@ -11716,7 +12320,7 @@ p, li { white-space: pre-wrap; }
-
+
Circle ID:
@@ -11791,7 +12395,7 @@ p, li { white-space: pre-wrap; }
-
+
Identity ID:
@@ -11821,7 +12425,7 @@ p, li { white-space: pre-wrap; }
neznƔmƩ
-
+
Invited
@@ -11836,7 +12440,7 @@ p, li { white-space: pre-wrap; }
-
+
Edit Circle
Upravit Kruh
@@ -11884,7 +12488,7 @@ p, li { white-space: pre-wrap; }
-
+
This identity has a unsecure fingerprint (It's probably quite old).
You should get rid of it now and use a new one.
@@ -11892,7 +12496,7 @@ These identities will soon be not supported anymore.
-
+
[Unknown node]
@@ -11935,7 +12539,7 @@ These identities will soon be not supported anymore.
-
+
Boards
@@ -11977,7 +12581,7 @@ These identities will soon be not supported anymore.
Message
- ZprƔva
+
@@ -12015,7 +12619,7 @@ These identities will soon be not supported anymore.
-
+
information
@@ -12031,12 +12635,17 @@ These identities will soon be not supported anymore.
-
+
Banned
-
+
+ <h1><img width="32" src=":/icons/help_64.png"> Identities</h1> <p>In this tab you can create/edit <b>pseudo-anonymous identities</b>, and <b>circles</b>.</p> <p><b>Identities</b> are used to securely identify your data: sign messages in chat lobbies, forum and channel posts, receive feedback using the Retroshare built-in email system, post comments after channel posts, chat using secured tunnels, etc.</p> <p>Identities can optionally be <b>signed</b> by your Retroshare node's certificate. Signed identities are easier to trust but are easily linked to your node's IP address.</p> <p><b>Anonymous identities</b> allow you to anonymously interact with other users. They cannot be spoofed, but noone can prove who really owns a given identity.</p> <p><b>Circles</b> are groups of identities (anonymous or signed), that are shared at a distance over the network. They can be used to restrict the visibility to forums, channels, etc. </p> <p>An <b>circle</b> can be restricted to another circle, thereby limiting its visibility to members of that circle or even self-restricted, meaning that it is only visible to invited members.</p>
+
+
+
+
positive
@@ -12141,7 +12750,7 @@ These identities will soon be not supported anymore.
-
+
Add to Contacts
@@ -12191,21 +12800,21 @@ These identities will soon be not supported anymore.
-
-
-
+
+
+
People
-
+
Your Avatar
Click here to change your avatar
-
+
Linked to neighbor nodes
@@ -12215,7 +12824,7 @@ These identities will soon be not supported anymore.
-
+
Linked to a friend Retroshare node
@@ -12230,7 +12839,7 @@ These identities will soon be not supported anymore.
-
+
Chat with this person
@@ -12245,12 +12854,12 @@ These identities will soon be not supported anymore.
-
+
Last used:
-
+
+50 Known PGP
@@ -12270,12 +12879,12 @@ These identities will soon be not supported anymore.
-
+
Owned by
-
+
Node name:
@@ -12285,7 +12894,7 @@ These identities will soon be not supported anymore.
-
+
Really delete?
@@ -12293,7 +12902,7 @@ These identities will soon be not supported anymore.
IdEditDialog
-
+
Nickname
PÅezdĆvka
@@ -12323,13 +12932,7 @@ These identities will soon be not supported anymore.
-
-
- Use the mouse to zoom and adjust the image for your avatar. Hit Del to remove it.
-
-
-
-
+
New identity
@@ -12343,7 +12946,7 @@ These identities will soon be not supported anymore.
-
+
@@ -12353,12 +12956,7 @@ These identities will soon be not supported anymore.
nedostupnƩ
-
- No avatar chosen
-
-
-
-
+
Edit identity
@@ -12369,27 +12967,27 @@ These identities will soon be not supported anymore.
-
-
+
+
Profile password needed.
-
+
-
+
Identity creation failed
-
-
+
+
Cannot create an identity linked to your profile without your profile password.
-
+
Identity creation success
@@ -12409,7 +13007,7 @@ These identities will soon be not supported anymore.
-
+
Identity update failed
@@ -12419,18 +13017,12 @@ These identities will soon be not supported anymore.
-
+
Error KeyID invalid
-
-
- No Avatar chosen. A default image will be automatically displayed from your new identity.
-
-
-
-
+
Import image
@@ -12440,7 +13032,12 @@ These identities will soon be not supported anymore.
-
+
+ Use the mouse to zoom and adjust the image for your avatar.
+
+
+
+
Unknown GpgId
@@ -12450,7 +13047,7 @@ These identities will soon be not supported anymore.
-
+
Create New Identity
@@ -12460,15 +13057,10 @@ These identities will soon be not supported anymore.
Typ
-
+
Choose image...
-
-
- Remove
- Odebrat
-
@@ -12494,7 +13086,7 @@ These identities will soon be not supported anymore.
PÅidat
-
+
Create
VytvoÅit
@@ -12504,13 +13096,13 @@ These identities will soon be not supported anymore.
ZruŔit
-
+
Your Avatar
Click here to change your avatar
-
+
Linked to your profile
@@ -12520,7 +13112,7 @@ These identities will soon be not supported anymore.
-
+
The nickname is too short. Please input at least %1 characters.
@@ -12594,7 +13186,7 @@ These identities will soon be not supported anymore.
-
+
Copy
KopĆrovat
@@ -12604,12 +13196,12 @@ These identities will soon be not supported anymore.
Odebrat
-
+
%1 's Message History
-
+
Mark all
OznaÄit vÅ”e
@@ -12628,38 +13220,26 @@ These identities will soon be not supported anymore.
Quote
Citovat
+
+ Send
+ Odeslat
+
ImageUtil
-
-
+
+
Save image
- Save Picture File
-
-
-
-
- Pictures (*.png *.xpm *.jpg)
-
-
-
-
Cannot save the image, invalid filename
-
- Copy image
-
-
-
-
-
+
Not an image
@@ -12677,32 +13257,27 @@ These identities will soon be not supported anymore.
-
+
Enable RetroShare JSON API Server
-
+
Port:
Port:
-
+
Listen Address:
-
- Status:
- Status:
-
-
-
+
127.0.0.1
127.0.0.1
-
+
Token:
@@ -12723,12 +13298,7 @@ These identities will soon be not supported anymore.
- Authenticated Tokens:
-
-
-
-
- Registered services:
+ Authenticated Tokens
@@ -12737,31 +13307,26 @@ These identities will soon be not supported anymore.
-
+
JSON API
-
-
- <h1><img width="24" src=":/icons/help_64.png"> Webinterface</h1> <p>Retroshare provides a JSON API allowing other softwares to communicate with its core using token-controlled HTTP requests to http://localhost:[port]. Please refer to the Retroshare documentation for how to use this feature. </p> <p>Unless you know what you're doing, you shouldn't need to change anything in this page. The web interface for instance will automatically register its own token to the JSON API which will be visible in the list of authenticated tokens after you enable it.</p>
-
-
LocalSharedFilesDialog
-
-
+
+
Open File
OtevÅĆt soubor
-
+
Open Folder
OtevÅĆt složku
-
+
Checking...
Kontroluji...
@@ -12771,7 +13336,7 @@ These identities will soon be not supported anymore.
Zkontrolovat soubory
-
+
Recommend in a message to...
@@ -12799,7 +13364,7 @@ These identities will soon be not supported anymore.
MainWindow
-
+
Add Friend
PÅidat kontakt
@@ -12815,8 +13380,7 @@ These identities will soon be not supported anymore.
-
-
+
Options
NastavenĆ
@@ -12837,7 +13401,7 @@ These identities will soon be not supported anymore.
-
+
Quit
UkonÄit
@@ -12848,12 +13412,12 @@ These identities will soon be not supported anymore.
PrÅÆvodce nastavenĆm
-
+
RetroShare %1 a secure decentralized communication platform
RetroShare %1 - bezpeÄnĆ” decentralizovanĆ” komunikaÄnĆ platforma
-
+
Unfinished
NedokonÄeno
@@ -12878,12 +13442,11 @@ These identities will soon be not supported anymore.
-
Status
Status
-
+
Notify
Upozornit
@@ -12894,35 +13457,31 @@ These identities will soon be not supported anymore.
-
Open Messages
Zobrazit zprƔvy
-
-
+
Bandwidth Graph
Graf pÅenosovĆ© rychlosti
-
+
Applications
Aplikace
-
Help
NĆ”povÄda
-
-
+
Minimize
Minimalizovat
-
+
Maximize
Maximalizovat
@@ -12937,12 +13496,7 @@ These identities will soon be not supported anymore.
RetroShare
-
- Close window
-
-
-
-
+
%1 new message
%1 novƔ zprƔva
@@ -12972,7 +13526,7 @@ These identities will soon be not supported anymore.
%1 kontaktÅÆ pÅipojeno
-
+
Do you really want to exit RetroShare ?
Opravdu chcete ukonÄit RetroShare?
@@ -12992,7 +13546,7 @@ These identities will soon be not supported anymore.
Zobrazit
-
+
Make sure this link has not been forged to drag you to a malicious website.
UjistÄte se, že tento odkaz nebyl zfalÅ”ovĆ”n za ĆŗÄelem dostat vĆ”s na Å”kodlivĆ© webovĆ© strĆ”nky.
@@ -13037,13 +13591,12 @@ These identities will soon be not supported anymore.
-
-
+
Statistics
-
+
Show web interface
@@ -13058,7 +13611,7 @@ These identities will soon be not supported anymore.
-
+
Really quit ?
@@ -13067,17 +13620,17 @@ These identities will soon be not supported anymore.
MessageComposer
-
+
Compose
Napsat zprƔvu
-
+
Contacts
Kontakty
-
+
Paragraph
Odstavec
@@ -13113,12 +13666,12 @@ These identities will soon be not supported anymore.
Nadpis 6. ĆŗrovnÄ
-
+
Font size
Velikost fontu
-
+
Increase font size
ZvÄtÅ”it velikost fontu
@@ -13133,32 +13686,32 @@ These identities will soon be not supported anymore.
TuÄnĆ©
-
+
Italic
KurzĆva
-
+
Alignment
ZarovnĆ”nĆ
-
+
Add an Image
Vložit obrÔzek
-
+
Sets text font to code style
Zdrojový kód (nastavà neproporcionÔlnà font)
-
+
Underline
Podtržené
-
+
Subject:
PÅedmÄt:
@@ -13169,32 +13722,32 @@ These identities will soon be not supported anymore.
-
+
Tags
Å tĆtky
-
+
Address list:
-
+
Recommend this friend
-
+
Set Text color
-
+
Set Text background color
-
+
Recommended Files
DoporuÄenĆ© soubory
@@ -13264,7 +13817,7 @@ These identities will soon be not supported anymore.
OdsadĆ citaci
-
+
Send To:
Odeslat komu:
@@ -13304,7 +13857,7 @@ These identities will soon be not supported anymore.
-
+
Hello,<br>I recommend a good friend of mine; you can trust them too when you trust me. <br>
Ahoj,<br>doporuÄuji ti tento kontakt. Když dÅÆvÄÅujeÅ” mÄ, můžeÅ” dÅÆvÄÅovat takĆ© tomuto kontaktu. <br>
@@ -13324,18 +13877,18 @@ These identities will soon be not supported anymore.
si vĆ”s chce pÅidat do kontaktÅÆ.
-
+
Hi %1,<br><br>%2 wants to be friends with you on RetroShare.<br><br>Respond now:<br>%3<br><br>Thanks,<br>The RetroShare Team
Ahoj %1,<br><br>%2 si vĆ”s chce pÅidat do kontaktÅÆ.<br><br>OdpovÄzte nynĆ:<br>%3<br><br>DÄkujeme,<br>Tým RetroShare
-
-
+
+
Save Message
Uložit zprÔvu
-
+
Message has not been Sent.
Do you want to save message to draft box?
ZprƔva nebyla odeslƔna.
@@ -13347,17 +13900,7 @@ Chcete ji uložit jako koncept?
Vložit RetroShare odkaz
-
- Will not reply
-
-
-
-
- There is no point in replying to a notification message!
-
-
-
-
+
Add to "To"
PÅidat do "Komu"
@@ -13377,7 +13920,7 @@ Chcete ji uložit jako koncept?
DoporuÄit
-
+
Original Message
Původnà zprÔva
@@ -13387,21 +13930,21 @@ Chcete ji uložit jako koncept?
Od
-
+
-
+
To
Komu
-
-
+
+
Cc
Cc
-
+
Sent
OdeslƔno
@@ -13416,7 +13959,7 @@ Chcete ji uložit jako koncept?
Na %1, %2 odpovÄdÄl:
-
+
Re:
Re:
@@ -13426,30 +13969,30 @@ Chcete ji uložit jako koncept?
Fwd:
-
-
-
+
+
+
RetroShare
RetroShare
-
+
Do you want to send the message without a subject ?
Chcete odeslat zprĆ”vu bez pÅedmÄtu?
-
+
Please insert at least one recipient.
ProsĆm zadejte alespoÅ jednoho pÅĆjemce.
-
+
Bcc
Bcc
-
+
Unknown
NeznÔmý
@@ -13564,13 +14107,13 @@ Chcete ji uložit jako koncept?
Detaily
-
+
Open File...
OtevÅĆt soubor...
-
+
HTML-Files (*.htm *.html);;All Files (*)
HTML soubory (*.htm *.html);;VŔechny soubory (*)
@@ -13590,7 +14133,7 @@ Chcete ji uložit jako koncept?
Exportovat do PDF
-
+
Message has not been Sent.
Do you want to save message ?
ZprÔva nebyla odeslÔna. Chcete ji uložit?
@@ -13611,7 +14154,7 @@ Do you want to save message ?
PÅidat dalŔà soubor
-
+
Hi,<br>I want to be friends with you on RetroShare.<br>
@@ -13641,18 +14184,18 @@ Do you want to save message ?
-
-
+
+
Close
ZavÅĆt
-
+
From:
Od:
-
+
Bullet list (disc)
@@ -13692,13 +14235,13 @@ Do you want to save message ?
-
-
+
+
Thanks, <br>
-
+
Distant identity:
@@ -13708,12 +14251,12 @@ Do you want to save message ?
-
+
Please create an identity to sign distant messages, or remove the distant peers from the destination list.
-
+
Node name & id:
@@ -13791,7 +14334,7 @@ Do you want to save message ?
VýchozĆ
-
+
A new tab
NovĆ” karta
@@ -13801,7 +14344,7 @@ Do you want to save message ?
NovƩ okno
-
+
Edit Tag
Editovat Å”tĆtek
@@ -13824,7 +14367,7 @@ Do you want to save message ?
MessageToaster
-
+
Sub:
@@ -13832,7 +14375,7 @@ Do you want to save message ?
MessageUserNotify
-
+
Message
ZprƔva
@@ -13860,7 +14403,7 @@ Do you want to save message ?
MessageWidget
-
+
Recommended Files
DoporuÄenĆ© soubory
@@ -13870,37 +14413,37 @@ Do you want to save message ?
StĆ”hnou vÅ”echny doporuÄenĆ© soubory
-
+
Subject:
PÅedmÄt:
-
+
From:
Od:
-
+
To:
Pro:
-
+
Cc:
Cc:
-
+
Bcc:
Bcc:
-
+
Tags:
Å tĆtky:
-
+
Reply
OdpovÄdÄt
@@ -13940,7 +14483,7 @@ Do you want to save message ?
-
+
Send Invite
@@ -13992,7 +14535,7 @@ Do you want to save message ?
-
+
Confirm %1 as friend
@@ -14002,12 +14545,12 @@ Do you want to save message ?
PÅidat %1 do kontaktÅÆ
-
+
View source
-
+
No subject
Bez pÅedmÄtu
@@ -14017,22 +14560,17 @@ Do you want to save message ?
StƔhnout
-
+
You got an invite to make friend! You may accept this request.
-
+
You got an invite to make friend! You may accept this request and send your own Certificate back
-
- more
-
-
-
-
+
Document source
@@ -14041,24 +14579,14 @@ Do you want to save message ?
%1 (%2)
-
-
- Show less
-
-
-
-
- Show more
-
-
-
+
Download all
StÔhnout vŔe
-
+
Print Document
Vytisknout dokument
@@ -14073,12 +14601,12 @@ Do you want to save message ?
HTML soubory (*.htm *.html);;VŔechny soubory (*)
-
+
Load images always for this message
-
+
Hide the attachment pane
@@ -14100,6 +14628,42 @@ Do you want to save message ?
Compose
Napsat
+
+ Reply to selected message
+ OdpovÄdÄt na oznaÄenou zprĆ”vu
+
+
+ Reply
+ OdpovÄdÄt
+
+
+ Reply all to selected message
+ OdpovÄdÄt na oznaÄenĆ© zprĆ”vy
+
+
+ Reply all
+ OdpovÄdÄt vÅ”em
+
+
+ Forward selected message
+ PÅeposlat oznaÄenou zprĆ”vu
+
+
+ Forward
+ VpÅed
+
+
+ Remove selected message
+ Odstranit oznaÄenou zprĆ”vu
+
+
+ Delete
+ Smazat
+
+
+ Print selected message
+ Vytisknout oznaÄenou zprĆ”vu
+
Print
@@ -14178,7 +14742,7 @@ Do you want to save message ?
MessagesDialog
-
+
New Message
NovƔ zprƔva
@@ -14188,16 +14752,60 @@ Do you want to save message ?
Napsat
-
+ Reply to selected message
+ OdpovÄdÄt na oznaÄenou zprĆ”vu
+
+
+ Reply
+ OdpovÄdÄt
+
+
+ Reply all to selected message
+ OdpovÄdÄt na oznaÄenĆ© zprĆ”vy
+
+
+ Reply all
+ OdpovÄdÄt vÅ”em
+
+
+ Forward selected message
+ PÅeposlat oznaÄenou zprĆ”vu
+
+
+ Foward
+ PÅeposlat
+
+
+ Remove selected message
+ Odstranit oznaÄenou zprĆ”vu
+
+
+ Delete
+ Smazat
+
+
+ Print selected message
+ Vytisknout oznaÄenou zprĆ”vu
+
+
+ Print
+ Tisknout
+
+
+ Display
+ Zobrazit
+
+
+
-
-
+
+
Tags
Å tĆtky
-
-
+
+
Inbox
PÅĆchozĆ
@@ -14227,17 +14835,21 @@ Do you want to save message ?
KoÅ”
-
+
Total Inbox:
PÅĆchozĆ celkem:
-
+ Folders
+ Složky
+
+
+
Quick View
Zobrazit pouze
-
+
Print...
Tisknout...
@@ -14268,7 +14880,7 @@ Do you want to save message ?
PÅeposlat zprĆ”vu
-
+
Subject
PÅedmÄt
@@ -14278,7 +14890,7 @@ Do you want to save message ?
Od
-
+
Date
Datum
@@ -14288,7 +14900,39 @@ Do you want to save message ?
Obsah
-
+ Click to sort by attachments
+ SeÅazenĆ podle pÅĆloh
+
+
+ Click to sort by subject
+ SeÅadit podle pÅedmÄtu
+
+
+ Click to sort by read
+ SeÅadit podle pÅeÄtených
+
+
+ Click to sort by from
+ SeÅadit podle odesĆlatele
+
+
+ Click to sort by date
+ SeÅadit podle datumu
+
+
+ Click to sort by tags
+ SeÅadit podle Å”tĆtkÅÆ
+
+
+ Click to sort by star
+ SeÅadit podle ohvÄzdiÄkovĆ”nĆ
+
+
+ Forward selected Message
+ PÅeposlat oznaÄenou zprĆ”vu
+
+
+
Search Subject
Hledat v pÅedmÄtu zprĆ”vy
@@ -14297,11 +14941,6 @@ Do you want to save message ?
Search From
Hledat podle odesĆlatele
-
-
- Search To
-
-
Search Date
@@ -14328,14 +14967,14 @@ Do you want to save message ?
Hledat v pÅĆlohĆ”ch
-
- <h1><img width="%1" src=":/icons/help_64.png"> Messages</h1><p>Retroshare has its own internal email system. You can send/receive emails to/from connected friend nodes.</p><p>It is also possible to send messages to other people's Identities using the global routing system. These messages are always encrypted and signed, and are relayed by intermediate nodes until they reach their final destination. </p><p>Distant messages stay into your Outbox until an acknowledgement of receipt has been received.</p><p>Generally, you may use messages to recommend files to your friends by pasting file links, or recommend friend nodes to other friend nodes, in order to strengthen your network, or send feedback to a channel's owner.</p>
+
+ <h1><img width="%1" src=":/icons/help_64.png"> Messages</h1> <p>Retroshare has its own internal email system. You can send/receive emails to/from connected friend nodes.</p> <p>It is also possible to send messages to other people's Identities using the global routing system. These messages are always encrypted and signed, and are relayed by intermediate nodes until they reach their final destination. </p> <p>Distant messages stay into your Outbox until an acknowledgement of receipt has been received.</p> <p>Generally, you may use messages to recommend files to your friends by pasting file links, or recommend friend nodes to other friend nodes, in order to strengthen your network, or send feedback to a channel's owner.</p>
-
+
Starred
-
+ OhvÄzdiÄkovanĆ©
@@ -14409,7 +15048,7 @@ Do you want to save message ?
- Show in People
+ Show author in People
@@ -14423,7 +15062,7 @@ Do you want to save message ?
-
+
No message using %1 tag available.
@@ -14438,33 +15077,34 @@ Do you want to save message ?
-
- Deletion is not recommended
-
-
-
-
- Messages in this box are automatically deleted when received. Manually deleting a message does not guaranty that the message will not be delivered. Messages that cannot be delivered will however stay here indefinitly. Do you want to proceed and delete?
-
-
-
-
+
Drafts
Koncepty
-
+
No Box selected.
-
- To
- Pro
+ No starred messages available. Stars let you give messages a special status to make them easier to find. To star a message, click on the light gray star beside any message.
+ NemĆ”te ohvÄzdiÄkovanĆ© žÔdnĆ© zprĆ”vy. OhvÄzdiÄkovĆ”nĆ sloužà ke zvýraznÄnĆ zprĆ”v, abyste je mohli snĆ”ze najĆt. ZprĆ”vu ohvÄzdiÄkujete kliknutĆm na svÄtle Å”edou hvezdiÄku kterĆ©koliv zprĆ”vy nebo pomocĆ kontextovĆ©ho menu, ktere otevÅete tĆm, že na ni kliknete pravým tlaÄĆtkem myÅ”i.
-
+ No system messages available.
+ NemÔte žÔdné zprÔvy systému.
+
+
+ To
+ Pro
+
+
+ Click to sort by to
+ Pro seÅazenĆ kliknÄte
+
+
+
@@ -14472,6 +15112,10 @@ Do you want to save message ?
Total:
Celkem:
+
+ Messages
+ ZprƔvy
+
Mail
@@ -14499,17 +15143,7 @@ Do you want to save message ?
MimeTextEdit
-
- Save image
-
-
-
-
- Copy image
-
-
-
-
+
Paste as plain text
@@ -14563,7 +15197,7 @@ Do you want to save message ?
-
+
Expand
Rozbalit
@@ -14573,7 +15207,7 @@ Do you want to save message ?
Odstranit položku
-
+
from
@@ -14608,7 +15242,7 @@ Do you want to save message ?
-
+
Hide
Skrýt
@@ -14749,7 +15383,7 @@ Do you want to save message ?
ID certifikƔtu
-
+
Remove unused keys...
@@ -14759,7 +15393,7 @@ Do you want to save message ?
-
+
Clean keyring
@@ -14773,13 +15407,7 @@ Notes: Your old keyring will be backed up.
-
- You have selected %1 accepted peers among others,
- Are you sure you want to un-friend them?
-
-
-
-
+
Keyring info
@@ -14812,13 +15440,18 @@ For security, your keyring was previously backed-up to file
Data inconsistency in the keyring. This is most probably a bug. Please contact the developers.
+
+
+ Export/create a new node
+
+
Trusted keys only
-
+
Search name
@@ -14828,18 +15461,25 @@ For security, your keyring was previously backed-up to file
-
+
Profile details...
-
+
Key removal has failed. Your keyring remains intact.
Reported error:
+
+ NetworkPage
+
+ Network
+ SĆÅ„
+
+
NetworkView
@@ -14866,7 +15506,7 @@ Reported error:
NewFriendList
-
+
Offline Friends
@@ -14887,7 +15527,7 @@ Reported error:
-
+
Groups
Skupiny
@@ -14917,19 +15557,19 @@ Reported error:
-
-
+
+
Search
-
+
ID
ID
-
+
Search ID
@@ -14939,12 +15579,12 @@ Reported error:
-
+
Show Items
-
+
Last contact
@@ -14954,7 +15594,7 @@ Reported error:
IP
-
+
Group
Skupina
@@ -15069,7 +15709,7 @@ Reported error:
Zabalit vŔe
-
+
Do you want to remove this node?
Chcete odstranit tento node?
@@ -15079,7 +15719,7 @@ Reported error:
Opravdu chcete odstranit tento kontakt?
-
+
Done!
@@ -15186,7 +15826,7 @@ at least one peer was not added to a group
NewsFeed
-
+
Activity Stream
@@ -15201,7 +15841,11 @@ at least one peer was not added to a group
Smazat vŔe
-
+ This is a test.
+ Toto je test.
+
+
+
Newest on top
@@ -15211,12 +15855,12 @@ at least one peer was not added to a group
-
- <h1><img width="%1" src=":/icons/help_64.png"> Activity Feed</h1><p>The Activity Feed displays the last events on your network, sorted by the time you received them. This gives you a summary of the activity of your friends. You can configure which events to show by pressing on <b>Options</b>. </p><p>The various events shown are: <ul> <li>Connection attempts (useful to make friends with new people and control who's trying to reach you)</li> <li>Channel, Forum and Board posts</li> <li>Circle membership requests and invites</li> <li>New Channels, Forums and Boards you can subscribe to</li> <li>Channel and Board comments</li> <li>New Mail messages</li> <li>Private messages from your friends</li> </ul> </p>
+
+ <h1><img width="32" src=":/icons/help_64.png"> Activity Feed</h1> <p>The Activity Feed displays the last events on your network, sorted by the time you received them. This gives you a summary of the activity of your friends. You can configure which events to show by pressing on <b>Options</b>. </p> <p>The various events shown are: <ul> <li>Connection attempts (useful to make friends with new people and control who's trying to reach you)</li> <li>Channel, Forum and Board posts</li> <li>Circle membership requests and invites</li> <li>New Channels, Forums and Boards you can subscribe to</li> <li>Channel and Board comments</li> <li>New Mail messages</li> <li>Private messages from your friends</li> </ul> </p>
-
+
Activity
@@ -15271,6 +15915,10 @@ at least one peer was not added to a group
Blogs
Blogy
+
+ Security
+ BezpeÄnost
+
@@ -15292,6 +15940,10 @@ at least one peer was not added to a group
Message
ZprƔva
+
+ Connect attempt
+ Pokus o pÅipojenĆ
+
@@ -15445,6 +16097,10 @@ at least one peer was not added to a group
Disable All Toaster temporarily
+
+ Feed
+ KanƔl
+
Systray
@@ -15454,7 +16110,7 @@ at least one peer was not added to a group
NotifyQt
-
+
Passphrase required
@@ -15474,12 +16130,12 @@ at least one peer was not added to a group
ChybnƩ heslo!
-
+
Please enter your Retroshare passphrase
-
+
Unregistered plugin/executable
Nezaregistrovaný plugin Äi program
@@ -15494,7 +16150,19 @@ at least one peer was not added to a group
-
+ Examining shared files...
+ ProhledĆ”vĆ”m sdĆlenĆ© soubory...
+
+
+ Hashing file
+ PoÄĆtĆ”m kryptografickou sumu (hash) souboru.
+
+
+ Saving file index...
+ UklÔdÔm index souborů...
+
+
+
Test
Test
@@ -15505,19 +16173,17 @@ at least one peer was not added to a group
-
Unknown title
-
+
-
Encrypted message
-
+
For the chat lobbies to work properly, the time of your computer needs to be correct. Please check that this is the case (A possible time shift of several minutes was detected with your friends).
@@ -15525,7 +16191,7 @@ at least one peer was not added to a group
OnlineToaster
-
+
Friend Online
Kontakt je online
@@ -15664,12 +16330,7 @@ p, li { white-space: pre-wrap; }
-
- Friend options
-
-
-
-
+
These options apply to all nodes of the profile:
@@ -15678,6 +16339,10 @@ p, li { white-space: pre-wrap; }
Keysigning:
+
+ Sign PGP key
+ Podepsat PGP klĆÄ
+
<html><head/><body><p>Click here if you want to refuse connections to nodes authenticated by this key.</p></body></html>
@@ -15714,7 +16379,12 @@ p, li { white-space: pre-wrap; }
Zahrnout podpisy
-
+
+ Options
+
+
+
+
<html><head/><body><p align="justify">Retroshare periodically checks your friend lists for browsable files matching your transfers, to establish a direct transfer. In this case, your friend knows you're downloading the file.</p><p align="justify">To prevent this behavior for this friend only, uncheck this box. You can still perform a direct transfer if you explicitly ask for it, by e.g. downloading from your friend's file list. This setting is applied to all locations of the same node.</p></body></html>
@@ -15760,21 +16430,21 @@ p, li { white-space: pre-wrap; }
-
-
+
+
RetroShare
RetroShare
-
-
+
+
Error : cannot get peer details.
Chyba : nemohu zĆskat Ćŗdaje kontaktu
-
+
The supplied key algorithm is not supported by RetroShare
(Only RSA keys are supported at the moment)
@@ -15792,7 +16462,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
-
+
The trust level is a way to express your own trust in this key. It is not used by the software nor shared, but can be useful to you in order to remember good/bad keys.
@@ -15861,6 +16531,10 @@ Warning: In your File-Transfer option, you select allow direct download to No.
Check the password!
+
+ Maybe password is wrong
+ MožnĆ” že bylo Å”patnÄ zadanĆ© heslo
+
You haven't set a trust level for this key.
@@ -15868,12 +16542,12 @@ Warning: In your File-Transfer option, you select allow direct download to No.
-
+
Retroshare profile
-
+
This is your own PGP key, and it is signed by :
@@ -15899,7 +16573,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
PeerItem
-
+
Chat
Konverzace
@@ -15920,7 +16594,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
Odstranit položku
-
+
Name:
JmƩno:
@@ -15960,7 +16634,7 @@ Warning: In your File-Transfer option, you select allow direct download to No.
-
+
Write Message
Napsat zprƔvu
@@ -15974,6 +16648,10 @@ Warning: In your File-Transfer option, you select allow direct download to No.
Friend Connected
se pÅipojil.
+
+ Connect Attempt
+ se pokusil pÅipojit.
+
Connection refused by peer
@@ -16012,13 +16690,17 @@ Warning: In your File-Transfer option, you select allow direct download to No.
Unknown
+
+ Unknown Peer
+ NeznĆ”mý protÄjÅ”ek
+
Hide
Skrýt
-
+
Send Message
Poslat zprƔvu
@@ -16185,6 +16867,13 @@ Warning: In your File-Transfer option, you select allow direct download to No.
+
+ PhotoCommentItem
+
+ Form
+ FormulĆ”Å
+
+
PhotoDialog
@@ -16197,6 +16886,14 @@ Warning: In your File-Transfer option, you select allow direct download to No.
TextLabel
Textový popisek
+
+ Comment
+ KomentĆ”Åe
+
+
+ Summary
+ ShrnutĆ
+
Album / Photo Name
@@ -16257,6 +16954,10 @@ Warning: In your File-Transfer option, you select allow direct download to No.
...
...
+
+ Add Comment
+ PÅidat komentĆ”Å
+
Album
@@ -16340,17 +17041,17 @@ p, li { white-space: pre-wrap; }
-
+
My Albums
-
+
Subscribed Albums
-
+
Shared Albums
@@ -16379,7 +17080,7 @@ requesting to edit it!
PhotoSlideShow
-
+
Album Name
JmƩno alba:
@@ -16438,19 +17139,19 @@ requesting to edit it!
-
-
+
+
TextLabel
Textový popisek
-
+
Posted by
-
+
ago
@@ -16486,12 +17187,12 @@ requesting to edit it!
PluginItem
-
+
TextLabel
Textový popisek
-
+
Show more details about this plugin
@@ -16702,27 +17403,12 @@ p, li { white-space: pre-wrap; }
Podržet okno nad ostatnĆmi
-
- Ban this person (Sets negative opinion)
-
-
-
-
- Give neutral opinion
-
-
-
-
- Give positive opinion
-
-
-
-
+
Choose window color...
-
+
Dock window
@@ -16775,7 +17461,7 @@ p, li { white-space: pre-wrap; }
Nový
-
+
Vote up
@@ -16795,8 +17481,8 @@ p, li { white-space: pre-wrap; }
-
-
+
+
Comments
KomentĆ”Åe
@@ -16821,13 +17507,13 @@ p, li { white-space: pre-wrap; }
-
-
+
+
Comment
KomentĆ”Åe
-
+
Comments
@@ -16855,12 +17541,12 @@ p, li { white-space: pre-wrap; }
PostedCreatePostDialog
-
+
Create a new Post
-
+
RetroShare
RetroShare
@@ -16875,22 +17561,12 @@ p, li { white-space: pre-wrap; }
-
- Error while creating post
-
-
-
-
- An error occurred while creating the post.
-
-
-
-
+
Load Picture File
NahrƔt soubor s obrƔzkem
-
+
Post image
@@ -16906,17 +17582,7 @@ p, li { white-space: pre-wrap; }
-
- No clipboard image found.
-
-
-
-
- There is no image data in the clipboard to paste
-
-
-
-
+
Close this window?
@@ -16926,7 +17592,7 @@ p, li { white-space: pre-wrap; }
-
+
Please add a Title
@@ -16946,22 +17612,12 @@ p, li { white-space: pre-wrap; }
-
+
Post size is limited to 32 KB, pictures will be downscaled.
-
- Paste image from clipboard
-
-
-
-
- Paste Picture
-
-
-
-
+
Remove image
@@ -16976,7 +17632,7 @@ p, li { white-space: pre-wrap; }
PsƔt jako
-
+
Post
@@ -16987,7 +17643,7 @@ p, li { white-space: pre-wrap; }
-
+
You are submitting a post. The key to a successful submission is interesting content and a descriptive title.
@@ -16997,7 +17653,7 @@ p, li { white-space: pre-wrap; }
Nadpis
-
+
Link
@@ -17005,12 +17661,16 @@ p, li { white-space: pre-wrap; }
PostedDialog
-
- <h1><img width="%1" src=":/icons/help_64.png"> Boards</h1><p>The Boards service allows you to share images, blog posts & internet links, that spread among Retroshare nodes like forums and channels</p><p>Posts can be commented by subscribed users. A promotion system also gives the opportunity to enlight important links.</p><p>There is no restriction on which links are shared. Be careful when clicking on them.</p><p>Boards are kept for %2 days, and sync-ed over the last %3 days, unless you change this.</p>
+ Posted Links
+ OdeslanƩ odkazy
+
+
+
+ <h1><img width="32" src=":/icons/help_64.png"> Boards</h1> <p>The Boards service allows you to share images, blog posts & internet links, that spread among Retroshare nodes like forums and channels</p> <p>Posts can be commented by subscribed users. A promotion system also gives the opportunity to enlight important links.</p> <p>There is no restriction on which links are shared. Be careful when clicking on them.</p> <p>Boards are kept for %1 days, and sync-ed over the last %2 days, unless you change this.</p>
-
+
Boards
@@ -17044,7 +17704,7 @@ p, li { white-space: pre-wrap; }
PostedGroupDialog
-
+
Create New Board
@@ -17082,17 +17742,7 @@ p, li { white-space: pre-wrap; }
PostedGroupItem
-
- Last activity
-
-
-
-
- TextLabel
- Textový popisek
-
-
-
+
Subscribe to Posted
@@ -17108,7 +17758,7 @@ p, li { white-space: pre-wrap; }
-
+
Expand
Rozbalit
@@ -17123,17 +17773,16 @@ p, li { white-space: pre-wrap; }
-
+ Loading
+ NahrƔvƔm
+
+
+
Loading...
-
- Never
-
-
-
-
+
New Board
@@ -17146,18 +17795,18 @@ p, li { white-space: pre-wrap; }
PostedItem
-
+
0
0
-
-
+
+
Comments
KomentĆ”Åe
-
+
Copy RetroShare Link
KopĆrovat RetroShare odkaz
@@ -17168,12 +17817,12 @@ p, li { white-space: pre-wrap; }
-
+
Comment
KomentĆ”Åe
-
+
Comments
@@ -17183,7 +17832,7 @@ p, li { white-space: pre-wrap; }
-
+
Click to view Picture
@@ -17193,17 +17842,17 @@ p, li { white-space: pre-wrap; }
Skrýt
-
+
Vote up
-
+
Vote down
-
+
Set as read and remove item
OznaÄit za pÅeÄtenĆ© a odstranit položku
@@ -17213,7 +17862,7 @@ p, li { white-space: pre-wrap; }
Nový
-
+
New Comment:
@@ -17223,7 +17872,7 @@ p, li { white-space: pre-wrap; }
-
+
Name
@@ -17264,11 +17913,34 @@ p, li { white-space: pre-wrap; }
Textový popisek
-
+
Loading
NahrƔvƔm
+
+ PostedListWidget
+
+ Form
+ FormulĆ”Å
+
+
+ New
+ Nový
+
+
+ Top
+ NahoÅe
+
+
+ Next
+ DalÅ”Ć
+
+
+ RetroShare
+ RetroShare
+
+
PostedListWidgetWithModel
@@ -17287,17 +17959,7 @@ p, li { white-space: pre-wrap; }
-
- <html><head/><body><p>Maximum number of data items (including posts, comments, votes) across friend nodes.</p></body></html>
-
-
-
-
- Items (at friends):
-
-
-
-
+
0
0
@@ -17307,15 +17969,15 @@ p, li { white-space: pre-wrap; }
-
+
-
+
unknown
neznƔmƩ
-
+
Distribution:
@@ -17325,42 +17987,42 @@ p, li { white-space: pre-wrap; }
-
+
Created
-
+
TextLabel
Textový popisek
-
+
Popularity:
-
+
+ Contributions:
+
+
+
+
Sync period:
-
- Number of subscribed friend nodes
-
-
-
-
+
Posts
-
+
Create Post
-
+
<html><head/><body><p><span style=" font-family:'-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol'; font-size:14pt; color:#24292e; background-color:#ffffff;">Select sorting</span></p></body></html>
@@ -17380,7 +18042,7 @@ p, li { white-space: pre-wrap; }
-
+
Search
@@ -17410,17 +18072,17 @@ p, li { white-space: pre-wrap; }
-
+
No files in this post, or no post selected
-
+
No posts available in this board
-
+
Click to switch to card view
@@ -17435,17 +18097,12 @@ p, li { white-space: pre-wrap; }
-
+
Copy RetroShare Link
KopĆrovat RetroShare odkaz
-
- Copy http Link
-
-
-
-
+
Show author in People tab
@@ -17455,31 +18112,27 @@ p, li { white-space: pre-wrap; }
Editovat
-
-
+
information
-
-
+
The Retrohare link was copied to your clipboard.
-
-
+
Link creation error
-
-
+
Link could not be created:
-
+
[No name]
@@ -17494,7 +18147,7 @@ p, li { white-space: pre-wrap; }
OdebĆrat
-
+
Never
@@ -17568,16 +18221,6 @@ p, li { white-space: pre-wrap; }
No Channel Selected
Nenà vybrÔn žÔdný kanÔl
-
-
- Could not vote
-
-
-
-
- Error occured while voting:
-
-
PostedPage
@@ -17667,16 +18310,16 @@ p, li { white-space: pre-wrap; }
-
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:11pt;">Select a Retroshare node key from the list below to be used on another computer, and press "Export selected key."</span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:11pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:11pt;">To create a new location on a different computer, select the identity manager in the login window. From there you can import the key file and create a new location for that key. </span></p>
-<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:11pt;"><br /></p>
-<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:11pt;">Creating a new node with the same key allows your friend nodes to accept you automatically.</span></p></body></html>
+</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;">
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Select a Retroshare node key from the list below to be used on another computer, and press "Export selected key."</p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">To create a new location on a different computer, select the identity manager in the login window. From there you can import the key file and create a new location for that key. </p>
+<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
+<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Creating a new node with the same key allows your friend nodes to accept you automatically.</p></body></html>
@@ -17788,7 +18431,7 @@ tam ji importujte.
ProfileWidget
-
+
Edit status message
Editovat status
@@ -17804,7 +18447,7 @@ tam ji importujte.
-
+
Public Information
VeÅejnĆ© informace
@@ -17839,12 +18482,12 @@ tam ji importujte.
PÅipojen od:
-
+
Other Information
DalŔà informace
-
+
My Address
@@ -17888,27 +18531,27 @@ tam ji importujte.
PulseAddDialog
-
+
Add to Pulse
-
+
Display As
-
+
URL
-
+
GroupLabel
-
+
IDLabel
@@ -17918,12 +18561,12 @@ tam ji importujte.
Od:
-
+
Head
-
+
Head Shot
@@ -17953,13 +18596,13 @@ tam ji importujte.
-
-
+
+
Whats happening?
-
+
@@ -17971,22 +18614,12 @@ tam ji importujte.
-
- Remove all images
-
-
-
-
+
Clear Display As
-
- Add Picture
-
-
-
-
+
Post
@@ -18001,7 +18634,7 @@ tam ji importujte.
-
+
Reply to Pulse
@@ -18016,24 +18649,34 @@ tam ji importujte.
-
+
Like Pulse
-
+
Hide Pictures
-
+
Add Pictures
+
+
+ PulseItem
-
- Load Picture File
- NahrƔt soubor s obrƔzkem
+ From
+ Od
+
+
+ Date
+ Datum
+
+
+ ...
+ ...
@@ -18044,7 +18687,7 @@ tam ji importujte.
FormulĆ”Å
-
+
@@ -18063,7 +18706,7 @@ tam ji importujte.
PulseReply
-
+
icn
@@ -18073,7 +18716,7 @@ tam ji importujte.
-
+
REPLY
@@ -18100,7 +18743,7 @@ tam ji importujte.
-
+
FOLLOW
@@ -18110,7 +18753,7 @@ tam ji importujte.
-
+
<html><head/><body><p><span style=" font-weight:600;">Sidler</span></p></body></html>
@@ -18130,7 +18773,7 @@ tam ji importujte.
-
+
<html><head/><body><p><span style=" color:#555753;">Replying to @sidler</span></p></body></html>
@@ -18246,7 +18889,7 @@ tam ji importujte.
-
+
FOLLOW
@@ -18254,42 +18897,37 @@ tam ji importujte.
PulseViewGroup
-
+
headshot
-
+
<html><head/><body><p><span style=" color:#555753;">@sidler_here</span></p></body></html>
-
+
<html><head/><body><p><span style=" font-weight:600;">Sidler</span></p></body></html>
-
+
<html><head/><body><p><span style=" color:#2e3436;">3:58 AM Ā· Apr 13, 2020 Ā·</span></p></body></html>
-
+
Location
-
- Edit profile
-
-
-
-
+
Tag Line
-
+
<html><head/><body><p><span style=" font-weight:600;">1.2K</span></p></body></html>
@@ -18321,7 +18959,7 @@ tam ji importujte.
-
+
FOLLOW
@@ -18329,8 +18967,8 @@ tam ji importujte.
QObject
-
-
+
+
Confirmation
PotvrzenĆ
@@ -18598,12 +19236,12 @@ Characters <b>",|,/,\,<,>,*,?</b> will be replace
Peer detaily
-
+
File Request canceled
Požadavek o stÔhnutà souboru byl zruŔen.
-
+
This version of RetroShare is using OpenPGP-SDK. As a side effect, it's not using the system shared PGP keyring, but has it's own keyring shared by all RetroShare instances. <br><br>You do not appear to have such a keyring, although PGP keys are mentioned by existing RetroShare accounts, probably because you just changed to this new version of the software.
@@ -18634,7 +19272,7 @@ Characters <b>",|,/,\,<,>,*,?</b> will be replace
Nastala neoÄekĆ”vanĆ” chyba. ProsĆm poÅ”lete hlÔŔenĆ 'RsInit::InitRetroShare unexpected return code %1'.
-
+
Cannot start Tor Manager!
@@ -18668,7 +19306,7 @@ The error reported is:"
-
+
Multiple instances
BÄžà nÄkolik isntancĆ
@@ -18687,26 +19325,6 @@ The error reported is:"
-
-
- Old certificate
-
-
-
-
- This node uses old certificate settings that are considered too weak by your current OpenSSL library version. You need to create a new node possibly using the same profile.
-
-
-
-
- Tor error
-
-
-
-
- Cannot run/configure Tor. Make sure it is installed on your system.
-
-
Distant peer has closed the chat
@@ -18786,7 +19404,7 @@ Reported error is:
-
+
You appear to have nodes associated to DSA keys:
@@ -18796,7 +19414,7 @@ Reported error is:
-
+
enabled
@@ -18806,7 +19424,7 @@ Reported error is:
-
+
Move IP %1 to whitelist
@@ -18822,7 +19440,7 @@ Reported error is:
-
+
%1 seconds ago
@@ -18889,7 +19507,7 @@ Security: no anonymous IDs
-
+
Join chat room
@@ -18917,7 +19535,7 @@ Security: no anonymous IDs
-
+
Indefinitely
@@ -19097,29 +19715,13 @@ Security: no anonymous IDs
Ban list
-
-
- Name
-
-
- Node
- Uzel
-
-
-
- Address
-
-
-
-
-
Status
Status
-
+
NXS
@@ -19312,6 +19914,10 @@ Security: no anonymous IDs
Click to resume the hashing process
+
+ <p>This certificate contains:
+ <p>Tento certifikƔt obsahuje
+
Idle
@@ -19362,18 +19968,6 @@ Security: no anonymous IDs
Server
-
-
-
- Missing channel post
-
-
-
-
-
- [System]
-
-
QuickStartWizard
@@ -19523,7 +20117,7 @@ p, li { white-space: pre-wrap; }
-
+
Network Wide
@@ -19690,7 +20284,7 @@ p, li { white-space: pre-wrap; }
FormulĆ”Å
-
+
The loading of embedded images is blocked.
@@ -19703,7 +20297,7 @@ p, li { white-space: pre-wrap; }
RSPermissionMatrixWidget
-
+
Allowed by default
@@ -19876,22 +20470,12 @@ p, li { white-space: pre-wrap; }
RSTextBrowser
-
+
View &Source
-
- Save image
-
-
-
-
- Copy image
-
-
-
-
+
Document source
@@ -19899,12 +20483,12 @@ p, li { white-space: pre-wrap; }
RSTreeWidget
-
+
Tree View Options
-
+
Show Header
@@ -20592,7 +21176,7 @@ If you believe it is correct, remove the corresponding line from the file and re
RsDownloadListModel
-
+
Name
i.e: file name
@@ -20713,7 +21297,7 @@ If you believe it is correct, remove the corresponding line from the file and re
RsFriendListModel
-
+
Name
@@ -20733,7 +21317,7 @@ If you believe it is correct, remove the corresponding line from the file and re
IP
-
+
Profile ID
@@ -20789,7 +21373,7 @@ prevents the message to be forwarded to your friends.
-
+
[ ... Redacted message ... ]
@@ -20803,6 +21387,11 @@ prevents the message to be forwarded to your friends.
[Unknown]
+
+
+ [ ... Missing Message ... ]
+ [ ... chybÄjĆcĆ zprĆ”va ... ]
+
RsMessageModel
@@ -20816,11 +21405,6 @@ prevents the message to be forwarded to your friends.
From
Od
-
-
- To
-
-
Subject
@@ -20843,18 +21427,13 @@ prevents the message to be forwarded to your friends.
- Click to sort by read status
-
+ Click to sort by read
+ SeÅadit podle pÅeÄtených
- Click to sort by author
-
-
-
-
- Click to sort by destination
-
+ Click to sort by from
+ SeÅadit podle odesĆlatele
@@ -20877,9 +21456,7 @@ prevents the message to be forwarded to your friends.
-
-
-
+
[Notification]
@@ -20900,7 +21477,7 @@ prevents the message to be forwarded to your friends.
Rshare
-
+
Resets ALL stored RetroShare settings.
ObnovĆ vÅ”echna(!) uloženĆ” nastavenĆ RetroShare na výchozĆ.
@@ -20961,7 +21538,7 @@ prevents the message to be forwarded to your friends.
Nastavà použitý jazyk.
-
+
Unable to open log file '%1': %2
Nemohu otevÅĆt log soubor '%1': %2
@@ -20982,7 +21559,7 @@ prevents the message to be forwarded to your friends.
-
+
opmode
@@ -21012,7 +21589,7 @@ prevents the message to be forwarded to your friends.
-
+
Invalid language code specified:
@@ -21030,7 +21607,7 @@ prevents the message to be forwarded to your friends.
RshareSettings
-
+
Registry Access Error. Maybe you need Administrator right.
@@ -21047,12 +21624,12 @@ prevents the message to be forwarded to your friends.
SearchDialog
-
+
Enter a keyword here (at least 3 char long)
Zadejkte klĆÄovĆ© slovo (alespoÅ 3 znaky dlouhĆ©, napÅ. mkv)
-
+
Start Search
ZaÄĆt vyhledĆ”vat
@@ -21114,7 +21691,7 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
Smazat
-
+
KeyWords
KlĆÄovĆ” slova
@@ -21129,7 +21706,7 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
IdentifikƔtor dotazu
-
+
Filename
JmƩno souboru
@@ -21229,23 +21806,23 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
StƔhnout vybranƩ
-
+
File Name
JmƩno souboru
-
+
Download
StƔhnout
-
+
Copy RetroShare Link
KopĆrovat RetroShare odkaz
-
+
Send RetroShare Link
Poslat odkaz RetroShare
@@ -21255,7 +21832,7 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
-
+
Download Notice
StƔhnout poznƔmku
@@ -21292,7 +21869,7 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
Odebrat vŔe
-
+
Folder
Složka
@@ -21303,17 +21880,17 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
-
+
New RetroShare Link(s)
Nový odkaz RetroShare (1 Äi vĆce)
-
+
Open Folder
OtevÅĆt složku
-
+
Create Collection...
@@ -21333,7 +21910,7 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
StƔhnou podle souboru kolekce...
-
+
Collection
Kolekce
@@ -21341,7 +21918,7 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
SecurityIpItem
-
+
Peer details
Podrobnosti o kontaktu
@@ -21357,22 +21934,22 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
Odstranit položku
-
+
IP address:
-
+
Peer ID:
ID protÄjÅ”ku:
-
+
Location:
UmĆstÄnĆ:
-
+
Peer Name:
@@ -21389,7 +21966,7 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
Skrýt
-
+
but reported:
@@ -21414,8 +21991,8 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
-
-
+
+
<html><head/><body><p>This warning is here to protect you against traffic forwarding attacks. In such a case, the friend you're connected to will not see your external IP, but the attacker's IP. </p><p><br/></p><p>However, if you just changed IPs for some reason (some ISPs regularly force change IPs) this warning just tells you that a friend connected to the new IP before Retroshare figured out the IP changed. Nothing's wrong in this case.</p><p><br/></p><p>You can easily suppress false warnings by white-listing your own IPs (e.g. the range of your ISP), or by completely disabling these warnings in Options->Notify->News Feed.</p></body></html>
@@ -21423,7 +22000,7 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
SecurityItem
-
+
wants to be friend with you on RetroShare
si vĆ”s chce pÅidat do kontaktÅÆ.
@@ -21454,7 +22031,7 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
-
+
Expand
Rozbalit
@@ -21499,12 +22076,12 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
Status:
-
+
Write Message
Napsat zprƔvu
-
+
Connect Attempt
Pokus o pÅipojenĆ
@@ -21524,22 +22101,17 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
NeznĆ”mý (odchozĆ) pokus o pÅipojenĆ
-
+
Unknown Security Issue
NeznĆ”mĆ” bezpeÄnostnĆ udĆ”lost
-
- SSL request
+
+ A unknown peer
-
- An unknown peer
-
-
-
-
+
Unknown
@@ -21549,7 +22121,11 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
-
+ Unknown Peer
+ NeznÔmý Peer
+
+
+
Hide
Skrýt
@@ -21559,7 +22135,7 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
Opravdu chcete odstranit tento kontakt?
-
+
Certificate has wrong signature!! This peer is not who he claims to be.
@@ -21569,12 +22145,12 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
-
+
Certificate caused an internal error.
-
+
Peer/node not in friendlist (PGP id=
@@ -21633,12 +22209,12 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
-
+
Local Address
LokÔlnà adresa
-
+
NAT
@@ -21659,22 +22235,22 @@ VysokĆ” pravdÄpodobnost že soubor bude nalezen
Port:
-
+
Local network
Mapa sĆtÄ
-
+
External ip address finder
VyhledĆ”vaÄ externĆch IP adres
-
+
UPnP
UPnP
-
+
Known / Previous IPs:
@@ -21687,16 +22263,21 @@ behind a firewall or a VPN.
-
-
-
+
+ Allow RetroShare to ask my ip to these websites:
+ Pro zjiÅ”tÄnĆ mĆ© veÅejnĆ© IP adresy použĆt nĆ”sledujĆcĆ strĆ”ny:
+
+
+
+
+
kB/s
kB/s
-
+
Acceptable ports range from 10 to 65535. Normally Ports below 1024 are reserved by your system.
@@ -21706,46 +22287,23 @@ behind a firewall or a VPN.
-
+
Onion Address
-
+
Discovery On (recommended)
-
+
Tor has been automatically configured by Retroshare. You shouldn't need to change anything here.
-
- sec
-
-
-
-
- local
-
-
-
-
- external
-
-
-
-
-
-
-List of found external IP:
-
-
-
-
-
+
Discovery Off
@@ -21755,7 +22313,7 @@ List of found external IP:
-
+
I2P Address
@@ -21780,95 +22338,37 @@ List of found external IP:
-
-
-
+
+
Proxy seems to work.
-
-
+
I2P proxy is not enabled
-
- SAMv3 is running and accessible
+
+ BOB is running and accessible
- SAMv3 is not accessible! Is i2p running and SAM enabled?
+ BOB is not accessible! Is it running?
-
- Your key uses the following algorithms: %1 and %2
-
-
-
-
-
- unkown key type
-
-
-
-
- RetroShare uses SAMv3 to set up a %1 tunnel at %2:%3
-(id: %4)
+
+ RetroShare uses BOB to set up a %1 tunnel at %2:%3 (named %4)
-When changing options use the buttons at the bottom to restart SAMv3.
+When changing options (e.g. port) use the buttons at the bottom to restart BOB.
-
- Offline, no SAM session is established yet.
-
-
-
-
-
- SAM is trying to establish a session ... this can take some time.
-
-
-
-
-
- SAM session established! Now setting up a forward session ...
-
-
-
-
-
- Online, SAM is working as exptected
-
-
-
-
-
- You key uses %1 for signing and %2 for crypto
-
-
-
-
- stop SAM tunnel first to generate a new key
-
-
-
-
- stop SAM tunnel first to load a key
-
-
-
-
- stop SAM tunnel first to disable SAM
-
-
-
-
+
client
@@ -21883,7 +22383,71 @@ When changing options use the buttons at the bottom to restart SAMv3.
neznƔmƩ
-
+
+
+
+ BOB is processing a request
+
+
+
+
+ connectivity check
+
+
+
+
+ generating key
+
+
+
+
+ starting up
+
+
+
+
+ shuting down
+
+
+
+
+ BOB is processing a request: %1
+
+
+
+
+ BOB is broken
+
+
+
+
+
+ BOB encountered an error:
+
+
+
+
+
+ BOB tunnel is running
+
+
+
+
+ BOB is working fine: tunnel established
+
+
+
+
+ BOB tunnel is not running
+
+
+
+
+ BOB is inactive: tunnel closed
+
+
+
+
request a new server key
@@ -21893,7 +22457,22 @@ When changing options use the buttons at the bottom to restart SAMv3.
-
+
+ stop BOB tunnel first to generate a new key
+
+
+
+
+ stop BOB tunnel first to load a key
+
+
+
+
+ stop BOB tunnel first to disable BOB
+
+
+
+
You are reachable through the hidden service.
@@ -21905,12 +22484,12 @@ Also check your ports!
-
+
[Hidden mode]
-
+
<html><head/><body><p>This clears the list of known addresses. This action is useful if for some reason your address list contains an invalid/irrelevant/expired address that you want to avoid passing to your friends as a contact address.</p></body></html>
@@ -21920,7 +22499,7 @@ Also check your ports!
Vymazat
-
+
Download limit (KB/s)
@@ -21935,23 +22514,23 @@ Also check your ports!
-
+
<html><head/><body><p>The upload limit covers the entire software. Too small an upload limit might eventually block low priority services (forums, channels). A minimum recommended value is 50KB/s. </p></body></html>
-
+
WARNING:
These values don't take into account the Relays.
-
+
<html><head/><body><p>Configure your Tor and I2P SOCKS proxy here. It will allow you to also connect </p><p>to hidden nodes.</p></body></html>
-
+
Tor Socks Proxy default: 127.0.0.1:9050. Set in torrc config and update here.
I2P Socks Proxy: see http://127.0.0.1:7657/i2ptunnelmgr for setting up a client tunnel:
@@ -21962,7 +22541,17 @@ You can connect to Hidden Nodes, even if you are running a standard Node, so why
-
+
+ Automatic I2P/BOB
+
+
+
+
+ Enable I2P BOB - changing this requires a restart to fully take effect
+
+
+
+
enableds advanced settings
@@ -21972,7 +22561,12 @@ You can connect to Hidden Nodes, even if you are running a standard Node, so why
-
+
+ I2P Basic Open Bridge
+
+
+
+
I2P Instance address
@@ -21982,7 +22576,17 @@ You can connect to Hidden Nodes, even if you are running a standard Node, so why
127.0.0.1
-
+
+ I2P proxy port
+
+
+
+
+ BOB accessible
+
+
+
+
Address
@@ -22022,7 +22626,7 @@ You can connect to Hidden Nodes, even if you are running a standard Node, so why
-
+
Start
@@ -22037,7 +22641,12 @@ You can connect to Hidden Nodes, even if you are running a standard Node, so why
-
+
+ BOB status
+
+
+
+
Incoming
PÅĆchozĆ
@@ -22073,32 +22682,7 @@ If you have issues connecting over Tor check the Tor logs too.
-
- Automatic I2P
-
-
-
-
- Enable I2P SAMv3 - changing this requires a restart to fully take effect
-
-
-
-
- I2P Simple Anonymous Messaging
-
-
-
-
- SAM accessible
-
-
-
-
- SAM status
-
-
-
-
+
Relay
@@ -22153,7 +22737,7 @@ If you have issues connecting over Tor check the Tor logs too.
Celkem:
-
+
Warning: This bandwidth adds up to the max bandwidth.
@@ -22178,7 +22762,7 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
<p>By activating relays, you allow your Retroshare node to act as a bridge between Retroshare users who cannot connect directly, e.g. because they're firewalled.</p>
<p>You may choose to act as a relay by checking <i>enable relay connections</i>, or simply benefit from other peers acting as relay, by checking <i>use relay servers</i>. For the former, you may specify the bandwidth allocated when acting as a relay for friends of you, for friends of your friends, or anyone in the Retroshare network.</p>
<p>In any case, a Retroshare node acting as a relay cannot see the relayed traffic, since it is encrypted and authenticated by the two relayed nodes.</p>
@@ -22190,7 +22774,7 @@ If you have issues connecting over Tor check the Tor logs too.
SĆÅ„
-
+
IP Filters
@@ -22213,7 +22797,7 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
Status
Status
@@ -22273,28 +22857,17 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
Hidden Service Configuration
-
- Allow RetroShare to ask my ip to these DNS servers:
-
-
-
-
-
- List of OpenDns servers used.
-
-
-
-
+
<html><head/><body><p>This is the port of the Tor Socks proxy. Your Retroshare node can use this port to connect to</p><p>Hidden nodes. The led at right turns green when this port is active on your computer. </p><p>This does not mean however that your Retroshare traffic transits though Tor. It does only if </p><p>you connect to Hidden nodes, or if you are running a Hidden node yourself.</p></body></html>
-
+
<html><head/><body><p>This led is green when the port listen on the left is active on your computer. It does not</p><p>mean that your Retroshare traffic transits though Tor. It will do so only if </p><p>you connect to Hidden nodes, or if you are running a Hidden node yourself.</p></body></html>
@@ -22310,18 +22883,18 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
<html><head/><body><p>This led is green when the port listen on the left is active on your computer. It does not</p><p>mean that your Retroshare traffic transits though I2P. It will do so only if </p><p>you connect to Hidden nodes, or if you are running a Hidden node yourself.</p></body></html>
-
+
I2P outgoing Okay
-
+
Service Address
@@ -22356,12 +22929,12 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
IP Range
-
+
Reported by DHT for IP masquerading
@@ -22384,22 +22957,22 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
<html><head/><body><p>White listed IPs are gathered from the following sources: IPs coming inside a manually exchanged certificate, IP ranges entered by you in this window, or in the security feed items.</p><p>The default behavior for Retroshare is to (1) always allow connection to peers with IP in the whitelist, even if that IP is also blacklisted; (2) optionally require IPs to be in the whitelist. You can change this behavior for each peer in the "Details" window of each Retroshare node. </p></body></html>
-
+
<html><head/><body><p>The DHT allows you to answer connection requests from your friends using BitTorrent's DHT. It greatly improves the connectivity. No information is actually stored in the DHT. It is only used as a proxy system to get in touch with other Retroshare nodes.</p><p>The Discovery service sends node name and ids of your trusted contacts to connected peers, to help them choose new friends. The friendship is never automatic however, and both peers still need to trust each other to allow connection. </p></body></html>
-
+
<html><head/><body><p>The bullet turns green as soon as Retroshare manages to get your own IP from the websites listed below, if you enabled that action. Retroshare will also use other means to find out your own IP.</p></body></html>
-
+
<html><head/><body><p>This list gets automatically filled with information gathered at multiple sources: masquerading peers reported by the DHT, IP ranges entered by you, and IP ranges reported by your friends. Default settings should protect you against large scale traffic relaying.</p><p>Automatically guessing masquerading IPs can put your friends IPs in the blacklist. In this case, use the context menu to whitelist them.</p></body></html>
@@ -22434,7 +23007,7 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
Outgoing Manual Tor/I2P
@@ -22444,12 +23017,12 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
Tor outgoing Okay
-
+
Tor proxy is not enabled
@@ -22529,7 +23102,7 @@ If you have issues connecting over Tor check the Tor logs too.
ShareKey
-
+
check peers you would like to share private publish key with
zaÅ”krtnÄte protÄjÅ”ky s nimiž chcete sdĆlet soukromý klĆÄ k publikaÄnĆmu prĆ”vu
@@ -22539,12 +23112,12 @@ If you have issues connecting over Tor check the Tor logs too.
-
+
Share
-
+
You can let your friends know about your Channel by sharing it with them.
Select the Friends with which you want to Share your Channel.
@@ -22563,7 +23136,7 @@ Select the Friends with which you want to Share your Channel.
SdĆlenĆ složek a souborÅÆ v nich obsažených
-
+
Shared directory
@@ -22583,17 +23156,17 @@ Select the Friends with which you want to Share your Channel.
Viditelnost
-
+
Add new
-
+
Cancel
ZruŔit
-
+
Add a Share Directory
PÅidat sdĆlenou složku
@@ -22603,7 +23176,7 @@ Select the Friends with which you want to Share your Channel.
Odebrat
-
+
Apply and close
Uložit a zavÅĆt
@@ -22694,7 +23267,7 @@ Select the Friends with which you want to Share your Channel.
Složka nebyla nalezena nebo jejà jméno je neplatné.
-
+
This is a list of shared folders. You can add and remove folders using the buttons at the bottom. When you add a new folder, intially all files in that folder are shared. You can separately setup share flags for each shared directory.
@@ -22702,7 +23275,7 @@ Select the Friends with which you want to Share your Channel.
SharedFilesDialog
-
+
Files
Soubory
@@ -22753,16 +23326,11 @@ Select the Friends with which you want to Share your Channel.
- <html><head/><body><p>Forces the re-check of all shared directories. While automatic file checking only cares for new/removed files for efficiency reasons, this button will force the re-scan of all files, possibly re-hashing existing files that may have changed. </p></body></html>
-
-
-
-
check files
Zkontrolovat soubory
-
+
Download selected
StƔhnout vybranƩ
@@ -22772,7 +23340,7 @@ Select the Friends with which you want to Share your Channel.
StƔhnout
-
+
Copy retroshare Links to Clipboard
ZkopĆrovat RetrosShare odkazy do schrĆ”nky
@@ -22787,7 +23355,7 @@ Select the Friends with which you want to Share your Channel.
Poslat RetroShare odkazy
-
+
Some files have been omitted
@@ -22803,7 +23371,7 @@ Select the Friends with which you want to Share your Channel.
DoporuÄenĆ
-
+
Create Collection...
@@ -22828,7 +23396,7 @@ Select the Friends with which you want to Share your Channel.
StƔhnou podle souboru kolekce...
-
+
Some files have been omitted because they have not been indexed yet.
@@ -22888,7 +23456,7 @@ Select the Friends with which you want to Share your Channel.
Message
- ZprƔva
+
@@ -22971,12 +23539,12 @@ Select the Friends with which you want to Share your Channel.
SplashScreen
-
+
Load configuration
NaÄĆtĆ”m nastavenĆ
-
+
Create interface
VytvĆ”ÅĆm rozhranĆ
@@ -23000,7 +23568,7 @@ Select the Friends with which you want to Share your Channel.
Zapamatovat heslo
-
+
Log In
PÅihlĆ”sit se
@@ -23341,7 +23909,7 @@ This choice can be reverted in settings.
ZprƔva o statusu
-
+
Message:
ZprƔva:
@@ -23578,7 +24146,7 @@ p, li { white-space: pre-wrap; }
TagsMenu
-
+
Remove All Tags
Odstranit vÅ”echny Å”tĆtky
@@ -23614,15 +24182,12 @@ p, li { white-space: pre-wrap; }
-
-
+
Tor status:
-
-
-
+
Unknown
@@ -23632,13 +24197,18 @@ p, li { white-space: pre-wrap; }
-
- Hidden address:
+
+ Hidden service address:
-
-
+
+ Tor bootstrap status:
+
+
+
+
+
Not set
@@ -23648,57 +24218,12 @@ p, li { white-space: pre-wrap; }
-
- Error
- Chyba
-
-
-
- Not connected
- Nespojen
-
-
-
- Connecting
-
-
-
-
- Socket connected
-
-
-
-
- Authenticating
-
-
-
-
- Authenticated
-
-
-
-
- Hidden service ready
-
-
-
-
- Tor offline
-
-
-
-
- Tor ready
-
-
-
-
+
Check that Tor is accessible in your executable path
-
+
[Waiting for Tor...]
@@ -23706,7 +24231,7 @@ p, li { white-space: pre-wrap; }
TorStatus
-
+
Tor
@@ -23716,7 +24241,7 @@ p, li { white-space: pre-wrap; }
-
+
Tor is currently offline
@@ -23727,12 +24252,11 @@ p, li { white-space: pre-wrap; }
-
No tor configuration
-
+
Tor proxy is OK
@@ -23760,7 +24284,7 @@ p, li { white-space: pre-wrap; }
TransferPage
-
+
Transfer options
@@ -23771,7 +24295,7 @@ p, li { white-space: pre-wrap; }
MaximĆ”lnĆ poÄet souÄasných stahovĆ”nĆ:
-
+
Shared Directories
@@ -23781,27 +24305,22 @@ p, li { white-space: pre-wrap; }
Automaticky sdĆlet pÅĆchozĆ adresÔŠ(doporuÄeno)
-
+
+ Edit Share
+
+
+
+
Directories
-
- Configure shared directories
-
-
-
-
+
Auto-check shared directories every
- <html><head/><body><p>Retroshare will quickly scan shared directories for new/removed files. It will not detect changes in existing files for efficiency reasons. It is however possible to force a full re-scan of the entire hierarchy including possibly modified files using the "check files" button in shared files tab.</p></body></html>
-
-
-
-
minute(s)
@@ -23886,7 +24405,7 @@ p, li { white-space: pre-wrap; }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
-</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;">
+</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:8pt; font-weight:600;">RetroShare</span><span style=" font-family:'Sans'; font-size:8pt;"> is capable of transferring data and search requests between peers that are not necessarily friends. This traffic however only transits through a connected list of friends and is anonymous.</span></p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans'; font-size:8pt;"><br /></p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:8pt;">You can separately setup share flags for each shared directory in the shared files dialog to be:</span></p>
@@ -23895,12 +24414,7 @@ p, li { white-space: pre-wrap; }
-
- Minimum font size for Shared Files
-
-
-
-
+
Maximum uploads per friend (0 = no limit)
@@ -23925,12 +24439,7 @@ p, li { white-space: pre-wrap; }
-
- <html><head/><body><p><span style=" font-weight:600;">Streaming </span>causes the transfer to request 1MB file chunks in increasing order, facilitating preview while downloading. <span style=" font-weight:600;">Random</span> is purely random and favors swarming behavior (although not recommended on Windows systems). <span style=" font-weight:600;">Progressive</span> is a good compromise, selecting the next chunk at random within less than 50MB after the end of the partial file. That allows some randomness while preventing large empty file initialization times.</p></body></html>
-
-
-
-
+
Streaming
StreamovĆ”nĆ
@@ -23995,7 +24504,12 @@ p, li { white-space: pre-wrap; }
-
+
+ <html><head/><body><p><span style=" font-weight:600;">Streaming </span>causes the transfer to request 1MB file chunks in increasing order, facilitating preview while downloading. <span style=" font-weight:600;">Random</span> is purely random and favors swarming behavior. <span style=" font-weight:600;">Progressive</span> is a compromise, selecting the next chunk at random within less than 50MB after the end of the partial file. That allows some randomness while preventing large empty file initialization times.</p></body></html>
+
+
+
+
<html><head/><body><p>Retroshare will suspend all transfers and config file saving if the disk space goes below this limit. That prevents loss of information on some systems. A popup window will warn you when that happens.</p></body></html>
@@ -24005,17 +24519,7 @@ p, li { white-space: pre-wrap; }
-
- Warning
- UpozornÄnĆ
-
-
-
- On Windows systems, randomly writing in the middle of large empty files may hang the software for several seconds. Do you want to use this option anyway (otherwise use "progressive")?
-
-
-
-
+
Set Incoming Directory
@@ -24043,7 +24547,7 @@ p, li { white-space: pre-wrap; }
TransferUserNotify
-
+
Download completed
StahovĆ”nĆ dokonÄeno
@@ -24071,19 +24575,19 @@ p, li { white-space: pre-wrap; }
TransfersDialog
-
-
+
+
Downloads
StahovĆ”nĆ
-
+
Uploads
OdesĆlĆ”nĆ
-
+
Name
i.e: file name
JmƩno
@@ -24290,12 +24794,7 @@ p, li { white-space: pre-wrap; }
Zvolit...
-
- <h1><img width="%1" src=":/icons/help_64.png"> File Transfer</h1><p>Retroshare brings two ways of transferring files: direct transfers from your friends, and distant anonymous tunnelled transfers. In addition, file transfer is multi-source and allows swarming (you can be a source while downloading)</p><p>You can share files using the <img src=":/images/directoryadd_24x24_shadow.png" width=%2 /> icon from the left side bar. These files will be listed in the My Files tab. You can decide for each friend group whether they can or not see these files in their Friends Files tab</p><p>The search tab reports files from your friends' file lists, and distant files that can be reached anonymously using the multi-hop tunnelling system.</p>
-
-
-
-
+
Move in Queue...
PÅesunout do fronty...
@@ -24320,7 +24819,7 @@ p, li { white-space: pre-wrap; }
Zvolte adresĆ”Å
-
+
Anonymous end-to-end encrypted tunnel 0x
@@ -24341,7 +24840,7 @@ p, li { white-space: pre-wrap; }
RetroShare
-
+
@@ -24374,17 +24873,7 @@ p, li { white-space: pre-wrap; }
StahovĆ”nĆ souboru %1 jeÅ”tÄ nenĆ dokonÄeno. Pokud jde o soubor mĆ©diĆ (hudba, filmy, ...), můžete se zkusit podĆvat na jeho nĆ”hled.
-
- Warning
- UpozornÄnĆ
-
-
-
- On Windows systems, writing in the middle of large empty files may hang the software for several seconds. Do you want to use this option anyway?
-
-
-
-
+
Change file name
ZmÄnit jmĆ©no souboru
@@ -24399,7 +24888,7 @@ p, li { white-space: pre-wrap; }
ProsĆm vložte novĆ©--a platnĆ©--jmĆ©no souboru
-
+
Expand all
Rozbalit vŔe
@@ -24526,18 +25015,23 @@ p, li { white-space: pre-wrap; }
-
+
+ <h1><img width="%1" src=":/icons/help_64.png"> File Transfer</h1><p>Retroshare brings two ways of transferring files: direct transfers from your friends, and distant anonymous tunnelled transfers. In addition, file transfer is multi-source and allows swarming (you can be a source while downloading)</p><p>You can share files using the <img src=":/images/directoryadd_24x24_shadow.png" width=%2 /> icon from the left side bar. These files will be listed in the My Files tab. You can decide for each friend group whether they can or not see these files in their Friends Files tab</p><p>The search tab reports files from your friends' file lists, and distant files that can be reached anonymously using the multi-hop tunnelling system.</p>
+
+
+
+
Columns
Sloupce
-
+
File Transfers
-
+
Path
Cesta
@@ -24547,7 +25041,7 @@ p, li { white-space: pre-wrap; }
-
+
Could not delete preview file
@@ -24557,7 +25051,7 @@ p, li { white-space: pre-wrap; }
-
+
Create Collection...
@@ -24572,7 +25066,7 @@ p, li { white-space: pre-wrap; }
-
+
Collection
Kolekce
@@ -24582,7 +25076,7 @@ p, li { white-space: pre-wrap; }
-
+
Anonymous tunnel 0x
@@ -24996,17 +25490,12 @@ p, li { white-space: pre-wrap; }
FormulĆ”Å
-
+
Enable Retroshare WEB Interface
-
- Status:
- Status:
-
-
-
+
Web parameters
@@ -25046,27 +25535,17 @@ p, li { white-space: pre-wrap; }
-
+
Please select the directory were to find retroshare webinterface files
-
- Missing passphrase
-
-
-
-
- Please set a passphrase to proect the access to the WEB interface.
-
-
-
-
+
<h1><img width="24" src=":/icons/help_64.png"> Webinterface</h1> <p>The webinterface allows you to control Retroshare from the browser. Multiple devices can share control over one Retroshare instance. So you could start a conversation on a tablet computer and later use a desktop computer to continue it.</p> <p>Warning: don't expose the webinterface to the internet, because there is no access control and no encryption. If you want to use the webinterface over the internet, use a SSH tunnel or a proxy to secure the connection.</p>
-
+
Webinterface not enabled
@@ -25076,12 +25555,12 @@ p, li { white-space: pre-wrap; }
-
+
failed to start Webinterface
-
+
Webinterface
@@ -25218,7 +25697,11 @@ p, li { white-space: pre-wrap; }
StrƔnky Wiki
-
+ New Group
+ NovĆ” skupina
+
+
+
Page Name
@@ -25233,7 +25716,7 @@ p, li { white-space: pre-wrap; }
-
+
<<
@@ -25321,7 +25804,7 @@ p, li { white-space: pre-wrap; }
WikiEditDialog
-
+
Page Edit History
@@ -25356,7 +25839,7 @@ p, li { white-space: pre-wrap; }
-
+
\/
@@ -25386,18 +25869,14 @@ p, li { white-space: pre-wrap; }
Å tĆtky
-
- History
- Historie
-
-
-
+
+
Show Edit History
-
+
Status
Status
@@ -25418,7 +25897,7 @@ p, li { white-space: pre-wrap; }
-
+
Submit
@@ -25501,7 +25980,16 @@ p, li { white-space: pre-wrap; }
-
+ ...
+ ...
+
+
+
+ Refresh
+
+
+
+
Settings
@@ -25516,7 +26004,7 @@ p, li { white-space: pre-wrap; }
OstatnĆ
-
+
Who to Follow
@@ -25536,7 +26024,7 @@ p, li { white-space: pre-wrap; }
-
+
Most Recent
@@ -25566,17 +26054,25 @@ p, li { white-space: pre-wrap; }
-
+ New
+ Nový
+
+
+
Yourself
+
+ Friends
+ Kontakty
+
Following
-
+
RetroShare
RetroShare
@@ -25639,42 +26135,35 @@ p, li { white-space: pre-wrap; }
FormulĆ”Å
-
-
+
+ Masthead
+
+
+
MastHead background Image
-
+
Select Image
-
+
Tagline:
- Remove
- Odebrat
-
-
-
Location:
UmĆstÄnĆ:
-
+
Load Masthead
-
-
- Use the mouse to zoom and adjust the image for your background.
-
-
WireGroupItem
@@ -25719,41 +26208,11 @@ p, li { white-space: pre-wrap; }
Edit Profile
-
-
- Own
-
-
-
-
- N/A
- nedostupnƩ
-
-
-
- Following
-
-
-
-
- Unfollow
-
-
-
-
- Other
-
-
-
-
- Follow
-
-
misc
-
+
Unknown
Unknown (size)
NeznÔmý
@@ -25831,7 +26290,7 @@ p, li { white-space: pre-wrap; }
%1 r. %2 d.
-
+
k
e.g: 3.1 k
k
@@ -25868,7 +26327,7 @@ p, li { white-space: pre-wrap; }
pgpid_item_model
-
+
Do you accept connections signed by this profile?
diff --git a/retroshare-gui/src/lang/retroshare_da.ts b/retroshare-gui/src/lang/retroshare_da.ts
index 4cb8c0823..41f99845c 100644
--- a/retroshare-gui/src/lang/retroshare_da.ts
+++ b/retroshare-gui/src/lang/retroshare_da.ts
@@ -121,12 +121,12 @@
-
+
Search Criteria
-
+
Add a further search criterion.
@@ -136,7 +136,7 @@
-
+
Cancels the search.
@@ -540,7 +540,7 @@ p, li { white-space: pre-wrap; }
RetroShare
-
+
Warning: The services here are experimental. Please help us test them.
But Remember: Any data here *WILL* be lost when we upgrade the protocols.
@@ -566,23 +566,10 @@ p, li { white-space: pre-wrap; }
-
- AspectRatioPixmapLabel
-
-
- Save image
-
-
-
-
- Copy image
-
-
-
AttachFileItem
-
+
%p Kb
@@ -625,7 +612,7 @@ p, li { white-space: pre-wrap; }
-
+
Set your Avatar picture
@@ -712,7 +699,7 @@ p, li { white-space: pre-wrap; }
-
+
Always on Top
@@ -731,6 +718,10 @@ p, li { white-space: pre-wrap; }
% Opaque
+
+ Cancel
+ Annuller
+
Since:
@@ -808,7 +799,7 @@ p, li { white-space: pre-wrap; }
BoardPostDisplayWidgetBase
-
+
Comment
@@ -838,12 +829,12 @@ p, li { white-space: pre-wrap; }
-
+
<p><font color="#ff0000"><b>The author of this message (with ID %1) is banned.</b>
-
+
ago
@@ -851,7 +842,7 @@ p, li { white-space: pre-wrap; }
BoardPostDisplayWidget_card
-
+
Vote up
@@ -871,7 +862,7 @@ p, li { white-space: pre-wrap; }
-
+
Posted by
@@ -909,7 +900,7 @@ p, li { white-space: pre-wrap; }
BoardPostDisplayWidget_compact
-
+
Vote up
@@ -929,7 +920,7 @@ p, li { white-space: pre-wrap; }
-
+
Click to view picture
@@ -959,7 +950,7 @@ p, li { white-space: pre-wrap; }
-
+
Toggle Message Read Status
@@ -969,7 +960,7 @@ p, li { white-space: pre-wrap; }
-
+
TextLabel
@@ -977,12 +968,12 @@ p, li { white-space: pre-wrap; }
BoardsCommentsItem
-
+
I like this
-
+
0
@@ -1002,18 +993,18 @@ p, li { white-space: pre-wrap; }
-
+
New Comment
-
+
Copy RetroShare Link
-
+
Expand
@@ -1028,12 +1019,12 @@ p, li { white-space: pre-wrap; }
-
+
Name
Navn
-
+
Comm value
@@ -1202,17 +1193,17 @@ p, li { white-space: pre-wrap; }
ChannelPage
-
+
Channels
-
+
Tabs
-
+
General
@@ -1222,17 +1213,7 @@ p, li { white-space: pre-wrap; }
-
- Downloads
-
-
-
-
- Maximum Auto Download Size (in GBs)
-
-
-
-
+
Open each channel in a new tab
@@ -1240,7 +1221,7 @@ p, li { white-space: pre-wrap; }
ChannelPostDelegate
-
+
files
@@ -1263,7 +1244,7 @@ into the image, so as to
ChannelsCommentsItem
-