From 4405b123c4236fe1aa4e4cc7f46d56475db3c5b8 Mon Sep 17 00:00:00 2001 From: defnax Date: Wed, 16 Oct 2019 20:04:23 +0200 Subject: [PATCH 01/15] Removed unused old cert Text field Removed unused old cert Text field to get more space Changed Finish Button text to "Accept" when its a Friend Request fixed stylsheets --- .../src/gui/connect/ConnectFriendWizard.cpp | 104 +--------- .../src/gui/connect/ConnectFriendWizard.h | 7 - .../src/gui/connect/ConnectFriendWizard.ui | 190 +----------------- .../src/gui/qss/stylesheet/Standard.qss | 13 +- 4 files changed, 21 insertions(+), 293 deletions(-) diff --git a/retroshare-gui/src/gui/connect/ConnectFriendWizard.cpp b/retroshare-gui/src/gui/connect/ConnectFriendWizard.cpp index e71750ac0..7ea64e7b5 100755 --- a/retroshare-gui/src/gui/connect/ConnectFriendWizard.cpp +++ b/retroshare-gui/src/gui/connect/ConnectFriendWizard.cpp @@ -80,9 +80,6 @@ ConnectFriendWizard::ConnectFriendWizard(QWidget *parent) : mTitleFontSize = 0; // Standard mTitleFontWeight = 0; // Standard - - // (csoler) I'm hiding this, since it is not needed anymore with the new Home page. - ui->userFrame->hide(); // ui->userFileFrame->hide(); // in homepage dropmenu now @@ -138,7 +135,6 @@ ConnectFriendWizard::ConnectFriendWizard(QWidget *parent) : } else { - ui->userFrame->hide(); // certificates page - top half with own cert and it's functions ui->cp_Frame->hide(); // Advanced options - key sign, whitelist, direct source ... AdvancedVisible=false; ui->trustLabel->hide(); @@ -302,6 +298,7 @@ void ConnectFriendWizard::setCertificate(const QString &certificate, bool friend ui->requestinfolabel->show(); setTitleText(ui->ConclusionPage, tr("Friend request")); ui->ConclusionPage->setSubTitle(tr("Details about the request")); + setButtonText(QWizard::FinishButton , tr("Accept")); } } } @@ -326,6 +323,7 @@ void ConnectFriendWizard::setCertificate(const QString &certificate, bool friend ui->requestinfolabel->show(); setTitleText(ui->ConclusionPage, tr("Friend request")); ui->ConclusionPage->setSubTitle(tr("Details about the request")); + setButtonText(QWizard::FinishButton , tr("Accept")); } } } @@ -351,10 +349,11 @@ void ConnectFriendWizard::setGpgId(const RsPgpId &gpgId, const RsPeerId &sslId, //setStartId(friendRequest ? Page_FriendRequest : Page_Conclusion); setStartId(Page_Conclusion); if (friendRequest){ - ui->cp_Label->show(); - ui->requestinfolabel->show(); - setTitleText(ui->ConclusionPage,tr("Friend request")); - ui->ConclusionPage->setSubTitle(tr("Details about the request")); + ui->cp_Label->show(); + ui->requestinfolabel->show(); + setTitleText(ui->ConclusionPage,tr("Friend request")); + ui->ConclusionPage->setSubTitle(tr("Details about the request")); + setButtonText(QWizard::FinishButton , tr("Accept")); } } @@ -383,14 +382,9 @@ void ConnectFriendWizard::initializePage(int id) { switch ((Page) id) { case Page_Text: - connect(ui->userCertHelpButton, SIGNAL( clicked()), this, SLOT(showHelpUserCert())); - connect(ui->userCertIncludeSignaturesButton, SIGNAL(clicked()), this, SLOT(toggleSignatureState())); - connect(ui->userCertOldFormatButton, SIGNAL(clicked()), this, SLOT(toggleFormatState())); - connect(ui->userCertCopyButton, SIGNAL(clicked()), this, SLOT(copyCert())); + connect(ui->userCertPasteButton, SIGNAL(clicked()), this, SLOT(pasteCert())); connect(ui->userCertOpenButton, SIGNAL(clicked()), this, SLOT(openCert())); - connect(ui->userCertSaveButton, SIGNAL(clicked()), this, SLOT(saveCert())); - connect(ui->userCertMailButton, SIGNAL(clicked()), this, SLOT(runEmailClient())); connect(ui->friendCertEdit, SIGNAL(textChanged()), this, SLOT(friendCertChanged())); cleanfriendCertTimer = new QTimer(this); @@ -398,13 +392,6 @@ void ConnectFriendWizard::initializePage(int id) cleanfriendCertTimer->setInterval(1000); // 1 second connect(cleanfriendCertTimer, SIGNAL(timeout()), this, SLOT(cleanFriendCert())); - ui->userCertOldFormatButton->setChecked(false); - ui->userCertOldFormatButton->hide() ; - - toggleFormatState(true); - toggleSignatureState(false); - updateOwnCert(); - cleanFriendCert(); break; @@ -780,52 +767,6 @@ void ConnectFriendWizard::accept() //============================= TextPage ===================================== -void ConnectFriendWizard::updateOwnCert() -{ - std::string invite = rsPeers->GetRetroshareInvite( rsPeers->getOwnId(), - ui->userCertIncludeSignaturesButton->isChecked() ); - - std::cerr << "TextPage() getting Invite: " << invite << std::endl; - - ui->userCertEdit->setPlainText(QString::fromUtf8(invite.c_str())); -} - -void ConnectFriendWizard::toggleFormatState(bool doUpdate) -{ - if (ui->userCertOldFormatButton->isChecked()) - { - ui->userCertOldFormatButton->setToolTip(tr("Use new certificate format (safer, more robust)")); - ui->userCertOldFormatButton->setIcon(QIcon(":/images/ledoff1.png")) ; - } - else - { - ui->userCertOldFormatButton->setToolTip(tr("Use old (backward compatible) certificate format")); - ui->userCertOldFormatButton->setIcon(QIcon(":/images/ledon1.png")) ; - } - - if (doUpdate) { - updateOwnCert(); - } -} - -void ConnectFriendWizard::toggleSignatureState(bool doUpdate) -{ - if (ui->userCertIncludeSignaturesButton->isChecked()) { - ui->userCertIncludeSignaturesButton->setToolTip(tr("Remove signatures")); - } else { - ui->userCertIncludeSignaturesButton->setToolTip(tr("Include signatures")); - } - - if (doUpdate) { - updateOwnCert(); - } -} - -void ConnectFriendWizard::runEmailClient() -{ - sendMail("", tr("RetroShare Invite"), ui->userCertEdit->toPlainText()); -} - void ConnectFriendWizard::friendCertChanged() { ui->TextPage->setComplete(false); @@ -893,18 +834,6 @@ void ConnectFriendWizard::cleanFriendCert() ui->TextPage->setComplete(certValid); } -void ConnectFriendWizard::showHelpUserCert() -{ - QMessageBox::information(this, tr("Connect Friend Help"), tr("You can copy this text and send it to your friend via email or some other way")); -} - -void ConnectFriendWizard::copyCert() -{ - QClipboard *clipboard = QApplication::clipboard(); - clipboard->setText(ui->userCertEdit->toPlainText()); - QMessageBox::information(this, "RetroShare", tr("Your Cert is copied to Clipboard, paste and send it to your friend via email or some other way")); -} - void ConnectFriendWizard::pasteCert() { QClipboard *clipboard = QApplication::clipboard(); @@ -927,23 +856,6 @@ void ConnectFriendWizard::openCert() } } -void ConnectFriendWizard::saveCert() -{ - QString fileName = QFileDialog::getSaveFileName(this, tr("Save as..."), "", tr("RetroShare Certificate (*.rsc );;All Files (*)")); - if (fileName.isEmpty()) - return; - - QFile file(fileName); - if (!file.open(QFile::WriteOnly)) - return; - - //Todo: move save to file to p3Peers::SaveCertificateToFile - - QTextStream ts(&file); - ts.setCodec(QTextCodec::codecForName("UTF-8")); - ts << ui->userCertEdit->document()->toPlainText(); -} - #ifdef TO_BE_REMOVED //========================== CertificatePage ================================= diff --git a/retroshare-gui/src/gui/connect/ConnectFriendWizard.h b/retroshare-gui/src/gui/connect/ConnectFriendWizard.h index 5951fd7c2..f740da676 100755 --- a/retroshare-gui/src/gui/connect/ConnectFriendWizard.h +++ b/retroshare-gui/src/gui/connect/ConnectFriendWizard.h @@ -78,16 +78,9 @@ protected: private slots: /* TextPage */ - void updateOwnCert(); - void toggleSignatureState(bool doUpdate = true); - void toggleFormatState(bool doUpdate = true); - void runEmailClient(); void runEmailClient2(); - void showHelpUserCert(); - void copyCert(); void pasteCert(); void openCert(); - void saveCert(); void friendCertChanged(); void cleanFriendCert(); diff --git a/retroshare-gui/src/gui/connect/ConnectFriendWizard.ui b/retroshare-gui/src/gui/connect/ConnectFriendWizard.ui index 1c097627e..a950d3ceb 100644 --- a/retroshare-gui/src/gui/connect/ConnectFriendWizard.ui +++ b/retroshare-gui/src/gui/connect/ConnectFriendWizard.ui @@ -7,7 +7,7 @@ 0 0 600 - 500 + 437 @@ -28,192 +28,6 @@ ConnectFriendWizard::Page_Text - - - - - - - - - - 20 - 20 - - - - Qt::NoFocus - - - - :/images/info16.png:/images/info16.png - - - true - - - - - - - - 20 - 20 - - - - Qt::NoFocus - - - Include signatures - - - - :/images/gpgp_key_generate.png:/images/gpgp_key_generate.png - - - true - - - true - - - - - - - - 20 - 20 - - - - Qt::NoFocus - - - Copy your Cert to Clipboard - - - - :/images/copyrslink.png:/images/copyrslink.png - - - true - - - - - - - - 20 - 20 - - - - Qt::NoFocus - - - Save your Cert into a File - - - - :/images/document_save.png:/images/document_save.png - - - true - - - - - - - - 20 - 20 - - - - Qt::NoFocus - - - Run Email program - - - - :/images/mail_send.png:/images/mail_send.png - - - true - - - - - - - - 20 - 20 - - - - Qt::NoFocus - - - - :/images/ledon1.png:/images/ledon1.png - - - true - - - true - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - Courier New - - - - QPlainTextEdit::NoWrap - - - true - - - 80 - - - - - - - The text below is your Retroshare ID. You have to provide it to your friend - - - - - - @@ -938,7 +752,7 @@ QFrame::Box - To accept the Friend Request, click the Finish button. + To accept the Friend Request, click the Accept button. 2 diff --git a/retroshare-gui/src/gui/qss/stylesheet/Standard.qss b/retroshare-gui/src/gui/qss/stylesheet/Standard.qss index 05670f863..60c1c332f 100644 --- a/retroshare-gui/src/gui/qss/stylesheet/Standard.qss +++ b/retroshare-gui/src/gui/qss/stylesheet/Standard.qss @@ -319,13 +319,13 @@ GenCertDialog > QFrame#headerFrame > QLabel#headerLabel { /* ConnectFriendWizard */ ConnectFriendWizard QWizardPage#ConclusionPage > QGroupBox#peerDetailsFrame { - border: 2px solid #CCCCCC; + border: 2px solid #039bd5; border-radius:6px; background: white; padding: 12 12px; } -ConnectFriendWizard QLabel#fr_label, QLabel#requestinfolabel +ConnectFriendWizard QLabel#fr_label, QLabel#requestinfolabel, QLabel#cp_Label { border: 1px solid #DCDC41; border-radius: 6px; @@ -333,6 +333,15 @@ ConnectFriendWizard QLabel#fr_label, QLabel#requestinfolabel background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #FFFFD7, stop:1 #FFFFB2); } +ConnectFriendWizard QGroupBox::title#peerDetailsFrame +{ + padding: 4 12px; + background: transparent; + padding: 4 12px; + background: #039bd5; + color: white; +} + /* Toaster */ ChatToaster > QFrame#windowFrame, From 033405c7616a2054ac6aa949efe329d08cf32b38 Mon Sep 17 00:00:00 2001 From: defnax Date: Wed, 16 Oct 2019 22:27:18 +0200 Subject: [PATCH 02/15] added latest retrochess to master --- plugins/RetroChess/README.txt | 18 + plugins/RetroChess/RetroChess.pro | 70 + plugins/RetroChess/RetroChessPlugin.cpp | 200 ++ plugins/RetroChess/RetroChessPlugin.h | 76 + plugins/RetroChess/cptest | 3 + plugins/RetroChess/gui/NEMainpage.cpp | 225 ++ plugins/RetroChess/gui/NEMainpage.h | 52 + plugins/RetroChess/gui/NEMainpage.ui | 268 +++ .../gui/RetroChessChatWidgetHolder.cpp | 147 ++ .../gui/RetroChessChatWidgetHolder.h | 35 + plugins/RetroChess/gui/RetroChessNotify.cpp | 33 + plugins/RetroChess/gui/RetroChessNotify.h | 54 + plugins/RetroChess/gui/RetroChess_images.qrc | 21 + plugins/RetroChess/gui/chess.cpp | 873 +++++++ plugins/RetroChess/gui/chess.h | 57 + .../RetroChess/gui/images/bishop_black.svg | 116 + .../RetroChess/gui/images/bishop_white.svg | 124 + .../RetroChess/gui/images/chess-icon-32.png | Bin 0 -> 1901 bytes plugins/RetroChess/gui/images/chess-icon.png | Bin 0 -> 15208 bytes .../RetroChess/gui/images/chess-notify.png | Bin 0 -> 4818 bytes .../RetroChess/gui/images/chess-notify.svg | 56 + plugins/RetroChess/gui/images/chess.png | Bin 0 -> 5442 bytes plugins/RetroChess/gui/images/chess.svg | 56 + plugins/RetroChess/gui/images/king_black.svg | 135 ++ plugins/RetroChess/gui/images/king_white.svg | 143 ++ .../RetroChess/gui/images/knight_black.svg | 101 + .../RetroChess/gui/images/knight_white.svg | 123 + plugins/RetroChess/gui/images/muted_self.svg | 1999 +++++++++++++++++ plugins/RetroChess/gui/images/pawn_black.svg | 76 + plugins/RetroChess/gui/images/pawn_white.svg | 92 + plugins/RetroChess/gui/images/profile.png | Bin 0 -> 3821 bytes plugins/RetroChess/gui/images/queen_black.svg | 141 ++ plugins/RetroChess/gui/images/queen_white.svg | 139 ++ plugins/RetroChess/gui/images/retrochess.png | Bin 0 -> 3939 bytes plugins/RetroChess/gui/images/rook_black.svg | 73 + plugins/RetroChess/gui/images/rook_white.svg | 83 + plugins/RetroChess/gui/tile.cpp | 157 ++ plugins/RetroChess/gui/tile.h | 27 + plugins/RetroChess/gui/validation.cpp | 14 + plugins/RetroChess/gui/validation.h | 15 + plugins/RetroChess/interface/rsRetroChess.h | 57 + plugins/RetroChess/rename_plugin.sh | 10 + plugins/RetroChess/services/p3RetroChess.cc | 411 ++++ plugins/RetroChess/services/p3RetroChess.h | 120 + .../RetroChess/services/rsRetroChessItems.cc | 175 ++ .../RetroChess/services/rsRetroChessItems.h | 125 ++ 46 files changed, 6700 insertions(+) create mode 100644 plugins/RetroChess/README.txt create mode 100644 plugins/RetroChess/RetroChess.pro create mode 100644 plugins/RetroChess/RetroChessPlugin.cpp create mode 100644 plugins/RetroChess/RetroChessPlugin.h create mode 100644 plugins/RetroChess/cptest create mode 100644 plugins/RetroChess/gui/NEMainpage.cpp create mode 100644 plugins/RetroChess/gui/NEMainpage.h create mode 100644 plugins/RetroChess/gui/NEMainpage.ui create mode 100644 plugins/RetroChess/gui/RetroChessChatWidgetHolder.cpp create mode 100644 plugins/RetroChess/gui/RetroChessChatWidgetHolder.h create mode 100644 plugins/RetroChess/gui/RetroChessNotify.cpp create mode 100644 plugins/RetroChess/gui/RetroChessNotify.h create mode 100644 plugins/RetroChess/gui/RetroChess_images.qrc create mode 100644 plugins/RetroChess/gui/chess.cpp create mode 100644 plugins/RetroChess/gui/chess.h create mode 100644 plugins/RetroChess/gui/images/bishop_black.svg create mode 100644 plugins/RetroChess/gui/images/bishop_white.svg create mode 100644 plugins/RetroChess/gui/images/chess-icon-32.png create mode 100644 plugins/RetroChess/gui/images/chess-icon.png create mode 100644 plugins/RetroChess/gui/images/chess-notify.png create mode 100644 plugins/RetroChess/gui/images/chess-notify.svg create mode 100644 plugins/RetroChess/gui/images/chess.png create mode 100644 plugins/RetroChess/gui/images/chess.svg create mode 100644 plugins/RetroChess/gui/images/king_black.svg create mode 100644 plugins/RetroChess/gui/images/king_white.svg create mode 100644 plugins/RetroChess/gui/images/knight_black.svg create mode 100644 plugins/RetroChess/gui/images/knight_white.svg create mode 100644 plugins/RetroChess/gui/images/muted_self.svg create mode 100644 plugins/RetroChess/gui/images/pawn_black.svg create mode 100644 plugins/RetroChess/gui/images/pawn_white.svg create mode 100644 plugins/RetroChess/gui/images/profile.png create mode 100644 plugins/RetroChess/gui/images/queen_black.svg create mode 100644 plugins/RetroChess/gui/images/queen_white.svg create mode 100644 plugins/RetroChess/gui/images/retrochess.png create mode 100644 plugins/RetroChess/gui/images/rook_black.svg create mode 100644 plugins/RetroChess/gui/images/rook_white.svg create mode 100644 plugins/RetroChess/gui/tile.cpp create mode 100644 plugins/RetroChess/gui/tile.h create mode 100644 plugins/RetroChess/gui/validation.cpp create mode 100644 plugins/RetroChess/gui/validation.h create mode 100644 plugins/RetroChess/interface/rsRetroChess.h create mode 100644 plugins/RetroChess/rename_plugin.sh create mode 100644 plugins/RetroChess/services/p3RetroChess.cc create mode 100644 plugins/RetroChess/services/p3RetroChess.h create mode 100644 plugins/RetroChess/services/rsRetroChessItems.cc create mode 100644 plugins/RetroChess/services/rsRetroChessItems.h diff --git a/plugins/RetroChess/README.txt b/plugins/RetroChess/README.txt new file mode 100644 index 000000000..ee1f2ed60 --- /dev/null +++ b/plugins/RetroChess/README.txt @@ -0,0 +1,18 @@ +RS .6 Chess Plugin +================== + +Both players must currently select each other and press "play game" - ensure your friend has their chess window open before making a move! + + +this is a combination of an existing chess game, and the exampleplugin (rename script makes it easy to use as base for new plugin) +https://github.com/RetroShare/ExampleRSPlugin + + +--disclaimer-- +may not support playing more than one game of chess +may crash RS +may kill your cat, dog, or other loved one. + + +--extra info-- +based on: https://github.com/chozabu/CHESS-in-Qt diff --git a/plugins/RetroChess/RetroChess.pro b/plugins/RetroChess/RetroChess.pro new file mode 100644 index 000000000..bc314edc3 --- /dev/null +++ b/plugins/RetroChess/RetroChess.pro @@ -0,0 +1,70 @@ +!include("../Common/retroshare_plugin.pri"): error("Could not include file ../Common/retroshare_plugin.pri") + +greaterThan(QT_MAJOR_VERSION, 4) { + # Qt 5 + QT += widgets +} + +exists($$[QMAKE_MKSPECS]/features/mobility.prf) { + CONFIG += mobility +} else { + QT += multimedia +} +CONFIG += qt uic qrc resources +MOBILITY = multimedia + +DEPENDPATH += ../../retroshare-gui/src/temp/ui ../../libretroshare/src +INCLUDEPATH += ../../retroshare-gui/src/temp/ui ../../libretroshare/src +INCLUDEPATH += ../../retroshare-gui/src/retroshare-gui + +INCLUDEPATH += ../../rapidjson-1.1.0 + +#################################### Windows ##################################### + +linux-* { + #INCLUDEPATH += /usr/include + #LIBS += $$system(pkg-config --libs opencv) +} + +win32 { + LIBS_DIR = $$PWD/../../../libs + #LIBS += -L"$$LIBS_DIR/lib/opencv" + + #OPENCV_VERSION = 249 + #LIBS += -lopencv_core$$OPENCV_VERSION -lopencv_highgui$$OPENCV_VERSION -lopencv_imgproc$$OPENCV_VERSION -llibjpeg -llibtiff -llibpng -llibjasper -lIlmImf -lole32 -loleaut32 -luuid -lavicap32 -lavifil32 -lvfw32 -lz +} + +QMAKE_CXXFLAGS *= -Wall + +SOURCES = RetroChessPlugin.cpp \ + services/p3RetroChess.cc \ + services/rsRetroChessItems.cc \ + gui/NEMainpage.cpp \ + gui/RetroChessNotify.cpp \ + gui/chess.cpp \ + gui/tile.cpp \ + gui/validation.cpp \ + gui/RetroChessChatWidgetHolder.cpp + +HEADERS = RetroChessPlugin.h \ + services/p3RetroChess.h \ + services/rsRetroChessItems.h \ + interface/rsRetroChess.h \ + gui/NEMainpage.h \ + gui/RetroChessNotify.h \ + gui/tile.h \ + gui/validation.h \ + gui/chess.h \ + gui/RetroChessChatWidgetHolder.h + +#FORMS = gui/AudioInputConfig.ui + +TARGET = RetroChess + +RESOURCES = gui/RetroChess_images.qrc + + +#LIBS += -lspeex -lspeexdsp + +FORMS += \ + gui/NEMainpage.ui diff --git a/plugins/RetroChess/RetroChessPlugin.cpp b/plugins/RetroChess/RetroChessPlugin.cpp new file mode 100644 index 000000000..844059d77 --- /dev/null +++ b/plugins/RetroChess/RetroChessPlugin.cpp @@ -0,0 +1,200 @@ +/**************************************************************** + * RetroShare is distributed under the following license: + * + * Copyright (C) 2015 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + ****************************************************************/ +#include +#include +#include +#include +#include +#include +#include +#include +#include "gui/chat/ChatWidget.h" + +#include "RetroChessPlugin.h" +#include "interface/rsRetroChess.h" +#include "gui/NEMainpage.h" +#include "gui/RetroChessNotify.h" +#include "gui/RetroChessChatWidgetHolder.h" + + +#define IMAGE_RetroChess ":/images/chess.png" + +static void *inited = new RetroChessPlugin() ; + +extern "C" { + + // This is *the* functions required by RS plugin system to give RS access to the plugin. + // Be careful to: + // - always respect the C linkage convention + // - always return an object of type RsPlugin* + // + void *RETROSHARE_PLUGIN_provide() + { + static RetroChessPlugin *p = new RetroChessPlugin() ; + + return (void*)p ; + } + + // This symbol contains the svn revision number grabbed from the executable. + // It will be tested by RS to load the plugin automatically, since it is safe to load plugins + // with same revision numbers, assuming that the revision numbers are up-to-date. + // + uint32_t RETROSHARE_PLUGIN_revision = abs(atoi(RS_EXTRA_VERSION)) ; + + // This symbol contains the svn revision number grabbed from the executable. + // It will be tested by RS to load the plugin automatically, since it is safe to load plugins + // with same revision numbers, assuming that the revision numbers are up-to-date. + // + uint32_t RETROSHARE_PLUGIN_api = RS_PLUGIN_API_VERSION ; +} + +void RetroChessPlugin::getPluginVersion(int& major, int& minor, int& build, int& svn_rev) const +{ + major = RS_MAJOR_VERSION ; + minor = RS_MINOR_VERSION ; + build = RS_MINI_VERSION ; + svn_rev = abs(atoi(RS_EXTRA_VERSION)) ; +} + +RetroChessPlugin::RetroChessPlugin() +{ + qRegisterMetaType("RsPeerId"); + mainpage = NULL ; + mRetroChess = NULL ; + mPlugInHandler = NULL; + mPeers = NULL; + config_page = NULL ; + mIcon = NULL ; + + mRetroChessNotify = new RetroChessNotify; +} + +void RetroChessPlugin::setInterfaces(RsPlugInInterfaces &interfaces) +{ + mPeers = interfaces.mPeers; +} + +/*ConfigPage *RetroChessPlugin::qt_config_page() const +{ + // The config pages are deleted when config is closed, so it's important not to static the + // created object. + // + return new AudioInputConfig() ; +}*/ + +QDialog *RetroChessPlugin::qt_about_page() const +{ + static QMessageBox *about_dialog = NULL ; + + if(about_dialog == NULL) + { + about_dialog = new QMessageBox() ; + + QString text ; + text += QObject::tr("

RetroShare RetroChess plugin


* Contributors: Cyril Soler, Josselin Jacquard
") ; + text += QObject::tr("
The RetroChess plugin adds RetroChess to the private chat window of RetroShare. to use it, proceed as follows:
    ") ; + text += QObject::tr("
  • setup microphone levels using the configuration panel
  • ") ; + text += QObject::tr("
  • check your microphone by looking at the VU-metters
  • ") ; + text += QObject::tr("
  • in the private chat, enable sound input/output by clicking on the two RetroChess icons
") ; + text += QObject::tr("Your friend needs to run the plugin to talk/listen to you, or course.") ; + text += QObject::tr("

This is an experimental feature. Don't hesitate to send comments and suggestion to the RS dev team.") ; + + about_dialog->setText(text) ; + about_dialog->setStandardButtons(QMessageBox::Ok) ; + } + + return about_dialog ; +} + +ChatWidgetHolder *RetroChessPlugin::qt_get_chat_widget_holder(ChatWidget *chatWidget) const +{ + switch (chatWidget->chatType()) { + case ChatWidget::CHATTYPE_PRIVATE: + return new RetroChessChatWidgetHolder(chatWidget, mRetroChessNotify); + case ChatWidget::CHATTYPE_UNKNOWN: + case ChatWidget::CHATTYPE_LOBBY: + case ChatWidget::CHATTYPE_DISTANT: + break; + } + + return NULL; +} + +p3Service *RetroChessPlugin::p3_service() const +{ + if(mRetroChess == NULL) + rsRetroChess = mRetroChess = new p3RetroChess(mPlugInHandler,mRetroChessNotify) ; // , 3600 * 24 * 30 * 6); // 6 Months + + return mRetroChess ; +} + +void RetroChessPlugin::setPlugInHandler(RsPluginHandler *pgHandler) +{ + mPlugInHandler = pgHandler; +} + +QIcon *RetroChessPlugin::qt_icon() const +{ + if (mIcon == NULL) { + Q_INIT_RESOURCE(RetroChess_images); + + mIcon = new QIcon(IMAGE_RetroChess); + } + + return mIcon; +} +MainPage *RetroChessPlugin::qt_page() const +{ + if(mainpage == NULL){ + mainpage = new NEMainpage(0, mRetroChessNotify);//mPeers, mFiles) ; + //tpage = new NEMainpage( ); + //mainpage = tpage; + } + + return mainpage ; +} + +std::string RetroChessPlugin::getShortPluginDescription() const +{ + return "RetroChess"; +} + +std::string RetroChessPlugin::getPluginName() const +{ + return "RetroChess"; +} + +QTranslator* RetroChessPlugin::qt_translator(QApplication */*app*/, const QString& languageCode, const QString& externalDir) const +{ + return NULL; +} + +void RetroChessPlugin::qt_sound_events(SoundEvents &/*events*/) const +{ +// events.addEvent(QApplication::translate("RetroChess", "RetroChess"), QApplication::translate("RetroChess", "Incoming call"), RetroChess_SOUND_INCOMING_CALL); +} + +/*ToasterNotify *RetroChessPlugin::qt_toasterNotify(){ + if (!mRetroChessToasterNotify) { + mRetroChessToasterNotify = new RetroChessToasterNotify(mRetroChess, mRetroChessNotify); + } + return mRetroChessToasterNotify; +}*/ diff --git a/plugins/RetroChess/RetroChessPlugin.h b/plugins/RetroChess/RetroChessPlugin.h new file mode 100644 index 000000000..5d2940aa7 --- /dev/null +++ b/plugins/RetroChess/RetroChessPlugin.h @@ -0,0 +1,76 @@ +/* this is the central part of the plugin */ +/**************************************************************** + * RetroShare is distributed under the following license: + * + * Copyright (C) 2015 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + ****************************************************************/ +#pragma once + +/*RetroChess*/ +#include "services/p3RetroChess.h" + +/*libretroshare"*/ +#include + +#include "gui/NEMainpage.h" + +class RetroChessGUIHandler ; +class RetroChessNotify ; + +class RetroChessPlugin: public RsPlugin +{ + public: + RetroChessPlugin() ; + virtual ~RetroChessPlugin() {} + + virtual p3Service *p3_service() const ; + virtual uint16_t rs_service_id() const { return RS_SERVICE_TYPE_RetroChess_PLUGIN ; } + //virtual ConfigPage *qt_config_page() const ; + virtual QDialog *qt_about_page() const ; + virtual ChatWidgetHolder *qt_get_chat_widget_holder(ChatWidget *chatWidget) const ; + + virtual QIcon *qt_icon() const; + virtual QTranslator *qt_translator(QApplication *app, const QString& languageCode, const QString& externalDir) const; + virtual void qt_sound_events(SoundEvents &events) const; + + virtual void getPluginVersion(int& major, int& minor, int &build, int& svn_rev) const ; + virtual void setPlugInHandler(RsPluginHandler *pgHandler); + + virtual std::string configurationFileName() const { return "RetroChess.cfg" ; } + + virtual std::string getShortPluginDescription() const ; + virtual std::string getPluginName() const; + virtual void setInterfaces(RsPlugInInterfaces& interfaces); + + //================================== RsPlugin Notify ==================================// + //virtual ToasterNotify *qt_toasterNotify(); + + virtual MainPage *qt_page() const ; + + private: + mutable p3RetroChess *mRetroChess ; + mutable RsPluginHandler *mPlugInHandler; + mutable RsPeers* mPeers; + mutable ConfigPage *config_page ; + mutable QIcon *mIcon; + mutable MainPage* mainpage ; + + RetroChessNotify *mRetroChessNotify ; + RetroChessGUIHandler *mRetroChessGUIHandler ; +}; + diff --git a/plugins/RetroChess/cptest b/plugins/RetroChess/cptest new file mode 100644 index 000000000..6a98e93b4 --- /dev/null +++ b/plugins/RetroChess/cptest @@ -0,0 +1,3 @@ +kdesudo -u retrotester cp lib*.so* /home/retrotester/.retroshare/extensions6/ +kdesudo -u retrotester /home/chozabu/git/RetroShare/retroshare-gui/src/RetroShare + diff --git a/plugins/RetroChess/gui/NEMainpage.cpp b/plugins/RetroChess/gui/NEMainpage.cpp new file mode 100644 index 000000000..ae45c49f8 --- /dev/null +++ b/plugins/RetroChess/gui/NEMainpage.cpp @@ -0,0 +1,225 @@ +#include "NEMainpage.h" +#include "ui_NEMainpage.h" + +//#include "services/p3RetroChess.h" +#include "interface/rsRetroChess.h" +#include "services/rsRetroChessItems.h" +#include "retroshare/rsservicecontrol.h" +#include "gui/notifyqt.h" +#include +#include + +#include +#include +#include +#include + +#include "gui/chat/ChatDialog.h" + + +NEMainpage::NEMainpage(QWidget *parent, RetroChessNotify *notify) : + MainPage(parent), + mNotify(notify), + ui(new Ui::NEMainpage) +{ + ui->setupUi(this); + setupMenuActions(); + + connect(mNotify, SIGNAL(NeMsgArrived(RsPeerId,QString)), this , SLOT(NeMsgArrived(RsPeerId,QString))); + connect(mNotify, SIGNAL(chessStart(RsPeerId)), this , SLOT(chessStart(RsPeerId))); + connect(ui->friendSelectionWidget, SIGNAL(itemSelectionChanged()), this, SLOT(friendSelectionChanged())); + + ui->friendSelectionWidget->start(); + ui->friendSelectionWidget->setModus(FriendSelectionWidget::MODUS_SINGLE); + ui->friendSelectionWidget->setShowType(FriendSelectionWidget::SHOW_SSL); + + connect(ui->friendSelectionWidget, SIGNAL(contentChanged()), this, SLOT(on_filterPeersButton_clicked())); + connect(NotifyQt::getInstance(), SIGNAL(peerStatusChanged(const QString&,int)), this, SLOT(on_filterPeersButton_clicked())); + + QString welcomemessage = QTime::currentTime().toString() +" "; + welcomemessage+= tr("Welcome to RetroChess lobby"); + ui->listWidget->addItem(welcomemessage); + +} + +NEMainpage::~NEMainpage() +{ + delete ui; +} + + +void NEMainpage::on_pingAllButton_clicked() +{ + +} + + +void NEMainpage::chessStart(const RsPeerId &peer_id){ + + create_chess_window(peer_id.toStdString(), 0); +} + +void NEMainpage::NeMsgArrived(const RsPeerId &peer_id, QString str) +{ + QJsonDocument jdoc = QJsonDocument::fromJson(str.toUtf8()); + QVariantMap vmap = jdoc.toVariant().toMap(); + std::cout << "GUI got Packet from: " << peer_id; + std::cout << " saying " << str.toStdString(); + std::cout << std::endl; + QString type = vmap.value("type").toString(); + if (type == "chat"){ + QString output = QTime::currentTime().toString() +" "; + output+= QString::fromStdString(rsPeers->getPeerName(peer_id)); + output+=": "; + output+=vmap.value("message").toString(); + ui->listWidget->addItem(output); + }else if (type == "chessclick"){ + int row = vmap.value("row").toInt(); + int col = vmap.value("col").toInt(); + int count = vmap.value("count").toInt(); + RetroChessWindow* rcw = activeGames.value(peer_id.toStdString()); + rcw->validate_tile(row,col,count); + }else if (type == "chess_init"){ + create_chess_window(peer_id.toStdString(), 1); + }else if (type == "chess_invite"){ + ChatDialog::chatFriend(ChatId(peer_id)); + rsRetroChess->gotInvite(peer_id); + mNotify->notifyChessInvite(peer_id); + }else if (type == "chess_accept"){ + if (rsRetroChess->hasInviteTo(peer_id)){ + create_chess_window(peer_id.toStdString(), 1); + rsRetroChess->acceptedInvite(peer_id); + } + }else{ + QString output = QTime::currentTime().toString() +" "; + output+= QString::fromStdString(rsPeers->getPeerName(peer_id)); + output+=": "; + output+=str; + ui->listWidget->addItem(output); + } + + { + QString output = QTime::currentTime().toString() +" "; + output+= QString::fromStdString(rsPeers->getPeerName(peer_id)); + output+=": "; + output+=str; + ui->netLogWidget->addItem(output); + } +} + +void NEMainpage::on_broadcastButton_clicked() +{ + rsRetroChess->msg_all(ui->msgInput->text().toStdString()); + NeMsgArrived(rsPeers->getOwnId(),ui->msgInput->text()); + ui->msgInput->clear(); +} + +void NEMainpage::create_chess_window(std::string peer_id, int player_id){ + RetroChessWindow *rcw = new RetroChessWindow(peer_id, player_id); + rcw->show(); + + activeGames.insert(peer_id, rcw); + ui->active_games->addItem(QString::fromStdString(peer_id)); +} + +void NEMainpage::on_playButton_clicked() +{ + //get peer + FriendSelectionWidget::IdType idType; + std::string fid = ui->friendSelectionWidget->selectedId(idType); + //make_board(); + create_chess_window(fid, 0); + + QVariantMap map; + map.insert("type", "chess_init"); + + rsRetroChess->qvm_msg_peer(RsPeerId(fid),map); + + std::cout << fid; +} + +void NEMainpage::on_filterPeersButton_clicked() +{ + std::cout << "\n\n filter peers \n"; + + std::list ssllist ; + rsPeers->getFriendList(ssllist); + + + RsPeerServiceInfo ownServices; + rsServiceControl->getOwnServices(ownServices); + + std::vector peer_ids ; + std::vector service_ids ; + + for(std::list::const_iterator it(ssllist.begin());it!=ssllist.end();++it) + peer_ids.push_back(*it) ; + service_ids.clear() ; + uint32_t service_id; + for(std::map::const_iterator sit(ownServices.mServiceList.begin());sit!=ownServices.mServiceList.end();++sit) + { + RsServiceInfo rsi = sit->second; + service_ids.push_back(sit->first) ; + std::cout << rsi.mServiceName << rsi.mServiceType << "\n"; + if (strcmp(rsi.mServiceName.c_str(), "RetroChess") == 0){ + service_id = rsi.mServiceType; + std::cout << "setting service ID\n"; + } + } + + for(std::list::const_iterator it(ssllist.begin());it!=ssllist.end();++it) + { + RsPeerServiceInfo local_service_perms ; + RsPeerServiceInfo remote_service_perms ; + RsPeerId id = *it; + + rsServiceControl->getServicesAllowed (*it, local_service_perms) ; + rsServiceControl->getServicesProvided(*it,remote_service_perms) ; + + bool local_allowed = local_service_perms.mServiceList.find(service_id) != local_service_perms.mServiceList.end() ; + bool remote_allowed = remote_service_perms.mServiceList.find(service_id) != remote_service_perms.mServiceList.end() ; + bool allowed = (local_allowed && remote_allowed); + //QString la = + QString serviceinfos = QString("peerlocal: ") + QString(local_allowed?"yes":"no") + QString(" remote: ") + QString(remote_allowed?"yes":"no"); + ui->netLogWidget->addItem(serviceinfos); + std::cout << serviceinfos.toStdString() << "\n"; + //if (allowed){ + QList items; + ui->friendSelectionWidget->itemsFromId(FriendSelectionWidget::IDTYPE_SSL,id.toStdString(),items); + + std::cout << items.size() << "\n"; + if (items.size()){ + QTreeWidgetItem* item = items.first(); + item->setHidden(!allowed); + } + } + + + // +} + +void NEMainpage::setupMenuActions() +{ + mActionPlayChess = new QAction(QIcon(), tr("Play Chess"), this); + connect(mActionPlayChess, SIGNAL(triggered(bool)), this, SLOT(on_playButton_clicked())); + + ui->friendSelectionWidget->addContextMenuAction(mActionPlayChess); + +} + +void NEMainpage::friendSelectionChanged() +{ + std::set peerIds; + ui->friendSelectionWidget->selectedIds(peerIds, false); + + std::set gxsIds; + ui->friendSelectionWidget->selectedIds(gxsIds, false); + + int selectedCount = peerIds.size() + gxsIds.size(); + + mActionPlayChess->setEnabled(selectedCount); + + FriendSelectionWidget::IdType idType; + ui->friendSelectionWidget->selectedId(idType); + +} diff --git a/plugins/RetroChess/gui/NEMainpage.h b/plugins/RetroChess/gui/NEMainpage.h new file mode 100644 index 000000000..ac5e29fdd --- /dev/null +++ b/plugins/RetroChess/gui/NEMainpage.h @@ -0,0 +1,52 @@ +/* This is the main page displayed by the plugin */ +#ifndef NEMAINPAGE_H +#define NEMAINPAGE_H + +#include +#include +#include +#include "gui/RetroChessNotify.h" + +#include "gui/chess.h" + +#include + +class QAction; + +namespace Ui { +class NEMainpage; +} + +class NEMainpage : public MainPage +{ + Q_OBJECT + +public: + explicit NEMainpage(QWidget *parent, RetroChessNotify *notify); + ~NEMainpage(); + +private slots: + void setupMenuActions(); + void friendSelectionChanged(); + void on_pingAllButton_clicked(); + void NeMsgArrived(const RsPeerId &peer_id, QString str); + void chessStart(const RsPeerId &peer_id); + + void on_broadcastButton_clicked(); + + void on_playButton_clicked(); + + void on_filterPeersButton_clicked(); + +private: + Ui::NEMainpage *ui; + RetroChessNotify *mNotify; + + QAction *mActionPlayChess; + //RetroChessWindow *tempwindow; + + QMap activeGames; + void create_chess_window(std::string peer_id, int player_id); +}; + +#endif // NEMAINPAGE_H diff --git a/plugins/RetroChess/gui/NEMainpage.ui b/plugins/RetroChess/gui/NEMainpage.ui new file mode 100644 index 000000000..0c06d9b5b --- /dev/null +++ b/plugins/RetroChess/gui/NEMainpage.ui @@ -0,0 +1,268 @@ + + + NEMainpage + + + + 0 + 0 + 684 + 578 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + QFrame::NoFrame + + + QFrame::Raised + + + + 2 + + + 2 + + + 2 + + + 2 + + + + + + 24 + 24 + + + + + + + :/images/retrochess.png + + + true + + + + + + + RetroChess + + + + + + + Qt::Horizontal + + + + 123 + 13 + + + + + + + + Qt::NoFocus + + + + :/icons/help_64.png:/icons/help_64.png + + + true + + + true + + + + + + + + + + 0 + + + + Chess Lobby + + + + + + Qt::Horizontal + + + + Invite Friends + + + + + + Qt::CustomContextMenu + + + + + + + CheckPeers + + + + + + + Qt::Horizontal + + + + 41 + 20 + + + + + + + + + + + + + + Play Chess + + + + + + + Qt::Horizontal + + + + 475 + 20 + + + + + + + + + + + + + Type a message here + + + + + + + Send + + + + + + + + + + + + Net log + + + + + + + + + + + + + + 0 + 0 + + + + + 16777215 + 150 + + + + Active Games + + + + + + + + + + + + + StyledLabel + QLabel +
gui/common/StyledLabel.h
+
+ + FriendSelectionWidget + QWidget +
gui/common/FriendSelectionWidget.h
+ 1 +
+
+ + + + +
diff --git a/plugins/RetroChess/gui/RetroChessChatWidgetHolder.cpp b/plugins/RetroChess/gui/RetroChessChatWidgetHolder.cpp new file mode 100644 index 000000000..c5bdcc3df --- /dev/null +++ b/plugins/RetroChess/gui/RetroChessChatWidgetHolder.cpp @@ -0,0 +1,147 @@ + + +#include +#include +#include +#include + + +#include "interface/rsRetroChess.h" + +#include "gui/chat/ChatWidget.h" + +#include "RetroChessChatWidgetHolder.h" + +#include +#include + +#define IMAGE_RetroChess ":/images/chess.png" + +RetroChessChatWidgetHolder::RetroChessChatWidgetHolder(ChatWidget *chatWidget, RetroChessNotify *notify) + : QObject(), ChatWidgetHolder(chatWidget), mRetroChessNotify(notify) +{ + QIcon icon ; + icon.addPixmap(QPixmap(IMAGE_RetroChess)) ; + + + playChessButton = new QToolButton ; + playChessButton->setIcon(icon) ; + playChessButton->setToolTip(tr("Invite Friend to Chess")); + playChessButton->setIconSize(QSize(35,35)) ; + playChessButton->setAutoRaise(true) ; + + mChatWidget->addChatBarWidget(playChessButton); + connect(playChessButton, SIGNAL(clicked()), this , SLOT(chessPressed())); + connect(notify, SIGNAL(chessInvited(RsPeerId)), this , SLOT(chessnotify(RsPeerId))); + +} + +RetroChessChatWidgetHolder::~RetroChessChatWidgetHolder() +{ + + button_map::iterator it = buttonMapTakeChess.begin(); + while (it != buttonMapTakeChess.end()) { + it = buttonMapTakeChess.erase(it); + } +} + +void RetroChessChatWidgetHolder::chessnotify(RsPeerId from_peer_id) +{ + RsPeerId peer_id = mChatWidget->getChatId().toPeerId();//TODO support GXSID + //if (peer_id!=from_peer_id)return;//invite from another chat + if (rsRetroChess->hasInviteFrom(peer_id)){ + if (mChatWidget) { + QString buttonName = QString::fromUtf8(rsPeers->getPeerName(peer_id).c_str()); + if (buttonName.isEmpty()) buttonName = "Chess";//TODO maybe change all with GxsId + //disable old buttons + button_map::iterator it = buttonMapTakeChess.begin(); + while (it != buttonMapTakeChess.end()) { + it = buttonMapTakeChess.erase(it); + } + //button_map::iterator it = buttonMapTakeChess.find(buttonName); + //if (it == buttonMapTakeChess.end()){ + mChatWidget->addChatMsg(true, tr("Chess Status"), QDateTime::currentDateTime(), QDateTime::currentDateTime() + , tr("%1 inviting you to start Chess. Do you want to accept or decline the invitation?").arg(buttonName), ChatWidget::MSGTYPE_SYSTEM); + RSButtonOnText *button = mChatWidget->getNewButtonOnTextBrowser(tr("Accept")); + button->setToolTip(tr("Accept")); + button->setStyleSheet(QString("border: 1px solid #199909;") + .append("font-size: 12pt; color: white;") + .append("min-width: 128px; min-height: 24px;") + .append("border-radius: 6px;") + .append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, " + "stop: 0 #22c70d, stop: 1 #116a06);") + + ); + + button->updateImage(); + + connect(button,SIGNAL(clicked()),this,SLOT(chessStart())); + connect(button,SIGNAL(mouseEnter()),this,SLOT(botMouseEnter())); + connect(button,SIGNAL(mouseLeave()),this,SLOT(botMouseLeave())); + + buttonMapTakeChess.insert(buttonName, button); + //} + } + + + } +} + +void RetroChessChatWidgetHolder::chessPressed() +{ + RsPeerId peer_id = mChatWidget->getChatId().toPeerId();//TODO support GXSID + if (rsRetroChess->hasInviteFrom(peer_id)){ + + rsRetroChess->acceptedInvite(peer_id); + mRetroChessNotify->notifyChessStart(peer_id); + return; + + } + rsRetroChess->sendInvite(peer_id); + + QString peerName = QString::fromUtf8(rsPeers->getPeerName(peer_id).c_str()); + mChatWidget->addChatMsg(true, tr("Chess Status"), QDateTime::currentDateTime(), QDateTime::currentDateTime() + , tr("You're now inviting %1 to play Chess").arg(peerName), ChatWidget::MSGTYPE_SYSTEM); + +} + +void RetroChessChatWidgetHolder::chessStart() +{ + RsPeerId peer_id = mChatWidget->getChatId().toPeerId();//TODO support GXSID + + rsRetroChess->acceptedInvite(peer_id); + mRetroChessNotify->notifyChessStart(peer_id); + return; +} + +void RetroChessChatWidgetHolder::botMouseEnter() +{ + RSButtonOnText *source = qobject_cast(QObject::sender()); + if (source){ + source->setStyleSheet(QString("border: 1px solid #333333;") + .append("font-size: 12pt; color: white;") + .append("min-width: 128px; min-height: 24px;") + .append("border-radius: 6px;") + .append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, " + "stop: 0 #444444, stop: 1 #222222);") + + ); + //source->setDown(true); + } +} + +void RetroChessChatWidgetHolder::botMouseLeave() +{ + RSButtonOnText *source = qobject_cast(QObject::sender()); + if (source){ + source->setStyleSheet(QString("border: 1px solid #199909;") + .append("font-size: 12pt; color: white;") + .append("min-width: 128px; min-height: 24px;") + .append("border-radius: 6px;") + .append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, " + "stop: 0 #22c70d, stop: 1 #116a06);") + + ); + //source->setDown(false); + } +} diff --git a/plugins/RetroChess/gui/RetroChessChatWidgetHolder.h b/plugins/RetroChess/gui/RetroChessChatWidgetHolder.h new file mode 100644 index 000000000..d98b3b262 --- /dev/null +++ b/plugins/RetroChess/gui/RetroChessChatWidgetHolder.h @@ -0,0 +1,35 @@ +#ifndef RETROCHESSCHATWIDGETHOLDER_H +#define RETROCHESSCHATWIDGETHOLDER_H + +#include "RetroChessChatWidgetHolder.h" +#include +#include +#include + +class RetroChessChatWidgetHolder : public QObject, public ChatWidgetHolder +{ + Q_OBJECT + +public: + RetroChessChatWidgetHolder(ChatWidget *chatWidget, RetroChessNotify *notify); + virtual ~RetroChessChatWidgetHolder(); + +public slots: + void chessPressed(); + void chessStart(); + void chessnotify(RsPeerId from_peer_id); + + +private slots: + void botMouseEnter(); + void botMouseLeave(); + +protected: + QToolButton *playChessButton ; + RetroChessNotify *mRetroChessNotify; + + typedef QMap button_map; + button_map buttonMapTakeChess; +}; + +#endif // RETROCHESSCHATWIDGETHOLDER_H diff --git a/plugins/RetroChess/gui/RetroChessNotify.cpp b/plugins/RetroChess/gui/RetroChessNotify.cpp new file mode 100644 index 000000000..07db46225 --- /dev/null +++ b/plugins/RetroChess/gui/RetroChessNotify.cpp @@ -0,0 +1,33 @@ +#include "RetroChessNotify.h" + +RetroChessNotify::RetroChessNotify(QObject *parent) : QObject(parent) +{ + +} + +void RetroChessNotify::notifyReceivedPaint(const RsPeerId &peer_id, int x, int y) +{ + std::cout << "pNotify Recvd paint from: " << peer_id; + std::cout << " at " << x << " , " << y; + std::cout << std::endl; +} + + +void RetroChessNotify::notifyReceivedMsg(const RsPeerId& peer_id, QString str) +{ + std::cout << "pNotify Recvd Packet from: " << peer_id; + std::cout << " saying " << str.toStdString(); + std::cout << std::endl; + emit NeMsgArrived(peer_id, str) ; +} + +void RetroChessNotify::notifyChessStart(const RsPeerId &peer_id) +{ + emit chessStart(peer_id) ; + +} +void RetroChessNotify::notifyChessInvite(const RsPeerId &peer_id) +{ + emit chessInvited(peer_id) ; + +} diff --git a/plugins/RetroChess/gui/RetroChessNotify.h b/plugins/RetroChess/gui/RetroChessNotify.h new file mode 100644 index 000000000..3581515a8 --- /dev/null +++ b/plugins/RetroChess/gui/RetroChessNotify.h @@ -0,0 +1,54 @@ +/**************************************************************** + * RetroShare is distributed under the following license: + * + * Copyright (C) 2015 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + ****************************************************************/ + +// This class is a Qt object to get notification from the plugin's service threads, +// and responsible to pass the info the the GUI part. +// +// Because the GUI part is async-ed with the service, it is crucial to use the +// QObject connect system to communicate between the p3Service and the gui part (handled by Qt) +// +#ifndef NETEXAMPLENOTIFY_H +#define NETEXAMPLENOTIFY_H + +#include + +#include + +class RetroChessNotify : public QObject +{ + Q_OBJECT +public: + explicit RetroChessNotify(QObject *parent = 0); + void notifyReceivedPaint(const RsPeerId &peer_id, int x, int y) ; + void notifyReceivedMsg(const RsPeerId &peer_id, QString str) ; + void notifyChessStart(const RsPeerId &peer_id) ; + void notifyChessInvite(const RsPeerId &peer_id) ; + +signals: + void NeMsgArrived(const RsPeerId &peer_id, QString str) ; // emitted when the peer gets a msg + + void chessStart(const RsPeerId &peer_id) ; + void chessInvited(const RsPeerId &peer_id) ; + +public slots: +}; + +#endif // NETEXAMPLENOTIFY_H diff --git a/plugins/RetroChess/gui/RetroChess_images.qrc b/plugins/RetroChess/gui/RetroChess_images.qrc new file mode 100644 index 000000000..9cffad0ad --- /dev/null +++ b/plugins/RetroChess/gui/RetroChess_images.qrc @@ -0,0 +1,21 @@ + + + images/bishop_black.svg + images/bishop_white.svg + images/king_black.svg + images/king_white.svg + images/knight_black.svg + images/knight_white.svg + images/pawn_black.svg + images/pawn_white.svg + images/queen_black.svg + images/queen_white.svg + images/rook_black.svg + images/rook_white.svg + images/chess-icon.png + images/chess-icon-32.png + images/chess.png + images/profile.png + images/retrochess.png + + diff --git a/plugins/RetroChess/gui/chess.cpp b/plugins/RetroChess/gui/chess.cpp new file mode 100644 index 000000000..98e38446b --- /dev/null +++ b/plugins/RetroChess/gui/chess.cpp @@ -0,0 +1,873 @@ +#include +#include "chess.h" +#include "gui/common/AvatarDefs.h" + +RetroChessWindow::RetroChessWindow(std::string peerid, int player, QWidget *parent) : + QWidget(parent), + mPeerId(peerid) + //ui(new Ui::RetroChessWindow) +{ + + //tile = { { NULL } }; + count=0; + turn=1; + max=0; + texp = new int[60]; + setGeometry(0,0,1370,700); + + QString player_str; + if (player ){ + p1id = rsPeers->getOwnId(); + p2id = RsPeerId(peerid); + player_str = " (1)"; + }else{ + p1id = RsPeerId(peerid); + p2id = rsPeers->getOwnId(); + player_str = " (2)"; + } + + p1name = rsPeers->getPeerName(p1id); + p2name = rsPeers->getPeerName(p2id); + + QString title = QString::fromStdString(p2name); + title += " Playing Chess against "; + title += QString::fromStdString(p1name); + title+=player_str; + + + this->setWindowTitle(title); + + accessories(); + chessBoard(); +} + +RetroChessWindow::~RetroChessWindow() +{ +} + +class Border +{ +public: + Border(); + void outline(QWidget *baseWidget, int xPos, int yPos, int Pos) + { + QLabel *outLabel = new QLabel(baseWidget); + + if(!Pos) + outLabel->setGeometry(xPos,yPos,552,20); //Horizontal Borders + + else + outLabel->setGeometry(xPos,yPos,20,512); //Vertical Borders + + outLabel->setStyleSheet("QLabel { background-color :rgb(170, 170, 127); color : black; }"); + } +}; + +void RetroChessWindow::accessories() +{ + QWidget *baseWidget = this; + QLabel *player2 = new QLabel(baseWidget); + QLabel *name2 = new QLabel(p2name.c_str(), baseWidget); + QLabel *time2 = new QLabel("00:00:00", baseWidget); + + QLabel *player1 = new QLabel(baseWidget); + QLabel *name1 = new QLabel(p1name.c_str(), baseWidget); + QLabel *time1 = new QLabel("00:00:00", baseWidget); + + QLabel *moves = new QLabel(baseWidget); + + name1->setGeometry(125,610,80,20); + time1->setGeometry(120,635,80,20); + player1->setGeometry(100,500,100,100); + QPixmap p1avatar; + AvatarDefs::getAvatarFromSslId(p1id, p1avatar); + player1->setPixmap(p1avatar);//QPixmap(":/images/profile.png")); + + + name2->setGeometry(125,210,80,20); + time2->setGeometry(120,235,80,20); + player2->setGeometry(100,100,100,100); + QPixmap p2avatar; + AvatarDefs::getAvatarFromSslId(p2id, p2avatar); + player2->setPixmap(p2avatar);//QPixmap(":/images/profile.png")); + + moves->setGeometry(1000,105,250,550); + moves->setStyleSheet("QLabel {background-color: white;}"); + +} + +void RetroChessWindow::disOrange() +{ + int i; + + for(i=0;itileDisplay(); + +} + +void RetroChessWindow::validate_tile(int row, int col, int c){ + Tile *clickedtile = tile[col][row]; + //if (!click1)click1=clickedtile; + clickedtile->validate(++count); +} + +void RetroChessWindow::chessBoard() +{ + //QWidget *baseWidget, Tile *tile[8][8] + QWidget *baseWidget = this; + int i,j,k=0,hor,ver; + Border *border[4]={ NULL }; + + //borderDisplay + { + border[0]->outline(baseWidget,330,105,0); + border[1]->outline(baseWidget,330,637,0); + border[2]->outline(baseWidget,330,125,1); + border[2]->outline(baseWidget,862,125,1); + } + + //Create 64 tiles (allocating memories to the objects of Tile class) + ver=125; + for(i=0;i<8;i++) + { + hor=350; + for(j=0;j<8;j++) + { + tile[i][j] = new Tile(baseWidget); + tile[i][j]->tileColor=(i+j)%2; + tile[i][j]->piece=0; + tile[i][j]->row=i; + tile[i][j]->col=j; + tile[i][j]->tileNum=k++; + tile[i][j]->tileDisplay(); + tile[i][j]->setGeometry(hor,ver,64,64); + hor+=64; + } + ver+=64; + } + + //white pawns + for(j=0;j<8;j++) + { + tile[1][j]->piece=1; + tile[1][j]->pieceColor=0; + tile[1][j]->display('P'); + } + + //black pawns + for(j=0;j<8;j++) + { + tile[6][j]->piece=1; + tile[6][j]->pieceColor=1; + tile[6][j]->display('P'); + } + + //white and black remaining elements + for(j=0;j<8;j++) + { + tile[0][j]->piece=1; + tile[0][j]->pieceColor=0; + tile[7][j]->piece=1; + tile[7][j]->pieceColor=1; + } + + { + tile[0][0]->display('R'); + tile[0][1]->display('H'); + tile[0][2]->display('B'); + tile[0][3]->display('Q'); + tile[0][4]->display('K'); + tile[0][5]->display('B'); + tile[0][6]->display('H'); + tile[0][7]->display('R'); + } + + + { + tile[7][0]->display('R'); + tile[7][1]->display('H'); + tile[7][2]->display('B'); + tile[7][3]->display('Q'); + tile[7][4]->display('K'); + tile[7][5]->display('B'); + tile[7][6]->display('H'); + tile[7][7]->display('R'); + } + + wR=7; + wC=4; + + bR=0; + bC=4; + + +} + + + +int RetroChessWindow::chooser(Tile *temp) +{ + switch(temp->pieceName) + { + case 'P': flag=validatePawn(temp); + break; + + case 'R': flag=validateRook(temp); + break; + + case 'H': flag=validateHorse(temp); + break; + + case 'K': flag=validateKing(temp); + break; + + case 'Q': flag=validateQueen(temp); + break; + + case 'B': flag=validateBishop(temp); + break; + + } + + orange(); + + return flag; +} + +//PAWN +int RetroChessWindow::validatePawn(Tile *temp) +{ + int row,col; + + row=temp->row; + col=temp->col; + retVal=0; + + //White Pawn + if(temp->pieceColor) + { + if(row-1>=0 && !tile[row-1][col]->piece) + { + /*int tnum = tile[row-1][col]->tileNum; + std::cout << "tile: " << texp[max] << std::endl; + int a = texp[max]; + texp[max] = tnum; + max++;*/ + texp[max++]=tile[row-1][col]->tileNum; + retVal=1; + } + + if(row==6 && !tile[5][col]->piece && !tile[4][col]->piece) + { + texp[max++]=tile[row-2][col]->tileNum; + retVal=1; + } + + if(row-1>=0 && col-1>=0) + { + if(tile[row-1][col-1]->pieceColor!=temp->pieceColor && tile[row-1][col-1]->piece) + { + texp[max++]=tile[row-1][col-1]->tileNum; + retVal=1; + } + } + + if(row-1>=0 && col+1<=7) + { + if(tile[row-1][col+1]->pieceColor!=temp->pieceColor && tile[row-1][col+1]->piece) + { + texp[max++]=tile[row-1][col+1]->tileNum; + retVal=1; + } + } + } + else + { + if(row+1<=7 && !tile[row+1][col]->piece) + { + texp[max++]=tile[row+1][col]->tileNum; + retVal=1; + } + + if(row==1 && !tile[2][col]->piece && !tile[3][col]->piece) + { + texp[max++]=tile[row+2][col]->tileNum; + retVal=1; + } + + if(row+1<=7 && col-1>=0) + { + if(tile[row+1][col-1]->pieceColor!=temp->pieceColor && tile[row+1][col-1]->piece) + { + texp[max++]=tile[row+1][col-1]->tileNum; + retVal=1; + } + } + + if(row+1<=7 && col+1<=7) + { + if(tile[row+1][col+1]->pieceColor!=temp->pieceColor && tile[row+1][col+1]->piece) + { + texp[max++]=tile[row+1][col+1]->tileNum; + retVal=1; + } + } + } + + return retVal; +} + + +//ROOK +int RetroChessWindow::validateRook(Tile *temp) +{ + int r,c; + + retVal=0; + + r=temp->row; + c=temp->col; + while(r-->0) + { + if(!tile[r][c]->piece) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + } + + else if(tile[r][c]->pieceColor==temp->pieceColor) + break; + + else if(tile[r][c]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + break; + } + } + + r=temp->row; + c=temp->col; + while(r++<7) + { + if(!tile[r][c]->piece) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + } + + else if(tile[r][c]->pieceColor==temp->pieceColor) + break; + + else if(tile[r][c]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + break; + } + } + + r=temp->row; + c=temp->col; + while(c++<7) + { + if(!tile[r][c]->piece) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + } + + else if(tile[r][c]->pieceColor==temp->pieceColor) + break; + + else if(tile[r][c]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + break; + } + } + + r=temp->row; + c=temp->col; + while(c-->0) + { + if(!tile[r][c]->piece) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + } + + else if(tile[r][c]->pieceColor==temp->pieceColor) + break; + + else if(tile[r][c]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + break; + } + } + + + return retVal; +} + + +//HORSE +int RetroChessWindow::validateHorse(Tile *temp) +{ + int r,c; + retVal=0; + + r=temp->row; + c=temp->col; + + if(r-2>=0 && c-1>=0) + { + if(tile[r-2][c-1]->pieceColor!=temp->pieceColor || !tile[r-2][c-1]->piece) + { + texp[max++]=tile[r-2][c-1]->tileNum; + retVal=1; + } + } + + if(r-2>=0 && c+1<=7) + { + if(tile[r-2][c+1]->pieceColor!=temp->pieceColor || !tile[r-2][c+1]->piece) + { + texp[max++]=tile[r-2][c+1]->tileNum; + retVal=1; + } + } + + if(r-1>=0 && c-2>=0) + { + if(tile[r-1][c-2]->pieceColor!=temp->pieceColor || !tile[r-1][c-2]->piece) + { + texp[max++]=tile[r-1][c-2]->tileNum; + retVal=1; + } + } + + if(r-1>=0 && c+2<=7) + { + if(tile[r-1][c+2]->pieceColor!=temp->pieceColor || !tile[r-1][c+2]->piece) + { + texp[max++]=tile[r-1][c+2]->tileNum; + retVal=1; + } + } + + if(r+2<=7 && c+1<=7) + { + if(tile[r+2][c+1]->pieceColor!=temp->pieceColor || !tile[r+2][c+1]->piece) + { + texp[max++]=tile[r+2][c+1]->tileNum; + retVal=1; + } + } + + if(r+2<=7 && c-1>=0) + { + if(tile[r+2][c-1]->pieceColor!=temp->pieceColor || !tile[r+2][c-1]->piece) + { + texp[max++]=tile[r+2][c-1]->tileNum; + retVal=1; + } + } + + if(r+1<=7 && c-2>=0) + { + if(tile[r+1][c-2]->pieceColor!=temp->pieceColor || !tile[r+1][c-2]->piece) + { + texp[max++]=tile[r+1][c-2]->tileNum; + retVal=1; + } + } + + if(r+1<=7 && c+2<=7) + { + if(tile[r+1][c+2]->pieceColor!=temp->pieceColor || !tile[r+1][c+2]->piece) + { + texp[max++]=tile[r+1][c+2]->tileNum; + retVal=1; + } + } + + return retVal; +} + + +//KING +int RetroChessWindow::validateKing(Tile *temp) +{ + int r,c; + retVal=0; + + r=temp->row; + c=temp->col; + + if(r-1>=0) + { + if(!tile[r-1][c]->piece || tile[r-1][c]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r-1][c]->tileNum; + retVal=1; + } + } + + if(r+1<=7) + { + if(!tile[r+1][c]->piece || tile[r+1][c]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r+1][c]->tileNum; + retVal=1; + } + } + + if(c-1>=0) + { + if(!tile[r][c-1]->piece || tile[r][c-1]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r][c-1]->tileNum; + retVal=1; + } + } + + if(c+1<=7) + { + if(!tile[r][c+1]->piece || tile[r][c+1]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r][c+1]->tileNum; + retVal=1; + } + } + + if(r-1>=0 && c-1>=0) + { + if(!tile[r-1][c-1]->piece || tile[r-1][c-1]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r-1][c-1]->tileNum; + retVal=1; + } + } + + if(r-1>=0 && c+1<=7) + { + if(!tile[r-1][c+1]->piece || tile[r-1][c+1]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r-1][c+1]->tileNum; + retVal=1; + } + } + + if(r+1<=7 && c-1>=0) + { + if(!tile[r+1][c-1]->piece || tile[r+1][c-1]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r+1][c-1]->tileNum; + retVal=1; + } + } + + if(r+1<=7 && c+1<=7) + { + if(!tile[r+1][c+1]->piece || tile[r+1][c+1]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r+1][c+1]->tileNum; + retVal=1; + } + } + + return retVal; +} + + +//QUEEN +int RetroChessWindow::validateQueen(Tile *temp) +{ + int r,c; + + retVal=0; + + r=temp->row; + c=temp->col; + while(r-->0) + { + if(!tile[r][c]->piece) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + } + + else if(tile[r][c]->pieceColor==temp->pieceColor) + break; + + else if(tile[r][c]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + break; + } + } + + r=temp->row; + c=temp->col; + while(r++<7) + { + if(!tile[r][c]->piece) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + } + + else if(tile[r][c]->pieceColor==temp->pieceColor) + break; + + else if(tile[r][c]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + break; + } + } + + r=temp->row; + c=temp->col; + while(c++<7) + { + if(!tile[r][c]->piece) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + } + + else if(tile[r][c]->pieceColor==temp->pieceColor) + break; + + else if(tile[r][c]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + break; + } + } + + r=temp->row; + c=temp->col; + while(c-->0) + { + if(!tile[r][c]->piece) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + } + + else if(tile[r][c]->pieceColor==temp->pieceColor) + break; + + else if(tile[r][c]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + break; + } + } + + r=temp->row; + c=temp->col; + while(r-->0 && c++<7) + { + if(!tile[r][c]->piece) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + } + + else if(tile[r][c]->pieceColor==temp->pieceColor) + break; + + else if(tile[r][c]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + break; + } + } + + r=temp->row; + c=temp->col; + while(r-->0 && c-->0) + { + if(!tile[r][c]->piece) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + } + + else if(tile[r][c]->pieceColor==temp->pieceColor) + break; + + else if(tile[r][c]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + break; + } + } + + r=temp->row; + c=temp->col; + while(r++<7 && c++<7) + { + if(!tile[r][c]->piece) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + } + + else if(tile[r][c]->pieceColor==temp->pieceColor) + break; + + else if(tile[r][c]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + break; + } + } + + r=temp->row; + c=temp->col; + while(r++<7 && c-->0) + { + if(!tile[r][c]->piece) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + } + + else if(tile[r][c]->pieceColor==temp->pieceColor) + break; + + else if(tile[r][c]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + break; + } + } + + + return retVal; +} + +//BISHOP +int RetroChessWindow::validateBishop(Tile *temp) +{ + int r,c; + retVal=0; + + r=temp->row; + c=temp->col; + while(r-->0 && c++<7) + { + if(!tile[r][c]->piece) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + } + + else if(tile[r][c]->pieceColor==temp->pieceColor) + break; + + else if(tile[r][c]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + break; + } + } + + r=temp->row; + c=temp->col; + while(r-->0 && c-->0) + { + if(!tile[r][c]->piece) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + } + + else if(tile[r][c]->pieceColor==temp->pieceColor) + break; + + else if(tile[r][c]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + break; + } + } + + r=temp->row; + c=temp->col; + while(r++<7 && c++<7) + { + if(!tile[r][c]->piece) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + } + + else if(tile[r][c]->pieceColor==temp->pieceColor) + break; + + else if(tile[r][c]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + break; + } + } + + r=temp->row; + c=temp->col; + while(r++<7 && c-->0) + { + if(!tile[r][c]->piece) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + } + + else if(tile[r][c]->pieceColor==temp->pieceColor) + break; + + else if(tile[r][c]->pieceColor!=temp->pieceColor) + { + texp[max++]=tile[r][c]->tileNum; + retVal=1; + break; + } + } + + return retVal; +} + +int RetroChessWindow::check(Tile *temp) +{ + int r,c,flag; + retVal=0; + + return retVal; +} + +void RetroChessWindow::orange() +{ + int i,n; + + for(i=0;isetStyleSheet("QLabel {background-color: orange;}"); +} diff --git a/plugins/RetroChess/gui/chess.h b/plugins/RetroChess/gui/chess.h new file mode 100644 index 000000000..79e0289f4 --- /dev/null +++ b/plugins/RetroChess/gui/chess.h @@ -0,0 +1,57 @@ +#ifndef CHESS_H +#define CHESS_H + +//#include "tile.h" +#include "validation.h" +#include "qwidget.h" + +#include "retroshare/rspeers.h" + +class RetroChessWindow : public QWidget +{ + Q_OBJECT + + void accessories(); + void chessBoard(); + RsPeerId p1id; + RsPeerId p2id; + std::string p1name; + std::string p2name; +public: + std::string mPeerId; + explicit RetroChessWindow(std::string peerid, int player = 0, QWidget *parent = 0); + ~RetroChessWindow(); + int currentplayer; + int myid; + + //from global + + int wR,wC,bR,bC; + Tile *click1; + + Tile *tile[8][8]; + + int count,turn,max; + int *texp; + + + void disOrange(); + void validate_tile(int row, int col, int c); + + + int flag,retVal; + int chooser(Tile *temp); + int validateBishop(Tile *temp); + int validateQueen(Tile *temp); + int validateKing(Tile *temp); + int validateHorse(Tile *temp); + int validateRook(Tile *temp); + int validatePawn(Tile *temp); + void orange(); + int check(Tile *temp); +}; + + +QWidget* make_board(); + +#endif // CHESS_H diff --git a/plugins/RetroChess/gui/images/bishop_black.svg b/plugins/RetroChess/gui/images/bishop_black.svg new file mode 100644 index 000000000..7cceeb06a --- /dev/null +++ b/plugins/RetroChess/gui/images/bishop_black.svg @@ -0,0 +1,116 @@ + + + + + + + + image/svg+xml + + + + + + + + diff --git a/plugins/RetroChess/gui/images/bishop_white.svg b/plugins/RetroChess/gui/images/bishop_white.svg new file mode 100644 index 000000000..2c3bfbda3 --- /dev/null +++ b/plugins/RetroChess/gui/images/bishop_white.svg @@ -0,0 +1,124 @@ + + + + + + + + image/svg+xml + + + + + + + + diff --git a/plugins/RetroChess/gui/images/chess-icon-32.png b/plugins/RetroChess/gui/images/chess-icon-32.png new file mode 100644 index 0000000000000000000000000000000000000000..7a0790261017988da7a347403ad21908a27090bb GIT binary patch literal 1901 zcmV-z2a@=SP)f9A~n=idLG z^PTT}=fD3&_%9FqKY(vFfb!3Om}@jNi{H<$d!?ch*#8&+A0NcvU|jo7-kB z9of>@1Xl+J9v;Mk0HmkKR@iJ#8|98;q^+$DYwC>P;sOn0V-Wh~nqMCXe{Rj{4H?Ff zTiDom^W%3<%v^kA0A7Ci#ZR-d-+b=Ur3+-wo_#nmF$oL<*H{*w=AOT{PnnvTReH|B z;W04iE3o|XOGI^h@P+qJu^&DX04r8Jo|Tt(DDV39ayWUi04$bi?sg8fH@L|M?}c32 zp7Psm4o?0sJai4Nm+pb?KEq#fj?E=K5&%M>ASxqcM@@Ts7pbjnK)c<}-A<%-m7Bb= zPj-BL)P|qS-GYc-TZf(MI?$Wu^7GzfcRvaMNQZxLuzxGfoZs84<$Q4BTTQK*8hJVn zJ=TZv${i)l6LWKRw9JC~Ry&(e@)^_J%S`dK5#8`*al;q6# z_{2<4&&3YNFkA^BH7x~h{jGuY^=Z-F-3@fQ0gipbvUW5Wbe1c{nO#;><&)#aDIA?5 z2j9&n*$)L^&6*HFSlG&4(b19nw{PFENFWf?R$~YPgEVEx%F3i!-yrq%YV`G80-c>L zG(0!#Xti3PqvZ_PXM0Fj>u1>2snypsLtt4snfyioK|ukyYSr>ITH_o?M@N5|%mL+c z7l?|Cgpem!5+1{!2XOT0QBbK=q@<)AIX!5#-SZ6CY_r&{sfB=maG097L)sdTV|{HY zXpN9xR^|0lQ&TT{UjRu-ahs%4$zj@Np)#2azBG|Y3<7}woShvZDk=*6{R80q`9f%F zYJ^j#{scDL91IS2LThU?oIU#oIPm%_u*fq6EM_gVHywlensZ<@PD5dtx7x|s>($Ci zRqS&i%}+%0%uaGjEKb|6bgmF=ksX^c!YarW@ZMqZv74v7yp@@ zIPp82o}Pi|=unuMnI(@0%;LeEecODO0gz%>;^s_PKBxlqU_Q4!1D z!guo03jCGsKPb7{59$^z5s8E-kw_@*B5ubcG&u5j8~}z(p7i%?=N-(=&C$B+NN?{T za&vBQ>jMKs_~Yl@VS364#6C@|R+jD)EO6A7Rx+eRgQ)Zo!j?D(5Q^Oj@n=8X^2=>o zl!skiS z1l2b>h)!?9l$58yL*W9ucONCLu3o5ADygbR;mVcINkc;mvg|zuNJK;+mX_pFfO>fQ z?F)oYG`KcY3|5;RG=2QrEnWOqEB@M9df$D()6*Rz!h=)N(_(WY!j}aQ7SP$n9Rwl< zzW01K>Fyq*0a@U5LC*oiU>Ln8LJokRp9hwg9Rbs5KisG&A`CHM&j9JYrDk4l>o9#Z zq%+=sANc3-n72Z(Zru|*Q+Gt|UlFA6=yp@!Ks^c>{ySiLdkjz+XcjABD%J zxMi;;B`RO^a21LqG8gdl_96rccBs{$=~9D!*kY@1vYfu%Vt%uKz^Ho=zYl#LSn8`- zx;fr2CqCBeyD}*Iw^O+Yi3$Rf2-00000NkvXXu0mjf3;B`> literal 0 HcmV?d00001 diff --git a/plugins/RetroChess/gui/images/chess-icon.png b/plugins/RetroChess/gui/images/chess-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a2468977de45a2af99fb065407e8d983a3d3bb05 GIT binary patch literal 15208 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 UI+ybv1OJkeoSJOCw0Y?N0gFX^C;$Ke literal 0 HcmV?d00001 diff --git a/plugins/RetroChess/gui/images/chess-notify.png b/plugins/RetroChess/gui/images/chess-notify.png new file mode 100644 index 0000000000000000000000000000000000000000..2ed5d11af5af1ce77d0e6519a20378b2fef53666 GIT binary patch literal 4818 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 + + +image/svg+xml \ No newline at end of file diff --git a/plugins/RetroChess/gui/images/chess.png b/plugins/RetroChess/gui/images/chess.png new file mode 100644 index 0000000000000000000000000000000000000000..63c15ea76f35c8e51e3064152a4642d4c0a8f155 GIT binary patch literal 5442 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 s#b%#~)F}8+MAeu + + +image/svg+xml \ No newline at end of file diff --git a/plugins/RetroChess/gui/images/king_black.svg b/plugins/RetroChess/gui/images/king_black.svg new file mode 100644 index 000000000..6af78a1ac --- /dev/null +++ b/plugins/RetroChess/gui/images/king_black.svg @@ -0,0 +1,135 @@ + + + + + + + + image/svg+xml + + + + + + + + diff --git a/plugins/RetroChess/gui/images/king_white.svg b/plugins/RetroChess/gui/images/king_white.svg new file mode 100644 index 000000000..3bf6c2bdf --- /dev/null +++ b/plugins/RetroChess/gui/images/king_white.svg @@ -0,0 +1,143 @@ + + + + + + + + image/svg+xml + + + + + + + + diff --git a/plugins/RetroChess/gui/images/knight_black.svg b/plugins/RetroChess/gui/images/knight_black.svg new file mode 100644 index 000000000..ec8d31af1 --- /dev/null +++ b/plugins/RetroChess/gui/images/knight_black.svg @@ -0,0 +1,101 @@ + + + + + + + + image/svg+xml + + + + + + + + diff --git a/plugins/RetroChess/gui/images/knight_white.svg b/plugins/RetroChess/gui/images/knight_white.svg new file mode 100644 index 000000000..05700612a --- /dev/null +++ b/plugins/RetroChess/gui/images/knight_white.svg @@ -0,0 +1,123 @@ + + + + + + + + image/svg+xml + + + + + + + + diff --git a/plugins/RetroChess/gui/images/muted_self.svg b/plugins/RetroChess/gui/images/muted_self.svg new file mode 100644 index 000000000..0a31bdc1e --- /dev/null +++ b/plugins/RetroChess/gui/images/muted_self.svg @@ -0,0 +1,1999 @@ + + + + + muted_self + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + muted_self + + + + Martin Skilnand + + + + + Martin Skilnand + + + 2009.08.17 + + + Mumble team + + + Icon for voice chat program mumble + + + mumble muted self + + + git://mumble.git.sourceforge.net/gitroot/mumble + muted_self.svg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/RetroChess/gui/images/pawn_black.svg b/plugins/RetroChess/gui/images/pawn_black.svg new file mode 100644 index 000000000..5bcc2c783 --- /dev/null +++ b/plugins/RetroChess/gui/images/pawn_black.svg @@ -0,0 +1,76 @@ + + + + + + + + image/svg+xml + + + + + + + + diff --git a/plugins/RetroChess/gui/images/pawn_white.svg b/plugins/RetroChess/gui/images/pawn_white.svg new file mode 100644 index 000000000..35bfc8a6e --- /dev/null +++ b/plugins/RetroChess/gui/images/pawn_white.svg @@ -0,0 +1,92 @@ + + + + + + + + image/svg+xml + + + + + + + + diff --git a/plugins/RetroChess/gui/images/profile.png b/plugins/RetroChess/gui/images/profile.png new file mode 100644 index 0000000000000000000000000000000000000000..385482c542df44b0df0b9be28e25a4cd2305dea1 GIT binary patch literal 3821 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 + + + + + + + image/svg+xml + + + + + + + + diff --git a/plugins/RetroChess/gui/images/queen_white.svg b/plugins/RetroChess/gui/images/queen_white.svg new file mode 100644 index 000000000..9ed7066a6 --- /dev/null +++ b/plugins/RetroChess/gui/images/queen_white.svg @@ -0,0 +1,139 @@ + + + + + + + + image/svg+xml + + + + + + + + diff --git a/plugins/RetroChess/gui/images/retrochess.png b/plugins/RetroChess/gui/images/retrochess.png new file mode 100644 index 0000000000000000000000000000000000000000..c525231a32279ebca76ca4409cfaf4abf1894723 GIT binary patch literal 3939 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 + + + + + + + image/svg+xml + + + + + + + + diff --git a/plugins/RetroChess/gui/images/rook_white.svg b/plugins/RetroChess/gui/images/rook_white.svg new file mode 100644 index 000000000..a30485b4e --- /dev/null +++ b/plugins/RetroChess/gui/images/rook_white.svg @@ -0,0 +1,83 @@ + + + + + + + + image/svg+xml + + + + + + + + diff --git a/plugins/RetroChess/gui/tile.cpp b/plugins/RetroChess/gui/tile.cpp new file mode 100644 index 000000000..e2f698a00 --- /dev/null +++ b/plugins/RetroChess/gui/tile.cpp @@ -0,0 +1,157 @@ +#include "tile.h" +#include "validation.h" +#include "chess.h" +#include "../interface/rsRetroChess.h" + +validation *valid = new validation(); + +/*extern int count,turn; +extern QWidget *myWidget; +extern Tile *click1; +extern Tile *tile[8][8]; +*/ +void validate(Tile *temp,int c); +void disOrange(); + + +void Tile::mousePressEvent(QMouseEvent *event) +{ + validate(++((RetroChessWindow*)parentWidget())->count); + std::string peer_id = ((RetroChessWindow*)parentWidget())->mPeerId; + rsRetroChess->chess_click(peer_id, this->row,this->col,((RetroChessWindow*)parentWidget())->count); +} + +void Tile::display(char elem) +{ + this->pieceName=elem; + + if(this->pieceColor && this->piece) + { + switch(elem) + { + case 'P': this->setPixmap(QPixmap(":/images/pawn_white.svg")); + break; + case 'R': this->setPixmap(QPixmap(":/images/rook_white.svg")); + break; + case 'H': this->setPixmap(QPixmap(":/images/knight_white.svg")); + break; + case 'K': this->setPixmap(QPixmap(":/images/king_white.svg")); + break; + case 'Q': this->setPixmap(QPixmap(":/images/queen_white.svg")); + break; + case 'B': this->setPixmap(QPixmap(":/images/bishop_white.svg")); + break; + } + } + + else if(this->piece) + { + switch(elem) + { + case 'P': this->setPixmap(QPixmap(":/images/pawn_black.svg")); + break; + case 'R': this->setPixmap(QPixmap(":/images/rook_black.svg")); + break; + case 'H': this->setPixmap(QPixmap(":/images/knight_black.svg")); + break; + case 'K': this->setPixmap(QPixmap(":/images/king_black.svg")); + break; + case 'Q': this->setPixmap(QPixmap(":/images/queen_black.svg")); + break; + case 'B': this->setPixmap(QPixmap(":/images/bishop_black.svg")); + break; + } + } + else + this->clear(); +} + +void Tile::validate(int c) +{ + Tile *temp = this; + int retValue,i; + + if(c==1) + { + if(temp->piece && (temp->pieceColor==((RetroChessWindow*)parentWidget())->turn)) + { + //texp[max++]=temp->tileNum; + retValue=((RetroChessWindow*)parentWidget())->chooser(temp); + + if(retValue) + { + ((RetroChessWindow*)parentWidget())->click1= new Tile(); + temp->setStyleSheet("QLabel {background-color: green;}"); + ((RetroChessWindow*)parentWidget())->click1=temp; + } + else + { + //temp->setStyleSheet("QLabel {background-color: red;}"); + ((RetroChessWindow*)parentWidget())->count=0; + } + } + else + { + //qDebug()<<"Rascel, clicking anywhere"; + ((RetroChessWindow*)parentWidget())->count=0; + } + } + + else + { + + if(temp->tileNum==((RetroChessWindow*)parentWidget())->click1->tileNum) + { + ((RetroChessWindow*)parentWidget())->click1->tileDisplay(); + ((RetroChessWindow*)parentWidget())->disOrange(); + ((RetroChessWindow*)parentWidget())->max=0; + ((RetroChessWindow*)parentWidget())->count=0; + } + + for(i=0;i<((RetroChessWindow*)parentWidget())->max;i++) + { + if(temp->tileNum==((RetroChessWindow*)parentWidget())->texp[i]) + { + ((RetroChessWindow*)parentWidget())->click1->piece=0; + temp->piece=1; + + temp->pieceColor=((RetroChessWindow*)parentWidget())->click1->pieceColor; + temp->pieceName=((RetroChessWindow*)parentWidget())->click1->pieceName; + + ((RetroChessWindow*)parentWidget())->click1->display(((RetroChessWindow*)parentWidget())->click1->pieceName); + temp->display(((RetroChessWindow*)parentWidget())->click1->pieceName); + + ((RetroChessWindow*)parentWidget())->click1->tileDisplay(); + temp->tileDisplay(); + + retValue=((RetroChessWindow*)parentWidget())->check(((RetroChessWindow*)parentWidget())->click1); + /* + if(retValue) + { + tile[wR][wC]->setStyleSheet("QLabel {background-color: red;}"); + } + */ + + ((RetroChessWindow*)parentWidget())->disOrange(); + + ((RetroChessWindow*)parentWidget())->max=0; + + ((RetroChessWindow*)parentWidget())->turn=(((RetroChessWindow*)parentWidget())->turn+1)%2; + ((RetroChessWindow*)parentWidget())->count=0; + } + + else + ((RetroChessWindow*)parentWidget())->count=1; + } + } +} + +void Tile::tileDisplay() +{ + + if(this->tileColor) + this->setStyleSheet("QLabel {background-color: rgb(120, 120, 90);}:hover{background-color: rgb(170,85,127);}"); + else + this->setStyleSheet("QLabel {background-color: rgb(211, 211, 158);}:hover{background-color: rgb(170,95,127);}"); +} + diff --git a/plugins/RetroChess/gui/tile.h b/plugins/RetroChess/gui/tile.h new file mode 100644 index 000000000..59c008c4e --- /dev/null +++ b/plugins/RetroChess/gui/tile.h @@ -0,0 +1,27 @@ +#ifndef TILE_H +#define TILE_H +#include +#include + +class Tile: public QLabel +{ +public: + + //Fields + int tileColor,piece,pieceColor,row,col,tileNum; + char pieceName; + + //Constructors + Tile(QWidget* pParent=0, Qt::WindowFlags f=0) : QLabel(pParent, f) {}; + Tile(const QString& text, QWidget* pParent = 0, Qt::WindowFlags f = 0) : QLabel(text, pParent, f){}; + + //Methods + void mousePressEvent(QMouseEvent *event); + void display(char elem); + void tileDisplay(); + void validate(int c); +}; + +void validate_tile(int row, int col, int c); + +#endif // TILE_H diff --git a/plugins/RetroChess/gui/validation.cpp b/plugins/RetroChess/gui/validation.cpp new file mode 100644 index 000000000..9dfc332ed --- /dev/null +++ b/plugins/RetroChess/gui/validation.cpp @@ -0,0 +1,14 @@ +#include "validation.h" +#include +#include "string" +#include "chess.h" + + + +validation::validation() +{ + //Nothing here +// tile = ((RetroChessWindow*)parentWidget())->tile; + +} + diff --git a/plugins/RetroChess/gui/validation.h b/plugins/RetroChess/gui/validation.h new file mode 100644 index 000000000..9c49456d1 --- /dev/null +++ b/plugins/RetroChess/gui/validation.h @@ -0,0 +1,15 @@ +#ifndef VALIDATION_H +#define VALIDATION_H +#include "tile.h" + + +class validation +{ + + int *tile; + +public: + validation(); +}; + +#endif // VALIDATION_H diff --git a/plugins/RetroChess/interface/rsRetroChess.h b/plugins/RetroChess/interface/rsRetroChess.h new file mode 100644 index 000000000..63d1a8ccb --- /dev/null +++ b/plugins/RetroChess/interface/rsRetroChess.h @@ -0,0 +1,57 @@ +/* this is a simple class to make it easy for any part of the plugin to call its services */ +/**************************************************************** + * RetroShare is distributed under the following license: + * + * Copyright (C) 2015 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + ****************************************************************/ + +// interface class for p3RetroChess service +// + +#pragma once + +#include +#include +#include +#include +#include + +class RsRetroChess ; +extern RsRetroChess *rsRetroChess; + +static const uint32_t CONFIG_TYPE_RetroChess_PLUGIN = 0xe001 ; + +class RsRetroChess +{ + public: + + virtual void ping_all() = 0; + virtual void broadcast_paint(int x, int y) = 0; + virtual void msg_all(std::string msg) = 0; + virtual void chess_click(std::string peer_id, int col, int row, int count) = 0; + virtual void qvm_msg_peer(RsPeerId peerID, QVariantMap data) = 0; + virtual void str_msg_peer(RsPeerId peerID, QString strdata) = 0; + virtual void raw_msg_peer(RsPeerId peerID, std::string msg) = 0; + virtual bool hasInviteFrom(RsPeerId peerID) = 0; + virtual bool hasInviteTo(RsPeerId peerID) = 0; + virtual void acceptedInvite(RsPeerId peerID) = 0; + virtual void gotInvite(RsPeerId peerID) = 0; + virtual void sendInvite(RsPeerId peerID) = 0; +}; + + diff --git a/plugins/RetroChess/rename_plugin.sh b/plugins/RetroChess/rename_plugin.sh new file mode 100644 index 000000000..c63f6baab --- /dev/null +++ b/plugins/RetroChess/rename_plugin.sh @@ -0,0 +1,10 @@ +#!/bin/bash +newname=$1 +oldname="RetroChess" +echo "$newname" +echo "$oldname" +find . -not -path '*/\.*' -type f -print0 | xargs -0 sed -i "s/$oldname/$newname/g" +#find . -type f -exec rename "s/$oldname/$newname/' '{}" \; +find . | sed -e "p;s/$oldname/$newname/" | xargs -n2 git mv + +echo "now change 0xb00b5 in services/*items.h to a unique value of your choice to identify your plugin!" diff --git a/plugins/RetroChess/services/p3RetroChess.cc b/plugins/RetroChess/services/p3RetroChess.cc new file mode 100644 index 000000000..afff87ab2 --- /dev/null +++ b/plugins/RetroChess/services/p3RetroChess.cc @@ -0,0 +1,411 @@ +/**************************************************************** + * RetroShare is distributed under the following license: + * + * Copyright (C) 2015 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + ****************************************************************/ + +#include "util/rsdir.h" +#include "retroshare/rsiface.h" +#include "pqi/pqibin.h" +#include "pqi/pqistore.h" +#include "pqi/p3linkmgr.h" +#include +#include + +#include // for std::istringstream + +#include "services/p3RetroChess.h" +#include "services/rsRetroChessItems.h" + +#include + +#include "gui/RetroChessNotify.h" + + +//#define DEBUG_RetroChess 1 + + +/* DEFINE INTERFACE POINTER! */ +RsRetroChess *rsRetroChess = NULL; + + + +#ifdef WINDOWS_SYS +#include +#include +#endif + +static double getCurrentTS() +{ + +#ifndef WINDOWS_SYS + struct timeval cts_tmp; + gettimeofday(&cts_tmp, NULL); + double cts = (cts_tmp.tv_sec) + ((double) cts_tmp.tv_usec) / 1000000.0; +#else + struct _timeb timebuf; + _ftime( &timebuf); + double cts = (timebuf.time) + ((double) timebuf.millitm) / 1000.0; +#endif + return cts; +} + +static uint64_t convertTsTo64bits(double ts) +{ + uint32_t secs = (uint32_t) ts; + uint32_t usecs = (uint32_t) ((ts - (double) secs) * 1000000); + uint64_t bits = (((uint64_t) secs) << 32) + usecs; + return bits; +} + +static double convert64bitsToTs(uint64_t bits) +{ + uint32_t usecs = (uint32_t) (bits & 0xffffffff); + uint32_t secs = (uint32_t) ((bits >> 32) & 0xffffffff); + double ts = (secs) + ((double) usecs) / 1000000.0; + + return ts; +} + +p3RetroChess::p3RetroChess(RsPluginHandler *handler,RetroChessNotify *notifier) + : RsPQIService(RS_SERVICE_TYPE_RetroChess_PLUGIN,0,handler), mRetroChessMtx("p3RetroChess"), mServiceControl(handler->getServiceControl()) , mNotify(notifier) +{ + addSerialType(new RsRetroChessSerialiser()); + + + //plugin default configuration + +} +RsServiceInfo p3RetroChess::getServiceInfo() +{ + const std::string TURTLE_APP_NAME = "RetroChess"; + const uint16_t TURTLE_APP_MAJOR_VERSION = 1; + const uint16_t TURTLE_APP_MINOR_VERSION = 0; + const uint16_t TURTLE_MIN_MAJOR_VERSION = 1; + const uint16_t TURTLE_MIN_MINOR_VERSION = 0; + + return RsServiceInfo(RS_SERVICE_TYPE_RetroChess_PLUGIN, + TURTLE_APP_NAME, + TURTLE_APP_MAJOR_VERSION, + TURTLE_APP_MINOR_VERSION, + TURTLE_MIN_MAJOR_VERSION, + TURTLE_MIN_MINOR_VERSION); +} + +int p3RetroChess::tick() +{ +#ifdef DEBUG_RetroChess + std::cerr << "ticking p3RetroChess" << std::endl; +#endif + + //processIncoming(); + //sendPackets(); + + return 0; +} + +int p3RetroChess::status() +{ + return 1; +} +#include +void p3RetroChess::str_msg_peer(RsPeerId peerID, QString strdata){ + QVariantMap map; + map.insert("type", "chat"); + map.insert("message", strdata); + + qvm_msg_peer(peerID,map); +} + +void p3RetroChess::qvm_msg_peer(RsPeerId peerID, QVariantMap data){ + QJsonDocument jsondoc = QJsonDocument::fromVariant(data); + std::string msg = jsondoc.toJson().toStdString(); + raw_msg_peer(peerID, msg); +} + +void p3RetroChess::chess_click(std::string peer_id, int col, int row, int count) +{ + QVariantMap map; + map.insert("type", "chessclick"); + map.insert("col", col); + map.insert("row", row); + map.insert("count", count); + + RsPeerId peerID = RsPeerId(peer_id); + qvm_msg_peer(peerID,map); + +} + +bool p3RetroChess::hasInviteFrom(RsPeerId peerID) +{ + return invitesFrom.find(peerID)!=invitesFrom.end(); +} +bool p3RetroChess::hasInviteTo(RsPeerId peerID) +{ + return invitesTo.find(peerID)!=invitesTo.end(); +} + +void p3RetroChess::acceptedInvite(RsPeerId peerID) +{ + std::set::iterator it =invitesTo.find(peerID); + if (it != invitesTo.end()){ + invitesTo.erase(it); + } + + it =invitesFrom.find(peerID); + if (it != invitesFrom.end()){ + invitesFrom.erase(it); + } + raw_msg_peer(peerID, "{\"type\":\"chess_accept\"}"); +} + +void p3RetroChess::gotInvite(RsPeerId peerID) +{ + + std::set::iterator it =invitesFrom.find(peerID); + if (it == invitesFrom.end()){ + invitesFrom.insert(peerID); + } +} +void p3RetroChess::sendInvite(RsPeerId peerID) +{ + + std::set::iterator it =invitesTo.find(peerID); + if (it == invitesTo.end()){ + invitesTo.insert(peerID); + } + raw_msg_peer(peerID, "{\"type\":\"chess_invite\"}"); +} + +/*void p3RetroChess::set_peer(RsPeerId peer) +{ + mPeerID = peer; +}*/ +void p3RetroChess::raw_msg_peer(RsPeerId peerID, std::string msg){ + std::cout << "MSging: " << peerID.toStdString() << "\n"; + std::cout << "MSging: " << msg << "\n"; + /* create the packet */ + RsRetroChessDataItem *pingPkt = new RsRetroChessDataItem(); + pingPkt->PeerId(peerID); + pingPkt->m_msg = msg; + pingPkt->data_size = msg.size(); + //pingPkt->mSeqNo = mCounter; + //pingPkt->mPingTS = convertTsTo64bits(ts); + + //storePingAttempt(*it, ts, mCounter); + +#ifdef DEBUG_RetroChess + std::cerr << "p3RetroChess::msg_all() With Packet:"; + std::cerr << std::endl; + pingPkt->print(std::cerr, 10); +#endif + + sendItem(pingPkt); +} + +void p3RetroChess::msg_all(std::string msg){ + /* we ping our peers */ + //if(!mServiceControl) + // return ; + + //std::set onlineIds; + std::list< RsPeerId > onlineIds; + // mServiceControl->getPeersConnected(getServiceInfo().mServiceType, onlineIds); + rsPeers->getOnlineList(onlineIds); + + double ts = getCurrentTS(); + +#ifdef DEBUG_RetroChess + std::cerr << "p3RetroChess::msg_all() @ts: " << ts; + std::cerr << std::endl; +#endif + + std::cout << "READY TO BCast: " << onlineIds.size() << "\n"; + /* prepare packets */ + std::list::iterator it; + for(it = onlineIds.begin(); it != onlineIds.end(); it++) + { + str_msg_peer(RsPeerId(*it),QString::fromStdString(msg)); + } +} + +void p3RetroChess::ping_all(){ + //TODO ping all! +} + +void p3RetroChess::broadcast_paint(int x, int y) +{ + std::list< RsPeerId > onlineIds; + // mServiceControl->getPeersConnected(getServiceInfo().mServiceType, onlineIds); + rsPeers->getOnlineList(onlineIds); + + double ts = getCurrentTS(); + + + std::cout << "READY TO PAINT: " << onlineIds.size() << "\n"; + /* prepare packets */ + std::list::iterator it; + for(it = onlineIds.begin(); it != onlineIds.end(); it++) + { + + std::cout << "painting to: " << (*it).toStdString() << "\n"; + QVariantMap map; + map.insert("type", "paint"); + map.insert("x", x); + map.insert("y", y); + + qvm_msg_peer(RsPeerId(*it),map); + /* create the packet */ + //TODO send paint packets + } +} + +//TODO mNotify->notifyReceivedPaint(item->PeerId(), item->x,item->y); + + + +void p3RetroChess::handleData(RsRetroChessDataItem *item) +{ + RsStackMutex stack(mRetroChessMtx); /****** LOCKED MUTEX *******/ + + // store the data in a queue. + + + mNotify->notifyReceivedMsg(item->PeerId(), QString::fromStdString(item->m_msg)); +} + +bool p3RetroChess::recvItem(RsItem *item) +{ + std::cout << "recvItem type: " << item->PacketSubType() << "\n"; + /* pass to specific handler */ + bool keep = false ; + + switch(item->PacketSubType()) + { + case RS_PKT_SUBTYPE_RetroChess_DATA: + handleData(dynamic_cast(item)); + keep = true ; + break; + /*case RS_PKT_SUBTYPE_RetroChess_INVITE: + if (invites.find(item->PeerId()!=invites.end())){ + invites.insert(item->PeerId()); + } + mNotify-> + + //keep = true ; + break;*/ + + default: + break; + } + + /* clean up */ + if(!keep) + delete item; + return true ; +} + + + +RsTlvKeyValue p3RetroChess::push_int_value(const std::string& key,int value) +{ + RsTlvKeyValue kv ; + kv.key = key ; + rs_sprintf(kv.value, "%d", value); + + return kv ; +} +int p3RetroChess::pop_int_value(const std::string& s) +{ + std::istringstream is(s) ; + + int val ; + is >> val ; + + return val ; +} + +bool p3RetroChess::saveList(bool& cleanup, std::list& lst) +{ + cleanup = true ; + + RsConfigKeyValueSet *vitem = new RsConfigKeyValueSet ; + + /*vitem->tlvkvs.pairs.push_back(push_int_value("P3RetroChess_CONFIG_ATRANSMIT",_atransmit)) ; + vitem->tlvkvs.pairs.push_back(push_int_value("P3RetroChess_CONFIG_VOICEHOLD",_voice_hold)) ; + vitem->tlvkvs.pairs.push_back(push_int_value("P3RetroChess_CONFIG_VADMIN" ,_vadmin)) ; + vitem->tlvkvs.pairs.push_back(push_int_value("P3RetroChess_CONFIG_VADMAX" ,_vadmax)) ; + vitem->tlvkvs.pairs.push_back(push_int_value("P3RetroChess_CONFIG_NOISE_SUP",_noise_suppress)) ; + vitem->tlvkvs.pairs.push_back(push_int_value("P3RetroChess_CONFIG_MIN_LOUDN",_min_loudness)) ; + vitem->tlvkvs.pairs.push_back(push_int_value("P3RetroChess_CONFIG_ECHO_CNCL",_echo_cancel)) ;*/ + + lst.push_back(vitem) ; + + return true ; +} +bool p3RetroChess::loadList(std::list& load) +{ + for(std::list::const_iterator it(load.begin());it!=load.end();++it) + { +#ifdef P3TURTLE_DEBUG + assert(item!=NULL) ; +#endif + RsConfigKeyValueSet *vitem = dynamic_cast(*it) ; + /* + if(vitem != NULL) + for(std::list::const_iterator kit = vitem->tlvkvs.pairs.begin(); kit != vitem->tlvkvs.pairs.end(); ++kit) + if(kit->key == "P3RetroChess_CONFIG_ATRANSMIT") + _atransmit = pop_int_value(kit->value) ; + else if(kit->key == "P3RetroChess_CONFIG_VOICEHOLD") + _voice_hold = pop_int_value(kit->value) ; + else if(kit->key == "P3RetroChess_CONFIG_VADMIN") + _vadmin = pop_int_value(kit->value) ; + else if(kit->key == "P3RetroChess_CONFIG_VADMAX") + _vadmax = pop_int_value(kit->value) ; + else if(kit->key == "P3RetroChess_CONFIG_NOISE_SUP") + _noise_suppress = pop_int_value(kit->value) ; + else if(kit->key == "P3RetroChess_CONFIG_MIN_LOUDN") + _min_loudness = pop_int_value(kit->value) ; + else if(kit->key == "P3RetroChess_CONFIG_ECHO_CNCL") + _echo_cancel = pop_int_value(kit->value) ; + + delete vitem ; + */ + } + + return true ; +} + +RsSerialiser *p3RetroChess::setupSerialiser() +{ + RsSerialiser *rsSerialiser = new RsSerialiser(); + rsSerialiser->addSerialType(new RsRetroChessSerialiser()); + rsSerialiser->addSerialType(new RsGeneralConfigSerialiser()); + + return rsSerialiser ; +} + + + + + + + + + + diff --git a/plugins/RetroChess/services/p3RetroChess.h b/plugins/RetroChess/services/p3RetroChess.h new file mode 100644 index 000000000..b86b87dd7 --- /dev/null +++ b/plugins/RetroChess/services/p3RetroChess.h @@ -0,0 +1,120 @@ +/* this handles the networking service of this plugin */ +/**************************************************************** + * RetroShare is distributed under the following license: + * + * Copyright (C) 2015 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + ****************************************************************/ + +#pragma once + +#include +#include +#include + +#include "services/rsRetroChessItems.h" +#include "services/p3service.h" +#include "serialiser/rstlvbase.h" +#include "rsitems/rsconfigitems.h" +#include "plugins/rspqiservice.h" +#include + +class p3LinkMgr; +class RetroChessNotify ; + + + +//!The RS VoIP Test service. + /** + * + * This is only used to test Latency for the moment. + */ + +class p3RetroChess: public RsPQIService, public RsRetroChess +// Maybe we inherit from these later - but not needed for now. +//, public p3Config, public pqiMonitor +{ + public: + p3RetroChess(RsPluginHandler *cm,RetroChessNotify *); + + /***** overloaded from rsRetroChess *****/ + + + /***** overloaded from p3Service *****/ + /*! + * This retrieves all chat msg items and also (important!) + * processes chat-status items that are in service item queue. chat msg item requests are also processed and not returned + * (important! also) notifications sent to notify base on receipt avatar, immediate status and custom status + * : notifyCustomState, notifyChatStatus, notifyPeerHasNewAvatar + * @see NotifyBase + */ + virtual int tick(); + virtual int status(); + virtual bool recvItem(RsItem *item); + + /*************** pqiMonitor callback ***********************/ + //virtual void statusChange(const std::list &plist); + + + /************* from p3Config *******************/ + virtual RsSerialiser *setupSerialiser() ; + + /*! + * chat msg items and custom status are saved + */ + virtual bool saveList(bool& cleanup, std::list&) ; + virtual bool loadList(std::list& load) ; + virtual std::string configurationFileName() const { return "RetroChess.cfg" ; } + + virtual RsServiceInfo getServiceInfo() ; + + void ping_all(); + + void broadcast_paint(int x, int y); + void msg_all(std::string msg); + void str_msg_peer(RsPeerId peerID, QString strdata); + void raw_msg_peer(RsPeerId peerID, std::string msg); + void qvm_msg_peer(RsPeerId peerID, QVariantMap data); + + void chess_click(std::string peer_id, int col, int row, int count); + //void set_peer(RsPeerId peer); + + bool hasInviteFrom(RsPeerId peerID); + bool hasInviteTo(RsPeerId peerID); + void gotInvite(RsPeerId peerID); + void acceptedInvite(RsPeerId peerID); + void sendInvite(RsPeerId peerID); +private: + + + std::set invitesTo; + std::set invitesFrom; + void handleData(RsRetroChessDataItem*) ; + + RsMutex mRetroChessMtx; + + //RsPeerId mPeerID; + + + static RsTlvKeyValue push_int_value(const std::string& key,int value) ; + static int pop_int_value(const std::string& s) ; + + + RsServiceControl *mServiceControl; + RetroChessNotify *mNotify ; + +}; diff --git a/plugins/RetroChess/services/rsRetroChessItems.cc b/plugins/RetroChess/services/rsRetroChessItems.cc new file mode 100644 index 000000000..9a9a6327e --- /dev/null +++ b/plugins/RetroChess/services/rsRetroChessItems.cc @@ -0,0 +1,175 @@ +/**************************************************************** + * RetroShare is distributed under the following license: + * + * Copyright (C) 2015 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + ****************************************************************/ + +#include +#include "serialiser/rsbaseserial.h" +#include "serialiser/rstlvbase.h" + +#include "services/rsRetroChessItems.h" + +/*** +#define RSSERIAL_DEBUG 1 +***/ + +#include + +#define HOLLERITH_LEN_SPEC 4 +/*************************************************************************/ + +std::ostream& RsRetroChessDataItem::print(std::ostream &out, uint16_t indent) +{ + printRsItemBase(out, "RsRetroChessDataItem", indent); + uint16_t int_Indent = indent + 2; + printIndent(out, int_Indent); + out << "flags: " << flags << std::endl; + + printIndent(out, int_Indent); + out << "data size: " << std::hex << data_size << std::dec << std::endl; + + printRsItemEnd(out, "RsRetroChessDataItem", indent); + return out; +} + +/*************************************************************************/ +uint32_t RsRetroChessDataItem::serial_size() const +{ + uint32_t s = 8; /* header */ + s += 4; /* flags */ + s += 4; /* data_size */ + //s += m_msg.length()+HOLLERITH_LEN_SPEC; /* data */ + s += getRawStringSize(m_msg); + + return s; +} + +/* serialise the data to the buffer */ +bool RsRetroChessDataItem::serialise(void *data, uint32_t& pktsize) +{ + uint32_t tlvsize = serial_size() ; + uint32_t offset = 0; + + if (pktsize < tlvsize) + return false; /* not enough space */ + + pktsize = tlvsize; + + bool ok = true; + + ok &= setRsItemHeader(data, tlvsize, PacketId(), tlvsize); + +#ifdef RSSERIAL_DEBUG + std::cerr << "RsRetroChessSerialiser::serialiseRetroChessDataItem() Header: " << ok << std::endl; + std::cerr << "RsRetroChessSerialiser::serialiseRetroChessDataItem() Size: " << tlvsize << std::endl; +#endif + + /* skip the header */ + offset += 8; + + /* add mandatory parts first */ + ok &= setRawUInt32(data, tlvsize, &offset, flags); + ok &= setRawUInt32(data, tlvsize, &offset, data_size); + + + ok &= setRawString(data, tlvsize, &offset, m_msg ); + std::cout << "string sizes: " << getRawStringSize(m_msg) << " OR " << m_msg.size() << "\n"; + + if (offset != tlvsize) + { + ok = false; + std::cerr << "RsRetroChessSerialiser::serialiseRetroChessPingItem() Size Error! " << std::endl; + std::cerr << "expected " << tlvsize << " got " << offset << std::endl; + std::cerr << "m_msg looks like " << m_msg << std::endl; + } + + return ok; +} +/* serialise the data to the buffer */ + +/*************************************************************************/ +/*************************************************************************/ + +RsRetroChessDataItem::RsRetroChessDataItem(void *data, uint32_t pktsize) + : RsRetroChessItem(RS_PKT_SUBTYPE_RetroChess_DATA) +{ + /* get the type and size */ + uint32_t rstype = getRsItemId(data); + uint32_t rssize = getRsItemSize(data); + + uint32_t offset = 0; + + if ((RS_PKT_VERSION_SERVICE != getRsItemVersion(rstype)) || (RS_SERVICE_TYPE_RetroChess_PLUGIN != getRsItemService(rstype)) || (RS_PKT_SUBTYPE_RetroChess_DATA != getRsItemSubType(rstype))) + throw std::runtime_error("Wrong packet subtype") ; + + if (pktsize < rssize) /* check size */ + throw std::runtime_error("Not enough space") ; + + bool ok = true; + + /* skip the header */ + offset += 8; + + /* get mandatory parts first */ + ok &= getRawUInt32(data, rssize, &offset, &flags); + ok &= getRawUInt32(data, rssize, &offset, &data_size); + + + ok &= getRawString(data, rssize, &offset, m_msg ); + + if (offset != rssize) + throw std::runtime_error("Serialization error.") ; + + if (!ok) + throw std::runtime_error("Serialization error.") ; +} +/*************************************************************************/ + +RsItem* RsRetroChessSerialiser::deserialise(void *data, uint32_t *pktsize) +{ +#ifdef RSSERIAL_DEBUG + std::cerr << "RsRetroChessSerialiser::deserialise()" << std::endl; +#endif + + /* get the type and size */ + uint32_t rstype = getRsItemId(data); + + if ((RS_PKT_VERSION_SERVICE != getRsItemVersion(rstype)) || (RS_SERVICE_TYPE_RetroChess_PLUGIN != getRsItemService(rstype))) + return NULL ; + + try + { + switch(getRsItemSubType(rstype)) + { + case RS_PKT_SUBTYPE_RetroChess_DATA: return new RsRetroChessDataItem(data, *pktsize); + + default: + return NULL; + } + } + catch(std::exception& e) + { + std::cerr << "RsRetroChessSerialiser: deserialization error: " << e.what() << std::endl; + return NULL; + } +} + + +/*************************************************************************/ + diff --git a/plugins/RetroChess/services/rsRetroChessItems.h b/plugins/RetroChess/services/rsRetroChessItems.h new file mode 100644 index 000000000..b07ca5b7b --- /dev/null +++ b/plugins/RetroChess/services/rsRetroChessItems.h @@ -0,0 +1,125 @@ +/* this describes the datatypes sent over the network, and how to (de)serialise them */ +/**************************************************************** + * RetroShare is distributed under the following license: + * + * Copyright (C) 2015 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + ****************************************************************/ + +#pragma once + +/* + * libretroshare/src/serialiser: rsRetroChessItems.h + * + * RetroShare Serialiser. + * + * Copyright 2011 by Robert Fernie. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License Version 2 as published by the Free Software Foundation. + * + * This library 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA. + * + * Please report all bugs and problems to "retroshare@lunamutt.com". + * + */ + +#include + +#include "rsitems/rsserviceids.h" +#include "serialiser/rsserial.h" +#include "rsitems/rsitem.h" + + +/**************************************************************************/ + +const uint16_t RS_SERVICE_TYPE_RetroChess_PLUGIN = 0xc4e55; + +const uint8_t RS_PKT_SUBTYPE_RetroChess_DATA = 0x01; + +const uint8_t QOS_PRIORITY_RS_RetroChess = 9 ; + + +class RsRetroChessItem: public RsItem +{ + public: + RsRetroChessItem(uint8_t RetroChess_subtype) + : RsItem(RS_PKT_VERSION_SERVICE,RS_SERVICE_TYPE_RetroChess_PLUGIN,RetroChess_subtype) + { + setPriorityLevel(QOS_PRIORITY_RS_RetroChess) ; + } + + virtual ~RsRetroChessItem() {}; + virtual void clear() {}; + virtual std::ostream& print(std::ostream &out, uint16_t indent = 0) = 0 ; + + virtual bool serialise(void *data,uint32_t& size) = 0 ; // Isn't it better that items can serialise themselves ? + virtual uint32_t serial_size() const = 0 ; // deserialise is handled using a constructor +}; + + +class RsRetroChessDataItem: public RsRetroChessItem +{ + public: + RsRetroChessDataItem() :RsRetroChessItem(RS_PKT_SUBTYPE_RetroChess_DATA) {} + RsRetroChessDataItem(void *data,uint32_t size) ; // de-serialization + + virtual bool serialise(void *data,uint32_t& size) ; + virtual uint32_t serial_size() const ; + + virtual ~RsRetroChessDataItem() + { + } + virtual std::ostream& print(std::ostream &out, uint16_t indent = 0); + + uint32_t flags ; + uint32_t data_size ; + std::string m_msg; +}; + + +class RsRetroChessSerialiser: public RsSerialType +{ + public: + RsRetroChessSerialiser() + :RsSerialType(RS_PKT_VERSION_SERVICE, RS_SERVICE_TYPE_RetroChess_PLUGIN) + { + } + virtual ~RsRetroChessSerialiser() {} + + virtual uint32_t size (RsItem *item) + { + return dynamic_cast(item)->serial_size() ; + } + + virtual bool serialise (RsItem *item, void *data, uint32_t *size) + { + return dynamic_cast(item)->serialise(data,*size) ; + } + virtual RsItem *deserialise(void *data, uint32_t *size); +}; + +/**************************************************************************/ From 4ce557ba89b12d0f33b93108a46e3e268913b12a Mon Sep 17 00:00:00 2001 From: defnax Date: Mon, 21 Oct 2019 21:58:09 +0200 Subject: [PATCH 03/15] removed unwanted plugin from master --- plugins/RetroChess/README.txt | 18 - plugins/RetroChess/RetroChess.pro | 70 - plugins/RetroChess/RetroChessPlugin.cpp | 200 -- plugins/RetroChess/RetroChessPlugin.h | 76 - plugins/RetroChess/cptest | 3 - plugins/RetroChess/gui/NEMainpage.cpp | 225 -- plugins/RetroChess/gui/NEMainpage.h | 52 - plugins/RetroChess/gui/NEMainpage.ui | 268 --- .../gui/RetroChessChatWidgetHolder.cpp | 147 -- .../gui/RetroChessChatWidgetHolder.h | 35 - plugins/RetroChess/gui/RetroChessNotify.cpp | 33 - plugins/RetroChess/gui/RetroChessNotify.h | 54 - plugins/RetroChess/gui/RetroChess_images.qrc | 21 - plugins/RetroChess/gui/chess.cpp | 873 ------- plugins/RetroChess/gui/chess.h | 57 - .../RetroChess/gui/images/bishop_black.svg | 116 - .../RetroChess/gui/images/bishop_white.svg | 124 - .../RetroChess/gui/images/chess-icon-32.png | Bin 1901 -> 0 bytes plugins/RetroChess/gui/images/chess-icon.png | Bin 15208 -> 0 bytes .../RetroChess/gui/images/chess-notify.png | Bin 4818 -> 0 bytes .../RetroChess/gui/images/chess-notify.svg | 56 - plugins/RetroChess/gui/images/chess.png | Bin 5442 -> 0 bytes plugins/RetroChess/gui/images/chess.svg | 56 - plugins/RetroChess/gui/images/king_black.svg | 135 -- plugins/RetroChess/gui/images/king_white.svg | 143 -- .../RetroChess/gui/images/knight_black.svg | 101 - .../RetroChess/gui/images/knight_white.svg | 123 - plugins/RetroChess/gui/images/muted_self.svg | 1999 ----------------- plugins/RetroChess/gui/images/pawn_black.svg | 76 - plugins/RetroChess/gui/images/pawn_white.svg | 92 - plugins/RetroChess/gui/images/profile.png | Bin 3821 -> 0 bytes plugins/RetroChess/gui/images/queen_black.svg | 141 -- plugins/RetroChess/gui/images/queen_white.svg | 139 -- plugins/RetroChess/gui/images/retrochess.png | Bin 3939 -> 0 bytes plugins/RetroChess/gui/images/rook_black.svg | 73 - plugins/RetroChess/gui/images/rook_white.svg | 83 - plugins/RetroChess/gui/tile.cpp | 157 -- plugins/RetroChess/gui/tile.h | 27 - plugins/RetroChess/gui/validation.cpp | 14 - plugins/RetroChess/gui/validation.h | 15 - plugins/RetroChess/interface/rsRetroChess.h | 57 - plugins/RetroChess/rename_plugin.sh | 10 - plugins/RetroChess/services/p3RetroChess.cc | 411 ---- plugins/RetroChess/services/p3RetroChess.h | 120 - .../RetroChess/services/rsRetroChessItems.cc | 175 -- .../RetroChess/services/rsRetroChessItems.h | 125 -- 46 files changed, 6700 deletions(-) delete mode 100644 plugins/RetroChess/README.txt delete mode 100644 plugins/RetroChess/RetroChess.pro delete mode 100644 plugins/RetroChess/RetroChessPlugin.cpp delete mode 100644 plugins/RetroChess/RetroChessPlugin.h delete mode 100644 plugins/RetroChess/cptest delete mode 100644 plugins/RetroChess/gui/NEMainpage.cpp delete mode 100644 plugins/RetroChess/gui/NEMainpage.h delete mode 100644 plugins/RetroChess/gui/NEMainpage.ui delete mode 100644 plugins/RetroChess/gui/RetroChessChatWidgetHolder.cpp delete mode 100644 plugins/RetroChess/gui/RetroChessChatWidgetHolder.h delete mode 100644 plugins/RetroChess/gui/RetroChessNotify.cpp delete mode 100644 plugins/RetroChess/gui/RetroChessNotify.h delete mode 100644 plugins/RetroChess/gui/RetroChess_images.qrc delete mode 100644 plugins/RetroChess/gui/chess.cpp delete mode 100644 plugins/RetroChess/gui/chess.h delete mode 100644 plugins/RetroChess/gui/images/bishop_black.svg delete mode 100644 plugins/RetroChess/gui/images/bishop_white.svg delete mode 100644 plugins/RetroChess/gui/images/chess-icon-32.png delete mode 100644 plugins/RetroChess/gui/images/chess-icon.png delete mode 100644 plugins/RetroChess/gui/images/chess-notify.png delete mode 100644 plugins/RetroChess/gui/images/chess-notify.svg delete mode 100644 plugins/RetroChess/gui/images/chess.png delete mode 100644 plugins/RetroChess/gui/images/chess.svg delete mode 100644 plugins/RetroChess/gui/images/king_black.svg delete mode 100644 plugins/RetroChess/gui/images/king_white.svg delete mode 100644 plugins/RetroChess/gui/images/knight_black.svg delete mode 100644 plugins/RetroChess/gui/images/knight_white.svg delete mode 100644 plugins/RetroChess/gui/images/muted_self.svg delete mode 100644 plugins/RetroChess/gui/images/pawn_black.svg delete mode 100644 plugins/RetroChess/gui/images/pawn_white.svg delete mode 100644 plugins/RetroChess/gui/images/profile.png delete mode 100644 plugins/RetroChess/gui/images/queen_black.svg delete mode 100644 plugins/RetroChess/gui/images/queen_white.svg delete mode 100644 plugins/RetroChess/gui/images/retrochess.png delete mode 100644 plugins/RetroChess/gui/images/rook_black.svg delete mode 100644 plugins/RetroChess/gui/images/rook_white.svg delete mode 100644 plugins/RetroChess/gui/tile.cpp delete mode 100644 plugins/RetroChess/gui/tile.h delete mode 100644 plugins/RetroChess/gui/validation.cpp delete mode 100644 plugins/RetroChess/gui/validation.h delete mode 100644 plugins/RetroChess/interface/rsRetroChess.h delete mode 100644 plugins/RetroChess/rename_plugin.sh delete mode 100644 plugins/RetroChess/services/p3RetroChess.cc delete mode 100644 plugins/RetroChess/services/p3RetroChess.h delete mode 100644 plugins/RetroChess/services/rsRetroChessItems.cc delete mode 100644 plugins/RetroChess/services/rsRetroChessItems.h diff --git a/plugins/RetroChess/README.txt b/plugins/RetroChess/README.txt deleted file mode 100644 index ee1f2ed60..000000000 --- a/plugins/RetroChess/README.txt +++ /dev/null @@ -1,18 +0,0 @@ -RS .6 Chess Plugin -================== - -Both players must currently select each other and press "play game" - ensure your friend has their chess window open before making a move! - - -this is a combination of an existing chess game, and the exampleplugin (rename script makes it easy to use as base for new plugin) -https://github.com/RetroShare/ExampleRSPlugin - - ---disclaimer-- -may not support playing more than one game of chess -may crash RS -may kill your cat, dog, or other loved one. - - ---extra info-- -based on: https://github.com/chozabu/CHESS-in-Qt diff --git a/plugins/RetroChess/RetroChess.pro b/plugins/RetroChess/RetroChess.pro deleted file mode 100644 index bc314edc3..000000000 --- a/plugins/RetroChess/RetroChess.pro +++ /dev/null @@ -1,70 +0,0 @@ -!include("../Common/retroshare_plugin.pri"): error("Could not include file ../Common/retroshare_plugin.pri") - -greaterThan(QT_MAJOR_VERSION, 4) { - # Qt 5 - QT += widgets -} - -exists($$[QMAKE_MKSPECS]/features/mobility.prf) { - CONFIG += mobility -} else { - QT += multimedia -} -CONFIG += qt uic qrc resources -MOBILITY = multimedia - -DEPENDPATH += ../../retroshare-gui/src/temp/ui ../../libretroshare/src -INCLUDEPATH += ../../retroshare-gui/src/temp/ui ../../libretroshare/src -INCLUDEPATH += ../../retroshare-gui/src/retroshare-gui - -INCLUDEPATH += ../../rapidjson-1.1.0 - -#################################### Windows ##################################### - -linux-* { - #INCLUDEPATH += /usr/include - #LIBS += $$system(pkg-config --libs opencv) -} - -win32 { - LIBS_DIR = $$PWD/../../../libs - #LIBS += -L"$$LIBS_DIR/lib/opencv" - - #OPENCV_VERSION = 249 - #LIBS += -lopencv_core$$OPENCV_VERSION -lopencv_highgui$$OPENCV_VERSION -lopencv_imgproc$$OPENCV_VERSION -llibjpeg -llibtiff -llibpng -llibjasper -lIlmImf -lole32 -loleaut32 -luuid -lavicap32 -lavifil32 -lvfw32 -lz -} - -QMAKE_CXXFLAGS *= -Wall - -SOURCES = RetroChessPlugin.cpp \ - services/p3RetroChess.cc \ - services/rsRetroChessItems.cc \ - gui/NEMainpage.cpp \ - gui/RetroChessNotify.cpp \ - gui/chess.cpp \ - gui/tile.cpp \ - gui/validation.cpp \ - gui/RetroChessChatWidgetHolder.cpp - -HEADERS = RetroChessPlugin.h \ - services/p3RetroChess.h \ - services/rsRetroChessItems.h \ - interface/rsRetroChess.h \ - gui/NEMainpage.h \ - gui/RetroChessNotify.h \ - gui/tile.h \ - gui/validation.h \ - gui/chess.h \ - gui/RetroChessChatWidgetHolder.h - -#FORMS = gui/AudioInputConfig.ui - -TARGET = RetroChess - -RESOURCES = gui/RetroChess_images.qrc - - -#LIBS += -lspeex -lspeexdsp - -FORMS += \ - gui/NEMainpage.ui diff --git a/plugins/RetroChess/RetroChessPlugin.cpp b/plugins/RetroChess/RetroChessPlugin.cpp deleted file mode 100644 index 844059d77..000000000 --- a/plugins/RetroChess/RetroChessPlugin.cpp +++ /dev/null @@ -1,200 +0,0 @@ -/**************************************************************** - * RetroShare is distributed under the following license: - * - * Copyright (C) 2015 - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - ****************************************************************/ -#include -#include -#include -#include -#include -#include -#include -#include -#include "gui/chat/ChatWidget.h" - -#include "RetroChessPlugin.h" -#include "interface/rsRetroChess.h" -#include "gui/NEMainpage.h" -#include "gui/RetroChessNotify.h" -#include "gui/RetroChessChatWidgetHolder.h" - - -#define IMAGE_RetroChess ":/images/chess.png" - -static void *inited = new RetroChessPlugin() ; - -extern "C" { - - // This is *the* functions required by RS plugin system to give RS access to the plugin. - // Be careful to: - // - always respect the C linkage convention - // - always return an object of type RsPlugin* - // - void *RETROSHARE_PLUGIN_provide() - { - static RetroChessPlugin *p = new RetroChessPlugin() ; - - return (void*)p ; - } - - // This symbol contains the svn revision number grabbed from the executable. - // It will be tested by RS to load the plugin automatically, since it is safe to load plugins - // with same revision numbers, assuming that the revision numbers are up-to-date. - // - uint32_t RETROSHARE_PLUGIN_revision = abs(atoi(RS_EXTRA_VERSION)) ; - - // This symbol contains the svn revision number grabbed from the executable. - // It will be tested by RS to load the plugin automatically, since it is safe to load plugins - // with same revision numbers, assuming that the revision numbers are up-to-date. - // - uint32_t RETROSHARE_PLUGIN_api = RS_PLUGIN_API_VERSION ; -} - -void RetroChessPlugin::getPluginVersion(int& major, int& minor, int& build, int& svn_rev) const -{ - major = RS_MAJOR_VERSION ; - minor = RS_MINOR_VERSION ; - build = RS_MINI_VERSION ; - svn_rev = abs(atoi(RS_EXTRA_VERSION)) ; -} - -RetroChessPlugin::RetroChessPlugin() -{ - qRegisterMetaType("RsPeerId"); - mainpage = NULL ; - mRetroChess = NULL ; - mPlugInHandler = NULL; - mPeers = NULL; - config_page = NULL ; - mIcon = NULL ; - - mRetroChessNotify = new RetroChessNotify; -} - -void RetroChessPlugin::setInterfaces(RsPlugInInterfaces &interfaces) -{ - mPeers = interfaces.mPeers; -} - -/*ConfigPage *RetroChessPlugin::qt_config_page() const -{ - // The config pages are deleted when config is closed, so it's important not to static the - // created object. - // - return new AudioInputConfig() ; -}*/ - -QDialog *RetroChessPlugin::qt_about_page() const -{ - static QMessageBox *about_dialog = NULL ; - - if(about_dialog == NULL) - { - about_dialog = new QMessageBox() ; - - QString text ; - text += QObject::tr("

RetroShare RetroChess plugin


* Contributors: Cyril Soler, Josselin Jacquard
") ; - text += QObject::tr("
The RetroChess plugin adds RetroChess to the private chat window of RetroShare. to use it, proceed as follows:
    ") ; - text += QObject::tr("
  • setup microphone levels using the configuration panel
  • ") ; - text += QObject::tr("
  • check your microphone by looking at the VU-metters
  • ") ; - text += QObject::tr("
  • in the private chat, enable sound input/output by clicking on the two RetroChess icons
") ; - text += QObject::tr("Your friend needs to run the plugin to talk/listen to you, or course.") ; - text += QObject::tr("

This is an experimental feature. Don't hesitate to send comments and suggestion to the RS dev team.") ; - - about_dialog->setText(text) ; - about_dialog->setStandardButtons(QMessageBox::Ok) ; - } - - return about_dialog ; -} - -ChatWidgetHolder *RetroChessPlugin::qt_get_chat_widget_holder(ChatWidget *chatWidget) const -{ - switch (chatWidget->chatType()) { - case ChatWidget::CHATTYPE_PRIVATE: - return new RetroChessChatWidgetHolder(chatWidget, mRetroChessNotify); - case ChatWidget::CHATTYPE_UNKNOWN: - case ChatWidget::CHATTYPE_LOBBY: - case ChatWidget::CHATTYPE_DISTANT: - break; - } - - return NULL; -} - -p3Service *RetroChessPlugin::p3_service() const -{ - if(mRetroChess == NULL) - rsRetroChess = mRetroChess = new p3RetroChess(mPlugInHandler,mRetroChessNotify) ; // , 3600 * 24 * 30 * 6); // 6 Months - - return mRetroChess ; -} - -void RetroChessPlugin::setPlugInHandler(RsPluginHandler *pgHandler) -{ - mPlugInHandler = pgHandler; -} - -QIcon *RetroChessPlugin::qt_icon() const -{ - if (mIcon == NULL) { - Q_INIT_RESOURCE(RetroChess_images); - - mIcon = new QIcon(IMAGE_RetroChess); - } - - return mIcon; -} -MainPage *RetroChessPlugin::qt_page() const -{ - if(mainpage == NULL){ - mainpage = new NEMainpage(0, mRetroChessNotify);//mPeers, mFiles) ; - //tpage = new NEMainpage( ); - //mainpage = tpage; - } - - return mainpage ; -} - -std::string RetroChessPlugin::getShortPluginDescription() const -{ - return "RetroChess"; -} - -std::string RetroChessPlugin::getPluginName() const -{ - return "RetroChess"; -} - -QTranslator* RetroChessPlugin::qt_translator(QApplication */*app*/, const QString& languageCode, const QString& externalDir) const -{ - return NULL; -} - -void RetroChessPlugin::qt_sound_events(SoundEvents &/*events*/) const -{ -// events.addEvent(QApplication::translate("RetroChess", "RetroChess"), QApplication::translate("RetroChess", "Incoming call"), RetroChess_SOUND_INCOMING_CALL); -} - -/*ToasterNotify *RetroChessPlugin::qt_toasterNotify(){ - if (!mRetroChessToasterNotify) { - mRetroChessToasterNotify = new RetroChessToasterNotify(mRetroChess, mRetroChessNotify); - } - return mRetroChessToasterNotify; -}*/ diff --git a/plugins/RetroChess/RetroChessPlugin.h b/plugins/RetroChess/RetroChessPlugin.h deleted file mode 100644 index 5d2940aa7..000000000 --- a/plugins/RetroChess/RetroChessPlugin.h +++ /dev/null @@ -1,76 +0,0 @@ -/* this is the central part of the plugin */ -/**************************************************************** - * RetroShare is distributed under the following license: - * - * Copyright (C) 2015 - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - ****************************************************************/ -#pragma once - -/*RetroChess*/ -#include "services/p3RetroChess.h" - -/*libretroshare"*/ -#include - -#include "gui/NEMainpage.h" - -class RetroChessGUIHandler ; -class RetroChessNotify ; - -class RetroChessPlugin: public RsPlugin -{ - public: - RetroChessPlugin() ; - virtual ~RetroChessPlugin() {} - - virtual p3Service *p3_service() const ; - virtual uint16_t rs_service_id() const { return RS_SERVICE_TYPE_RetroChess_PLUGIN ; } - //virtual ConfigPage *qt_config_page() const ; - virtual QDialog *qt_about_page() const ; - virtual ChatWidgetHolder *qt_get_chat_widget_holder(ChatWidget *chatWidget) const ; - - virtual QIcon *qt_icon() const; - virtual QTranslator *qt_translator(QApplication *app, const QString& languageCode, const QString& externalDir) const; - virtual void qt_sound_events(SoundEvents &events) const; - - virtual void getPluginVersion(int& major, int& minor, int &build, int& svn_rev) const ; - virtual void setPlugInHandler(RsPluginHandler *pgHandler); - - virtual std::string configurationFileName() const { return "RetroChess.cfg" ; } - - virtual std::string getShortPluginDescription() const ; - virtual std::string getPluginName() const; - virtual void setInterfaces(RsPlugInInterfaces& interfaces); - - //================================== RsPlugin Notify ==================================// - //virtual ToasterNotify *qt_toasterNotify(); - - virtual MainPage *qt_page() const ; - - private: - mutable p3RetroChess *mRetroChess ; - mutable RsPluginHandler *mPlugInHandler; - mutable RsPeers* mPeers; - mutable ConfigPage *config_page ; - mutable QIcon *mIcon; - mutable MainPage* mainpage ; - - RetroChessNotify *mRetroChessNotify ; - RetroChessGUIHandler *mRetroChessGUIHandler ; -}; - diff --git a/plugins/RetroChess/cptest b/plugins/RetroChess/cptest deleted file mode 100644 index 6a98e93b4..000000000 --- a/plugins/RetroChess/cptest +++ /dev/null @@ -1,3 +0,0 @@ -kdesudo -u retrotester cp lib*.so* /home/retrotester/.retroshare/extensions6/ -kdesudo -u retrotester /home/chozabu/git/RetroShare/retroshare-gui/src/RetroShare - diff --git a/plugins/RetroChess/gui/NEMainpage.cpp b/plugins/RetroChess/gui/NEMainpage.cpp deleted file mode 100644 index ae45c49f8..000000000 --- a/plugins/RetroChess/gui/NEMainpage.cpp +++ /dev/null @@ -1,225 +0,0 @@ -#include "NEMainpage.h" -#include "ui_NEMainpage.h" - -//#include "services/p3RetroChess.h" -#include "interface/rsRetroChess.h" -#include "services/rsRetroChessItems.h" -#include "retroshare/rsservicecontrol.h" -#include "gui/notifyqt.h" -#include -#include - -#include -#include -#include -#include - -#include "gui/chat/ChatDialog.h" - - -NEMainpage::NEMainpage(QWidget *parent, RetroChessNotify *notify) : - MainPage(parent), - mNotify(notify), - ui(new Ui::NEMainpage) -{ - ui->setupUi(this); - setupMenuActions(); - - connect(mNotify, SIGNAL(NeMsgArrived(RsPeerId,QString)), this , SLOT(NeMsgArrived(RsPeerId,QString))); - connect(mNotify, SIGNAL(chessStart(RsPeerId)), this , SLOT(chessStart(RsPeerId))); - connect(ui->friendSelectionWidget, SIGNAL(itemSelectionChanged()), this, SLOT(friendSelectionChanged())); - - ui->friendSelectionWidget->start(); - ui->friendSelectionWidget->setModus(FriendSelectionWidget::MODUS_SINGLE); - ui->friendSelectionWidget->setShowType(FriendSelectionWidget::SHOW_SSL); - - connect(ui->friendSelectionWidget, SIGNAL(contentChanged()), this, SLOT(on_filterPeersButton_clicked())); - connect(NotifyQt::getInstance(), SIGNAL(peerStatusChanged(const QString&,int)), this, SLOT(on_filterPeersButton_clicked())); - - QString welcomemessage = QTime::currentTime().toString() +" "; - welcomemessage+= tr("Welcome to RetroChess lobby"); - ui->listWidget->addItem(welcomemessage); - -} - -NEMainpage::~NEMainpage() -{ - delete ui; -} - - -void NEMainpage::on_pingAllButton_clicked() -{ - -} - - -void NEMainpage::chessStart(const RsPeerId &peer_id){ - - create_chess_window(peer_id.toStdString(), 0); -} - -void NEMainpage::NeMsgArrived(const RsPeerId &peer_id, QString str) -{ - QJsonDocument jdoc = QJsonDocument::fromJson(str.toUtf8()); - QVariantMap vmap = jdoc.toVariant().toMap(); - std::cout << "GUI got Packet from: " << peer_id; - std::cout << " saying " << str.toStdString(); - std::cout << std::endl; - QString type = vmap.value("type").toString(); - if (type == "chat"){ - QString output = QTime::currentTime().toString() +" "; - output+= QString::fromStdString(rsPeers->getPeerName(peer_id)); - output+=": "; - output+=vmap.value("message").toString(); - ui->listWidget->addItem(output); - }else if (type == "chessclick"){ - int row = vmap.value("row").toInt(); - int col = vmap.value("col").toInt(); - int count = vmap.value("count").toInt(); - RetroChessWindow* rcw = activeGames.value(peer_id.toStdString()); - rcw->validate_tile(row,col,count); - }else if (type == "chess_init"){ - create_chess_window(peer_id.toStdString(), 1); - }else if (type == "chess_invite"){ - ChatDialog::chatFriend(ChatId(peer_id)); - rsRetroChess->gotInvite(peer_id); - mNotify->notifyChessInvite(peer_id); - }else if (type == "chess_accept"){ - if (rsRetroChess->hasInviteTo(peer_id)){ - create_chess_window(peer_id.toStdString(), 1); - rsRetroChess->acceptedInvite(peer_id); - } - }else{ - QString output = QTime::currentTime().toString() +" "; - output+= QString::fromStdString(rsPeers->getPeerName(peer_id)); - output+=": "; - output+=str; - ui->listWidget->addItem(output); - } - - { - QString output = QTime::currentTime().toString() +" "; - output+= QString::fromStdString(rsPeers->getPeerName(peer_id)); - output+=": "; - output+=str; - ui->netLogWidget->addItem(output); - } -} - -void NEMainpage::on_broadcastButton_clicked() -{ - rsRetroChess->msg_all(ui->msgInput->text().toStdString()); - NeMsgArrived(rsPeers->getOwnId(),ui->msgInput->text()); - ui->msgInput->clear(); -} - -void NEMainpage::create_chess_window(std::string peer_id, int player_id){ - RetroChessWindow *rcw = new RetroChessWindow(peer_id, player_id); - rcw->show(); - - activeGames.insert(peer_id, rcw); - ui->active_games->addItem(QString::fromStdString(peer_id)); -} - -void NEMainpage::on_playButton_clicked() -{ - //get peer - FriendSelectionWidget::IdType idType; - std::string fid = ui->friendSelectionWidget->selectedId(idType); - //make_board(); - create_chess_window(fid, 0); - - QVariantMap map; - map.insert("type", "chess_init"); - - rsRetroChess->qvm_msg_peer(RsPeerId(fid),map); - - std::cout << fid; -} - -void NEMainpage::on_filterPeersButton_clicked() -{ - std::cout << "\n\n filter peers \n"; - - std::list ssllist ; - rsPeers->getFriendList(ssllist); - - - RsPeerServiceInfo ownServices; - rsServiceControl->getOwnServices(ownServices); - - std::vector peer_ids ; - std::vector service_ids ; - - for(std::list::const_iterator it(ssllist.begin());it!=ssllist.end();++it) - peer_ids.push_back(*it) ; - service_ids.clear() ; - uint32_t service_id; - for(std::map::const_iterator sit(ownServices.mServiceList.begin());sit!=ownServices.mServiceList.end();++sit) - { - RsServiceInfo rsi = sit->second; - service_ids.push_back(sit->first) ; - std::cout << rsi.mServiceName << rsi.mServiceType << "\n"; - if (strcmp(rsi.mServiceName.c_str(), "RetroChess") == 0){ - service_id = rsi.mServiceType; - std::cout << "setting service ID\n"; - } - } - - for(std::list::const_iterator it(ssllist.begin());it!=ssllist.end();++it) - { - RsPeerServiceInfo local_service_perms ; - RsPeerServiceInfo remote_service_perms ; - RsPeerId id = *it; - - rsServiceControl->getServicesAllowed (*it, local_service_perms) ; - rsServiceControl->getServicesProvided(*it,remote_service_perms) ; - - bool local_allowed = local_service_perms.mServiceList.find(service_id) != local_service_perms.mServiceList.end() ; - bool remote_allowed = remote_service_perms.mServiceList.find(service_id) != remote_service_perms.mServiceList.end() ; - bool allowed = (local_allowed && remote_allowed); - //QString la = - QString serviceinfos = QString("peerlocal: ") + QString(local_allowed?"yes":"no") + QString(" remote: ") + QString(remote_allowed?"yes":"no"); - ui->netLogWidget->addItem(serviceinfos); - std::cout << serviceinfos.toStdString() << "\n"; - //if (allowed){ - QList items; - ui->friendSelectionWidget->itemsFromId(FriendSelectionWidget::IDTYPE_SSL,id.toStdString(),items); - - std::cout << items.size() << "\n"; - if (items.size()){ - QTreeWidgetItem* item = items.first(); - item->setHidden(!allowed); - } - } - - - // -} - -void NEMainpage::setupMenuActions() -{ - mActionPlayChess = new QAction(QIcon(), tr("Play Chess"), this); - connect(mActionPlayChess, SIGNAL(triggered(bool)), this, SLOT(on_playButton_clicked())); - - ui->friendSelectionWidget->addContextMenuAction(mActionPlayChess); - -} - -void NEMainpage::friendSelectionChanged() -{ - std::set peerIds; - ui->friendSelectionWidget->selectedIds(peerIds, false); - - std::set gxsIds; - ui->friendSelectionWidget->selectedIds(gxsIds, false); - - int selectedCount = peerIds.size() + gxsIds.size(); - - mActionPlayChess->setEnabled(selectedCount); - - FriendSelectionWidget::IdType idType; - ui->friendSelectionWidget->selectedId(idType); - -} diff --git a/plugins/RetroChess/gui/NEMainpage.h b/plugins/RetroChess/gui/NEMainpage.h deleted file mode 100644 index ac5e29fdd..000000000 --- a/plugins/RetroChess/gui/NEMainpage.h +++ /dev/null @@ -1,52 +0,0 @@ -/* This is the main page displayed by the plugin */ -#ifndef NEMAINPAGE_H -#define NEMAINPAGE_H - -#include -#include -#include -#include "gui/RetroChessNotify.h" - -#include "gui/chess.h" - -#include - -class QAction; - -namespace Ui { -class NEMainpage; -} - -class NEMainpage : public MainPage -{ - Q_OBJECT - -public: - explicit NEMainpage(QWidget *parent, RetroChessNotify *notify); - ~NEMainpage(); - -private slots: - void setupMenuActions(); - void friendSelectionChanged(); - void on_pingAllButton_clicked(); - void NeMsgArrived(const RsPeerId &peer_id, QString str); - void chessStart(const RsPeerId &peer_id); - - void on_broadcastButton_clicked(); - - void on_playButton_clicked(); - - void on_filterPeersButton_clicked(); - -private: - Ui::NEMainpage *ui; - RetroChessNotify *mNotify; - - QAction *mActionPlayChess; - //RetroChessWindow *tempwindow; - - QMap activeGames; - void create_chess_window(std::string peer_id, int player_id); -}; - -#endif // NEMAINPAGE_H diff --git a/plugins/RetroChess/gui/NEMainpage.ui b/plugins/RetroChess/gui/NEMainpage.ui deleted file mode 100644 index 0c06d9b5b..000000000 --- a/plugins/RetroChess/gui/NEMainpage.ui +++ /dev/null @@ -1,268 +0,0 @@ - - - NEMainpage - - - - 0 - 0 - 684 - 578 - - - - Form - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 0 - 0 - - - - QFrame::NoFrame - - - QFrame::Raised - - - - 2 - - - 2 - - - 2 - - - 2 - - - - - - 24 - 24 - - - - - - - :/images/retrochess.png - - - true - - - - - - - RetroChess - - - - - - - Qt::Horizontal - - - - 123 - 13 - - - - - - - - Qt::NoFocus - - - - :/icons/help_64.png:/icons/help_64.png - - - true - - - true - - - - - - - - - - 0 - - - - Chess Lobby - - - - - - Qt::Horizontal - - - - Invite Friends - - - - - - Qt::CustomContextMenu - - - - - - - CheckPeers - - - - - - - Qt::Horizontal - - - - 41 - 20 - - - - - - - - - - - - - - Play Chess - - - - - - - Qt::Horizontal - - - - 475 - 20 - - - - - - - - - - - - - Type a message here - - - - - - - Send - - - - - - - - - - - - Net log - - - - - - - - - - - - - - 0 - 0 - - - - - 16777215 - 150 - - - - Active Games - - - - - - - - - - - - - StyledLabel - QLabel -
gui/common/StyledLabel.h
-
- - FriendSelectionWidget - QWidget -
gui/common/FriendSelectionWidget.h
- 1 -
-
- - - - -
diff --git a/plugins/RetroChess/gui/RetroChessChatWidgetHolder.cpp b/plugins/RetroChess/gui/RetroChessChatWidgetHolder.cpp deleted file mode 100644 index c5bdcc3df..000000000 --- a/plugins/RetroChess/gui/RetroChessChatWidgetHolder.cpp +++ /dev/null @@ -1,147 +0,0 @@ - - -#include -#include -#include -#include - - -#include "interface/rsRetroChess.h" - -#include "gui/chat/ChatWidget.h" - -#include "RetroChessChatWidgetHolder.h" - -#include -#include - -#define IMAGE_RetroChess ":/images/chess.png" - -RetroChessChatWidgetHolder::RetroChessChatWidgetHolder(ChatWidget *chatWidget, RetroChessNotify *notify) - : QObject(), ChatWidgetHolder(chatWidget), mRetroChessNotify(notify) -{ - QIcon icon ; - icon.addPixmap(QPixmap(IMAGE_RetroChess)) ; - - - playChessButton = new QToolButton ; - playChessButton->setIcon(icon) ; - playChessButton->setToolTip(tr("Invite Friend to Chess")); - playChessButton->setIconSize(QSize(35,35)) ; - playChessButton->setAutoRaise(true) ; - - mChatWidget->addChatBarWidget(playChessButton); - connect(playChessButton, SIGNAL(clicked()), this , SLOT(chessPressed())); - connect(notify, SIGNAL(chessInvited(RsPeerId)), this , SLOT(chessnotify(RsPeerId))); - -} - -RetroChessChatWidgetHolder::~RetroChessChatWidgetHolder() -{ - - button_map::iterator it = buttonMapTakeChess.begin(); - while (it != buttonMapTakeChess.end()) { - it = buttonMapTakeChess.erase(it); - } -} - -void RetroChessChatWidgetHolder::chessnotify(RsPeerId from_peer_id) -{ - RsPeerId peer_id = mChatWidget->getChatId().toPeerId();//TODO support GXSID - //if (peer_id!=from_peer_id)return;//invite from another chat - if (rsRetroChess->hasInviteFrom(peer_id)){ - if (mChatWidget) { - QString buttonName = QString::fromUtf8(rsPeers->getPeerName(peer_id).c_str()); - if (buttonName.isEmpty()) buttonName = "Chess";//TODO maybe change all with GxsId - //disable old buttons - button_map::iterator it = buttonMapTakeChess.begin(); - while (it != buttonMapTakeChess.end()) { - it = buttonMapTakeChess.erase(it); - } - //button_map::iterator it = buttonMapTakeChess.find(buttonName); - //if (it == buttonMapTakeChess.end()){ - mChatWidget->addChatMsg(true, tr("Chess Status"), QDateTime::currentDateTime(), QDateTime::currentDateTime() - , tr("%1 inviting you to start Chess. Do you want to accept or decline the invitation?").arg(buttonName), ChatWidget::MSGTYPE_SYSTEM); - RSButtonOnText *button = mChatWidget->getNewButtonOnTextBrowser(tr("Accept")); - button->setToolTip(tr("Accept")); - button->setStyleSheet(QString("border: 1px solid #199909;") - .append("font-size: 12pt; color: white;") - .append("min-width: 128px; min-height: 24px;") - .append("border-radius: 6px;") - .append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, " - "stop: 0 #22c70d, stop: 1 #116a06);") - - ); - - button->updateImage(); - - connect(button,SIGNAL(clicked()),this,SLOT(chessStart())); - connect(button,SIGNAL(mouseEnter()),this,SLOT(botMouseEnter())); - connect(button,SIGNAL(mouseLeave()),this,SLOT(botMouseLeave())); - - buttonMapTakeChess.insert(buttonName, button); - //} - } - - - } -} - -void RetroChessChatWidgetHolder::chessPressed() -{ - RsPeerId peer_id = mChatWidget->getChatId().toPeerId();//TODO support GXSID - if (rsRetroChess->hasInviteFrom(peer_id)){ - - rsRetroChess->acceptedInvite(peer_id); - mRetroChessNotify->notifyChessStart(peer_id); - return; - - } - rsRetroChess->sendInvite(peer_id); - - QString peerName = QString::fromUtf8(rsPeers->getPeerName(peer_id).c_str()); - mChatWidget->addChatMsg(true, tr("Chess Status"), QDateTime::currentDateTime(), QDateTime::currentDateTime() - , tr("You're now inviting %1 to play Chess").arg(peerName), ChatWidget::MSGTYPE_SYSTEM); - -} - -void RetroChessChatWidgetHolder::chessStart() -{ - RsPeerId peer_id = mChatWidget->getChatId().toPeerId();//TODO support GXSID - - rsRetroChess->acceptedInvite(peer_id); - mRetroChessNotify->notifyChessStart(peer_id); - return; -} - -void RetroChessChatWidgetHolder::botMouseEnter() -{ - RSButtonOnText *source = qobject_cast(QObject::sender()); - if (source){ - source->setStyleSheet(QString("border: 1px solid #333333;") - .append("font-size: 12pt; color: white;") - .append("min-width: 128px; min-height: 24px;") - .append("border-radius: 6px;") - .append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, " - "stop: 0 #444444, stop: 1 #222222);") - - ); - //source->setDown(true); - } -} - -void RetroChessChatWidgetHolder::botMouseLeave() -{ - RSButtonOnText *source = qobject_cast(QObject::sender()); - if (source){ - source->setStyleSheet(QString("border: 1px solid #199909;") - .append("font-size: 12pt; color: white;") - .append("min-width: 128px; min-height: 24px;") - .append("border-radius: 6px;") - .append("background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.67, " - "stop: 0 #22c70d, stop: 1 #116a06);") - - ); - //source->setDown(false); - } -} diff --git a/plugins/RetroChess/gui/RetroChessChatWidgetHolder.h b/plugins/RetroChess/gui/RetroChessChatWidgetHolder.h deleted file mode 100644 index d98b3b262..000000000 --- a/plugins/RetroChess/gui/RetroChessChatWidgetHolder.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef RETROCHESSCHATWIDGETHOLDER_H -#define RETROCHESSCHATWIDGETHOLDER_H - -#include "RetroChessChatWidgetHolder.h" -#include -#include -#include - -class RetroChessChatWidgetHolder : public QObject, public ChatWidgetHolder -{ - Q_OBJECT - -public: - RetroChessChatWidgetHolder(ChatWidget *chatWidget, RetroChessNotify *notify); - virtual ~RetroChessChatWidgetHolder(); - -public slots: - void chessPressed(); - void chessStart(); - void chessnotify(RsPeerId from_peer_id); - - -private slots: - void botMouseEnter(); - void botMouseLeave(); - -protected: - QToolButton *playChessButton ; - RetroChessNotify *mRetroChessNotify; - - typedef QMap button_map; - button_map buttonMapTakeChess; -}; - -#endif // RETROCHESSCHATWIDGETHOLDER_H diff --git a/plugins/RetroChess/gui/RetroChessNotify.cpp b/plugins/RetroChess/gui/RetroChessNotify.cpp deleted file mode 100644 index 07db46225..000000000 --- a/plugins/RetroChess/gui/RetroChessNotify.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "RetroChessNotify.h" - -RetroChessNotify::RetroChessNotify(QObject *parent) : QObject(parent) -{ - -} - -void RetroChessNotify::notifyReceivedPaint(const RsPeerId &peer_id, int x, int y) -{ - std::cout << "pNotify Recvd paint from: " << peer_id; - std::cout << " at " << x << " , " << y; - std::cout << std::endl; -} - - -void RetroChessNotify::notifyReceivedMsg(const RsPeerId& peer_id, QString str) -{ - std::cout << "pNotify Recvd Packet from: " << peer_id; - std::cout << " saying " << str.toStdString(); - std::cout << std::endl; - emit NeMsgArrived(peer_id, str) ; -} - -void RetroChessNotify::notifyChessStart(const RsPeerId &peer_id) -{ - emit chessStart(peer_id) ; - -} -void RetroChessNotify::notifyChessInvite(const RsPeerId &peer_id) -{ - emit chessInvited(peer_id) ; - -} diff --git a/plugins/RetroChess/gui/RetroChessNotify.h b/plugins/RetroChess/gui/RetroChessNotify.h deleted file mode 100644 index 3581515a8..000000000 --- a/plugins/RetroChess/gui/RetroChessNotify.h +++ /dev/null @@ -1,54 +0,0 @@ -/**************************************************************** - * RetroShare is distributed under the following license: - * - * Copyright (C) 2015 - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - ****************************************************************/ - -// This class is a Qt object to get notification from the plugin's service threads, -// and responsible to pass the info the the GUI part. -// -// Because the GUI part is async-ed with the service, it is crucial to use the -// QObject connect system to communicate between the p3Service and the gui part (handled by Qt) -// -#ifndef NETEXAMPLENOTIFY_H -#define NETEXAMPLENOTIFY_H - -#include - -#include - -class RetroChessNotify : public QObject -{ - Q_OBJECT -public: - explicit RetroChessNotify(QObject *parent = 0); - void notifyReceivedPaint(const RsPeerId &peer_id, int x, int y) ; - void notifyReceivedMsg(const RsPeerId &peer_id, QString str) ; - void notifyChessStart(const RsPeerId &peer_id) ; - void notifyChessInvite(const RsPeerId &peer_id) ; - -signals: - void NeMsgArrived(const RsPeerId &peer_id, QString str) ; // emitted when the peer gets a msg - - void chessStart(const RsPeerId &peer_id) ; - void chessInvited(const RsPeerId &peer_id) ; - -public slots: -}; - -#endif // NETEXAMPLENOTIFY_H diff --git a/plugins/RetroChess/gui/RetroChess_images.qrc b/plugins/RetroChess/gui/RetroChess_images.qrc deleted file mode 100644 index 9cffad0ad..000000000 --- a/plugins/RetroChess/gui/RetroChess_images.qrc +++ /dev/null @@ -1,21 +0,0 @@ - - - images/bishop_black.svg - images/bishop_white.svg - images/king_black.svg - images/king_white.svg - images/knight_black.svg - images/knight_white.svg - images/pawn_black.svg - images/pawn_white.svg - images/queen_black.svg - images/queen_white.svg - images/rook_black.svg - images/rook_white.svg - images/chess-icon.png - images/chess-icon-32.png - images/chess.png - images/profile.png - images/retrochess.png - - diff --git a/plugins/RetroChess/gui/chess.cpp b/plugins/RetroChess/gui/chess.cpp deleted file mode 100644 index 98e38446b..000000000 --- a/plugins/RetroChess/gui/chess.cpp +++ /dev/null @@ -1,873 +0,0 @@ -#include -#include "chess.h" -#include "gui/common/AvatarDefs.h" - -RetroChessWindow::RetroChessWindow(std::string peerid, int player, QWidget *parent) : - QWidget(parent), - mPeerId(peerid) - //ui(new Ui::RetroChessWindow) -{ - - //tile = { { NULL } }; - count=0; - turn=1; - max=0; - texp = new int[60]; - setGeometry(0,0,1370,700); - - QString player_str; - if (player ){ - p1id = rsPeers->getOwnId(); - p2id = RsPeerId(peerid); - player_str = " (1)"; - }else{ - p1id = RsPeerId(peerid); - p2id = rsPeers->getOwnId(); - player_str = " (2)"; - } - - p1name = rsPeers->getPeerName(p1id); - p2name = rsPeers->getPeerName(p2id); - - QString title = QString::fromStdString(p2name); - title += " Playing Chess against "; - title += QString::fromStdString(p1name); - title+=player_str; - - - this->setWindowTitle(title); - - accessories(); - chessBoard(); -} - -RetroChessWindow::~RetroChessWindow() -{ -} - -class Border -{ -public: - Border(); - void outline(QWidget *baseWidget, int xPos, int yPos, int Pos) - { - QLabel *outLabel = new QLabel(baseWidget); - - if(!Pos) - outLabel->setGeometry(xPos,yPos,552,20); //Horizontal Borders - - else - outLabel->setGeometry(xPos,yPos,20,512); //Vertical Borders - - outLabel->setStyleSheet("QLabel { background-color :rgb(170, 170, 127); color : black; }"); - } -}; - -void RetroChessWindow::accessories() -{ - QWidget *baseWidget = this; - QLabel *player2 = new QLabel(baseWidget); - QLabel *name2 = new QLabel(p2name.c_str(), baseWidget); - QLabel *time2 = new QLabel("00:00:00", baseWidget); - - QLabel *player1 = new QLabel(baseWidget); - QLabel *name1 = new QLabel(p1name.c_str(), baseWidget); - QLabel *time1 = new QLabel("00:00:00", baseWidget); - - QLabel *moves = new QLabel(baseWidget); - - name1->setGeometry(125,610,80,20); - time1->setGeometry(120,635,80,20); - player1->setGeometry(100,500,100,100); - QPixmap p1avatar; - AvatarDefs::getAvatarFromSslId(p1id, p1avatar); - player1->setPixmap(p1avatar);//QPixmap(":/images/profile.png")); - - - name2->setGeometry(125,210,80,20); - time2->setGeometry(120,235,80,20); - player2->setGeometry(100,100,100,100); - QPixmap p2avatar; - AvatarDefs::getAvatarFromSslId(p2id, p2avatar); - player2->setPixmap(p2avatar);//QPixmap(":/images/profile.png")); - - moves->setGeometry(1000,105,250,550); - moves->setStyleSheet("QLabel {background-color: white;}"); - -} - -void RetroChessWindow::disOrange() -{ - int i; - - for(i=0;itileDisplay(); - -} - -void RetroChessWindow::validate_tile(int row, int col, int c){ - Tile *clickedtile = tile[col][row]; - //if (!click1)click1=clickedtile; - clickedtile->validate(++count); -} - -void RetroChessWindow::chessBoard() -{ - //QWidget *baseWidget, Tile *tile[8][8] - QWidget *baseWidget = this; - int i,j,k=0,hor,ver; - Border *border[4]={ NULL }; - - //borderDisplay - { - border[0]->outline(baseWidget,330,105,0); - border[1]->outline(baseWidget,330,637,0); - border[2]->outline(baseWidget,330,125,1); - border[2]->outline(baseWidget,862,125,1); - } - - //Create 64 tiles (allocating memories to the objects of Tile class) - ver=125; - for(i=0;i<8;i++) - { - hor=350; - for(j=0;j<8;j++) - { - tile[i][j] = new Tile(baseWidget); - tile[i][j]->tileColor=(i+j)%2; - tile[i][j]->piece=0; - tile[i][j]->row=i; - tile[i][j]->col=j; - tile[i][j]->tileNum=k++; - tile[i][j]->tileDisplay(); - tile[i][j]->setGeometry(hor,ver,64,64); - hor+=64; - } - ver+=64; - } - - //white pawns - for(j=0;j<8;j++) - { - tile[1][j]->piece=1; - tile[1][j]->pieceColor=0; - tile[1][j]->display('P'); - } - - //black pawns - for(j=0;j<8;j++) - { - tile[6][j]->piece=1; - tile[6][j]->pieceColor=1; - tile[6][j]->display('P'); - } - - //white and black remaining elements - for(j=0;j<8;j++) - { - tile[0][j]->piece=1; - tile[0][j]->pieceColor=0; - tile[7][j]->piece=1; - tile[7][j]->pieceColor=1; - } - - { - tile[0][0]->display('R'); - tile[0][1]->display('H'); - tile[0][2]->display('B'); - tile[0][3]->display('Q'); - tile[0][4]->display('K'); - tile[0][5]->display('B'); - tile[0][6]->display('H'); - tile[0][7]->display('R'); - } - - - { - tile[7][0]->display('R'); - tile[7][1]->display('H'); - tile[7][2]->display('B'); - tile[7][3]->display('Q'); - tile[7][4]->display('K'); - tile[7][5]->display('B'); - tile[7][6]->display('H'); - tile[7][7]->display('R'); - } - - wR=7; - wC=4; - - bR=0; - bC=4; - - -} - - - -int RetroChessWindow::chooser(Tile *temp) -{ - switch(temp->pieceName) - { - case 'P': flag=validatePawn(temp); - break; - - case 'R': flag=validateRook(temp); - break; - - case 'H': flag=validateHorse(temp); - break; - - case 'K': flag=validateKing(temp); - break; - - case 'Q': flag=validateQueen(temp); - break; - - case 'B': flag=validateBishop(temp); - break; - - } - - orange(); - - return flag; -} - -//PAWN -int RetroChessWindow::validatePawn(Tile *temp) -{ - int row,col; - - row=temp->row; - col=temp->col; - retVal=0; - - //White Pawn - if(temp->pieceColor) - { - if(row-1>=0 && !tile[row-1][col]->piece) - { - /*int tnum = tile[row-1][col]->tileNum; - std::cout << "tile: " << texp[max] << std::endl; - int a = texp[max]; - texp[max] = tnum; - max++;*/ - texp[max++]=tile[row-1][col]->tileNum; - retVal=1; - } - - if(row==6 && !tile[5][col]->piece && !tile[4][col]->piece) - { - texp[max++]=tile[row-2][col]->tileNum; - retVal=1; - } - - if(row-1>=0 && col-1>=0) - { - if(tile[row-1][col-1]->pieceColor!=temp->pieceColor && tile[row-1][col-1]->piece) - { - texp[max++]=tile[row-1][col-1]->tileNum; - retVal=1; - } - } - - if(row-1>=0 && col+1<=7) - { - if(tile[row-1][col+1]->pieceColor!=temp->pieceColor && tile[row-1][col+1]->piece) - { - texp[max++]=tile[row-1][col+1]->tileNum; - retVal=1; - } - } - } - else - { - if(row+1<=7 && !tile[row+1][col]->piece) - { - texp[max++]=tile[row+1][col]->tileNum; - retVal=1; - } - - if(row==1 && !tile[2][col]->piece && !tile[3][col]->piece) - { - texp[max++]=tile[row+2][col]->tileNum; - retVal=1; - } - - if(row+1<=7 && col-1>=0) - { - if(tile[row+1][col-1]->pieceColor!=temp->pieceColor && tile[row+1][col-1]->piece) - { - texp[max++]=tile[row+1][col-1]->tileNum; - retVal=1; - } - } - - if(row+1<=7 && col+1<=7) - { - if(tile[row+1][col+1]->pieceColor!=temp->pieceColor && tile[row+1][col+1]->piece) - { - texp[max++]=tile[row+1][col+1]->tileNum; - retVal=1; - } - } - } - - return retVal; -} - - -//ROOK -int RetroChessWindow::validateRook(Tile *temp) -{ - int r,c; - - retVal=0; - - r=temp->row; - c=temp->col; - while(r-->0) - { - if(!tile[r][c]->piece) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - } - - else if(tile[r][c]->pieceColor==temp->pieceColor) - break; - - else if(tile[r][c]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - break; - } - } - - r=temp->row; - c=temp->col; - while(r++<7) - { - if(!tile[r][c]->piece) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - } - - else if(tile[r][c]->pieceColor==temp->pieceColor) - break; - - else if(tile[r][c]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - break; - } - } - - r=temp->row; - c=temp->col; - while(c++<7) - { - if(!tile[r][c]->piece) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - } - - else if(tile[r][c]->pieceColor==temp->pieceColor) - break; - - else if(tile[r][c]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - break; - } - } - - r=temp->row; - c=temp->col; - while(c-->0) - { - if(!tile[r][c]->piece) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - } - - else if(tile[r][c]->pieceColor==temp->pieceColor) - break; - - else if(tile[r][c]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - break; - } - } - - - return retVal; -} - - -//HORSE -int RetroChessWindow::validateHorse(Tile *temp) -{ - int r,c; - retVal=0; - - r=temp->row; - c=temp->col; - - if(r-2>=0 && c-1>=0) - { - if(tile[r-2][c-1]->pieceColor!=temp->pieceColor || !tile[r-2][c-1]->piece) - { - texp[max++]=tile[r-2][c-1]->tileNum; - retVal=1; - } - } - - if(r-2>=0 && c+1<=7) - { - if(tile[r-2][c+1]->pieceColor!=temp->pieceColor || !tile[r-2][c+1]->piece) - { - texp[max++]=tile[r-2][c+1]->tileNum; - retVal=1; - } - } - - if(r-1>=0 && c-2>=0) - { - if(tile[r-1][c-2]->pieceColor!=temp->pieceColor || !tile[r-1][c-2]->piece) - { - texp[max++]=tile[r-1][c-2]->tileNum; - retVal=1; - } - } - - if(r-1>=0 && c+2<=7) - { - if(tile[r-1][c+2]->pieceColor!=temp->pieceColor || !tile[r-1][c+2]->piece) - { - texp[max++]=tile[r-1][c+2]->tileNum; - retVal=1; - } - } - - if(r+2<=7 && c+1<=7) - { - if(tile[r+2][c+1]->pieceColor!=temp->pieceColor || !tile[r+2][c+1]->piece) - { - texp[max++]=tile[r+2][c+1]->tileNum; - retVal=1; - } - } - - if(r+2<=7 && c-1>=0) - { - if(tile[r+2][c-1]->pieceColor!=temp->pieceColor || !tile[r+2][c-1]->piece) - { - texp[max++]=tile[r+2][c-1]->tileNum; - retVal=1; - } - } - - if(r+1<=7 && c-2>=0) - { - if(tile[r+1][c-2]->pieceColor!=temp->pieceColor || !tile[r+1][c-2]->piece) - { - texp[max++]=tile[r+1][c-2]->tileNum; - retVal=1; - } - } - - if(r+1<=7 && c+2<=7) - { - if(tile[r+1][c+2]->pieceColor!=temp->pieceColor || !tile[r+1][c+2]->piece) - { - texp[max++]=tile[r+1][c+2]->tileNum; - retVal=1; - } - } - - return retVal; -} - - -//KING -int RetroChessWindow::validateKing(Tile *temp) -{ - int r,c; - retVal=0; - - r=temp->row; - c=temp->col; - - if(r-1>=0) - { - if(!tile[r-1][c]->piece || tile[r-1][c]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r-1][c]->tileNum; - retVal=1; - } - } - - if(r+1<=7) - { - if(!tile[r+1][c]->piece || tile[r+1][c]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r+1][c]->tileNum; - retVal=1; - } - } - - if(c-1>=0) - { - if(!tile[r][c-1]->piece || tile[r][c-1]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r][c-1]->tileNum; - retVal=1; - } - } - - if(c+1<=7) - { - if(!tile[r][c+1]->piece || tile[r][c+1]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r][c+1]->tileNum; - retVal=1; - } - } - - if(r-1>=0 && c-1>=0) - { - if(!tile[r-1][c-1]->piece || tile[r-1][c-1]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r-1][c-1]->tileNum; - retVal=1; - } - } - - if(r-1>=0 && c+1<=7) - { - if(!tile[r-1][c+1]->piece || tile[r-1][c+1]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r-1][c+1]->tileNum; - retVal=1; - } - } - - if(r+1<=7 && c-1>=0) - { - if(!tile[r+1][c-1]->piece || tile[r+1][c-1]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r+1][c-1]->tileNum; - retVal=1; - } - } - - if(r+1<=7 && c+1<=7) - { - if(!tile[r+1][c+1]->piece || tile[r+1][c+1]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r+1][c+1]->tileNum; - retVal=1; - } - } - - return retVal; -} - - -//QUEEN -int RetroChessWindow::validateQueen(Tile *temp) -{ - int r,c; - - retVal=0; - - r=temp->row; - c=temp->col; - while(r-->0) - { - if(!tile[r][c]->piece) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - } - - else if(tile[r][c]->pieceColor==temp->pieceColor) - break; - - else if(tile[r][c]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - break; - } - } - - r=temp->row; - c=temp->col; - while(r++<7) - { - if(!tile[r][c]->piece) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - } - - else if(tile[r][c]->pieceColor==temp->pieceColor) - break; - - else if(tile[r][c]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - break; - } - } - - r=temp->row; - c=temp->col; - while(c++<7) - { - if(!tile[r][c]->piece) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - } - - else if(tile[r][c]->pieceColor==temp->pieceColor) - break; - - else if(tile[r][c]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - break; - } - } - - r=temp->row; - c=temp->col; - while(c-->0) - { - if(!tile[r][c]->piece) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - } - - else if(tile[r][c]->pieceColor==temp->pieceColor) - break; - - else if(tile[r][c]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - break; - } - } - - r=temp->row; - c=temp->col; - while(r-->0 && c++<7) - { - if(!tile[r][c]->piece) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - } - - else if(tile[r][c]->pieceColor==temp->pieceColor) - break; - - else if(tile[r][c]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - break; - } - } - - r=temp->row; - c=temp->col; - while(r-->0 && c-->0) - { - if(!tile[r][c]->piece) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - } - - else if(tile[r][c]->pieceColor==temp->pieceColor) - break; - - else if(tile[r][c]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - break; - } - } - - r=temp->row; - c=temp->col; - while(r++<7 && c++<7) - { - if(!tile[r][c]->piece) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - } - - else if(tile[r][c]->pieceColor==temp->pieceColor) - break; - - else if(tile[r][c]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - break; - } - } - - r=temp->row; - c=temp->col; - while(r++<7 && c-->0) - { - if(!tile[r][c]->piece) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - } - - else if(tile[r][c]->pieceColor==temp->pieceColor) - break; - - else if(tile[r][c]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - break; - } - } - - - return retVal; -} - -//BISHOP -int RetroChessWindow::validateBishop(Tile *temp) -{ - int r,c; - retVal=0; - - r=temp->row; - c=temp->col; - while(r-->0 && c++<7) - { - if(!tile[r][c]->piece) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - } - - else if(tile[r][c]->pieceColor==temp->pieceColor) - break; - - else if(tile[r][c]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - break; - } - } - - r=temp->row; - c=temp->col; - while(r-->0 && c-->0) - { - if(!tile[r][c]->piece) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - } - - else if(tile[r][c]->pieceColor==temp->pieceColor) - break; - - else if(tile[r][c]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - break; - } - } - - r=temp->row; - c=temp->col; - while(r++<7 && c++<7) - { - if(!tile[r][c]->piece) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - } - - else if(tile[r][c]->pieceColor==temp->pieceColor) - break; - - else if(tile[r][c]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - break; - } - } - - r=temp->row; - c=temp->col; - while(r++<7 && c-->0) - { - if(!tile[r][c]->piece) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - } - - else if(tile[r][c]->pieceColor==temp->pieceColor) - break; - - else if(tile[r][c]->pieceColor!=temp->pieceColor) - { - texp[max++]=tile[r][c]->tileNum; - retVal=1; - break; - } - } - - return retVal; -} - -int RetroChessWindow::check(Tile *temp) -{ - int r,c,flag; - retVal=0; - - return retVal; -} - -void RetroChessWindow::orange() -{ - int i,n; - - for(i=0;isetStyleSheet("QLabel {background-color: orange;}"); -} diff --git a/plugins/RetroChess/gui/chess.h b/plugins/RetroChess/gui/chess.h deleted file mode 100644 index 79e0289f4..000000000 --- a/plugins/RetroChess/gui/chess.h +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef CHESS_H -#define CHESS_H - -//#include "tile.h" -#include "validation.h" -#include "qwidget.h" - -#include "retroshare/rspeers.h" - -class RetroChessWindow : public QWidget -{ - Q_OBJECT - - void accessories(); - void chessBoard(); - RsPeerId p1id; - RsPeerId p2id; - std::string p1name; - std::string p2name; -public: - std::string mPeerId; - explicit RetroChessWindow(std::string peerid, int player = 0, QWidget *parent = 0); - ~RetroChessWindow(); - int currentplayer; - int myid; - - //from global - - int wR,wC,bR,bC; - Tile *click1; - - Tile *tile[8][8]; - - int count,turn,max; - int *texp; - - - void disOrange(); - void validate_tile(int row, int col, int c); - - - int flag,retVal; - int chooser(Tile *temp); - int validateBishop(Tile *temp); - int validateQueen(Tile *temp); - int validateKing(Tile *temp); - int validateHorse(Tile *temp); - int validateRook(Tile *temp); - int validatePawn(Tile *temp); - void orange(); - int check(Tile *temp); -}; - - -QWidget* make_board(); - -#endif // CHESS_H diff --git a/plugins/RetroChess/gui/images/bishop_black.svg b/plugins/RetroChess/gui/images/bishop_black.svg deleted file mode 100644 index 7cceeb06a..000000000 --- a/plugins/RetroChess/gui/images/bishop_black.svg +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - diff --git a/plugins/RetroChess/gui/images/bishop_white.svg b/plugins/RetroChess/gui/images/bishop_white.svg deleted file mode 100644 index 2c3bfbda3..000000000 --- a/plugins/RetroChess/gui/images/bishop_white.svg +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - diff --git a/plugins/RetroChess/gui/images/chess-icon-32.png b/plugins/RetroChess/gui/images/chess-icon-32.png deleted file mode 100644 index 7a0790261017988da7a347403ad21908a27090bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1901 zcmV-z2a@=SP)f9A~n=idLG z^PTT}=fD3&_%9FqKY(vFfb!3Om}@jNi{H<$d!?ch*#8&+A0NcvU|jo7-kB z9of>@1Xl+J9v;Mk0HmkKR@iJ#8|98;q^+$DYwC>P;sOn0V-Wh~nqMCXe{Rj{4H?Ff zTiDom^W%3<%v^kA0A7Ci#ZR-d-+b=Ur3+-wo_#nmF$oL<*H{*w=AOT{PnnvTReH|B z;W04iE3o|XOGI^h@P+qJu^&DX04r8Jo|Tt(DDV39ayWUi04$bi?sg8fH@L|M?}c32 zp7Psm4o?0sJai4Nm+pb?KEq#fj?E=K5&%M>ASxqcM@@Ts7pbjnK)c<}-A<%-m7Bb= zPj-BL)P|qS-GYc-TZf(MI?$Wu^7GzfcRvaMNQZxLuzxGfoZs84<$Q4BTTQK*8hJVn zJ=TZv${i)l6LWKRw9JC~Ry&(e@)^_J%S`dK5#8`*al;q6# z_{2<4&&3YNFkA^BH7x~h{jGuY^=Z-F-3@fQ0gipbvUW5Wbe1c{nO#;><&)#aDIA?5 z2j9&n*$)L^&6*HFSlG&4(b19nw{PFENFWf?R$~YPgEVEx%F3i!-yrq%YV`G80-c>L zG(0!#Xti3PqvZ_PXM0Fj>u1>2snypsLtt4snfyioK|ukyYSr>ITH_o?M@N5|%mL+c z7l?|Cgpem!5+1{!2XOT0QBbK=q@<)AIX!5#-SZ6CY_r&{sfB=maG097L)sdTV|{HY zXpN9xR^|0lQ&TT{UjRu-ahs%4$zj@Np)#2azBG|Y3<7}woShvZDk=*6{R80q`9f%F zYJ^j#{scDL91IS2LThU?oIU#oIPm%_u*fq6EM_gVHywlensZ<@PD5dtx7x|s>($Ci zRqS&i%}+%0%uaGjEKb|6bgmF=ksX^c!YarW@ZMqZv74v7yp@@ zIPp82o}Pi|=unuMnI(@0%;LeEecODO0gz%>;^s_PKBxlqU_Q4!1D z!guo03jCGsKPb7{59$^z5s8E-kw_@*B5ubcG&u5j8~}z(p7i%?=N-(=&C$B+NN?{T za&vBQ>jMKs_~Yl@VS364#6C@|R+jD)EO6A7Rx+eRgQ)Zo!j?D(5Q^Oj@n=8X^2=>o zl!skiS z1l2b>h)!?9l$58yL*W9ucONCLu3o5ADygbR;mVcINkc;mvg|zuNJK;+mX_pFfO>fQ z?F)oYG`KcY3|5;RG=2QrEnWOqEB@M9df$D()6*Rz!h=)N(_(WY!j}aQ7SP$n9Rwl< zzW01K>Fyq*0a@U5LC*oiU>Ln8LJokRp9hwg9Rbs5KisG&A`CHM&j9JYrDk4l>o9#Z zq%+=sANc3-n72Z(Zru|*Q+Gt|UlFA6=yp@!Ks^c>{ySiLdkjz+XcjABD%J zxMi;;B`RO^a21LqG8gdl_96rccBs{$=~9D!*kY@1vYfu%Vt%uKz^Ho=zYl#LSn8`- zx;fr2CqCBeyD}*Iw^O+Yi3$Rf2-00000NkvXXu0mjf3;B`> diff --git a/plugins/RetroChess/gui/images/chess-icon.png b/plugins/RetroChess/gui/images/chess-icon.png deleted file mode 100644 index a2468977de45a2af99fb065407e8d983a3d3bb05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15208 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 UI+ybv1OJkeoSJOCw0Y?N0gFX^C;$Ke diff --git a/plugins/RetroChess/gui/images/chess-notify.png b/plugins/RetroChess/gui/images/chess-notify.png deleted file mode 100644 index 2ed5d11af5af1ce77d0e6519a20378b2fef53666..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4818 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 - - -image/svg+xml \ No newline at end of file diff --git a/plugins/RetroChess/gui/images/chess.png b/plugins/RetroChess/gui/images/chess.png deleted file mode 100644 index 63c15ea76f35c8e51e3064152a4642d4c0a8f155..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5442 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 s#b%#~)F}8+MAeu - - -image/svg+xml \ No newline at end of file diff --git a/plugins/RetroChess/gui/images/king_black.svg b/plugins/RetroChess/gui/images/king_black.svg deleted file mode 100644 index 6af78a1ac..000000000 --- a/plugins/RetroChess/gui/images/king_black.svg +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - diff --git a/plugins/RetroChess/gui/images/king_white.svg b/plugins/RetroChess/gui/images/king_white.svg deleted file mode 100644 index 3bf6c2bdf..000000000 --- a/plugins/RetroChess/gui/images/king_white.svg +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - diff --git a/plugins/RetroChess/gui/images/knight_black.svg b/plugins/RetroChess/gui/images/knight_black.svg deleted file mode 100644 index ec8d31af1..000000000 --- a/plugins/RetroChess/gui/images/knight_black.svg +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - diff --git a/plugins/RetroChess/gui/images/knight_white.svg b/plugins/RetroChess/gui/images/knight_white.svg deleted file mode 100644 index 05700612a..000000000 --- a/plugins/RetroChess/gui/images/knight_white.svg +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - diff --git a/plugins/RetroChess/gui/images/muted_self.svg b/plugins/RetroChess/gui/images/muted_self.svg deleted file mode 100644 index 0a31bdc1e..000000000 --- a/plugins/RetroChess/gui/images/muted_self.svg +++ /dev/null @@ -1,1999 +0,0 @@ - - - - - muted_self - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - muted_self - - - - Martin Skilnand - - - - - Martin Skilnand - - - 2009.08.17 - - - Mumble team - - - Icon for voice chat program mumble - - - mumble muted self - - - git://mumble.git.sourceforge.net/gitroot/mumble - muted_self.svg - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/plugins/RetroChess/gui/images/pawn_black.svg b/plugins/RetroChess/gui/images/pawn_black.svg deleted file mode 100644 index 5bcc2c783..000000000 --- a/plugins/RetroChess/gui/images/pawn_black.svg +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - diff --git a/plugins/RetroChess/gui/images/pawn_white.svg b/plugins/RetroChess/gui/images/pawn_white.svg deleted file mode 100644 index 35bfc8a6e..000000000 --- a/plugins/RetroChess/gui/images/pawn_white.svg +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - diff --git a/plugins/RetroChess/gui/images/profile.png b/plugins/RetroChess/gui/images/profile.png deleted file mode 100644 index 385482c542df44b0df0b9be28e25a4cd2305dea1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3821 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 - - - - - - - image/svg+xml - - - - - - - - diff --git a/plugins/RetroChess/gui/images/queen_white.svg b/plugins/RetroChess/gui/images/queen_white.svg deleted file mode 100644 index 9ed7066a6..000000000 --- a/plugins/RetroChess/gui/images/queen_white.svg +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - diff --git a/plugins/RetroChess/gui/images/retrochess.png b/plugins/RetroChess/gui/images/retrochess.png deleted file mode 100644 index c525231a32279ebca76ca4409cfaf4abf1894723..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3939 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 - - - - - - - image/svg+xml - - - - - - - - diff --git a/plugins/RetroChess/gui/images/rook_white.svg b/plugins/RetroChess/gui/images/rook_white.svg deleted file mode 100644 index a30485b4e..000000000 --- a/plugins/RetroChess/gui/images/rook_white.svg +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - diff --git a/plugins/RetroChess/gui/tile.cpp b/plugins/RetroChess/gui/tile.cpp deleted file mode 100644 index e2f698a00..000000000 --- a/plugins/RetroChess/gui/tile.cpp +++ /dev/null @@ -1,157 +0,0 @@ -#include "tile.h" -#include "validation.h" -#include "chess.h" -#include "../interface/rsRetroChess.h" - -validation *valid = new validation(); - -/*extern int count,turn; -extern QWidget *myWidget; -extern Tile *click1; -extern Tile *tile[8][8]; -*/ -void validate(Tile *temp,int c); -void disOrange(); - - -void Tile::mousePressEvent(QMouseEvent *event) -{ - validate(++((RetroChessWindow*)parentWidget())->count); - std::string peer_id = ((RetroChessWindow*)parentWidget())->mPeerId; - rsRetroChess->chess_click(peer_id, this->row,this->col,((RetroChessWindow*)parentWidget())->count); -} - -void Tile::display(char elem) -{ - this->pieceName=elem; - - if(this->pieceColor && this->piece) - { - switch(elem) - { - case 'P': this->setPixmap(QPixmap(":/images/pawn_white.svg")); - break; - case 'R': this->setPixmap(QPixmap(":/images/rook_white.svg")); - break; - case 'H': this->setPixmap(QPixmap(":/images/knight_white.svg")); - break; - case 'K': this->setPixmap(QPixmap(":/images/king_white.svg")); - break; - case 'Q': this->setPixmap(QPixmap(":/images/queen_white.svg")); - break; - case 'B': this->setPixmap(QPixmap(":/images/bishop_white.svg")); - break; - } - } - - else if(this->piece) - { - switch(elem) - { - case 'P': this->setPixmap(QPixmap(":/images/pawn_black.svg")); - break; - case 'R': this->setPixmap(QPixmap(":/images/rook_black.svg")); - break; - case 'H': this->setPixmap(QPixmap(":/images/knight_black.svg")); - break; - case 'K': this->setPixmap(QPixmap(":/images/king_black.svg")); - break; - case 'Q': this->setPixmap(QPixmap(":/images/queen_black.svg")); - break; - case 'B': this->setPixmap(QPixmap(":/images/bishop_black.svg")); - break; - } - } - else - this->clear(); -} - -void Tile::validate(int c) -{ - Tile *temp = this; - int retValue,i; - - if(c==1) - { - if(temp->piece && (temp->pieceColor==((RetroChessWindow*)parentWidget())->turn)) - { - //texp[max++]=temp->tileNum; - retValue=((RetroChessWindow*)parentWidget())->chooser(temp); - - if(retValue) - { - ((RetroChessWindow*)parentWidget())->click1= new Tile(); - temp->setStyleSheet("QLabel {background-color: green;}"); - ((RetroChessWindow*)parentWidget())->click1=temp; - } - else - { - //temp->setStyleSheet("QLabel {background-color: red;}"); - ((RetroChessWindow*)parentWidget())->count=0; - } - } - else - { - //qDebug()<<"Rascel, clicking anywhere"; - ((RetroChessWindow*)parentWidget())->count=0; - } - } - - else - { - - if(temp->tileNum==((RetroChessWindow*)parentWidget())->click1->tileNum) - { - ((RetroChessWindow*)parentWidget())->click1->tileDisplay(); - ((RetroChessWindow*)parentWidget())->disOrange(); - ((RetroChessWindow*)parentWidget())->max=0; - ((RetroChessWindow*)parentWidget())->count=0; - } - - for(i=0;i<((RetroChessWindow*)parentWidget())->max;i++) - { - if(temp->tileNum==((RetroChessWindow*)parentWidget())->texp[i]) - { - ((RetroChessWindow*)parentWidget())->click1->piece=0; - temp->piece=1; - - temp->pieceColor=((RetroChessWindow*)parentWidget())->click1->pieceColor; - temp->pieceName=((RetroChessWindow*)parentWidget())->click1->pieceName; - - ((RetroChessWindow*)parentWidget())->click1->display(((RetroChessWindow*)parentWidget())->click1->pieceName); - temp->display(((RetroChessWindow*)parentWidget())->click1->pieceName); - - ((RetroChessWindow*)parentWidget())->click1->tileDisplay(); - temp->tileDisplay(); - - retValue=((RetroChessWindow*)parentWidget())->check(((RetroChessWindow*)parentWidget())->click1); - /* - if(retValue) - { - tile[wR][wC]->setStyleSheet("QLabel {background-color: red;}"); - } - */ - - ((RetroChessWindow*)parentWidget())->disOrange(); - - ((RetroChessWindow*)parentWidget())->max=0; - - ((RetroChessWindow*)parentWidget())->turn=(((RetroChessWindow*)parentWidget())->turn+1)%2; - ((RetroChessWindow*)parentWidget())->count=0; - } - - else - ((RetroChessWindow*)parentWidget())->count=1; - } - } -} - -void Tile::tileDisplay() -{ - - if(this->tileColor) - this->setStyleSheet("QLabel {background-color: rgb(120, 120, 90);}:hover{background-color: rgb(170,85,127);}"); - else - this->setStyleSheet("QLabel {background-color: rgb(211, 211, 158);}:hover{background-color: rgb(170,95,127);}"); -} - diff --git a/plugins/RetroChess/gui/tile.h b/plugins/RetroChess/gui/tile.h deleted file mode 100644 index 59c008c4e..000000000 --- a/plugins/RetroChess/gui/tile.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef TILE_H -#define TILE_H -#include -#include - -class Tile: public QLabel -{ -public: - - //Fields - int tileColor,piece,pieceColor,row,col,tileNum; - char pieceName; - - //Constructors - Tile(QWidget* pParent=0, Qt::WindowFlags f=0) : QLabel(pParent, f) {}; - Tile(const QString& text, QWidget* pParent = 0, Qt::WindowFlags f = 0) : QLabel(text, pParent, f){}; - - //Methods - void mousePressEvent(QMouseEvent *event); - void display(char elem); - void tileDisplay(); - void validate(int c); -}; - -void validate_tile(int row, int col, int c); - -#endif // TILE_H diff --git a/plugins/RetroChess/gui/validation.cpp b/plugins/RetroChess/gui/validation.cpp deleted file mode 100644 index 9dfc332ed..000000000 --- a/plugins/RetroChess/gui/validation.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include "validation.h" -#include -#include "string" -#include "chess.h" - - - -validation::validation() -{ - //Nothing here -// tile = ((RetroChessWindow*)parentWidget())->tile; - -} - diff --git a/plugins/RetroChess/gui/validation.h b/plugins/RetroChess/gui/validation.h deleted file mode 100644 index 9c49456d1..000000000 --- a/plugins/RetroChess/gui/validation.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef VALIDATION_H -#define VALIDATION_H -#include "tile.h" - - -class validation -{ - - int *tile; - -public: - validation(); -}; - -#endif // VALIDATION_H diff --git a/plugins/RetroChess/interface/rsRetroChess.h b/plugins/RetroChess/interface/rsRetroChess.h deleted file mode 100644 index 63d1a8ccb..000000000 --- a/plugins/RetroChess/interface/rsRetroChess.h +++ /dev/null @@ -1,57 +0,0 @@ -/* this is a simple class to make it easy for any part of the plugin to call its services */ -/**************************************************************** - * RetroShare is distributed under the following license: - * - * Copyright (C) 2015 - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - ****************************************************************/ - -// interface class for p3RetroChess service -// - -#pragma once - -#include -#include -#include -#include -#include - -class RsRetroChess ; -extern RsRetroChess *rsRetroChess; - -static const uint32_t CONFIG_TYPE_RetroChess_PLUGIN = 0xe001 ; - -class RsRetroChess -{ - public: - - virtual void ping_all() = 0; - virtual void broadcast_paint(int x, int y) = 0; - virtual void msg_all(std::string msg) = 0; - virtual void chess_click(std::string peer_id, int col, int row, int count) = 0; - virtual void qvm_msg_peer(RsPeerId peerID, QVariantMap data) = 0; - virtual void str_msg_peer(RsPeerId peerID, QString strdata) = 0; - virtual void raw_msg_peer(RsPeerId peerID, std::string msg) = 0; - virtual bool hasInviteFrom(RsPeerId peerID) = 0; - virtual bool hasInviteTo(RsPeerId peerID) = 0; - virtual void acceptedInvite(RsPeerId peerID) = 0; - virtual void gotInvite(RsPeerId peerID) = 0; - virtual void sendInvite(RsPeerId peerID) = 0; -}; - - diff --git a/plugins/RetroChess/rename_plugin.sh b/plugins/RetroChess/rename_plugin.sh deleted file mode 100644 index c63f6baab..000000000 --- a/plugins/RetroChess/rename_plugin.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -newname=$1 -oldname="RetroChess" -echo "$newname" -echo "$oldname" -find . -not -path '*/\.*' -type f -print0 | xargs -0 sed -i "s/$oldname/$newname/g" -#find . -type f -exec rename "s/$oldname/$newname/' '{}" \; -find . | sed -e "p;s/$oldname/$newname/" | xargs -n2 git mv - -echo "now change 0xb00b5 in services/*items.h to a unique value of your choice to identify your plugin!" diff --git a/plugins/RetroChess/services/p3RetroChess.cc b/plugins/RetroChess/services/p3RetroChess.cc deleted file mode 100644 index afff87ab2..000000000 --- a/plugins/RetroChess/services/p3RetroChess.cc +++ /dev/null @@ -1,411 +0,0 @@ -/**************************************************************** - * RetroShare is distributed under the following license: - * - * Copyright (C) 2015 - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - ****************************************************************/ - -#include "util/rsdir.h" -#include "retroshare/rsiface.h" -#include "pqi/pqibin.h" -#include "pqi/pqistore.h" -#include "pqi/p3linkmgr.h" -#include -#include - -#include // for std::istringstream - -#include "services/p3RetroChess.h" -#include "services/rsRetroChessItems.h" - -#include - -#include "gui/RetroChessNotify.h" - - -//#define DEBUG_RetroChess 1 - - -/* DEFINE INTERFACE POINTER! */ -RsRetroChess *rsRetroChess = NULL; - - - -#ifdef WINDOWS_SYS -#include -#include -#endif - -static double getCurrentTS() -{ - -#ifndef WINDOWS_SYS - struct timeval cts_tmp; - gettimeofday(&cts_tmp, NULL); - double cts = (cts_tmp.tv_sec) + ((double) cts_tmp.tv_usec) / 1000000.0; -#else - struct _timeb timebuf; - _ftime( &timebuf); - double cts = (timebuf.time) + ((double) timebuf.millitm) / 1000.0; -#endif - return cts; -} - -static uint64_t convertTsTo64bits(double ts) -{ - uint32_t secs = (uint32_t) ts; - uint32_t usecs = (uint32_t) ((ts - (double) secs) * 1000000); - uint64_t bits = (((uint64_t) secs) << 32) + usecs; - return bits; -} - -static double convert64bitsToTs(uint64_t bits) -{ - uint32_t usecs = (uint32_t) (bits & 0xffffffff); - uint32_t secs = (uint32_t) ((bits >> 32) & 0xffffffff); - double ts = (secs) + ((double) usecs) / 1000000.0; - - return ts; -} - -p3RetroChess::p3RetroChess(RsPluginHandler *handler,RetroChessNotify *notifier) - : RsPQIService(RS_SERVICE_TYPE_RetroChess_PLUGIN,0,handler), mRetroChessMtx("p3RetroChess"), mServiceControl(handler->getServiceControl()) , mNotify(notifier) -{ - addSerialType(new RsRetroChessSerialiser()); - - - //plugin default configuration - -} -RsServiceInfo p3RetroChess::getServiceInfo() -{ - const std::string TURTLE_APP_NAME = "RetroChess"; - const uint16_t TURTLE_APP_MAJOR_VERSION = 1; - const uint16_t TURTLE_APP_MINOR_VERSION = 0; - const uint16_t TURTLE_MIN_MAJOR_VERSION = 1; - const uint16_t TURTLE_MIN_MINOR_VERSION = 0; - - return RsServiceInfo(RS_SERVICE_TYPE_RetroChess_PLUGIN, - TURTLE_APP_NAME, - TURTLE_APP_MAJOR_VERSION, - TURTLE_APP_MINOR_VERSION, - TURTLE_MIN_MAJOR_VERSION, - TURTLE_MIN_MINOR_VERSION); -} - -int p3RetroChess::tick() -{ -#ifdef DEBUG_RetroChess - std::cerr << "ticking p3RetroChess" << std::endl; -#endif - - //processIncoming(); - //sendPackets(); - - return 0; -} - -int p3RetroChess::status() -{ - return 1; -} -#include -void p3RetroChess::str_msg_peer(RsPeerId peerID, QString strdata){ - QVariantMap map; - map.insert("type", "chat"); - map.insert("message", strdata); - - qvm_msg_peer(peerID,map); -} - -void p3RetroChess::qvm_msg_peer(RsPeerId peerID, QVariantMap data){ - QJsonDocument jsondoc = QJsonDocument::fromVariant(data); - std::string msg = jsondoc.toJson().toStdString(); - raw_msg_peer(peerID, msg); -} - -void p3RetroChess::chess_click(std::string peer_id, int col, int row, int count) -{ - QVariantMap map; - map.insert("type", "chessclick"); - map.insert("col", col); - map.insert("row", row); - map.insert("count", count); - - RsPeerId peerID = RsPeerId(peer_id); - qvm_msg_peer(peerID,map); - -} - -bool p3RetroChess::hasInviteFrom(RsPeerId peerID) -{ - return invitesFrom.find(peerID)!=invitesFrom.end(); -} -bool p3RetroChess::hasInviteTo(RsPeerId peerID) -{ - return invitesTo.find(peerID)!=invitesTo.end(); -} - -void p3RetroChess::acceptedInvite(RsPeerId peerID) -{ - std::set::iterator it =invitesTo.find(peerID); - if (it != invitesTo.end()){ - invitesTo.erase(it); - } - - it =invitesFrom.find(peerID); - if (it != invitesFrom.end()){ - invitesFrom.erase(it); - } - raw_msg_peer(peerID, "{\"type\":\"chess_accept\"}"); -} - -void p3RetroChess::gotInvite(RsPeerId peerID) -{ - - std::set::iterator it =invitesFrom.find(peerID); - if (it == invitesFrom.end()){ - invitesFrom.insert(peerID); - } -} -void p3RetroChess::sendInvite(RsPeerId peerID) -{ - - std::set::iterator it =invitesTo.find(peerID); - if (it == invitesTo.end()){ - invitesTo.insert(peerID); - } - raw_msg_peer(peerID, "{\"type\":\"chess_invite\"}"); -} - -/*void p3RetroChess::set_peer(RsPeerId peer) -{ - mPeerID = peer; -}*/ -void p3RetroChess::raw_msg_peer(RsPeerId peerID, std::string msg){ - std::cout << "MSging: " << peerID.toStdString() << "\n"; - std::cout << "MSging: " << msg << "\n"; - /* create the packet */ - RsRetroChessDataItem *pingPkt = new RsRetroChessDataItem(); - pingPkt->PeerId(peerID); - pingPkt->m_msg = msg; - pingPkt->data_size = msg.size(); - //pingPkt->mSeqNo = mCounter; - //pingPkt->mPingTS = convertTsTo64bits(ts); - - //storePingAttempt(*it, ts, mCounter); - -#ifdef DEBUG_RetroChess - std::cerr << "p3RetroChess::msg_all() With Packet:"; - std::cerr << std::endl; - pingPkt->print(std::cerr, 10); -#endif - - sendItem(pingPkt); -} - -void p3RetroChess::msg_all(std::string msg){ - /* we ping our peers */ - //if(!mServiceControl) - // return ; - - //std::set onlineIds; - std::list< RsPeerId > onlineIds; - // mServiceControl->getPeersConnected(getServiceInfo().mServiceType, onlineIds); - rsPeers->getOnlineList(onlineIds); - - double ts = getCurrentTS(); - -#ifdef DEBUG_RetroChess - std::cerr << "p3RetroChess::msg_all() @ts: " << ts; - std::cerr << std::endl; -#endif - - std::cout << "READY TO BCast: " << onlineIds.size() << "\n"; - /* prepare packets */ - std::list::iterator it; - for(it = onlineIds.begin(); it != onlineIds.end(); it++) - { - str_msg_peer(RsPeerId(*it),QString::fromStdString(msg)); - } -} - -void p3RetroChess::ping_all(){ - //TODO ping all! -} - -void p3RetroChess::broadcast_paint(int x, int y) -{ - std::list< RsPeerId > onlineIds; - // mServiceControl->getPeersConnected(getServiceInfo().mServiceType, onlineIds); - rsPeers->getOnlineList(onlineIds); - - double ts = getCurrentTS(); - - - std::cout << "READY TO PAINT: " << onlineIds.size() << "\n"; - /* prepare packets */ - std::list::iterator it; - for(it = onlineIds.begin(); it != onlineIds.end(); it++) - { - - std::cout << "painting to: " << (*it).toStdString() << "\n"; - QVariantMap map; - map.insert("type", "paint"); - map.insert("x", x); - map.insert("y", y); - - qvm_msg_peer(RsPeerId(*it),map); - /* create the packet */ - //TODO send paint packets - } -} - -//TODO mNotify->notifyReceivedPaint(item->PeerId(), item->x,item->y); - - - -void p3RetroChess::handleData(RsRetroChessDataItem *item) -{ - RsStackMutex stack(mRetroChessMtx); /****** LOCKED MUTEX *******/ - - // store the data in a queue. - - - mNotify->notifyReceivedMsg(item->PeerId(), QString::fromStdString(item->m_msg)); -} - -bool p3RetroChess::recvItem(RsItem *item) -{ - std::cout << "recvItem type: " << item->PacketSubType() << "\n"; - /* pass to specific handler */ - bool keep = false ; - - switch(item->PacketSubType()) - { - case RS_PKT_SUBTYPE_RetroChess_DATA: - handleData(dynamic_cast(item)); - keep = true ; - break; - /*case RS_PKT_SUBTYPE_RetroChess_INVITE: - if (invites.find(item->PeerId()!=invites.end())){ - invites.insert(item->PeerId()); - } - mNotify-> - - //keep = true ; - break;*/ - - default: - break; - } - - /* clean up */ - if(!keep) - delete item; - return true ; -} - - - -RsTlvKeyValue p3RetroChess::push_int_value(const std::string& key,int value) -{ - RsTlvKeyValue kv ; - kv.key = key ; - rs_sprintf(kv.value, "%d", value); - - return kv ; -} -int p3RetroChess::pop_int_value(const std::string& s) -{ - std::istringstream is(s) ; - - int val ; - is >> val ; - - return val ; -} - -bool p3RetroChess::saveList(bool& cleanup, std::list& lst) -{ - cleanup = true ; - - RsConfigKeyValueSet *vitem = new RsConfigKeyValueSet ; - - /*vitem->tlvkvs.pairs.push_back(push_int_value("P3RetroChess_CONFIG_ATRANSMIT",_atransmit)) ; - vitem->tlvkvs.pairs.push_back(push_int_value("P3RetroChess_CONFIG_VOICEHOLD",_voice_hold)) ; - vitem->tlvkvs.pairs.push_back(push_int_value("P3RetroChess_CONFIG_VADMIN" ,_vadmin)) ; - vitem->tlvkvs.pairs.push_back(push_int_value("P3RetroChess_CONFIG_VADMAX" ,_vadmax)) ; - vitem->tlvkvs.pairs.push_back(push_int_value("P3RetroChess_CONFIG_NOISE_SUP",_noise_suppress)) ; - vitem->tlvkvs.pairs.push_back(push_int_value("P3RetroChess_CONFIG_MIN_LOUDN",_min_loudness)) ; - vitem->tlvkvs.pairs.push_back(push_int_value("P3RetroChess_CONFIG_ECHO_CNCL",_echo_cancel)) ;*/ - - lst.push_back(vitem) ; - - return true ; -} -bool p3RetroChess::loadList(std::list& load) -{ - for(std::list::const_iterator it(load.begin());it!=load.end();++it) - { -#ifdef P3TURTLE_DEBUG - assert(item!=NULL) ; -#endif - RsConfigKeyValueSet *vitem = dynamic_cast(*it) ; - /* - if(vitem != NULL) - for(std::list::const_iterator kit = vitem->tlvkvs.pairs.begin(); kit != vitem->tlvkvs.pairs.end(); ++kit) - if(kit->key == "P3RetroChess_CONFIG_ATRANSMIT") - _atransmit = pop_int_value(kit->value) ; - else if(kit->key == "P3RetroChess_CONFIG_VOICEHOLD") - _voice_hold = pop_int_value(kit->value) ; - else if(kit->key == "P3RetroChess_CONFIG_VADMIN") - _vadmin = pop_int_value(kit->value) ; - else if(kit->key == "P3RetroChess_CONFIG_VADMAX") - _vadmax = pop_int_value(kit->value) ; - else if(kit->key == "P3RetroChess_CONFIG_NOISE_SUP") - _noise_suppress = pop_int_value(kit->value) ; - else if(kit->key == "P3RetroChess_CONFIG_MIN_LOUDN") - _min_loudness = pop_int_value(kit->value) ; - else if(kit->key == "P3RetroChess_CONFIG_ECHO_CNCL") - _echo_cancel = pop_int_value(kit->value) ; - - delete vitem ; - */ - } - - return true ; -} - -RsSerialiser *p3RetroChess::setupSerialiser() -{ - RsSerialiser *rsSerialiser = new RsSerialiser(); - rsSerialiser->addSerialType(new RsRetroChessSerialiser()); - rsSerialiser->addSerialType(new RsGeneralConfigSerialiser()); - - return rsSerialiser ; -} - - - - - - - - - - diff --git a/plugins/RetroChess/services/p3RetroChess.h b/plugins/RetroChess/services/p3RetroChess.h deleted file mode 100644 index b86b87dd7..000000000 --- a/plugins/RetroChess/services/p3RetroChess.h +++ /dev/null @@ -1,120 +0,0 @@ -/* this handles the networking service of this plugin */ -/**************************************************************** - * RetroShare is distributed under the following license: - * - * Copyright (C) 2015 - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - ****************************************************************/ - -#pragma once - -#include -#include -#include - -#include "services/rsRetroChessItems.h" -#include "services/p3service.h" -#include "serialiser/rstlvbase.h" -#include "rsitems/rsconfigitems.h" -#include "plugins/rspqiservice.h" -#include - -class p3LinkMgr; -class RetroChessNotify ; - - - -//!The RS VoIP Test service. - /** - * - * This is only used to test Latency for the moment. - */ - -class p3RetroChess: public RsPQIService, public RsRetroChess -// Maybe we inherit from these later - but not needed for now. -//, public p3Config, public pqiMonitor -{ - public: - p3RetroChess(RsPluginHandler *cm,RetroChessNotify *); - - /***** overloaded from rsRetroChess *****/ - - - /***** overloaded from p3Service *****/ - /*! - * This retrieves all chat msg items and also (important!) - * processes chat-status items that are in service item queue. chat msg item requests are also processed and not returned - * (important! also) notifications sent to notify base on receipt avatar, immediate status and custom status - * : notifyCustomState, notifyChatStatus, notifyPeerHasNewAvatar - * @see NotifyBase - */ - virtual int tick(); - virtual int status(); - virtual bool recvItem(RsItem *item); - - /*************** pqiMonitor callback ***********************/ - //virtual void statusChange(const std::list &plist); - - - /************* from p3Config *******************/ - virtual RsSerialiser *setupSerialiser() ; - - /*! - * chat msg items and custom status are saved - */ - virtual bool saveList(bool& cleanup, std::list&) ; - virtual bool loadList(std::list& load) ; - virtual std::string configurationFileName() const { return "RetroChess.cfg" ; } - - virtual RsServiceInfo getServiceInfo() ; - - void ping_all(); - - void broadcast_paint(int x, int y); - void msg_all(std::string msg); - void str_msg_peer(RsPeerId peerID, QString strdata); - void raw_msg_peer(RsPeerId peerID, std::string msg); - void qvm_msg_peer(RsPeerId peerID, QVariantMap data); - - void chess_click(std::string peer_id, int col, int row, int count); - //void set_peer(RsPeerId peer); - - bool hasInviteFrom(RsPeerId peerID); - bool hasInviteTo(RsPeerId peerID); - void gotInvite(RsPeerId peerID); - void acceptedInvite(RsPeerId peerID); - void sendInvite(RsPeerId peerID); -private: - - - std::set invitesTo; - std::set invitesFrom; - void handleData(RsRetroChessDataItem*) ; - - RsMutex mRetroChessMtx; - - //RsPeerId mPeerID; - - - static RsTlvKeyValue push_int_value(const std::string& key,int value) ; - static int pop_int_value(const std::string& s) ; - - - RsServiceControl *mServiceControl; - RetroChessNotify *mNotify ; - -}; diff --git a/plugins/RetroChess/services/rsRetroChessItems.cc b/plugins/RetroChess/services/rsRetroChessItems.cc deleted file mode 100644 index 9a9a6327e..000000000 --- a/plugins/RetroChess/services/rsRetroChessItems.cc +++ /dev/null @@ -1,175 +0,0 @@ -/**************************************************************** - * RetroShare is distributed under the following license: - * - * Copyright (C) 2015 - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - ****************************************************************/ - -#include -#include "serialiser/rsbaseserial.h" -#include "serialiser/rstlvbase.h" - -#include "services/rsRetroChessItems.h" - -/*** -#define RSSERIAL_DEBUG 1 -***/ - -#include - -#define HOLLERITH_LEN_SPEC 4 -/*************************************************************************/ - -std::ostream& RsRetroChessDataItem::print(std::ostream &out, uint16_t indent) -{ - printRsItemBase(out, "RsRetroChessDataItem", indent); - uint16_t int_Indent = indent + 2; - printIndent(out, int_Indent); - out << "flags: " << flags << std::endl; - - printIndent(out, int_Indent); - out << "data size: " << std::hex << data_size << std::dec << std::endl; - - printRsItemEnd(out, "RsRetroChessDataItem", indent); - return out; -} - -/*************************************************************************/ -uint32_t RsRetroChessDataItem::serial_size() const -{ - uint32_t s = 8; /* header */ - s += 4; /* flags */ - s += 4; /* data_size */ - //s += m_msg.length()+HOLLERITH_LEN_SPEC; /* data */ - s += getRawStringSize(m_msg); - - return s; -} - -/* serialise the data to the buffer */ -bool RsRetroChessDataItem::serialise(void *data, uint32_t& pktsize) -{ - uint32_t tlvsize = serial_size() ; - uint32_t offset = 0; - - if (pktsize < tlvsize) - return false; /* not enough space */ - - pktsize = tlvsize; - - bool ok = true; - - ok &= setRsItemHeader(data, tlvsize, PacketId(), tlvsize); - -#ifdef RSSERIAL_DEBUG - std::cerr << "RsRetroChessSerialiser::serialiseRetroChessDataItem() Header: " << ok << std::endl; - std::cerr << "RsRetroChessSerialiser::serialiseRetroChessDataItem() Size: " << tlvsize << std::endl; -#endif - - /* skip the header */ - offset += 8; - - /* add mandatory parts first */ - ok &= setRawUInt32(data, tlvsize, &offset, flags); - ok &= setRawUInt32(data, tlvsize, &offset, data_size); - - - ok &= setRawString(data, tlvsize, &offset, m_msg ); - std::cout << "string sizes: " << getRawStringSize(m_msg) << " OR " << m_msg.size() << "\n"; - - if (offset != tlvsize) - { - ok = false; - std::cerr << "RsRetroChessSerialiser::serialiseRetroChessPingItem() Size Error! " << std::endl; - std::cerr << "expected " << tlvsize << " got " << offset << std::endl; - std::cerr << "m_msg looks like " << m_msg << std::endl; - } - - return ok; -} -/* serialise the data to the buffer */ - -/*************************************************************************/ -/*************************************************************************/ - -RsRetroChessDataItem::RsRetroChessDataItem(void *data, uint32_t pktsize) - : RsRetroChessItem(RS_PKT_SUBTYPE_RetroChess_DATA) -{ - /* get the type and size */ - uint32_t rstype = getRsItemId(data); - uint32_t rssize = getRsItemSize(data); - - uint32_t offset = 0; - - if ((RS_PKT_VERSION_SERVICE != getRsItemVersion(rstype)) || (RS_SERVICE_TYPE_RetroChess_PLUGIN != getRsItemService(rstype)) || (RS_PKT_SUBTYPE_RetroChess_DATA != getRsItemSubType(rstype))) - throw std::runtime_error("Wrong packet subtype") ; - - if (pktsize < rssize) /* check size */ - throw std::runtime_error("Not enough space") ; - - bool ok = true; - - /* skip the header */ - offset += 8; - - /* get mandatory parts first */ - ok &= getRawUInt32(data, rssize, &offset, &flags); - ok &= getRawUInt32(data, rssize, &offset, &data_size); - - - ok &= getRawString(data, rssize, &offset, m_msg ); - - if (offset != rssize) - throw std::runtime_error("Serialization error.") ; - - if (!ok) - throw std::runtime_error("Serialization error.") ; -} -/*************************************************************************/ - -RsItem* RsRetroChessSerialiser::deserialise(void *data, uint32_t *pktsize) -{ -#ifdef RSSERIAL_DEBUG - std::cerr << "RsRetroChessSerialiser::deserialise()" << std::endl; -#endif - - /* get the type and size */ - uint32_t rstype = getRsItemId(data); - - if ((RS_PKT_VERSION_SERVICE != getRsItemVersion(rstype)) || (RS_SERVICE_TYPE_RetroChess_PLUGIN != getRsItemService(rstype))) - return NULL ; - - try - { - switch(getRsItemSubType(rstype)) - { - case RS_PKT_SUBTYPE_RetroChess_DATA: return new RsRetroChessDataItem(data, *pktsize); - - default: - return NULL; - } - } - catch(std::exception& e) - { - std::cerr << "RsRetroChessSerialiser: deserialization error: " << e.what() << std::endl; - return NULL; - } -} - - -/*************************************************************************/ - diff --git a/plugins/RetroChess/services/rsRetroChessItems.h b/plugins/RetroChess/services/rsRetroChessItems.h deleted file mode 100644 index b07ca5b7b..000000000 --- a/plugins/RetroChess/services/rsRetroChessItems.h +++ /dev/null @@ -1,125 +0,0 @@ -/* this describes the datatypes sent over the network, and how to (de)serialise them */ -/**************************************************************** - * RetroShare is distributed under the following license: - * - * Copyright (C) 2015 - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - ****************************************************************/ - -#pragma once - -/* - * libretroshare/src/serialiser: rsRetroChessItems.h - * - * RetroShare Serialiser. - * - * Copyright 2011 by Robert Fernie. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License Version 2 as published by the Free Software Foundation. - * - * This library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - * USA. - * - * Please report all bugs and problems to "retroshare@lunamutt.com". - * - */ - -#include - -#include "rsitems/rsserviceids.h" -#include "serialiser/rsserial.h" -#include "rsitems/rsitem.h" - - -/**************************************************************************/ - -const uint16_t RS_SERVICE_TYPE_RetroChess_PLUGIN = 0xc4e55; - -const uint8_t RS_PKT_SUBTYPE_RetroChess_DATA = 0x01; - -const uint8_t QOS_PRIORITY_RS_RetroChess = 9 ; - - -class RsRetroChessItem: public RsItem -{ - public: - RsRetroChessItem(uint8_t RetroChess_subtype) - : RsItem(RS_PKT_VERSION_SERVICE,RS_SERVICE_TYPE_RetroChess_PLUGIN,RetroChess_subtype) - { - setPriorityLevel(QOS_PRIORITY_RS_RetroChess) ; - } - - virtual ~RsRetroChessItem() {}; - virtual void clear() {}; - virtual std::ostream& print(std::ostream &out, uint16_t indent = 0) = 0 ; - - virtual bool serialise(void *data,uint32_t& size) = 0 ; // Isn't it better that items can serialise themselves ? - virtual uint32_t serial_size() const = 0 ; // deserialise is handled using a constructor -}; - - -class RsRetroChessDataItem: public RsRetroChessItem -{ - public: - RsRetroChessDataItem() :RsRetroChessItem(RS_PKT_SUBTYPE_RetroChess_DATA) {} - RsRetroChessDataItem(void *data,uint32_t size) ; // de-serialization - - virtual bool serialise(void *data,uint32_t& size) ; - virtual uint32_t serial_size() const ; - - virtual ~RsRetroChessDataItem() - { - } - virtual std::ostream& print(std::ostream &out, uint16_t indent = 0); - - uint32_t flags ; - uint32_t data_size ; - std::string m_msg; -}; - - -class RsRetroChessSerialiser: public RsSerialType -{ - public: - RsRetroChessSerialiser() - :RsSerialType(RS_PKT_VERSION_SERVICE, RS_SERVICE_TYPE_RetroChess_PLUGIN) - { - } - virtual ~RsRetroChessSerialiser() {} - - virtual uint32_t size (RsItem *item) - { - return dynamic_cast(item)->serial_size() ; - } - - virtual bool serialise (RsItem *item, void *data, uint32_t *size) - { - return dynamic_cast(item)->serialise(data,*size) ; - } - virtual RsItem *deserialise(void *data, uint32_t *size); -}; - -/**************************************************************************/ From 05260ace94833685c9f1966ef37e85a227f7983c Mon Sep 17 00:00:00 2001 From: Gioacchino Mazzurco Date: Wed, 30 Oct 2019 14:24:19 +0100 Subject: [PATCH 04/15] Backport as_const C++17 helper This is expecially useful to use const_iterator without giving up on using auto keyword --- libretroshare/src/libretroshare.pro | 1 + libretroshare/src/util/cxx17retrocompat.h | 35 +++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 libretroshare/src/util/cxx17retrocompat.h diff --git a/libretroshare/src/libretroshare.pro b/libretroshare/src/libretroshare.pro index 01cbc8852..360eb4ab8 100644 --- a/libretroshare/src/libretroshare.pro +++ b/libretroshare/src/libretroshare.pro @@ -503,6 +503,7 @@ HEADERS += util/folderiterator.h \ util/stacktrace.h \ util/rsdeprecate.h \ util/cxx11retrocompat.h \ + util/cxx17retrocompat.h \ util/rsurl.h SOURCES += ft/ftchunkmap.cc \ diff --git a/libretroshare/src/util/cxx17retrocompat.h b/libretroshare/src/util/cxx17retrocompat.h new file mode 100644 index 000000000..58cdfe84c --- /dev/null +++ b/libretroshare/src/util/cxx17retrocompat.h @@ -0,0 +1,35 @@ +/******************************************************************************* + * libretroshare/src/util: cxx17retrocompat.h * + * * + * libretroshare: retroshare core library * + * * + * Copyright (C) 2019 Gioacchino Mazzurco * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU Lesser 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 Lesser General Public License for more details. * + * * + * You should have received a copy of the GNU Lesser General Public License * + * along with this program. If not, see . * + * * + *******************************************************************************/ +#pragma once + +#if __cplusplus < 201703L + +#include + +namespace std +{ +using namespace std; +template constexpr typename add_const::type& as_const(T& t) noexcept +{ return t; } +template void as_const(const T&&) = delete; +} +#endif // __cplusplus < 201703L From bee9dfc19e454d1257b155fa9639e00b5925e2cb Mon Sep 17 00:00:00 2001 From: Gioacchino Mazzurco Date: Wed, 30 Oct 2019 14:25:27 +0100 Subject: [PATCH 05/15] Implement comfortable flags type based on scoped enums --- libretroshare/src/retroshare/rsflags.h | 135 +++++++++++++++++++++++-- 1 file changed, 124 insertions(+), 11 deletions(-) diff --git a/libretroshare/src/retroshare/rsflags.h b/libretroshare/src/retroshare/rsflags.h index 51e91e9a1..cdea3f5be 100644 --- a/libretroshare/src/retroshare/rsflags.h +++ b/libretroshare/src/retroshare/rsflags.h @@ -3,7 +3,8 @@ * * * libretroshare: retroshare core library * * * - * Copyright 2012-2019 by Retroshare Team * + * Copyright (C) 2012-2019 by Retroshare Team * + * Copyright (C) 2019 Gioacchino Mazzurco * * * * This program is free software: you can redistribute it and/or modify * * it under the terms of the GNU Lesser General Public License as * @@ -21,18 +22,129 @@ *******************************************************************************/ #pragma once +#include +#include + +/** Check if given type is a scoped enum */ +template +using rs_is_scoped_enum = std::integral_constant< bool, + std::is_enum::value && !std::is_convertible::value >; + +/** + * @brief Register enum class as flags type + * To use this macro define a scoped enum with your flag values, then register + * it as flags type passing it as parameter of this macro. + * The result will be type safe flags, that cannot be mixed up with flag of a + * different type, but that are very comfortable to operate like plain old + * integers. + * This macro support flag fields of different lenght depending on what + * underlining type (usually from uint8_t up to uint64_t) has been declared for + * the enum class. + * If you plan to serialize those flags it is important to specify the + * underlining type of the enum otherwise different compilers may serialize a + * flag variable with different lenght, potentially causing interoperability + * issues between differents builds. + * Usage example: +@code{.cpp} +enum class RsGrouterItemFlags : uint32_t +{ + NONE = 0x0, + ENCRYPTED = 0x1, + SERVICE_UNKNOWN = 0x2 +}; +RS_REGISTER_ENUM_FLAGS_TYPE(RsGrouterItemFlags) +@endcode + */ +#define RS_REGISTER_ENUM_FLAGS_TYPE(eft) \ +template<> struct Rs__BitFlagsOps \ +{ \ + static_assert( std::is_enum::value, \ + "Are you trying to register a non-enum type as flags?" ); \ + static_assert( rs_is_scoped_enum::value, \ + "Are you trying to register an unscoped enum as flags?" ); \ + static constexpr bool enabled = true; \ +}; + +// By defaults types are not valid flags, so bit flags operators are disabled +template struct Rs__BitFlagsOps +{ static constexpr bool enabled = false; }; + +template +typename std::enable_if::enabled, EFT>::type +/*EFT*/ operator &(EFT lhs, EFT rhs) +{ + using u_t = typename std::underlying_type::type; + return static_cast(static_cast(lhs) & static_cast(rhs)); +} + +template +typename std::enable_if::enabled, EFT>::type +/*EFT*/ operator &=(EFT& lhs, EFT rhs) { lhs = lhs & rhs; return lhs; } + +template +typename std::enable_if::enabled, EFT>::type +/*EFT*/ operator |(EFT lhs, EFT rhs) +{ + using u_t = typename std::underlying_type::type; + return static_cast(static_cast(lhs) | static_cast(rhs)); +} + +template +typename std::enable_if::enabled, EFT>::type +/*EFT*/ operator |=(EFT& lhs, EFT rhs) { lhs = lhs | rhs; return lhs; } + + +template +typename std::enable_if::enabled, EFT>::type +/*EFT*/ operator ^(EFT lhs, EFT rhs) +{ + using u_t = typename std::underlying_type::type; + return static_cast(static_cast(lhs) ^ static_cast(rhs)); +} + +template +typename std::enable_if::enabled, EFT>::type +/*EFT*/ operator ^=(EFT& lhs, EFT rhs) { lhs = lhs ^ rhs; return lhs; } + +template +typename std::enable_if::enabled, EFT>::type +operator ~(EFT val) +{ + using u_t = typename std::underlying_type::type; + return static_cast(~static_cast(val)); +} + +template +typename std::enable_if::enabled, bool>::type +operator !(EFT val) +{ + using u_t = typename std::underlying_type::type; + return static_cast(val) == 0; +} + +/// Nicely print flags bits as 1 and 0 +template +typename std::enable_if::enabled, std::ostream>::type& +operator <<(std::ostream& stream, EFT flags) +{ + using u_t = typename std::underlying_type::type; + + for(int i = sizeof(u_t); i>=0; --i) + { + stream << (flags & ( 1 << i ) ? "1" : "0"); + if( i % 8 == 0 ) stream << " "; + } + return stream; +} + #include +#include "util/rsdeprecate.h" -/* G10h4ck: TODO we should redefine flags in a way that the flag declaration and - * the flags values (bit fields) would be strongly logically linked. - * A possible way is to take an enum class containing the names of each - * bitfield and corresponding value as template parameter, this way would also - * avoid the need of dumb template parameter that is used only to make the - * types incompatible but that doesn't help finding what are the possible values - * for a kind of flag. Another appealing approach seems the first one described - * here https://softwareengineering.stackexchange.com/questions/194412/using-scoped-enums-for-bit-flags-in-c - * a few simple macros could be used instead of the template class */ +/** + * @deprecated t_RsFlags32 has been deprecated because the newer + * @see RS_REGISTER_ENUM_FLAGS_TYPE provide more convenient flags facilities. + * // This class provides a representation for flags that can be combined with bitwise // operations. However, because the class is templated with an id, it's not possible to // mixup flags belonging to different classes. This avoids many bugs due to confusion of flags types @@ -51,7 +163,8 @@ // - an explicit constructor from uint32_t // - an implicit bool operator, that allows test like if(flags & FLAGS_VALUE) // -template class t_RsFlags32 +*/ +template class RS_DEPRECATED_FOR(RS_REGISTER_ENUM_FLAGS_TYPE) t_RsFlags32 { public: inline t_RsFlags32() : _bits(0) {} From 7697a576115c8634b2ce514c1965f1e59b9f2eb4 Mon Sep 17 00:00:00 2001 From: Gioacchino Mazzurco Date: Thu, 7 Nov 2019 19:54:11 +0100 Subject: [PATCH 06/15] Backport rs_unique_cast from grouter_missing_key branch --- libretroshare/src/util/rsmemory.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/libretroshare/src/util/rsmemory.h b/libretroshare/src/util/rsmemory.h index 8bbbc335a..01dc4d8d8 100644 --- a/libretroshare/src/util/rsmemory.h +++ b/libretroshare/src/util/rsmemory.h @@ -62,6 +62,35 @@ bool myFunnyFunction( */ #define RS_DEFAULT_STORAGE_PARAM(Type,...) *std::unique_ptr(new Type(__VA_ARGS__)) + +/** @brief Safely dynamic cast between std::unique_ptr of different types + * std::unique_ptr semantic rely on the invariant that only one instance own + * the object, when casting between differents types one would be tempted to do + * it in a one liner that easly end up breaking that condition ending up in a + * double delete and crash or in a silent memleak. + * With this function one can do that with same comfort of a plain dynamic_cast, + * plus the std::unique_ptr safety. + * @param[inout] src reference to source pointer. If the cast is successfull it + * is released, otherwise it is left untouched. + * @param[out] dst reference to destination pointer. If the cast is successful + * it get reseated to the object address, otherwise it is left untouched. + * @return true on success, false otherwise + */ +template +bool rs_unique_cast( + std::unique_ptr& src, std::unique_ptr& dst ) +{ + T_DST* dstPtr = dynamic_cast(src.get()); + if(dstPtr) + { + src.release(); + dst.reset(dstPtr); + return true; + } + return false; +} + + void *rs_malloc(size_t size) ; // This is a scope guard to release the memory block when going of of the current scope. From 056904c90b62a34b45a4f9e40204ac69af60d232 Mon Sep 17 00:00:00 2001 From: Gioacchino Mazzurco Date: Mon, 11 Nov 2019 11:14:28 +0100 Subject: [PATCH 07/15] Improve RsUrl Fix a bug in RsUrl::fromString eating one character when parsing URL string with IPv6 host Offer explicit conversion from sockaddr_storage --- libretroshare/src/util/rsurl.cc | 35 ++++++++++++++++++++++++++------- libretroshare/src/util/rsurl.h | 5 ++++- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/libretroshare/src/util/rsurl.cc b/libretroshare/src/util/rsurl.cc index e625815e4..dd01d7384 100644 --- a/libretroshare/src/util/rsurl.cc +++ b/libretroshare/src/util/rsurl.cc @@ -1,6 +1,6 @@ /* * RetroShare - * Copyright (C) 2018 Gioacchino Mazzurco + * Copyright (C) 2018-2019 Gioacchino Mazzurco * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -17,15 +17,16 @@ */ -#include "rsurl.h" -#include "serialiser/rstypeserializer.h" - #include #include #include #include #include +#include "rsurl.h" +#include "serialiser/rstypeserializer.h" +#include "util/rsnet.h" + using namespace std; RsUrl::RsUrl() : mPort(0), mHasPort(false) {} @@ -33,6 +34,26 @@ RsUrl::RsUrl() : mPort(0), mHasPort(false) {} RsUrl::RsUrl(const std::string& urlStr) : mPort(0), mHasPort(false) { fromString(urlStr); } +RsUrl::RsUrl(const sockaddr_storage& addr): mPort(0), mHasPort(false) +{ + switch(addr.ss_family) + { + case AF_INET: setScheme("ipv4"); break; + case AF_INET6: setScheme("ipv6"); break; + default: + { + std::string addrDump; + sockaddr_storage_dump(addr, &addrDump); + RsErr() << __PRETTY_FUNCTION__ << " got invalid addr: " << addrDump + << std::endl; + return; + } + } + + setHost(sockaddr_storage_iptostring(addr)); + setPort(sockaddr_storage_port(addr)); +} + RsUrl& RsUrl::fromString(const std::string& urlStr) { size_t endI = urlStr.size()-1; @@ -55,7 +76,7 @@ RsUrl& RsUrl::fromString(const std::string& urlStr) { if(++hostBeginI >= endI) return *this; hostEndI = urlStr.find(ipv6WrapClose, hostBeginI); - mHost = urlStr.substr(hostBeginI, hostEndI - hostBeginI - 1); + mHost = urlStr.substr(hostBeginI, hostEndI - hostBeginI); ++hostEndI; } else @@ -250,10 +271,10 @@ RsUrl& RsUrl::setFragment(const std::string& fragment) size_t boundary = len-2; // % Encoded char must be at least 2 hex char for (size_t i = 0; i < len; ++i) { - if(str[i] == '%' && i < boundary) { - decoded << static_cast(std::stoi(str.substr(++i, 2), 0, 16)); + decoded << static_cast(std::stoi( + str.substr(++i, 2), nullptr, 16 )); ++i; } else decoded << str[i]; diff --git a/libretroshare/src/util/rsurl.h b/libretroshare/src/util/rsurl.h index f02c7f636..0610585c5 100644 --- a/libretroshare/src/util/rsurl.h +++ b/libretroshare/src/util/rsurl.h @@ -22,6 +22,8 @@ #include "serialiser/rsserializable.h" +struct sockaddr_storage; + /** * Very simplistic and minimal URL helper class for RetroShare, after looking * for a small and self-contained C/C++ URL parsing and manipulation library, @@ -36,7 +38,8 @@ struct RsUrl : RsSerializable { RsUrl(); - RsUrl(const std::string& urlStr); + explicit RsUrl(const std::string& urlStr); + explicit RsUrl(const sockaddr_storage& ssas); RsUrl& fromString(const std::string& urlStr); std::string toString() const; From 229c2206a49a97728975cdd6cfa6bd68573db123 Mon Sep 17 00:00:00 2001 From: Dimitris Apostolou Date: Mon, 11 Nov 2019 21:06:30 +0200 Subject: [PATCH 08/15] Support for macOS 10.15 Catalina --- retroshare.pri | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/retroshare.pri b/retroshare.pri index e266755bb..5224ecb81 100644 --- a/retroshare.pri +++ b/retroshare.pri @@ -159,6 +159,7 @@ rs_macos10.10:CONFIG -= rs_macos10.11 rs_macos10.12:CONFIG -= rs_macos10.11 rs_macos10.13:CONFIG -= rs_macos10.11 rs_macos10.14:CONFIG -= rs_macos10.11 +rs_macos10.15:CONFIG -= rs_macos10.11 # To enable JSON API append the following assignation to qmake command line # "CONFIG+=rs_jsonapi" @@ -760,6 +761,13 @@ macx-* { QMAKE_CXXFLAGS += -Wno-nullability-completeness QMAKE_CFLAGS += -Wno-nullability-completeness } + rs_macos10.15 { + message(***retroshare.pri: Set Target and SDK to MacOS 10.15 ) + QMAKE_MACOSX_DEPLOYMENT_TARGET=10.15 + QMAKE_MAC_SDK = macosx10.15 + QMAKE_CXXFLAGS += -Wno-nullability-completeness + QMAKE_CFLAGS += -Wno-nullability-completeness + } From ca6071fa214a7c777eb6427a538c66391cc5313e Mon Sep 17 00:00:00 2001 From: Gioacchino Mazzurco Date: Mon, 11 Nov 2019 23:49:06 +0100 Subject: [PATCH 09/15] fixup! Improve RsUrl --- libretroshare/src/pqi/p3peermgr.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libretroshare/src/pqi/p3peermgr.cc b/libretroshare/src/pqi/p3peermgr.cc index eced429a4..564eb44b8 100644 --- a/libretroshare/src/pqi/p3peermgr.cc +++ b/libretroshare/src/pqi/p3peermgr.cc @@ -1170,8 +1170,8 @@ bool p3PeerMgrIMPL::addSslOnlyFriend( * previously known IP addresses */ if(!dt.isHiddenNode) { - for(const std::string& locator : dt.ipAddressList) - addPeerLocator(sslId, locator); + for(const std::string& ipStr : dt.ipAddressList) + addPeerLocator(sslId, RsUrl(ipStr)); if(dt.extPort && !dt.extAddr.empty()) { From 836a872fd63f74d06f9b5d9f11fe9535d525c9b6 Mon Sep 17 00:00:00 2001 From: defnax Date: Mon, 18 Nov 2019 18:52:27 +0100 Subject: [PATCH 10/15] Added for Channel Messages to checkt the length --- .../gui/gxschannels/CreateGxsChannelMsg.cpp | 36 ++++++++++- .../src/gui/gxschannels/CreateGxsChannelMsg.h | 2 + .../gui/gxschannels/CreateGxsChannelMsg.ui | 62 ++++++++++++------- 3 files changed, 77 insertions(+), 23 deletions(-) diff --git a/retroshare-gui/src/gui/gxschannels/CreateGxsChannelMsg.cpp b/retroshare-gui/src/gui/gxschannels/CreateGxsChannelMsg.cpp index 66e871fd1..fa038f7fc 100644 --- a/retroshare-gui/src/gui/gxschannels/CreateGxsChannelMsg.cpp +++ b/retroshare-gui/src/gui/gxschannels/CreateGxsChannelMsg.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include "CreateGxsChannelMsg.h" #include "gui/gxs/GxsIdDetails.h" @@ -72,7 +73,8 @@ CreateGxsChannelMsg::CreateGxsChannelMsg(const RsGxsGroupId &cId, RsGxsMessageId connect(thumbNailCb, SIGNAL(toggled(bool)), this, SLOT(allowAutoMediaThumbNail(bool))); connect(tabWidget, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextMenu(QPoint))); connect(generateCheckBox, SIGNAL(toggled(bool)), generateSpinBox, SLOT(setEnabled(bool))); - + connect(addPictureButton, SIGNAL(clicked()), this, SLOT(addPicture())); + connect(msgEdit, SIGNAL(textChanged()), this, SLOT(checkLength())); generateSpinBox->setEnabled(false); thumbNailCb->setVisible(false); @@ -94,6 +96,26 @@ CreateGxsChannelMsg::CreateGxsChannelMsg(const RsGxsGroupId &cId, RsGxsMessageId #endif } +static const uint32_t MAX_ALLOWED_GXS_MESSAGE_SIZE = 199000; + +void CreateGxsChannelMsg::checkLength() +{ + QString text; + RsHtml::optimizeHtml(msgEdit, text); + std::wstring msg = text.toStdWString(); + int charRemains = MAX_ALLOWED_GXS_MESSAGE_SIZE - msg.length(); + if(charRemains >= 0) { + text = tr("It remains %1 characters after HTML conversion.").arg(charRemains); + infoLabel->setStyleSheet("QLabel#infoLabel { }"); + }else{ + text = tr("Warning: This message is too big of %1 characters after HTML conversion.").arg((0-charRemains)); + infoLabel->setStyleSheet("QLabel#infoLabel {color: red; font: bold; }"); + } + buttonBox->button(QDialogButtonBox::Ok)->setToolTip(text); + buttonBox->button(QDialogButtonBox::Ok)->setEnabled(charRemains>=0); + infoLabel->setText(text); +} + CreateGxsChannelMsg::~CreateGxsChannelMsg() { Settings->saveWidgetInformation(this); @@ -741,6 +763,18 @@ void CreateGxsChannelMsg::addThumbnail() thumbnail_label->setPixmap(picture); } +void CreateGxsChannelMsg::addPicture() +{ + QString file; + if (misc::getOpenFileName(window(), RshareSettings::LASTDIR_IMAGES, tr("Load Picture File"), "Pictures (*.png *.xpm *.jpg *.jpeg)", file)) { + QString encodedImage; + if (RsHtml::makeEmbeddedImage(file, encodedImage, 640*480, MAX_ALLOWED_GXS_MESSAGE_SIZE - 200)) { + QTextDocumentFragment fragment = QTextDocumentFragment::fromHtml(encodedImage); + msgEdit->textCursor().insertFragment(fragment); + } + } +} + void CreateGxsChannelMsg::loadChannelPostInfo(const uint32_t &token) { #ifdef DEBUG_CREATE_GXS_MSG diff --git a/retroshare-gui/src/gui/gxschannels/CreateGxsChannelMsg.h b/retroshare-gui/src/gui/gxschannels/CreateGxsChannelMsg.h index bb8f15518..96b9dd6d3 100644 --- a/retroshare-gui/src/gui/gxschannels/CreateGxsChannelMsg.h +++ b/retroshare-gui/src/gui/gxschannels/CreateGxsChannelMsg.h @@ -69,6 +69,8 @@ private slots: void contextMenu(QPoint) ; void addThumbnail(); + void addPicture(); + void checkLength(); void allowAutoMediaThumbNail(bool); private: diff --git a/retroshare-gui/src/gui/gxschannels/CreateGxsChannelMsg.ui b/retroshare-gui/src/gui/gxschannels/CreateGxsChannelMsg.ui index 3f4cd7d4b..8b53c93d6 100644 --- a/retroshare-gui/src/gui/gxschannels/CreateGxsChannelMsg.ui +++ b/retroshare-gui/src/gui/gxschannels/CreateGxsChannelMsg.ui @@ -6,8 +6,8 @@ 0 0 - 875 - 659 + 671 + 513
@@ -96,19 +96,6 @@ - - - - <!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;"><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:'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> - - - @@ -131,6 +118,30 @@ p, li { white-space: pre-wrap; } + + + + Add Picture + + + + :/images/add_image24.png:/images/add_image24.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:'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:'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> + + + @@ -194,6 +205,13 @@ p, li { white-space: pre-wrap; } + + + + + + + @@ -302,8 +320,8 @@ p, li { white-space: pre-wrap; } 0 0 - 767 - 42 + 812 + 24 @@ -390,17 +408,17 @@ p, li { white-space: pre-wrap; } + + MimeTextEdit + QTextEdit +
gui/common/MimeTextEdit.h
+
HeaderFrame QFrame
gui/common/HeaderFrame.h
1
- - MimeTextEdit - QTextEdit -
gui/common/MimeTextEdit.h
-
From bbee5690a8567893bb11408d8c48f82578f2b83a Mon Sep 17 00:00:00 2001 From: defnax Date: Wed, 20 Nov 2019 22:07:44 +0100 Subject: [PATCH 11/15] Fixed Settings Button on the Chat Widget for the darkstyles --- retroshare-gui/src/gui/chat/ChatWidget.cpp | 18 +++++++++--------- retroshare-gui/src/gui/chat/ChatWidget.ui | 3 +++ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/retroshare-gui/src/gui/chat/ChatWidget.cpp b/retroshare-gui/src/gui/chat/ChatWidget.cpp index 94fca3d99..326a95d4a 100644 --- a/retroshare-gui/src/gui/chat/ChatWidget.cpp +++ b/retroshare-gui/src/gui/chat/ChatWidget.cpp @@ -92,26 +92,26 @@ ChatWidget::ChatWidget(QWidget *parent) lastMsgDate = QDate::currentDate(); //Resize Tool buttons - ui->emoteiconButton->setFixedSize(buttonSize); + //ui->emoteiconButton->setFixedSize(buttonSize); ui->emoteiconButton->setIconSize(iconSize); - ui->stickerButton->setFixedSize(buttonSize); + //ui->stickerButton->setFixedSize(buttonSize); ui->stickerButton->setIconSize(iconSize); - ui->attachPictureButton->setFixedSize(buttonSize); + //ui->attachPictureButton->setFixedSize(buttonSize); ui->attachPictureButton->setIconSize(iconSize); - ui->addFileButton->setFixedSize(buttonSize); + //ui->addFileButton->setFixedSize(buttonSize); ui->addFileButton->setIconSize(iconSize); - ui->pushtoolsButton->setFixedSize(buttonSize); + //ui->pushtoolsButton->setFixedSize(buttonSize); ui->pushtoolsButton->setIconSize(iconSize); - ui->notifyButton->setFixedSize(buttonSize); + //ui->notifyButton->setFixedSize(buttonSize); ui->notifyButton->setIconSize(iconSize); - ui->markButton->setFixedSize(buttonSize); + //ui->markButton->setFixedSize(buttonSize); ui->markButton->setIconSize(iconSize); ui->leSearch->setFixedHeight(iconHeight); ui->searchBefore->setFixedHeight(iconHeight); ui->searchAfter->setFixedHeight(iconHeight); - ui->searchButton->setFixedSize(buttonSize); + //ui->searchButton->setFixedSize(buttonSize); ui->searchButton->setIconSize(iconSize); - ui->sendButton->setFixedHeight(iconHeight); + //ui->sendButton->setFixedHeight(iconHeight); ui->sendButton->setIconSize(iconSize); ui->typingLabel->setMaximumHeight(QFontMetricsF(font()).height()*1.2); diff --git a/retroshare-gui/src/gui/chat/ChatWidget.ui b/retroshare-gui/src/gui/chat/ChatWidget.ui index a7af7c79f..cce118f78 100644 --- a/retroshare-gui/src/gui/chat/ChatWidget.ui +++ b/retroshare-gui/src/gui/chat/ChatWidget.ui @@ -332,6 +332,9 @@ border-image: url(:/images/closepressed.png) QFrame::Sunken
+ + 3 + 2 From c22524d5d10384158e9232803944ff7a319a0ecf Mon Sep 17 00:00:00 2001 From: defnax Date: Fri, 22 Nov 2019 13:58:25 +0100 Subject: [PATCH 12/15] updated tray menu icons --- retroshare-gui/src/gui/MainWindow.cpp | 11 ++-- retroshare-gui/src/gui/icons.qrc | 9 ++- .../src/gui/icons/png/bandwidth.png | Bin 0 -> 2291 bytes retroshare-gui/src/gui/icons/png/exit2.png | Bin 0 -> 4044 bytes .../src/gui/icons/png/netgraph2.png | Bin 0 -> 4844 bytes retroshare-gui/src/gui/icons/png/options2.png | Bin 0 -> 4298 bytes .../src/gui/icons/svg/netgraph2.svg | 51 +++++++++++++++ .../src/gui/icons/svg/options-blank.svg | 59 ++++++++++++++++++ retroshare-gui/src/gui/msgs/MessagesDialog.h | 2 +- 9 files changed, 124 insertions(+), 8 deletions(-) create mode 100644 retroshare-gui/src/gui/icons/png/bandwidth.png create mode 100644 retroshare-gui/src/gui/icons/png/exit2.png create mode 100644 retroshare-gui/src/gui/icons/png/netgraph2.png create mode 100644 retroshare-gui/src/gui/icons/png/options2.png create mode 100644 retroshare-gui/src/gui/icons/svg/netgraph2.svg create mode 100644 retroshare-gui/src/gui/icons/svg/options-blank.svg diff --git a/retroshare-gui/src/gui/MainWindow.cpp b/retroshare-gui/src/gui/MainWindow.cpp index b0a438930..e0e3d838e 100644 --- a/retroshare-gui/src/gui/MainWindow.cpp +++ b/retroshare-gui/src/gui/MainWindow.cpp @@ -121,8 +121,11 @@ #include #define IMAGE_QUIT ":/icons/png/exit.png" -#define IMAGE_PREFERENCES ":/icons/png/options.png" +#define IMAGE_PREFERENCES ":/icons/png/options2.png" #define IMAGE_ABOUT ":/icons/png/info.png" +#define IMAGE_STATS ":/icons/png/netgraph2.png" +#define IMAGE_CLOSE ":/icons/png/exit2.png" + #define IMAGE_ADDFRIEND ":/icons/png/invite.png" #define IMAGE_RETROSHARE ":/icons/logo_128.png" #define IMAGE_NOONLINE ":/icons/logo_0_connected_128.png" @@ -130,9 +133,8 @@ #define IMAGE_TWOONLINE ":/icons/logo_2_connected_128.png" #define IMAGE_OVERLAY ":/icons/star_overlay_128.png" -#define IMAGE_BWGRAPH ":/images/ksysguard.png" +#define IMAGE_BWGRAPH ":/icons/png/bandwidth.png" #define IMAGE_MESSENGER ":/images/rsmessenger48.png" -#define IMAGE_CLOSE ":/images/close_normal.png" #define IMAGE_BLOCK ":/images/blockdevice.png" #define IMAGE_COLOR ":/images/highlight.png" #define IMAGE_GAMES ":/images/kgames.png" @@ -146,7 +148,6 @@ #define IMAGE_PLUGINS ":/images/extension_32.png" #define IMAGE_BLOGS ":/images/kblogger.png" -#define IMAGE_DHT ":/images/dht16.png" /*static*/ bool MainWindow::hiddenmode = false; @@ -609,7 +610,7 @@ void MainWindow::createTrayIcon() trayMenu->addAction(QIcon(":/images/emblem-web.png"), tr("Show web interface"), this, SLOT(showWebinterface())); #endif // ENABLE_WEBUI trayMenu->addAction(QIcon(IMAGE_BWGRAPH), tr("Bandwidth Graph"), this, SLOT(showBandwidthGraph())); - trayMenu->addAction(QIcon(IMAGE_DHT), tr("Statistics"), this, SLOT(showStatisticsWindow())); + trayMenu->addAction(QIcon(IMAGE_STATS), tr("Statistics"), this, SLOT(showStatisticsWindow())); #ifdef UNFINISHED diff --git a/retroshare-gui/src/gui/icons.qrc b/retroshare-gui/src/gui/icons.qrc index abbdf8995..3e6b124fd 100644 --- a/retroshare-gui/src/gui/icons.qrc +++ b/retroshare-gui/src/gui/icons.qrc @@ -103,9 +103,10 @@ icons/png/microphone_mute.png icons/png/microphone.png icons/png/netgraph.png + icons/png/netgraph2.png icons/png/network-notify.png icons/png/network.png - icons/png/network2.png + icons/png/network2.png icons/png/network-puplic.png icons/png/newsfeed-notify.png icons/png/newsfeed.png @@ -271,12 +272,16 @@ icons/png/correct.png icons/png/comment.png icons/png/chats.png - icons/png/chats-private.png + icons/png/chats-private.png icons/png/fileshare.png icons/png/forum.png icons/png/message.png icons/png/newsfeed2.png icons/png/postedlinks.png icons/png/people2.png + icons/png/bandwidth.png + icons/png/netgraph2.png + icons/png/options2.png + icons/png/exit2.png diff --git a/retroshare-gui/src/gui/icons/png/bandwidth.png b/retroshare-gui/src/gui/icons/png/bandwidth.png new file mode 100644 index 0000000000000000000000000000000000000000..e7032dbf6843ddf995dd47cdcb680a81693038d9 GIT binary patch literal 2291 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 literal 0 HcmV?d00001 diff --git a/retroshare-gui/src/gui/icons/svg/netgraph2.svg b/retroshare-gui/src/gui/icons/svg/netgraph2.svg new file mode 100644 index 000000000..518258a58 --- /dev/null +++ b/retroshare-gui/src/gui/icons/svg/netgraph2.svg @@ -0,0 +1,51 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/retroshare-gui/src/gui/icons/svg/options-blank.svg b/retroshare-gui/src/gui/icons/svg/options-blank.svg new file mode 100644 index 000000000..fbb3f6bf9 --- /dev/null +++ b/retroshare-gui/src/gui/icons/svg/options-blank.svg @@ -0,0 +1,59 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/retroshare-gui/src/gui/msgs/MessagesDialog.h b/retroshare-gui/src/gui/msgs/MessagesDialog.h index 9eeb577f0..1671df268 100644 --- a/retroshare-gui/src/gui/msgs/MessagesDialog.h +++ b/retroshare-gui/src/gui/msgs/MessagesDialog.h @@ -26,7 +26,7 @@ #include "mainpage.h" #include "ui_MessagesDialog.h" -#define IMAGE_MESSAGES ":/icons/png/messages.png" +#define IMAGE_MESSAGES ":/icons/png/message.png" class RSTreeWidgetItemCompareRole; class MessageWidget; From cdc12c03a4c105aa6e221f2a03efc024508a918f Mon Sep 17 00:00:00 2001 From: defnax Date: Sat, 23 Nov 2019 00:25:52 +0100 Subject: [PATCH 13/15] Remove fixed size issues with the invite/leave buttons on dark stylesheets Removed fixed size issues with the invite/leave buttons on dark stylesheets Added new context menu icons for Enter & join Chat rooms --- .gitignore | 1486 +++++++++++++++++ retroshare-gui/src/gui/ChatLobbyWidget.cpp | 8 +- .../src/gui/chat/ChatLobbyDialog.cpp | 8 +- retroshare-gui/src/gui/chat/ChatWidget.ui | 7 +- retroshare-gui/src/gui/icons.qrc | 2 + retroshare-gui/src/gui/icons/png/enter.png | Bin 0 -> 1824 bytes retroshare-gui/src/gui/icons/png/leave2.png | Bin 0 -> 1674 bytes 7 files changed, 1501 insertions(+), 10 deletions(-) create mode 100644 retroshare-gui/src/gui/icons/png/enter.png create mode 100644 retroshare-gui/src/gui/icons/png/leave2.png diff --git a/.gitignore b/.gitignore index ecf9f7099..6d0653e18 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,1489 @@ Thumbs.db *.pro.user .kdev4 *.kdev4 +libbitdht/src/lib/libbitdht.a +libbitdht/src/object_script.libbitdht.Debug +libbitdht/src/object_script.libbitdht.Release +libretroshare/src/lib/libretroshare.a +libretroshare/src/lib/libretroshare.dll.a +libretroshare/src/lib/retroshare.dll +libretroshare/src/object_script.libretroshare.Debug +libretroshare/src/object_script.libretroshare.Release +libretroshare/src/object_script.retroshare.Debug +libretroshare/src/object_script.retroshare.Release +libretroshare/src/sh.exe.stackdump +retroshare-service/src/lib/libretroshare-service.a +retroshare-gui/src/temp/moc/moc_predefs.h +retroshare-gui/src/temp/moc/Settings.moc +retroshare-gui/src/temp/moc/TorControl.moc +retroshare-gui/src/temp/moc/TorManager.moc +retroshare-service/src/release/retroshare-service.exe +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/variants/standard.css +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/variants/color.css +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/system.htm +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/outgoing.htm +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/ooutgoing.htm +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/main.css +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/Kopie von incoming.htm +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/info.xml +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/incoming.htm +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/images.sh +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/houtgoing.htm +retroshare-gui/src/release/stylesheets/Bubble_Compact/private/hincoming.htm +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/src/img.svg +retroshare-gui/src/release/stylesheets/Bubble/src/images.sh +retroshare-gui/src/release/stylesheets/Bubble/public/variants/standard.css +retroshare-gui/src/release/stylesheets/Bubble/public/variants/color.css +retroshare-gui/src/release/stylesheets/Bubble/public/system.htm +retroshare-gui/src/release/stylesheets/Bubble/public/outgoing.htm +retroshare-gui/src/release/stylesheets/Bubble/public/ooutgoing.htm +retroshare-gui/src/release/stylesheets/Bubble/public/main.css +retroshare-gui/src/release/stylesheets/Bubble/public/info.xml +retroshare-gui/src/release/stylesheets/Bubble/public/incoming.htm +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/public/images.sh +retroshare-gui/src/release/stylesheets/Bubble/public/houtgoing.htm +retroshare-gui/src/release/stylesheets/Bubble/public/hincoming.htm +retroshare-gui/src/release/stylesheets/Bubble/private/variants/standard.css +retroshare-gui/src/release/stylesheets/Bubble/private/variants/color.css +retroshare-gui/src/release/stylesheets/Bubble/private/system.htm +retroshare-gui/src/release/stylesheets/Bubble/private/outgoing.htm +retroshare-gui/src/release/stylesheets/Bubble/private/ooutgoing.htm +retroshare-gui/src/release/stylesheets/Bubble/private/main.css +retroshare-gui/src/release/stylesheets/Bubble/private/info.xml +retroshare-gui/src/release/stylesheets/Bubble/private/incoming.htm +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/private/images.sh +retroshare-gui/src/release/stylesheets/Bubble/private/houtgoing.htm +retroshare-gui/src/release/stylesheets/Bubble/private/hincoming.htm +retroshare-gui/src/release/stylesheets/Bubble/history/variants/standard.css +retroshare-gui/src/release/stylesheets/Bubble/history/variants/color.css +retroshare-gui/src/release/stylesheets/Bubble/history/system.htm +retroshare-gui/src/release/stylesheets/Bubble/history/outgoing.htm +retroshare-gui/src/release/stylesheets/Bubble/history/ooutgoing.htm +retroshare-gui/src/release/stylesheets/Bubble/history/main.css +retroshare-gui/src/release/stylesheets/Bubble/history/info.xml +retroshare-gui/src/release/stylesheets/Bubble/history/incoming.htm +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_TR.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_TL.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_tick.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_tick-right.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_tick-left.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_TC.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_CR.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_CL.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_CC.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_BR.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_BL.png +retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_BC.png +retroshare-gui/src/release/stylesheets/Bubble/history/images.sh +retroshare-gui/src/release/stylesheets/Bubble/history/houtgoing.htm +retroshare-gui/src/release/stylesheets/Bubble/history/hincoming.htm +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys9.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys8.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys7.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys6.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys5.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys47.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys46.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys45.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys44.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys43.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys42.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys41.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys40.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys4.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys39.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys38.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys37.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys36.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys35.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys34.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys33.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys32.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys31.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys30.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys3.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys29.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys28.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys27.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys26.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys25.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys24.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys23.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys22.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys21.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys20.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys2.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys19.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys18.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys17.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys16.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys15.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys14.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys13.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys12.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys11.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys10.png +retroshare-gui/src/release/stickers/YellowBoys/YellowBoys1.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy9.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy8.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy7.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy6.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy5.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy40.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy4.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy39.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy38.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy37.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy36.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy35.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy34.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy33.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy32.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy31.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy30.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy3.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy29.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy28.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy27.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy26.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy25.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy24.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy23.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy22.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy21.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy20.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy2.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy19.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy18.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy17.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy16.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy15.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy14.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy13.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy12.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy11.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy10.png +retroshare-gui/src/release/stickers/vk_diggy/vk_diggy1.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker9.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker8.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker7.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker6.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker5.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker4.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker3.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker25.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker24.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker23.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker22.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker21.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker20.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker2.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker19.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker18.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker17.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker16.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker15.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker14.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker13.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker12.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker11.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker10.png +retroshare-gui/src/release/stickers/TheJoker/TheJoker1.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool9.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool8.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool7.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool6.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool5.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool4.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool35.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool34.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool33.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool32.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool31.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool30.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool3.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool29.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool28.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool27.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool26.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool25.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool24.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool23.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool22.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool21.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool20.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool2.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool19.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool18.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool17.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool16.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool15.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool14.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool13.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool12.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool11.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool10.png +retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool1.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear9.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear8.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear7.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear6.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear5.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear4.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear3.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear25.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear24.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear23.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear22.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear21.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear20.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear2.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear19.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear18.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear17.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear16.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear15.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear14.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear13.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear12.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear11.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear10.png +retroshare-gui/src/release/stickers/tedthebear/tedthebear1.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya9.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya8.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya7.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya6.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya5.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya48.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya47.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya46.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya45.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya44.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya43.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya42.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya41.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya40.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya4.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya39.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya38.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya37.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya36.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya35.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya34.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya33.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya32.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya31.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya30.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya3.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya29.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya28.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya27.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya26.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya25.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya24.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya23.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya22.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya21.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya20.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya2.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya19.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya18.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya17.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya16.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya15.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya14.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya13.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya12.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya11.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya10.png +retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya1.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica9.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica8.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica7.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica6.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica5.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica4.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica35.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica34.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica33.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica32.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica31.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica30.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica3.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica29.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica28.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica27.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica26.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica25.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica24.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica23.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica22.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica21.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica20.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica2.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica19.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica18.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica17.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica16.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica15.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica14.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica13.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica12.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica11.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica10.png +retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica1.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls9.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls8.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls7.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls6.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls5.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls4.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls35.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls34.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls33.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls32.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls31.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls30.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls3.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls29.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls28.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls27.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls26.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls25.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls24.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls23.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls22.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls21.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls20.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls2.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls19.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls18.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls17.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls16.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls15.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls14.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls13.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls12.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls11.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls10.png +retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls1.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl9.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl8.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl7.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl6.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl5.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl40.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl4.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl39.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl38.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl37.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl36.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl35.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl34.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl33.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl32.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl31.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl30.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl3.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl29.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl28.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl27.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl26.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl25.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl24.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl23.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl22.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl21.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl20.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl2.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl19.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl18.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl17.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl16.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl15.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl14.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl13.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl12.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl11.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl10.png +retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl1.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris9.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris8.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris7.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris6.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris5.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris4.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris3.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris27.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris26.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris25.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris24.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris23.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris22.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris21.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris20.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris2.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris19.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris18.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris17.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris16.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris15.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris14.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris13.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris12.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris11.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris10.png +retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris1.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends9.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends8.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends7.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends6.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends5.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends4.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends3.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends25.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends24.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends23.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends22.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends21.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends20.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends2.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends19.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends18.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends17.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends16.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends15.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends14.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends13.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends12.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends11.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends10.png +retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends1.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil9.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil8.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil7.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil6.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil5.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil4.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil3.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil26.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil25.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil24.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil23.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil22.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil21.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil20.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil2.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil19.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil18.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil17.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil16.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil15.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil14.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil13.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil12.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil11.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil10.png +retroshare-gui/src/release/stickers/MissDevil/MissDevil1.png +retroshare-gui/src/release/stickers/Minions/37.png +retroshare-gui/src/release/stickers/Minions/36.png +retroshare-gui/src/release/stickers/Minions/35.png +retroshare-gui/src/release/stickers/Minions/34.png +retroshare-gui/src/release/stickers/Minions/33.png +retroshare-gui/src/release/stickers/Minions/32.png +retroshare-gui/src/release/stickers/Minions/31.png +retroshare-gui/src/release/stickers/Minions/30.png +retroshare-gui/src/release/stickers/Minions/29.png +retroshare-gui/src/release/stickers/Minions/28.png +retroshare-gui/src/release/stickers/Minions/27.png +retroshare-gui/src/release/stickers/Minions/26.png +retroshare-gui/src/release/stickers/Minions/25.png +retroshare-gui/src/release/stickers/Minions/24.png +retroshare-gui/src/release/stickers/Minions/23.png +retroshare-gui/src/release/stickers/Minions/22.png +retroshare-gui/src/release/stickers/Minions/21.png +retroshare-gui/src/release/stickers/Minions/20.png +retroshare-gui/src/release/stickers/Minions/19.png +retroshare-gui/src/release/stickers/Minions/18.png +retroshare-gui/src/release/stickers/Minions/17.png +retroshare-gui/src/release/stickers/Minions/16.png +retroshare-gui/src/release/stickers/Minions/15.png +retroshare-gui/src/release/stickers/Minions/14.png +retroshare-gui/src/release/stickers/Minions/13.png +retroshare-gui/src/release/stickers/Minions/12.png +retroshare-gui/src/release/stickers/Minions/11.png +retroshare-gui/src/release/stickers/Minions/10.png +retroshare-gui/src/release/stickers/Minions/09.png +retroshare-gui/src/release/stickers/Minions/08.png +retroshare-gui/src/release/stickers/Minions/07.png +retroshare-gui/src/release/stickers/Minions/06.png +retroshare-gui/src/release/stickers/Minions/05.png +retroshare-gui/src/release/stickers/Minions/04.png +retroshare-gui/src/release/stickers/Minions/03.png +retroshare-gui/src/release/stickers/Minions/02.png +retroshare-gui/src/release/stickers/Minions/01.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi9.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi8.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi7.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi6.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi5.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi4.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi34.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi33.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi32.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi31.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi30.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi3.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi29.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi28.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi27.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi26.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi25.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi24.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi23.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi22.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi21.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi20.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi2.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi19.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi18.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi17.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi16.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi15.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi14.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi13.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi12.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi11.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi10.png +retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi1.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB9.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB8.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB7.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB6.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB5.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB4.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB3.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB25.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB24.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB23.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB22.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB21.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB20.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB2.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB19.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB18.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB17.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB16.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB15.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB14.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB13.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB12.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB11.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB10.png +retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB1.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers9.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers8.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers7.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers6.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers5.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers4.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers3.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers29.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers28.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers27.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers26.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers25.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers24.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers23.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers22.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers21.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers20.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers2.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers19.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers18.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers17.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers16.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers15.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers14.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers13.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers12.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers11.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers10.png +retroshare-gui/src/release/stickers/HomerStickers/HomerStickers1.png +retroshare-gui/src/release/stickers/great_minds/greatminds (9).png +retroshare-gui/src/release/stickers/great_minds/greatminds (8).png +retroshare-gui/src/release/stickers/great_minds/greatminds (7).png +retroshare-gui/src/release/stickers/great_minds/greatminds (60).png +retroshare-gui/src/release/stickers/great_minds/greatminds (6).png +retroshare-gui/src/release/stickers/great_minds/greatminds (59).png +retroshare-gui/src/release/stickers/great_minds/greatminds (58).png +retroshare-gui/src/release/stickers/great_minds/greatminds (57).png +retroshare-gui/src/release/stickers/great_minds/greatminds (56).png +retroshare-gui/src/release/stickers/great_minds/greatminds (55).png +retroshare-gui/src/release/stickers/great_minds/greatminds (54).png +retroshare-gui/src/release/stickers/great_minds/greatminds (53).png +retroshare-gui/src/release/stickers/great_minds/greatminds (52).png +retroshare-gui/src/release/stickers/great_minds/greatminds (51).png +retroshare-gui/src/release/stickers/great_minds/greatminds (50).png +retroshare-gui/src/release/stickers/great_minds/greatminds (5).png +retroshare-gui/src/release/stickers/great_minds/greatminds (49).png +retroshare-gui/src/release/stickers/great_minds/greatminds (48).png +retroshare-gui/src/release/stickers/great_minds/greatminds (47).png +retroshare-gui/src/release/stickers/great_minds/greatminds (46).png +retroshare-gui/src/release/stickers/great_minds/greatminds (45).png +retroshare-gui/src/release/stickers/great_minds/greatminds (44).png +retroshare-gui/src/release/stickers/great_minds/greatminds (43).png +retroshare-gui/src/release/stickers/great_minds/greatminds (42).png +retroshare-gui/src/release/stickers/great_minds/greatminds (41).png +retroshare-gui/src/release/stickers/great_minds/greatminds (40).png +retroshare-gui/src/release/stickers/great_minds/greatminds (4).png +retroshare-gui/src/release/stickers/great_minds/greatminds (39).png +retroshare-gui/src/release/stickers/great_minds/greatminds (38).png +retroshare-gui/src/release/stickers/great_minds/greatminds (37).png +retroshare-gui/src/release/stickers/great_minds/greatminds (36).png +retroshare-gui/src/release/stickers/great_minds/greatminds (35).png +retroshare-gui/src/release/stickers/great_minds/greatminds (34).png +retroshare-gui/src/release/stickers/great_minds/greatminds (33).png +retroshare-gui/src/release/stickers/great_minds/greatminds (32).png +retroshare-gui/src/release/stickers/great_minds/greatminds (31).png +retroshare-gui/src/release/stickers/great_minds/greatminds (30).png +retroshare-gui/src/release/stickers/great_minds/greatminds (3).png +retroshare-gui/src/release/stickers/great_minds/greatminds (29).png +retroshare-gui/src/release/stickers/great_minds/greatminds (28).png +retroshare-gui/src/release/stickers/great_minds/greatminds (27).png +retroshare-gui/src/release/stickers/great_minds/greatminds (26).png +retroshare-gui/src/release/stickers/great_minds/greatminds (25).png +retroshare-gui/src/release/stickers/great_minds/greatminds (24).png +retroshare-gui/src/release/stickers/great_minds/greatminds (23).png +retroshare-gui/src/release/stickers/great_minds/greatminds (22).png +retroshare-gui/src/release/stickers/great_minds/greatminds (21).png +retroshare-gui/src/release/stickers/great_minds/greatminds (20).png +retroshare-gui/src/release/stickers/great_minds/greatminds (2).png +retroshare-gui/src/release/stickers/great_minds/greatminds (19).png +retroshare-gui/src/release/stickers/great_minds/greatminds (18).png +retroshare-gui/src/release/stickers/great_minds/greatminds (17).png +retroshare-gui/src/release/stickers/great_minds/greatminds (16).png +retroshare-gui/src/release/stickers/great_minds/greatminds (15).png +retroshare-gui/src/release/stickers/great_minds/greatminds (14).png +retroshare-gui/src/release/stickers/great_minds/greatminds (13).png +retroshare-gui/src/release/stickers/great_minds/greatminds (12).png +retroshare-gui/src/release/stickers/great_minds/greatminds (11).png +retroshare-gui/src/release/stickers/great_minds/greatminds (10).png +retroshare-gui/src/release/stickers/great_minds/greatminds (1).png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk9.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk8.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk7.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk6.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk5.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk4.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk3.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk24.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk23.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk22.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk21.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk20.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk2.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk19.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk18.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk17.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk16.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk15.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk14.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk13.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk12.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk11.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk10.png +retroshare-gui/src/release/stickers/GameOfThrones/gotvk1.png +retroshare-gui/src/release/stickers/futurama/futurama (9).png +retroshare-gui/src/release/stickers/futurama/futurama (8).png +retroshare-gui/src/release/stickers/futurama/futurama (7).png +retroshare-gui/src/release/stickers/futurama/futurama (6).png +retroshare-gui/src/release/stickers/futurama/futurama (54).png +retroshare-gui/src/release/stickers/futurama/futurama (53).png +retroshare-gui/src/release/stickers/futurama/futurama (52).png +retroshare-gui/src/release/stickers/futurama/futurama (51).png +retroshare-gui/src/release/stickers/futurama/futurama (50).png +retroshare-gui/src/release/stickers/futurama/futurama (5).png +retroshare-gui/src/release/stickers/futurama/futurama (49).png +retroshare-gui/src/release/stickers/futurama/futurama (48).png +retroshare-gui/src/release/stickers/futurama/futurama (47).png +retroshare-gui/src/release/stickers/futurama/futurama (46).png +retroshare-gui/src/release/stickers/futurama/futurama (45).png +retroshare-gui/src/release/stickers/futurama/futurama (44).png +retroshare-gui/src/release/stickers/futurama/futurama (43).png +retroshare-gui/src/release/stickers/futurama/futurama (42).png +retroshare-gui/src/release/stickers/futurama/futurama (41).png +retroshare-gui/src/release/stickers/futurama/futurama (40).png +retroshare-gui/src/release/stickers/futurama/futurama (4).png +retroshare-gui/src/release/stickers/futurama/futurama (39).png +retroshare-gui/src/release/stickers/futurama/futurama (38).png +retroshare-gui/src/release/stickers/futurama/futurama (37).png +retroshare-gui/src/release/stickers/futurama/futurama (36).png +retroshare-gui/src/release/stickers/futurama/futurama (35).png +retroshare-gui/src/release/stickers/futurama/futurama (34).png +retroshare-gui/src/release/stickers/futurama/futurama (33).png +retroshare-gui/src/release/stickers/futurama/futurama (32).png +retroshare-gui/src/release/stickers/futurama/futurama (31).png +retroshare-gui/src/release/stickers/futurama/futurama (30).png +retroshare-gui/src/release/stickers/futurama/futurama (3).png +retroshare-gui/src/release/stickers/futurama/futurama (29).png +retroshare-gui/src/release/stickers/futurama/futurama (28).png +retroshare-gui/src/release/stickers/futurama/futurama (27).png +retroshare-gui/src/release/stickers/futurama/futurama (26).png +retroshare-gui/src/release/stickers/futurama/futurama (25).png +retroshare-gui/src/release/stickers/futurama/futurama (24).png +retroshare-gui/src/release/stickers/futurama/futurama (23).png +retroshare-gui/src/release/stickers/futurama/futurama (22).png +retroshare-gui/src/release/stickers/futurama/futurama (21).png +retroshare-gui/src/release/stickers/futurama/futurama (20).png +retroshare-gui/src/release/stickers/futurama/futurama (2).png +retroshare-gui/src/release/stickers/futurama/futurama (19).png +retroshare-gui/src/release/stickers/futurama/futurama (18).png +retroshare-gui/src/release/stickers/futurama/futurama (17).png +retroshare-gui/src/release/stickers/futurama/futurama (16).png +retroshare-gui/src/release/stickers/futurama/futurama (15).png +retroshare-gui/src/release/stickers/futurama/futurama (14).png +retroshare-gui/src/release/stickers/futurama/futurama (13).png +retroshare-gui/src/release/stickers/futurama/futurama (12).png +retroshare-gui/src/release/stickers/futurama/futurama (11).png +retroshare-gui/src/release/stickers/futurama/futurama (10).png +retroshare-gui/src/release/stickers/futurama/futurama (1).png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath9.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath8.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath7.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath6.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath5.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath40.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath4.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath39.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath38.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath37.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath36.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath35.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath34.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath33.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath32.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath31.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath30.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath3.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath29.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath28.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath27.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath26.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath25.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath24.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath23.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath22.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath21.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath20.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath2.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath19.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath18.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath17.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath16.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath15.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath14.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath13.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath12.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath11.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath10.png +retroshare-gui/src/release/stickers/friendlydeath/friendlydeath1.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide9.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide8.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide7.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide6.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide5.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide4.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide30.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide3.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide29.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide28.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide27.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide26.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide25.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide24.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide23.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide22.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide21.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide20.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide2.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide19.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide18.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide17.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide16.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide15.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide14.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide13.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide12.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide11.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide10.png +retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide1.png +retroshare-gui/src/release/stickers/Biscuit/9 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/8 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/7 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/6 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/5 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/4 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/39 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/38 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/37 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/36 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/35 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/34 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/33 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/32 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/31 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/30 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/3 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/29 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/28 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/27 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/26 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/25 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/24 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/23 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/22 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/21 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/20 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/2 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/19 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/18 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/17 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/16 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/15 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/14 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/13 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/12 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/11 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/10 (Custom).png +retroshare-gui/src/release/stickers/Biscuit/1 (Custom).png +retroshare-gui/src/release/stickers/Banana/9.png +retroshare-gui/src/release/stickers/Banana/8.png +retroshare-gui/src/release/stickers/Banana/7.png +retroshare-gui/src/release/stickers/Banana/6.png +retroshare-gui/src/release/stickers/Banana/5.png +retroshare-gui/src/release/stickers/Banana/45.png +retroshare-gui/src/release/stickers/Banana/44.png +retroshare-gui/src/release/stickers/Banana/43.png +retroshare-gui/src/release/stickers/Banana/42.png +retroshare-gui/src/release/stickers/Banana/41.png +retroshare-gui/src/release/stickers/Banana/40.png +retroshare-gui/src/release/stickers/Banana/4.png +retroshare-gui/src/release/stickers/Banana/39.png +retroshare-gui/src/release/stickers/Banana/38.png +retroshare-gui/src/release/stickers/Banana/37.png +retroshare-gui/src/release/stickers/Banana/36.png +retroshare-gui/src/release/stickers/Banana/35.png +retroshare-gui/src/release/stickers/Banana/34.png +retroshare-gui/src/release/stickers/Banana/33.png +retroshare-gui/src/release/stickers/Banana/32.png +retroshare-gui/src/release/stickers/Banana/31.png +retroshare-gui/src/release/stickers/Banana/30.png +retroshare-gui/src/release/stickers/Banana/3.png +retroshare-gui/src/release/stickers/Banana/29.png +retroshare-gui/src/release/stickers/Banana/28.png +retroshare-gui/src/release/stickers/Banana/27.png +retroshare-gui/src/release/stickers/Banana/26.png +retroshare-gui/src/release/stickers/Banana/25.png +retroshare-gui/src/release/stickers/Banana/24.png +retroshare-gui/src/release/stickers/Banana/23.png +retroshare-gui/src/release/stickers/Banana/22.png +retroshare-gui/src/release/stickers/Banana/21.png +retroshare-gui/src/release/stickers/Banana/20.png +retroshare-gui/src/release/stickers/Banana/2.png +retroshare-gui/src/release/stickers/Banana/19.png +retroshare-gui/src/release/stickers/Banana/18.png +retroshare-gui/src/release/stickers/Banana/17.png +retroshare-gui/src/release/stickers/Banana/16.png +retroshare-gui/src/release/stickers/Banana/15.png +retroshare-gui/src/release/stickers/Banana/14.png +retroshare-gui/src/release/stickers/Banana/13.png +retroshare-gui/src/release/stickers/Banana/12.png +retroshare-gui/src/release/stickers/Banana/11.png +retroshare-gui/src/release/stickers/Banana/10.png +retroshare-gui/src/release/stickers/Banana/1.png +retroshare-gui/src/release/retroshare.exe +retroshare-gui/src/release/retroshare.dll +retroshare-gui/src/release/qss/yeah/yeah.png +retroshare-gui/src/release/qss/yeah.qss +retroshare-gui/src/release/qss/yaba/yaba3.png +retroshare-gui/src/release/qss/yaba/yaba2.png +retroshare-gui/src/release/qss/yaba/yaba.png +retroshare-gui/src/release/qss/yaba.qss +retroshare-gui/src/release/qss/wx/wx.png +retroshare-gui/src/release/qss/wx.qss +retroshare-gui/src/release/qss/uus/uus2.png +retroshare-gui/src/release/qss/uus/uus.png +retroshare-gui/src/release/qss/uus.qss +retroshare-gui/src/release/qss/silvergrey.qss +retroshare-gui/src/release/qss/silver/silver2.png +retroshare-gui/src/release/qss/silver/silver.png +retroshare-gui/src/release/qss/silver.qss +retroshare-gui/src/release/qss/redscorpion/red2.png +retroshare-gui/src/release/qss/redscorpion/red.png +retroshare-gui/src/release/qss/redscorpion.qss +retroshare-gui/src/release/qss/qlive/qb2.png +retroshare-gui/src/release/qss/qlive/qb.png +retroshare-gui/src/release/qss/qlive.qss +retroshare-gui/src/release/qss/qdarkstyle/Vsepartoolbar.png +retroshare-gui/src/release/qss/qdarkstyle/Vmovetoolbar.png +retroshare-gui/src/release/qss/qdarkstyle/up_arrow_disabled.png +retroshare-gui/src/release/qss/qdarkstyle/up_arrow.png +retroshare-gui/src/release/qss/qdarkstyle/undock.png +retroshare-gui/src/release/qss/qdarkstyle/transparent.png +retroshare-gui/src/release/qss/qdarkstyle/stylesheet-vline.png +retroshare-gui/src/release/qss/qdarkstyle/stylesheet-branch-more.png +retroshare-gui/src/release/qss/qdarkstyle/stylesheet-branch-end.png +retroshare-gui/src/release/qss/qdarkstyle/style.qss +retroshare-gui/src/release/qss/qdarkstyle/style.qrc +retroshare-gui/src/release/qss/qdarkstyle/sizegrip.png +retroshare-gui/src/release/qss/qdarkstyle/right_arrow_disabled.png +retroshare-gui/src/release/qss/qdarkstyle/right_arrow.png +retroshare-gui/src/release/qss/qdarkstyle/rc/Vsepartoolbar.png +retroshare-gui/src/release/qss/qdarkstyle/rc/Vmovetoolbar.png +retroshare-gui/src/release/qss/qdarkstyle/rc/up_arrow_disabled.png +retroshare-gui/src/release/qss/qdarkstyle/rc/up_arrow.png +retroshare-gui/src/release/qss/qdarkstyle/rc/undock.png +retroshare-gui/src/release/qss/qdarkstyle/rc/transparent.png +retroshare-gui/src/release/qss/qdarkstyle/rc/stylesheet-vline.png +retroshare-gui/src/release/qss/qdarkstyle/rc/stylesheet-branch-more.png +retroshare-gui/src/release/qss/qdarkstyle/rc/stylesheet-branch-end.png +retroshare-gui/src/release/qss/qdarkstyle/rc/sizegrip.png +retroshare-gui/src/release/qss/qdarkstyle/rc/right_arrow_disabled.png +retroshare-gui/src/release/qss/qdarkstyle/rc/right_arrow.png +retroshare-gui/src/release/qss/qdarkstyle/rc/radio_unchecked_focus@2x.png +retroshare-gui/src/release/qss/qdarkstyle/rc/radio_unchecked_focus.png +retroshare-gui/src/release/qss/qdarkstyle/rc/radio_unchecked_disabled@2x.png +retroshare-gui/src/release/qss/qdarkstyle/rc/radio_unchecked_disabled.png +retroshare-gui/src/release/qss/qdarkstyle/rc/radio_unchecked@2x.png +retroshare-gui/src/release/qss/qdarkstyle/rc/radio_unchecked.png +retroshare-gui/src/release/qss/qdarkstyle/rc/radio_checked_focus@2x.png +retroshare-gui/src/release/qss/qdarkstyle/rc/radio_checked_focus.png +retroshare-gui/src/release/qss/qdarkstyle/rc/radio_checked_disabled@2x.png +retroshare-gui/src/release/qss/qdarkstyle/rc/radio_checked_disabled.png +retroshare-gui/src/release/qss/qdarkstyle/rc/radio_checked@2x.png +retroshare-gui/src/release/qss/qdarkstyle/rc/radio_checked.png +retroshare-gui/src/release/qss/qdarkstyle/rc/left_arrow_disabled.png +retroshare-gui/src/release/qss/qdarkstyle/rc/left_arrow.png +retroshare-gui/src/release/qss/qdarkstyle/rc/Hsepartoolbar.png +retroshare-gui/src/release/qss/qdarkstyle/rc/Hmovetoolbar.png +retroshare-gui/src/release/qss/qdarkstyle/rc/down_arrow_disabled.png +retroshare-gui/src/release/qss/qdarkstyle/rc/down_arrow.png +retroshare-gui/src/release/qss/qdarkstyle/rc/close.png +retroshare-gui/src/release/qss/qdarkstyle/rc/close-pressed.png +retroshare-gui/src/release/qss/qdarkstyle/rc/close-hover.png +retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_unchecked_focus@2x.png +retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_unchecked_focus.png +retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_unchecked_disabled@2x.png +retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_unchecked_disabled.png +retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_unchecked@2x.png +retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_unchecked.png +retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_indeterminate_focus@2x.png +retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_indeterminate_focus.png +retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_indeterminate_disabled@2x.png +retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_indeterminate_disabled.png +retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_indeterminate@2x.png +retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_indeterminate.png +retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_checked_focus@2x.png +retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_checked_focus.png +retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_checked_disabled@2x.png +retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_checked_disabled.png +retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_checked@2x.png +retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_checked.png +retroshare-gui/src/release/qss/qdarkstyle/rc/branch_open.png +retroshare-gui/src/release/qss/qdarkstyle/rc/branch_open-on.png +retroshare-gui/src/release/qss/qdarkstyle/rc/branch_closed.png +retroshare-gui/src/release/qss/qdarkstyle/rc/branch_closed-on.png +retroshare-gui/src/release/qss/qdarkstyle/qtpy_style_rc.py +retroshare-gui/src/release/qss/qdarkstyle/pyside_style_rc.py +retroshare-gui/src/release/qss/qdarkstyle/pyside2_style_rc.py +retroshare-gui/src/release/qss/qdarkstyle/pyqtgraph_style_rc.py +retroshare-gui/src/release/qss/qdarkstyle/pyqt_style_rc.py +retroshare-gui/src/release/qss/qdarkstyle/pyqt5_style_rc.py +retroshare-gui/src/release/qss/qdarkstyle/left_arrow_disabled.png +retroshare-gui/src/release/qss/qdarkstyle/left_arrow.png +retroshare-gui/src/release/qss/qdarkstyle/Hsepartoolbar.png +retroshare-gui/src/release/qss/qdarkstyle/Hmovetoolbar.png +retroshare-gui/src/release/qss/qdarkstyle/down_arrow_disabled.png +retroshare-gui/src/release/qss/qdarkstyle/down_arrow.png +retroshare-gui/src/release/qss/qdarkstyle/close.png +retroshare-gui/src/release/qss/qdarkstyle/checkbox.png +retroshare-gui/src/release/qss/qdarkstyle/branch_open.png +retroshare-gui/src/release/qss/qdarkstyle/branch_open-on.png +retroshare-gui/src/release/qss/qdarkstyle/branch_closed.png +retroshare-gui/src/release/qss/qdarkstyle/branch_closed-on.png +retroshare-gui/src/release/qss/qdarkstyle/__main__.py +retroshare-gui/src/release/qss/qdarkstyle/__init__.py +retroshare-gui/src/release/qss/qdarkstyle.qss +retroshare-gui/src/release/qss/qdarkstyle-v2.qss +retroshare-gui/src/release/qss/orangesurfer/toolbar.png +retroshare-gui/src/release/qss/orangesurfer/tab_pressed.png +retroshare-gui/src/release/qss/orangesurfer/tab_normal.png +retroshare-gui/src/release/qss/orangesurfer/tab_hover.png +retroshare-gui/src/release/qss/orangesurfer/sizegrip.png +retroshare-gui/src/release/qss/orangesurfer/main2.png +retroshare-gui/src/release/qss/orangesurfer/main.png +retroshare-gui/src/release/qss/orangesurfer/border.png +retroshare-gui/src/release/qss/orangesurfer.qss +retroshare-gui/src/release/qss/groove.qss +retroshare-gui/src/release/qss/Fade2Dark/Vsepartoolbar.png +retroshare-gui/src/release/qss/Fade2Dark/Vmovetoolbar.png +retroshare-gui/src/release/qss/Fade2Dark/vline.png +retroshare-gui/src/release/qss/Fade2Dark/up_arrow_disabled.png +retroshare-gui/src/release/qss/Fade2Dark/up_arrow.png +retroshare-gui/src/release/qss/Fade2Dark/up.png +retroshare-gui/src/release/qss/Fade2Dark/undock.png +retroshare-gui/src/release/qss/Fade2Dark/transparent.png +retroshare-gui/src/release/qss/Fade2Dark/sizegrip.png +retroshare-gui/src/release/qss/Fade2Dark/right_arrow_disabled.png +retroshare-gui/src/release/qss/Fade2Dark/right_arrow.png +retroshare-gui/src/release/qss/Fade2Dark/right.png +retroshare-gui/src/release/qss/Fade2Dark/radio_unsel.png +retroshare-gui/src/release/qss/Fade2Dark/radio_sel.png +retroshare-gui/src/release/qss/Fade2Dark/left_arrow_disabled.png +retroshare-gui/src/release/qss/Fade2Dark/left_arrow.png +retroshare-gui/src/release/qss/Fade2Dark/left.png +retroshare-gui/src/release/qss/Fade2Dark/Hsepartoolbar.png +retroshare-gui/src/release/qss/Fade2Dark/Hmovetoolbar.png +retroshare-gui/src/release/qss/Fade2Dark/fondmotiftext.png +retroshare-gui/src/release/qss/Fade2Dark/fondmotif.png +retroshare-gui/src/release/qss/Fade2Dark/down_arrow_disabled.png +retroshare-gui/src/release/qss/Fade2Dark/down_arrow.png +retroshare-gui/src/release/qss/Fade2Dark/down.png +retroshare-gui/src/release/qss/Fade2Dark/close.png +retroshare-gui/src/release/qss/Fade2Dark/checkbox.png +retroshare-gui/src/release/qss/Fade2Dark/check_unsel.png +retroshare-gui/src/release/qss/Fade2Dark/check_sel.png +retroshare-gui/src/release/qss/Fade2Dark/branch_open.png +retroshare-gui/src/release/qss/Fade2Dark/branch_open-on.png +retroshare-gui/src/release/qss/Fade2Dark/branch_closed.png +retroshare-gui/src/release/qss/Fade2Dark/branch_closed-on.png +retroshare-gui/src/release/qss/Fade2Dark/branch-more.png +retroshare-gui/src/release/qss/Fade2Dark/branch-end.png +retroshare-gui/src/release/qss/Fade2Dark/arrow_down.png +retroshare-gui/src/release/qss/Fade2Dark.qss +retroshare-gui/src/release/qss/darkstyle.qss +retroshare-gui/src/release/qss/darkorange.qss +retroshare-gui/src/release/qss/blue/tabselected.png +retroshare-gui/src/release/qss/blue/tab_hover.png +retroshare-gui/src/release/qss/blue/tab1.png +retroshare-gui/src/release/qss/blue/blue2.png +retroshare-gui/src/release/qss/blue/blue.png +retroshare-gui/src/release/qss/blue.qss +retroshare-gui/src/release/qss/blacknight/up.png +retroshare-gui/src/release/qss/blacknight/radio_unsel.png +retroshare-gui/src/release/qss/blacknight/radio_sel.png +retroshare-gui/src/release/qss/blacknight/down.png +retroshare-gui/src/release/qss/blacknight/clbg.png +retroshare-gui/src/release/qss/blacknight/check_unsel.png +retroshare-gui/src/release/qss/blacknight/check_sel.png +retroshare-gui/src/release/qss/blacknight.qss +retroshare-gui/src/release/portable +retroshare-gui/src/release/Data/pgp/retroshare_trustdb.gpg +retroshare-gui/src/release/Data/pgp/retroshare_secret_keyring.gpg +retroshare-gui/src/release/Data/pgp/retroshare_public_keyring.gpg +retroshare-gui/src/release/Data/pgp/lock +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/RSPeers.conf +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/RetroShare.conf +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/retro.log-save +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/retro.log +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/lock +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/keys/user_pk.pem +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/keys/user_cert.pem +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/keys/ssl_passphrase.pgp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/keys/location_name.txt +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/gxs/posted_db +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/gxs/gxstrans_db +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/gxs/gxsid_db +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/gxs/gxsforums_db +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/gxs/gxscircles_db +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/gxs/gxschannels_db +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/file_sharing/local_dir_hierarchy.bin +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/file_sharing/dirlist_7fe5ae5f67034e189936e5af4c778b47.bin +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/servicecontrol.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/servicecontrol.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/servicecontrol.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/servicecontrol.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/reputations.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/reputations.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/reputations.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/reputations.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/posted.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/posted.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/posted.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/posted.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/plugins.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/plugins.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/plugins.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/plugins.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/peers.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/peers.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/peers.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/peers.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3Status.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3Status.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3identity.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3identity.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3identity.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3identity.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/msgs.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/msgs.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/msgs.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/msgs.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/identity.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/identity.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/identity.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/identity.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxsforums_srv.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxsforums_srv.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxsforums_srv.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxsforums_srv.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxsforums.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxsforums.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxsforums.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxsforums.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxscircles.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxscircles.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxscircles.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxscircles.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxschannels.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxschannels.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxschannels.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxschannels.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxs_trans_ns.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxs_trans_ns.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxs_trans_ns.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxs_trans_ns.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxs_trans.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxs_trans.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxs_trans.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxs_trans.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/grouter.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/grouter.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/grouter.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/grouter.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gpg_prefs.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gpg_prefs.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/general.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/general.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/ft_transfers.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/ft_transfers.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/ft_transfers.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/ft_transfers.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/ft_database.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/ft_database.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/ft_database.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/ft_database.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/chat.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/chat.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/chat.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/chat.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/bitdht.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/bitdht.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/bitdht.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/bitdht.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/banlist.cfg.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/banlist.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/banlist.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/banlist.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/bdfilter.txt +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/bdboot.txt +retroshare-gui/src/release/Data/default_cert_06.txt +retroshare-gui/src/object_script.retroshare.Release +retroshare-gui/src/object_script.retroshare.Debug +retroshare-gui/src/lib/libretroshare-gui.a +openpgpsdk/src/lib/libops.a +openpgpsdk/src/object_script.libops.Debug +openpgpsdk/src/object_script.libops.Release +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3History.cfg +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3History.cfg.sgn +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3History.cfg.sgn.tmp +retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3History.cfg.tmp diff --git a/retroshare-gui/src/gui/ChatLobbyWidget.cpp b/retroshare-gui/src/gui/ChatLobbyWidget.cpp index dea3ea4e2..884355d87 100644 --- a/retroshare-gui/src/gui/ChatLobbyWidget.cpp +++ b/retroshare-gui/src/gui/ChatLobbyWidget.cpp @@ -71,14 +71,14 @@ #define IMAGE_CREATE "" #define IMAGE_PUBLIC ":/icons/png/chats.png" #define IMAGE_PRIVATE ":/icons/png/chats-private.png" -#define IMAGE_SUBSCRIBE ":/images/edit_add24.png" -#define IMAGE_UNSUBSCRIBE ":/images/cancel.png" +#define IMAGE_SUBSCRIBE ":/icons/png/enter.png" +#define IMAGE_UNSUBSCRIBE ":/icons/png/leave2.png" #define IMAGE_PEER_ENTERING ":images/user/add_user24.png" #define IMAGE_PEER_LEAVING ":images/user/remove_user24.png" -#define IMAGE_TYPING ":images/typing.png" +#define IMAGE_TYPING ":images/typing.png" #define IMAGE_MESSAGE ":images/chat.png" #define IMAGE_AUTOSUBSCRIBE ":images/accepted16.png" -#define IMAGE_COPYRSLINK ":/images/copyrslink.png" +#define IMAGE_COPYRSLINK ":/icons/png/copy.png" ChatLobbyWidget::ChatLobbyWidget(QWidget *parent, Qt::WindowFlags flags) : RsAutoUpdatePage(5000, parent, flags) diff --git a/retroshare-gui/src/gui/chat/ChatLobbyDialog.cpp b/retroshare-gui/src/gui/chat/ChatLobbyDialog.cpp index da04f457a..d5bbc3d2b 100644 --- a/retroshare-gui/src/gui/chat/ChatLobbyDialog.cpp +++ b/retroshare-gui/src/gui/chat/ChatLobbyDialog.cpp @@ -132,8 +132,8 @@ ChatLobbyDialog::ChatLobbyDialog(const ChatLobbyId& lid, QWidget *parent, Qt::Wi // Add a button to invite friends. // inviteFriendsButton = new QToolButton ; - inviteFriendsButton->setMinimumSize(icon_size); - inviteFriendsButton->setMaximumSize(icon_size); + //inviteFriendsButton->setMinimumSize(icon_size); + //inviteFriendsButton->setMaximumSize(icon_size); inviteFriendsButton->setText(QString()) ; inviteFriendsButton->setAutoRaise(true) ; inviteFriendsButton->setToolTip(tr("Invite friends to this lobby")); @@ -177,8 +177,8 @@ ChatLobbyDialog::ChatLobbyDialog(const ChatLobbyId& lid, QWidget *parent, Qt::Wi connect(ownIdChooser,SIGNAL(currentIndexChanged(int)),this,SLOT(changeNickname())) ; unsubscribeButton = new QToolButton; - unsubscribeButton->setMinimumSize(icon_size); - unsubscribeButton->setMaximumSize(icon_size); + //unsubscribeButton->setMinimumSize(icon_size); + //unsubscribeButton->setMaximumSize(icon_size); unsubscribeButton->setText(QString()) ; unsubscribeButton->setAutoRaise(true) ; unsubscribeButton->setToolTip(tr("Leave this chat room (Unsubscribe)")); diff --git a/retroshare-gui/src/gui/chat/ChatWidget.ui b/retroshare-gui/src/gui/chat/ChatWidget.ui index cce118f78..144eeae6f 100644 --- a/retroshare-gui/src/gui/chat/ChatWidget.ui +++ b/retroshare-gui/src/gui/chat/ChatWidget.ui @@ -807,17 +807,20 @@ border-image: url(:/images/closepressed.png) QFrame::Plain + + 3 + 2 - 2 + 0 2 - 2 + 0 diff --git a/retroshare-gui/src/gui/icons.qrc b/retroshare-gui/src/gui/icons.qrc index 3e6b124fd..a7d13522a 100644 --- a/retroshare-gui/src/gui/icons.qrc +++ b/retroshare-gui/src/gui/icons.qrc @@ -80,6 +80,7 @@ icons/png/chat-lobbies.png icons/png/circles.png icons/png/empty-circle.png + icons/png/enter.png icons/png/exit.png icons/png/feedreader-notify.png icons/png/feedreader.png @@ -98,6 +99,7 @@ icons/png/invite.png icons/png/keyring.png icons/png/leave.png + icons/png/leave2.png icons/png/messages-notify.png icons/png/messages.png icons/png/microphone_mute.png diff --git a/retroshare-gui/src/gui/icons/png/enter.png b/retroshare-gui/src/gui/icons/png/enter.png new file mode 100644 index 0000000000000000000000000000000000000000..84b71ec4a9b5d2d3270b46d651fa7e0ad50135f1 GIT binary patch literal 1824 zcmZ`&dpJ~S7=LHZjN7=>#!wPZ*C}C)wJs?`WTd2NRB9`ikS=CoqG_2QWiTg`0fB9YjdO6+$=_IdV?eV+H6?|a|x_x^sr_k7Pu4)FIe&>N=* z00zDsFD_bf;?cp-yI*zaGg>H-9t%AHE~L>0LZ~RW3gd7W0&JU#aJvA$5ct;sTbKZy z!2qsD0Zaw58;jilNOuDk@VpTK&el_M6j)9@3dnAP)HaHg*lR*T$!)-7nj^dvqzz=v z5k)GeXo{M59f6eAlQk8zr)UBs)#MQpEJr>}2-yvguSDSClq#*KNKre%0J)7sQA%te zuLX`j#bkVSZGk!HgT%DD{6`JzXB_?$>+6)T4hOk$m&byqOJS z4Jue{qh|Wq*>SH!E~W1bE{^xSXkXs;c%R+9u*||4@2{T>owMsyku4)j)z?(8;zeLW z>-Naq-r5nj&90KZesqg|DK|m}Nuho|Ua*g9!9j_xfD;r8U|2~!q)cl=b5zt8`Y!a= zZllrZPS_%>E&~8d^!4)KZEb$n9Jy?ahq0Dwar(sLTw^AWMxpvy%^-Q~V63Y&)Jd8c z=iRmccJSP;njy#V2mTp04o%nNYo1IcEiG9AKYoou;Uxne1Vo&dVxGLnz!$)?E zpMxshw;W$8l9V`azuXk{xViC62KU0}N4Kiil%&2XE}6LbB3D0PiuIs@Uu0q^-r3bw zbSC^ok%OHTsnh(Zt+~_Ujb$%wBGT?jkNBBEi~10J>}`YbFRH-#UK*U{$LzP9P$pI{ zuQW0c9JDl3O>m!yPZD!*_l~D4eJ+q5cb#bXN$kw-TUw|thrvw=y*o)OoZI%2i=$tq zSn8eM=_F>9`G*PTQmcY>$_gu0P&;6SU#V2Z6_$^JFhPJLd);}hb-0#5(LMW@S)RGS z1+F>^ekRQgf6&>STJc@*G*la79DaT%{*HBw)Rjdt9<{E==%x)eS*0p?JsaEkGWiyr zhhKQ~(52e8VzgJ;Gh6Ez;r)=YKq_xftQwz18dcWsCcYClRscV8Em(Fkx7|j^ia!*K zI;zh{mfaUvH&`s_NReL6x9HO`n?5=>@8qD9vB@u3dxZV=Vy%0JEowxV&MW?r>-uA! zLr{(7sy)6ZDxQcOVZNQ2%}E~VOA6gIkfe8zE+5)N&Q76c*TckRDTW0xi|}*q+8H^A ze~+5Id5*3mvD}f5cjZw%`ho(oo-gT-+WKveTAtoyZuq=kPc{APH+GfHeuMY5%vr}< z!i>$+Z%pf7Jf6)IS>Ckv-|kZlyy`e#@}KtIp+jF(efdh0rviHQR zDbGlDTT3TxYnsbZn`9cCPgUx%*VL92@L0!Q*=%{M`(@#qo1#y7qwr6bQ(f0rRmd$x z+XfFSvo_$wrTrTW?Su?N1|3VtGCXREQ98phdL^{e(%8Vf%+RsgQ55SCeb-E3_SN>Y|o)bx-cRcQhirRLx!js(wvR7g?h0;9JDOMh{d8hn?p%|4(Uhntm7 z0SB=)tRIj-yV?O7drx6c+7?k6``nivp3#<8f7*U14VQj?P^<3QFAkiZ?7sQ{t*_L2 zNT5GJyV8-Y8!s!phW^bdLht3mwIRZA*RYsyv;d1~?_y(bZ^L5oSS(jZM^~nUHIwPe zWd2ZOdH+8RoA_&^B1He+5cc7e5H*Y?6qfKKgz+IU;Se7mZyOc8AvP>T5N^wliOlJC Q8;3yP>+SDV=oy^!4^7<^r2qf` literal 0 HcmV?d00001 diff --git a/retroshare-gui/src/gui/icons/png/leave2.png b/retroshare-gui/src/gui/icons/png/leave2.png new file mode 100644 index 0000000000000000000000000000000000000000..ea852a46c27209e58c282cc499532249b44cc7a1 GIT binary patch literal 1674 zcmZ`&2~bm46n#HG2|GlPT@_x_cmu7`_!zc)l6DumA%w#>LkKfQs`fOH2~Xjal?SUjUAqLflCJ-r@Kc035Rh zV4MMfeK7#KNrIXHM*xsw|GhyTxCXBsq?^BFk2Z?=?|@L=Hn?9jfsqfG?ZK!zm=LRL=eD6i8*TZW%@j z3MB-A1gx&2d8xt#>u417zUtO6A}h+G^4Q!@0!>x37$ARXm( z0O0_1PT)zQ;NRi|xz+cxltHF{R^Gm0~LuGbkDY}N=f#m-XT%%1akOZv=#b zJcMk#23?EgZ5$jvkEp_qQz`7XWvoTS4V2MCX4!;dy?iDxXT|1S2IdjF@=;O!weBhn zCEDV!XOGrFV9&T^K(qAw6J6B z7dONz>3KLwH1RS)Ppr54Ru%j0Zn`3^ioHA=){;DX)9kTikX&GXu64fZ(SccbPx`r+ zy^xZ+&t0dSk)YgK7ra+B0l2oB*7CyK$^OUn4UKZJY}$$nhhmz^qIG`ppP~gWQ zGnM6UTB>8eEgauy)9Q7E7_E_3PeuJmGmEsjsQXh`GvI}6j-1wRL`SAlAK$bb3sNq3 zxJr)2{R znsBe|?UqPdpPr*a$7e2xC{@)Q*s}Zy*R*p?uoTrYkWV#3cQuMAj14(^uz1xyNGjEg ze30d@R^A|5=Wm1(uyY71Zomk}k>e>!(ZPedd-$lgHN0*$ zjXhJxlsv0DAGCzPKWH=C;~+bd$&RvTB}c&kY^> zt%WbPoBWFqpBQ;KI{p6%leddXAVD9Wus<=H&0!`-0S<>_bvPj|g~d#YvPw*j;ZHgm PKoIcu@N>W6%J}q8Yt6-l literal 0 HcmV?d00001 From 612c21f4b0b67bda61bf88c6aca86129fe35ea95 Mon Sep 17 00:00:00 2001 From: defnax Date: Sat, 23 Nov 2019 00:28:28 +0100 Subject: [PATCH 14/15] restore gitignore --- .gitignore | 1488 +--------------------------------------------------- 1 file changed, 1 insertion(+), 1487 deletions(-) diff --git a/.gitignore b/.gitignore index 6d0653e18..9a8091201 100644 --- a/.gitignore +++ b/.gitignore @@ -11,1490 +11,4 @@ Makefile* Thumbs.db *.pro.user .kdev4 -*.kdev4 -libbitdht/src/lib/libbitdht.a -libbitdht/src/object_script.libbitdht.Debug -libbitdht/src/object_script.libbitdht.Release -libretroshare/src/lib/libretroshare.a -libretroshare/src/lib/libretroshare.dll.a -libretroshare/src/lib/retroshare.dll -libretroshare/src/object_script.libretroshare.Debug -libretroshare/src/object_script.libretroshare.Release -libretroshare/src/object_script.retroshare.Debug -libretroshare/src/object_script.retroshare.Release -libretroshare/src/sh.exe.stackdump -retroshare-service/src/lib/libretroshare-service.a -retroshare-gui/src/temp/moc/moc_predefs.h -retroshare-gui/src/temp/moc/Settings.moc -retroshare-gui/src/temp/moc/TorControl.moc -retroshare-gui/src/temp/moc/TorManager.moc -retroshare-service/src/release/retroshare-service.exe -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/variants/standard.css -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/variants/color.css -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/system.htm -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/outgoing.htm -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/ooutgoing.htm -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/main.css -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/Kopie von incoming.htm -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/info.xml -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/incoming.htm -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-red/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-orange/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-grey/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-green/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/img/bubble-blue/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/images.sh -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/houtgoing.htm -retroshare-gui/src/release/stylesheets/Bubble_Compact/private/hincoming.htm -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-red/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-orange/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-grey/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-green/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/src/img/bubble-blue/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/src/img.svg -retroshare-gui/src/release/stylesheets/Bubble/src/images.sh -retroshare-gui/src/release/stylesheets/Bubble/public/variants/standard.css -retroshare-gui/src/release/stylesheets/Bubble/public/variants/color.css -retroshare-gui/src/release/stylesheets/Bubble/public/system.htm -retroshare-gui/src/release/stylesheets/Bubble/public/outgoing.htm -retroshare-gui/src/release/stylesheets/Bubble/public/ooutgoing.htm -retroshare-gui/src/release/stylesheets/Bubble/public/main.css -retroshare-gui/src/release/stylesheets/Bubble/public/info.xml -retroshare-gui/src/release/stylesheets/Bubble/public/incoming.htm -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-red/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-orange/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-grey/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-green/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/public/img/bubble-blue/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/public/images.sh -retroshare-gui/src/release/stylesheets/Bubble/public/houtgoing.htm -retroshare-gui/src/release/stylesheets/Bubble/public/hincoming.htm -retroshare-gui/src/release/stylesheets/Bubble/private/variants/standard.css -retroshare-gui/src/release/stylesheets/Bubble/private/variants/color.css -retroshare-gui/src/release/stylesheets/Bubble/private/system.htm -retroshare-gui/src/release/stylesheets/Bubble/private/outgoing.htm -retroshare-gui/src/release/stylesheets/Bubble/private/ooutgoing.htm -retroshare-gui/src/release/stylesheets/Bubble/private/main.css -retroshare-gui/src/release/stylesheets/Bubble/private/info.xml -retroshare-gui/src/release/stylesheets/Bubble/private/incoming.htm -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-red/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-orange/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-grey/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-green/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/private/img/bubble-blue/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/private/images.sh -retroshare-gui/src/release/stylesheets/Bubble/private/houtgoing.htm -retroshare-gui/src/release/stylesheets/Bubble/private/hincoming.htm -retroshare-gui/src/release/stylesheets/Bubble/history/variants/standard.css -retroshare-gui/src/release/stylesheets/Bubble/history/variants/color.css -retroshare-gui/src/release/stylesheets/Bubble/history/system.htm -retroshare-gui/src/release/stylesheets/Bubble/history/outgoing.htm -retroshare-gui/src/release/stylesheets/Bubble/history/ooutgoing.htm -retroshare-gui/src/release/stylesheets/Bubble/history/main.css -retroshare-gui/src/release/stylesheets/Bubble/history/info.xml -retroshare-gui/src/release/stylesheets/Bubble/history/incoming.htm -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-red/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-orange/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-grey/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-green/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_TR.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_TL.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_tick.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_tick-right.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_tick-left.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_TC.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_CR.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_CL.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_CC.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_BR.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_BL.png -retroshare-gui/src/release/stylesheets/Bubble/history/img/bubble-blue/bubble_BC.png -retroshare-gui/src/release/stylesheets/Bubble/history/images.sh -retroshare-gui/src/release/stylesheets/Bubble/history/houtgoing.htm -retroshare-gui/src/release/stylesheets/Bubble/history/hincoming.htm -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys9.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys8.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys7.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys6.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys5.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys47.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys46.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys45.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys44.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys43.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys42.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys41.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys40.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys4.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys39.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys38.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys37.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys36.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys35.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys34.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys33.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys32.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys31.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys30.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys3.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys29.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys28.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys27.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys26.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys25.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys24.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys23.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys22.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys21.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys20.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys2.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys19.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys18.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys17.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys16.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys15.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys14.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys13.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys12.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys11.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys10.png -retroshare-gui/src/release/stickers/YellowBoys/YellowBoys1.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy9.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy8.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy7.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy6.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy5.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy40.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy4.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy39.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy38.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy37.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy36.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy35.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy34.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy33.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy32.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy31.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy30.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy3.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy29.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy28.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy27.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy26.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy25.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy24.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy23.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy22.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy21.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy20.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy2.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy19.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy18.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy17.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy16.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy15.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy14.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy13.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy12.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy11.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy10.png -retroshare-gui/src/release/stickers/vk_diggy/vk_diggy1.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker9.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker8.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker7.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker6.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker5.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker4.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker3.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker25.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker24.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker23.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker22.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker21.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker20.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker2.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker19.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker18.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker17.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker16.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker15.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker14.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker13.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker12.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker11.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker10.png -retroshare-gui/src/release/stickers/TheJoker/TheJoker1.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool9.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool8.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool7.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool6.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool5.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool4.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool35.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool34.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool33.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool32.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool31.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool30.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool3.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool29.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool28.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool27.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool26.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool25.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool24.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool23.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool22.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool21.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool20.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool2.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool19.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool18.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool17.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool16.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool15.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool14.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool13.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool12.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool11.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool10.png -retroshare-gui/src/release/stickers/TheBestDeadpool/TheBestDeadpool1.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear9.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear8.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear7.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear6.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear5.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear4.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear3.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear25.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear24.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear23.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear22.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear21.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear20.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear2.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear19.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear18.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear17.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear16.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear15.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear14.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear13.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear12.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear11.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear10.png -retroshare-gui/src/release/stickers/tedthebear/tedthebear1.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya9.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya8.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya7.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya6.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya5.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya48.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya47.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya46.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya45.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya44.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya43.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya42.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya41.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya40.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya4.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya39.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya38.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya37.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya36.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya35.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya34.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya33.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya32.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya31.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya30.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya3.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya29.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya28.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya27.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya26.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya25.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya24.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya23.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya22.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya21.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya20.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya2.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya19.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya18.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya17.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya16.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya15.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya14.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya13.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya12.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya11.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya10.png -retroshare-gui/src/release/stickers/SmeshnayaSemya/SmeshnayaSemya1.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica9.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica8.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica7.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica6.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica5.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica4.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica35.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica34.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica33.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica32.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica31.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica30.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica3.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica29.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica28.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica27.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica26.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica25.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica24.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica23.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica22.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica21.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica20.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica2.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica19.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica18.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica17.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica16.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica15.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica14.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica13.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica12.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica11.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica10.png -retroshare-gui/src/release/stickers/rabbitjessica/rabbitjessica1.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls9.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls8.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls7.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls6.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls5.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls4.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls35.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls34.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls33.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls32.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls31.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls30.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls3.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls29.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls28.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls27.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls26.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls25.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls24.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls23.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls22.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls21.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls20.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls2.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls19.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls18.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls17.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls16.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls15.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls14.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls13.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls12.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls11.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls10.png -retroshare-gui/src/release/stickers/PlayboyGirls/PlayboyGirls1.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl9.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl8.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl7.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl6.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl5.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl40.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl4.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl39.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl38.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl37.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl36.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl35.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl34.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl33.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl32.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl31.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl30.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl3.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl29.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl28.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl27.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl26.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl25.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl24.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl23.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl22.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl21.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl20.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl2.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl19.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl18.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl17.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl16.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl15.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl14.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl13.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl12.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl11.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl10.png -retroshare-gui/src/release/stickers/PhilTheOwl/PhilTheOwl1.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris9.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris8.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris7.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris6.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris5.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris4.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris3.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris27.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris26.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris25.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris24.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris23.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris22.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris21.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris20.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris2.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris19.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris18.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris17.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris16.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris15.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris14.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris13.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris12.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris11.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris10.png -retroshare-gui/src/release/stickers/Palata6Kris/Palata6Kris1.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends9.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends8.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends7.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends6.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends5.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends4.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends3.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends25.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends24.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends23.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends22.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends21.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends20.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends2.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends19.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends18.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends17.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends16.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends15.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends14.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends13.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends12.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends11.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends10.png -retroshare-gui/src/release/stickers/Myths_and_Legends/Myths_and_Legends1.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil9.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil8.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil7.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil6.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil5.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil4.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil3.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil26.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil25.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil24.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil23.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil22.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil21.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil20.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil2.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil19.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil18.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil17.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil16.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil15.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil14.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil13.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil12.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil11.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil10.png -retroshare-gui/src/release/stickers/MissDevil/MissDevil1.png -retroshare-gui/src/release/stickers/Minions/37.png -retroshare-gui/src/release/stickers/Minions/36.png -retroshare-gui/src/release/stickers/Minions/35.png -retroshare-gui/src/release/stickers/Minions/34.png -retroshare-gui/src/release/stickers/Minions/33.png -retroshare-gui/src/release/stickers/Minions/32.png -retroshare-gui/src/release/stickers/Minions/31.png -retroshare-gui/src/release/stickers/Minions/30.png -retroshare-gui/src/release/stickers/Minions/29.png -retroshare-gui/src/release/stickers/Minions/28.png -retroshare-gui/src/release/stickers/Minions/27.png -retroshare-gui/src/release/stickers/Minions/26.png -retroshare-gui/src/release/stickers/Minions/25.png -retroshare-gui/src/release/stickers/Minions/24.png -retroshare-gui/src/release/stickers/Minions/23.png -retroshare-gui/src/release/stickers/Minions/22.png -retroshare-gui/src/release/stickers/Minions/21.png -retroshare-gui/src/release/stickers/Minions/20.png -retroshare-gui/src/release/stickers/Minions/19.png -retroshare-gui/src/release/stickers/Minions/18.png -retroshare-gui/src/release/stickers/Minions/17.png -retroshare-gui/src/release/stickers/Minions/16.png -retroshare-gui/src/release/stickers/Minions/15.png -retroshare-gui/src/release/stickers/Minions/14.png -retroshare-gui/src/release/stickers/Minions/13.png -retroshare-gui/src/release/stickers/Minions/12.png -retroshare-gui/src/release/stickers/Minions/11.png -retroshare-gui/src/release/stickers/Minions/10.png -retroshare-gui/src/release/stickers/Minions/09.png -retroshare-gui/src/release/stickers/Minions/08.png -retroshare-gui/src/release/stickers/Minions/07.png -retroshare-gui/src/release/stickers/Minions/06.png -retroshare-gui/src/release/stickers/Minions/05.png -retroshare-gui/src/release/stickers/Minions/04.png -retroshare-gui/src/release/stickers/Minions/03.png -retroshare-gui/src/release/stickers/Minions/02.png -retroshare-gui/src/release/stickers/Minions/01.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi9.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi8.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi7.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi6.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi5.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi4.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi34.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi33.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi32.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi31.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi30.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi3.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi29.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi28.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi27.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi26.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi25.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi24.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi23.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi22.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi21.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi20.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi2.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi19.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi18.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi17.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi16.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi15.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi14.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi13.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi12.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi11.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi10.png -retroshare-gui/src/release/stickers/KittenTaffy/kotenoktaffi1.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB9.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB8.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB7.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB6.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB5.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB4.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB3.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB25.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB24.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB23.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB22.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB21.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB20.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB2.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB19.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB18.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB17.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB16.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB15.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB14.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB13.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB12.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB11.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB10.png -retroshare-gui/src/release/stickers/jayandsilentbob/J_and_SB1.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers9.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers8.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers7.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers6.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers5.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers4.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers3.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers29.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers28.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers27.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers26.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers25.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers24.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers23.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers22.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers21.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers20.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers2.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers19.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers18.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers17.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers16.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers15.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers14.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers13.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers12.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers11.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers10.png -retroshare-gui/src/release/stickers/HomerStickers/HomerStickers1.png -retroshare-gui/src/release/stickers/great_minds/greatminds (9).png -retroshare-gui/src/release/stickers/great_minds/greatminds (8).png -retroshare-gui/src/release/stickers/great_minds/greatminds (7).png -retroshare-gui/src/release/stickers/great_minds/greatminds (60).png -retroshare-gui/src/release/stickers/great_minds/greatminds (6).png -retroshare-gui/src/release/stickers/great_minds/greatminds (59).png -retroshare-gui/src/release/stickers/great_minds/greatminds (58).png -retroshare-gui/src/release/stickers/great_minds/greatminds (57).png -retroshare-gui/src/release/stickers/great_minds/greatminds (56).png -retroshare-gui/src/release/stickers/great_minds/greatminds (55).png -retroshare-gui/src/release/stickers/great_minds/greatminds (54).png -retroshare-gui/src/release/stickers/great_minds/greatminds (53).png -retroshare-gui/src/release/stickers/great_minds/greatminds (52).png -retroshare-gui/src/release/stickers/great_minds/greatminds (51).png -retroshare-gui/src/release/stickers/great_minds/greatminds (50).png -retroshare-gui/src/release/stickers/great_minds/greatminds (5).png -retroshare-gui/src/release/stickers/great_minds/greatminds (49).png -retroshare-gui/src/release/stickers/great_minds/greatminds (48).png -retroshare-gui/src/release/stickers/great_minds/greatminds (47).png -retroshare-gui/src/release/stickers/great_minds/greatminds (46).png -retroshare-gui/src/release/stickers/great_minds/greatminds (45).png -retroshare-gui/src/release/stickers/great_minds/greatminds (44).png -retroshare-gui/src/release/stickers/great_minds/greatminds (43).png -retroshare-gui/src/release/stickers/great_minds/greatminds (42).png -retroshare-gui/src/release/stickers/great_minds/greatminds (41).png -retroshare-gui/src/release/stickers/great_minds/greatminds (40).png -retroshare-gui/src/release/stickers/great_minds/greatminds (4).png -retroshare-gui/src/release/stickers/great_minds/greatminds (39).png -retroshare-gui/src/release/stickers/great_minds/greatminds (38).png -retroshare-gui/src/release/stickers/great_minds/greatminds (37).png -retroshare-gui/src/release/stickers/great_minds/greatminds (36).png -retroshare-gui/src/release/stickers/great_minds/greatminds (35).png -retroshare-gui/src/release/stickers/great_minds/greatminds (34).png -retroshare-gui/src/release/stickers/great_minds/greatminds (33).png -retroshare-gui/src/release/stickers/great_minds/greatminds (32).png -retroshare-gui/src/release/stickers/great_minds/greatminds (31).png -retroshare-gui/src/release/stickers/great_minds/greatminds (30).png -retroshare-gui/src/release/stickers/great_minds/greatminds (3).png -retroshare-gui/src/release/stickers/great_minds/greatminds (29).png -retroshare-gui/src/release/stickers/great_minds/greatminds (28).png -retroshare-gui/src/release/stickers/great_minds/greatminds (27).png -retroshare-gui/src/release/stickers/great_minds/greatminds (26).png -retroshare-gui/src/release/stickers/great_minds/greatminds (25).png -retroshare-gui/src/release/stickers/great_minds/greatminds (24).png -retroshare-gui/src/release/stickers/great_minds/greatminds (23).png -retroshare-gui/src/release/stickers/great_minds/greatminds (22).png -retroshare-gui/src/release/stickers/great_minds/greatminds (21).png -retroshare-gui/src/release/stickers/great_minds/greatminds (20).png -retroshare-gui/src/release/stickers/great_minds/greatminds (2).png -retroshare-gui/src/release/stickers/great_minds/greatminds (19).png -retroshare-gui/src/release/stickers/great_minds/greatminds (18).png -retroshare-gui/src/release/stickers/great_minds/greatminds (17).png -retroshare-gui/src/release/stickers/great_minds/greatminds (16).png -retroshare-gui/src/release/stickers/great_minds/greatminds (15).png -retroshare-gui/src/release/stickers/great_minds/greatminds (14).png -retroshare-gui/src/release/stickers/great_minds/greatminds (13).png -retroshare-gui/src/release/stickers/great_minds/greatminds (12).png -retroshare-gui/src/release/stickers/great_minds/greatminds (11).png -retroshare-gui/src/release/stickers/great_minds/greatminds (10).png -retroshare-gui/src/release/stickers/great_minds/greatminds (1).png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk9.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk8.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk7.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk6.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk5.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk4.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk3.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk24.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk23.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk22.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk21.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk20.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk2.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk19.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk18.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk17.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk16.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk15.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk14.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk13.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk12.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk11.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk10.png -retroshare-gui/src/release/stickers/GameOfThrones/gotvk1.png -retroshare-gui/src/release/stickers/futurama/futurama (9).png -retroshare-gui/src/release/stickers/futurama/futurama (8).png -retroshare-gui/src/release/stickers/futurama/futurama (7).png -retroshare-gui/src/release/stickers/futurama/futurama (6).png -retroshare-gui/src/release/stickers/futurama/futurama (54).png -retroshare-gui/src/release/stickers/futurama/futurama (53).png -retroshare-gui/src/release/stickers/futurama/futurama (52).png -retroshare-gui/src/release/stickers/futurama/futurama (51).png -retroshare-gui/src/release/stickers/futurama/futurama (50).png -retroshare-gui/src/release/stickers/futurama/futurama (5).png -retroshare-gui/src/release/stickers/futurama/futurama (49).png -retroshare-gui/src/release/stickers/futurama/futurama (48).png -retroshare-gui/src/release/stickers/futurama/futurama (47).png -retroshare-gui/src/release/stickers/futurama/futurama (46).png -retroshare-gui/src/release/stickers/futurama/futurama (45).png -retroshare-gui/src/release/stickers/futurama/futurama (44).png -retroshare-gui/src/release/stickers/futurama/futurama (43).png -retroshare-gui/src/release/stickers/futurama/futurama (42).png -retroshare-gui/src/release/stickers/futurama/futurama (41).png -retroshare-gui/src/release/stickers/futurama/futurama (40).png -retroshare-gui/src/release/stickers/futurama/futurama (4).png -retroshare-gui/src/release/stickers/futurama/futurama (39).png -retroshare-gui/src/release/stickers/futurama/futurama (38).png -retroshare-gui/src/release/stickers/futurama/futurama (37).png -retroshare-gui/src/release/stickers/futurama/futurama (36).png -retroshare-gui/src/release/stickers/futurama/futurama (35).png -retroshare-gui/src/release/stickers/futurama/futurama (34).png -retroshare-gui/src/release/stickers/futurama/futurama (33).png -retroshare-gui/src/release/stickers/futurama/futurama (32).png -retroshare-gui/src/release/stickers/futurama/futurama (31).png -retroshare-gui/src/release/stickers/futurama/futurama (30).png -retroshare-gui/src/release/stickers/futurama/futurama (3).png -retroshare-gui/src/release/stickers/futurama/futurama (29).png -retroshare-gui/src/release/stickers/futurama/futurama (28).png -retroshare-gui/src/release/stickers/futurama/futurama (27).png -retroshare-gui/src/release/stickers/futurama/futurama (26).png -retroshare-gui/src/release/stickers/futurama/futurama (25).png -retroshare-gui/src/release/stickers/futurama/futurama (24).png -retroshare-gui/src/release/stickers/futurama/futurama (23).png -retroshare-gui/src/release/stickers/futurama/futurama (22).png -retroshare-gui/src/release/stickers/futurama/futurama (21).png -retroshare-gui/src/release/stickers/futurama/futurama (20).png -retroshare-gui/src/release/stickers/futurama/futurama (2).png -retroshare-gui/src/release/stickers/futurama/futurama (19).png -retroshare-gui/src/release/stickers/futurama/futurama (18).png -retroshare-gui/src/release/stickers/futurama/futurama (17).png -retroshare-gui/src/release/stickers/futurama/futurama (16).png -retroshare-gui/src/release/stickers/futurama/futurama (15).png -retroshare-gui/src/release/stickers/futurama/futurama (14).png -retroshare-gui/src/release/stickers/futurama/futurama (13).png -retroshare-gui/src/release/stickers/futurama/futurama (12).png -retroshare-gui/src/release/stickers/futurama/futurama (11).png -retroshare-gui/src/release/stickers/futurama/futurama (10).png -retroshare-gui/src/release/stickers/futurama/futurama (1).png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath9.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath8.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath7.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath6.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath5.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath40.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath4.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath39.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath38.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath37.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath36.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath35.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath34.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath33.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath32.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath31.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath30.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath3.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath29.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath28.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath27.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath26.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath25.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath24.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath23.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath22.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath21.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath20.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath2.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath19.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath18.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath17.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath16.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath15.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath14.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath13.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath12.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath11.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath10.png -retroshare-gui/src/release/stickers/friendlydeath/friendlydeath1.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide9.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide8.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide7.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide6.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide5.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide4.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide30.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide3.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide29.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide28.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide27.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide26.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide25.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide24.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide23.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide22.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide21.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide20.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide2.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide19.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide18.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide17.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide16.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide15.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide14.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide13.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide12.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide11.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide10.png -retroshare-gui/src/release/stickers/ComeToTheDarkSide/ComeToTheDarkSide1.png -retroshare-gui/src/release/stickers/Biscuit/9 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/8 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/7 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/6 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/5 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/4 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/39 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/38 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/37 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/36 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/35 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/34 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/33 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/32 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/31 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/30 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/3 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/29 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/28 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/27 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/26 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/25 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/24 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/23 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/22 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/21 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/20 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/2 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/19 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/18 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/17 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/16 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/15 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/14 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/13 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/12 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/11 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/10 (Custom).png -retroshare-gui/src/release/stickers/Biscuit/1 (Custom).png -retroshare-gui/src/release/stickers/Banana/9.png -retroshare-gui/src/release/stickers/Banana/8.png -retroshare-gui/src/release/stickers/Banana/7.png -retroshare-gui/src/release/stickers/Banana/6.png -retroshare-gui/src/release/stickers/Banana/5.png -retroshare-gui/src/release/stickers/Banana/45.png -retroshare-gui/src/release/stickers/Banana/44.png -retroshare-gui/src/release/stickers/Banana/43.png -retroshare-gui/src/release/stickers/Banana/42.png -retroshare-gui/src/release/stickers/Banana/41.png -retroshare-gui/src/release/stickers/Banana/40.png -retroshare-gui/src/release/stickers/Banana/4.png -retroshare-gui/src/release/stickers/Banana/39.png -retroshare-gui/src/release/stickers/Banana/38.png -retroshare-gui/src/release/stickers/Banana/37.png -retroshare-gui/src/release/stickers/Banana/36.png -retroshare-gui/src/release/stickers/Banana/35.png -retroshare-gui/src/release/stickers/Banana/34.png -retroshare-gui/src/release/stickers/Banana/33.png -retroshare-gui/src/release/stickers/Banana/32.png -retroshare-gui/src/release/stickers/Banana/31.png -retroshare-gui/src/release/stickers/Banana/30.png -retroshare-gui/src/release/stickers/Banana/3.png -retroshare-gui/src/release/stickers/Banana/29.png -retroshare-gui/src/release/stickers/Banana/28.png -retroshare-gui/src/release/stickers/Banana/27.png -retroshare-gui/src/release/stickers/Banana/26.png -retroshare-gui/src/release/stickers/Banana/25.png -retroshare-gui/src/release/stickers/Banana/24.png -retroshare-gui/src/release/stickers/Banana/23.png -retroshare-gui/src/release/stickers/Banana/22.png -retroshare-gui/src/release/stickers/Banana/21.png -retroshare-gui/src/release/stickers/Banana/20.png -retroshare-gui/src/release/stickers/Banana/2.png -retroshare-gui/src/release/stickers/Banana/19.png -retroshare-gui/src/release/stickers/Banana/18.png -retroshare-gui/src/release/stickers/Banana/17.png -retroshare-gui/src/release/stickers/Banana/16.png -retroshare-gui/src/release/stickers/Banana/15.png -retroshare-gui/src/release/stickers/Banana/14.png -retroshare-gui/src/release/stickers/Banana/13.png -retroshare-gui/src/release/stickers/Banana/12.png -retroshare-gui/src/release/stickers/Banana/11.png -retroshare-gui/src/release/stickers/Banana/10.png -retroshare-gui/src/release/stickers/Banana/1.png -retroshare-gui/src/release/retroshare.exe -retroshare-gui/src/release/retroshare.dll -retroshare-gui/src/release/qss/yeah/yeah.png -retroshare-gui/src/release/qss/yeah.qss -retroshare-gui/src/release/qss/yaba/yaba3.png -retroshare-gui/src/release/qss/yaba/yaba2.png -retroshare-gui/src/release/qss/yaba/yaba.png -retroshare-gui/src/release/qss/yaba.qss -retroshare-gui/src/release/qss/wx/wx.png -retroshare-gui/src/release/qss/wx.qss -retroshare-gui/src/release/qss/uus/uus2.png -retroshare-gui/src/release/qss/uus/uus.png -retroshare-gui/src/release/qss/uus.qss -retroshare-gui/src/release/qss/silvergrey.qss -retroshare-gui/src/release/qss/silver/silver2.png -retroshare-gui/src/release/qss/silver/silver.png -retroshare-gui/src/release/qss/silver.qss -retroshare-gui/src/release/qss/redscorpion/red2.png -retroshare-gui/src/release/qss/redscorpion/red.png -retroshare-gui/src/release/qss/redscorpion.qss -retroshare-gui/src/release/qss/qlive/qb2.png -retroshare-gui/src/release/qss/qlive/qb.png -retroshare-gui/src/release/qss/qlive.qss -retroshare-gui/src/release/qss/qdarkstyle/Vsepartoolbar.png -retroshare-gui/src/release/qss/qdarkstyle/Vmovetoolbar.png -retroshare-gui/src/release/qss/qdarkstyle/up_arrow_disabled.png -retroshare-gui/src/release/qss/qdarkstyle/up_arrow.png -retroshare-gui/src/release/qss/qdarkstyle/undock.png -retroshare-gui/src/release/qss/qdarkstyle/transparent.png -retroshare-gui/src/release/qss/qdarkstyle/stylesheet-vline.png -retroshare-gui/src/release/qss/qdarkstyle/stylesheet-branch-more.png -retroshare-gui/src/release/qss/qdarkstyle/stylesheet-branch-end.png -retroshare-gui/src/release/qss/qdarkstyle/style.qss -retroshare-gui/src/release/qss/qdarkstyle/style.qrc -retroshare-gui/src/release/qss/qdarkstyle/sizegrip.png -retroshare-gui/src/release/qss/qdarkstyle/right_arrow_disabled.png -retroshare-gui/src/release/qss/qdarkstyle/right_arrow.png -retroshare-gui/src/release/qss/qdarkstyle/rc/Vsepartoolbar.png -retroshare-gui/src/release/qss/qdarkstyle/rc/Vmovetoolbar.png -retroshare-gui/src/release/qss/qdarkstyle/rc/up_arrow_disabled.png -retroshare-gui/src/release/qss/qdarkstyle/rc/up_arrow.png -retroshare-gui/src/release/qss/qdarkstyle/rc/undock.png -retroshare-gui/src/release/qss/qdarkstyle/rc/transparent.png -retroshare-gui/src/release/qss/qdarkstyle/rc/stylesheet-vline.png -retroshare-gui/src/release/qss/qdarkstyle/rc/stylesheet-branch-more.png -retroshare-gui/src/release/qss/qdarkstyle/rc/stylesheet-branch-end.png -retroshare-gui/src/release/qss/qdarkstyle/rc/sizegrip.png -retroshare-gui/src/release/qss/qdarkstyle/rc/right_arrow_disabled.png -retroshare-gui/src/release/qss/qdarkstyle/rc/right_arrow.png -retroshare-gui/src/release/qss/qdarkstyle/rc/radio_unchecked_focus@2x.png -retroshare-gui/src/release/qss/qdarkstyle/rc/radio_unchecked_focus.png -retroshare-gui/src/release/qss/qdarkstyle/rc/radio_unchecked_disabled@2x.png -retroshare-gui/src/release/qss/qdarkstyle/rc/radio_unchecked_disabled.png -retroshare-gui/src/release/qss/qdarkstyle/rc/radio_unchecked@2x.png -retroshare-gui/src/release/qss/qdarkstyle/rc/radio_unchecked.png -retroshare-gui/src/release/qss/qdarkstyle/rc/radio_checked_focus@2x.png -retroshare-gui/src/release/qss/qdarkstyle/rc/radio_checked_focus.png -retroshare-gui/src/release/qss/qdarkstyle/rc/radio_checked_disabled@2x.png -retroshare-gui/src/release/qss/qdarkstyle/rc/radio_checked_disabled.png -retroshare-gui/src/release/qss/qdarkstyle/rc/radio_checked@2x.png -retroshare-gui/src/release/qss/qdarkstyle/rc/radio_checked.png -retroshare-gui/src/release/qss/qdarkstyle/rc/left_arrow_disabled.png -retroshare-gui/src/release/qss/qdarkstyle/rc/left_arrow.png -retroshare-gui/src/release/qss/qdarkstyle/rc/Hsepartoolbar.png -retroshare-gui/src/release/qss/qdarkstyle/rc/Hmovetoolbar.png -retroshare-gui/src/release/qss/qdarkstyle/rc/down_arrow_disabled.png -retroshare-gui/src/release/qss/qdarkstyle/rc/down_arrow.png -retroshare-gui/src/release/qss/qdarkstyle/rc/close.png -retroshare-gui/src/release/qss/qdarkstyle/rc/close-pressed.png -retroshare-gui/src/release/qss/qdarkstyle/rc/close-hover.png -retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_unchecked_focus@2x.png -retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_unchecked_focus.png -retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_unchecked_disabled@2x.png -retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_unchecked_disabled.png -retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_unchecked@2x.png -retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_unchecked.png -retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_indeterminate_focus@2x.png -retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_indeterminate_focus.png -retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_indeterminate_disabled@2x.png -retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_indeterminate_disabled.png -retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_indeterminate@2x.png -retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_indeterminate.png -retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_checked_focus@2x.png -retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_checked_focus.png -retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_checked_disabled@2x.png -retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_checked_disabled.png -retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_checked@2x.png -retroshare-gui/src/release/qss/qdarkstyle/rc/checkbox_checked.png -retroshare-gui/src/release/qss/qdarkstyle/rc/branch_open.png -retroshare-gui/src/release/qss/qdarkstyle/rc/branch_open-on.png -retroshare-gui/src/release/qss/qdarkstyle/rc/branch_closed.png -retroshare-gui/src/release/qss/qdarkstyle/rc/branch_closed-on.png -retroshare-gui/src/release/qss/qdarkstyle/qtpy_style_rc.py -retroshare-gui/src/release/qss/qdarkstyle/pyside_style_rc.py -retroshare-gui/src/release/qss/qdarkstyle/pyside2_style_rc.py -retroshare-gui/src/release/qss/qdarkstyle/pyqtgraph_style_rc.py -retroshare-gui/src/release/qss/qdarkstyle/pyqt_style_rc.py -retroshare-gui/src/release/qss/qdarkstyle/pyqt5_style_rc.py -retroshare-gui/src/release/qss/qdarkstyle/left_arrow_disabled.png -retroshare-gui/src/release/qss/qdarkstyle/left_arrow.png -retroshare-gui/src/release/qss/qdarkstyle/Hsepartoolbar.png -retroshare-gui/src/release/qss/qdarkstyle/Hmovetoolbar.png -retroshare-gui/src/release/qss/qdarkstyle/down_arrow_disabled.png -retroshare-gui/src/release/qss/qdarkstyle/down_arrow.png -retroshare-gui/src/release/qss/qdarkstyle/close.png -retroshare-gui/src/release/qss/qdarkstyle/checkbox.png -retroshare-gui/src/release/qss/qdarkstyle/branch_open.png -retroshare-gui/src/release/qss/qdarkstyle/branch_open-on.png -retroshare-gui/src/release/qss/qdarkstyle/branch_closed.png -retroshare-gui/src/release/qss/qdarkstyle/branch_closed-on.png -retroshare-gui/src/release/qss/qdarkstyle/__main__.py -retroshare-gui/src/release/qss/qdarkstyle/__init__.py -retroshare-gui/src/release/qss/qdarkstyle.qss -retroshare-gui/src/release/qss/qdarkstyle-v2.qss -retroshare-gui/src/release/qss/orangesurfer/toolbar.png -retroshare-gui/src/release/qss/orangesurfer/tab_pressed.png -retroshare-gui/src/release/qss/orangesurfer/tab_normal.png -retroshare-gui/src/release/qss/orangesurfer/tab_hover.png -retroshare-gui/src/release/qss/orangesurfer/sizegrip.png -retroshare-gui/src/release/qss/orangesurfer/main2.png -retroshare-gui/src/release/qss/orangesurfer/main.png -retroshare-gui/src/release/qss/orangesurfer/border.png -retroshare-gui/src/release/qss/orangesurfer.qss -retroshare-gui/src/release/qss/groove.qss -retroshare-gui/src/release/qss/Fade2Dark/Vsepartoolbar.png -retroshare-gui/src/release/qss/Fade2Dark/Vmovetoolbar.png -retroshare-gui/src/release/qss/Fade2Dark/vline.png -retroshare-gui/src/release/qss/Fade2Dark/up_arrow_disabled.png -retroshare-gui/src/release/qss/Fade2Dark/up_arrow.png -retroshare-gui/src/release/qss/Fade2Dark/up.png -retroshare-gui/src/release/qss/Fade2Dark/undock.png -retroshare-gui/src/release/qss/Fade2Dark/transparent.png -retroshare-gui/src/release/qss/Fade2Dark/sizegrip.png -retroshare-gui/src/release/qss/Fade2Dark/right_arrow_disabled.png -retroshare-gui/src/release/qss/Fade2Dark/right_arrow.png -retroshare-gui/src/release/qss/Fade2Dark/right.png -retroshare-gui/src/release/qss/Fade2Dark/radio_unsel.png -retroshare-gui/src/release/qss/Fade2Dark/radio_sel.png -retroshare-gui/src/release/qss/Fade2Dark/left_arrow_disabled.png -retroshare-gui/src/release/qss/Fade2Dark/left_arrow.png -retroshare-gui/src/release/qss/Fade2Dark/left.png -retroshare-gui/src/release/qss/Fade2Dark/Hsepartoolbar.png -retroshare-gui/src/release/qss/Fade2Dark/Hmovetoolbar.png -retroshare-gui/src/release/qss/Fade2Dark/fondmotiftext.png -retroshare-gui/src/release/qss/Fade2Dark/fondmotif.png -retroshare-gui/src/release/qss/Fade2Dark/down_arrow_disabled.png -retroshare-gui/src/release/qss/Fade2Dark/down_arrow.png -retroshare-gui/src/release/qss/Fade2Dark/down.png -retroshare-gui/src/release/qss/Fade2Dark/close.png -retroshare-gui/src/release/qss/Fade2Dark/checkbox.png -retroshare-gui/src/release/qss/Fade2Dark/check_unsel.png -retroshare-gui/src/release/qss/Fade2Dark/check_sel.png -retroshare-gui/src/release/qss/Fade2Dark/branch_open.png -retroshare-gui/src/release/qss/Fade2Dark/branch_open-on.png -retroshare-gui/src/release/qss/Fade2Dark/branch_closed.png -retroshare-gui/src/release/qss/Fade2Dark/branch_closed-on.png -retroshare-gui/src/release/qss/Fade2Dark/branch-more.png -retroshare-gui/src/release/qss/Fade2Dark/branch-end.png -retroshare-gui/src/release/qss/Fade2Dark/arrow_down.png -retroshare-gui/src/release/qss/Fade2Dark.qss -retroshare-gui/src/release/qss/darkstyle.qss -retroshare-gui/src/release/qss/darkorange.qss -retroshare-gui/src/release/qss/blue/tabselected.png -retroshare-gui/src/release/qss/blue/tab_hover.png -retroshare-gui/src/release/qss/blue/tab1.png -retroshare-gui/src/release/qss/blue/blue2.png -retroshare-gui/src/release/qss/blue/blue.png -retroshare-gui/src/release/qss/blue.qss -retroshare-gui/src/release/qss/blacknight/up.png -retroshare-gui/src/release/qss/blacknight/radio_unsel.png -retroshare-gui/src/release/qss/blacknight/radio_sel.png -retroshare-gui/src/release/qss/blacknight/down.png -retroshare-gui/src/release/qss/blacknight/clbg.png -retroshare-gui/src/release/qss/blacknight/check_unsel.png -retroshare-gui/src/release/qss/blacknight/check_sel.png -retroshare-gui/src/release/qss/blacknight.qss -retroshare-gui/src/release/portable -retroshare-gui/src/release/Data/pgp/retroshare_trustdb.gpg -retroshare-gui/src/release/Data/pgp/retroshare_secret_keyring.gpg -retroshare-gui/src/release/Data/pgp/retroshare_public_keyring.gpg -retroshare-gui/src/release/Data/pgp/lock -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/RSPeers.conf -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/RetroShare.conf -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/retro.log-save -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/retro.log -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/lock -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/keys/user_pk.pem -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/keys/user_cert.pem -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/keys/ssl_passphrase.pgp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/keys/location_name.txt -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/gxs/posted_db -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/gxs/gxstrans_db -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/gxs/gxsid_db -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/gxs/gxsforums_db -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/gxs/gxscircles_db -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/gxs/gxschannels_db -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/file_sharing/local_dir_hierarchy.bin -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/file_sharing/dirlist_7fe5ae5f67034e189936e5af4c778b47.bin -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/servicecontrol.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/servicecontrol.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/servicecontrol.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/servicecontrol.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/reputations.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/reputations.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/reputations.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/reputations.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/posted.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/posted.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/posted.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/posted.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/plugins.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/plugins.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/plugins.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/plugins.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/peers.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/peers.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/peers.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/peers.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3Status.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3Status.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3identity.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3identity.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3identity.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3identity.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/msgs.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/msgs.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/msgs.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/msgs.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/identity.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/identity.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/identity.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/identity.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxsforums_srv.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxsforums_srv.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxsforums_srv.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxsforums_srv.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxsforums.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxsforums.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxsforums.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxsforums.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxscircles.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxscircles.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxscircles.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxscircles.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxschannels.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxschannels.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxschannels.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxschannels.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxs_trans_ns.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxs_trans_ns.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxs_trans_ns.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxs_trans_ns.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxs_trans.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxs_trans.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxs_trans.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gxs_trans.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/grouter.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/grouter.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/grouter.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/grouter.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gpg_prefs.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/gpg_prefs.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/general.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/general.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/ft_transfers.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/ft_transfers.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/ft_transfers.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/ft_transfers.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/ft_database.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/ft_database.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/ft_database.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/ft_database.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/chat.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/chat.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/chat.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/chat.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/bitdht.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/bitdht.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/bitdht.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/bitdht.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/banlist.cfg.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/banlist.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/banlist.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/banlist.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/bdfilter.txt -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/bdboot.txt -retroshare-gui/src/release/Data/default_cert_06.txt -retroshare-gui/src/object_script.retroshare.Release -retroshare-gui/src/object_script.retroshare.Debug -retroshare-gui/src/lib/libretroshare-gui.a -openpgpsdk/src/lib/libops.a -openpgpsdk/src/object_script.libops.Debug -openpgpsdk/src/object_script.libops.Release -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3History.cfg -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3History.cfg.sgn -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3History.cfg.sgn.tmp -retroshare-gui/src/release/Data/LOC06_28913749aca4d773f69dd725ef7a8768/config/p3History.cfg.tmp +*.kdev4 \ No newline at end of file From 5454be92412c66308c91d2c60ea575067c3ede69 Mon Sep 17 00:00:00 2001 From: Dimitris Apostolou Date: Sat, 23 Nov 2019 08:49:11 +0200 Subject: [PATCH 15/15] Force light mode on macOS --- retroshare-gui/src/Info.plist | 1 + 1 file changed, 1 insertion(+) diff --git a/retroshare-gui/src/Info.plist b/retroshare-gui/src/Info.plist index 1dfea76cf..93b6d131a 100755 --- a/retroshare-gui/src/Info.plist +++ b/retroshare-gui/src/Info.plist @@ -44,5 +44,6 @@ + NSRequiresAquaSystemAppearance