Changeset 86813 in vbox for trunk/src/VBox/Frontends
- Timestamp:
- Nov 5, 2020 4:00:00 PM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 141255
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/helpbrowser/UIHelpBrowserWidget.cpp
r86812 r86813 141 141 142 142 void retranslateUi(); 143 bool isRectInside(const QRect &rect, int iMargin) const; 144 void moveFindWidgetIn(int iMargin); 143 145 const QHelpEngine* m_pHelpEngine; 146 144 147 UIFindInPageWidget *m_pFindInPageWidget; 145 148 /* Initilized as false and set to true once the find widget is positioned during first resize. */ 146 149 bool m_fFindWidgetPositioned; 150 const int m_iMarginForFindWidget; 147 151 }; 148 152 … … 556 560 , m_pFindInPageWidget(new UIFindInPageWidget(this)) 557 561 , m_fFindWidgetPositioned(false) 562 , m_iMarginForFindWidget(qApp->style()->pixelMetric(QStyle::PM_LayoutLeftMargin)) 558 563 { 559 564 connect(m_pFindInPageWidget, &UIFindInPageWidget::sigDragging, … … 604 609 void UIHelpBrowserViewer::paintEvent(QPaintEvent *pEvent) 605 610 { 606 // if (m_pFindInPageWidget)607 // {608 // m_pFindInPageWidget->show();609 // m_pFindInPageWidget->update();610 // }611 611 QIWithRetranslateUI<QTextBrowser>::paintEvent(pEvent); 612 612 } … … 614 614 void UIHelpBrowserViewer::resizeEvent(QResizeEvent *pEvent) 615 615 { 616 printf("resize %d\n", width()); 617 if (m_pFindInPageWidget && !m_fFindWidgetPositioned) 618 { 619 m_pFindInPageWidget->move(width() - m_pFindInPageWidget->width() - 50, 10); 620 m_fFindWidgetPositioned = true; 616 if (m_pFindInPageWidget) 617 { 618 if (!m_fFindWidgetPositioned) 619 { 620 m_pFindInPageWidget->move(width() - m_pFindInPageWidget->width() - 50, 0); 621 m_fFindWidgetPositioned = true; 622 } 623 else 624 if (!isRectInside(m_pFindInPageWidget->geometry(), m_iMarginForFindWidget)) 625 moveFindWidgetIn(m_iMarginForFindWidget); 621 626 } 622 627 QIWithRetranslateUI<QTextBrowser>::resizeEvent(pEvent); … … 626 631 void UIHelpBrowserViewer::retranslateUi() 627 632 { 633 } 634 635 void UIHelpBrowserViewer::moveFindWidgetIn(int iMargin) 636 { 637 if (!m_pFindInPageWidget) 638 return; 639 640 QRect rect = m_pFindInPageWidget->geometry(); 641 if (rect.left() < iMargin) 642 rect.translate(-rect.left() + iMargin, 0); 643 if (rect.right() > width() - iMargin) 644 rect.translate((width() - iMargin - rect.right()), 0); 645 if (rect.top() < iMargin) 646 rect.translate(0, -rect.top() + iMargin); 647 648 if (rect.bottom() > height() - iMargin) 649 rect.translate(0, (height() - iMargin - rect.bottom())); 650 m_pFindInPageWidget->setGeometry(rect); 651 } 652 653 bool UIHelpBrowserViewer::isRectInside(const QRect &rect, int iMargin) const 654 { 655 if (rect.left() < iMargin || rect.top() < iMargin) 656 return false; 657 if (rect.right() > width() - iMargin || rect.bottom() > height() - iMargin) 658 return false; 659 return true; 628 660 } 629 661 … … 644 676 QRect geo = m_pFindInPageWidget->geometry(); 645 677 geo.translate(delta); 646 int margin = qApp->style()->pixelMetric(QStyle::PM_LayoutLeftMargin); 647 bool fIn = true; 648 if (geo.left() < margin || geo.top() < margin) 649 fIn = false; 650 if (geo.right() > width() - margin || geo.bottom() > height() - margin) 651 fIn = false; 652 if (fIn) 678 679 /* Allow the move if m_pFindInPageWidget stays inside after the move: */ 680 if (isRectInside(geo, m_iMarginForFindWidget)) 653 681 m_pFindInPageWidget->move(m_pFindInPageWidget->pos() + delta); 654 682 update();
Note:
See TracChangeset
for help on using the changeset viewer.