From 3c61190b4f772805ab5b23435802ae3ff6283737 Mon Sep 17 00:00:00 2001 From: csoler Date: Tue, 18 Sep 2018 21:20:55 +0200 Subject: [PATCH] fixed context menu in Home->cert --- retroshare-gui/src/gui/HomePage.cpp | 53 +++++++++++--- retroshare-gui/src/gui/HomePage.h | 3 + retroshare-gui/src/gui/HomePage.ui | 73 ++++++++++--------- .../src/gui/connect/ConnectFriendWizard.ui | 6 +- 4 files changed, 85 insertions(+), 50 deletions(-) diff --git a/retroshare-gui/src/gui/HomePage.cpp b/retroshare-gui/src/gui/HomePage.cpp index 6a6107415..d3124a623 100644 --- a/retroshare-gui/src/gui/HomePage.cpp +++ b/retroshare-gui/src/gui/HomePage.cpp @@ -22,6 +22,8 @@ #include "HomePage.h" #include "ui_HomePage.h" +#include "retroshare/rsinit.h" + #include "gui/notifyqt.h" #include "gui/msgs/MessageComposer.h" #include "gui/connect/ConnectFriendWizard.h" @@ -55,36 +57,32 @@ HomePage::HomePage(QWidget *parent) : connect(ui->addButton, SIGNAL(clicked()), this, SLOT(addFriend())); connect(ui->LoadCertFileButton, SIGNAL(clicked()), this, SLOT(loadCert())); - QAction *CopyAction = new QAction(QIcon(),tr("Copy your Cert to Clipboard"), this); - connect(CopyAction, SIGNAL(triggered()), this, SLOT(copyCert())); - - QAction *SaveAction = new QAction(QIcon(),tr("Save your Cert into a File"), this); - connect(SaveAction, SIGNAL(triggered()), this, SLOT(saveCert())); - - QAction *SendAction = new QAction(QIcon(),tr("Send via Email"), this); - connect(SendAction, SIGNAL(triggered()), this, SLOT(runEmailClient())); - QAction *WebMailAction = new QAction(QIcon(),tr("Invite via WebMail"), this); connect(WebMailAction, SIGNAL(triggered()), this, SLOT(webMail())); QAction *RecAction = new QAction(QIcon(),tr("Recommend friends to each others"), this); connect(RecAction, SIGNAL(triggered()), this, SLOT(recommendFriends())); + QAction *SendAction = new QAction(QIcon(),tr("Send via Email"), this); + connect(SendAction, SIGNAL(triggered()), this, SLOT(runEmailClient())); + QMenu *menu = new QMenu(); - menu->addAction(CopyAction); - menu->addAction(SaveAction); menu->addAction(SendAction); menu->addAction(WebMailAction); menu->addAction(RecAction); ui->shareButton->setMenu(menu); + QObject::connect(ui->userCertEdit,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(certContextMenu(QPoint))); + connect(ui->runStartWizard_PB,SIGNAL(clicked()), this,SLOT(runStartWizard())) ; connect(ui->openwebhelp,SIGNAL(clicked()), this,SLOT(openWebHelp())) ; ui->runStartWizard_PB->hide(); // until future rework ui->LoadCertFileButton->hide(); // duplicates functionality => not good. + mIncludeAllIPs = false; + int S = QFontMetricsF(font()).height(); QString help_str = tr( "

  Welcome to Retroshare!

\ @@ -100,6 +98,37 @@ HomePage::HomePage(QWidget *parent) : registerHelpButton(ui->helpButton,help_str,"HomePage") ; } +void HomePage::certContextMenu(QPoint point) +{ + QMenu menu(this) ; + + QAction *CopyAction = new QAction(QIcon(),tr("Copy your Cert to Clipboard"), this); + connect(CopyAction, SIGNAL(triggered()), this, SLOT(copyCert())); + + QAction *SaveAction = new QAction(QIcon(),tr("Save your Cert into a File"), this); + connect(SaveAction, SIGNAL(triggered()), this, SLOT(saveCert())); + + menu.addAction(CopyAction); + menu.addAction(SaveAction); + + if(!RsAccounts::isHiddenNode()) + { + QAction *includeIPsAct = new QAction(QIcon(), mIncludeAllIPs? tr("Include only current IP"):tr("Include all your known IPs"),this); + connect(includeIPsAct, SIGNAL(triggered()), this, SLOT(toggleIncludeAllIPs())); + includeIPsAct->setCheckable(true); + + menu.addAction(includeIPsAct); + } + + menu.exec(QCursor::pos()); +} + +void HomePage::toggleIncludeAllIPs() +{ + mIncludeAllIPs = !mIncludeAllIPs; + updateOwnCert(); +} + HomePage::~HomePage() { delete ui; @@ -107,7 +136,7 @@ HomePage::~HomePage() void HomePage::updateOwnCert() { - bool include_extra_locators = false; + bool include_extra_locators = mIncludeAllIPs; RsPeerDetails detail; diff --git a/retroshare-gui/src/gui/HomePage.h b/retroshare-gui/src/gui/HomePage.h index 22937f821..8677bc832 100644 --- a/retroshare-gui/src/gui/HomePage.h +++ b/retroshare-gui/src/gui/HomePage.h @@ -48,6 +48,7 @@ public: virtual QString helpText() const { return ""; } //MainPage private slots: + void certContextMenu(QPoint); void updateOwnCert(); void runEmailClient(); void copyCert(); @@ -58,10 +59,12 @@ private slots: void runStartWizard() ; void openWebHelp() ; void recommendFriends(); + void toggleIncludeAllIPs(); private: Ui::HomePage *ui; + bool mIncludeAllIPs; }; diff --git a/retroshare-gui/src/gui/HomePage.ui b/retroshare-gui/src/gui/HomePage.ui index a83856c1f..da8d7b25d 100644 --- a/retroshare-gui/src/gui/HomePage.ui +++ b/retroshare-gui/src/gui/HomePage.ui @@ -25,6 +25,41 @@ 2 + + + + + 0 + 0 + + + + + 11 + + + + The text below is your own Retroshare certificate. Send it to your friends + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + + ... + + + + :/icons/help_64.png:/icons/help_64.png + + + true + + + @@ -32,6 +67,9 @@ Courier New + + Qt::CustomContextMenu + @@ -84,41 +122,6 @@ - - - - ... - - - - :/icons/help_64.png:/icons/help_64.png - - - true - - - - - - - - 0 - 0 - - - - - 11 - - - - The text below is your own Retroshare certificate. Send it to your friends - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - - - diff --git a/retroshare-gui/src/gui/connect/ConnectFriendWizard.ui b/retroshare-gui/src/gui/connect/ConnectFriendWizard.ui index 6a1fd816f..b0422914c 100644 --- a/retroshare-gui/src/gui/connect/ConnectFriendWizard.ui +++ b/retroshare-gui/src/gui/connect/ConnectFriendWizard.ui @@ -6,8 +6,8 @@ 0 0 - 760 - 538 + 1157 + 873 @@ -1618,8 +1618,8 @@ resources. - +