/
helpform.cpp
70 lines (60 loc) · 2.14 KB
/
helpform.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include "helpform.h"
HelpForm::HelpForm(QWidget *parent) :
QMainWindow(parent,Qt::FramelessWindowHint),webview(new QMyWebView)
{
setupUi(this);
setCentralWidget(webview);
QWebPage *page = webview->page();
page->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
page->setContentEditable(FALSE);
webview->setContextMenuPolicy(Qt::NoContextMenu);
connect(page,SIGNAL(linkClicked(QUrl)),SLOT(loadUrl(QUrl)));
connect(action_back,SIGNAL(triggered()),webview,SLOT(back()));
connect(action_forward,SIGNAL(triggered()),webview,SLOT(forward()));
connect(action_refresh,SIGNAL(triggered()),webview,SLOT(reload()));
}
void HelpForm::loadUrl(const QUrl &url)
{
webview->load(url);
}
void HelpForm::on_action_quit_triggered()
{
hide();
deleteLater();
}
QMyWebView::QMyWebView(QWidget *parent ):QWebView(parent),willscroll(FALSE)
{
}
void QMyWebView::mouseMoveEvent ( QMouseEvent * event ){
if((event->buttons()==Qt::LeftButton)&&(page()->mainFrame())){
int disx = event->globalX()-oldX1;
int disy = event->globalY()-oldY1;
if((qAbs(disx)>10)/*&&(horizontalScrollBar()->isVisible())*/){
QWebFrame *frame = page()->mainFrame();
frame->setScrollBarValue(Qt::Horizontal,oldhscrollval-disx);
frame->setScrollBarValue(Qt::Vertical,oldvscrollval-disy);
event->accept();
return;
}
}
QWebView::mouseMoveEvent(event);
}
void QMyWebView::mousePressEvent ( QMouseEvent * event ){
if((event->button()==Qt::LeftButton)&&(page()->mainFrame())){
QWebFrame *frame = page()->mainFrame();
oldX1 = event->globalX();
oldY1 = event->globalY();
oldvscrollval = frame->scrollBarValue(Qt::Vertical);
oldhscrollval = frame->scrollBarValue(Qt::Horizontal);
}
QWebView::mousePressEvent(event);
}
void QMyWebView::mouseReleaseEvent ( QMouseEvent * event ){
int disx = event->globalX()-oldX1;
int disy = event->globalY()-oldY1;
if((event->button()==Qt::LeftButton)&&(QPoint(disx,disy).manhattanLength()>10)){
event->accept();
}else{
QWebView::mouseReleaseEvent(event);
}
}