-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMainPanel.cpp
88 lines (64 loc) · 2.72 KB
/
MainPanel.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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
//MainPanel.cpp
#include "MainPanel.h"
/*
Control the scroll bars by setting their range, value, page step, and tracking their movements.
Draw the contents of the area in the viewport according to the values of the scroll bars.
Handle events received by the viewport in viewportEvent() - notably resize events.
Use viewport->update() to update the contents of the viewport instead of update() as all painting
operations take place on the viewport.
*/
MainPanel::MainPanel()
{
}
void MainPanel::setWidget(QWidget* widget)//TODO: claim GLWidget and pack it inside
{
//Copied from QScrollArea////////////////
QWidget* d = ?
if (widget == d->widget || !widget)
return;
delete d->widget;
d->widget = 0;
d->hbar->setValue(0);
d->vbar->setValue(0);
if (widget->parentWidget() != d->viewport)
widget->setParent(d->viewport);
if (!widget->testAttribute(Qt::WA_Resized))
widget->resize(widget->sizeHint());
d->widget = widget;
d->widget->setAutoFillBackground(true);
widget->installEventFilter(this);
d->widgetSize = QSize();
d->updateScrollBars();
d->widget->show();
/*///////////////////////////////////
QSize areaSize = viewport()->size();
QSize widgetSize = widget->size();
verticalScrollBar()->setPageStep(widgetSize.height());
horizontalScrollBar()->setPageStep(widgetSize.width());
verticalScrollBar()->setRange(0, widgetSize.height() - areaSize.height());
horizontalScrollBar()->setRange(0, widgetSize.width() - areaSize.width());
//updateWidgetPosition();//<<<<<<<<<--------------------
int hvalue = horizontalScrollBar()->value();
int vvalue = verticalScrollBar()->value();
QPoint topLeft = viewport()->rect().topLeft();
widget->move(topLeft.x() - hvalue, topLeft.y() - vvalue);/**/
}
void MainPanel::setWidgetResizable(bool b) {}
void MainPanel::contextMenuEvent ( QContextMenuEvent * e ) {}
void MainPanel::dragEnterEvent ( QDragEnterEvent * event ) {}
void MainPanel::dragLeaveEvent ( QDragLeaveEvent * event ) {}
void MainPanel::dragMoveEvent ( QDragMoveEvent * event ) {}
void MainPanel::dropEvent ( QDropEvent * event ) {}
void MainPanel::keyPressEvent ( QKeyEvent * e ) {}
void MainPanel::mouseDoubleClickEvent ( QMouseEvent * e ) {}
void MainPanel::mouseMoveEvent ( QMouseEvent * e ) {}
void MainPanel::mousePressEvent ( QMouseEvent * e ) {}
void MainPanel::mouseReleaseEvent ( QMouseEvent * e ) {}
void MainPanel::paintEvent ( QPaintEvent * event ) {}
void MainPanel::resizeEvent ( QResizeEvent * event ) {}
void MainPanel::scrollContentsBy ( int dx, int dy ) {}
bool MainPanel::viewportEvent ( QEvent * event )
{
return false;
}
void MainPanel::wheelEvent ( QWheelEvent * e ) {}