From ed737e2c9f90610027885044fe375c7da6d91583 Mon Sep 17 00:00:00 2001 From: thunder2 Date: Fri, 17 Sep 2010 18:27:30 +0000 Subject: [PATCH] Fixed umlauts (utf8) in Windows. Changed some parameters to reference pointer. Added virtual folders to the lib. Recompile needed. git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3509 b45a01b8-16f6-495d-af2f-9b41ad6348cc --- libretroshare/src/dbase/fimonitor.cc | 13 +- libretroshare/src/dbase/fimonitor.h | 2 +- libretroshare/src/dbase/findex.cc | 2 +- libretroshare/src/dbase/findex.h | 2 +- libretroshare/src/ft/ftdbase.cc | 4 +- libretroshare/src/ft/ftdbase.h | 2 +- libretroshare/src/ft/ftfilecreator.cc | 1 - libretroshare/src/ft/ftserver.cc | 2 +- libretroshare/src/ft/ftserver.h | 2 +- libretroshare/src/retroshare/rsfiles.h | 3 +- libretroshare/src/util/rsdir.cc | 15 +- retroshare-gui/src/gui/RemoteDirModel.cpp | 6 +- retroshare-gui/src/gui/ShareDialog.cpp | 102 ++-- retroshare-gui/src/gui/ShareDialog.h | 6 +- retroshare-gui/src/gui/ShareDialog.ui | 564 ++++++++++----------- retroshare-gui/src/gui/ShareManager.cpp | 308 ++++++------ retroshare-gui/src/gui/ShareManager.h | 56 +-- retroshare-gui/src/gui/ShareManager.ui | 569 +++++++++++----------- retroshare-gui/src/gui/notifyqt.cpp | 2 +- retroshare-gui/src/lang/retroshare_de.qm | Bin 236349 -> 241423 bytes retroshare-gui/src/lang/retroshare_de.ts | 145 +++--- 21 files changed, 892 insertions(+), 914 deletions(-) diff --git a/libretroshare/src/dbase/fimonitor.cc b/libretroshare/src/dbase/fimonitor.cc index f4e946573..716f885a3 100644 --- a/libretroshare/src/dbase/fimonitor.cc +++ b/libretroshare/src/dbase/fimonitor.cc @@ -801,7 +801,7 @@ void FileIndexMonitor::updateShareFlags(const SharedDirInfo& dir) cb->notifyListChange(NOTIFY_LIST_DIRLIST_LOCAL, 0); } /* interface */ -void FileIndexMonitor::setSharedDirectories(std::list dirs) +void FileIndexMonitor::setSharedDirectories(std::list& dirs) { cb->notifyListPreChange(NOTIFY_LIST_DIRLIST_LOCAL, 0); @@ -822,8 +822,7 @@ void FileIndexMonitor::setSharedDirectories(std::list dirs) /* check if dir exists before adding in */ std::string path = (*it).filename; - DIR *dir = opendir(path.c_str()); - if (!dir) + if (!RsDirUtil::checkDirectory(path)) { #ifdef FIM_DEBUG std::cerr << "FileIndexMonitor::setSharedDirectories()"; @@ -834,7 +833,6 @@ void FileIndexMonitor::setSharedDirectories(std::list dirs) { checkeddirs.push_back(*it); } - closedir(dir); } { @@ -915,7 +913,10 @@ bool FileIndexMonitor::internal_setSharedDirectories() { /* get the head directory */ std::string root_dir = (*it).filename; - std::string top_dir = RsDirUtil::getTopDir(root_dir); + std::string top_dir = it->virtualname; + if (top_dir.empty()) { + top_dir = RsDirUtil::getTopDir(root_dir); + } /* if unique -> add, else add modifier */ bool unique = false; @@ -931,6 +932,8 @@ bool FileIndexMonitor::internal_setSharedDirectories() if (directoryMap.end()== (cit=directoryMap.find(tst_dir))) { unique = true; + /* store calculated name */ + it->virtualname = tst_dir; /* add it! */ directoryMap[tst_dir.c_str()] = *it; #ifdef FIM_DEBUG diff --git a/libretroshare/src/dbase/fimonitor.h b/libretroshare/src/dbase/fimonitor.h index 0da674eea..e94e3cae4 100644 --- a/libretroshare/src/dbase/fimonitor.h +++ b/libretroshare/src/dbase/fimonitor.h @@ -109,7 +109,7 @@ class FileIndexMonitor: public CacheSource, public RsThread int RequestDirDetails(std::string uid, std::string path, DirDetails &details) const ; // set/update shared directories - virtual void setSharedDirectories(std::list dirs); + virtual void setSharedDirectories(std::list& dirs); void getSharedDirectories(std::list& dirs); void updateShareFlags(const SharedDirInfo& info) ; diff --git a/libretroshare/src/dbase/findex.cc b/libretroshare/src/dbase/findex.cc index 7e1f62b05..845580288 100644 --- a/libretroshare/src/dbase/findex.cc +++ b/libretroshare/src/dbase/findex.cc @@ -529,7 +529,7 @@ FileIndex::~FileIndex() delete root; } -int FileIndex::setRootDirectories(std::list inlist, time_t updtime) +int FileIndex::setRootDirectories(std::list &inlist, time_t updtime) { /* set update time to zero */ std::map::iterator it; diff --git a/libretroshare/src/dbase/findex.h b/libretroshare/src/dbase/findex.h index 2bd05d2bf..00392f54a 100644 --- a/libretroshare/src/dbase/findex.h +++ b/libretroshare/src/dbase/findex.h @@ -204,7 +204,7 @@ class FileIndex ~FileIndex(); /* control root entries */ - int setRootDirectories(std::list inlist, time_t utime); + int setRootDirectories(std::list &inlist, time_t utime); int getRootDirectories(std::list &outlist); /* update (index building) */ diff --git a/libretroshare/src/ft/ftdbase.cc b/libretroshare/src/ft/ftdbase.cc index deda985dc..20132f378 100644 --- a/libretroshare/src/ft/ftdbase.cc +++ b/libretroshare/src/ft/ftdbase.cc @@ -198,6 +198,7 @@ std::list ftFiMonitor::saveList(bool &cleanup) { RsFileConfigItem *fi = new RsFileConfigItem(); fi->file.path = (*it).filename ; + fi->file.name = (*it).virtualname ; fi->flags = (*it).shareflags ; sList.push_back(fi); @@ -234,6 +235,7 @@ bool ftFiMonitor::loadList(std::list load) SharedDirInfo info ; info.filename = fi->file.path; + info.virtualname = fi->file.name; info.shareflags = fi->flags & (RS_FILE_HINTS_BROWSABLE | RS_FILE_HINTS_NETWORK_WIDE) ; dirList.push_back(info) ; @@ -252,7 +254,7 @@ void ftFiMonitor::updateShareFlags(const SharedDirInfo& info) IndicateConfigChanged(); } -void ftFiMonitor::setSharedDirectories(std::list dirList) +void ftFiMonitor::setSharedDirectories(std::list& dirList) { FileIndexMonitor::setSharedDirectories(dirList); diff --git a/libretroshare/src/ft/ftdbase.h b/libretroshare/src/ft/ftdbase.h index 02f283e7a..1e4d82be3 100644 --- a/libretroshare/src/ft/ftdbase.h +++ b/libretroshare/src/ft/ftdbase.h @@ -63,7 +63,7 @@ class ftFiMonitor: public FileIndexMonitor, public ftSearch, public p3Config virtual bool search(std::string hash, uint32_t hintflags, FileInfo &info) const; /* overloaded set dirs enables config indication */ - virtual void setSharedDirectories(std::list dirList); + virtual void setSharedDirectories(std::list& dirList); virtual void updateShareFlags(const SharedDirInfo& info) ; /*** diff --git a/libretroshare/src/ft/ftfilecreator.cc b/libretroshare/src/ft/ftfilecreator.cc index 1b11f66b1..6036d3a49 100644 --- a/libretroshare/src/ft/ftfilecreator.cc +++ b/libretroshare/src/ft/ftfilecreator.cc @@ -235,7 +235,6 @@ int ftFileCreator::locked_initializeFileAttrs() #ifdef FILE_DEBUG std::cerr << "ftFileCreator::initializeFileAttrs() trying (r+b) " << file_name << " this: " << this << std::endl; #endif - std::cerr << std::endl; } /* diff --git a/libretroshare/src/ft/ftserver.cc b/libretroshare/src/ft/ftserver.cc index dd6b3cbce..79b96735f 100644 --- a/libretroshare/src/ft/ftserver.cc +++ b/libretroshare/src/ft/ftserver.cc @@ -578,7 +578,7 @@ bool ftServer::setSharedDirectories(std::list &dirs) return true; } -bool ftServer::addSharedDirectory(SharedDirInfo dir) +bool ftServer::addSharedDirectory(SharedDirInfo& dir) { std::list dirList; mFiMon->getSharedDirectories(dirList); diff --git a/libretroshare/src/ft/ftserver.h b/libretroshare/src/ft/ftserver.h index 14d259550..0b4544f21 100644 --- a/libretroshare/src/ft/ftserver.h +++ b/libretroshare/src/ft/ftserver.h @@ -191,7 +191,7 @@ virtual std::string getPartialsDirectory(); virtual bool getSharedDirectories(std::list &dirs); virtual bool setSharedDirectories(std::list &dirs); -virtual bool addSharedDirectory(SharedDirInfo dir); +virtual bool addSharedDirectory(SharedDirInfo& dir); virtual bool updateShareFlags(const SharedDirInfo& dir); // updates the flags. The directory should already exist ! virtual bool removeSharedDirectory(std::string dir); diff --git a/libretroshare/src/retroshare/rsfiles.h b/libretroshare/src/retroshare/rsfiles.h index fca7babdc..91a2e813a 100644 --- a/libretroshare/src/retroshare/rsfiles.h +++ b/libretroshare/src/retroshare/rsfiles.h @@ -92,6 +92,7 @@ const uint32_t CB_CODE_MEDIA = 0x0004; struct SharedDirInfo { std::string filename ; + std::string virtualname ; uint32_t shareflags ; // RS_FILE_HINTS_NETWORK_WIDE | RS_FILE_HINTS_BROWSABLE }; @@ -184,7 +185,7 @@ class RsFiles virtual std::string getPartialsDirectory() = 0; virtual bool getSharedDirectories(std::list &dirs) = 0; - virtual bool addSharedDirectory(SharedDirInfo dir) = 0; + virtual bool addSharedDirectory(SharedDirInfo& dir) = 0; virtual bool updateShareFlags(const SharedDirInfo& dir) = 0; // updates the flags. The directory should already exist ! virtual bool removeSharedDirectory(std::string dir) = 0; diff --git a/libretroshare/src/util/rsdir.cc b/libretroshare/src/util/rsdir.cc index 58ad469a4..fe91c1891 100644 --- a/libretroshare/src/util/rsdir.cc +++ b/libretroshare/src/util/rsdir.cc @@ -363,8 +363,19 @@ int RsDirUtil::breakupDirList(std::string path, bool RsDirUtil::checkDirectory(std::string dir) { + int val; + mode_t st_mode; +#ifdef WINDOWS_SYS + std::wstring wdir; + librs::util::ConvertUtf8ToUtf16(dir, wdir); + struct _stat buf; + val = _wstat(wdir.c_str(), &buf); + st_mode = buf.st_mode; +#else struct stat buf; - int val = stat(dir.c_str(), &buf); + val = stat(dir.c_str(), &buf); + st_mode = buf.st_mode; +#endif if (val == -1) { #ifdef RSDIR_DEBUG @@ -373,7 +384,7 @@ bool RsDirUtil::checkDirectory(std::string dir) #endif return false; } - else if (!S_ISDIR(buf.st_mode)) + else if (!S_ISDIR(st_mode)) { // Some other type - error. #ifdef RSDIR_DEBUG diff --git a/retroshare-gui/src/gui/RemoteDirModel.cpp b/retroshare-gui/src/gui/RemoteDirModel.cpp index 4383330c5..92e2f9436 100644 --- a/retroshare-gui/src/gui/RemoteDirModel.cpp +++ b/retroshare-gui/src/gui/RemoteDirModel.cpp @@ -803,16 +803,16 @@ void RemoteDirModel::downloadDirectory(const DirDetails & dirDetails, int prefix if (dirDetails.type & DIR_TYPE_FILE) { std::list srcIds; - QString cleanPath = QDir::cleanPath((rsFiles->getDownloadDirectory() + "/" + dirDetails.path.substr(prefixLen)).c_str()); + QString cleanPath = QDir::cleanPath(QString::fromUtf8(rsFiles->getDownloadDirectory().c_str()) + "/" + QString::fromUtf8(dirDetails.path.substr(prefixLen).c_str())); srcIds.push_back(dirDetails.id); - rsFiles->FileRequest(dirDetails.name, dirDetails.hash, dirDetails.count, cleanPath.toStdString(), RS_FILE_HINTS_NETWORK_WIDE, srcIds); + rsFiles->FileRequest(dirDetails.name, dirDetails.hash, dirDetails.count, cleanPath.toUtf8().constData(), RS_FILE_HINTS_NETWORK_WIDE, srcIds); } else if (dirDetails.type & DIR_TYPE_DIR) { std::list::const_iterator it; QDir dwlDir(rsFiles->getDownloadDirectory().c_str()); - QString cleanPath = QDir::cleanPath(QString(dirDetails.path.c_str()).right(dirDetails.path.length() - prefixLen)); + QString cleanPath = QDir::cleanPath(QString::fromUtf8(dirDetails.path.substr(prefixLen).c_str())); if (!dwlDir.mkpath(cleanPath)) return; diff --git a/retroshare-gui/src/gui/ShareDialog.cpp b/retroshare-gui/src/gui/ShareDialog.cpp index 54d7b7b32..8e8752311 100644 --- a/retroshare-gui/src/gui/ShareDialog.cpp +++ b/retroshare-gui/src/gui/ShareDialog.cpp @@ -23,7 +23,7 @@ #include #include - +#include #include #include @@ -31,89 +31,73 @@ ShareDialog::ShareDialog(QWidget *parent, Qt::WFlags flags) : QDialog(parent, flags) { - /* Invoke Qt Designer generated QObject setup routine */ - ui.setupUi(this); + /* Invoke Qt Designer generated QObject setup routine */ + ui.setupUi(this); - connect(ui.browseButton, SIGNAL(clicked( bool ) ), this , SLOT( browseDirectory() ) ); - connect(ui.okButton, SIGNAL(clicked( bool ) ), this , SLOT( addDirectory() ) ); - connect(ui.closeButton, SIGNAL(clicked()), this, SLOT(closedialog())); - - load(); - + connect(ui.browseButton, SIGNAL(clicked( bool ) ), this , SLOT( browseDirectory() ) ); + connect(ui.okButton, SIGNAL(clicked( bool ) ), this , SLOT( addDirectory() ) ); + connect(ui.closeButton, SIGNAL(clicked()), this, SLOT(closedialog())); + ui.okButton->setEnabled(false); + + load(); } void ShareDialog::load() { - - ui.localpath_lineEdit->clear(); - ui.anonymouscheckBox->setChecked(false); - ui.friendscheckBox->setChecked(false); + ui.localpath_lineEdit->clear(); + ui.browsableCheckBox->setChecked(false); + ui.networkwideCheckBox->setChecked(false); } void ShareDialog::browseDirectory() { + /* select a dir*/ + QString qdir = QFileDialog::getExistingDirectory(this, tr("Select A Folder To Share"), "", QFileDialog::DontUseNativeDialog | QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); - /* select a dir*/ - QString qdir = QFileDialog::getExistingDirectory(this, tr("Select A Folder To Share"), "", QFileDialog::DontUseNativeDialog | QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); - - /* add it to the server */ - currentDir = qdir.toStdString(); - if (currentDir != "") - { - ui.localpath_lineEdit->setText(QString::fromStdString(currentDir)); - } + /* add it to the server */ + if (qdir.isEmpty()) { + ui.okButton->setEnabled(false); + return; + } + ui.okButton->setEnabled(true); + ui.localpath_lineEdit->setText(qdir); } void ShareDialog::addDirectory() { + SharedDirInfo sdi ; + sdi.filename = ui.localpath_lineEdit->text().toUtf8().constData(); + sdi.virtualname = ui.virtualpath_lineEdit->text().toUtf8().constData(); - SharedDirInfo sdi ; - sdi.filename = currentDir ; - - if( ui.anonymouscheckBox->isChecked() && ui.friendscheckBox->isChecked()) - { - sdi.shareflags = RS_FILE_HINTS_NETWORK_WIDE | RS_FILE_HINTS_BROWSABLE ; - } - if ( ui.anonymouscheckBox->isChecked() && !ui.friendscheckBox->isChecked() ) - { - sdi.shareflags = RS_FILE_HINTS_NETWORK_WIDE; - } - if ( ui.friendscheckBox->isChecked() && !ui.anonymouscheckBox->isChecked()) - { - sdi.shareflags = RS_FILE_HINTS_BROWSABLE ; - } - - rsFiles->addSharedDirectory(sdi); + sdi.shareflags = 0; - //messageBoxOk(tr("Shared Directory Added!")); - load(); - close(); + if (ui.browsableCheckBox->isChecked()) { + sdi.shareflags |= RS_FILE_HINTS_BROWSABLE ; + } + if (ui.networkwideCheckBox->isChecked()) { + sdi.shareflags |= RS_FILE_HINTS_NETWORK_WIDE; + } + rsFiles->addSharedDirectory(sdi); + + load(); + close(); } void ShareDialog::showEvent(QShowEvent *event) { - if (!event->spontaneous()) - { - load(); - } + if (!event->spontaneous()) + { + load(); + } } void ShareDialog::closedialog() { - ui.localpath_lineEdit->clear(); - ui.anonymouscheckBox->setChecked(false); - ui.friendscheckBox->setChecked(false); - - close(); -} + ui.localpath_lineEdit->clear(); + ui.browsableCheckBox->setChecked(false); + ui.networkwideCheckBox->setChecked(false); -bool ShareDialog::messageBoxOk(QString msg) -{ - QMessageBox mb("Share Manager InfoBox!",msg,QMessageBox::Information,QMessageBox::Ok,0,0); - mb.setButtonText( QMessageBox::Ok, "OK" ); - mb.setWindowIcon(QIcon(QString::fromUtf8(":/images/rstray3.png"))); - mb.exec(); - return true; + close(); } diff --git a/retroshare-gui/src/gui/ShareDialog.h b/retroshare-gui/src/gui/ShareDialog.h index df1821686..17662af46 100644 --- a/retroshare-gui/src/gui/ShareDialog.h +++ b/retroshare-gui/src/gui/ShareDialog.h @@ -23,7 +23,6 @@ #define _SHAREDIALOG_H #include -#include #include "ui_ShareDialog.h" @@ -31,14 +30,12 @@ class ShareDialog : public QDialog { Q_OBJECT - public: +public: /** Default constructor */ ShareDialog( QWidget *parent = 0, Qt::WFlags flags = 0); /** Default destructor */ - bool messageBoxOk(QString); - public slots: /** Loads the settings for this page */ @@ -55,7 +52,6 @@ private slots: private: - std::string currentDir; /** Qt Designer generated object */ Ui::ShareDialog ui; }; diff --git a/retroshare-gui/src/gui/ShareDialog.ui b/retroshare-gui/src/gui/ShareDialog.ui index f7c48bbb0..c8996c8ed 100644 --- a/retroshare-gui/src/gui/ShareDialog.ui +++ b/retroshare-gui/src/gui/ShareDialog.ui @@ -1,282 +1,282 @@ - - - ShareDialog - - - Qt::NonModal - - - - 0 - 0 - 536 - 351 - - - - RetroShare Share Folder - - - - :/images/rstray3.png:/images/rstray3.png - - - false - - - - 0 - - - 0 - - - - - - 16777215 - 60 - - - - QFrame#frame{background-image: url(:/images/connect/connectFriendBanner.png);} - - - - QFrame::NoFrame - - - QFrame::Raised - - - 1 - - - - 6 - - - 6 - - - - - - 48 - 48 - - - - - 48 - 48 - - - - - - - - - - :/images/fileshare48.png - - - - - - - - - - <!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-family:'Sans Serif'; font-size:26pt; font-weight:600; color:#ffffff;">Share Folder</span></p></body></html> - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - - - QFrame::NoFrame - - - QFrame::Raised - - - - 6 - - - - - Share Folder - - - - - - - - Local Path - - - - - - - true - - - - - - - - 27 - 0 - - - - - 200 - 200 - - - - Browse - - - - 24 - 24 - - - - - - - - Virtual Folder - - - - - - - - - - - - Share Flags - - - - - - Anonymous shared Network Wide - - - Anonymous - - - - - - - Browseable by Friends - - - Friends - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - - - - 0 - 0 - - - - - 200 - 200 - - - - OK - - - - 16 - 16 - - - - false - - - true - - - - - - - Qt::Horizontal - - - - 191 - 20 - - - - - - - - Cancel - - - - - - - - - - - - - + + + ShareDialog + + + Qt::NonModal + + + + 0 + 0 + 536 + 313 + + + + RetroShare Share Folder + + + + :/images/rstray3.png:/images/rstray3.png + + + false + + + + 0 + + + 0 + + + + + + 16777215 + 60 + + + + QFrame#frame{background-image: url(:/images/connect/connectFriendBanner.png);} + + + + QFrame::NoFrame + + + QFrame::Raised + + + 1 + + + + 6 + + + 6 + + + + + + 48 + 48 + + + + + 48 + 48 + + + + + + + + + + :/images/fileshare48.png + + + + + + + + + + <!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-family:'Sans Serif'; font-size:26pt; font-weight:600; color:#ffffff;">Share Folder</span></p></body></html> + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + 6 + + + + + Share Folder + + + + + + + + Local Path + + + + + + + true + + + + + + + + 27 + 0 + + + + + 200 + 200 + + + + Browse + + + + 24 + 24 + + + + + + + + Virtual Folder + + + + + + + + + + + + Share Flags + + + + + + Anonymous shared Network Wide + + + Network Wide + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Browseable by Friends + + + Browsable + + + + + + + + + + + + + + 0 + 0 + + + + + 200 + 200 + + + + OK + + + + 16 + 16 + + + + false + + + true + + + + + + + Qt::Horizontal + + + + 191 + 20 + + + + + + + + Cancel + + + + + + + + + + + + + diff --git a/retroshare-gui/src/gui/ShareManager.cpp b/retroshare-gui/src/gui/ShareManager.cpp index 915471a02..14f1383c8 100644 --- a/retroshare-gui/src/gui/ShareManager.cpp +++ b/retroshare-gui/src/gui/ShareManager.cpp @@ -29,262 +29,228 @@ #include #include #include - #include -#include /* Images for context menu icons */ #define IMAGE_CANCEL ":/images/delete.png" +#define COLUMN_PATH 0 +#define COLUMN_VIRTUALNAME 1 +#define COLUMN_NETWORKWIDE 2 +#define COLUMN_BROWSABLE 3 + ShareManager *ShareManager::_instance = NULL ; /** Default constructor */ ShareManager::ShareManager(QWidget *parent, Qt::WFlags flags) : QDialog(parent, flags) { - /* Invoke Qt Designer generated QObject setup routine */ - ui.setupUi(this); + /* Invoke Qt Designer generated QObject setup routine */ + ui.setupUi(this); - isLoading = false; - load(); + isLoading = false; + load(); - connect(ui.addButton, SIGNAL(clicked( bool ) ), this , SLOT( showShareDialog() ) ); - connect(ui.removeButton, SIGNAL(clicked( bool ) ), this , SLOT( removeShareDirectory() ) ); - connect(ui.closeButton, SIGNAL(clicked()), this, SLOT(close())); + connect(ui.addButton, SIGNAL(clicked( bool ) ), this , SLOT( showShareDialog() ) ); + connect(ui.removeButton, SIGNAL(clicked( bool ) ), this , SLOT( removeShareDirectory() ) ); + connect(ui.closeButton, SIGNAL(clicked()), this, SLOT(close())); - connect( ui.shareddirList, SIGNAL( customContextMenuRequested( QPoint ) ), this, SLOT( shareddirListCostumPopupMenu( QPoint ) ) ); + connect( ui.shareddirList, SIGNAL( customContextMenuRequested( QPoint ) ), this, SLOT( shareddirListCostumPopupMenu( QPoint ) ) ); - ui.addButton->setToolTip(tr("Add a Share Directory")); - ui.removeButton->setToolTip(tr("Stop sharing selected Directory")); + ui.addButton->setToolTip(tr("Add a Share Directory")); + ui.removeButton->setToolTip(tr("Stop sharing selected Directory")); - ui.shareddirList->horizontalHeader()->setResizeMode( 0,QHeaderView::Stretch); - ui.shareddirList->horizontalHeader()->setResizeMode( 2,QHeaderView::Interactive); - - ui.shareddirList->horizontalHeader()->resizeSection( 0, 360 ); - ui.shareddirList->horizontalHeader()->setStretchLastSection(false); + ui.shareddirList->horizontalHeader()->setResizeMode( COLUMN_PATH, QHeaderView::Stretch); + ui.shareddirList->horizontalHeader()->setResizeMode( COLUMN_BROWSABLE, QHeaderView::Interactive); - setAttribute(Qt::WA_DeleteOnClose, true); + ui.shareddirList->horizontalHeader()->resizeSection( COLUMN_PATH, 360 ); + ui.shareddirList->horizontalHeader()->setStretchLastSection(false); + setAttribute(Qt::WA_DeleteOnClose, true); } ShareManager::~ShareManager() { - _instance = NULL; + _instance = NULL; } void ShareManager::shareddirListCostumPopupMenu( QPoint point ) { - QMenu contextMnu( this ); + QMenu contextMnu( this ); - removeAct = new QAction(QIcon(IMAGE_CANCEL), tr( "Remove" ), this ); - connect( removeAct , SIGNAL( triggered() ), this, SLOT( removeShareDirectory() ) ); + removeAct = new QAction(QIcon(IMAGE_CANCEL), tr( "Remove" ), this ); + connect( removeAct , SIGNAL( triggered() ), this, SLOT( removeShareDirectory() ) ); - contextMnu.addAction( removeAct ); + contextMnu.addAction( removeAct ); - contextMnu.exec(QCursor::pos()); + contextMnu.exec(QCursor::pos()); } /** Loads the settings for this page */ void ShareManager::load() { - isLoading = true; - std::cerr << "ShareManager:: In load !!!!!" << std::endl ; + isLoading = true; + std::cerr << "ShareManager:: In load !!!!!" << std::endl ; - std::list::const_iterator it; - std::list dirs; - rsFiles->getSharedDirectories(dirs); + std::list::const_iterator it; + std::list dirs; + rsFiles->getSharedDirectories(dirs); - /* get a link to the table */ - QTableWidget *listWidget = ui.shareddirList; + /* get a link to the table */ + QTableWidget *listWidget = ui.shareddirList; - /* set new row count */ - listWidget->setRowCount(dirs.size()); + /* set new row count */ + listWidget->setRowCount(dirs.size()); - connect(this,SIGNAL(itemClicked(QTableWidgetItem*)),this,SLOT(updateFlags(QTableWidgetItem*))) ; + connect(this,SIGNAL(itemClicked(QTableWidgetItem*)),this,SLOT(updateFlags(QTableWidgetItem*))) ; #ifndef USE_COMBOBOX - QString ToolTips [2] = { QString("If checked, the share is anonymously shared to anybody."), - QString("If checked, the share is browsable by your friends.") }; - int Flags [2] = { RS_FILE_HINTS_NETWORK_WIDE, RS_FILE_HINTS_BROWSABLE }; + QString ToolTips [2] = { QString("If checked, the share is anonymously shared to anybody."), + QString("If checked, the share is browsable by your friends.") }; + int Flags [2] = { RS_FILE_HINTS_NETWORK_WIDE, RS_FILE_HINTS_BROWSABLE }; #endif + int row=0 ; + for(it = dirs.begin(); it != dirs.end(); it++,++row) + { + listWidget->setItem(row, COLUMN_PATH, new QTableWidgetItem(QString::fromUtf8((*it).filename.c_str()))); + listWidget->setItem(row, COLUMN_VIRTUALNAME, new QTableWidgetItem(QString::fromUtf8((*it).virtualname.c_str()))); - int row=0 ; - for(it = dirs.begin(); it != dirs.end(); it++,++row) - { - listWidget->setItem(row,0,new QTableWidgetItem(QString::fromUtf8((*it).filename.c_str()))); #ifdef USE_COMBOBOX - QComboBox *cb = new QComboBox ; - cb->addItem(QString("Network Wide")) ; - cb->addItem(QString("Browsable")) ; - cb->addItem(QString("Universal")) ; + QComboBox *cb = new QComboBox ; + cb->addItem(QString("Network Wide")) ; + cb->addItem(QString("Browsable")) ; + cb->addItem(QString("Universal")) ; - cb->setToolTip(QString("Decide here whether this directory is\n* Network Wide: \tanonymously shared over the network (including your friends)\n* Browsable: \tbrowsable by your friends\n* Universal: \t\tboth")) ; + cb->setToolTip(QString("Decide here whether this directory is\n* Network Wide: \tanonymously shared over the network (including your friends)\n* Browsable: \tbrowsable by your friends\n* Universal: \t\tboth")) ; - // TODO - // - set combobox current value depending on what rsFiles reports. - // - use a signal mapper to get the correct row that contains the combo box sending the signal: - // mapper = new SignalMapper(this) ; - // - // for(all cb) - // { - // signalMapper->setMapping(cb,...) - // } - // - int index = 0 ; - index += ((*it).shareflags & RS_FILE_HINTS_NETWORK_WIDE) > 0 ; - index += (((*it).shareflags & RS_FILE_HINTS_BROWSABLE) > 0) * 2 ; - listWidget->setCellWidget(row,1,cb); + // TODO + // - set combobox current value depending on what rsFiles reports. + // - use a signal mapper to get the correct row that contains the combo box sending the signal: + // mapper = new SignalMapper(this) ; + // + // for(all cb) + // { + // signalMapper->setMapping(cb,...) + // } + // + int index = 0 ; + index += ((*it).shareflags & RS_FILE_HINTS_NETWORK_WIDE) > 0 ; + index += (((*it).shareflags & RS_FILE_HINTS_BROWSABLE) > 0) * 2 ; + listWidget->setCellWidget(row,1,cb); - if(index < 1 || index > 3) - std::cerr << "******* ERROR IN FILE SHARING FLAGS. Flags = " << (*it).shareflags << " ***********" << std::endl ; - else - index-- ; + if(index < 1 || index > 3) + std::cerr << "******* ERROR IN FILE SHARING FLAGS. Flags = " << (*it).shareflags << " ***********" << std::endl ; + else + index-- ; - cb->setCurrentIndex(index) ; + cb->setCurrentIndex(index) ; #else - int col; - for (col = 1; col <= 2; col++) { - QModelIndex index = listWidget->model()->index(row, col, QModelIndex()); - QCheckBox *cb = (QCheckBox*) listWidget->indexWidget(index); - if (cb == NULL) { - cb = new QCheckBox; - cb->setToolTip(ToolTips [col - 1]); - listWidget->setCellWidget(row, col, cb); + int col; + for (col = 0; col <= 1; col++) { + QModelIndex index = listWidget->model()->index(row, col + COLUMN_NETWORKWIDE, QModelIndex()); + QCheckBox *cb = (QCheckBox*) listWidget->indexWidget(index); + if (cb == NULL) { + cb = new QCheckBox; + cb->setToolTip(ToolTips [col]); + listWidget->setCellWidget(row, col + COLUMN_NETWORKWIDE, cb); - QObject::connect(cb, SIGNAL(toggled(bool)), this, SLOT(updateFlags(bool))) ; - } - cb->setChecked((*it).shareflags & Flags [col - 1]); - } + QObject::connect(cb, SIGNAL(toggled(bool)), this, SLOT(updateFlags(bool))) ; + } + cb->setChecked((*it).shareflags & Flags [col]); + } #endif - } + } - //ui.incomingDir->setText(QString::fromStdString(rsFiles->getDownloadDirectory())); + //ui.incomingDir->setText(QString::fromStdString(rsFiles->getDownloadDirectory())); - listWidget->update(); /* update display */ - update(); + listWidget->update(); /* update display */ + update(); - isLoading = false ; + isLoading = false ; } void ShareManager::showYourself() { - if(_instance == NULL) - _instance = new ShareManager(NULL,0) ; + if(_instance == NULL) + _instance = new ShareManager(NULL,0) ; - _instance->show() ; - _instance->activateWindow(); + _instance->show() ; + _instance->activateWindow(); } /*static*/ void ShareManager::postModDirectories(bool update_local) { - if (_instance == NULL || _instance->isHidden()) { - return; - } - - if (update_local) { - _instance->load(); - } -} + if (_instance == NULL || _instance->isHidden()) { + return; + } - - -void ShareManager::addShareDirectory() -{ - - /* select a dir - */ - - - QString qdir = QFileDialog::getExistingDirectory(this, tr("Select A Folder To Share"), "", QFileDialog::DontUseNativeDialog | QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); - - /* add it to the server */ - std::string dir = qdir.toStdString(); - if (dir != "") - { - SharedDirInfo sdi ; - sdi.filename = dir ; - sdi.shareflags = RS_FILE_HINTS_NETWORK_WIDE | RS_FILE_HINTS_BROWSABLE ; - - rsFiles->addSharedDirectory(sdi); - - messageBoxOk(tr("Shared Directory Added!")); - load(); - } + if (update_local) { + _instance->load(); + } } void ShareManager::updateFlags(bool b) { - if(isLoading) - return ; + if(isLoading) + return ; - std::cerr << "Updating flags (b=" << b << ") !!!" << std::endl ; + std::cerr << "Updating flags (b=" << b << ") !!!" << std::endl ; - std::list::iterator it; - std::list dirs; - rsFiles->getSharedDirectories(dirs); + std::list::iterator it; + std::list dirs; + rsFiles->getSharedDirectories(dirs); - int row=0 ; - for(it = dirs.begin(); it != dirs.end(); it++,++row) - { - std::cerr << "Looking for row=" << row << ", file=" << (*it).filename << ", flags=" << (*it).shareflags << std::endl ; - uint32_t current_flags = 0 ; - current_flags |= (dynamic_cast(ui.shareddirList->cellWidget(row,1)))->isChecked()? RS_FILE_HINTS_NETWORK_WIDE:0 ; - current_flags |= (dynamic_cast(ui.shareddirList->cellWidget(row,2)))->isChecked()? RS_FILE_HINTS_BROWSABLE:0 ; + int row=0 ; + for(it = dirs.begin(); it != dirs.end(); it++,++row) + { + std::cerr << "Looking for row=" << row << ", file=" << (*it).filename << ", flags=" << (*it).shareflags << std::endl ; + uint32_t current_flags = 0 ; + current_flags |= (dynamic_cast(ui.shareddirList->cellWidget(row,COLUMN_NETWORKWIDE)))->isChecked()? RS_FILE_HINTS_NETWORK_WIDE:0 ; + current_flags |= (dynamic_cast(ui.shareddirList->cellWidget(row,COLUMN_BROWSABLE)))->isChecked()? RS_FILE_HINTS_BROWSABLE:0 ; - if( (*it).shareflags ^ current_flags ) - { - (*it).shareflags = current_flags ; - rsFiles->updateShareFlags(*it) ; // modifies the flags + if( (*it).shareflags ^ current_flags ) + { + (*it).shareflags = current_flags ; + rsFiles->updateShareFlags(*it) ; // modifies the flags - std::cout << "Updating share flags for directory " << (*it).filename << std::endl ; - } - } + std::cout << "Updating share flags for directory " << (*it).filename << std::endl ; + } + } } void ShareManager::removeShareDirectory() { - /* id current dir */ - /* ask for removal */ - QTableWidget *listWidget = ui.shareddirList; - int row = listWidget -> currentRow(); - QTableWidgetItem *qdir = listWidget->item(row,0) ; + /* id current dir */ + /* ask for removal */ + QTableWidget *listWidget = ui.shareddirList; + int row = listWidget -> currentRow(); + QTableWidgetItem *qdir = listWidget->item(row, COLUMN_PATH); - QString queryWrn; - queryWrn.clear(); - queryWrn.append(tr("Do you really want to stop sharing this directory ? ")); + QString queryWrn; + queryWrn.clear(); + queryWrn.append(tr("Do you really want to stop sharing this directory ?")); - if (qdir) - { - if ((QMessageBox::question(this, tr("Warning!"),queryWrn,QMessageBox::Ok|QMessageBox::No, QMessageBox::Ok))== QMessageBox::Ok) - { - rsFiles->removeSharedDirectory( qdir->text().toStdString()); - load(); - } - else - return; - } + if (qdir) + { + if ((QMessageBox::question(this, tr("Warning!"),queryWrn,QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes))== QMessageBox::Yes) + { + rsFiles->removeSharedDirectory( qdir->text().toUtf8().constData()); + load(); + } + } } -bool ShareManager::messageBoxOk(QString msg) - { - QMessageBox mb("Share Manager InfoBox!",msg,QMessageBox::Information,QMessageBox::Ok,0,0); - mb.setButtonText( QMessageBox::Ok, "OK" ); - mb.setWindowIcon(QIcon(QString::fromUtf8(":/images/rstray3.png"))); - mb.exec(); - return true; - } - void ShareManager::showEvent(QShowEvent *event) { - if (!event->spontaneous()) - { - load(); - } + if (!event->spontaneous()) + { + load(); + } } void ShareManager::showShareDialog() { - ShareDialog sharedlg (this); - sharedlg.exec(); + ShareDialog sharedlg (this); + sharedlg.exec(); } diff --git a/retroshare-gui/src/gui/ShareManager.h b/retroshare-gui/src/gui/ShareManager.h index 37ebede7f..63ecd91e3 100644 --- a/retroshare-gui/src/gui/ShareManager.h +++ b/retroshare-gui/src/gui/ShareManager.h @@ -30,53 +30,43 @@ class ShareManager : public QDialog { - Q_OBJECT + Q_OBJECT - public: - static void showYourself() ; - static void postModDirectories(bool update_local); +public: + static void showYourself() ; + static void postModDirectories(bool update_local); private: - /** Default constructor */ - ShareManager( QWidget *parent = 0, Qt::WFlags flags = 0); - /** Default destructor */ - ~ShareManager(); - - /** Loads the settings for this page */ - void load(); - bool messageBoxOk(QString); - -public slots: - - void showShareDialog(); + /** Default constructor */ + ShareManager( QWidget *parent = 0, Qt::WFlags flags = 0); + /** Default destructor */ + ~ShareManager(); + /** Loads the settings for this page */ + void load(); protected: - virtual void showEvent(QShowEvent * event); + virtual void showEvent(QShowEvent * event); private slots: + /** Create the context popup menu and it's submenus */ + void shareddirListCostumPopupMenu( QPoint point ); - /** Create the context popup menu and it's submenus */ - void shareddirListCostumPopupMenu( QPoint point ); - - void addShareDirectory(); - void removeShareDirectory(); - void updateFlags(bool); - + void showShareDialog(); + void removeShareDirectory(); + void updateFlags(bool); private: + static ShareManager *_instance; + bool isLoading; - - static ShareManager *_instance; - bool isLoading; - - /** Define the popup menus for the Context menu */ - QMenu* contextMnu; + /** Define the popup menus for the Context menu */ + QMenu* contextMnu; /** Defines the actions for the context menu */ - QAction* removeAct; + QAction* removeAct; - /** Qt Designer generated object */ - Ui::ShareManager ui; + /** Qt Designer generated object */ + Ui::ShareManager ui; }; #endif diff --git a/retroshare-gui/src/gui/ShareManager.ui b/retroshare-gui/src/gui/ShareManager.ui index 9dc534feb..2c445911e 100644 --- a/retroshare-gui/src/gui/ShareManager.ui +++ b/retroshare-gui/src/gui/ShareManager.ui @@ -1,273 +1,296 @@ - - - ShareManager - - - Qt::NonModal - - - - 0 - 0 - 538 - 343 - - - - RetroShare Share Manager - - - - :/images/rstray3.png:/images/rstray3.png - - - false - - - - 0 - - - 0 - - - - - QFrame#frame{background-image: url(:/images/connect/connectFriendBanner.png);} - - - - QFrame::NoFrame - - - QFrame::Raised - - - 1 - - - - 6 - - - 6 - - - - - - 48 - 48 - - - - - 48 - 48 - - - - - - - - - - :/images/fileshare48.png - - - - - - - - - - <!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-family:'Sans Serif'; font-size:26pt; font-weight:600; color:#ffffff;">Share Manager</span></p></body></html> - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - - - - - - - - QFrame::NoFrame - - - QFrame::Raised - - - - 6 - - - - - Shared Folder Manager - - - - 2 - - - - - <!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;">This is a list of shared folders . You can add and remove folders using the button on the left. </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;">When you add a new folder, intially all files in that folder are shared.</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:'Sans'; font-size:8pt;">You can separately setup share flags for each shared directory:</span><span style=" font-size:8pt;"> </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:'Sans'; font-size:8pt; font-weight:600;">Browsable </span><span style=" font-family:'Sans'; font-size:8pt;">: files are browsable from your direct friends.</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:'Sans'; font-size:8pt; font-weight:600;">Network Wide</span><span style=" font-family:'Sans'; font-size:8pt;">: files can be downloaded by anybody through anonymous tunnels.</span></p></body></html> - - - - - - - Qt::CustomContextMenu - - - QAbstractItemView::SingleSelection - - - QAbstractItemView::SelectRows - - - true - - - false - - - true - - - 100 - - - true - - - false - - - 22 - - - - Directory - - - - - Network Wide - - - - - - - - Browsable - - - - - - - - - - - - - - - 27 - 0 - - - - - 200 - 200 - - - - Add - - - - 24 - 24 - - - - - - - - - 0 - 0 - - - - - 200 - 200 - - - - Remove - - - - 16 - 16 - - - - - - - - Qt::Horizontal - - - - 191 - 20 - - - - - - - - Close - - - - - - - - - - - - - + + + ShareManager + + + Qt::NonModal + + + + 0 + 0 + 538 + 343 + + + + RetroShare Share Manager + + + + :/images/rstray3.png:/images/rstray3.png + + + false + + + + 0 + + + 0 + + + + + QFrame#frame{background-image: url(:/images/connect/connectFriendBanner.png);} + + + + QFrame::NoFrame + + + QFrame::Raised + + + 1 + + + + 6 + + + 6 + + + + + + 48 + 48 + + + + + 48 + 48 + + + + + + + + + + :/images/fileshare48.png + + + + + + + + + + <!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-family:'Sans Serif'; font-size:26pt; font-weight:600; color:#ffffff;">Share Manager</span></p></body></html> + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + + + + QFrame::NoFrame + + + QFrame::Raised + + + + 6 + + + + + Shared Folder Manager + + + + 2 + + + + + <!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;">This is a list of shared folders. You can add and remove folders using the buttons at the bottom.</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;">When you add a new folder, intially all files in that folder are shared.</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:'Sans'; font-size:8pt;">You can separately setup share flags for each shared directory:</span><span style=" font-size:8pt;"> </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:'Sans'; font-size:8pt; font-weight:600;">Browsable</span><span style=" font-family:'Sans'; font-size:8pt;">: files are browsable from your direct friends.</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:'Sans'; font-size:8pt; font-weight:600;">Network Wide</span><span style=" font-family:'Sans'; font-size:8pt;">: files can be downloaded by anybody through anonymous tunnels.</span></p></body></html> + + + + + + + Qt::CustomContextMenu + + + QAbstractItemView::NoEditTriggers + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + true + + + false + + + true + + + 100 + + + true + + + false + + + 22 + + + false + + + 22 + + + true + + + true + + + 100 + + + + Directory + + + + + Virtual Folder + + + + + Network Wide + + + + + + + + Browsable + + + + + + + + + + + + + + + 27 + 0 + + + + + 200 + 200 + + + + Add + + + + 24 + 24 + + + + + + + + + 0 + 0 + + + + + 200 + 200 + + + + Remove + + + + 16 + 16 + + + + + + + + Qt::Horizontal + + + + 191 + 20 + + + + + + + + Close + + + + + + + + + + + + + diff --git a/retroshare-gui/src/gui/notifyqt.cpp b/retroshare-gui/src/gui/notifyqt.cpp index eb56837ac..8d9681d63 100644 --- a/retroshare-gui/src/gui/notifyqt.cpp +++ b/retroshare-gui/src/gui/notifyqt.cpp @@ -152,7 +152,7 @@ void NotifyQt::notifyTurtleSearchResult(uint32_t search_id,const std::listJGh-uMALjSxwMpCYO3gv7(U zC7wPYl680|al{W~PhcZ{MeYD{ei8Bru*6pYat3sa1JW002Lmz==vW)%4uCJ40h}y> z^&AA?r3J9`Rsi^T0yNTzWX=`F3Bfs}C>>7!08X&I&orPkWxeOZX@K-OP3aEYb{?l3 z8`{?iSoC+~17HKZfIGwi*`f#T5(jh=1@5vF&^b8J%R#s#r+~W=0kqXZq;U!JF*L!8 zxj=mHilhu@0PpEA6bQ+Bz5?#{Kp+$LN<4A~xO+{3C9enW{#YPKoq&6W4F;-#d*O_q zUqCJavJM3`^XNN~G;yxPbeY7})gqbYpmV^z@&q#TnMgKbgK;3|V7LO@8yxq9-z4T* zNj&B%@wSghYV#4ePrg8Uy#Vf;6Oe8w9+G(*fafj&3A`yWWjOG@!vKZ|z;{5^R2NGO z?k#c48{j*i1R7Hfd{y@zMX)0bq2v3&Cr-YP`<&>r}qR^MJ3RVH$YwD3P7qseRd3xh$f)jik6}K zC9t@?9*8@EnzUrRK z2F*ylO7J3IfNp#P-o1YS?VJtX{dXhRfse?a(9+BX;}@V<4*{s z$I+(r5=rNTLMVsEDr`E0CZSI`Hbx|!ktebA8HDDbA8OGRLKiE69I1rRV-L{^L@VrD zzlX4Hi9n9chOlMvxah+neAY2wosL5IZtP>?5$MhRfsB9%eGzg2L`(@rnNp406n2Jw z5P>aI+quvuDjvv!AJ8X09U$o~^qrFrG*~B+b&8i5I|%xg8i88;3VlEA02<^2k&Soa z@7h9S(paDe1&GYUE$n6|@x&mJbU-BZJB9YLFc12jZVg1~Ceh%wPr5jr0sYExWt{7a zBu$q{O#UcwgR{i)GZL?(N5Lz61w4yqabSd9$*QLAu2fttmw@9;sq_sfT*HHIFd@^b)|#iH;A5z?%_hV@w?L5 zP*e$VzBd7y^@F%ne;^mLL{j%l5T92G#IGA9S?)nMnGVC0IO$LY!%#7RNkUB74|>}K7o}v69LX2h1DskV1RGM zu=;8+`rXs8ZdDeLOB4#dG298-D)Es9c0Qg8&|W2yeE$TygXaM?c7Xj>lYowQfkQQv z=q{%~nGXv5HWp6Q!zg90E1dXp4wM#E=BGem%rf(myJ<$>vx1Tip^cZMi1ZjNa2f*TL;<~U3 zSd)6BSu4ChGEgM-iIUi(lr+DL^W>FDyf5m3+;T8(Q`>d3AZ>y$R!nw62Ny&qO&Wk3)CSL<4?@E%_6$34olT7DAfcSioM3zBvd>;YSSWRX; z`v%mMN^(Cx#el92Svk5TkY+Q;X5S>B@6*UZ9&M5F7AYOgfHZkSj;yZ(G@*nXy?~LZ zalOXgaD`l$vmI!)pGej}iCoL|LzlwHbw`5MNKfv1{{S-SH<2{ck~}Rn7?SK zu)QZ5w!>8I-xeS*liK+V0%+Ta*2=C2q+df?XOt6AOO7_Sw8DLQfi?-peHy-rHn+Hs z9&-rwPACBKM_1}Q04Hm3HErj+0u_20ZCBhFAm3Ufy>gv)Sl|udG+rcSg(9t(TLA6$ zX*)n;3)-VMTIltQjTf}d48v&{k8>K5LnGfe1j>z}{nBy8^A^*=OM=i5v=hk!{Am1H z4`3nFsooCF$k#t;0*B&!T1$tGy#~;8KTQurb)J($GiC(<$qS*`DqnzGRwBvT781*D z((FfQ9lBM~(HcF@%eQno7N?(f8Soc(((&URfZUI#rq*ah<1f=CAImUa`$kvg8UZ@V zBtA-{n{k8F=;?IpAE+!Sv6Idw`7SPhY*n8H#vA-v;*wxLQQty`Bh=TTUy_ zVy@%Xow2Ahn3r+M<_jR1GnsJj1dtCSnW8EB`Z-&fV!>V@tCXzfXZ{ z?kUoM*;wW`)&xxz1O_nA&)AViCiCjM6^PR=iC2^&Y4gFX`KT&@xMCI{`ua;OaL_{x zM_;kPMYtCXHCUG~{egbZW5Em1Cf)g!g)G3ut=`UhoW=b=G>V0bu|ZQ7eivu-O@%UtBCe`J$^?Mo6<%`+oE$B6j9NX!JGt+((E18G!Uef?}Aapkh)IlUI9?gz_ zOU3**o}E6o38?>OiG63VGZ`2)=?(0xX&OL_0*O1lMba5n5)XGZuq(Yfq1$RIlB{0L zZeZ*{HtuA%tI_<_2xWIF*8oXt&hBOo1v2|5d+3o4q<0Z}ylg$NUc=ZE%v0%DJ$rhk zE)Zu=_CmOg+qnySN$;Qm*RofGdjP$CnZ0h{0}OoF2YETbZ(i(kr}sc*27C57dK16{ zNA`IhhFRf09QDZomimm7x1R{K_E}EeZ8s*&Z#lsx3s{$7oO;7c43UdC3oG)|>DS#ZT#nsN~0nBkSSLc2+w80LX!*WzQ_cvT~j2+3wZk!K~ZaK@HYa2BT zsB)*kwV#2G>B~)Hij{-Gp6mW?JFt{%T!XdtkD-;8suV+>cgCEZGKqfZq{Ly5%x z?h;2d=a#0Tk8g2b;{917>8XAq8UGh)`X^(Gjh)vmZtZK_En#+CL1(nUa9-kITW*72 z7mRN&aT_9f1N~9OZS;r$LXH{t+PE0@a9iem0n+0cx3!5LjmacPt%O ztk+8JxB-n&Y%F(%Vi-B#PwvcSl(NAhV1j{9@xhu{*CIDKb6Odo> zxoaCyobU16_3@TK`|RUxxMFI*x}3W)38UWr0o;uhftYCIh@=K>8h7K?RBT`dcdPz( z%z_AatM#vF)5dVOsEDH2VmU|ywxHesMTuTeyqm;ptXkbwJxLnY}E3#y%%ASn9tX5 zegG?75qzUP4S_6N$v3Xs2V(+v-aYXrhOQTQk5^$B@tAlYnb~y2@xF_G0BbmwZ+8JT z=iq(5^J6s5t*;s9*0eKB#Bx;F*aiIX&A8Cr_VdF}eFPdr z`QhcmfHl?e$;&Vx{3PR(H(@$?!hug4Zh_y&@)`5dCHUF!qwk>Up3#LL6O8q?`SJW% z?+T!~OZc&`_W+%Ij~}=20|qp{!TikbXjHD8wE%$;2@Aqy8t zgHG_XHeu*j<32xo(-ACUOyg&tLqUhE<>z3<3w)=DB*`TrX;8Jq?hPd7w3fL3jhSko z??&)*w)&!5jyJm3axtvsmuyPK%wn`i+Mx@-WJ@YQWe1VeHcnz-2EX(Zsz;m?zbp|` zZNp`LIVONmBVHuw{aIpOrbt@wl3%`Q8md76zar8s_C9{a3Y@35$s*~@%@Pe|f&9wm z_CS(j_|;GLpdN4K*L1_J>9S2E^C;!l-ZlXx!sTO z!=w4_kHUeT{*B*RjDl#pi6lAc{O-C1K>Qzyq{;R8-2v#E?>*u7p^YII{EaJX+Zm$x zQ$>a7p;z&zEmxyQy2qdP%>ve}oIi~vH0D{wpIQF_OBt>C^HI2;r@RqKR!8y|JZ(^6 zck(y$EYNk<Y{!`{u6 z|30J%P{X69BXrhEXTZ-GqiHw4J_>oVJzHYngRS?w;5u>##xR;L;b zPT+W11C9e|y+9=Sv%9QGSRI_ty|O0yw*X%k%RI4wKvL$(yw9L#=r>X3BM02?CYkR- z6twKN%nx_qa2Sy+3rzOM3c_hw;882Am8T)^U_phK1wORKa%qxCYI2ozY0LwQ>Lcrt z;tJ%@eOb4=Xsi2elZDi2jd`d^7Fz59bmui$58XnbeY?oQ!=?e*uvQikfbAt7H`c9d zXW(T~V?SWX@lX~u5figD17uOyE9o&w7EN$IM+}n<>^%+O{#n_ej;%03%a_G4T;+Sy zMAA1=vY4=6vA4dm!Sjq569h{iF%Jq38~EnDr2(Q|HyZ2i7InEPFm6+G&MCG-l3 zTis=aOLqeNh?EtD;y~OjWe01n0XBS}tTYHqCc~bJB%gkWq)Dx1rJZpfuv@ZY=aVsv zE@&(}J`@xFqVcjbOV0w_WwJB-z0oyA$j%unu=;0|ou4@#nA=s^#b6U2S6Rp&p6!AK zhMKacUMH{$_*CLyACYurcZol`iDa(65(DPRo<~*ybO@C_KZi>eQYm}c+^`quDLcGC zzA2Wyu8ZaC=?`UZeqeSSA1wP&cN~BwQ1)qe0ov;MvM(3c11Xy?t17(?bbVvl&oTJi z$whK#YY&VOIX#bCBdorhxjn&Z6OnT{Dqw@Mt{(jOPdUGQ6|c9u8Rw80IuP3|L@ciMTmuK`VoCogZ2 zj0==hCHL#_3Zw3=a=(YDVe^{H{jZ|9DQWVq8Vi6{N93WmFXC~5An*Cb4SnVkdD!mF znDmFqd(TV5O5QGc#P*56Y6V8i`y}I;9=Ay($vh_SJFp&x-}8+t9UTmX^7t)-fDUn% zCw;NT!s$GD@=7$kKeowJuz8qOQ{uHFBFTo&63_M*N!#U1jK~zpf=9}8Pnc)9NS=45 z5*?Vmd_hypM}OwZ7w$iY!w--zvPSz6H%^{^IU5z-@2GSU8z9er;f~8TK)yt=1<2ha z@+EUImI(b*;_vO`tLxRo;I5Zk^dw%{^7ThCW_U71B#~c~7fkX6N)OAo48)wqZ@YZU zs0b`Ro|JF7h)F`LDe~D&LWcmeJNlzPJ85-1+*E@{;0-K*Jl!4|txz8bM$A zFYnQpc_zq@I(Pti&`|zRUIygxPx-@vt2bnUVVy3(;O=Qk?<1WSB(G`Jy77rB8hyonRv>m8YIAcRKURR0vvyd z`DI&y%v^>s!W@BmVS48oBybLxH}z^K2pY`Kq78zjCwBOAqhJ+|wt8fhU{!{iL<GYeiFUn7?HH?Lt&bu9fmgv!nCCsXv-1=gZYByYQzs{*(#B& z*$iR&bQGY~17Z4ce{4uD%xK&Mm*A;LdL>uLeT!Ci*%Bf5dl1fi9bxv%Wtfh+3Ui0l z!Enb`m^%@zaiF!3Pw-`j=}h7We<6RaH=bq96qdEb8MRqz5H^-${MWTa*p!FHZQOWa z^MR*W^2`-BU+M%Or0K@#433Y#B40n#Z&*z&sqO8|}%^__%0lWkC|9|(IEV89l$ zL)fzv-EPn*p=3PjO0VO>{)Ep+4~au(3kMS)W57FCIQV@jDyhLnx>#{f;#&{l@SHPP ziv;0h7)pBTh;X_F8np;};dDfQfNPn;+2go<3bqMnKh*+={2htLa8Rspenvjfjsrxp ze*1;X_UK<){uHifOu!@UpTdpatAJEE2sex;0Hzv*8~eMWhu!We+**ZGJULe+&D<~C z9~_Ryg$;y<*0{EbKLxDhp~Gq+{DCJr(58`4QHsj6D^Gaa*%!#14#Km54p1msakxey3RN{min9_W?z*o~eaAA8GDczX=oSGB zF-6gN&1^h4dnS@xnjR1L>lC5wCSZ)p8TBp>hIxtzRUv@-s-jOa8lzODqVH$4egV#kX!CMR zbrMO|+))fHNJZOFOED-H&mZC{6fup_7)3@aVtqI)COs5M?S5AzRxQOuv`mqFrUH+A z$`t9%!+^jx#R%0+Od&fcMqEFR=DtFa>2nz0R_S<1F~Jen+1pbw;cX@wvo{LEPFxn( zA>0Rp?ly`oQ?KK?*(NliX^M_kA^3)t9 zQAThJfsDT;lBVjFk@w2*g@%dB=sWm*vt`NwOHiZz@{|MapytwL%9v!dWNe-?HU>@i z{K?9Av={g`kTSllH4vX2B58n&GJfQBAgk|5JhWD+Z|Vm|>Q>8eSg8+c1f;Q`)NjQ{ zoT??34pJsgUWA^$voa~691q4;D3fL+VOry&Opd+{@bS1Z8P8+LrsWdPrHiB+4~S&? zH_Eid2Z1#@rOa%s1rk$VnRNw|vmRHJ*{U*t&w_GfJ}QuLxtqP=h;r=4GW0APmE+uO z08V%*4TBnDO6#MXc?1K&oAs6R!_Xt~*OmDTCt?w9i_&y!2euijTv3mr{oSuDc&$g7 zIw*^lW9_DUh_a{@4M2+#67RMXNo&?u?y!A;dBYTCNqiD!I@gp3R3A|W@1`{j+r?{g zu1HxrCku0kD&^6Hi>RMOdCV8(9Az(($Sy07oA2jaNIa0NJn3@;bB)i+lcU#T7B)nA z^4IM^Q?ixiSvpC@giw^Ux|@{%CnO)@hCx%XguDureRsN@@Af@ zEYg(sz0tS-e5w2`5!Ku|R{6NTKhV}i%I5;cd1oIfpD)D7-QtDvCDxQkn>xyhs(Jvn z7nC3TQNc!AD!A`H?INc$XBb}!qx-y%u@Na3j`S2P$Vrrq6&Ij zhH5Q8Zv5_UM-q%S9u9^@s(wXd@XZlk6}@f}CUc!s1HULSxfr1uB>w@V!(>&Q&tN?0 zU#E&6wFbwqUzM$_#7%u#B(QO)W6 z6jP=k)m&DIbJam&XAfJ6zXF^Y)x8JS0P`U|dyH*k-ELB%q;x>uQ7D?@0Rd{!itkQX z!`G{o6L1D9iq*=MzCee{MY4d)YKu#TmjLMl)mGfEz&bBf*IfP)H`h*et+CjlzaWx) zou{rf*%43kSE}nNw*&cggGkzTu-b7_3dTuG)s9n;o;tPTjBS`UgG7(t)%8!0!2w=X zHyHHNz;uqo3xT`v-7-w&IU3KTd2eEq5R^7#N8kRM_8AH8X4A<4+edl2iu|r~3 zyt*%@4>W(Oy5FoPKs)`e9#A_D?a3~6j23;+?Pcn?2fKlGuB(o}f{PpRRh|3?M%QgR zsxu=onof#VXTC)H&9_o#nF=w9uB*`!;pKW&!hPsNVVsO9){V>TR>p zg9Q|;cSNHlnz=_LDfE|kVv&09!XFrayi=DnL>201sV)iLgt1kR6!n4HXyOiqst*w~ zXuQA3*m){by^8jNU}5D^k#@ukELyjT+&*&rLM+7%ub4W*WXpZ**E3jp7^n z@b;rMnkDEUrk~STI^eziB8|-@)K$|ujooWBwxP2%H8(86H&k9}8aUz%`Ml6H7=hnA zSZErab;K%I?hlOazgXKWGAHq33lys|lNr znq-ly>5Cx{SrDe_ubhY{Y^yX;o@gK=8;GPe?`Yz-Uc;!zMl zCh67*T(T0R0adP>jb>PO9=h&OP4dhw7-!cMNyawPB=5vGAVwV5q{&bP8;40eR<22Z zJ`aln12q|)IspxAp~?7wA>gpCn$c}jvF^Q1GvQo1FqhgI!}Ki7-%OfGJMo2vr0JU6 zDlL#%T{UwF?#iKmXy*1cUwr(inSTP6Yi6-X+Ul$(kK=%hU8q@5%mWMv)hvz07;#Ft z#M9Xl-!;{&3vYoPmuogUI^j-yt=ZZl91UopQR8c8NYtD-gSCyQa}samiKH`*NIYz* zDgTJ#RP@z6^+B=S25O#84Zzoq>^0AgWkB>=%^Srepo>Rq-X%r=weGB`Y>XS|;7Cp7 zdR*wQ+qBHZ3io{vt(;i{RHSH?HE?4!?xR&&&q6;k{=8PR6o)rQrPZuxgt7Wtt<8WR z7zM_Nq$zK;bv~F?_?@=l=G{P=`D&eQR^jUpyw>^3V}NGcwM~{bz;H80>&`pjTL@NK z@ApIT6~aJ~G<}pv*6_2|=UEm;i(f>N%vxH1toIn8(M9osxvbN+uZ1JBe4y=Ii5|`} zMjPI}6Q0Pm)P@(}h~i#pBjk^OT7_sMR%Zd#-PK0?G8ssdJZ;~PDA+iv?dLQYOXH5( zegRMMO_qDw{w^5fG>+3o?M_9P`%D`%{UVT9rj4Cve&1t`HuZ@WmY;6i(vGf)DpzH% zorZw{nK4Tw)vVO!4h{sWKdxQM%Jo(-Ie*=wryLLGw< zNYG2XFak}l5Xl;4Xm1Tdv-V7_y&sZ!IX5L&f2)T zC9gOr-jkyt#%(QK3<_O?wiq|1w-U)3?$k9Lj_xSBT-Wrp4OUjlbna6zPO^y5d0(~y zs$He?DaDOU0_rE-us6xu>Wu%UxRdApW%JujS`PH z&;=j#$Ku##U5xo8waq(ojA8@j^pVW>2imNguPbAGMF&=JZ*T03%U=G6lKI#m?KLO@} z#D|%>=?)l_hg<8W_rlGr_tDMigLd##l5VaE*KpBi-NFXr@r@H(o$){}u+WA&?n2$sJ&{;FtkxZWj)`5*{kro}z42&yln9tY!QTrtjlB|2x2~Ft- z(7n~I0w3qI?0UvZ8I^v8fQ z>xMC=jjie4FGOj4+@{9vA#F0zXWFbV$Rmo4(@))_-c+rWWxu9kL~Aon90(4u518%+Zu~liHNz)FOXwCg~+cM$uSM9#i{-=_oi4oVqH@Dolc?onJmXNZZB7Us=&rHkg^)2g=uX$vHRbR)ioWY?1d@%4z(>g z&sebq)y9?7=u4lIlFI{WDKP{=tT-o0_%{pZCLTpLD?|v={E7M6tRiN$NWj15A(@rO z{O|9TNyYE}F$nO$`%wIy)Sh|u93dP3np-osV7~8;e?I~K-#ZEB5AqifEBkEx*u2o$ z`0w8uG>&*-Yi={`Uy_UzwJ{N8mlRmkkAKQwiY3(AMEsbIap&z%re6j!57VR=s@6n` z{hK8)Yr&c=r1n3j412QT&BJbLnw(3mjF(5%H12q*?w0cJ0^yx`Jn_grNNHT={qgq} zGPnO9XX}4N`dNqhmlN*W>;d8^qQKkO19^#(DPluu0=5_e5E&ui1 zKiA=ZR`T<9345uX`rjTo8qoUR$3)r~AAPlQ&qQsI=F7Zt((M1eIm~xvtut%JaPwT6 zYCNRYocUAJ#J$w^zf9R*GJLB|Ev!c2qh@vcr}Y0t6gC__nHD@JR$hP4sCjLxMO_w6 zA4-=7WAJYZHtGlw;!2zKE7|1vlGN8Yg1I;IQsZJsvK_hWLS>gqIu0aP$l!>?q)bQr zFV-Qf!ZV1r^~j;Z=l zf3?%pF)1}GDK7*du4|(bUVG)HAjBATnJ*M%t*%*tlfAwio=C7fd#}fDVV~z^>I8u|2k6>v{joJlFf-z0Ui5fZxpCvuD<)#7(l!kMy~Efe6$<5i|AVxk()gU4JQ%#nuzTE zv_$?sMAghPh0^xcam>YniD|uo*wzA>yjDwvqw#Zm&hNGbZxWx4VU=(h9^a-W@fUl+ zE;v66rV($x2mG7(95qqMOk!hB5QSQawO>yZ6-Cr95bQ*(SWgt4Pc-d3QOCX{Se#B1 zb)H4cYpKH1kBMSO;5{o7#nk{$f;~ux`bHFg5)$f%o3$i9!b&{s8qT*8?@+>g;!!1h zN<0?q!HDPJLF2C}{NX5*Ee<8&$vAvJjKt~7$-=^_$OpXj3litfB%$JB5|>mXnsi(y zTkS2A`^-}qt|f8B7F>6h#8p#>U5S#(jgJ&M;Cg({eTx)MJESo08Ht&hM3Zw#+z7S1 z^-l>c#0G37aTBy)GA;nwnpGrj#)W_NkjdO9D$H9ZleZYGa9|vXJ0(nceG>NtlhCFz z_yFuk;vtdPwgDtw7Ku-&MdB4VT-P6L36WeN@m4hPdh0;zQo-L+8wYcV1w59?1w0Vv zynnGwp^+Vlce)W9hc_wVu}dW0uSr7Zt0WeVCU)G5#OJtSPz4fSy5sYo;8J4i`Y1g9 zRVMGZQsLk-3fFX&DcFa+C-IFBu^De<3f*p4yNNEAzes$aiN|7IN;uP5;RzpwcUsEi zWkeFc1Q6@+j>MmC#M)wbpy0BeB=It_phATMhmaJ|pQyKnq-Ib}!+wP!T@-FBCaKkF z;ynx`wFw}y{uF&J!SXRHo+^_kRa7`6T&B=2gQT8Nnsx;w^*Mqm$RerVX5vGJlQiH2 z@iO?lgh7vF3Sr+#8j9K z&fiMXT8Y>eJO}K}&Iic{Jh-L8{xuX1{h~0vxx!8LWeOd3khIB%IE8^vh;2Ws@Io9( zS&-5s%)s7VB-9Ck8%rd<#oanr2 zU}CRB4d*a>uQ-zFtVyFHgmqun{mb!b%)gM1hDNWT%9z41oRrk*(*6t$s3H(Xb z1MG=~cB2|4-eK%qszLY4zE+0(CZDr# zCwgb{W#5QzZbyDme~7o5N`77TfZ60>bB54b_C zmz+X)Mc@Eg_l63mE}}LE|0TY>I<*aef=urPR(wL-XrZ=~1)^GYsO>g{6r($ZcugYq zCf2%F<6?PBA$1oM+u2Pf51*&-o*RYqo`--llR{?ABHpGwwVMtvde}mtfxn2gkSL6w zgm392lh0XBVIrJX#2gAsLI6K8N+zHFK;hvC3Y(00R5zT$mgwN@ep1+pNALzwT4&2Q zifG%9*og%cu`B_?pGT3iPLSaHj3W2o8RO4Tl=vEqrRc=XppBv@gp`Vqir5p(?~CQ_7?g1)57E zw?cK!zEya45>0ChO>OK!)*)~rKZelK%XNq<*QRCfoQZcUqLq`!6J0n?s|TjQHh=D? z)z?B0k@IQYsx)GkHI(Ux46)^Qg^x>9){`kjP4zO_9~JEhNhfYyLHkQjAU-yb4wcf8 z&~PIi@yCEa453q%CKI1KjZPK88`buvf+6ri>tEA#R*U$c5V}$Dj;LD_-Pc^QIve!b zjr7mv2gG*#WA!$8SmrTJrS9;Cd92K-K;j?nv#MWUL77>s`Y~j_OMbB$3xAN{*n-ur zhx23IWOD!h3d1k3I#)13zNyUbQX;Y2wONBEaAFJoR+x20;gd3~K}#fdyV|p$>ko)e z-OEB>RwAz3JfB7S#v(a;Z!I)9St3}R-7sPs_OZCMzYwTjv93+4A;A9@`#OuUAC$r>r*~ANyS*kk{poGOTnQA1P zjNF7ut!C4o|0HfZ$7X(or|J;GR*noLR;Bh_wlyG$_=7BVP=c#kE1?B>u9#Od)tKyFRlaVvd&GbcN1PBD?4JhuDN?GI?qh_UJ6ER|;c~ zHx`pn=@0v`_af235SiR>0Q-DFPb^_7`#s4I(yYzN6?p}Z=IpnLc(d{f<6^kDzdn)f zTWPM@*&ZJ6q_wfh$>PZ?jBq1v@4&0umxgU#=bn+U&B$H6j$I)FXe#&Xvw_&_&OD$i zW~HZrHx5_>!h03+K%i_#xRJE0YU*WeQGxc-t>KiK^T2@F@7}^`ChA zPpAP#l~QQEZmMhD>D@^0I`tYm~fB4d(BP6)G@KrOdM8PVBk5l+o zm^hDH!neN;Csy_)&kDRrH14oWwx|!^Hw!9cX(E#?&g1)k7a=+Z$Ye_n@uT%xlJ%3> z-jc`jysU%(7%s;+`_n2A0i_f9r@#-K5v8a;7WSJ~AUC`V=MeOr5 zL0c1n-ZE#qpk1(+*eW}rY(50}Bwr?T&l1YVL7NXQ6e^r>LSBDEsBpRl31wCbE~}Qq zeHF^&1H5DkI(xzOf*sNCJwlc5Rfz)j3vS3wNqi=gr7^)1UWtNQ2tHr&oLZ@ZZ_IX7 zKyJD60lR7^lh+w6)EV)Es8_boq9nq%dME^Se}ts;lMu8B3U6@|T7N_B_bOcoSpYY5 z_o)!N0Al==BZQxWefRAzM9P^#BO&r0X7YVip;J*HO4c?)r>}5>6$S`#Z&neN&k_1B zyn@uj{+5t7;vG?+IWl?Q{lakLGsIv=VbpjNQR)m~LfPrihW5e)uK~mxq+V}3nJu-#aSK)u>#|iTzR}e+~Ev)JewL3XoCO2ma>-P#sK|Tpv zw^l%TFes(MI9nY~gB$U__{zGTG`C!Yw2YY|}pBj^!7up;R~FZt)so zgX#(QQu`8{BMFac4JH<~Q+Tp$JqeA|g{P=i`RHN7v#S+}xz`n5YVN>rI|;A&U3h4d z@V1IS@i*bZXEjRshmD1=!Jmk$JcX}uTZkUi6uzb-w~F)^x&LGm;v7VE)A7X1-xV$D zwtGnEQAyM|rjg*6E*dtzLV~)g_6i;LLq=S~u0nHcH|L9NUYLr2~rA^3*azBv>jUnTY~h3>+L{bC|3BG&$gn3&QC z)sIa~yqZYlQCgo6&cJ(6WHcd>Af;am2kGQZYyiMXkne6HzncUw+Tym%zUdzS0(jngR zm$lP|3 zTq2X7Ii~RASeXLvR?Rxj(aHCvxb`iKCc;D9&uE<1%RzBl`Zr?XZ^Z4MiAdFQ#qBjS(L>mwaKICV+X5BlofmiBg)NI8Svfiqyb`e#y^}=os=I_LzyWk4c67OTeG`WByT5pItUd9L zXT)1IFllSt#9I@P=XPl!-dYiaYGbBMZZTQJTeqj+26M&Rm3N{PV&d)kH{jYV;_Y8Z zfE~RRemW`M8QPJAy3fS>{Z7J{b{FqYszz+;F@>*nGI_1X;-i=X;=41%zn5JlKIN6d z!sp`i2z);JjrcO6F|k^q;>#tKk-LhuyceQQQS;CiX_A_=~+^e)MHbS>iLMo8t*E90B`OXd9*Axm5?RjzXY?XOs=T256I zKkKFH6+0ps@Rq#${fp%Fqg3ln1llp1B!5+jN9iX8Ec!!&d6m@oA~fjW6RFh``0Dz1 zq*k9Wv*syMYgf3QMmaLs*F{q35O269j}AB}Np6Z{3gsp%j5kZ6!w^-Xv!u{3O^8p* zw-%OlvQ(5}cEPjGn56LVODX1L1W`)5)HCG>@rT2tL?4v5Ep)c0Q-(U};jUjY<1?5H$gD+J#5tTf}2w5nbM4`)+ogyW%8Ccq*+@qEv4Q{v$q^W zXJfWB`+N=s3GFXSbI=E)fJri0@?n`g*r2do9fgw<6>ey!@cvP0&h`LA>4nySavql5 z($Xy{s4Zs5(rA?1@MDu>hK5r|O9zxwA=0nC@cC_h zq~E4;v@Z$7j~D)Cv%mcdq6B^t4iI_(wo@Ld#W<=4KTtFs`9O$U=d-os=_b$ zprA>rDxyeKe}PQ)Pn^m#q5`J)kjgXh1JU;tDj#$c*uX_9zq5accTQLNs|hY(r7B<{ z26{9|)v&}Sha{_llAEBLP^=0%UK%a+LEv5VTO3tEmPZamgOXH1Ah%6ZwXQB9-j7nX z9$16ep(m=g_u$4m?@)zSsE#B|; zrV^b#sp|X?Is2U`RhL}|2h;Sb*wLSnmwZsgjzXB|m1`(m~z;>B@b_<1PG^*s%M^G$~ zOtyHeD!E}1u}}L|!*}D&@2FHGKEc}z%218Iw2k@kpaaa~nO zYQx@_Q!RN1H)#n`*?OXNFA1uQ$KQ#%A5<;>AQID9DyUXCB7k+Ys8*t_NH6NERtHRl z+ghetzpo=o#5<}DkAu;LFH*SOPnDUGMf9heYI7Lg#M@qVuSSLu12#`moy|ChnYt&a&hGa^AWKl4x4uK;Fhg}= z##j=ZzNjvR*s$VNM)l|%@|*ND)id8y#K!!i@Nff}eB~yEuUpF$%5+g!D_ixV(>tPO zVX7DBA-XV0^{UQZtdu=by{(AG_w-t-_kU1YM!MKrR;#{UT2JiAV%3kln<&AjsQw*= zOV2b`QzK{M@7>h=0_>wvuv+kXiUt%@i<9*vge+A{7bnB;qScyH>xkd~rZy}@u9Gxg zZG0)B6);t8a)SX*sjarRM<`f0PF*_XI_9#A+Og7IqG6HhGD*ntEnTas%M48?`jM_K zbGbM2USD;kOPJi6ht!p>fFp|3m0lrh59q9R^~*#-l&kiTAmyU9Y7bmbziO(h8ymo| zcBuU|B?fp+9bkcrso<%un+)N^R981__6GTRwz}b?678y|ZgLGT&}F5%jnNJZto4qm z!|q(da)U|T{+k!E9;?(5d$yu65TTArAB4u`adq_0@g&r?s5>TONl@G(lck{_ zJEyT`y1F=TQzvZePP}(rb<#Hn^jovl$t&Ta|Ln0Ax;j~Ys|U)@h?mJ5XDW=IEK{hv zOg-~d$t+(`&p%s?xaO>0P!nbAzZvR<`_JQLBh`x>;6=i>s25)uM!exwg*_wHi(h&} zYWvkowcCi@yP{q?7x_fkKMMa2Qm?L57ACNIhgyy>zGKwukNXilogtH{Z>Tp+2q4Zc zs<(AR4b*U_dfSL-^doPow_QRJQE!HN=Zd|=8lc;b=% z>H|LL9L$VSAN_<7=aZ~H?ox}`13&d6^$}uE&FV+p>XC)#Us1o@-IRDhFZHV~!-%!f ztKaELZ0V1>s4QY|9a4X-5B(drTm9>d1P2|Z{?q3b(G8=9?7}hNS~8h>yh43~hUP*4 zS_&FE`3hBN3k{pG45`B$4M(q=`$TI*7nD;S8f!GhorpB8*K6#3@W6j}Xi7)^fj`t~ zN*{sV@Jx;KI86Ds7>#=|I(RQGYCOE)XRpuEc%V1M{%xr7vJOV}|4CEZnn3JYv`iit zr|~ZiLU8xg1pH`1bo``D9{65igjLh5kw5Y9`kH3h7Oaq;4A->S5=zV?RN*z9OdjZ{ z3H6CUS=&Sty7U+n(@hhejRCnX)wEAaAbwz#CenzOT=$QfE;cys1t&D|yT_w|4A&$C zx5b+t(j=_RL7+&|Bu;vP`&%{1N19;OYNBRv6U@ZiUz#D7DI&4!0h%EoZ!kb@roB&}v3k-+}tNqh|8_2T-D9&E$g92#pq*ywL~ER97dYJ;|D>8AFNg^^wVE z#wk3iktvklrkOSk1E}{@Gwoy(+{Z~Xy}Bnv@JwSVIpEj0X66U@*JVYTnZH|N=0|E~ zzgmWJ%||o0cLk(D6*P0lcSP(hr&-LfGh$kh!iSACi|6`b;VWIUED%%bxJ9$60BK>H ze9e~maA#xYXto}BhVJJM&DP6pL8jUIAPJ1tY<=>SSa7OEv+Zv!ItD%p6FX{hCOSf^ zpK5XzAd!pTrOC-a?Dbi$$sLOtzwryr{yty9NQF@cGza@VK_a|cbMSWtl+;b(%6ba# z#cK}FIg9k&PIEc}13hy_lV1uxE!tU=AKiuMdh=Axxsx!TOs(eJmvTg%{s!RR#zCMoC{%9t$W@3cDSz%O~9;z1_moIi($3Cjx85d$dFJf1y51(GIzJ5^nsD zHr4+y-uR(*oGT>i=c66>Ar(%lSZm3GNMdUgXeT_~gJr(++R0|9$|JLOdRIRz+KAd& zxgq#`kWAJxPbP1hp`CpRCR;Z`VgH5Ng_)4$Ef4MDi?Hp1BeXWG^a;^k)^XKcnipu- zG=?H}e5GCgyBGy_XYGdLaNg55$YdM7Xg5asBZ+RN-8SVWhS^xV?FAHd&~EL{Kx`l? zb?Xhqq9%Ywnj}1rf zJFb`ZWWOBZEgox6mF-Ks>vHXx%)!L7Gqq=K1`zo?R2cn5Tab`L>>q>n+!_-J&KtBB zy-yS0v(-Az)1`TD?Hdsz3s2I%8Qu|1wHTRf)!#C?k5T*aI0CVdsQndL16fBs?H`9s zBDcFTg|dUJg`Tx5uhAJdZzt*)sI$vLVI8?rXW#W1S~DGV4vkA=ZNX;suHj?})wwq9 zO+0?6&TW|hR@K$0jjO^Ub>2TLk7(A@q?hFcSVa|Cg?wBkU{wsIFn>^+=$5 z>ly{4EcGj;3tpFqCAMH)@Ii#oj-7PT;zD9$AIRh>!*reQAHjx%bY0wCd|!L3uIo|> z%gzm#=(^s;4c{Hn#V4PF+|qSDo;)`0&jm^QlA2>S*_D0O;18y;h{^8Lw!+H zpi9Pj3EQ$(;rZb*`DRC%LS#kVpd|-MuzRgbt!^R~@1aY(>Od5JRX0q3gy^eDH+(Tv z*t*`!xx*RV=uJo9>38VHcsUZC^3_?oS4ExKSvTVtvar7@>*hr~LpT1rZt=qL=$ZYc zv)$f>d-m0>sKntRkLWhMO~ja5={7H)kF6AuR%1;ki?421nFmPE7wU2ol2A}Q(H+ni z5qVWtc&3s}wkt>B`JKAFIceC{M7raBErVS0 z!+b~SPLEuVzF?B>^o^aw2Ts)$q)G6%v**YMZ0jVMylJq)PEppwHQg=CJL~?+bA%&I z*A-SU5!nsW75X8rz7cc}`$2i#d+MH4Zh|PXU-v?T9P8W*-HV0Dk?mgUUZKy!8dTA} z`%#Ig%thVjCQzi2Rdm0nry}mYRCw5=msaG!qKDpjZZ@1(fZlBng5k>7dXJX~=Pr@fLhnjd_EgZf`~da+{6Zgb;RedL#`>7E zLx^fDkjd^0w^pp>V%ebYym=G}0iOD}brVo3wbOU|rbG5VQQuwthgh@e`dO zG#`Gew|@0zBq{B?>oXf(N$kdUnY__pgX@HW=)kWwxK09n91X71cc4~PDXjI}hbzMS7Rq#ZXgKVJiB;xz@uzfzD41-j@oA>GvzV^He5x8fP{7x_H(!)KV2- zmR1>jrA1huZeVDcjoBMe(a@^LK{N+i7+Tv;B_=X!M_&)iGecxdI^t`g!X66^F-Y0@ z;zx$gvz}tj>yx2t`Cf1xxrTU?6-}09hF%Z$U_I2^kZ={k?Wi>*zeYyuo@hwzgbcRh zOhf7`IBBVgAOj)K&@9BE)GmUv-Y#$Cih1yS*mbPlHoQXF8w6K{V~f(a5!lwEDcc{I$?P5 z`YEx&Hp8>05Xt+shSv|9U@_pO;h*|L5movc-VH=JUz=m()v96JvWJnMfC8KjFiM`5 zC}V6GW`Dr+H9XNCW~G1f7hBf9z77&Hrk zx6C_Zgk|1SEKOz@W032x1u@1hy75>L`(cdrf$!{8MJ6x%+SqIRb)+}tjeTESC;m^o zF=@{#;=|mHNw-fybcbc~wrVH|gUFbSob8ZFb(P)@BhPRPPG zgpN7JnLkX#W`!H)G8k;%*9wb%80VdWlFisJlh?beFn_smz9*B#*jhkHEV5Fao+v}nN`?%L?3~;iHG@d$(UPJ78g}3L+m)tOZ>=#YkA;wr-9kz9F ztg(1K1pREAN$@C*K4P>2hOq9t}$W-BTi3)!-Ro%LWSnY-;cgIyksglY4>Jy^cJ58P$Rgh`UHF-;J#G6z# z`F-k(O@2W#`QYg?1-tSl|L18)6u-%2sjj9bzcuLiR=Xr02&K=MnwG;G**`V4Dn{_L zA7qMb7mS6o#-_*(c%xpQOwsDcSa9oVie8;Y-29Iz`shT|NJ~sHMHtu^jj6L+4>YIU zO`Tgj!v>T$rY;_-DEWGsV)vvV8ox2cPrF2{r`FUny=0q4mMP_FX>3rx^}sZ;EL85f zlWA%MY-IX;ncTR;G_yw#@x<$<)qg{S#sr%-?8ZRaY&30*gx|c`+LTiTUZd1UQ(mQT zV)tWBhv$7I-YnO2%oU=@Zf82>Pzlw+GgH3$JKFpYP5HVE;$5;#=Ypo7#2jzBSixdN zAL>00ti%WZktx_MG2QMC|MuM8bft)rHZgr}*aic&H%oQk z-U7Rsb^DMN$2Bn(@xL-<8tH z8Frfe^I&;byUXNt4w~z3#%tDbHP`EZ1ijB9b5Kou?=PBzx(p!pJ=)ynInJx^Pu+B2KU{~z1EqCSI#!~b)HIOykk!4oR7_ym(2t2;(@*TD(oL?9zAg$ zHcib_`1p`@ZapXGf6Ze)W3qOhHjn)dsZ3fTlc(id57%?*(#UKnNy{6FW=qJwMCqjP z(J1pY7o_Qt<;>GMz={+7&2u`!51tuho@=Xwm>FeWSY<5si@2Mu2WFB`zqQ%=0sV+c zY34OAyJMBj)#_c}$+O73HZK(|*16`)fe=X7jpodY*w(V~uEKY*=FGP^&l0Qy>pNLC znzx@uhdwyXy!*)=;;WhYcupr0{9Vl_U!bOIf7W~THdrN^pZmkX+&*P~J`JUU&ph+%@~_Y$8)|+N3|IQu&iui= zir8L1bMehuu;gKC^B1=b#KwioTj_@p8FComexb zkD#73l+tizqV2;+R>o>c)7tKrWwV7w6l|N|%&OQbpJruk>zrAAV-@<(%PW>+KFr@1 zUXGQwRXfef2&t5qn^uk$ZDkR;NvBz6JEw4p!4QVhXn9b*F`yJYGSwP?(=pel6feKg zsmy<0VH;9IaLOH&%gZv)Y1rWZg-U*$hTEj#zbmz*Vfa4+HycU=C>g}}wp}#@FJ&mW z&gz=zpu$B>$u;-aex4<=2wV4k+)0w>r{wj@=iWWc&CIFMe~%&e%Mt#Pl`r?--(nz% zx&IvFHC1|d3{aW$#FE=O%M;;~&-d5<-+pYvkDYT(UpeC}Etkdc7cBSKb+(b&K14G+ z+xW_Y#`fM$NOSzpDa`f%&6jZ7{m-nLP2@r;+qr-F*OiacdGf{lVTn6(#4kNDQy1VCq**w*IpawWexSh^K;qNliLGQRmA zgOL@&28C!U-}e8f6gDVDJNXJ*`<}Kvu%h&nuIVw>c pTjTmd=zr_Yy81#7=2Y#!f17J=C^U}$|9xx2w;s6@mI?D5{twYg@Oc0L diff --git a/retroshare-gui/src/lang/retroshare_de.ts b/retroshare-gui/src/lang/retroshare_de.ts index 07ccda555..4a2958f3d 100644 --- a/retroshare-gui/src/lang/retroshare_de.ts +++ b/retroshare-gui/src/lang/retroshare_de.ts @@ -1041,7 +1041,7 @@ p, li { white-space: pre-wrap; } - + Post to Channel Kanalbeitrag erstellen @@ -1267,7 +1267,7 @@ Keine Beschreibung ChatStyle - + Standard style for group chat Standard Stil für den Gruppenchat @@ -2634,7 +2634,7 @@ p, li { white-space: pre-wrap; } Shared Directories - Freigegebene Verzeichnisse + Freigegebene Ordner @@ -2660,12 +2660,12 @@ p, li { white-space: pre-wrap; } Set Incoming Directory - Eingehende Dateien Verzeichnis + Ordner für eingehende Dateien Set Partials Directory - Partielle Dateien + Ordner für temporäre Dateien @@ -2680,12 +2680,12 @@ p, li { white-space: pre-wrap; } Partials Directory - Partielle Dateien + Temporäre Dateien Automatically share incoming directory (Recommended) - Automatisch eingehendes Verzeichnis freigeben + Eingehende Ordner automatisch freigeben @@ -4958,7 +4958,7 @@ p, li { white-space: pre-wrap; } Normalerweise hält RetroShare jetzt sicher alle Festplattenzugriffe auf das Verzeichnis an. -Bitte gib etwas SPeicher frei und drücke OK. +Bitte gib etwas Speicher frei und drücke OK. @@ -5948,7 +5948,7 @@ p, li { white-space: pre-wrap; } Share Files for your Friends - Verzeichnis für deine Freunde freigeben + Ordner für deine Freunde freigeben @@ -8331,7 +8331,7 @@ p, li { white-space: pre-wrap; } Directory - Verzeichnis + Ordner @@ -8399,17 +8399,17 @@ p, li { white-space: pre-wrap; } Select A Folder To Share - Wählen Sie ein Verzeichnis zum Freigeben + Wählen Sie ein Ordner zum Freigeben Shared Directory Added! - Verzeichnis wurde hinzugefügt! + Ordner wurde hinzugefügt! Do you really want to stop sharing this directory ? - Möchtest Du wirklich die Freigabe dieses Verzeichnises entfernen ? + Möchtes Du die Freigabe dieses Ordners wirklich aufheben ? @@ -8453,7 +8453,7 @@ p, li { white-space: pre-wrap; } Directories - Verzeichnisse + Ordner @@ -8539,7 +8539,7 @@ p, li { white-space: pre-wrap; } My Directories - Meine Verzeichnisse + Meine Ordner @@ -9108,7 +9108,7 @@ Es hilft auch, wenn Sie sich hinter einer Firewall/VPN befinden. Transfer - Übertragung + Übertragung @@ -9148,7 +9148,7 @@ Es hilft auch, wenn Sie sich hinter einer Firewall/VPN befinden. Directories - Verzeichnisse + Ordner @@ -9176,7 +9176,7 @@ Es hilft auch, wenn Sie sich hinter einer Firewall/VPN befinden. RetroShare Share Folder - RetroShare Verzeichnis freigeben + RetroShare Ordner freigeben @@ -9189,12 +9189,12 @@ p, li { white-space: pre-wrap; } <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-family:'Sans Serif'; font-size:26pt; font-weight:600; color:#ffffff;">Verzeichnis freigeben</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;"><span style=" font-family:'Sans Serif'; font-size:26pt; font-weight:600; color:#ffffff;">Ordner freigeben</span></p></body></html> Share Folder - Gebe Ordner frei + Ordner @@ -9223,21 +9223,21 @@ p, li { white-space: pre-wrap; } - Anonymous - Anonym + Network Wide + Netzwerkweit - + Browseable by Friends Durchsuchbar von Freunden - Friends - Freunde + Browsable + Durchsuchbar - + OK OK @@ -9247,7 +9247,7 @@ p, li { white-space: pre-wrap; } Abbrechen - + Select A Folder To Share Wähle einen Ordner zum Freigeben aus @@ -9311,38 +9311,33 @@ p, li { white-space: pre-wrap; } ShareManager - + Add a Share Directory - Verzeichnis hinzufügen + Ordner hinzufügen Stop sharing selected Directory - Stoppe die Freigabe des Verzeichnisses + Stoppe die Freigabe des Ordners - - Select A Folder To Share - Wähle ein Verzeichnis zum Freigeben + + Do you really want to stop sharing this directory ? + Möchtes Du die Freigabe dieses Ordners wirklich aufheben ? - - Do you really want to stop sharing this directory ? - Möchtes Du wirklich die Freigabe dieses Ordners aufheben ? - - - - + + Remove Entfernen - + Warning! Warnung! - + RetroShare Share Manager RetroShare Freigabe Manager @@ -9365,22 +9360,35 @@ p, li { white-space: pre-wrap; } <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;">This is a list of shared folders . You can add and remove folders using the button on the left. </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;">This is a list of shared folders. You can add and remove folders using the buttons at the bottom.</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;">When you add a new folder, intially all files in that folder are shared.</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:'Sans'; font-size:8pt;">You can separately setup share flags for each shared directory:</span><span style=" font-size:8pt;"> </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:'Sans'; font-size:8pt; font-weight:600;">Browsable </span><span style=" font-family:'Sans'; font-size:8pt;">: files are browsable from your direct friends.</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:'Sans'; font-size:8pt; font-weight:600;">Browsable</span><span style=" font-family:'Sans'; font-size:8pt;">: files are browsable from your direct friends.</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:'Sans'; font-size:8pt; font-weight:600;">Network Wide</span><span style=" font-family:'Sans'; font-size:8pt;">: files can be downloaded by anybody through anonymous tunnels.</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;">Das ist die Liste der freigegebenen Ordner. Mit den unteren Knöpfen kannst Du neue Ordner hinzufügen oder vorhandene Ordner entfernen.</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;">Wenn Du einen neuen Ordner hinzufügst, werden alle Dateien aus dem Ordner und Unterordnern freigegeben.</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:'Sans'; font-size:8pt;">Du kannst für jeden freigegebenen Ordner die Art der Freigabe einstellen:</span><span style=" font-size:8pt;"> </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:'Sans'; font-size:8pt; font-weight:600;">Durchsuchbar</span><span style=" font-family:'Sans'; font-size:8pt;">: Dateien sind von Deinen direkten Freunden durchsuchbar.</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:'Sans'; font-size:8pt; font-weight:600;">Netzwerkweit</span><span style=" font-family:'Sans'; font-size:8pt;">: Dateien können von jedem über anoynme Tunnel heruntergeladen werden.</span></p></body></html> - + Directory - Verzeichnis + Ordner + + + + Virtual Folder + Virtueller Ordner Network Wide - Im gesamten Netzwerk + Netzwerkweit @@ -9398,12 +9406,7 @@ p, li { white-space: pre-wrap; } Hinzufügen - - Shared Directory Added! - Verzeichnis wurde hinzugefügt! - - - + Shared Folder Manager Freigabe Manager @@ -9424,12 +9427,12 @@ p, li { white-space: pre-wrap; } Friends Folders - Verzeichnisse der Freunde + Ordner der Freunde My Folders - Meine Verzeichnisse + Meine Ordner @@ -9478,7 +9481,7 @@ p, li { white-space: pre-wrap; } Open Folder - Verzeichnis öffnen + Ordner öffnen @@ -10282,7 +10285,7 @@ p, li { white-space: pre-wrap; } TransfersDialog - + Cancel Abbrechen @@ -10292,13 +10295,13 @@ p, li { white-space: pre-wrap; } Fertige ausblenden - - + + Status Status - + Completed Fertiggestellt @@ -10352,20 +10355,20 @@ p, li { white-space: pre-wrap; } - + Name i.e: file name Name - - + + Size i.e: file size Grösse - + Speed i.e: Download speed Geschwindigkeit @@ -10388,7 +10391,7 @@ p, li { white-space: pre-wrap; } Kern-ID - + Progress i.e: % uploaded Fortschritt @@ -10405,7 +10408,7 @@ p, li { white-space: pre-wrap; } Übertragen - + Play Abspielen @@ -10422,7 +10425,7 @@ p, li { white-space: pre-wrap; } Open Folder - Verzeichnis öffnen + Ordner öffnen @@ -10530,7 +10533,7 @@ p, li { white-space: pre-wrap; } Soll dieser Download wirklich abgebrochen und gelöscht werden? - + Speed / Queue position Geschwindigkeits- / Warteschlangenposition @@ -10546,7 +10549,7 @@ p, li { white-space: pre-wrap; } Download Zeit - + Peer i.e: user name Nachbar @@ -10557,7 +10560,7 @@ p, li { white-space: pre-wrap; } Prüfsumme - + Slower Langsamer