mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-10-01 02:35:48 -04:00
Add View Source in RSTextBrowser
This commit is contained in:
parent
026cadfe13
commit
bfbee1bdec
@ -18,19 +18,24 @@
|
||||
* *
|
||||
*******************************************************************************/
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include <QDesktopServices>
|
||||
#include <QDir>
|
||||
#include <QPainter>
|
||||
#include <QTextDocumentFragment>
|
||||
|
||||
#include "RSTextBrowser.h"
|
||||
|
||||
#include "RSImageBlockWidget.h"
|
||||
#include "gui/common/FilesDefs.h"
|
||||
|
||||
#include <retroshare/rsinit.h> //To get RsAccounts
|
||||
|
||||
#include <QDesktopServices>
|
||||
#include <QDialog>
|
||||
#include <QDir>
|
||||
#include <QGridLayout>
|
||||
#include <QMenu>
|
||||
#include <QPainter>
|
||||
#include <QPlainTextEdit>
|
||||
#include <QTextDocumentFragment>
|
||||
|
||||
#include <iostream>
|
||||
|
||||
RSTextBrowser::RSTextBrowser(QWidget *parent) :
|
||||
QTextBrowser(parent)
|
||||
{
|
||||
@ -291,3 +296,40 @@ QString RSTextBrowser::anchorForPosition(const QPoint &pos) const
|
||||
}
|
||||
return anchor;
|
||||
}
|
||||
|
||||
|
||||
#ifndef QT_NO_CONTEXTMENU
|
||||
QMenu *RSTextBrowser::createStandardContextMenu()
|
||||
{
|
||||
return createStandardContextMenu(QPoint());
|
||||
}
|
||||
QMenu *RSTextBrowser::createStandardContextMenu(const QPoint &position)
|
||||
{
|
||||
QMenu *menu = QTextBrowser::createStandardContextMenu(position);
|
||||
|
||||
menu->addSeparator();
|
||||
QAction *a = menu->addAction(FilesDefs::getIconFromQtResourcePath("://icons/textedit/code.png"), tr("View &Source"), this, SLOT(viewSource()));
|
||||
a->setEnabled(!this->document()->isEmpty());
|
||||
|
||||
return menu;
|
||||
}
|
||||
#endif // QT_NO_CONTEXTMENU
|
||||
|
||||
void RSTextBrowser::viewSource()
|
||||
{
|
||||
QString text = this->textCursor().selection().toHtml();
|
||||
if (text.isEmpty())
|
||||
text = this->document()->toHtml();
|
||||
|
||||
QDialog *dialog = new QDialog(this);
|
||||
QPlainTextEdit *pte = new QPlainTextEdit(dialog);
|
||||
pte->setPlainText(text);
|
||||
QGridLayout *gl = new QGridLayout(dialog);
|
||||
gl->addWidget(pte,0,0,1,1);
|
||||
dialog->setWindowTitle(tr("Document source"));
|
||||
dialog->resize(500, 400);
|
||||
|
||||
dialog->exec();
|
||||
|
||||
delete dialog;
|
||||
}
|
||||
|
@ -56,6 +56,11 @@ public:
|
||||
QVariant textColorQuotes() const { return highlighter->textColorQuotes();}
|
||||
bool getShowImages() const { return mShowImages; }
|
||||
|
||||
#ifndef QT_NO_CONTEXTMENU
|
||||
QMenu *createStandardContextMenu();
|
||||
QMenu *createStandardContextMenu(const QPoint &position);
|
||||
#endif
|
||||
|
||||
public slots:
|
||||
void showImages();
|
||||
void setTextColorQuote(QColor textColorQuote) { highlighter->setTextColorQuote(textColorQuote);}
|
||||
@ -64,6 +69,7 @@ public slots:
|
||||
private slots:
|
||||
void linkClicked(const QUrl &url);
|
||||
void destroyImageBlockWidget();
|
||||
void viewSource();
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent *event);
|
||||
|
Loading…
Reference in New Issue
Block a user